Использование переменных в критериях imap_search () - PullRequest
1 голос
/ 23 февраля 2011

Извините, я, наверное, упускаю что-то простое здесь, но я чувствую, что перепробовал все. Я новичок в PHP, так что, вероятно, это объясняет.

Хорошо, я отправляю электронные письма в почтовый ящик с ключом, добавленным в почтовый ящик. Например:

jerry+examplekey@gmail.com

Я пытаюсь создать цикл, который делает что-то для всех писем с этим ключом.

Когда я делаю

foreach ($valid_keys as $key){ // granted this loop does nothing for now
if ($emails = imap_search($mbox, 'To "examplekey"')){echo "Found emails.";};
}

Работает абсолютно нормально. То есть, когда я указываю строку критерия «Кому» вручную. Но когда я пытаюсь вставить переменную в критерии To вместо строки, она не находит ее - даже когда я проверил, что $ key равен ключу, который находится во входящей почте (я повторял это в петля, чтобы убедиться).

foreach ($valid_keys as $key){
if ($emails = imap_search($mbox, 'To "$key"')){echo "found one";}; // this doesn't work
}

Я попытался обернуть его в фигурные скобки, поиграться с кавычками, поместить весь критерий «$ key» в строку $, а затем сделать это как imap_search ($ mbox, $ string), и это не так ». т работа.

Что мне здесь не хватает?

1 Ответ

2 голосов
/ 23 февраля 2011

Изменить 'To "$key"' на "To \"$key\""

PHP выполняет подстановку переменных только в двойных кавычках ""

Одиночные кавычки быстрее из-за этого, PHP не должен искать через строку, чтобы найти переменные.

Таким образом, вы также можете сделать это, используя оператор конкатенации, как этот 'To "'.$key.'"'

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