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

不需要正则表达式;内置的 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_queryparse_str。即使没有,这也会附加一个 var3 变量,它会 URL encode $myVariable,并且它比 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 回答