Ergebnis 1 bis 3 von 3
  1. #1
    Trojaner
    Registriert seit
    25.08.2009
    Beiträge
    94

    Standard 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($host80$errno$errstr30);
        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($fp128);
            }
            
    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

  2. #2

    Registriert seit
    17.06.2009
    Beiträge
    559

    Standard

    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$matchesPREG_SET_ORDER);
        foreach(
    $matches as $matchprintf("Platz: %s\nInterpret: %s\nSong: %s\nBildurl: %s\n\n"$match[1], $match[2], $match[3], $match[4]);
    ?>
    Geändert von inout (09.03.2010 um 16:08 Uhr) Grund: Code-Tags durch PHP-Tags ersetzt

  3. #3
    Trojaner
    Registriert seit
    25.08.2009
    Beiträge
    94

    Standard

    lol so einfach kann es gehen xD

    danke dir

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •