Как удалить нечитаемые символы в контексте, используя PHP?

Привет, я передаю контекст в zend_lucene_search, и он может искать слово вплоть до специальных символов, и после этого он не доступен для поиска.

например:

    very well to the other job boards � one of the main things that has impressed is the variety of the applications, especially with regards to the background of the candidates" manoj � Head 

если я ищу "доски", я могу получить их, но если я ищу одну или любую строку после нечитаемых символов, я не могу найти ее.

Как удалить их, и я хочу получить простой текст.

Я получил такие символы при преобразовании файлов.docx / pdf в текст.

ИЛИ ЖЕ

дайте мне знать, как передать только текст в zend_search_lucene..

Пожалуйста помоги.

2 ответа

Решение

Вы можете использовать следующие preg_replace вызов функции для удаления всех не-ASCII (так называемых специальных) символов из вашей строки:

$replaced = preg_replace('/[^\x00-\x7F]+/', '', $str);
// produces this converted text:
//    "very well to the other job boards  one of the main things that has impressed
// is the variety of the applications, especially with regards to the background of the
// candidates" manoj  Head"

Вам может потребоваться преобразовать набор символов обрабатываемой строки в соответствие с набором символов текущего HTML-документа.

Например, если ваш HTML-документ использует UTF-8, вы можете запустить вашу строку через utf8_encode(). В противном случае, если вы не уверены, какой набор символов использовать, попробуйте использовать mb_convert_encoding() и поиграть с некоторыми из наиболее распространенных кодировок.

Другие вопросы по тегам