preg_match_all('/<img(.*)width="9" height="9" alt="(.*)" title="" />/' , $html , $sources );
foreach($sources[1] as $alt){
echo $alt."<br\>";
}
我想列出所有图片中与html页面匹配的所有alt标签值 怎么了?
我想使用正则表达式而不是dom。
答案 0 :(得分:0)
请consult the php documentation进行正确的preg_match_all
来电。你需要提供正则表达式分隔符!
此外,您的问题描述不是非常具体,所以如果您需要更多帮助,则需要重写您的问题。
答案 1 :(得分:0)
你需要转义img标签的/:
preg_match_all('/<img(.*)width="9" height="9" alt="(.*)" title="" \/>/' , $html , $sources );
否则,它被视为您的refex的结束。
答案 2 :(得分:0)
好吧,不知道确切的html源代码,很难说。但是有很多问题,这也是为什么新手不应该为此目的使用正则表达式的一个很好的例子:
/>
结尾,则也不匹配。\s*
)(.*)
在任何情况下都应为(.*?)
。但是,最好使用[^>]+
或[^"]+
进行此项使用。#e
eval标志在preg_match_all中没有用。答案 3 :(得分:0)
你只是顽固,使用PHP Simple HTML DOM Parser或类似内容来解析HTML。
例如:
// Create DOM from URL or file
include('simple_html_dom.php');
$html = file_get_html('http://www.scroogle.org/');
// Find all images
foreach($html->find('img') as $element)
echo $element->src . '<br>';
echo $element->alt. '<br>';