2011-10-27 13 views
0

は私の例のテキスト私がしたいテキストの前後のテキストを削除 - ここではPHP

------=_Part_564200_22135560.1319730112436 
Content-Type: text/plain; charset=utf-8; name=text_0.txt 
Content-Transfer-Encoding: 7bit 
Content-ID: <314> 
Content-Location: text_0.txt 
Content-Disposition: inline 

I hate u 
------=_Part_564200_22135560.1319730112436 
Content-Type: image/gif; name=dottedline350.gif 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment; filename=dottedline350.gif 
Content-ID: <dottedline350.gif> 

である私は、「私はUを憎む」を抽出することができるようにする必要があります。

私は私が

$body_content = garbled crap above; 
$message_short = explode("------=_",$body_content); 
echo $message_short; 

を実行して、メッセージの後、最後の部分を削除するために爆発を使用することができます知っているが、私は最後の部分と一緒に、最初の部分を削除する必要があります。 ---」:「インラインコンテンツ処分」と その後、 FINDの前に何も一緒に削除

ので、上記の関数を爆発することは、私は は今、私は

FIND言う何かを必要と終わりを削除するために必要なものありません--- = _ 'の後に何かと一緒に削除します。 残り= $ message_short

echo $ message_short;

は、私は任意の助けをいただければ幸いU

を憎む

のようになります。

この@Marcus


おかげで私は今持っていると見事に動作するコードです。

$body_content2 = imap_qprint(imap_body($gminbox, $email_number)); 
$body_content2 = strip_tags ($body_content2);  
$tmobile_body = explode("------=_", $body_content2); 
$tmobile_body_short = explode("Content-Disposition: inline", $tmobile_body[1]); 
$tmobile_body_complete1 = trim($tmobile_body_short[1]); 
$tmobile_body_complete2 = explode("T-Mobile", $tmobile_body_complete1); 
$tmobile_body_complete3 = trim($tmobile_body_complete2[1]); 
+0

私はあまりにも嫌いです。しかし、あなたは[正規表現](http://regular-expressions.info)とそれを使用することができます[preg_match'](http://php.net/preg_match)の代わりにfiddly '爆発'。しかし、おそらく完全な塊がありますか?それでは、[PEAR mimeDecode](http://pear.php.net/package/Mail_mimeDecode)で簡単になります。 – mario

+0

あなたはダブル改行でstrstrを試すことができます。 – hafichuk

答えて

0

あなたが爆発し、爆発でそれをしたい場合は、「コンテンツディスポジション:インライン」はここにあなたがすることができる方法は次のとおりです。

$message_short = explode("------=_", $body_content); 
$message_shorter = explode("Content-Disposition: inline", $message_short[1]); 
$content = trim($message_shorter[1]); 
// $content == I hate you 

注これが最後の行はContent-Disposition: inline

であることを要求していること

あなたは正規表現を使用して、それを解決し、区切り文字として二重の改行を使用したい場合は、ここであなたのためのcodesnippetです:

$pattern = '/(?<=------=_Part_564200_22135560.1319730112436)(?:.*?\s\s\s)(.*?)(?=------=_Part_564200_22135560.1319730112436)/is'; 
preg_match_all($pattern, $body_content, $matches); 

echo($matches[1][0]); 

出力:

I hate you 

は、ここでサンプルテキストとcodepadへのリンクです。

+0

マーカスさん、ありがとうございました。 –

+0

ありがとう、使用したコードを表示するために私のメインポストを改訂し、完全に働いた。 –

関連する問題