我有一个看起来有点像这样的字符串:
$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
.
如何做到这一点?
不需要正则表达式;内置的 URL 函数应该更可靠地工作。
// 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);
签出http_build_query
和parse_str
。即使没有,这也会附加一个 var3 变量,它会 URL encode $myVariable
,并且它比 using 更具可读性preg_replace
。
您可以使用该方法preg_replace
。这里有一个例子
<?php
$string = 'var1=foo&var2=bar&var3=blahblahblah&etc=etc';
$var = 'foo';
echo preg_replace('/var3=(.*)&/', 'var3=' . $var . '&', $string);