Explode Problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Explode Problem

    Hallo Leute!

    der Variable $check[badsites] steht folgendes:

    Website1.de;Website2.de;Website3

    wie ich die Semikolons entferne, habe ich herausgefunden: Mit explode($check[badsites],";"); Wenn ich jetzt Website 1 haben will, mache ich: $check[badsites][0];

    Prob:

    Ich habe eine andere Variable namens $host, wie kann ich jetzt eine IF Schleife machen, die folgendes behandelt:

    PHP-Code:
    if($host == "irgendeine website von $check[badsites]) { exit; } 
    Ansatz: Kann man das mit is_array machen?


    cYa DuRoX

  • #2
    Z.B.

    PHP-Code:
    for ($i 0$i count($check['badsites']); $i++)
    {

    if(
    $host == $check['badsites'][$i])
    {
        echo 
    "d";
    exit();

    }


    Kommentar


    • #3
      PHP-Code:
      $check['badsites']='Website1.de;Website2.de;Website3;';
      $check['badsites']=explode(';',$check['badsites']); //array draus machen
      if (in_array($host,$check['badsites']))
        echo 
      'gefunden'
      Ansatzantwort: wie man sieht
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #4
        Hallo mrhappiness & CannabisCow!

        @ CannabisCow: Ich habe deine Lösung versucht (explode noch eingefügt), komme aber leider immer wieder zu folgendem Fehler:

        Arrayt-online.de
        Array
        Warning: Bad message number in /XX/check.php on line 88

        Warning: Bad message number in /XX/check.php on line 111
        Den Code habe ich folgendermaßen modifiziert:

        PHP-Code:
        for ($i 0$i count($check['badsites']); $i++)
        {
        $check['badsites']=explode(';',$check['badsites']); //array draus machen
        if($von == $check['badsites'][$i])
        {
        echo 
        "d";
        exit();
        }
        else { echo 
        $von."<br>".$check[badsites];}


        @ mrhappiness: Obwohl ich deine Lösung eigentlich bevorzuge, funzt diese gar nicht. Es kommt zu keiner Fehlermeldung - aber leider auch zu keiner Ausgabe von "GEFUNDEN"

        Woran könnte das liegen?

        cYa DuRoX

        Kommentar


        • #5
          Oder gibt es evtl. eine andere Möglichkeit dieses Problem zu lösen?

          Ich wäre für jede Hilfe dankbar!

          cYa DuRoX

          Kommentar


          • #6
            explode wird übrigens so verwendet:
            PHP-Code:
            explode(";"$check[badsites]); 
            Hier nachzulesen: http://php.net/explode
            hopka.net!

            Kommentar


            • #7
              @ Hopka: Vielen Dank für den Hinweis, aber ich glaube nicht dass es daran liegt / gelegen hat.

              cYa DuRoX

              Kommentar


              • #8
                hmm, ok, um mal deinen Code zu verwenden:
                PHP-Code:
                $check['badsites']=explode(';',$check['badsites']); //array draus machen
                for ($i 0$i count($check['badsites']); $i++)
                {
                if(
                $von == $check['badsites'][$i])
                {
                echo 
                "d";
                exit();
                }
                else { echo 
                $von."<br>".$check[badsites];}

                Du musst den Array natürlich machen, bevor du die Anzahl der Elemente von eben diesem Array mit count zählst.
                hopka.net!

                Kommentar


                • #9
                  Das Array ist aus einem mysql_fetch_array entstanden, das ist doch ein Array, oder etwa nicht?

                  cYa DuRoX

                  Kommentar


                  • #10
                    gib das array ma bitte aus mit print_r($check);
                    Ich denke, also bin ich. - Einige sind trotzdem...

                    Kommentar


                    • #11
                      aus dem mysql_fetch_array entsteht das Array $check
                      aber du musst aus aus dem Strin $check['badsites'] noch ein Array mit den einzelnen Elementen machen, die durch ; getrennt sind. Das ist dann ein Unter-Array von $check
                      hopka.net!

                      Kommentar


                      • #12
                        Hmm verstehe ich nicht... Etwa so?

                        array($check['badsites']);

                        Entsteht das Array net durch den Explode?! Denn da mache ich doch die ; Weg

                        cYa DuRoX

                        Kommentar


                        • #13
                          mysql_fetch_array(....) ergibt ein Array, etwa so:
                          PHP-Code:
                          $ckeck = Array ("key1" => "wert1, "key2 => "wert2""badsites" => "Website1.de;Website2.de;Website3.de;"); 
                          Wenn du dann ein explode(";", $check['badsites']); machst, kommt noch ein Array raus:
                          PHP-Code:
                          $check['badsites'] = Array ("Website1.de""Website2.de""Website3.de"""); 
                          also insgesamt etwa so:
                          PHP-Code:
                          $check = Array(
                          "key1" => "wert1",
                          "key2" => "wert2",
                          "badsites" => Array ("Website1.de""Website2.de""Website3.de""")
                          ); 
                          das letzte Element "" im Array $ckeck['badsites'] ist da, weil am Ende ein ; stand, bin mir aber nicht ganz sicher.

                          Ansprechen kannst du das ganze folgendermaßen:
                          PHP-Code:
                          $check['badsites'][0] = "Website1.de";
                          $check['badsites'][1] = "Website2.de";
                          $check['badsites'][2] = "Website3.de"
                          hopka.net!

                          Kommentar


                          • #14
                            @ Hopka: Vielen Dank für deine ausführliche Antwort! Das ist dann also ein Array im Array

                            Das Problem ist aber nicht manuell auf die Website zuzugreifen, sondern ein weiteres Script ausführen mit exit; zu verhindern, wenn $host == "eine der websites im array" ist.

                            cYa DuRoX

                            Kommentar


                            • #15
                              aha.

                              und wo genau ist da das problem ?
                              hopka.net!

                              Kommentar

                              Lädt...
                              X