Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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正则表达式捕获的结果中未显示HTML标记_Php_Regex_Pcre - Fatal编程技术网

从PHP正则表达式捕获的结果中未显示HTML标记

从PHP正则表达式捕获的结果中未显示HTML标记,php,regex,pcre,Php,Regex,Pcre,我试图提取标记中的所有内容。我在python中使用这个正则表达式,它工作得很好,但是当我在PHP中使用这个正则表达式时,它会忽略标记中的所有其他标记,并给出如下所示的输出 我的意见是: <HostProperties> <tag name="cpe-1">cpe:/a:microsoft:iis:8.5</tag> <tag name="HOST_END">Fri May 6 07:15:32 2016</tag> <tag n

我试图提取
标记中的所有内容。我在python中使用这个正则表达式,它工作得很好,但是当我在PHP中使用这个正则表达式时,它会忽略
标记中的所有其他标记,并给出如下所示的输出

我的意见是:

<HostProperties>
<tag name="cpe-1">cpe:/a:microsoft:iis:8.5</tag>
<tag name="HOST_END">Fri May  6 07:15:32 2016</tag>
<tag name="LastUnauthenticatedResults">1462533332</tag>
<tag name="Credentialed_Scan">false</tag>
<tag name="policy-used">Advanced Scan</tag>
<tag name="patch-summary-total-cves">16</tag>
<tag name="cpe">cpe:/o:microsoft:windows</tag>
<tag name="os">windows</tag>
<tag name="cpe-0">cpe:/o:microsoft:windows_server_2012:r2::datacenter</tag>
<tag name="system-type">general-purpose</tag>
<tag name="operating-system">Microsoft Windows Server 2012 R2 Datacenter</tag>
<tag name="mac-address">34:40:b5:a1:be:8a</tag>
<tag name="traceroute-hop-0">172.23.144.5</tag>
<tag name="host-ip">172.23.144.5</tag>
<tag name="netbios-name">PKLHODC03</tag>
<tag name="HOST_START">Fri May  6 07:05:56 2016</tag>
</HostProperties>
我的预期产出是:

 <tag name="cpe-1">cpe:/a:microsoft:iis:8.5</tag>
 <tag name="HOST_END">Fri May  6 07:15:32 2016</tag>
 <tag name="LastUnauthenticatedResults">1462533332</tag>
 <tag name="Credentialed_Scan">false</tag>
 <tag name="policy-used">Advanced Scan</tag>
 <tag name="patch-summary-total-cves">16</tag>
 <tag name="cpe">cpe:/o:microsoft:windows</tag>
 <tag name="os">windows</tag>
 <tag name="cpe-0">cpe:/o:microsoft:windows_server_2012:r2::datacenter</tag>
 <tag name="system-type">general-purpose</tag>
 <tag name="operating-system">Microsoft Windows Server 2012 R2    Datacenter</tag>
 <tag name="mac-address">34:40:b5:a1:be:8a</tag>
 <tag name="traceroute-hop-0">172.23.144.5</tag>
 <tag name="host-ip">172.23.144.5</tag>
 <tag name="netbios-name">PKLHODC03</tag>
 <tag name="HOST_START">Fri May  6 07:05:56 2016</tag>
echo "<pre>";
echo htmlspecialchars($host_properties[2]);
echo "</pre>";
cpe:/a:microsoft:iis:8.5
2016年5月6日星期五07:15:32
1462533332
假的
高级扫描
16
cpe:/o:microsoft:windows
窗户
cpe:/o:microsoft:windows\u服务器\u 2012:r2::数据中心
通用型
Microsoft Windows Server 2012 R2数据中心
34:40:b5:a1:be:8a
172.23.144.5
172.23.144.5
PKLHODC03
2016年5月6日星期五07:05:56
为什么我的输出与我期望的不同?

代码>”;
我认为您在该输出上弄错了。但是请尝试
”~(?您是否在web浏览器中查看输出?这些标记可能会被浏览器解释而不是显示,就像它们是HTML一样。请使用
“#(.*)s”
打印($matches[1])。不需要查找。然后,考虑使用DOM。Faisal,下面给出的答案回答您的问题吗?如果是,请记住。这显示了其他用户,您找到了解决方案。
 <tag name="cpe-1">cpe:/a:microsoft:iis:8.5</tag>
 <tag name="HOST_END">Fri May  6 07:15:32 2016</tag>
 <tag name="LastUnauthenticatedResults">1462533332</tag>
 <tag name="Credentialed_Scan">false</tag>
 <tag name="policy-used">Advanced Scan</tag>
 <tag name="patch-summary-total-cves">16</tag>
 <tag name="cpe">cpe:/o:microsoft:windows</tag>
 <tag name="os">windows</tag>
 <tag name="cpe-0">cpe:/o:microsoft:windows_server_2012:r2::datacenter</tag>
 <tag name="system-type">general-purpose</tag>
 <tag name="operating-system">Microsoft Windows Server 2012 R2    Datacenter</tag>
 <tag name="mac-address">34:40:b5:a1:be:8a</tag>
 <tag name="traceroute-hop-0">172.23.144.5</tag>
 <tag name="host-ip">172.23.144.5</tag>
 <tag name="netbios-name">PKLHODC03</tag>
 <tag name="HOST_START">Fri May  6 07:05:56 2016</tag>
echo "<pre>";
echo htmlspecialchars($host_properties[2]);
echo "</pre>";