0

如何检测文本中是否有一些图像 html 标记并仅提取图像的 url?

例如。

提取此网址:

http://
www.someurl.com/somefileprocessor.php/12345/somedir/somesubdir/someniceimage.j
pg

从这个标签(这个标签可以在另一堆文本和/或html中)

<img title="Some nice title" border="0"
hspace="0" alt="some useful hint" src="http://
www.someurl.com/somefileprocessor.php/12345/somedir/somesubdir/someniceimage.j
pg" width="629" height="464" />

提前感谢安杰洛

4

3 回答 3

2

快速尝试<img/>标签特定的正则表达式:

preg_match_all('/<img[^>]*?\s+src\s*=\s*"([^"]+)"[^>]*?>/i', $str, $matches);

例子

于 2013-08-26T19:11:45.467 回答
1

您可以使用CRUL获取内容,然后img从内容中提取所有标签。通过以下方式获取数据curl

function get_data($url) {
    $ch = curl_init();
    $timeout = 5;
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}

然后使用正则表达式提取数据。

^https?://(?:[a-z\-]+\.)+[a-z]{2,6}(?:/[^/#?]+)+\.(?:jpg|gif|png)$

这可以帮助您提取所有图像 url(是否在 img 标签中)。

如果你需要爬虫,你可以使用PHPCrawl

于 2013-08-26T19:19:46.387 回答
0

非常感谢 awnswers,因为我学习了更多 PHP。我尝试这种快速而肮脏的方式,它还提取图像url

$imageurl    = strstr($title, 'src',FALSE);
$imageurl    = strstr($imageurl,'"',FALSE);
$imageurlpos = strpos($imageurl,'"');
$imageurl    = substr($imageurl,$imageurlpos+1);
$imageurlpos = strpos($imageurl,'"');
$imageurl    = substr($imageurl,0,$imageurlpos);
于 2013-08-27T20:15:56.163 回答