Kyo*_*ter 14 php regex parsing src preg-match
我正在尝试运行preg_match从文章中的第一个IMG标记中提取SRC属性(在这种情况下,存储在$ row-> introtext中).
preg_match('/\< *[img][^\>]*[src] *= *[\"\']{0,1}([^\"\']*)/i', $row->introtext, $matches);
Run Code Online (Sandbox Code Playgroud)
而不是得到类似的东西
images/stories/otakuzoku1.jpg
Run Code Online (Sandbox Code Playgroud)
从
<img src="images/stories/otakuzoku1.jpg" border="0" alt="Inside Otakuzoku's store" />
Run Code Online (Sandbox Code Playgroud)
我得到了
0
Run Code Online (Sandbox Code Playgroud)
正则表达式应该是正确的,但我不知道为什么它似乎匹配border属性而不是src属性.
或者,如果您有耐心阅读这一点而不直接跳到回复字段并输入"使用HTML/XML解析器",那么可以推荐一个很好的教程,因为我很难找到一个适用于PHP 4.
PHP 4.4.7
Cal*_*ebD 38
你的表达不正确.尝试:
preg_match('/< *img[^>]*src *= *["\']?([^"\']*)/i', $row->introtext, $matches);
Run Code Online (Sandbox Code Playgroud)
请注意删除img和src周围的括号以及其他一些清理.
这是使用内置函数(php> = 4)的方法:
$parser = xml_parser_create();
xml_parse_into_struct($parser, $html, $values);
foreach ($values as $key => $val) {
if ($val['tag'] == 'IMG') {
$first_src = $val['attributes']['SRC'];
break;
}
}
echo $first_src; // images/stories/otakuzoku1.jpg
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
55299 次 |
| 最近记录: |