我有一个看起来像这样的字符串:
$string = 'var1=foo&var2=bar&var3=blahblahblah&etc=etc';
我想从中创建另一个字符串,并用值替换它,所以例如它看起来像这样
$newstring = 'var1=foo&var2=bar&var3=$myVariable&etc=etc';
所以新字符串中的var3将是$myVariable
的值。
如何实现这一目标?
答案 0 :(得分:3)
不需要正则表达式;内置的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变量,即使没有变量,它也会对$myVariable
进行网址编码,并且比使用preg_replace
更具可读性。
答案 1 :(得分:0)
您可以使用方法preg_replace
。这是一个例子
<?php
$string = 'var1=foo&var2=bar&var3=blahblahblah&etc=etc';
$var = 'foo';
echo preg_replace('/var3=(.*)&/', 'var3=' . $var . '&', $string);