이전 글에서는 대소문자를 구분하여 특정 하위 문자열을 다른 값으로 대체할 수 있는 문자열 대체 방법을 소개했습니다. 관심 있는 경우 링크를 클릭하여 → "교체 방법"을 확인하실 수 있습니다. PHP *(대소문자 구분) 》로 지정된 하위 문자열. 이번에는 문자열에서 주어진 하위 문자열을 바꾸는 또 다른 방법을 소개하겠습니다. 필요할 경우 참조할 수 있습니다. 위의 문자열은 정확히 동일할 수 없으므로 교체가 수행되지 않습니다.
하지만 때로는 문자열 교체를 수행할 때 너무 엄격할 필요가 없고 문자의 대소문자를 무시할 수 있는 경우도 있습니다. 오늘은 대체문자의 대소문자를 구분하지 않는 방법을 소개하겠습니다.
다음 예를 살펴보겠습니다.
<?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>"; ?>
위 코드를 관찰하고 $str 문자열 "hello,world,Hello,World
"에서 "hello" /code>” 및 “<code>world
” 하위 문자열은 *
숫자로 대체됩니다. 그러나 요구 사항을 충족하는 $str 문자열에는 두 가지 유형이 있습니다. 하나는 완전히 일치하는 하위 문자열(대소문자 일치)이고 다른 하나는 불완전한 일치(대소문자 불일치)입니다.
그러나 우리는 대소문자를 무시할 수 있는 str_ireplace() 함수를 사용하고 있기 때문에 요구 사항을 충족하는 문자열 $str에서 두 개의 하위 문자열 "hello" 및 "Hello", "world" 및 "World"를 대체합니다. *로 대체됩니다. 따라서 출력 결과는 다음과 같습니다. 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)
이 함수는 대소문자를 무시하고 문자열의 일부 문자를 바꿀 수 있습니다. 이 함수에서 허용하는 매개변수는 str_replace() 함수와 동일합니다. 앞의 3개의 매개변수는 필수(생략불가)이며, 뒤의 매개변수 $count
는 생략가능(단, 설정하면 대체횟수를 얻을 수 있다).
매개변수 $count
는 대체 횟수를 계산하는 변수를 허용할 수 있습니다. 이 매개변수를 설정하면 총 대체 횟수를 알 수 있습니다. <?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>";
?>
출력 결과:
설명:
str_ireplace() 및 str_replace() 함수는 대체해야 할 부분 문자열을 직접 제공하므로 두 함수 모두 한자를 대체하는 데 사용할 수 있습니다.
<?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>"; ?>
출력 결과:
순수 중국어 문자열은 거의 동일하지만 중국어와 영어가 혼합된 문자열은 대소문자를 구분하므로 필요에 따라 어느 것을 사용할지 선택할 수 있습니다. <?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>";
?>
출력 결과:
위 내용은 PHP는 주어진 하위 문자열을 * 기호로 바꾸는 함수를 교묘하게 사용합니다(대소문자 구분 안 함).의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!