AllesMeins: Mehrfache Stringsuche...

Hiho,

ich will in einem String nach mehreren Zeichen suchen. Also, falls in einem String irgendwo entweder ein * ein + oder ein " vorkommt soll die Funktion true zurückgeben ansonsten false. Wie kann ich das möglichst systemschonend realisieren?

Marc

  1. Hi,

    ich will in einem String nach mehreren Zeichen suchen. Also, falls in einem String irgendwo entweder ein * ein + oder ein " vorkommt soll die Funktion true zurückgeben ansonsten false. Wie kann ich das möglichst systemschonend realisieren?

    mit strpos.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hiho,

      strpos iss doch aber nur für ein Zeichen, oder? Muss ich den Spass dann 3 mal auf den selben String anwenden? Gibt es da nicht was praktischeres das gleich mit mehrern zeichen arbeiten kann?

      Marc

      1. Hi,

        strpos iss doch aber nur für ein Zeichen, oder?

        ja. Daher effizient.

        Muss ich den Spass dann 3 mal auf den selben String anwenden?

        Nicht, wenn das erste gesuchte Zeichen vorhanden ist (sofern Dir diese Information reicht).

        Gibt es da nicht was praktischeres das gleich mit mehrern zeichen arbeiten kann?

        Ja, Regular Expressions beispielsweise. Aber das ist mit Atombomben auf Spatzen geschossen.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
  2. echo $begrüßung;

    ich will in einem String nach mehreren Zeichen suchen. Also, falls in einem String irgendwo entweder ein * ein + oder ein " vorkommt soll die Funktion true zurückgeben ansonsten false.

    Wenn du PHP 5 hast, z.B. so: $result = (boolean) strpbrk($text, '*+"');

    Wie kann ich das möglichst systemschonend realisieren?

    Ob das effektiver als 3x strpos() ist, kannst du ja selbst messen.

    echo "$verabschiedung $name";

    1. Hi dedlfix,

      Wenn du PHP 5 hast, z.B. so: $result = (boolean) strpbrk($text, '*+"');

      Hier sollte der Typ des Rückgabewertes besser behalten und mittels !== gegen false geprüft werden.

      Gruß,
      Andreas.

      1. echo $begrüßung;

        Wenn du PHP 5 hast, z.B. so: $result = (boolean) strpbrk($text, '*+"');

        Hier sollte der Typ des Rückgabewertes besser behalten und mittels !== gegen false geprüft werden.

        Warum?

        Gefordert war false oder true. False kommt raus, wenn das gesuchte nicht enthalten ist. Ansonsten ist das Ergebnis ein string, der mit (boolean) nach true gecastet wird. Ein Leerstring oder der String '0' kann nicht im Ergebnis vorkommen. Es gibt damit auch kein falsches false.

        echo "$verabschiedung $name";

        1. Hi dedlfix,

          Hier sollte der Typ des Rückgabewertes besser behalten und mittels !== gegen false geprüft werden.

          Warum?

          Gefordert war false oder true. False kommt raus, wenn das gesuchte nicht enthalten ist. Ansonsten ist das Ergebnis ein string, der mit (boolean) nach true gecastet wird.

          Das Ergebnis ist ein String, beginnend von der ersten Fundstelle. Endet der zu durchsuchende String auf '0' und diese '0' ist der einzige Treffer aus der Zeichengruppe, wird auch '0' zurückgegeben.

          Ein Leerstring oder der String '0' kann nicht im Ergebnis vorkommen. Es gibt damit auch kein falsches false.

          In dem Problemfall des OP vielleicht nicht...

          Gruß,
          Andreas.