Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

Probleem binnen php if/else statement...

Anoniem
Stefan Nagtegaal
10 antwoorden
  • Dit is mijn code:
    [code:1:2fc8810e04]?php
    //Openen bestand
    $fp=fopen("http://www.frontaal-online.com/winamp/whatsplaying.html","r");
    //Bestand lezen tot regel 4, pas dan wordt t interressant…
    $regel1 = fgets($fp, 1024);
    $regel2 = fgets($fp, 1024);
    $regel3 = fgets($fp, 1024);
    $track = fgets($fp, 1024); //WinAmp aan en spelende of uit??
    //Bestand sluiten.
    fclose($fp);

    if ($track == "I am not listening to anything right now.") {
    print "Ehmm… WinAmp staat uit.";
    }
    else {
    // Verwijderen van alle HTML-tags uit de output
    $track = strip_tags($track);
    // Vervangen van 'Presently playing:' met ''
    $vervangen = '';
    $track = ereg_replace('Presently playing:', $vervangen, $track);
    list ($artiest, $nummer) = split(' - ', $track);
    print "Titel: $nummer<br />
    ";
    print "Artiest: $artiest<br />
    ";
    }
    ?>[/code:1:2fc8810e04]
    Ik heb een plugin gedownload voor WinAmp, welke een HTML-agina upload naar een webserver. Dit HTML bestand geeft op regel 4, een output van wat er gebeurt.. Dus:
    a) [i:2fc8810e04]'Presently playing: $artiest $nummer'[/i:2fc8810e04]
    of
    b) [i:2fc8810e04]"I am not listening to anything right now."[/i:2fc8810e04] (WinAmp staat dus uit)


    Volgens mij check ik met deze code of regel 4 "I am not listening to anything right now." bevat met de volgende code:
    [code:1:2fc8810e04] if ($track == "I am not listening to anything right now.") {
    print "Ehmm… WinAmp staat uit.";
    }
    [/code:1:2fc8810e04]
    Bevat de code deze tekst niet, zou het het else statement uit moeten voeren. En toch werkt het niet correct.

    De output bij een afgesloten WinAmp is nogsteeds [i:2fc8810e04]"I am not listening to anything right now."[/i:2fc8810e04] ipv [i:2fc8810e04]"Ehmm… WinAmp staat uit."[/i:2fc8810e04]


    Iemand enig idee???

  • Op regel 4 van je html bestand staat niet waar jij op checkt volgens mij: er staat allerlei HTML bij (tenminste, dat is als je wel muziek afspeelt zo, lijkt mij dat als je geen muziek afspeelt dat dat ook zo is)…
  • Er staat toch?
    [code:1:f992063af7]$track = strip_tags($track); [/code:1:f992063af7]

    Dus dat wordt eruit gehaald…

    raag wat andere ideeen hierover???
  • Ik heb het html-bestand hier staan:
    http://www.frontaal-online.com/winamp/whatsplaying.html

    en het PHP-bestand hier:
    http://www.frontaal-online.com/winamp/index.php

    De broncode van het PHP bestand is nu enigzins verandert tot het volgende bestand:
    [code:1:ec5e699da2]
    <?php
    //Open file
    $fp=fopen("http://www.frontaal-online.com/winamp/whatsplaying.html","r");
    //Read from file till rule 4, there it's interesting…
    $regel1 = fgets($fp, 1024);
    $regel2 = fgets($fp, 1024);
    $regel3 = fgets($fp, 1024);
    $track = fgets($fp, 1024); //Is WinAmp playing a song or is it off?
    //close the file.
    fclose($fp);
    // Delete all HTML-tags from output
    $track = strip_tags($track);
    // Replace 'Presently playing:' with ''
    $vervangen = '';
    $track = ereg_replace('Presently playing:', $vervangen, $track);
    list ($artiest, $nummer) = split(' - ', $track);
    // later with drupal we use this: echo contentfilter("$track");
    if ($artiest == "I am not listening to anything right now.") {
    print "Ehm… WinAmp staat uit..";
    }
    else if ($nummer == "I am not listening to anything right now.") {
    print "Ehm… WinAmp staat uit..";
    }
    else {
    print "Song: $nummer<br />
    ";
    print "Artist: $artiest<br />
    ";
    }

    ?>[/code:1:ec5e699da2]

    Help me alsjeblieft, want ik zit echt muur en muurvast!

  • [quote:67f56964d0="Stefan Nagtegaal"]Er staat toch?
    [code:1:67f56964d0]$track = strip_tags($track); [/code:1:67f56964d0]

    Dus dat wordt eruit gehaald…

    raag wat andere ideeen hierover???[/quote:67f56964d0]Misschien moet je je probleem eens helder omschrijven, wat ik er nu van maak is dat je if/else niet werkt en je altijd in de else komt. Daar staat inderdaad die strip_tags ja, maar je komt dus nu altijd in de else en nooit in de if.

    Nu post je hierboven een script, maar hoe kunnen wij nu ooit testen of ie nu wel gaat weergeven of Winamp uit staat, als je Winamp altijd hebt aan staan (en wij dus nooit die string dat Winamp uit staat kunnen zien)? Niet dus…
  • Hij staat nu uit….
  • Als regel 4 "I am not listening to anything right now." is, hoe denk jij dan ooit te kunnen "splitten" op " - " en dan checken of dat min of meer gelukt is??
  • Nou, das dus eigenlijk de vraag.. Hoe moet ik dat dan doen of hoe kan k dat het beste doen?
  • [code:1:69ec622230]…

    $track = trim(strip_tags($track));

    if($track == "I am not listening to anything right now.")
    {
    print "Ehm… WinAmp staat uit..";
    }
    else
    {

    }

    …[/code:1:69ec622230]

    Let vooral op die "trim". Gewoon een kwestie van $track uitprinten en kijken waarom die if/else niet werkt (er staan dus spaties achter die $track).

    Nog wat: str_replace werkt in dit geval stukken sneller dan ereg_replace…
  • Dus dat is dan ipv [code:1:5066a9e624]$track = strip_tags($track);[/code:1:5066a9e624]

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.