Gå til innhold

php lese kildekode av andre sider... XML?


Anbefalte innlegg

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
Videoannonse
Annonse

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 av Twinflower
Lenke til kommentar

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

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
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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...