0
다음과 같은 문자열이 있습니다 : [name-123456]
.preg 대괄호를 포함하는 문자열 바꾸기
이 문자열의 일치를 미리 정의 된 일부 문자열로 바꾸려고합니다. 여기에 지금까지 무엇을 가지고 :
preg_replace('~\['.$string_to_be_replaced.'\]~', $code_to_replace_it_with, $content);
현재이 (가 문자열의 일부에도 불구하고), 내가 대괄호를 제거하는 방법을 찾을 수 없습니다 오류가 발생합니다. 그 사람들이
[name-123456]
이
stringofcode
으로 바뀌도록 정규식에서 제거되도록하려면 어떻게해야합니까?
편집 :
$string_to_be_replaced = preg_quote($string_to_be_replaced, "~");
$content = preg_replace('~\['.$string_to_be_replaced.'\]~', $str_to_replace_with, $content);
이 단순히 반환 [이름-123456] : P
vardump는 생산 : string(16) "\[name\-123456\]"
이러한 대괄호 대체 사례가 여러 개있을 수 있습니다. 최종 정규식은 어떻게 생겼습니까? 이것은 : $ string_to_be_replaced = preg_quote ($ string_to_be_replaced, "~"); $ content = preg_replace ('~ \ ['. $ string_to_be_replaced. '\] ~', $ str_to_replace_with, $ content) ;, 미안 슬래시가 제거되었습니다 .. –
예, 그럴듯 해 보입니다. 대괄호 검색 및 관련 대체 문자열 목록이있는 경우에도 'preg_replace_callback'이 더 나은 대안 일 수 있습니다. – mario
위의 수정 사항을 솔루션에서 확인하십시오. –