2012-02-19 42 views
0

我有这个值格式的字符串:用逗号或不替换字符串的preg_replace

$str = "Apple, Orange, Computer-Hardware, preg_replace, 50k"; 

$str = "Computer"; 

我怎么能与preg_replace函数将其转换为:

$str = "<a href='p.php?s=Apple'>Apple</a>, <a href='p.php?s=Orange'>Orange</a>, 
<a href='p.php?s=Computer-Hardware'>Computer-Hardware</a>, <a href='p.php?s=preg_replace'>preg_replace</a>, <a href='p.php?s=50k'>50k</a>"; 

$str = "<a href='p.php?s=Computer'>Computer</a>"; 

回答

2
$str = preg_replace('/([\w-]+)/', '<a href=\'p.php?s=$1\'>$1</a>', $str); 
+0

在某些词之间的字符串可以是这两个字符 - ,_或数字:前:浸渍料-replcae,56K,50000 – Ali 2012-02-19 00:58:44

+0

@AliA:我已经更新了我的答案。 – 2012-02-19 01:09:00

+0

@TimCoorper:结果中逗号也用“Apple,” – Ali 2012-02-19 02:45:35

0

试试看:

$str = "Apple, Orange, Computer-Hardware, preg_replace, 50k"; 
$str = preg_replace('/([^,\s]+)/', "<a href='p.php?s=$1'>$1</a>", $str); 
echo $str,"\n"; 

输出:

<a href='p.php?s=Apple'>Apple</a>, <a href='p.php?s=Orange'>Orange</a>, <a href='p.php?s=Computer-Hardware'>Computer-Hardware</a>, <a href='p.php?s=preg_replace'>preg_replace</a>, <a href='p.php?s=50k'>50k</a> 
相关问题