2012-04-26 11 views
0

私は到着した電子メールを取得して解析して表示するこのパイピングPHPスクリプトをやっています。私はこのチュートリアルを使用しました:http://www.damnsemicolon.com/php/parse-emails-in-php-with-email-piping-part-1(以下のもの)、私は私のサーバーに送信した標準の電子メールで試してみましたが、うまくいきましたが、別のものを試しました。私はprint_r($デコード済み)を使用しました。電子メールのさまざまな部分をすべて表示し、完全に構文解析された電子メールを受け取る代わりに、電子メールのすべての内容が$ decode [0] ['body]に送られます。なぜこうなった? (私はチュートリアルと同じですのでコードを投稿しません)PHPスクリプトのパイピングの電子メールの解析

print_r($decode)= Array (
    [0] => Array ( 
     [Headers] => Array () 
     [Parts] => Array () 
     [Position] => 0 
     [Body] => From [email protected] Thu Apr 26 12:33:44 2012 Received: from [192.168.1.92] by ubuntuserver.lan with esmtp (Exim 4.76) (envelope-from) id 1SNMxE-0000VB-TR for [email protected]; Thu, 26 Apr 2012 12:33:44 +0100 Message-ID: <[email protected]> Date: Thu, 26 Apr 2012 12:33:45 +0100 From: =?ISO-8859-1?Q?=22Jo=E3o_Ferreira_=28m=E1quina_virtual=29=22?= User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20120327 Thunderbird/11.0.1 MIME-Version: 1.0 To: [email protected] Subject: Sample Email Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit It's the same? 
     [BodyPart] => 1 
     [BodyLength] => 744 
    ) 
) 

ありがとうございました。

+0

デコードライブラリに問題がある可能性があります。 'From'行の前に先行するUTF-8 BOMがあることに注目してください。それはそれをねじ込んでいるかもしれません。 – mario

答えて

0

Marioが言っているように、問題はUTF 8-BOMにありました。

<?php 
// substitua pelo caminho para o arquivo que deseja limpar 
$file = "C:/wamp/www/wordpress/wp-content/themes/basic-gray/lib/langs.php"; 
print removeUTF8BOM($file) ? 'BOM removido!' : 'Não havia BOM a ser removido...'; 

function removeUTF8BOM($fil) { 
$newcontent = ''; 
$first = false; 
$fh = fopen($fil, 'r'); 
    while($part = fread($fh, 1024)) { 
    if(!$first) { 
     if(preg_match('/^\xEF\xBB\xBF/', $part)) { 
     $newcontent = preg_replace('/^\xEF\xBB\xBF/', "", $part); 
     } else { 
     fclose($fh); 
     return false; 
     } 
    $first = true; 
    } else $newcontent .= $part; 
    } 
fclose($fh); 
$fh = fopen($fil, 'w'); 
fwrite($fh, $newcontent); 
fclose($fh); 
return true; 
} 
?> 

(http://www.caugb.com.br/2009/07/remover-o-bom-de-arquivos-em-:誰もがこの問題を持っている場合、私はあなたがこのコードを使用することをお勧めutf-8 /)

関連する問題