Ersatz für ereg_replace (deprecated)
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
array
code
dank
fehler
funktion
gulden
http
nutz
problem
quatsch
quelle
ringen
sagen
schau
schneller gehen
server
syntax
test
url
zeichen
-
*ring, ring*
Ich hab ein Problem mit PHP, und zwar mit ereg_replace. So sieht das ganze aus: (teile davon)
ereg_replace('#test#', 'test', $aendern)
PHP gibt mir aber den Fehler aus
Deprecated: Function ereg_replace() is deprecated
Wie kann ich das lösen?
Beitrag zuletzt geändert: 19.11.2009 19:32:31 von telelo -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
rms schrieb: Indem du die Funktion nicht benutzt Diese wird anscheinend von dem Server nicht erlaubt, aber schau noch mal in die phpinfo...
Danke das ist einfach unnötig. Gulden gibts durch anständige Beiträge.
Das Problem kann man lösen, das hab ich schon herrausgefunden. Es soll wohl durch PHP 5 wieder anders geworden sein.
Vielleicht hat ja einer ne Lösung -
Sry, ja man kann es anders lösen, aber auch du könntest google verwenden
preg_replace() das ist die neue Funktion
Quelle:
http://www.sphider.eu/forum/read.php?2,6431
Sry nikic war schneller...kann gelöscht werden, bevor ich hier weiter bezichtigt werde irgendwie ein Quatsch zu schreiben um an Gulden zu kommen...
Beitrag zuletzt geändert: 19.11.2009 19:39:09 von rms -
Mit preg_replace kommt der Fehler nichtmehr, stattdessen funktionierts nicht mehr so wie es soll. Ich zeig euch jetzt mal das ganze:
$parse = array( '#test1#' => 'test1', '#test2#' => 'test2' ); foreach($parse as $k => $v) { $document = preg_replace($k, $v, $document); }
Er ersetzt es richtig, allerdings werden die #-Zeichen nicht ersetzt, d.h. er zeigt trotzdem #test1# an. -
Das liegt daran, dass preg_* perl-Syntax folgt (das ist die coole regexp syntax), daher wird ein delimiter benötigt. Deine "#"s werden so interpretiert. Versuch mal "/#bla#/".
Zudem ist das sinnlos, was du tust. Nutze str_replace(), das sollte schneller gehen.
Oder eleganter:
$parse = array( '#test1#' => 'test1', '#test2#' => 'test2' ); str_replace(array_keys($parse), $parse, $document);
(Du denkst nicht immer noch daran, ein CMS zu schreiben?) -
Ah danke nikic, funktioniert perfekt.
nikic schrieb: ...
(Du denkst nicht immer noch daran, ein CMS zu schreiben?)
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage