Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Suchen und Ersetzen in einem Text ohne Rücksicht auf Groß- und Kleinschreibung

Empfohlene Antworten

Veröffentlicht

Hi, ich möchte eine Suchefunktion schreiben, bei der im Text die Suchwörter fett geschrieben werden. Bisher schaffe ich es nur die Wörter FETT zu schreiben wenn sie 1:1 mit dem Suchwort übereinsimmen:

  
//Text aus der Datenbank, welcher über die Suchwörter gefunden wurde
$info= stripslashes($A_Info);
//Schleife mit Suchwörtern
for($x=0; $x < count($suchArray); $x++)
{
//Suchwörter Fett schreiben
$info= str_replace($suchArray[$x], '<b>'.$suchArray[$x].'</b>', $info);
}
[/PHP]

Leider ist das Case Sensitiv, hat jemand nen besseren Vorschlag!

Bin für alles Dankbar

gut wäre im threadtitel ein hinweis auf PHP

ansonsten:

str_ireplace -- Groß- und Kleinschreibungsunabhängige Version von str_replace().

PHP: str_ireplace - Manual

Mach eine Kopie von $info und $suchArray.

Wandel $info und $suchArray in Großbuchstaben um.

Gehe das Array durch und hole die Anfangs- und Endposition des in $info gefundenen Wortes und ersetze es durch das orginale Wort.

Eigentlich ganze einfach, nur leider kann ich kein PHP.

Hi, ich möchte eine Suchefunktion schreiben, bei der im Text die Suchwörter fett geschrieben werden.

Hatte Google sich das Prinzip nicht patentieren lassen? :P

str_ireplace -- Groß- und Kleinschreibungsunabhängige Version von str_replace().

Das gibt es nur für PHP5.

Aber wie wäre es mit preg_replace()?

So ungefähr nach diesem Strickmuster:

echo preg_replace($suchbegriff, "<strong>".$suchbegriff."</strong>", $text);

Und weil es schon so spät ist, darf sich jemand anders Gedanken darüber machen, wie man den regulären Ausdruck so formuliert, daß er case-insensitive ist.

Aber wie wäre es mit preg_replace()?

...

Und weil es schon so spät ist, darf sich jemand anders Gedanken darüber machen, wie man den regulären Ausdruck so formuliert, daß er case-insensitive ist.


$strRes = preg_replace('/'.preg_quote($strSuchwort,'/').'/i','<strong>\\0</strong>',$strText);

Ist allerdings ungetestet.

Hi solltest dir vllt genauer die php.net Einträge anschaun...bei vielen Funktionen, die nur unter >= PHP5 laufen, koennen Funktionen, mit gleicher "Aufgabe" interpretiert werden.

So auch in diesesm BeispieL:


if(!function_exists('str_ireplace')){
function str_ireplace($search, $replace, $subject){
if(is_array($search)){
array_walk($search, 'make_pattern');
}
else{
$search = '/'.preg_quote($search, '/').'/i';
}
return preg_replace($search, $replace, $subject);
}
}
[/php]

Wie gesagt... die preg_replace Funktion geinhaltet gleiche Aufgabe schon, was natuerlich einen Einsatz vorzieht.

´gruß

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.