Home  >  Article  >  Backend Development  >  PHP cleverly uses functions to replace given substrings with * signs (case insensitive)

PHP cleverly uses functions to replace given substrings with * signs (case insensitive)

青灯夜游
青灯夜游Original
2021-08-10 14:35:233295browse

In the previous article, we introduced a string replacement method, which can replace a given substring with other values ​​​​in a case-sensitive manner. If you are interested, you can click on the link to check → "How to use PHP to replace a given substring with another value?" Replace the stator string with * (case sensitive) 》. This time we will introduce to you another method of replacing a given substring in a string. You can refer to it if you need it.

Above we introduced the method of using the str_replace() function to replace a given substring. This method is case-sensitive (that is, case-sensitive), as long as there is a character in the string whose case does not meet the requirements. , cannot be exactly the same as the given substring, then no replacement will be performed.

But sometimes when performing string replacement, it does not need to be so strict and the case of characters can be ignored. Today we will introduce a method that is insensitive to the case of replacement characters.

Let's take a look at the following example:

<?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>";
?>

Observe the above code, we need to add the $str string "hello,world,Hello,World" to The "hello" and "world" substrings are replaced with *. However, there are two types of $str strings that meet the requirements: one is a complete match (case consistent), and the other is an incomplete match (case is inconsistent).

But because we are using the str_ireplace() function, which can ignore case, it will replace the two substrings "hello" and "Hello", "world" and "world" in the string $str that meet the requirements. "World" is replaced with *. So the output result is:

PHP cleverly uses functions to replace given substrings with * signs (case insensitive)

# Isn’t it very simple? Let’s take a look at this str_ireplace() function.

str_ireplace($search,$replace,$string,$count)The function can ignore some characters in the replacement string, ignoring the case. The parameters accepted by this function are the same as the str_replace() function. Similarly, the first three parameters are required (cannot be omitted), and the last parameter $count is omitted (but if set, the number of substitutions can be obtained).

Parameter$count can accept a variable to count the number of substitutions; if this parameter is set, you can know how many substitutions have been performed in 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>";
?>

Output result:

PHP cleverly uses functions to replace given substrings with * signs (case insensitive)

Explanation:

Because str_ireplace() and str_replace() functions are Directly give the substring that needs to be replaced, so both functions can be used to replace Chinese characters.

<?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>";
?>

Output result:

PHP cleverly uses functions to replace given substrings with * signs (case insensitive)

The pure Chinese string is almost the same, but in the mixed Chinese and English string, because it is case-sensitive, it can Choose which one to use based on your needs.

<?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>";
?>

Output result:

PHP cleverly uses functions to replace given substrings with * signs (case insensitive)

Okay, that’s all. If you want to know anything else, you can click this. → →php video tutorial

Finally, I recommend reading a classic course "PHP String Processing (Jade Girl Heart Sutra Edition)", it's free~ come and learn !

The above is the detailed content of PHP cleverly uses functions to replace given substrings with * signs (case insensitive). For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn