Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > PHP > PHP-Programmierung > str_ireplace für PHP < 5?
Antwort
 
Themen-Optionen
Alt 04.09.2005, 23:31   Nach oben    #1
Chr!s
Erfahrener Benutzer
 
Benutzerbild von Chr!s
 
Registriert seit: 04.09.2005
Ort: Nürnberg
Beiträge: 561
Standard str_ireplace für PHP < 5?

Hallo,
im Laufe der Programmierung meines Chatscripts stand ich vor dem Problem, dass ich ein Script nach einem bestimmten Begriff durchsuchen und ersetzen musste, jedoch case insensitive.
Nun, auf http://de2.php.net/str_ireplace#55612 fand ich auch eine PHP < 5 Version, jedoch hatte diese nicht das was ich wollte:

Teststring war folgender:
Code:
Chr!s und ChR!S
Und zwar sollte im String das Wort 'Chr!s' case insensitive highlighted werden. Mit der Funktion von php.net bekam ich jedoch folgendes Ergebnis:
Code:
<b>Chr!s</b> und <b>Chr!s</b>
Also nicht das, was ich wollte.

Daraufhin hatte ich kurzerhand diese Funktion geschrieben:
PHP-Code:
<?php
        
function highlightNick($string$nick) {
                 
$newsubject preg_replace('#' $nick '#ism',
                                            
'<b>$0</b>',
                                            
$string);
                 return 
$newsubject;
        }
?>
Und siehe da, das Ergebnis:
Code:
<b>Chr!s</b> und <b>ChR!S</b>
Meine Frage nun, (auch wenn irellevant ) geht dies unter PHPauch anders als mit der preg_replace Funktion? (Da ich der performance wegen nicht dauernt preg_replace für solch eine kleine Operation anwenden möchte)
__________________
http://www.ChrisDiary.De
Chr!s ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.09.2005, 23:34   Nach oben    #2
Ben
Erfahrener Benutzer
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.800
Standard str_ireplace für PHP < 5?

Je nachdem, was in $nick drin steht ... einfach str_replace()?
Ben ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 04.09.2005, 23:58   Nach oben    #3
Chr!s
Erfahrener Benutzer
 
Benutzerbild von Chr!s
 
Registriert seit: 04.09.2005
Ort: Nürnberg
Beiträge: 561
Standard str_ireplace für PHP < 5?

str_replace() ist aber case sensitive, ich brauchte aber eine case_insensitive Funktion.. und str_ireplace() ist auch erst ab PHP 5 verfügbar..
__________________
http://www.ChrisDiary.De
Chr!s ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.09.2005, 08:15   Nach oben    #4
DasMööp
Erfahrener Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 212
Standard str_ireplace für PHP < 5?

PHP-Code:
<?php

$string 
preg_replace('/'.preg_quote($nick,'/').'/i'"<b>$0</b>"$string);

?>
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!
DasMööp ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.09.2005, 09:12   Nach oben    #5
Chr!s
Erfahrener Benutzer
 
Benutzerbild von Chr!s
 
Registriert seit: 04.09.2005
Ort: Nürnberg
Beiträge: 561
Standard str_ireplace für PHP < 5?

Danke für deine Antwort Wie im Öffnungspost beschrieben, will ich aber (bei Möglichkeit) keine preg_* Funktionen anwenden, daher ist deine Funktion leider auch nicht das was ich suche
__________________
http://www.ChrisDiary.De
Chr!s ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.09.2005, 09:50   Nach oben    #6
DasMööp
Erfahrener Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 212
Standard str_ireplace für PHP < 5?

eregi_replace(($suche,$ersetzen,$string));



PHP-Code:
<?php

$string 
eregi_replace('/'.preg_quote($nick,'/').'/i'"<b>$0</b>"$string); 

?>
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!
DasMööp ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.09.2005, 09:52   Nach oben    #7
Jojo
Irgendwas mit e
 
Benutzerbild von Jojo
 
Registriert seit: 26.08.2005
Ort: Mannheim
Beiträge: 388
Standard str_ireplace für PHP < 5?

Ich glaube er will ganz auf reguläre Pattern verzichten.
Warum eigentlich?
__________________
In the beginning was the word
and the word was content-type: plain/text

heute code ich, morgen debug ich und uebermorgen cast ich die koenigin auf int
Jojo ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.09.2005, 10:01   Nach oben    #8
Guradia
Benutzer
 
Benutzerbild von Guradia
 
Registriert seit: 18.08.2005
Ort: Düsseldorf
Beiträge: 57
Standard str_ireplace für PHP < 5?

Zitat:
Zitat von Chr!s
Danke für deine Antwort Wie im Öffnungspost beschrieben, will ich aber (bei Möglichkeit) keine preg_* Funktionen anwenden, daher ist deine Funktion leider auch nicht das was ich suche
Dann hast du schlechte Karten ... entweder du nutzt preg_replace, oder du hast einfach keine Chance an die originalschreibweise des Fundstücks ranzukommen.
Guradia ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.09.2005, 10:30   Nach oben    #9
axo
Gast
 
Beiträge: n/a
Standard str_ireplace für PHP < 5?

oh kinners.
wö würde denn so eine funktion hingehören, wenn es sie denn gäbe?

natürlich nach PEAR::pHP_Compat.

und wo gibt's diese demzufolge auch?

