I try to replace href by condition:
http://www.sitea.com/vip: => http://localhost/aaa?search=
http://www.sitea.com/ => http://localhost/bbb/ (without 'vip:')
http://www.siteb.com/ => http://localhost/ccc/
I use strpos for judge:
$str='<a href="http://www.sitea.com/vip:vp_14098">link A</a><a href="http://www.sitea.com/contact">link B</a><a href="http://www.siteb.com/player">link C</a>';
if(strpos($str,'www.sitea.com')!== false){
if(strpos($str,'vip:')!== false){
$str = str_replace('http://www.sitea.com/', 'http://localhost/aaa?search=',$str);
}else{
$str = str_replace('http://www.sitea.com/', 'http://localhost/bbb/',$str);
}
}
if(strpos($str,'www.siteb.com')!== false){
$str = str_replace('http://www.siteb.com/', 'http://localhost/ccc/',$str);
}
echo $str;
But this output:
<a href="http://localhost/aaa?search=vip:vp_14098">link A</a>
<a href="http://localhost/aaa?search=contact">link B</a>
<a href="http://localhost/ccc/player">link C</a>
The second link not replace as I wish.
Oh boy. You’re decisions are based on the results of strpos applied to a string containing all the links. Because
$strcontains a link of the first type, the corresponding if-condition is always true. You can use a regular expression to address that problem, or if this isn’t just a simplified example but your real world code, try this: