2013-10-24 2 views
0

이 경고를 받고 난 워드 프레스 사이트에서 일하고 최근에 내가 시작했다 :경고 :는 preg_match() [function.preg 경기] : 알 수없는 수정 '-'

경고 :는 preg_match를() 함수를 .preg 매치] 알 개질제 '-'는 I BuddyPress가 작동하는 데 필요 /%postname%/, 퍼머로 구조 변경 때 시작

. 기본 퍼 뮤 링크 구조를 사용하면 문제가 사라집니다. 여기

는 오류가 발생한 wp-includes/class-wp.php의 코드입니다 :

if (preg_match("#^$match#", $request_match, $matches) || 
preg_match("#^$match#", urldecode($request_match), $matches)) { 
+1

'$ match'의 내용은 무엇입니까? –

답변

1

-/은 특수 기호이기 때문에, 당신이이 코드를 변경할 수 있습니다 :

if (preg_match("/^".preg_quote($match)."/", $request_match, $matches) || 
preg_match("/^".preg_quote($match)."/", urldecode($request_match), $matches)) { 

하지만 문제가 어딘가에 있다고 가정하면 wp의 핵심 로직이

+0

감사합니다 일리아,하지만 문제는 남아 있습니다. 문제가 어딘가에 더 깊다는 것이 맞을 가능성이 큽니다. –

+0

같은 줄에 문제가 있습니까? –

+0

'-'는 문자 클래스 밖에서 특별한 의미가 없습니다. –

0

$match 변수가없는 경우 텐트는 문제가 무엇인지 알기가 어렵지만이 경고를받는 경우는 $match#- (예 : 사용 된 패턴 구분 기호와 - 문자). 그 다음이 모든 문자는 #이며 수정 자로 간주됩니다.

당신은 ~에 구분 기호를 변경 (기도)를 시도 할 수 있습니다 :

if (preg_match("~^$match~", $request_match, $matches) || 
preg_match("~^$match~", urldecode($request_match), $matches)) { 

는 다른 구분 기호를 시도 작동하지 않는 경우.

관련 문제