1. #1
    Nightfall's Avatar
    Registered
    15/07/05
    Location
    Overpelt
    Posts
    1,259
    iTrader
    72 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/0

    XML node d.m.v. PHP naar textarea

    Beste mensen,

    Ik zit vast na uren sleutelen een van mijn websites. En na vele pogingen door suggesties van mijn goede vriend Google, geef ik het voorlopig op.

    Weet iemand hier toevallig hoe ik via PHP één node(?) uit een XML source kan nemen?

    De XML source is geen bestand, het is een API link welke er zo uit ziet:
    Code:
    https://secure.mysite.com/api=keyid?action=getip
    Het is ook niet de bedoeling dat ik de output ergens ga opslaan ofzo, het moet een eenmalige request blijven.

    De XML code die dan komt is de volgende (lichtjes anoniem gemaakt), en hier zou ik dus graag het "IP" alleen willen tonen in een textbox d.m.v. een PHP functie.

    Code:
    <api>
    <version>1.0</version>
    <response>
    <result module="ips" action="" type="select" code="1000">SUCCESS</result>
    <details>
    <detail>
    <code>1000</code>
    <description>IP details from: 11ID</description>
    <id>11ID</id>
    <server_pack_id>11ID</server_pack_id>
    <server_name>11SNAME</server_name>
    <ip_record>
    <ip>95.my.ip.here</ip>
    <reverse_lookup>hosted-by.mydomain.com</reverse_lookup>
    <ip_details>
    <gateway>95.my.gateway.here</gateway>
    <mask>255.my.mask.here</mask>
    </ip_details>
    </ip_record>
    <ip_record>
    <ip>95.my.ip.here</ip>
    <reverse_lookup>hosted-by.mydomain.com</reverse_lookup>
    </ip_record>
    </detail>
    </details>
    </response>
    </api>
    Een antwoord als "gebruik simplexml eens" helpt me niet verder. Graag zie ik een lijntje code of 4, mocht iemand raad weten.

    Alvast bedankt!
    ~ Nintendo ID: Agghanim ~
    ~ 3DS Friends Code: 4124-4977-2080 ~
    no votes  

  2. #2
    dJeez's Avatar
    Registered
    17/07/02
    Location
    Sol System
    Posts
    10,064
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    27/78
    Gebruik SimpleXML eens.

    Komaan, dat is POEPsimpel. Zet de output van SimpleXML in een variabele en dump die met var_dump, dan zie je direct hoe je aan dat veld kan geraken.

    En wat de regeltjes code betreft kan je terecht op : http://be2.php.net/manual/en/simplex...ples-basic.php
    PSN: dJeezBE - Delicious bookmarks
    Disclaimer: I am currently suffering from severe CSD (Compulsive Sarcasm Disorder). - L'onion fait la farce - Facile largire de alieno
    Pastafarian by choice
    no votes  

  3. #3
    adrianhates's Avatar
    Registered
    23/01/06
    Posts
    2,115
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    23/23
    haha geweldige comment dJeez , en terecht!
    no votes  

  4. #4
    Nightfall's Avatar
    Registered
    15/07/05
    Location
    Overpelt
    Posts
    1,259
    iTrader
    72 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Heb ik al gedaan, het gaf geen output aangezien hij (denk ik) de source niet kan lezen daar het geen xml bestand is, of ligt het misschien aan het feit dat het via ssl de output geeft?

    Via libxml_use_internal_errors:
    Code:
    Failed loading XML failed to load external entity "mijn url hier"
    Ik weet dat het poepsimpel zou moeten zijn, ik had simplexml daarom ook gebruikt met een extern xml bestand en dat werkte wel prima.
    Last edited by Nightfall; 04-11-2011 at 11:36.
    ~ Nintendo ID: Agghanim ~
    ~ 3DS Friends Code: 4124-4977-2080 ~
    no votes  

  5. #5
    adrianhates's Avatar
    Registered
    23/01/06
    Posts
    2,115
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    23/23
    enkele gedachte:

    Hebt ge openssl op uw server geinstalleerd?
    gebruikt ge misschien relatieve paden fzo? Als ge extern gaat ophalen zou ge denk ik bvb wel een absoluut path moeten opgeven.

    Misschien uw code nekeer posten als het niet te lang is ..
    no votes  

  6. #6
    Nightfall's Avatar
    Registered
    15/07/05
    Location
    Overpelt
    Posts
    1,259
    iTrader
    72 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/0
    openssl: ja (zowel op mijn server/domein als server/domein van de xml)
    url: absoluut

    Op dit moment bestaat mijn xml code niet over meer dan dit: (eerder troubleshooting dan iets anders). Zolang hij nog eens niet aangeeft dat hij een XML vindt, kan er niets mee gedaan worden. Ik ben ook maar een noobje dus ik weet niet in hoeverre overige code relevant gaat zijn.

    PHP Code:
    libxml_use_internal_errors(true);

    $url="https://full.url.to/myapi?action=dothis?key=45648945615616"//fictief voorbeeld
    $url=file_get_contents($url);
    $sxe simplexml_load_string($url);

    var_dump($sxe); //return boolean(false)
        
    if (!$sxe) {
        echo 
    "Failed loading XML\n";
        foreach(
    libxml_get_errors() as $error) {
            echo 
    "\t"$error->message;
        }

    Output: (met file_get_contents, met simplexml_load_string)
    var_dump - echo - $error
    Code:
    bool(false) Failed loading XML
    Output: (zonder file_get_contents, met simplexml_load_file)
    var_dump - echo - $error
    Code:
    bool(false) Failed loading XML failed to load external entity https://full.url.to/myapi?action=dothis?key=45648945615616
    Last edited by Nightfall; 04-11-2011 at 17:14.
    ~ Nintendo ID: Agghanim ~
    ~ 3DS Friends Code: 4124-4977-2080 ~
    no votes  

  7. #7
    Fr3aK's Avatar
    Registered
    17/07/02
    Location
    Antwerpen
    Posts
    2,614
    iTrader
    0
    Mentioned
    0 Post(s)
    php - file_get_contents with https? - Stack Overflow

    Staan ook een paar oplossingen tussen, user agent header toevoegen, zien dat "allow_url_include = On" aanwezig is in php.ini, enz...
    no votes  

  8. #8
    Nightfall's Avatar
    Registered
    15/07/05
    Location
    Overpelt
    Posts
    1,259
    iTrader
    72 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/0
    thanks, ik ga het zo snel mogelijk eens bekijken!
    ~ Nintendo ID: Agghanim ~
    ~ 3DS Friends Code: 4124-4977-2080 ~
    no votes  

  9. #9
    dJeez's Avatar
    Registered
    17/07/02
    Location
    Sol System
    Posts
    10,064
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    27/78
    Waarom haal je die info eerst binnen via file_get_contents om ze dan als string te gaan parsen met simplexml? Waarom niet direct simplexml_load_file gebruiken met de URL as parameter (ervan uitgaande dat de URL wrappers actief zijn, maar ik moet de eerste degelijke hoster nog tegenkomen die die afzet)?

    Daarnaast klopt de URL van je fictieve voorbeeld ook niet. Je kan geen 2 query strings gebruiken, als je meerdere parameters hebt dan geef je die gescheiden door ampersands (&) door (http://en.wikipedia.org/wiki/Query_string).

    BTW libxml2 - failed to load external entity xml file - Stack Overflow
    Last edited by dJeez; 04-11-2011 at 21:49.
    PSN: dJeezBE - Delicious bookmarks
    Disclaimer: I am currently suffering from severe CSD (Compulsive Sarcasm Disorder). - L'onion fait la farce - Facile largire de alieno
    Pastafarian by choice
    no votes  

  10. #10
    Nightfall's Avatar
    Registered
    15/07/05
    Location
    Overpelt
    Posts
    1,259
    iTrader
    72 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/0
    De bedoeling was idd dat het enkel via simplexml_load_file zou gebeuren, maar daar ik niet wist of hij effectief de source als file zou zien dacht ik de source zeker via een string leesbaar te maken.

    De url in het voorbeeld is idd verkeerd. De 2de en alle volgende parameters worden uiteraard via & gescheiden en niet ?. Een typo in het voorbeeld, niet in de praktijk.

    Die laatste link die je gaf had ik idd ook al tegengekomen, maar nog niet toegepast (eerlijk gezegd weet ik niet hoe, leervoer voor morgen). Hartelijk bedankt voor de reacties!
    ~ Nintendo ID: Agghanim ~
    ~ 3DS Friends Code: 4124-4977-2080 ~
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in