if ( $variable ) nicht auf true checken sondern inhalt der variable "iffen"...

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

  • if ( $variable ) nicht auf true checken sondern inhalt der variable "iffen"...

    Tach!

    Mein Problem: ich will eine if abfrage einer variable nicht auf true oder false checken, sondern das was in der variable $ifmatch steht als abfrage... hier der passende code...

    PHP Code:
    $zeile "abc efg";
    $testarray = array("abc","cde","efg");
    for(
    $test=0;$test<count($testarray);$test++){
            
    $oder "||";
            if(
    $test == count($testarray)-1$oder "";
            
    $ifmatch .= "preg_match('!".$testarray[$test]."!i',".$zeile.") $oder ";
          }

    // hier soll nicht einfach nur auf TRUE gecheckt werden sondern
    // hier soll die preg_match kette rein....
    if( $ifmatch ){ 
    echo 
    "eines der strings aus dem $testarray gefunden";

    wenn einer weiss wie und mir evtl. ein beispiel machen würde wer ich mega dankbar...

    Würde mir mega weiterhelfen wenn ihr mir dabei helfen könntet...

    PHP Code:
    echo 'greet'.strtoupper('z').' s'.chr(51).'riou'.strtoupper('z'); 

  • #2
    Um es mal in deiner Sprache auszudrücken:

    MeGa WTF?

    Was steht in $ifmatch?

    Comment


    • #3
      Was du suchst ist eval - das Ergebnis ist dann true oder false. In deinem Beispiel aber einfach Unsinn. Folgendes ist wesentlich einfacher und schneller:
      PHP Code:
      $zeile "abc efg";
      $testarray = array("abc","cde","efg");
      if( 
      preg_match '!(' implode '|'$testarray ) . ')!i'$zeile ) { 
      echo 
      "eines der strings aus dem $testarray gefunden";

      Noch besser ist es Stringfunktionen zu verwenden:
      PHP Code:
      $zeile "abc efg";
      $testarray = array("abc","cde","efg");

      foreach ( 
      $testarray as $search ) {
      if ( 
      strpos $search$zeile ) !== false ) {
      echo 
      "eines der strings aus dem $testarray gefunden";
      }

      Last edited by tontechniker; 23-11-2007, 18:17.
      Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

      Comment


      • #4
        mega


        in $ifmatch steht in diesem fall folgendes...

        preg_match('!abc!i',"abc efg") || preg_match('!cde!i',"abc efg") || preg_match('!efg!i',"abc efg")

        und die if abfrage soll dann so aussehen:

        PHP Code:
        if( preg_match('!abc!i',"abc efg") || preg_match('!cde!i',"abc efg") || preg_match('!efg!i',"abc efg") ) { echo "geschafft"; } 
        danke^^

        Comment


        • #5
          Jou, lern richtig(!) mit Regulären Ausdrücken umzugehen (s. tontechniker) dann brauchst du sowas nicht zu verunstalten. Für deine Abfragen würde übriens strpos vollkommen reichen.

          Aber wie gesagt, regex sind super geeignet.

          Comment

          Working...
          X