PHP Wenn in XML nur ein Zeichen vorkommt, Info ausgeben!

Belee

Lt. Commander
Registriert
Dez. 2006
Beiträge
1.518
Hallo Leute, mein Script welches den aktuell spielenden Titel
an meinen Twitter postet:

PHP:
 function urlfind($link) {
  $ot  = ini_set('default_socket_timeout', 3);
  $ret = (bool) @fopen ($link, 'r');
  ini_set('default_socket_timeout', $ot);
  return $ret;
}   
 $link = "http://www.laut.fm/user/disco/jetzt.xml";    
 
 if(urlfind($link)) {
 
 $inhalt = file_get_contents("http://www.laut.fm/user/disco/jetzt.xml");
 $tagsToReplace = array("<title>","</title>","<name>","</name>"); 
 $tagsReplaceWith = array("<title><![CDATA[","]]></title>","<name><![CDATA[","]]></name>"); 
 $inhalt = str_replace($tagsToReplace,$tagsReplaceWith,$inhalt); 
 $xml = simplexml_load_string($inhalt); 
 $ausgabe = $xml->tracks->track->artist->name. ' - ' .$xml->tracks->track->title;
} 
 else {
 $ausgabe = 'Currently no Track Information available!';
} 
 if (strstr($ausgabe,'Station ID')) {
 $ausgabe = 'Currently no Track Information available!'; 
}  
 
 $fp = fopen('aktuell.txt', 'w'); 
 fwrite($fp, $ausgabe); 
 fclose($fp); 
?>

Das Problem, die XML liefert hin und wieder nur ein Zeichen und zwar "-".
Heisst, normalerweise liefert sie die Trackinformation des aktuell laufenden Titels
also zB. Queen - I Want To Break Free.
Oft aber nur das ---> -
Laut.fm wird das zwar irgendwan beheben aber solange die das nicht tun möchte ich
an dieser Stelle, wenn also NUR das Zeichen " - " geliefert wird, das Script an dieser
Stelle 'Currently no Track Information available!' ausgibt.

Wie also prüfe ich ob nur das Zeichen " - " alleine da steht ohne Zeichen davor und dahinter? wobei vor und nach " - " es noch jeweils eine Leerstelle gibt.

Vielen Dank.

Belee
 
PHP:
if(strlen($xml->tracks->track->artist->name)>0 && strlen($xml->tracks->track->title)>0)
echo "info gefunden";
else
echo "info leer";

Edit: zu langsam :)
 
Vielen Danke Leute

Noch eine Frage, wäre es möglich diese entfernte "jezt.xml" 1:1 lokal auf meinen Server abzuspeichern?
Ich schätze mal ich muss die Datei wohl erst öffnen und den Inhalt in eine Variable einlesen oder? dann den Inhalt dieser in eine lokale Datei schreiben?
 
Zurück
Oben