Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 正则表达式从段落DOM筛选图像名称_Php_Regex - Fatal编程技术网

Php 正则表达式从段落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

我的站点中有此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" 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);
}