-1
<HostProperties
> 태그 내부의 모든 항목을 추출하려고합니다. 나는이 정규식을 파이썬에서 사용하고 잘 작동하지만 PHP에서이 정규식을 사용하면 <HostProperties>
태그 내의 다른 모든 태그를 무시하고 아래에 표시된 출력을 제공합니다.PHP 정규식에서 캡처 한 결과에 HTML 태그가 표시되지 않습니다.
내 입력된다 :
<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>
내 PHP 정규식 번호 :
preg_match_all("#(?<=(<HostProperties>))((?:.|\n)*?)(?=</HostProperties)#s", $reading, $host_properties);
echo "<pre>";
var_dump($host_properties[2]);
echo "</pre>";
echo "<br>";
내 출력된다 :
cpe:/a:microsoft:iis:8.5
Fri May 6 07:15:32 2016
1462533332
false
Advanced Scan
16
cpe:/o:microsoft:windows
windows
cpe:/o:microsoft:windows_server_2012:r2::datacenter
general-purpose
Microsoft Windows Server 2012 R2 Datacenter
34:40:b5:a1:be:8a
172.23.144.5
172.23.144.5
172.23.144.5
172.23.144.5
PKLHODC03
Fri May 6 07:05:56 2016
내 예상 출력된다 :
<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) ~ s ''을 시도하고'$ host_properties [0] '를 출력하십시오. –
sln
웹 브라우저에서 출력을보고 있습니까? 이러한 태그는 HTML 인 것처럼 브라우저에 표시되는 대신 해석 될 수 있습니다. – Chris
''# (. *?) HostProperties> #s "'와'print_r ($ matches [1])'을 사용하십시오. 둘러보기가 필요 없습니다. 그런 다음 DOM 사용을 고려하십시오. –