Deprecated: Function ereg_replace()

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

      Deprecated: Function ereg_replace()

      Deprecated: Function ereg_replace()
      Hey PHP-Götter :)

      Hab grad meinen Uralt Webhoster mein PHP von 5.2 auf 5.3.1 updaten lassen.
      Jetzt bekomm ich den fehler "Deprecated: Function ereg_replace()"

      Meine erste frage:
      Funktioniert ereg noch, oder muss ich bei 5.3.1 schon auf preg umschreiben?

      Falls es noch geht:
      Wie war noch mal der Code das die fehler Meldung verschwindet? Irgendwie so oder? "error_reporting(E_ALL & ~E_DEPRECATED);"


      Falls es nicht mehr geht:
      Könnte mir das einer eben in preg umschreiben?

      PHP-Quellcode

      1. $text = ereg_replace(":)", "<img src='img/smileys/01.gif'>", $text);$text = ereg_replace("\:\(", "<img src='img/smileys/02.gif'>", $text);$text = ereg_replace(":D", "<img src='img/smileys/03.gif'>", $text);$text = ereg_replace("8)", "<img src='img/smileys/04.gif'>", $text);$text = ereg_replace(":O", "<img src='img/smileys/05.gif'>", $text);$text = ereg_replace(";)", "<img src='img/smileys/06.gif'>", $text);$text = ereg_replace("\;\(", "<img src='img/smileys/07.gif'>", $text);$text = ereg_replace("\:\|", "<img src='img/smileys/08.gif'>", $text);$text = ereg_replace("\:\P", "<img src='img/smileys/09.gif'>", $text);$text = ereg_replace(":x", "<img src='img/smileys/23.gif'>", $text);$text = ereg_replace(":@", "<img src='img/smileys/18.gif'>", $text);$text = ereg_replace(":s", "<img src='img/smileys/20.gif'>", $text);$text = ereg_replace("\(nod\)", "<img src='img/smileys/32.gif'>", $text);$text = ereg_replace("\(shake\)", "<img src='img/smileys/33.gif'>", $text);$text = ereg_replace("\(wait\)", "<img src='img/smileys/26.gif'>", $text);$text = ereg_replace("\(finger\)", "<img src='img/smileys/44.gif'>", $text);$text = ereg_replace("\(rock\)", "<img src='img/smileys/46.gif'>", $text);

      Natürlich hab ichs schon selbst probiert, aber das zickt iwie immer rum.

      Danke... :hi:
      MfG GodHateMe
      8 Jahre bei der Besten Community
      Hey,
      ich selber bin in PHP nicht so begabt, aber ich habe mal kurz gegoogelt :D
      Beispiel:

      PHP-Quellcode

      1. <?php
      2. $text = "[b ]fetter Text[/b]";//ohne das leerzeichen bei [b ]
      3. $replace = '<b>$1</b>';//bzw
      4. //$replace = '<p style="font-weight:bold;">$1</p>';
      5. $text = preg_replace("/\[b\](.*)\[\/b\]/",$replace,$text);
      6. echo $text;
      7. ?>


      Für mich sieht das so aus, als könnte man das fast genauso verwenden wie ereg...
      Vielleicht iwie so:

      PHP-Quellcode

      1. $text = preg_replace(":)", "<img src='img/smileys/01.gif'>", $text);

      Bin mir aber nicht sicher und kann es leider immoment nicht testen, da ich noch nicht Zuhause bin ;)
      Das Leben ist scheiße, hat aber ne hamma Grafik^.^
      :D :D
      Habe noch was gefunden, vielleicht interresant.


      Deprecated: Function eregi() is deprecated in C:xampphtdocsxtcommerceincxtc_Security.inc.php on line 66

      Viele coden nun ereg() eregi(() um in preg_match(). Es geht unter PHP5.2.x einfacher, indem man die E_DEPRECATED Meldungen von PHP unterdrückt), denn im 5.2er Branch ist dies noch ein “Warning” -

      Hierzu genügt z.B.

      error_reporting(E_ALL & ~E_DEPRECATED);

      bei xt:Commerce etc. z.B. in der includes/application_top.php

      Um fit für PHP5.3 zu sein, ist ein umcoden in preg_match() nötig – denn erst mit dem sich noch fern vom Produktionseinsatz befindlichen PHP5.3 wird ereg() und eregi() ohne Rücksicht auf Verluste aus PHP entfernt und zeigt wieder mal den kleinen aber feinen Unterschied zu Ruby, wo Abwärtskompatibilität mehr beherzt wird.

      Quelle: pixel-boutique.de/einfach-zu-f…recated-xtc_security-etc/
      Das Leben ist scheiße, hat aber ne hamma Grafik^.^
      :D :D
      Deprecated heist, dass die Funktion veraltet ist. Sie funktioniert noch, aber könnte in den folgenden PHP-Versionen irgendwann entfernt werden.

      Damit schaltest du die Warnung ab (doof)

      PHP-Quellcode

      1. error_reporting(E_ALL & ~E_DEPRECATED);


      So gehts mit preg_replace (cool)
      preg_replace ist für Reguläre Ausdrücke (ich nenne sie auch die Sonderzeichen-Sprache). Sogut wie jedes Sonderzeichen hat irgendeine Funktion. RegEx zu verstehen, ist nicht sehr einfach. Die meisten Ausdrücke sehen aus, als hätte jemand einen Faceroll über die Sonderzeichenreihe der Tastatur hingelegt Kostprobe ?
      Aber keine Angst, soweit musst du RegEx nicht verstehen.

      PHP-Quellcode

      1. mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )

      Pattern: Was gesucht wird
      Replacement: Alle Vorkommen von Pattern werden hiermit ersetzt
      Subject: Der Ausgangstext

      Das Pattern muss zwischen zwei /

      PHP-Quellcode

      1. $text = 'Apfel Affe Vergaser';
      2. $text = preg_replace('/Affe/', 'Tiger', $text);
      3. echo $text; // Apfel Tiger Vergaser


      Soweit erstmal einfach oder?

      Ich zitiere mich selbst (xD): "Sogut wie jedes Sonderzeichen hat irgendeine Funktion".
      Da die Smileys aber grundsätztlich auch aus Sonderzeichen bestehten, wird folgendes Suchmuster nicht funktionieren:

      PHP-Quellcode

      1. $text = preg_replace('/:)/', '<Bild>', $text);


      Die Sonderzeichen müssen escaped werden. Dies macht man, wie in vielen Sprachen üblich, mit dem Backslash ( \ )

      PHP-Quellcode

      1. $text = preg_replace('/\:\)/', '<Bild>', $text);


      preg_replace ist Case-Sensitive.

      PHP-Quellcode

      1. $text = 'Apfel affe Vergaser Affe';
      2. $text = preg_replace("/Affe/", "Tiger", $text);
      3. echo $text; // Apfel affe Vergaser Tiger


      Das beeinflusst natürlich auch die Smileys. Mancheiner bevorzugt den :p , ein Anderer :P
      Lösen kann man dieses Problem mit dem i-Modifier.

      PHP-Quellcode

      1. $text = 'Apfel affe Vergaser Affe';
      2. $text = preg_replace("/Affe/i", "Tiger", $text);
      3. echo $text; // Apfel Tiger Vergaser Tiger



      Zuletzt noch eine kleine Eigenschaft von preg_replace:

      PHP-Quellcode

      1. $text = 'Apfel affe Vergaser Affe';
      2. $pattern = array( '/Apfel/', '/Affe/');
      3. $replacement = array('Fallobst', 'Tiger');
      4. $text = preg_replace($pattern, $replacement, $text);
      5. echo $text; // Fallobst affe Vergaser Tiger

      Für das Pattern und das Replacement kann man arrays angeben. Das hat den Vorteil das man nicht endlos oft preg_replace aufrufen muss.
      Das Verhalten ist simpel. $pattern[0] wird mit $replacement[0] ersetzt, $pattern[1] mit $replacement[1] usw.
      Der einzige Nachteil: Die Übersichtlichkeit leidet darunter. Man sieht nicht mehr sofort, was mit was ersetzt wird und es schleichen sich evtl. Fehler ein.

      Für den schnellen Erfolg oder zum Nachschlagen bei Problemen

      PHP-Quellcode

      1. $text = preg_replace('/\:\)/', '<img src="img/smileys/01.gif">', $text);
      2. $text = preg_replace('/\:\(/', '<img src="img/smileys/02.gif">', $text);
      3. $text = preg_replace('/\:D/', '<img src="img/smileys/03.gif">', $text);
      4. $text = preg_replace('/8\)/', '<img src="img/smileys/04.gif">', $text);
      5. $text = preg_replace('/\:O/i', '<img src="img/smileys/05.gif">', $text);
      6. $text = preg_replace('/\;\)/', '<img src="img/smileys/06.gif">', $text);
      7. $text = preg_replace('/\;\(/', '<img src="img/smileys/07.gif">', $text);
      8. $text = preg_replace('/\:\|/','<img src="img/smileys/08.gif">', $text);
      9. $text = preg_replace('/\:P/i', '<img src="img/smileys/09.gif">', $text);
      10. $text = preg_replace('/\:x/i', '<img src="img/smileys/23.gif">', $text);
      11. $text = preg_replace('/:\@/', '<img src="img/smileys/18.gif">', $text);
      12. $text = preg_replace('/\:s/i', '<img src="img/smileys/20.gif">', $text);
      13. $text = preg_replace('/\(nod\)/i', '<img src="img/smileys/32.gif">', $text);
      14. $text = preg_replace('/\(shake\)/i', '<img src="img/smileys/33.gif">', $text);
      15. $text = preg_replace('/\(wait\)/i', '<img src="img/smileys/26.gif">', $text);
      16. $text = preg_replace('/\(finger\)/i', '<img src="img/smileys/44.gif">', $text);
      17. $text = preg_replace('/\(rock\)/i', '<img src="img/smileys/46.gif">', $text);
      Alles anzeigen



      PS: Wieso geht mein Expander nicht mehr :(
      Edit: Bug-Detected: Der Expander mag keine Kommata!

      Gruß
      florian0

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von florian0 () aus folgendem Grund: Rechtschreibung

      florian0 schrieb:

      Deprecated heist, dass die Funktion veraltet ist. Sie funktioniert noch, aber könnte in den folgenden PHP-Versionen irgendwann entfernt werden.

      Damit schaltest du die Warnung ab (doof)

      PHP-Quellcode

      1. error_reporting(E_ALL & ~E_DEPRECATED);


      So gehts mit preg_replace (cool)
      preg_replace ist für Reguläre Ausdrücke (ich nenne sie auch die Sonderzeichen-Sprache). Sogut wie jedes Sonderzeichen hat irgendeine Funktion. RegEx zu verstehen, ist nicht sehr einfach. Die meisten Ausdrücke sehen aus, als hätte jemand einen Faceroll über die Sonderzeichenreihe der Tastatur hingelegt Kostprobe ?
      Aber keine Angst, soweit musst du RegEx nicht verstehen.

      PHP-Quellcode

      1. mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )

      Pattern: Was gesucht wird
      Replacement: Alle Vorkommen von Pattern werden hiermit ersetzt
      Subject: Der Ausgangstext

      Das Pattern muss zwischen zwei /

      PHP-Quellcode

      1. $text = 'Apfel Affe Vergaser';
      2. $text = preg_replace('/Affe/', 'Tiger', $text);
      3. echo $text; // Apfel Tiger Vergaser


      Soweit erstmal einfach oder?

      Ich zitiere mich selbst (xD): "Sogut wie jedes Sonderzeichen hat irgendeine Funktion".
      Da die Simleys aber grundsätztlich auch aus Sonderzeichen bestehten, wird folgendes Suchmuster nicht funktionieren:

      PHP-Quellcode

      1. $text = preg_replace('/:)/', '', $text);


      Die Sonderzeichen müssen escaped werden. Dies macht man, wie in vielen Sprachen üblich, mit dem Backslash ( \ )

      PHP-Quellcode

      1. $text = preg_replace('/\:\)/', '', $text);


      preg_replace ist Case-Sensitive.

      PHP-Quellcode

      1. $text = 'Apfel affe Vergaser Affe';
      2. $text = preg_replace("/Affe/", "Tiger", $text);
      3. echo $text; // Apfel affe Vergaser Tiger


      Das beeinflusst natürlich auch die Simleys. Mancheiner bevorzugt den :p , ein anderer :P
      Lösen kann man dieses Problem mit dem i-Modifier.

      PHP-Quellcode

      1. $text = 'Apfel affe Vergaser Affe';
      2. $text = preg_replace("/Affe/i", "Tiger", $text);
      3. echo $text; // Apfel Tiger Vergaser Tiger



      Zuletzt noch eine kleine Eigenschaft von preg_replace:

      PHP-Quellcode

      1. $text = 'Apfel affe Vergaser Affe';
      2. $pattern = array( '/Apfel/', '/Affe/');
      3. $replacement = array('Fallobst', 'Tiger');
      4. $text = preg_replace($pattern, $replacement, $text);
      5. echo $text; // Fallobst affe Vergaser Tiger

      Für das Pattern und das Replacement kann man arrays angeben. Das hat den Vorteil das man nicht endlos oft preg_replace aufrufen muss.
      Das Verhalten ist simpel. $pattern[0] wird mit $replacement[0] ersetzt, $pattern[1] mit $replacement[1] usw.
      Der einzige Nachteil: Die Übersichtlichkeit leidet darunter. Man sieht nicht mehr sofort, was mit was ersetzt wird und es schleichen sich evtl. Fehler ein.

      Für den schnellen Erfolg oder zum Nachschlagen bei Problemen

      PHP-Quellcode

      1. $text = preg_replace('/\:\)/', '', $text);
      2. $text = preg_replace('/\:\(/', '', $text);
      3. $text = preg_replace('/\:D/', '', $text);
      4. $text = preg_replace('/8\)/', '', $text);
      5. $text = preg_replace('/\:O/i', '', $text);
      6. $text = preg_replace('/\;\)/', '', $text);
      7. $text = preg_replace('/\;\(/', '', $text);
      8. $text = preg_replace('/\:\|/','', $text);
      9. $text = preg_replace('/\:P/i', '', $text);
      10. $text = preg_replace('/\:x/i', '', $text);
      11. $text = preg_replace('/:\@/', '', $text);
      12. $text = preg_replace('/\:s/i', '', $text);
      13. $text = preg_replace('/\(nod\)/i', '', $text);
      14. $text = preg_replace('/\(shake\)/i', '', $text);
      15. $text = preg_replace('/\(wait\)/i', '', $text);
      16. $text = preg_replace('/\(finger\)/i', '', $text);
      17. $text = preg_replace('/\(rock\)/i', '', $text);
      Alles anzeigen



      PS: Wieso geht mein Expander nicht mehr :(
      Edit: Bug-Detected: Der Expander mag keine Kommata!

      Gruß
      florian0</bild></bild>
      *_________________* so mag ich das :D XD danke ^^ :)))) Coole scheiße!
      :vain: :vain: :vain: :vain: :vain: :vain:

      €: ich glaub ich hab mich verliebt *_*
      MfG GodHateMe
      8 Jahre bei der Besten Community