查找图片,但只有jpeg

时间:2012-04-04 12:00:56

标签: php

我使用以下内容来解析html页面并返回图像:

$html = file_get_html($url);

foreach($html->find('img') as $e){ 

    $image = $e->src;

            }

理想情况下,虽然我只想显示带有.jpg扩展名的文件 - 我知道我可以使用preg_match但是有更高效的方法吗?

3 个答案:

答案 0 :(得分:3)

注意:仅仅因为文件具有类似JPEG的扩展,意味着引用文件的内容实际上是JPEG数据!


pathinfo()是您正在寻找的本机PHP函数。是的,你可以根据需要操纵字符串,但是如果你正在寻找“正确”的方法,那么它就是:

$html = file_get_html($url);

// file extensions we are looking for
$allowedExtensions = ['jpg', 'jpeg', 'jpe'];

foreach($html->find('img') as $el){ 
    // file extensions are usually treated as case insensitive, but the
    // implied comparison operator used with in_array() is case sensitive
    // so normalise the data to lower-case.
    $extension = strtolower(pathinfo($el->src, PATHINFO_EXTENSION));

    if (in_array($extension, $allowedExtensions)) {
        // File has a JPEG-like file extension
    }
}

答案 1 :(得分:3)

你的代码很好。这适用于您的情况

// Create DOM from URL or file
$html = file_get_html('http://www.yahoo.com/');
// Find all images
foreach($html->find('img') as $element)
{
    $img = strtolower($element->src);
    if(pathinfo($img,PATHINFO_EXTENSION) == "jpg")
        echo $element->src . '<br>';
}

答案 2 :(得分:0)

$split = explode(".", $image);
$extention = $split[count($split)-1];