-
top 100 charts script
sry ich spiel gerade bisschen mit php rum wenn ich ehrlich bin ist das mein erstes script ;) also nicht zu hart sein ^^
also zu meinem problem es wird immer nur der erste titel ausgegeben wo bleiben die 99 anderen :)
muss ich mit ner while arbeiten und quasi den count erhöhen ??
hier mal der source
PHP-Code:
<?php
/*viva charts seite laden */
$host = 'www.viva.tv'; /* seite */
$path = '/Charts/Detail/id/6/part/0/name/VIVA+TOP+100'; /*was heruntergeladen werden soll */
$fp = fsockopen($host, 80, $errno, $errstr, 30);
if (!$fp) {
$buffer .= "$errstr ($errno)<br />\n";
} else {
$out = "GET ".$path." HTTP/1.1\r\n";
$out .= "Host: ".$host."\r\n";
$out .= "Connection: Close\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)) {
$buffer .= fgets($fp, 128);
}
fclose($fp);
}
$platzierung_start ='<h3 class="h3_chart_count">';
$platzierung_ende ='</h3>';
$song_start ='Diese Woche neu auf der';
$song_end ='">(NEU)</span>';
$bildlink_start ='<img class="amazonpic" src="';
$bildlink_end ='.jpg" />';
echo "<h1> Viva Top 100 Charts</h1>";
if ((strpos($buffer, $platzierung_start)) and
(strpos($buffer, $song_start)) and
(strpos($buffer, $bildlink_start)))
{
for($count = 0; $count < 100; $count++)
{
echo "Platz: ";
echo substr($buffer,strpos($buffer,$platzierung_start)+27,
(strpos($buffer,$platzierung_ende)-27) - (strpos($buffer,$platzierung_start)));
echo "</br>";
echo "Name: ";
echo substr($buffer,strpos($buffer,$song_start)+27,
(strpos($buffer,$song_end)-27) - (strpos($buffer,$song_start)));
echo "</br>";
echo '<img src="';
echo substr($buffer,strpos($buffer,$bildlink_start)+28,
(strpos($buffer,$bildlink_end)-28) - (strpos($buffer,$bildlink_start)-4));
echo '">';
echo "</br>";
echo 'Video Link: Comming Soon !';
echo "</br>";
echo "</br>";
}
}
else
{
echo "Fehler: Viva Top 100 Charts seite konnte nicht geladen werden !!";
}
?>
wer ne lösung für mich hat bitte n source schnippel oder so
ps. ich weiss das der source nicht das gelbe vom ei ist ;)
danke euch
-
Da hast du dir aber ganz schön was vorgenommen, wenn du sowas mit "normalen" Stringfunktionen machen willst ;)
Für sowas sind Reguläre Ausdrücke genau das Richtige.
Hier ein Beispiel für dein Vorhaben:
PHP-Code:
<?php
$src = file_get_contents('http://www.viva.tv/Charts/Detail/id/6/part/0/name/VIVA+TOP+100');
preg_match_all('|<h3 class="h3_chart_count">(\d+)</h3>\s*<span title="Diese Woche neu auf der \d+: (.+?) - (.+?)">\(NEU\)</span></div><div class="amazonpic"><img class="amazonpic" src="(.+?)" /></div>|', $src, $matches, PREG_SET_ORDER);
foreach($matches as $match) printf("Platz: %s\nInterpret: %s\nSong: %s\nBildurl: %s\n\n", $match[1], $match[2], $match[3], $match[4]);
?>
-
lol so einfach kann es gehen xD
danke dir