这是一个字符串:
--0-1946616131-1282798399=:21360 Content-Type: text/plain; charset=us-ascii --------------
------ do not change ---------------------------- Ticket ID : #987336 --------------------
------------------------------------------- Hello, This is my problem try to solve this
thank u --0-1946616131-1282798399=:21360 Content-Type: text/html; charset=us-ascii"
现在我要删除 -
--0-1946616131-1282798399=:21360 Content-Type: text/plain; charset=us-ascii
和
--0-1946616131-1282798399=:21360 Content-Type: text/html; charset=us-ascii
部分。我的意思是清理文本。
我该怎么做?
答案 0 :(得分:0)
你可以做两个正则表达式,或者你可以尝试一些分裂。这是第二种选择:
//the original string
$string = "--0-1946616131-1282798399=:21360 Content-Type: text/plain; charset=us-ascii -------------------- do not change ---------------------------- Ticket ID : #987336 --------------------------------------------------------------- Hello, This is my problem try to solve this thank u --0-1946616131-1282798399=:21360 Content-Type: text/html; charset=us-ascii";
//split the string into lines separated by --0-
$splitstring = explode("--0-",$string);
print "<pre>";
print_r($splitstring);
print "</pre>";
//create an array that will be our final clean strings
$cleanstrings = array();
//go through each of our lines
foreach($splitstring as $line){
//if it has content
if (strlen($line)>0) {
//then split it again to get rid of the junk sections
$splitline = explode("charset=us-ascii",$line);
//if the second part of the string has content
if (strlen($splitline[1])>0) {
//then add it to our list of clean strings
$cleanstrings[] = $splitline[1];
}
}
}
print "<pre>";
print_r($cleanstrings);
print "</pre>";
答案 1 :(得分:0)
使用这个简单的一行代码(其中$text
是输入文本):
$newtext = str_replace('--0-1946616131-1282798399=:21360 Content-Type: text/plain; charset=us-ascii', '', $text);
答案 2 :(得分:0)
答案 3 :(得分:0)
这似乎是MIME multipart message的一部分。如果是这种情况,您要删除的部分是不可预测的。
应在邮件标题中指定不同部分之间的中断,如下所示:
Content-Type: multipart/mixed; boundary="frontier"
boundary="frontier"
意味着消息的每个新部分都将通过以下内容引入:
--frontier
Content-Type: text/plain
由于邮件的发件人可以完全自由地选择他喜欢的任何文本作为边界,因此在不查看邮件标题的情况下它们是不可预测的。除非你有一个特定边界的特定情况,否则几乎不可能在事后可靠地删除边界文本。在解析消息时需要“清理”它。
如果 处理非常有限的,可预测的边界集,则应指定其格式并尝试使用正则表达式删除它们。