Php 正则表达式从段落DOM筛选图像名称
我的站点中有此DOM:Php 正则表达式从段落DOM筛选图像名称,php,regex,Php,Regex,我的站点中有此DOM: $question_data = '<p>Gambar di bawah menunjukkan ciri-ciri haiwan berikut:</p> <p><img src="/uploads/images/questions/96_20160303124007.PNG" /></p> <table border="1" cellpadding="1" cellspacing="1" styl
$question_data = '<p>Gambar di bawah menunjukkan ciri-ciri haiwan berikut:</p>
<p><img src="/uploads/images/questions/96_20160303124007.PNG" /></p>
<table border="1" cellpadding="1" cellspacing="1" style="width: 500px;">
<tbody>
<tr>
<td style="text-align: center;">Beranak</td>
<td>
<p style="text-align: center;">Bertelur</p>
</td>
</tr>
</tbody>
</table>
<p>##a</p>';
但是没有输出。。。有人知道如何解决这个问题吗?将常数更改为:
define('GET_IMAGE_NAME_WITH_EXTENSION_PATTERN', '/\d+_\d+\.(?:jpeg|jpg|bmp|gif|png)/i');
这是因为正则表达式不是HTML解析的正确工具
不使用正则表达式的解决方案:
$xml = new DOMDocument();
$xml->loadHTML($question_data);
$imgNodes = $xml->getElementsByTagName('img');
$arr_image_file_names = [];
for ($i = $imgNodes->length - 1; $i >= 0; $i--) {
$imgNode = $imgNodes->item($i);
$arr_image_file_names[] = pathinfo($imgNode->getAttribute('src), PATHINFO_BASENAME);
}
谢谢我喜欢这个答案。
$xml = new DOMDocument();
$xml->loadHTML($question_data);
$imgNodes = $xml->getElementsByTagName('img');
$arr_image_file_names = [];
for ($i = $imgNodes->length - 1; $i >= 0; $i--) {
$imgNode = $imgNodes->item($i);
$arr_image_file_names[] = pathinfo($imgNode->getAttribute('src), PATHINFO_BASENAME);
}