str_replace 공간으로는 하이픈에서는 태그의 이름 특성
-
05-07-2019 - |
문제
$string=독의 영화"꿈"의 무대가 된 곳("#[name=([a-zA-Z0-9 .-]+)*]#","."$1",$string);
이 의 일부는 스크립트 이 작동하지 않:
str_replace(' ', '-', "$1")
나를 대체하는 필요로"""-",
i 도 preg_replace
내부 메인 preg_replace
, str_ireplace
도
그러나 이것은 여전히 작동하지 않
해결책
대체 평가 선행되지 않에 각각 대체합니다.하지만 그렇게 할 수 있습 중 하나에 의해 사용 e
정에서 정규 표현식:
$string = preg_replace("#\[name=([a-zA-Z0-9 .-]+)*]#e", '"<td><a href=\"$front_page/".str_replace(" ", "-", "$1")."\">$1</a></td>"', $string);
를 사용하거나 preg_replace_callback
:
function callbackFunction($match) {
global $front_page;
return '<td><a href="'.$front_page.'/'.str_replace(" ", "-", $match[1]).'">'.$match[1].'</a></td>';
}
$string = preg_replace_callback("#\[name=([a-zA-Z0-9 .-]+)*]#", 'callbackFunction', $string);
다른 팁
나는 당신이해야 할 것입니다 그것은 두 단계에서,이후 $1
에 사용할 수 없습니다 str_replace()
. $1
존재하지 않는 변수로,그것은 단지 자리에서 교체 문자열입니다.
제휴하지 않습니다 StackOverflow