php script dönüş belirli xml tag değeri

2 Cevap php

i aşağıdaki xml sayfa www.ip-address.com/test.xml gelen ip adresi ayıklamak için php script gerekiyor

<dnstools>
<service_provider>Domain Tools</service_provider>
<provider_url>http://www.domaintools.com/</provider_url>
<date>Wed, 12 May 2010 00:43:07 GMT</date>
<unix_time>1273624987</unix_time>
<ip_address>94.252.157.241</ip_address>
<hostname>94.252.157.241</hostname>
<blacklist_status>Clear</blacklist_status>
<remote_port>43577</remote_port>
<protocol>HTTP/1.0</protocol>
<connection>keep-alive</connection>
<keep_alive/>

2 Cevap

Diğer alternatif, especially when handling XML files, PHP'nin SimpleXML, kolayca XML ağaç yapısını geçebilir bu şekilde kullanmak olacaktır. Aşağıdaki gibi olabilir:

Bu sizin ini dosyasına ihtiyacınız uzak dosyaları yüklüyorsanız, "allow_url_fopen" etkin olduğunu belirtmekte yarar var.

allow_url_fopen = On

Bu yüklü olmanın XML varsayarsak

<?xml version="1.0" encoding="UTF-8"?>
<dnstools>
    <service_provider>Domain Tools</service_provider>
    <provider_url>http://www.domaintools.com/</provider_url>
    <date>Wed, 12 May 2010 00:43:07 GMT</date>
    <unix_time>1273624987</unix_time>
    <ip_address>94.252.157.241</ip_address>
    <hostname>94.252.157.241</hostname>
    <blacklist_status>Clear</blacklist_status>
    <remote_port>43577</remote_port>
    <protocol>HTTP/1.0</protocol>
    <connection>keep-alive</connection>
    <keep_alive/>
</dnstools>

PHP dosyasında

$xml = simplexml_load_file('http://mydomain.com/test.xml');
echo $xml->children()->ip_address;

Ve almalısınız

94.252.157.241

Gördüğünüz gibi, SimpleXML kullanarak http://www.php.net/manual/en/book.simplexml.php gerçekten basit :) alır

Basit bir regex böyle bir şey için yeterince kolaydır.

preg_match_all('/(.*)/U', $xml_string, $matches);

$ Üzerinde bir var_dump bu çıkışını nasıl işleyeceğini görmek için maçları etmeyin. Orada tek bir ip adresi (veya yalnızca ilk bir ihtiyaç) varsa, yerine preg_match_all () preg_match () kullanmak olabilir