【问题标题】:Using variables in imap_search() criteria在 imap_search() 条件中使用变量
【发布时间】:2011-02-23 02:25:11
【问题描述】:

抱歉,我可能在这里遗漏了一些简单的东西,但我觉得我已经尝试了一切。我是 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”条件字符串时。 但是,当我尝试将变量放入 To 条件而不是字符串时,它找不到它——即使我已经验证 $key 等于收件箱中的一个键(我正在回显它)循环以确保)。

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

我试过用花括号把它包起来,摆弄引号,把整个 'To "$key"' 标准放在一个 $string 中,然后像 imap_search($mbox, $string) 那样做,但它没有不工作。

我在这里错过了什么?

【问题讨论】:

    标签: php gmail imap


    【解决方案1】:

    'To "$key"' 更改为"To \"$key\""

    PHP 仅在双引号 "" 中进行变量替换

    单引号因此更快,PHP 不必搜索字符串来查找变量。

    所以你也可以使用像 'To "'.$key.'"' 这样的连接运算符来完成它

    【讨论】:

    • 谢谢!在条件上使用双引号并转义 $key 上的引号是有效的。我知道这很简单
    猜你喜欢
    • 2014-05-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多