본 글에서는 PHP에서 한 번만 교체하거나 N번만 교체하는 방법을 주로 소개하고, 간단한 예제를 통해 주제를 소개합니다. 그것이 모두에게 도움이 되기를 바랍니다.
우리 모두는 PHP에서 Strtr, strreplace 및 기타 함수를 사용하여 바꿀 수 있다는 것을 알고 있지만 매번 모두 교체됩니다. 예:
"abcabbc", 위 함수를 사용하여 이 문자열을 바꾸면. b를 포함하면 모두 교체되지만, 한두 개만 교체하려면 어떻게 해야 할까요? 아래 해결 방법을 참조하세요.
이것은 다소 흥미로운 질문이며 이전에 처리를 위해 비슷한 작업을 수행한 적이 있습니다. preg_replace를 사용하여 직접적으로 수행합니다.
mixed preg_replace (혼합 패턴, 혼합 교체, 혼합 주제 [, int 제한] )
주제에서 패턴 패턴과 일치하는 항목을 검색하고 교체로 교체합니다. 한계가 지정되면 한계 일치만 대체됩니다. 한계가 생략되거나 값이 -1인 경우 모든 일치가 대체됩니다.
preg_replace의 네 번째 매개변수는 교체 횟수를 제한할 수 있으므로 이 문제를 이런 방식으로 처리하는 것이 매우 편리합니다. 하지만 php.net에서 str_replace에 대한 함수 설명을 살펴보면 실제로 몇 가지 대표적인 함수를 골라낼 수 있습니다.
방법 1: str_replace_once
Idea먼저 교체할 키워드의 위치를 찾은 후, substr_replace 함수를 사용하여 직접 교체합니다.
<?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)); } ?>
방법 2, str_replace_limit
Idea 여전히 preg_replace를 사용하고 있지만 해당 매개변수는 preg_replace와 비슷하며 일부 특수 문자가 이스케이프되어 다용도가 향상되었습니다.
<? function str_replace_limit($search, $replace, $subject, $limit=-1) { // constructing mask(s)... if (is_array($search)) { foreach ($search as $k=>$v) { $search[$k] = '`' . preg_quote($search[$k],'`') . '`'; } } else { $search = '`' . preg_quote($search,'`') . '`'; } // replacement return preg_replace($search, $replace, $subject, $limit); } ?>
관련 추천:
php 문자열 정규 대체 함수 preg_replace 사용에 대한 자세한 설명
바꾸는 방법위 내용은 PHP 텍스트 교체가 지정된 시간에 이루어졌습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!