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