Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как использовать переменную в критерии Imap_search?

Иван Петров Ученик (1), на голосовании 1 год назад
Использую критерий SINCE "date" - сообщения с Date: после "date"
Выглядит так: imap_search($imap, 'SINCE "20 March 2023"');
Так вот как переменную с датой передавать вместо строки "20 March 2023"?

Пытался строку SINCE "20 March 2023" поместить в переменную (вместе с кавычками) и использовать imap_search($imap, $day); но случается ошибка (которой не возникает при imap_search($imap, 'SINCE "20 March 2023"');)

Пробовал в $day поменять и SINCE "20 March 2023" и 'SINCE "20 March 2023"'
Голосование за лучший ответ
AdubitS Мастер (1809) 1 год назад
Вы можете использовать переменную в критерии IMAP SEARCH, сформировав строку запроса с помощью конкатенации строк (оператор .), например:

$date = "20 March 2023";
$search_criteria = 'SINCE "' . $date . '"';
$results = imap_search($imap, $search_criteria);

Здесь переменная $date содержит значение даты, а затем строка $search_criteria формируется путем конкатенации строк "SINCE " и значения переменной $date, заключенных в кавычки. Далее вы можете использовать эту переменную в качестве аргумента для imap_search().

Обратите внимание, что при конкатенации строк используется оператор точки ., а не запятая. Также не забудьте заключить дату в кавычки внутри запроса IMAP SEARCH.
Иван ПетровУченик (101) 1 год назад
Я примерно так и делал, только кавычки экранировал. Проверял с помощью echo и при выводе подставляемой в качестве критерия переменной, отображалась та самая строка 'SINCE "20 March 2023"'. Вот только попытка использовать конструкцию вида imap_search($imap, $search_criteria); не приводила к положительному результату. Так же пробовал без маленьких кавычек чтобы в переменной содержалось SINCE "20 March 2023"
Иван ПетровУченик (1) 1 год назад
Ваш вариант без экранирования кавычек сработал. При том что выводил содержимое переменной для проверки и выводилось то же самое.
Похожие вопросы