从数组中获取图片网址

时间:2012-02-24 08:37:37

标签: php url preg-match-all

我想从数组中获取图片网址。

    $img_link = "http://testserver1.com:8080/test%20messages%20and%20so%20on<br /><br /><div style="text-align: center"><img width="396" height="342" src="http://testserver2.com/photos/5186145181.jpg" alt="" style="border: medium none" /></div><br />test messages and so on <br /><br />"

我想抓取图片网址“http://testserver2.com/photos/5186145181.jpg”,并将其放入“img_link_results”。

$img_linkA = explode(' ', $img_link); 
$img_link_results = array(); 
foreach($img_linkA as $img_link) { 
    if(preg_match_all('/<img[^>]+>/i', trim($img_link))) { 
        $img_link_results[] = trim($img_link); 
        if (preg_match('#^http:\/\/(.*)\.(gif|png|jpg)$#i', $img_link_results, $tmp)){ 
            $img_link_results = $tmp; 
        }           
    } 
} 
//show results 
echo "<img src='$img_link_results' width='100px' height='100px'>".'<br />';
foreach($img_link_results as $val){ 
    echo "<img src='$img_link_results' width='100px' height='100px'>".'<br />';
}

但是,网页上的结果是“数组”。

请让我知道什么是错的。

提前致谢。

3 个答案:

答案 0 :(得分:0)

您正在回显$img_link_results这是一个数组。您需要使用$val,数组元素如下:

//show results 
foreach($img_link_results as $val){ 
    echo "<img src='$val' width='100px' height='100px'>".'<br />';
}

答案 1 :(得分:0)

而不是使用

echo "<img src='$img_link_results' width='100px' height='100px'>".'<br />';

尝试使用$val代替

echo "<img src='$val' width='100px' height='100px'>".'<br />';

答案 2 :(得分:0)

添加var_dump($img_link_results);,您就会看到它是空的。

//output
array(0) {
}

有些东西被打破了。

在这里演示:http://codepad.org/gHKtBbtd