3
나는 이것을 너무 많이 검색했으며 몇 가지 결과를 발견했지만 그 중 일부는 작동하지 않았습니다. MySQL 쿼리를 사용하여 내 게시물 테이블에서 제목 및 콘텐츠를 검색하고 있습니다. 내 문제는 HTML 태그가 포함 된 TinyMCE를 사용하여 데이터가 저장된다는 것입니다. HTML 태그를 무시하도록 내 검색어가 관련없는 결과를 반환하지 않도록하고 싶습니다.
내 쿼리 : 당신은 여전히 MySQL의에서이 작업을 수행하려면이
MySQL을 검색하는 동안 저장된 데이터에서 HTML 태그를 무시하십시오.
SELECT posts.id, posts.title, posts.date, posts.tags, posts.image, users.name, users.screen_name, users.id as user_id,
IF(
posts.title LIKE '$searchTerm%', 20,
IF(posts.title LIKE '%$searchTerm%', 10, 0)
)
+ IF(posts.post LIKE '%$searchTerm%', 5, 0)
AS weight
FROM posts
LEFT JOIN users ON posts.user_id=users.id
WHERE (
posts.title LIKE '%$searchTerm%'
OR posts.post LIKE '%$searchTerm%'
)
ORDER BY weight DESC
LIMIT 100
"HTML 태그 무시"를 정의하십시오. 당신이 무시하려고하는 것에 대한 예를 들려 줄 수 있습니까? 고의적으로 링크를 검색하면 어떻게됩니까? HTML 컨텐트를 반향하는 것만으로도 사이트의 보안 문제가 될 수 있습니다 ... –
HTML이 TinyMCE 텍스트 편집기에서 출력됩니다. 텍스트 만 검색하고 싶습니다. 예를 들어, TinyMCE는 "TEST TEXT"를 "
TEST TEXT
"으로 출력합니다. 그 순간에 "p"를 검색하면이 결과가 반환되어 MySQL에 저장된 HTML 태그를 무시하도록 검색 쿼리를 수행하므로 "p"를 검색하면 아무것도 반환하지 않지만 "TEST"를 검색하면 이 결과를 –으로 반환하면 XML/HTML 파서의 일종을 연결해야하므로 태그를 제거 할 수 있습니다. 정규 표현식은 파싱에 적합하지 않으며'LIKE '에 의해 제공되는 기본 능력은 더욱 악화됩니다. 대부분의 RDBMS에는 이것에 대한 라이브러리/애드온이 있습니다. 아마도 MySQL도 마찬가지입니다. –