Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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.

Geschrieben
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.

Geschrieben

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.

Geschrieben

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ß

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...