goß-/kleinschreibung ignorieren

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

  • goß-/kleinschreibung ignorieren

    hallo,

    ich möchte bei meiner suchmaschine den suchbegriff fett ausgeben.

    hier mein script dazu:
    PHP-Code:
    $fett "<b>".$search."</b>";
    $artist str_replace ($search$fett$artist); 
    das fuktioniert auch ganz gut. aber leider mit einem kleinen fehler
    ist beim suchergebnis die goß-/kleinschreibung nicht gleich der des suchbegriffes wird auch nichts fett ausgegeben.

    mit strtolower() wird alles klein geschrieben. aber die ausgabe soll in der hinsicht nicht verändert werden.

    laut google wird es wahrscheinlich irgendwie mit "/i" gehen. aber ich weiß nicht, wo und wie im script ich das anbringen soll.

    hat der wer eine idee?

    grüße vom dieter (2)

  • #2
    schau dir mal das tutorial. insbesondere die stellen mit preg_replace und dem modifier i.

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Ev ist str_ireplace() das was du suchst.

      Gruss

      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        die lösung:
        PHP-Code:
        $einfuegen "<b>";
        $einfuegen2 "</b>";
        $position strpos(strtolower($artist), strtolower($search));
        $zahls strlen(strtolower($search));
        $neuer_string substr($artist0$position).$einfuegen.substr($artist,
         
        $position$zahls).$einfuegen2.substr($artist,
         
        $position $zahls);
        $artist $neuer_string
        eure vorschläge konnten nicht funktionieren, weil mein ansatz von vornherein falsch war. wenn ich den entscheidenden teil des strings durch $search ersezte kann er mir die groß-/kleinschreibung des originalstrings ja nur überschreiben.

        diese lösung hier scheint zwar umständlich, aber es wird nichts in $artist ersetzt sondern nur eingefügt. damit bleibt die ursprüngliche schreibweise erhalten
        egal ob der suchbegriff so "AAAA" oder so "Aaaa" oder so "aaaa" oder so "aAAa" lautet.

        trotzdem dank!

        p.s.: verzeiht die überbreite. ich wusste nicht, wo ich die vorletzte zeile im script umbrechen soll...
        EDIT:
        Ja, war schwer ...
        Zuletzt geändert von wahsaga; 07.02.2007, 17:58.

        Kommentar


        • #5
          Original geschrieben von dieter2
          eure vorschläge konnten nicht funktionieren, weil mein ansatz von vornherein falsch war.
          finde ich nicht. ich hätte es auch per preg_replace() mit modifier i gelöst, wäre dann auch nur ein einzeiler geworden.

          Kommentar


          • #6
            dann mal her mit dem code!
            bei mir hat's immer die schreibweise des suchbegriffs übernommen oder ich bekam eine fehlermeldung. (frag jetzt nicht wie die lautete -> mein gedächtnis reicht nicht für 24h )
            würd mich schon interessieren was ich falsch gemacht habe. vielleicht brauch ich es ja noch mal an anderer stelle...

            Kommentar


            • #7
              dann hast du wohl etwas falsch gemacht - zeig mal deinen versuch, ich bin mir sicher, den kann man schnell korrigieren.

              Kommentar


              • #8
                und wieder hab ich mich in die nesseln gesetzt...
                sollte mir endlich abgewöhnen alles zu löschen, wenn ich eine andere lösung gefunden hab.

                mach ich vielleicht später noch mal. habe schon das nächste prob mit sql. aber da hab ich noch am googlen...

                Kommentar


                • #9
                  OffTopic:
                  ja, so kann man in kürzester endlicher zeit beliebig unwartbare anwendungen produzieren...

                  Kommentar


                  • #10
                    nun denn:
                    PHP-Code:
                    $einfuegen "<b>$search</b>";
                    $details preg_replace (/$search/i$einfuegen$details); 
                    fehlermeldung:
                    Parse error: syntax error, unexpected '/', expecting ')' in /suche-show.php on line 330

                    lasse ich die "/" weg beschwert er sich wegen fehlender delimiter.

                    Kommentar


                    • #11
                      Original geschrieben von dieter2
                      Parse error: syntax error, unexpected '/', expecting ')' in /suche-show.php on line 330
                      Tja, du kannst halt nicht einfach irgendwelche Zeichen einfach irgendwo hinklatschen ...

                      preg_replace möchte als ersten Parameter einen String - also gib ihm einen.
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        preg_replace('|('.preg_quote($search).')|i', '<b>\1</b>', $text);

                        beachte die rückreferenzierung mittels \1 ($1 würde auch gehen), um die schreibweise der fundstellen beizubehalten.

                        Kommentar

                        Lädt...
                        X