Php 提取图像源的语法regex
喂 我不能“猜测”我应该使用什么样的语法来提取图像的源代码,而只是提取网址而不是Php 提取图像源的语法regex,php,regex,Php,Regex,喂 我不能“猜测”我应该使用什么样的语法来提取图像的源代码,而只是提取网址而不是src=或者引号 以下是我的代码: function get_all_images_src() { $content = get_the_content(); preg_match_all('|src="(.*?)"|i', $content, $matches, PREG_SET_ORDER); foreach($matches as $path) { echo $path[
src=
或者引号
以下是我的代码:
function get_all_images_src() {
$content = get_the_content();
preg_match_all('|src="(.*?)"|i', $content, $matches, PREG_SET_ORDER);
foreach($matches as $path) {
echo $path[0];
}
}
当我使用它时,我打印了以下内容:
src="http://project.bechade.fr/wp-content/uploads/2009/09/mer-300x225.jpg"
我只想得到这个:
http://project.bechade.fr/wp-content/uploads/2009/09/mer-300x225.jpg
有什么想法吗
感谢您的帮助。 < P> > $PATH(1)而不是<代码> $PATH(0)< P>不完全是您的问题的答案,但解析HTML时,请考虑使用适当的HTML解析器:
foreach($html->find('img') as $element) {
echo $element->src . '<br />';
}
foreach($html->find('img')as$element){
echo$element->src.“
”;
}
见:
$path[0]是匹配的完整字符串$路径[1]是第一个分组。可以使用“作为delimeter”分解字符串,然后得到的数组中的第二项将是正确的字符串: $array=explode(“”,$full_src) $bit_you_want=$array[1] 重新设计您的原始功能,它将是:
function get_all_images_src() {
$content = get_the_content();
preg_match_all('|src="(.*?)"|i', $content, $matches, PREG_SET_ORDER);
foreach($matches as $path) {
$src = explode('"', $path);
echo $src[1];
}
}
谢谢你的正确回答。
我想我已经很久没有回复了,因为他删除了它,我只是不知道他的答案到哪里去了
这是我收到的邮件:
“|src=“(.*?”| i”作为一个
正则表达式。请尝试使用“|src=”([^“]+)“| i”。
(哪一个仍然不是最强大的
但解决方案比什么好
你得到了
还有,其他人都说了什么,你呢
需要$path,而不是$path[0]。您需要
已提取所有src
将属性转换为$matches[]。该属性已
与$path[0]无关。如果
没有获得所有的src属性
在课文中,有一个问题
代码中的其他地方
还有一件事-你应该用一个真正的
HTML解析器,因为img标记
不是src的唯一标记
属性。如果您正在使用此代码
在原始HTML源代码中,它将
不只是
标签等
-伊西
我做了他让我做的一切,包括使用Bart的HTML解析器(第二个答案)
它很有魅力!谢谢你,伙计…我不懂PHP,但我建议尝试PREG_PATTERN_ORDER,也许还有$path[1]。我使用“$path[0]”,因为我想显示所有的src图像,我只得到第一个带有“$path[1]”的图像,真的很有趣,伙计!谢谢分享……让事情变得非常简单
function get_all_images_src() {
$content = get_the_content();
preg_match_all('|src="(.*?)"|i', $content, $matches, PREG_SET_ORDER);
foreach($matches as $path) {
$src = explode('"', $path);
echo $src[1];
}
}