如果它们存在PHP,则从字符串中删除字符

时间:2018-02-03 01:59:01

标签: php

我正在使用mailgun API和webhooks。有时,message-id将包含<和>但有时候它不会。

在我的控制器中,我正在尝试检查message-id是否包含<和>如果是,则将其删除并将其存储在变量中。

我可能需要使用rtrimstr_replace,但我不确定是否有更好的方法来执行此操作?也许正则表达式?

以下是交付活动时一个mailgun返回的示例:

<20180203002650.1.EEE3119CC37C5A82@domain.com>

这是在打开事件时mailgun返回的一个。 (注意它是相同的消息ID,现在它不包含&lt;和&gt;

20180203002650.1.EEE3119CC37C5A82@domain.com

链接: Mailgun APIrtrimstr_replace

2 个答案:

答案 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;