Explode Problem

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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();

    }


    Comment


    • #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...

      Comment


      • #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

        Comment


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

          Ich wäre für jede Hilfe dankbar!

          cYa DuRoX

          Comment


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

            Comment


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

              cYa DuRoX

              Comment


              • #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!

                Comment


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

                  cYa DuRoX

                  Comment


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

                    Comment


                    • #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!

                      Comment


                      • #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

                        Comment


                        • #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!

                          Comment


                          • #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

                            Comment


                            • #15
                              aha.

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

                              Comment

                              Working...
                              X