당신 매우 가까웠다 : 2 정규식의 선두로부터는, 실제로 2 항목이기 때문에
$str = preg_replace('/abc/', '123', $str, 1); // will replace first 'abc'
$str = preg_replace('/abc/', '456', $str); // will replace all others
이 작동하는 이유가있다.
프로 : 매우 읽기, 이해하고
콘을 구현하는 것은 매우 쉬운 : 문자열이 당신이 무엇을하지 않으면 옵션
를 제한됩니다, (큰 문자열에 대한 나쁜)를 두 번 regexed됩니다 많은 변종이 만들어 질 수있는 많은 더 많은 제어 O를 : 당신이 preg_replace_callback()
을
$firstHasBeenFound = false;
function magicFunction($matches){
global $firstHasBeenFound;
print_r($matches);
if(!$firstHasBeenFound){
/* do something for the first time */ ;
$firstHasBeenFound = true; // save for next round
}
else{
/* do something for the test */ ;
}
}
$str = preg_replace_callback('/abc/', 'magicFunction', $str);
프로 사용할 수 있습니다 원하는 버전 코드,
콘 문자열의 한 구문 분석 : 읽기 어려운/I가 $firstHasBeenFound
사용이 예에서
구현,하지만 당신은 이상형을 찾을 때 당신이 뭔가 각각 2, 또는 뭔가를 할 수있는 증가를 사용할 수 있습니다 7 등은
게다가 'preg_replace ('/ abc/','123 ', $ str, 1); preg_replace ('/ abc /', '456', $ str, 1);'...'preg_replace_callback()'각 카운트에 기반하여 응답을 수정할 수있는 콜백 함수를 사용합니다. –