PHP str_replace () mit einem Limit-Parameter?

8

str_replace ersetzt alle Vorkommen eines Wortes durch eine Ersetzung.

preg_replace ersetzt das Auftreten eines Musters durch eine Ersetzung und verwendet einen optionalen Limit-Parameter.

Ich brauche keinen Mustervergleich, möchte aber den Vorteil eines Limitparameters. Was sollte ich verwenden?

    
buley 14.12.2011, 19:07
quelle

5 Antworten

2
%Vor%

Damit können Sie die Anzahl der Ersetzungen begrenzen. Strings sollten mit preg_quote maskiert werden, um sicherzustellen, dass Sonderzeichen nicht als Musterzeichen interpretiert werden.

Demo, BTW

Falls Sie interessiert sind, ist hier eine Version , die das Argument &$count enthält:

%Vor%     
Brad Christie 14.12.2011, 19:14
quelle
10

Es gibt einen besseren Weg, dies zu tun

%Vor%     
rakibtg 18.05.2013 19:54
quelle
2
%Vor%

Schnell-PoC:

%Vor%

Ausgabe (Hervorhebung hinzugefügt):

  

Um sein, oder nicht CAN IT sein, das ist die Frage:
  Ob 's Nobler im Kopf KANN ES leiden   Die Schleudern und Pfeile des unerhörten Vermögens,
  Oder um Arme gegen ein Meer von Problemen zu nehmen,
  Und durch das Gegeneinander beenden sie

Beachten Sie, dass bei dieser Methode zwischen Groß- und Kleinschreibung unterschieden wird.

    
user212218 14.12.2011 19:26
quelle
1

Ursprünglich aus Ссылка

gezogen

Ich habe eine Funktion geschrieben, die zu 100% abwärtskompatibel zu str_replace() ist. Das heißt, Sie können alle Vorkommen von str_replace() durch str_replace_limit() ersetzen, ohne etwas zu verderben, selbst wenn Sie Arrays für $search , $replace und / oder $subject .

Die Funktion könnte komplett eigenständig sein, wenn Sie den Funktionsaufruf durch ($string===strval(intval(strval($string)))) ersetzen möchten, aber ich würde es dagegen empfehlen, da valid_integer() eine ziemlich nützliche Funktion ist mit ganzen Zahlen als Strings.

Hinweis: Wenn möglich, verwendet str_replace_limit() stattdessen str_replace() , sodass alle Aufrufe von str_replace() durch str_replace_limit() ersetzt werden können, ohne sich Gedanken über a machen zu müssen Hit auf Leistung.

Verwendung

%Vor% %Vor%
  

2 Ersatz - bbcbbc

%Vor%
  

1 Ersatz - bbcabc

%Vor%
  

2 Ersatz - bbcbbc

Funktion

%Vor%     
0b10011 09.07.2012 17:49
quelle
0

Dies ist eine erweiterte Version der Antwort von @ brad-christie, die Kompatibilität für Arrays wie $ find und $ replace values ​​anzeigt:

%Vor%     
Parks 29.03.2018 21:20
quelle

Tags und Links