PHP-Textersetzung zu bestimmten Zeiten

*文
Freigeben: 2023-03-18 16:50:01
Original
2085 Leute haben es durchsucht

Dieser Artikel stellt hauptsächlich vor, wie man in PHP nur einmal oder nur N-mal ersetzt, und stellt das Thema anhand eines einfachen Beispiels vor. Ich hoffe, es hilft allen.

Wir alle wissen, dass in PHP Strtr, strreplace und andere Funktionen zum Ersetzen verwendet werden können, aber sie alle ersetzen jedes Mal, wenn sie ersetzt werden. Zum Beispiel:
„abcabbc“, wenn Sie diese Zeichenfolge verwenden Wenn Sie die Funktion oben verwenden, um b zu ersetzen, werden sie alle ersetzt, aber was ist, wenn Sie nur ein oder zwei ersetzen möchten? Damals habe ich preg_replace direkt verwendet, um es zu implementieren.

mixed preg_replace (gemischtes Muster, gemischte Ersetzung, gemischter Betreff [, int limit]) Suchen Sie nach einer Übereinstimmung mit Mustermuster im Betreff und ersetzen Sie es mit Ersatz. Wenn limit angegeben ist, werden nur limit-Übereinstimmungen ersetzt; wenn limit weggelassen wird oder einen Wert von -1 hat, werden alle Übereinstimmungen ersetzt.
Da der vierte Parameter von preg_replace die Anzahl der Ersetzungen begrenzen kann, ist es sehr praktisch, dieses Problem auf diese Weise zu lösen. Aber nachdem wir uns die Funktionskommentare zu str_replace auf php.net angesehen haben, können wir tatsächlich ein paar repräsentative Funktionen herausgreifen.

Methode 1: str_replace_once
IdeeErmitteln Sie zunächst die Position des zu ersetzenden Schlüsselworts und verwenden Sie dann die Funktion substr_replace um es direkt zu ersetzen.


<?php
function str_replace_once($needle, $replace, $haystack) {
// Looks for the first occurence of $needle in $haystack
// and replaces it with $replace.
$pos = strpos($haystack, $needle);
if ($pos === false) {
// Nothing found
return $haystack;
}
return substr_replace($haystack, $replace, $pos, strlen($needle));
}
?>
Nach dem Login kopieren


Methode 2, str_replace_limit
Denken Ich verwende immer noch preg_replace, aber seine Parameter ähneln eher preg_replace und einige Sonderzeichen sind maskiert, was es vielseitiger macht.


<?
function str_replace_limit($search, $replace, $subject, $limit=-1) {
// constructing mask(s)...
if (is_array($search)) {
foreach ($search as $k=>$v) {
$search[$k] = &#39;`&#39; . preg_quote($search[$k],&#39;`&#39;) . &#39;`&#39;;
}
}
else {
$search = &#39;`&#39; . preg_quote($search,&#39;`&#39;) . &#39;`&#39;;
}
// replacement
return preg_replace($search, $replace, $subject, $limit);
}
?>
Nach dem Login kopieren


Verwandte Empfehlungen:

Einführung in die PHP-String-Segmentierung und den Vergleich

Detaillierte Erläuterung der Verwendung der regulären PHP-String-Ersetzungsfunktion preg_replace

PHP-String-Ersetzungsmethode

Das obige ist der detaillierte Inhalt vonPHP-Textersetzung zu bestimmten Zeiten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage