palme: ersten Buchstaben des Suchbegriffs hervorheben

Hallo und ein gutes neues Jahr,

ich habe eine Datenbankabfrage so gestaltet, dass in den Ergebnissen, die anhand eines Suchbegriffes gefunden wurden, der Suchbegriff hervorgehoben wird (Fettschrift).

Da manche Suchbegriffe in den Ergebnissen aber gleich am Wortanfang stehen, sieht es unschön aus (es handelt sich um Vor- u. Nachnamen), wenn der Suchbegriff klein geschrieben hervorgehoben wird, falls er vom Suchenden klein eingegeben wurde.

Das der Suchende den Suchbegriff in Kleinschreibung eingeben kann, möchte ich aber unbedingt beibehalten!

Den Suchbegriff hebe ich mit der Funktion "substr_replace" hervor.
Die Umwandlung des 1. Buchstabens im Suchbegriff in einen Großbuchstaben will mir aber nicht gelingen!
Ich habe es schon versucht mit "strtoupper", schaffe es aber einfach nicht, nur den ersten Buchstaben umzuwandeln.

Kann mir jemand helfen?

MfG

Palme

  1. Hallo!

    Hier, hab ein kleines samplechen:

    <html>
    <head><title>.:: united-scripts.com sample</title></head>
    <body>
    <?
    if($str){
     $str = strtoupper(substr($str, 0, 1)) . substr($str, 1);
     echo $str;
    }
    ?>
    <p><form action="<? echo $PHP_SELF; ?>" method="post">
    String zum umwandeln:
    <input type="text" name="str" value="test"><p>
    <input type="submit">
    </form>
    </body>

    Saludo
    piz

  2. Hi

    ich habe eine Datenbankabfrage so gestaltet, dass in den Ergebnissen, die anhand eines Suchbegriffes gefunden wurden, der Suchbegriff hervorgehoben wird (Fettschrift).

    Da manche Suchbegriffe in den Ergebnissen aber gleich am Wortanfang stehen, sieht es unschön aus (es handelt sich um Vor- u. Nachnamen), wenn der Suchbegriff klein geschrieben hervorgehoben wird, falls er vom Suchenden klein eingegeben wurde.

    Das der Suchende den Suchbegriff in Kleinschreibung eingeben kann, möchte ich aber unbedingt beibehalten!

    Den Suchbegriff hebe ich mit der Funktion "substr_replace" hervor.
    Die Umwandlung des 1. Buchstabens im Suchbegriff in einen Großbuchstaben will mir aber nicht gelingen!
    Ich habe es schon versucht mit "strtoupper", schaffe es aber einfach nicht, nur den ersten Buchstaben umzuwandeln.

    $ersterbuchstabe = strtoupper(substr($string,0,1));
    $string = substr_replace($string,$ersterbuchstabe,0,1);

    ungestet, aber sollte gehen, wenn ich mich kmit dem anfang = 0 nicht vertan haben sollte.

    Fabian

    1. Hallo,

      Habe jetzt eure beiden Versionen ausprobiert, leider funktioniert das ganze noch nicht richtig.

      Zwar wir der erste Buchstabe erfolgreich umgewandelt, jedoch auch dann, wenn dieser mitten im Ergebniss steht, also aus dem Ergebnis Leo, wird dann z.B. LEo.
      Ich möchte aber, dass wenn man wie in diesem Fall z.b. als Suchbegriff ein e eingibt, immer noch Leo erscheint.

      Ich habe dass auch halbwegs hinbekommen, indem ich vorher mit
      "$pos = strpos(odbc_result($ergebnis, $typ), $string);" die Position des Suchbegriffs im Ergebnis ermittle, und dann eure Funktionen nur dann ausführen lasse, wenn $pos == 0 ist, also z.B. so:

      if ($pos == 0)
        {
        $ersterbuchstabe = strtoupper(substr($string,0,1));
        $string = substr_replace($string,$ersterbuchstabe,0,1);
        }

      Dies klappt auch fast problemlos. Denn wennn ich nun den Suchbegriff in Großbuchstaben eingebe, werden einfach immer die ersten Buchstaben durch den Suchbegriff ersetzt.

      Es klappt also, allerdings nur dann, wenn man als Suchbegriff Kleinschreibung verwendet!

      MfG

      Palme