2013-02-25 33 views
1

字符串的一部分,我有一个字符串,它看起来有点像这样:的preg_replace可变

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

,我想提出从另一个字符串,并用值来替换它,所以例如,它看起来像这样

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

所以VAR3在新的字符串将是$myVariable值。

这是如何实现的?

回答

0

您可以使用方法preg_replace。这里来一个例子

<?php 

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

echo preg_replace('/var3=(.*)&/', 'var3=' . $var . '&', $string); 
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编码$myVariable,并且它比使用preg_replace更具可读性。

+0

那么,我的字符串中实际上有一个URL; http://example.com/page?var1=foo&var2=bar&var3=$myVariable&etc=etc – user1687621 2013-02-25 02:17:36

+0

@ user1687621看到我的更新,*应*工作。 – 2013-02-25 02:23:05