Php 如何剥离关键短语和结束标记之间的所有内容?
我试图剥离关键短语和结束标记之间的所有内容,但由于某种原因,它不起作用。我总是得到空白数据。我试过很多不同的方法,但都不走运 基本上,我有一个脚本,可以连接到IMAP并将电子邮件作为服务票证存储到MySQL中。它工作得很好,但我正在尝试剥离除用户回复之外的所有内容,因为当前如果用户回复电子邮件,它会将整个电子邮件重新插入MySQL。我在所有发送的电子邮件的顶部添加了一个关键短语Php 如何剥离关键短语和结束标记之间的所有内容?,php,regex,Php,Regex,我试图剥离关键短语和结束标记之间的所有内容,但由于某种原因,它不起作用。我总是得到空白数据。我试过很多不同的方法,但都不走运 基本上,我有一个脚本,可以连接到IMAP并将电子邮件作为服务票证存储到MySQL中。它工作得很好,但我正在尝试剥离除用户回复之外的所有内容,因为当前如果用户回复电子邮件,它会将整个电子邮件重新插入MySQL。我在所有发送的电子邮件的顶部添加了一个关键短语 结构如下: --Reply below this line to respond-- --------------
--Reply below this line to respond--
------------------------------------------------------------------------------------
Email body message...
New Message reply......
--Reply below this line to respond--
old message body.
$message = strip_tags($message, "<br><div><p><u><hr></section>");
$message=preg_replace("</p>", "br /", $message);
$message=preg_replace('#--REPLY above this line to respond--(.*?)</section>)#s', ' ', $message);
$message=clean("<br/><hr><u>Received On $rep_date / $from_email</u><br><br/>$message");
$message=strip_标签($message,
);
$message=preg_replace(“”、“br/”、$message);
$message=preg#u replace('#--在此行上方回复--(.*)#s','$message);
$message=clean(“
在$rep_date/$from_email
$message收到”);
它插入接收日期和发件人,但$message
为空
如果我删除$message=preg_replace('#--REPLY
在这一行上方,以respond--(.*))#s','','$message)代码>它插入整个电子邮件
关于我做错了什么有什么建议吗?不需要正则表达式。在这个场景中应该可以找到工作
// After cleaning the message...
$message_parts = explode("--Reply below this line to respond--", $message, 2);
$message = $message_parts[0];
如果您确实觉得需要使用正则表达式,可以使用而不是explode。如果需要区分大小写或其他类似细节,使用正则表达式可能会更有帮助
编辑:哈哈!您搜索“回复在此行上方”,但消息包含“回复在此行下方”。
如果搜索错误的字符串,则永远不会匹配它
下面是一个固定版本的示例:Hmm我们可以使用关键字和substr函数来提取所需的信息:
$message = substr($message, strpos($message,'New Message'), strpos($message,'--Reply') );
/--(.*)/s
这就是你要问的吗?$message=preg\u replace(“”,“br/”,$message)
在我脑海中敲响了警钟。当然,它是有效的,但我严重怀疑您能否告诉我为什么需要使用br/
而不是
。您能否给出一个真实的示例以及您实际想要删除的内容?你的问题让人困惑,我知道这有点让人困惑。我会马上更新我的问题。非常感谢。@NiettheDarkAbsol我正在使用br,因为出于某种原因,在使用outlook回复时,它将
替换为
我尝试了您的建议,但它仍然不断插入空白:(还有其他建议吗?呜呜,对不起,我在上面和下面犯了错误..应该在上面。我正在查看您的演示,非常感谢。如果我让它在我这边工作,我会告诉您的。