0

Topsy를 사용하고 있습니다. mebsite의 최상위 기사 제목을 돌려 주며, 거기에 링크가있는 게시물 제목이 포함 된 RSS 파일 하나를 반환합니다. 지금은 이런 식으로 다음과 같은 기능을 사용 후 이름을 복용하고 MySQL 데이터베이스에서 검색하는 것을 시도하고 게시물 제목을 사용하고 경우 :wordpress에서 특별한 charecters를 제거하는 방법?

get_post_by_title($postTitle,'post'); 

그러나 문제가 곤두 수익을 내게 제목을 게시뿐만 아니라 RSS에 일부 특수 문자를 추가 " '"와 같은 파일은이 charecters와 "'"바꿉니다.이 때문에 get_post_by_title() 함수는 제목 이름으로 게시물을 반환하지 않습니다.

편집 : 그것은 하나 개의 게시물 제목과 같이 저를 반환

iPad Applications In Bloom’s Taxonomy NEXT 

여기에 작은 따옴표는 특별한 charecter입니다.

도와주세요. 감사합니다

+0

반환하는 제목의 예를 들려 주시겠습니까? –

+0

제목에 따옴표가있을 때 정확히 작동하지 않는 것은 무엇입니까? 이것은 출력이 제대로 이스케이프 처리 될 때 처음부터 해결할 필요가없는 문제처럼 들린다. –

+0

@ 모든 수정 된 질문 –

답변

0

먼저의가 오해를 정리하자 : 당신의 예에서 그 문자는 "특별한"문자가 아닙니다. 그것은 유니 코드 코드 포인트 U + 2019, "오른쪽 단일 인용 부호." HTML 엔터티 참조는 ’입니다. 그것은 평범한 캐릭터입니다. ASCII에서 표현이없는 일반적인 캐릭터 일뿐입니다. 특정 질문에 대한 답변을 얻으려면 먼저 Joel Spolsky's article "The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)"을 읽으라고 말하면됩니다. 주석이 말하는 것일 뿐이며 유니 코드에 대한 지식을 조금이라도 흡수하지 않으면 다음과 같은 문제가 계속 발생합니다. . 너무 많이 두려워하지 마십시오. 텍스트를 다루는 법을 배울 때까지 모두가 이와 같은 문제에 부딪칩니다. 유니 코드는 텍스트가 어떻게 작동하는지에 대한 무의식적 인 가정을 드러내 기 쉽기 때문에 "어렵습니다". †

자, 질문에.

내가 옳은 것을 읽는다면 get_post_by_title()으로 검색 할 때 표시되지 않는 ’과 같은 제목에 ASCII가 아닌 문자가 포함 된 게시물이있는 것입니다. 솔루션에는 두 가지 경로가 있습니다. 검색하기 쉬운 형식으로 제목을 저장하거나 비 ASCII 문자를 찾을 수있는 검색 방법을 사용하십시오.

제목을 다르게 저장하려면 PHP의 built-in htmlentities() 함수를 사용하거나 Wordpress DB에 저장해야합니다. HTML 엔터티가없는 문자를 '\xNN' 형식으로 변환하고 DB의 데이터 정렬/문자 집합이 UTF-8 또는 다른 유니 코드 인식 인코딩으로 설정되어 있는지 확인하십시오. 이것은 결코 사소한 노력이 아닐 수 없습니다. ‡

다른 검색 방법을 사용하는 경우 DB를 수정하거나 WordPress 내부를 파고 들지 않아도되지만 검색 문자열에주의를 기울여야합니다. 필요한 경우 문자를 '\xNN' 문자로 표시하거나 검색시주의 깊게 와일드 카드를 사용하여 검색중인 문자를 사용해야합니다.

어느 쪽이든, 행운을 비네. 더 많은 코드가 표시되면 더 구체적인 조언을 제공 할 수도 있습니다.



† : 당신이 PHP보다 더 나은 언어와 MySQL보다 더 나은 데이터베이스를 사용하는 경우 그건 그렇고, 유니 코드에 관해서 당신의 인생이 훨씬, 훨씬 더 쉽게 얻을 것이다. WordPress는 PHP와 MySQL에 불가분의 관계입니다 : PHP & MySQL은 유쾌하고, 끔찍하며, 유쾌하게도 유니 코드 문제를 올바르게 처리합니다. 프로그래머로서의 당신의 삶은 PHP &을 훔쳐 내면 더 좋아질 것입니다.

‡ : 심각하게는 PHP is atrociously bad at thisMySQL is in a shoelaces-tied-together state of fumbling입니다. 그들을 피하십시오. WP-config.php를 행

0

제거

// ('DB_CHARSET', 'UTF8')를 정의한다;

// define ('DB_COLLATE', 'utf8_unicode_ci');

관련 문제