我正在使用以下内容来解析 html 页面并返回图像:
$html = file_get_html($url);
foreach($html->find('img') as $e){
$image = $e->src;
}
理想情况下,虽然我只想显示带有 .jpg 扩展名的文件 - 我知道我可能可以使用 preg_match 但有更有效的方法吗?
我正在使用以下内容来解析 html 页面并返回图像:
$html = file_get_html($url);
foreach($html->find('img') as $e){
$image = $e->src;
}
理想情况下,虽然我只想显示带有 .jpg 扩展名的文件 - 我知道我可能可以使用 preg_match 但有更有效的方法吗?
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
}
}
你的代码很好。这将适用于您的情况
// 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>';
}
$split = explode(".", $image);
$extention = $split[count($split)-1];