South_Bridge Skrevet 25. januar 2009 Del Skrevet 25. januar 2009 Jeg vil gjerne hente ut innhold fra andre sider med php. for eksempel data fra min character fra Amory sidene til World Of Warcraft. Hvis du ikke kjenner til Armory så lister den opp alle spillere over level 10. Tar du "view source" på siden(.xml) får du dette(utdrag): <characterBars> <health effective="18274"/> <secondBar casting="0" effective="10601" notCasting="53" type="m"/> </characterBars> Jeg har prøvd med noen variasjoner med fopen osv men jeg får ikke dette til... Noen andre som får dette til? Eksempel char på armoryen så dere kan høyreklikke å se kilde selv(ikke min, bare tok en som et eksempel): http://armory.wow-europe.com/character-she...b&n=Twinkie Lenke til kommentar
Gjest Slettet-rXRozPkg Skrevet 25. januar 2009 Del Skrevet 25. januar 2009 Anbefaler at du starter her: http://no2.php.net/manual/en/function.simp...l-load-file.php Så får du heller si i fra hvis du støter på problemer med bruk av SimpleXML Lenke til kommentar
AlecTBM Skrevet 25. januar 2009 Del Skrevet 25. januar 2009 Som posten over så er simplexml saken for dette SimpleXML er et utrolig kraftig verktøy, hvis du lærer deg det så vil du se på xml sider helt anderledes enn før. Lykke til og bare spør hvis du trenger hjelp Lenke til kommentar
Twinflower Skrevet 28. januar 2009 Del Skrevet 28. januar 2009 (endret) Jeg kan poste litt av koden jeg bruker for å hente data fra Yr.no sine xml-filer. Da ser du hvor latterlig enkelt dette er: //Samle å skrive ut værdata fra Molde $molde = "http://www.yr.no/sted/Norge/M%C3%B8re_og_Romsdal/Molde/Molde_lufthavn,_%C3%85r%C3%B8/varsel.xml"; if($content_molde = file_get_contents( $molde )) { $content_molde = file_get_contents( $molde ); $xml_molde = simplexml_load_string( $content_molde ); $weather_molde = $xml_molde->forecast->tabular->time[0]->symbol['name']; $weatherpic_molde = "/_yrpics/".$xml_molde->forecast->tabular->time[0]->symbol['number'].".png"; $temp_molde = $xml_molde->forecast->tabular->time[0]->temperature['value']. " °C"; $windspeed_molde = $xml_molde->forecast->tabular->time[0]->windSpeed['mps']; $windname_molde = $xml_molde->forecast->tabular->time[0]->windSpeed['name']; $knots_molde = $windspeed_molde * 1.94384449; $knots_molde = ceil($knots_molde); $winddir_molde = $xml_molde->forecast->tabular->time[0]->windDirection['name']; $winddir_molde = strtolower($winddir_molde); $timezone_molde = $xml_molde->location->timezone['id']; $location_molde = $$xml_molde->location->name; $precipitation_molde = $xml_molde->forecast->tabular->time[0]->precipitation['value']." mm"; echo <<<EOF \n\t<div style="display:block;" id="yr-molde"> <h5>Årø flyplass</h5> <img src="$weatherpic_molde" alt="$weather_molde" title="$weather_molde"/> <h5>$weather_molde</h5> <p> <span>Temp:</span> $temp_molde <br/> <span>Nedbør:</span> $precipitation_molde <br/> <span>Vind:</span> <acronym title="$windname_molde">$knots_molde knop</acronym><br/> <span>Fra:</span> $winddir_molde </p> <a href="java script:toggle('yr-molde','yr-bjorli');" title="">Sjekk Bjorli flyplass</a> <br class="clearfloat" /> </div> EOF; } //Molde kunne ikke hentes else { echo <<<EOF \n\t<div id="yr-molde"> <h5>Årø Flyplass</h5> <p>Værdata fra Bjorli kunne ikke hentes fra <a href="http://www.yr.no" title="Yr.no">Yr.no</a></p> <a href="java script:toggle('yr-molde','yr-bjorli');" title="">Prøv Bjorli/a> <br class="clearfloat" /> </div> EOF; } Og her er selve xml-filen, slik at du kan se sammenhengen: http://www.yr.no/sted/Norge/M%C3%B8re_og_R...3%B8/varsel.xml Edit: ser at det ble litt line-breaking der. Foreslår at du kopierer koden og limer den inn i f.eks notepad for å få hver linje på hver sin linje, da blir det lettere å lese. Endret 28. januar 2009 av Twinflower Lenke til kommentar
Rasmus Skrevet 31. januar 2009 Del Skrevet 31. januar 2009 Testet kjapt å lese spesifisert URL, men fikk "ubrukelig" HTML kode! Du må lure Armory til å tro at du bruker en moderne nettleser, slik at du får XML koden. F.eks. ini_set("user_agent", "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5"); Deretter kan du lese ut XML. Lenke til kommentar
itsmebth Skrevet 31. januar 2009 Del Skrevet 31. januar 2009 Her er noe gammel kode jeg har til akkurat dette formålet. Denne bruker cURL, og setter både User-Agent og Accept (jeg tror ikke den sistenevte trengs). <?php if(!isset($_GET['r']) || !isset($_GET['n'])) { print('<form><input type="text" name="n" value="Name" /><input type="text" name="r" value="Realm" /><input type="submit" /></form>'); exit; } $c = curl_init("http://eu.wowarmory.com/character-sheet.xml?r={$_GET['r']}&n={$_GET['n']}"); curl_setopt($c, CURLOPT_HTTPHEADER, array( "Accept: application/x-shockwave-flash,text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5", "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4" ) ); curl_setopt($c, CURLOPT_HEADER, 0); curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); $res = curl_exec($c); print("<h1>Source</h1>"); print("<pre>"); print_r(htmlspecialchars($res)); print("</pre>"); try { $xml = new SimpleXMLElement($res); } catch(Exception $e) { print("<hr />"); print("<h1>Exception</h1>"); print("<pre>"); print_r($e); print("</pre>"); print("<hr />"); print("<h1>Result</h1>"); print("<pre>"); print_r($res); print("</pre>"); exit; } print("<hr />"); print("<h1>Object</h1>"); curl_close($c); print("<pre>"); print_r($xml); print("</pre>"); ?> Lenke til kommentar
South_Bridge Skrevet 1. februar 2009 Forfatter Del Skrevet 1. februar 2009 Testet kjapt å lese spesifisert URL, men fikk "ubrukelig" HTML kode! Du må lure Armory til å tro at du bruker en moderne nettleser, slik at du får XML koden. F.eks. ini_set("user_agent", "Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.0.5) Gecko/2008120122 Firefox/3.0.5"); Deretter kan du lese ut XML. koden din hjalp!!! takk skal du ha! Nå fikk jeg endelig til å hente ut XML koden, ganske fiffig greier... denne XML altså. må se litt på den Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå