[Funktion] strpos und wildcards

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

  • [Funktion] strpos und wildcards

    hi leute

    ich möchte gern wissen ob es möglich ist mit der funktion strpos() wildcards zu nutzen
    hab schon die gängigen varianten probiert wie ?, *, %, und _, leider hat keine funktioniert

    will in einem string nach wörtern suchen die umlaute oder auch das ß enthalten
    komischer weise findet strpos() diese wörter dann nicht.
    der string selber kommt über ein html input feld zu der funktion und der suchbegriff steht in einem array

    habt ihr da vieleicht eine idee

  • #2
    Re: [Funktion] strpos und wildcards

    Original geschrieben von McMicha
    ich möchte gern wissen ob es möglich ist mit der funktion strpos() wildcards zu nutzen
    nein.

    will in einem string nach wörtern suchen die umlaute oder auch das ß enthalten
    komischer weise findet strpos() diese wörter dann nicht.
    schon mal versucht, PHP mittels set_locale() auf die richtige "sprache" einzustellen?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      danke für den schnellen tip
      habe mal mit setlocal() auf deutsch umgestellt

      hat leider nichts bewirkt :-(

      Kommentar


      • #4
        dein ß wird aber nicht zufällig als entity äquivalent geliefert?

        gruß

        ps:
        source code ansehen hilft

        Kommentar


        • #5
          na ja wenn ihr meint das es hilft sich den code anzusehen, dann bitte sehr

          ...
          setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
          ....
          $dasgesuchte = array("Kleiner Transporter", "Großer Transporter", "Leichter Jäger", ...);
          ...
          //in $scanbericht stehen die übergebenen inhalte aus dem html formular
          ...
          for($i=0; $i<=(count($dasgesuchte)-1); $i++)
          {
          $pos = strpos($scanbericht, $dasgesuchte[$i]); //sucht das schlüsselwort aus $dasgesuchte
          echo "$i = ".$dasgesuchte[$i]." = $pos<br>";
          if($pos !== false):

          $len = strlen($dasgesuchte[$i]);

          $pos2 = strpos($scanbericht, chr(9), $pos+$len+2); //sucht nach einem tab nach dem wert

          $pos3 = strpos($scanbericht, chr(32), $pos+$len+2); //sucht nach einem leerzeichen nach dem wert

          if($pos2 > $pos3 or $pos2 === false)
          {
          $pos2 = strpos($scanbericht, chr(32), $pos+$len+2); //sucht nach einem leerzeichen nach dem wert
          }

          $pos4 = strpos($scanbericht, chr(10), $pos+$len+2); //sucht nach einem newline nach dem wert

          if($pos2 > $pos4)
          {
          $pos2 = strpos($scanbericht, chr(10), $pos+$len+2); //sucht nach einem newline nach dem wert
          }

          echo "$dasgesuchte[$i]=" . trim(substr($scanbericht, $pos+$len+1, $pos2-($pos+$len+1))) . "<br>"; //hier kann die zuweisung zu einem tabellenfeld erfolgen
          else:
          echo "$dasgesuchte[$i]=0<br>"; //hier kann die zuweisung zu einem tabellenfeld erfolgen
          endif;
          }
          ...

          ich hoffe ihr könnt damit was anfangen

          achja das mit den &szlig; und html maskierten umlaute hatte ich auch schon probiert, ging aber auch nicht

          Kommentar


          • #6
            Original geschrieben von McMicha
            PHP-Code:
            setlocale (LC_ALL'de_DE@euro''de_DE''de''ge'); 
            hast du dir mal den rückgabewert ausgeben lassen, um zu sehen ob das funktioniert hat?
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              ja habe ich auch
              sezlocal gibt dann " German_Germany.1252 " aus

              Kommentar


              • #8
                läuft das auf Winodws OS? Wenn ja, dann hast du schlechte Karten mit setlocale. Auf jeden Fall habe ich noch nie geschafft, damit die Einstellung zu ändern

                Kommentar


                • #9
                  naja die testumgebung ist auf einen windowsrechenr
                  das fertigsystem ist aber ein linux server

                  Kommentar


                  • #10
                    so fehler gefunden

                    setlocal funktioniert problemlos auf einem linux system

                    und zweitens, mein editor hat mir alle ß und umlaute in html code umgesetzt
                    (ich sag nur blöd ist wenn man es selber einstellt)

                    Kommentar

                    Lädt...
                    X