2012-02-11 72 views
3

我有一些文字像$text="--e89a8f234aade3345704b8477b83 Content-Type: text/plain; charset=ISO-8859-1 this is a text. this is a text. --e89a8f234aade3345704b8477b83 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable this is a text.";PHP刪除內容類型FRM文本

我想要的輸出$output="this is a text. this is a text.";

一個更如: - $text="--14dae9340ba954ae0704b84acde9 Content-Type: text/plain; charset=ISO-8859-1 First Name: aaa Last Name: aaa --14dae9340ba954ae0704b84acde9 Content-Type: text/html; charset=ISO-8859-1 First Name: James Last Name: Cummings --14dae9340b";

輸出應該$output="First Name: aaa Last Name: aaa";

我沒有得到如何做到這一點。

+0

這是多部分郵件正文的一部分,對吧? – Gumbo 2012-02-11 09:03:46

+0

在這種情況下,你應該正確地解析它給出的答案不。 – Gumbo 2012-02-11 11:25:54

回答

3

如果你相信,字符集是ISO-8859-1和字符串不包含 - :

$a=explode("charset=ISO-8859-1",$text); 
$b=explode("--",$a[1]); 
$output=$b[0]; 

如果你還是不確定的字符集,而不是 - :

$aa=substr($text,0,30); 
$a=explode("charset=ISO-8859-1",$text); 
$b=explode($aa,$a[1]); 
$output=$b[0]; 

如果你甚至不知道有關的字符集:

$aa=substr($text,0,30); 
$a=explode("charset=",$text); 
$a2=explode(" ",$a[1]); 
$b=explode($aa,$a2[1]); 
$output=$b[0]; 
1

在字符串中使用的preg_match,像

<?php 
$text="--14dae9340ba954ae0704b84acde9 Content-Type: text/plain; charset=ISO-8859-1 First  Name: aaa Last\ 
Name: aaa --14dae9340ba954ae0704b84acde9 Content-Type: text/html; charset=ISO-8859-1 First Name: James\ 
Last Name: Cummings --14dae9340b"; 

$cnt = preg_match_all('/ISO-8859-1 (.+?) --/',$text,$array); 
$array[1][0], "<br />",$array[1][1]; 

?>

第二個元素是$陣列(位置1)包含在組中的圖案匹配的$文本的所有子串。