我有一个代码示例:
include 'simple_html_dom.php';
// convert link url
function foo($uri) {
$url = parse_url($uri);
$paths = explode('/', $url['path']);
return sprintf("%s://%s/%s", $url['scheme'], 'localhost/test/get_image/images', end($paths));
}
$str = '<img src="http://www.somedomain.com/somepic.jpg" />
<img src="http://www.microsoft.com/somepic.jpg" />';
$html = new simple_html_dom();
$html->load($str);
// remove all image
$arr_img = array();
foreach($html->find('img') as $element) {
$arr_img[] = $element->src;
$str_rep = str_replace($element->src, foo($element->src), $str);
}
echo $str_rep;
输出:
<img src="http://www.somedomain.com/somepic.jpg">
<img src="http://localhost/test/get_image/images/somepic.jpg">
无法获取链接时出现错误“http://www.somedomain.com/somepic.jpg”未转换为“http://localhost/test/get_image/images/somepic.jpg” 如何解决?
答案 0 :(得分:0)
你在foreach循环中为$str_rep
分配了一些东西,但是使用了它之外的变量:你只处理最后一个匹配。
尝试这样的事情:
foreach($html->find('img') as $element) {
$arr_img[] = $element->src;
$str_rep = str_replace($element->src, foo($element->src), $str);
echo $str_rep;
}