1

次のような文字列があります。

$string = 'var1=foo&var2=bar&var3=blahblahblah&etc=etc';

そして、それから別の文字列を作成し、それを値に置き換えたいと思います。たとえば、次のようになります

$newstring = 'var1=foo&var2=bar&var3=$myVariable&etc=etc'; 

したがって、新しい文字列の var3 は の値になります$myVariable

これはどのように達成できますか?

4

2 に答える 2

3

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.

于 2013-02-25T02:08:16.920 に答える
0

そのための方法preg_replaceを使用できます。ここに例があります

<?php

$string = 'var1=foo&var2=bar&var3=blahblahblah&etc=etc';
$var = 'foo';

echo preg_replace('/var3=(.*)&/', 'var3=' . $var . '&', $string);
于 2013-02-25T02:07:16.337 に答える