2012-01-26 40 views
0

这里是我的代码:关于PHP str_replace函数功能

$search = array('<script src="/', 
     '<link href="/', 
     '<a href="/', 
     '<img src="/', 
     'src="/'); 
$d = 'http://www.ifreewind.net'; 
$replace = array('<script src="'.$d.'/', 
     '<link href="'.$d.'/', 
     '<a href="'.$d.'/', 
     '<img src="'.$d.'/', 
     'src="'.$d.'/'); 
$result = str_replace($search, $replace, $contents); 

echo $result; 

这些代码有一个问题是,它们不能取代img标签,如:

<img width="50px" src="/..."> 

<img width="50px" src="http://www.ifreewind.net/..."> 

如何解决这个问题?

回答

1

对此,您不能使用str_replace。你可以用preg_replace尝试:

preg_replace('~(src|href)="(?=/)~', '$1http://www.ifreewind.net', $contents); 

不过,我强烈建议你使用an HTML parser来代替。

+0

非常感谢! – Phoenix