natürlich bei PEAR::pHP_Compat.
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.09.2005, 12:41   Nach oben    #10
Chr!s
Erfahrener Benutzer
 
Benutzerbild von Chr!s
 
Registriert seit: 04.09.2005
Ort: Nürnberg
Beiträge: 561
Standard str_ireplace für PHP < 5?

PHP_Compact hatte ich auch schon auf php.net gelesen, hatte ich vergessen zu erwähnen, tschuldigung. Naja, ich könnte ja die str_ireplace() Funktion aus dem Package in meine Lib kopieren, warum eigentlich nicht.
Zitat:
Dann hast du schlechte Karten ... entweder du nutzt preg_replace, oder du hast einfach keine Chance an die originalschreibweise des Fundstücks ranzukommen.
Dachte ich mir ja schon. Deswegen auch meine Frage
Zitat:
Ich glaube er will ganz auf reguläre Pattern verzichten.
Warum eigentlich?
Darum:
Zitat:
Zitat von php.net
Die Funktion gibt einen String oder ein Array zurück, in dem alle Vorkommen von search innerhalb von subject unabhängig von deren Groß- oder Kleinschreibung gegen den entsprechenden replace-Wert ausgetauscht wurden. Sofern Sie keine speziellen Ersetzungsregeln verwenden, sollten Sie diese Funktion grundsätzlich anstelle von eregi_replace() oder preg_replace() mit i-Modifier verwenden.
__________________
http://www.ChrisDiary.De
Chr!s ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.09.2005, 12:53   Nach oben    #11
Guradia
Benutzer
 
Benutzerbild von Guradia
 
Registriert seit: 18.08.2005
Ort: Düsseldorf
Beiträge: 57
Standard str_ireplace für PHP < 5?

Zitat:
Zitat von Chr!s
Darum:
Zitat:
Zitat von php.net
Die Funktion gibt einen String oder ein Array zurück, in dem alle Vorkommen von search innerhalb von subject unabhängig von deren Groß- oder Kleinschreibung gegen den entsprechenden replace-Wert ausgetauscht wurden. Sofern Sie keine speziellen Ersetzungsregeln verwenden, sollten Sie diese Funktion grundsätzlich anstelle von eregi_replace() oder preg_replace() mit i-Modifier verwenden.
Und wie unschwer zu erkennen, da steckt ja auch drin, warum du eben preg_replace brauchst ...
Guradia ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.09.2005, 12:59   Nach oben    #12
DasMööp
Erfahrener Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 212
Standard str_ireplace für PHP < 5?

Zitat:
Darum:
php.net hat Folgendes geschrieben:
Die Funktion gibt einen String oder ein Array zurück, in dem alle Vorkommen von search innerhalb von subject unabhängig von deren Groß- oder Kleinschreibung gegen den entsprechenden replace-Wert ausgetauscht wurden. Sofern Sie keine speziellen Ersetzungsregeln verwenden, sollten Sie diese Funktion grundsätzlich anstelle von eregi_replace() oder preg_replace() mit i-Modifier verwenden.
Ich verstehe es nicht was Du damit meinst !?
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!
DasMööp ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.09.2005, 13:13   Nach oben    #13
Chr!s
Erfahrener Benutzer
 
Benutzerbild von Chr!s
 
Registriert seit: 04.09.2005
Ort: Nürnberg
Beiträge: 561
Standard str_ireplace für PHP < 5?

Zitat:
Zitat von Guradia
Und wie unschwer zu erkennen, da steckt ja auch drin, warum du eben preg_replace brauchst ...
Zuerst dachte ich, dass dies auch keine Spezielle Regel sei. Doch da ich den Backreference brauch (wg. case sensitive) hast du recht
Zitat:
Zitat von DasMööp
Ich verstehe es nicht was Du damit meinst !?
Naja, auf php.net steht dass man str_ireplace() vor preg und eregi_replace() vorziehen sollte. Nun, in meinem Problem jedoch auch nicht möglich, da ich das Backreference verwenden möchte (siehe meinem ersten Post), somit bleibt mir nur eine Möglichkeit:
preg_replace() .
__________________
http://www.ChrisDiary.De
Chr!s ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.09.2005, 13:26   Nach oben    #14
DasMööp
Erfahrener Benutzer
 
Registriert seit: 14.12.2004
Beiträge: 212
Standard str_ireplace für PHP < 5?

Dacht ich mir es doch ... gut dann ist das ja gelösst :wink:
__________________
Das Leben ist zwar bloß ein Adventure-Game, aber die Grafik ist verdammt gut.
Ich such immer noch den Cheat für unlimited money!
DasMööp ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP 5.2 Kompilierung schlägt fehl Byrel Tools, Server, Betriebssysteme 0 03.11.2006 21:09
[Rezension] PHP 5 Kochbuch Artemis Literatur 2 07.09.2006 19:15
PHP 5.1.5, PHP 4.4.4 und PHP 5.2.0 RC2 veröffentlicht Ben Nachrichten 2 01.09.2006 16:05
PHP 5.1 ist drausen robo47 Nachrichten 5 28.11.2005 20:30
Neue PHP "release candidates": PHP 4.4.2 RC 1 und PHP 5.1 RC 6 Ben Nachrichten 1 21.11.2005 20:48


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:39 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.0.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44