2011-12-14 1 views
0

저는 과거에이 두 함수를 사용 했었지만 제대로 작동했습니다. 나는 CakePHP 어플리케이션을 개발 중이고 어떤 이유로이 함수들 중 하나를 사용하지 않는다. 내가 설정 간단한 테스트했습니다, 나는 그것이 사실 반환 믿을 수 없습니다PHP htmlentities() 및 htmlspecialchars()가 작동하지 않습니다.

$loc_title = htmlentities($location['locations']['title']); 

if(htmlentities($location['locations']['title']) === $location['locations']['title']){ 

    echo "htmlentaties is broken."; 
} 

무엇 제대로 작동하지 이러한 기능을 일으킬 수 있을까?

+0

참고 h()와 비슷한 방법을 사용해야합니다. 예를 들어 ent()라고 부릅니다. 올바른 인코딩이 세 번째 매개 변수로 전달됩니다. 귀하의 질문에 – mark

+0

$ loc_title이 중요합니까? – SuitedSloth

+0

신경 쓰지 마라. 나는 네가 네 대답을 얻는 것을 보았다. – SuitedSloth

답변

4

은 변경하는 것이 좋습니다

htmlentities($location['locations']['title'] === $location['locations']['title']) 

예를 ;-)에 대한

htmlentities($location['locations']['title']) === $location['locations']['title'] 

는 자체 제목의 비교 결과에 엔티티를 탈출한다 당신이 여기서 뭘하고 Beause

. 가장 가능성이 높은 것으로 평가됩니다.

+0

내가 복사/붙여 넣기를 망친 이유는 htmlentatites 대 htmlspecialchars를 테스트했기 때문입니다. 내 잘못이야. 방금 사용중인 코드를 올바르게 반영하기 위해 내 의견을 업데이트했습니다. 저는 HTML 배열의 자바 스크립트 변수를 생성하기 위해이 배열을 반복하고 있기 때문에이 함수가 어떤 문자도 이스케이프하지 않는지 100 % certian입니다. 나는 이중 따옴표와 작은 따옴표를 잘못 입력했기 때문에 JS 오류가 계속 발생합니다. – DirtyBirdNJ

+0

업데이트로 인해 불균형 괄호가 도입되었습니다. 자바 스크립트 문자열로 사용하기 위해 문자열을 이스케이프하는 경우 'json_encode'를 대신 사용하는 것이 좋습니다. –

+0

참고 :'php> var_dump (htmlentities ('<">')); 문자열 (14) "< " >" –