我正在使用mailgun API和webhooks。有时,message-id将包含<和>但有时候它不会。
在我的控制器中,我正在尝试检查message-id是否包含<和>如果是,则将其删除并将其存储在变量中。
我可能需要使用rtrim
或str_replace
,但我不确定是否有更好的方法来执行此操作?也许正则表达式?
以下是交付活动时一个mailgun返回的示例:
<20180203002650.1.EEE3119CC37C5A82@domain.com>
这是在打开事件时mailgun返回的一个。 (注意它是相同的消息ID,现在它不包含&lt;和&gt;
20180203002650.1.EEE3119CC37C5A82@domain.com
链接: Mailgun API, rtrim, str_replace
答案 0 :(得分:2)
trim function(确切地说,它带有两个参数的重载)可以非常快速地完成工作。在我看来,在这种情况下使用正则表达式是一种矫枉过正的行为。
<?php
$str = '<20180203002650.1.EEE3119CC37C5A82@domain.com>';
$str_trimmed = trim($str, '<>');
echo $str_trimmed; // 20180203002650.1.EEE3119CC37C5A82@domain.com
?>
您可以看到有效的演示here。
答案 1 :(得分:1)
这个功能应该做你需要的。
$str = '<20180203002650.1.EEE3119CC37C5A82@domain.com>';
$cleanString = preg_replace_callback(
'/<|>|and/',
function ($matches) {
return "";
},
$str
);
echo $cleanString;