문제

$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 존재하지 않는 변수로,그것은 단지 자리에서 교체 문자열입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top