Php 从文本和html标记中检测并提取图像url

Php 从文本和html标记中检测并提取图像url,php,html,Php,Html,如何检测文本中是否有图像html标记并仅提取图像的url 例如 提取此url: http:// www.someurl.com/somefileprocessor.php/12345/somedir/somesubdir/someniceimage.j pg 来自此标记(此标记可以位于另一组文本和/或html中) 谢谢,这是事先准备好的 ngelo快速尝试一个]*?>/i',$str,$matches); 快速尝试一个]*?>/i',$str,$matches); 您可以使用CRUL获

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

例如

提取此url:

http://
www.someurl.com/somefileprocessor.php/12345/somedir/somesubdir/someniceimage.j
pg
来自此标记(此标记可以位于另一组文本和/或html中)


谢谢,这是事先准备好的
ngelo

快速尝试一个
]*?>/i',$str,$matches);

快速尝试一个
]*?>/i',$str,$matches);

您可以使用
CRUL
获取内容,然后从内容中提取所有
img
标记。 要通过
curl
获取数据:

preg_match_all('/<img[^>]*?\s+src\s*=\s*"([^"]+)"[^>]*?>/i', $str, $matches);
然后使用正则表达式提取数据

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;
}
这有助于提取所有图像URL(无论是否在img标记中)


如果您需要crawler,您可以使用您可以使用
CRUL
获取内容,然后从内容中提取所有
img
标记。 要通过
curl
获取数据:

preg_match_all('/<img[^>]*?\s+src\s*=\s*"([^"]+)"[^>]*?>/i', $str, $matches);
然后使用正则表达式提取数据

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;
}
这有助于提取所有图像URL(无论是否在img标记中)


如果您需要crawler,您可以使用

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

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

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

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

答案似乎在这里:。答案似乎在这里:。在img和src属性之间应该至少有一个空格。您应该添加一个\s+。这失败了:img和src属性之间应该至少有一个空格。您应该添加一个\s+。这失败了: