2016-07-21 5 views
0
$song = "The Buzzcocks - Orgasm Addict"; 
$songeach = explode("-", $song); 
$artist = trim($songeach[0]); 
$song = trim($songeach[1]); 
echo $artist; 
      //echos 'The Buzzcocks' 
echo $song; 
      //echos 'Orgasm Addict' 

$lyricxml1 = simplexml_load_file('http://api.chartlyrics.com/apiv1.asmx/SearchLyric?artist='.$artist.'&song='.$song.''); 
$lyricchecksum2 = $lyricxml1->SearchLyricResult[0]->LyricChecksum; 
$lyricid = $lyricxml1->SearchLyricResult[0]->LyricId; 

echo $lyricchecksum2; 
      //echos 'c58a88a5cd5550b2793a408d17193af6' 
echo $lyricid; 
      //echos '5497' 

Alles gut und richtig so weit.simplexml_load_file konnte Stream nicht öffnen E_WARNING: Typ 2

Aber dann, wenn ich hier

$lyricxml2 = simplexml_load_file('http://api.chartlyrics.com/apiv1.asmx/GetLyric?lyricId='.$lyricid.'&lyricCheckSum='.$lyricchecksum2.''); 
print_r($lyricxml2); 

erhalte ich diesen Fehler:

E_WARNING : type 2 -- simplexml_load_file(http://api.chartlyrics.com/apiv1.asmx/GetLyric?lyricId=5497&lyricCheckSum=c58a88a5cd5550b2793a408d17193af6): failed to open stream: HTTP request failed! -- at line 15 
E_WARNING : type 2 -- simplexml_load_file(): I/O warning : failed to load external entity "http://api.chartlyrics.com/apiv1.asmx/GetLyric?lyricId=5497&lyricCheckSum=c58a88a5cd5550b2793a408d17193af6" -- at line 15 

Auch wenn die URL/xml-Datei ist die richtige (Arbeiten in Browser manuell) http://api.chartlyrics.com/apiv1.asmx/GetLyric?lyricId=5497&lyricCheckSum=c58a88a5cd5550b2793a408d17193af6

Und ist im exakt gleichen Format ein $ lyricxml1 (Echo-Ausgang: http://api.chartlyrics.com/apiv1.asmx/SearchLyric?artist=The Buzzcocks & Song = Orgasm Addict)

+0

Haben Sie es mehrmals versucht und alle scheitern? Scheint so, als ob die Anfrage gerade einmal fehlgeschlagen ist. Ich habe Ihren genauen Code kopiert und kann keine Fehler reproduzieren. – ebildude123

+0

Ich kann Ihren Fehler nicht reproduzieren. Wenn ich 'simplexml_load_file (...)' mit der 2. URL starte, funktioniert alles. – BeetleJuice

+0

Hmm .. wow. Ja, ich habe versucht, mindestens ein Dutzend Mal auf localhost und ich habe auch versucht auf phpfiddle.net und ich bekomme immer den gleichen Fehler mit der zweiten XML-Datei. Ich werde Live-Host versuchen. – bbruman

Antwort

1

Sie könnten versuchen, file_get_contents() zu verwenden, um die Datei zu laden, dann verwenden Sie simplexml_load_string(), um es in ein Objekt zu verwandeln.

Wenn Sie eine externe Datei laden, wie in Ihrem Codebeispiel, können Sie curl verwenden, um die Daten zu erhalten, und dann in ein Objekt umwandeln, indem Sie simplexml_load_string() für die Antwort verwenden.

Verwandte Themen