【发布时间】:2011-11-20 17:52:46
【问题描述】:
我正在尝试从我的每个帖子中获取第一张图片。如果我只有一张图片,下面的代码效果很好。但如果我有更多,它会给我一个形象,但并不总是第一个。
我真的只想要第一张图片。很多时候第二张图片是下一个按钮
$texthtml = 'Who is Sara Bareilles on Sing Off<br>
<img alt="Sara" title="Sara" src="475993565.jpg"/><br>
<img alt="Sara" title="Sara two" src="475993434343434.jpg"/><br>';
preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $texthtml, $matches);
$first_img = $matches [1] [0];
现在我可以把这个“$first_img”放在简短描述前面
<img alt="Sara" title="Sara" src="<?php echo $first_img;?>"/>
【问题讨论】:
-
你确定正则表达式总是匹配第一个吗?每次调用时尝试打印数组以查看:
error_log(var_export($matches, true)); -
那是我的问题。它总是返回一张图片,但我需要它只返回第一张图片
-
你的代码看起来应该可以工作(虽然我没有检查正则表达式)。您正在访问第二个数组,其中包含捕获的模式,然后是该数组中的第一个元素,即第一个图像。您是否尝试将整个阵列打印出来并确保当您看到错误的图像时,第一张图像也匹配?我敢打赌没有。
标签: php image preg-match-all