Я использую библиотеку PHP IMAP imap_search()
для поиска почты в почтовом ящике Gmail через строку темы.
imap_seach($mbox, 'ALL SUBJECT "<search string>"');
Этот поиск прекрасно возвращает буквенно-цифровые строки, но завершается неудачно, если в нем есть специальные символы, такие как слэш, запятая, двоеточие, одинарные кавычки, дефис и многие другие символы, о которых я даже не знаю. Спасение от них не помогает. Замена некоторых из них пробелами помогает иногда, но не во всех случаях.
Существует ли стандартный способ фильтрации строки поиска, чтобы она никогда не выдавала ошибку и возвращала какой-либо результат? Я попытался токенизировать предметное укус и удалить все слова из строки поиска, которые даже один буквенно-цифровой символ. Это в основном работает, но не работает, когда все слова имеют не алфавитно-цифровой символ (что характерно для темы из одного или двух слов).