Maison >développement back-end >tutoriel php >remplacement du texte php heures spécifiées

remplacement du texte php heures spécifiées

*文
*文original
2017-12-27 18:06:152097parcourir

Cet article présente principalement comment remplacer une seule ou seulement N fois en PHP, et présente le thème à travers un exemple simple. J'espère que cela aide tout le monde.

Nous savons tous qu'en PHP, Strtr, strreplace et d'autres fonctions peuvent être utilisées pour le remplacement, mais elles remplacent toutes à chaque fois qu'elles sont remplacées. Par exemple :
"abcabbc", cette chaîne Si vous utilisez. la fonction ci-dessus pour remplacer b, alors elle les remplacera tous, mais que se passe-t-il si vous souhaitez en remplacer seulement un ou deux ? Voir la solution ci-dessous :
C'est une question plutôt intéressante, j'ai déjà fait un traitement similaire. . A cette époque, j'utilisais directement preg_replace pour l'implémenter.

 mixed preg_replace (modèle mixte, remplacement mixte, sujet mixte [, limite int])
Recherchez une correspondance de motif dans le sujet et remplacez-la avec remplacement. Si la limite est spécifiée, seules les correspondances de limite sont remplacées ; si la limite est omise ou a une valeur de -1, toutes les correspondances sont remplacées.
Parce que le quatrième paramètre de preg_replace peut limiter le nombre de remplacements, il est très pratique de résoudre ce problème de cette manière. Mais après avoir examiné les commentaires sur les fonctions str_replace sur php.net, nous pouvons en fait sélectionner quelques fonctions représentatives.

Méthode 1 : str_replace_once
Idée Tout d'abord, recherchez la position du mot-clé à remplacer, puis utilisez la fonction substr_replace pour le remplacer directement.


<?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));
}
?>


Méthode 2, str_replace_limit
Réflexion J'utilise toujours preg_replace, mais ses paramètres ressemblent davantage à preg_replace, et certains caractères spéciaux sont échappés, ce qui le rend plus polyvalent.


<?
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);
}
?>


Recommandations associées :

Introduction à la segmentation et à la comparaison de chaînes php

Explication détaillée de l'utilisation de la fonction de remplacement régulier de chaîne php preg_replace

Méthode de remplacement de chaîne php

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn