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 = 'hello,world,Hello,World'; $replace = '*'; $search1 = 'hello'; $search2 = 'world'; echo str_ireplace($search1, $replace, $str)."<br>"; echo str_ireplace($search2, $replace, $str)."<br>"; ?>
Observez le code ci-dessus, nous devons changer le "hello<" dans la chaîne $str "<code>hello,world,Hello,World</code Les sous-chaînes >" /code>" et "<code>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”,都替换为*号。所以输出结果为:
是不是很简单,下面我们来了解一下这个str_ireplace()函数。
str_ireplace($search,$replace,$string,$count)
函数可以忽略大小写的替换字符串中的一些字符,该函数接受的参数和str_replace()函数一样,前3个参数是必需的(不可省略),后一个参数$count
是可省略的(但设置了,可以获取替换次数)。
参数$count
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 = 'hello,world,Hello,World';
$replace = '*';
$search1 = 'hello';
$search2 = 'world';
echo str_ireplace($search1, $replace, $str, $i)."<br>";
echo "一共执行了 $i"." 次替换<br><br>";
echo str_ireplace($search2, $replace, $str, $i)."<br>";
echo "一共执行了 $i"." 次替换<br><br>";
?>
Explication :
É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 = '你好,欢迎来到这里!'; $replace = '*'; $search1 = '你好'; $search2 = '欢迎'; echo str_ireplace($search1, $replace, $str)."<br>"; echo str_replace($search2, $replace, $str)."<br>"; ?>
Résultat de sortie :
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. 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!<?php
header("Content-Type: text/html;charset=utf-8"); //设置字符编码
$str = '你好,欢迎来到PHP中文网!';
$replace = '这里';
$search1 = 'PHP中文网';
$search2 = 'php中文网';
echo str_ireplace($search1, $replace, $str)."<br>";
echo str_replace($search2, $replace, $str)."<br>";
?>