Re: preg_replace question
| From: | Alex Nikitin | Date: | Mon, 24 Jan 2011 17:08:14 +0000 |
| Subject: | Re: preg_replace question | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-311005@lists.php.net to get a copy of this message | ||
If you declare your arrays, and set k to 0 first, put quotes around array
values and use the correct limit (you can default to -1), you will get
results, here is code and example (hopefully this helps you)
<?php
function internal_links($str, $links, $limit=-1) {
$pattern=array();
$replace=array();
$k=0;
foreach($links AS $link){
$pattern[$k] = "~\b({$link['phrase']})\b~i";
$replace[$k] = '<a
href="'.$link['link'].'">\\1</a>';
$k++;
}
return preg_replace($pattern,$replace,$str, $limit);
}
echo internal_links("süße knuffige Beagle Welpen ab sofort",
array(array('phrase'=>"beagle",
'link'=>"http://google.com"),array('phrase'=>"welpen",
'link'=>"http://wolframalpha.com")), -1);
Output:
süße knuffige <a href="http://google.com">Beagle</a> <a href="
http://wolframalpha.com">Welpen</a> ab
~Alex