Maison  >  Article  >  développement back-end  >  PHP utilise intelligemment des fonctions pour remplacer les sous-chaînes données par des signes * (insensible à la casse)

PHP utilise intelligemment des fonctions pour remplacer les sous-chaînes données par des signes * (insensible à la casse)

青灯夜游
青灯夜游original
2021-08-10 14:35:233280parcourir

Dans l'article précédent, nous avons introduit une méthode de remplacement de chaîne, qui peut remplacer une sous-chaîne donnée par d'autres valeurs en respectant la casse. Si vous êtes intéressé, vous pouvez cliquer sur le lien pour vérifier → "Comment remplacer. une sous-chaîne donnée avec PHP * (sensible à la casse) 》. Cette fois, nous allons vous présenter une autre méthode pour remplacer une sous-chaîne donnée dans une chaîne. Vous pouvez vous y référer si vous en avez besoin. ci-dessus Les chaînes ne peuvent pas être exactement les mêmes, donc le remplacement ne sera pas effectué.

Mais parfois, lors du remplacement de chaîne, il n'est pas nécessaire que cela soit aussi strict et la casse des caractères peut être ignorée. Aujourd'hui, nous allons présenter une méthode insensible à la casse des caractères de remplacement.

Regardons l'exemple suivant :

<?php
$str = &#39;hello,world,Hello,World&#39;;
$replace = &#39;*&#39;;
$search1 = &#39;hello&#39;;
$search2 = &#39;world&#39;;
echo str_ireplace($search1, $replace, $str)."<br>";
echo str_ireplace($search2, $replace, $str)."<br>";
?>

Observez le code ci-dessus, nous devons changer le "hellohello,world,Hello,WorldLes sous-chaînes >" /code>" et "world" sont remplacées par des nombres *. Cependant, il existe deux types de chaînes $str qui répondent aux exigences : l'une est une sous-chaîne qui correspond complètement (la casse est cohérente) et l'autre est une correspondance incomplète (la casse est incohérente).

Mais comme nous utilisons la fonction str_ireplace(), qui peut ignorer la casse, elle remplacera les deux sous-chaînes "hello" et "Hello", "world" et "World" dans la chaîne $str qui répondent aux exigences. sont remplacés par *. Le résultat de sortie est donc : hello,world,Hello,World”中的“hello”和“world”子串替换成*号。但$str字符串中符合要求的有两种:一种是完全匹配(大小写一致)的子串,一种是不完全匹配(大小写不一致)的。

但因为我们使用的是str_ireplace()函数,该函数可以忽略大小写,因此会将字符串$str中符合要求的两种子串“hello”和“Hello”、“world”和“World”,都替换为*号。所以输出结果为:

PHP utilise intelligemment des fonctions pour remplacer les sous-chaînes données par des signes * (insensible à la casse)

是不是很简单,下面我们来了解一下这个str_ireplace()函数。

str_ireplace($search,$replace,$string,$count)函数可以忽略大小写的替换字符串中的一些字符,该函数接受的参数和str_replace()函数一样,前3个参数是必需的(不可省略),后一个参数$count是可省略的(但设置了,可以获取替换次数)。

参数$count

PHP utilise intelligemment des fonctions pour remplacer les sous-chaînes données par des signes * (insensible à la casse)

N'est-ce pas très simple ? Jetons un coup d'œil à cette fonction str_ireplace().

PHP utilise intelligemment des fonctions pour remplacer les sous-chaînes données par des signes * (insensible à la casse)str_ireplace($search,$replace,$string,$count)La fonction peut remplacer certains caractères dans la chaîne en ignorant la casse. Les paramètres acceptés par cette fonction sont les mêmes que la fonction str_replace(). . Le précédent Les trois paramètres sont obligatoires (ne peuvent pas être omis), et le dernier paramètre $count est omis (mais s'il est défini, le nombre de substitutions peut être obtenu).

Le paramètre $count peut accepter une variable pour compter le nombre de substitutions ; si ce paramètre est défini, vous pouvez savoir combien de substitutions ont été effectuées au total.

<?php
header("Content-Type: text/html;charset=utf-8");    //设置字符编码
$str = &#39;hello,world,Hello,World&#39;;
$replace = &#39;*&#39;;
$search1 = &#39;hello&#39;;
$search2 = &#39;world&#39;;
echo str_ireplace($search1, $replace, $str, $i)."<br>";
echo  "一共执行了  $i"." 次替换<br><br>";

echo str_ireplace($search2, $replace, $str, $i)."<br>";
echo  "一共执行了  $i"." 次替换<br><br>";
?>
Résultat de sortie :

Explication : PHP utilise intelligemment des fonctions pour remplacer les sous-chaînes données par des signes * (insensible à la casse)

Étant donné que les fonctions str_ireplace() et str_replace() donnent directement la sous-chaîne qui doit être remplacée, les deux fonctions peuvent être utilisées pour remplacer les caractères chinois.

<?php
header("Content-Type: text/html;charset=utf-8");    //设置字符编码
$str = &#39;你好,欢迎来到这里!&#39;;
$replace = &#39;*&#39;;
$search1 = &#39;你好&#39;;
$search2 = &#39;欢迎&#39;;
echo str_ireplace($search1, $replace, $str)."<br>";
echo str_replace($search2, $replace, $str)."<br>";
?>

Résultat de sortie :

PHP utilise intelligemment des fonctions pour remplacer les sous-chaînes données par des signes * (insensible à la casse)

La chaîne chinoise pure est presque la même, mais la chaîne mixte chinois et anglais est sensible à la casse, vous pouvez donc choisir laquelle utiliser en fonction de vos besoins.

<?php
header("Content-Type: text/html;charset=utf-8");    //设置字符编码
$str = &#39;你好,欢迎来到PHP中文网!&#39;;
$replace = &#39;这里&#39;;
$search1 = &#39;PHP中文网&#39;;
$search2 = &#39;php中文网&#39;;
echo str_ireplace($search1, $replace, $str)."<br>";
echo str_replace($search2, $replace, $str)."<br>";
?>
Résultat de sortie :

D'accord, c'est tout si vous voulez savoir autre chose, vous pouvez cliquer ici. → →🎜Tutoriel vidéo php🎜🎜🎜Enfin, je vous recommande de lire un cours classique "🎜PHP String Processing (Jade Girl Heart Sutra Edition)🎜", c'est gratuit~ Venez apprendre ! 🎜

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