위에서 알려주신 방법을 적용해 봤는데 다행히도 한글 캐릭터가 깨지던 현상은 사라졌으나 fancybox를 통해 출력되는 캡션에 적용된 HTML 태그가 화면상에 그대로 노출되는 문제가 있었습니다.
이를 해결하기 위해 사용한 방법은 다음과 같습니다. 1. mh_normalize_special_characters 또는 htmlspecialchars 함수를 아예 사용하지 않는 방법(함수 제거) 2. 알려주신 htmlspecialchars 함수 대신 htmlspecialchars_decode 함수를 사용하는 방법(다른 함수 적용)
1번과 2번의 방법 모두 해결 가능하였으며, 사이트상에는 처음엔 1번의 방법을 적용했다가 다시 2번의 방법을 최종 적용했습니다.
+ htmlspecialchars 함수 사용시 발생되던 문제점 : 아래의 화면과 같이 한글 앞에 HTML 태그가 그대로 노출됨.
+ htmlspecialchars 함수 대신 htmlspecialchars_decode 함수 사용시 출력 결과 : html 태그 정상 작동, 한글 정상 출력
Comments
다음과 같이 처리하면 됩니다.
적용해 보시고, 잘 안되거나, 추가 질문 있으시면 연락주십시오.
-----------------------------------------
/themes/curatescape/custom.php
function mh_item_images 에서
$photoDesc = mh_normalize_special_characters(strip_tags(mh_file_caption($file,false),'<a><strong><em><i><b><span>'));
$photoTitle = mh_normalize_special_characters(metadata($file,array('Dublin Core', 'Title')));
if($photoTitle){
$fancyboxCaption= mh_normalize_special_characters(mh_file_caption($file,true));
위의 부분에서 mh_normalize_special_characters 함수를 사용하지 않고
htmlspecialchars 함수를 사용하시면 됩니다.
$photoDesc = htmlspecialchars(strip_tags(mh_file_caption($file,false),'<a><strong><em><i><b><span>'));
$photoTitle = htmlspecialchars (metadata($file,array('Dublin Core', 'Title')));
if($photoTitle){
$fancyboxCaption= htmlspecialchars (mh_file_caption($file,true));
일단은 해결될 것으로 생각하고 있으나,
실제 결과물이 근본적으로 문제가 해결되었는까지는 직접 확인하셔야 할 것입니다.
위에서 알려주신 방법을 적용해 봤는데 다행히도 한글 캐릭터가 깨지던 현상은 사라졌으나 fancybox를 통해 출력되는 캡션에 적용된 HTML 태그가 화면상에 그대로 노출되는 문제가 있었습니다.
이를 해결하기 위해 사용한 방법은 다음과 같습니다.
1. mh_normalize_special_characters 또는 htmlspecialchars 함수를 아예 사용하지 않는 방법(함수 제거)
2. 알려주신 htmlspecialchars 함수 대신 htmlspecialchars_decode 함수를 사용하는 방법(다른 함수 적용)
1번과 2번의 방법 모두 해결 가능하였으며, 사이트상에는 처음엔 1번의 방법을 적용했다가 다시 2번의 방법을 최종 적용했습니다.
+ htmlspecialchars 함수 사용시 발생되던 문제점 : 아래의 화면과 같이 한글 앞에 HTML 태그가 그대로 노출됨.
+ htmlspecialchars 함수 대신 htmlspecialchars_decode 함수 사용시 출력 결과 : html 태그 정상 작동, 한글 정상 출력
* htmlspecialchars-decode 함수 관련 레퍼런스 링크
http://php.net/manual/en/function.htmlspecialchars-decode.php
위에서 설명한 htmlspecialchars-decode 함수를 적용시킨 php 파일을 첨부합니다.
수정 코드는 1183 라인부터 확인하시면 됩니다.
위에서 설명한 htmlspecialchars-decode 함수를 적용시킨 php 파일을 첨부합니다.
수정 코드는 1183 라인부터 확인하시면 됩니다.
p.s. 첨부파일은 zip 파일인데, php 파일은 업로드가 바로 안되는 관계로 php 파일을 zip으로 압축해서 올렸습니다.
파일을 확인하시려면 zip 파일 압축을 해제한 후 확인하시기 바랍니다.