管道电子邮件-如何发送正文、多部分/alternative/php preg_match_all返回1或空数组

管道电子邮件-如何发送正文、多部分/alternative/php preg_match_all返回1或空数组,php,regex,arrays,pipe,preg-match-all,Php,Regex,Arrays,Pipe,Preg Match All,在搜索答案时,我找到了这个脚本 然而: 它只能以纯文本形式发送收到的电子邮件正文。为了不丢失数据(链接),我需要以收到的格式发送正文 这个脚本是否有一个简单的更改来实现这一点 顺便说一句,以后,我需要在我的服务器上保存链接文件(来自电子邮件),并用我自己的链接替换正文中的链接 谢谢 更新 不知何故,我解决了第一个问题(在我的电子邮件中添加原始边界值),现在,我还有3个问题要做。此代码返回带有print\r($url) 同一代码返回两个输出为空的数组: 1print\r($url,true) 2p

在搜索答案时,我找到了这个脚本

然而:

它只能以纯文本形式发送收到的电子邮件正文。为了不丢失数据(链接),我需要以收到的格式发送正文

这个脚本是否有一个简单的更改来实现这一点

顺便说一句,以后,我需要在我的服务器上保存链接文件(来自电子邮件),并用我自己的链接替换正文中的链接

谢谢

更新

不知何故,我解决了第一个问题(在我的电子邮件中添加原始边界值),现在,我还有3个问题要做。此代码返回带有
print\r($url)

同一代码返回两个输出为空的数组:

1
print\r($url,true)

2
print\r($url[0],true)

像这样:

一,

二,

然而,当我测试代码时,它工作得很好

我如何获得我的价值观?将它们放在一个变量中会很好,比如$url1、$url2


有人能帮忙吗?(非常感谢您的时间和努力!)

我将回答我的问题

好的,我已经解决了这个问题。这里有一些信息,如果有人需要它

Regex有一个额外的
^
。我进一步改进了这样的模式:
“#http://domain.com/([=a-zA-Z\d/-]+)(.|\n |\r)([a-zA-Z\d/-]+)#“
此URL具有
=
,并随此行一起删除:
$var1=preg_replace(“|=(.|\n |\r)#“,”,“,$var”)这不是最好的方法,但它起了作用。我在数组中获得了链接,后来我可以下载带有
file\u get\u contents()
file\u put\u contents()
的文件,使用
str\u replace
更改链接很容易。一切都是用for循环完成的,因为每个电子邮件中的链接数量不一样

祝大家节日快乐

$pattern = '#^http://domain.com/(.*)(\w*)0\b#';
preg_match_all($pattern, $email, $urls);
Array
(
    [0] => Array
        (
        )

    [1] => Array
        (
        )

    [2] => Array
        (
        )

)
Array
(
)