次のような文字列があります。
$string = 'var1=foo&var2=bar&var3=blahblahblah&etc=etc';
そして、それから別の文字列を作成し、それを値に置き換えたいと思います。たとえば、次のようになります
$newstring = 'var1=foo&var2=bar&var3=$myVariable&etc=etc';
したがって、新しい文字列の var3 は の値になります$myVariable。
これはどのように達成できますか?
次のような文字列があります。
$string = 'var1=foo&var2=bar&var3=blahblahblah&etc=etc';
そして、それから別の文字列を作成し、それを値に置き換えたいと思います。たとえば、次のようになります
$newstring = 'var1=foo&var2=bar&var3=$myVariable&etc=etc';
したがって、新しい文字列の var3 は の値になります$myVariable。
これはどのように達成できますか?
No need for regex; built in URL functions should work more reliably.
// Parse the url first
$url = parse_url($string);
// Parse your query string into an array
parse_str($url['query'], $qs);
// Replace the var3 key with your variable
$qs['var3'] = $myVariable;
// Convert the array back into a query string
$url['query'] = http_build_query($qs);
// Convert the $url array back into a URL
$newstring = http_build_url($url);
Check out http_build_query and parse_str. This will append a var3 variable even if there isn't one, it will URL encode $myVariable, and its more readable than using preg_replace.
そのための方法preg_replaceを使用できます。ここに例があります
<?php
$string = 'var1=foo&var2=bar&var3=blahblahblah&etc=etc';
$var = 'foo';
echo preg_replace('/var3=(.*)&/', 'var3=' . $var . '&', $string);