Поиск IMAP по теме завершается неудачно по знакам препинания в Gmail - PullRequest
6 голосов
/ 29 сентября 2010

Я использую библиотеку PHP IMAP imap_search() для поиска почты в почтовом ящике Gmail через строку темы.

imap_seach($mbox, 'ALL SUBJECT "<search string>"');

Этот поиск прекрасно возвращает буквенно-цифровые строки, но завершается неудачно, если в нем есть специальные символы, такие как слэш, запятая, двоеточие, одинарные кавычки, дефис и многие другие символы, о которых я даже не знаю. Спасение от них не помогает. Замена некоторых из них пробелами помогает иногда, но не во всех случаях.

Существует ли стандартный способ фильтрации строки поиска, чтобы она никогда не выдавала ошибку и возвращала какой-либо результат? Я попытался токенизировать предметное укус и удалить все слова из строки поиска, которые даже один буквенно-цифровой символ. Это в основном работает, но не работает, когда все слова имеют не алфавитно-цифровой символ (что характерно для темы из одного или двух слов).

1 Ответ

1 голос
/ 25 марта 2012

Я предполагаю, что поиск в GMail основан на идее, что в качестве строк поиска могут использоваться только целые буквенно-цифровые слова.

Поэтому вам придется удалить все не буквенно-цифровые символы из строки поиска, иэто будет работать ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...