Kris.Klepers: preg_replace :/

Hi @ all :)

if (strstr($test[$x], ".de") OR strstr($test[$x], ".com") OR strstr($test[$x], ".net") OR strstr($test[$x], ".org") && $test[$x]{1} != "#")
{...}

das soll eine abfrage sein ob die Variable $test[$x] eines der Wörter ".de" / ".com" / ".net" oder ".org" besitzt ...
nun willi ch aber auch noch als weitere Bedingung einbauen das "#" NICHT die erste stelle der Variables/des Strings sein darf ... so wie ichs gepostet habe funktioniert alles super bis auf die Abfrage, dass die letzte Stelle eben kein "#" sein sollte :/

  1. echo $begrüßung;

    if (strstr($test[$x], ".de") OR strstr($test[$x], ".com") OR strstr($test[$x], ".net") OR strstr($test[$x], ".org") && $test[$x]{1} != "#")

    Wenn sich deine Berechnung nicht nach der vorgegebenen Operatoren-Rangfolge richten soll, dann solltest du die Prioritäten selbst setzen. (Klammern helfen dabei.)

    echo "$verabschiedung $name";

  2. Hi Kris,

    if (strstr($test[$x], ".de") OR strstr($test[$x], ".com") OR strstr($test[$x], ".net") OR strstr($test[$x], ".org") && $test[$x]{1} != "#")
    {...}

    das soll eine abfrage sein ob die Variable $test[$x] eines der Wörter ".de" / ".com" / ".net" oder ".org" besitzt ...
    nun willi ch aber auch noch als weitere Bedingung einbauen das "#" NICHT die erste stelle der Variables/des Strings sein darf ... so wie ichs gepostet habe funktioniert alles super bis auf die Abfrage, dass die letzte Stelle eben kein "#" sein sollte :/

    Der Betreff deines Posts lautet "preg_replace ..."? Warum benutzt du dann nicht auch einfach die PCRE-Befehle von PHP? Da geht das doch viel einfacher:

    if( preg_match('/\A[^\#].+\.(de|com|net|org)/', $test[$x]) )

    Und mit großer Wahrscheinlichkeit möchtest du, dass nach der TLD nichts mehr kommen soll. Dann schreibst du eben:

    if( preg_match('/\A[^\#].+\.(de|com|net|org)\Z/', $test[$x]) )

    MffG
    EisFuX

    --
    Erinnert mich ein Bisschen an die if-then-Schleifen von Java.
    (Alexandra Freund, IT-Compactkurs)
    1. Hi Kris,

      if (strstr($test[$x], ".de") OR strstr($test[$x], ".com") OR strstr($test[$x], ".net") OR strstr($test[$x], ".org") && $test[$x]{1} != "#")

      if( preg_match('/\A[^\#].+\.(de|com|net|org)\Z/', $test[$x]) )

      etwas performanter (wenn auch etwas ungenauer, dafür 100%ig portierbar) dürfte folgendes sein:

        
      if(in_array(substr($text[$x],-3),array('.de','com','net','org')) && $text[$x]{0}){}  
      
      

      Im Übrigen ist $text[$x]{1} das zweiter Byte!

      Gruß aus Berlin!
      eddi

      1.   
        if(in_array(substr($text[$x],-3),array('.de','com','net','org')) && $text[$x]{0}!='#'){}