>백엔드 개발 >PHP 튜토리얼 >PHP에서 'preg_replace(): Unknown Modifier' 오류가 발생하는 이유는 무엇입니까?

PHP에서 'preg_replace(): Unknown Modifier' 오류가 발생하는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-31 17:51:10413검색

Why Am I Getting the

경고: preg_replace(): 알 수 없는 수정자

개요

이 오류는 정규 표현식에 사용된 수정자를 PHP에서 인식하지 못할 때 발생합니다. preg_replace() function.

원인

두 가지 일반적인 원인은 다음과 같습니다.

  1. 구분 기호 누락: 정규식 패턴이 구분 기호로 묶이지 않습니다(예: 슬래시, 대괄호).
  2. 이스케이프되지 않은 구분 기호: 패턴에는 백슬래시()를 사용하여 이스케이프하지 않고 구분 기호 문자가 포함되어 있습니다.

고려하세요. 다음 코드:

echo str_replace("</ul></div>", "", preg_replace("<div[^>]*><ul[^>]*>", "", wp_nav_menu(array('theme_location' => 'nav', 'echo' => false)) ));

이 코드는 다음을 생성할 수 있습니다. 정규 표현식에 구분 기호가 없기 때문에 발생하는 오류:

<div[^>]*><ul[^>]

해결책

1. 구분 기호 추가:

다음과 같은 유효한 구분 기호로 패턴을 묶습니다.

preg_replace "~<div[^>]*><ul[^>]~", "", ...

2. 이스케이프 구분 기호:

패턴에 구분 문자가 포함된 경우 다음을 사용하여 이스케이프하세요.

preg_replace "/foo[^/]+bar/i", "", ...

권장사항

  • 패턴에 구분 문자가 포함된 경우 다른 구분 기호를 사용하세요. 지정된 구분 기호를 사용하세요.
  • 사용을 고려하세요. preg_quote()를 사용하면 구분 기호를 자동으로 이스케이프 처리할 수 있습니다.
  • 유효한 옵션은 PHP 정규식 구분 기호 문서를 참조하세요.

위 내용은 PHP에서 'preg_replace(): Unknown Modifier' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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