>  기사  >  백엔드 개발  >  PHP 텍스트 교체가 지정된 시간에 이루어졌습니다.

PHP 텍스트 교체가 지정된 시간에 이루어졌습니다.

*文
*文원래의
2017-12-27 18:06:152016검색

본 글에서는 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] = &#39;`&#39; . preg_quote($search[$k],&#39;`&#39;) . &#39;`&#39;;
}
}
else {
$search = &#39;`&#39; . preg_quote($search,&#39;`&#39;) . &#39;`&#39;;
}
// replacement
return preg_replace($search, $replace, $subject, $limit);
}
?>


관련 추천:

php 문자열 분할 및 비교 소개

php 문자열 정규 대체 함수 preg_replace 사용에 대한 자세한 설명

php string

바꾸는 방법

위 내용은 PHP 텍스트 교체가 지정된 시간에 이루어졌습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.