メールヘッダを解析して処理させるプログラムを作成しています。
ヘッダから件名を取得するために以下のコードを記述しました。
$head = 'Return-Path: Delivered-To: hoge@hogehoge.com Received: from docomo.ne.jp (mail102.docomo.ne.jp [203.138.203.2]) by www.hogehoge.com (Postfix) with ESMTP id C73904003B for ; Fri, 25 Mar 2011 16:32:19 +0900 (JST) Date: Fri, 25 Mar 2011 16:32:24 +0900 (JST) From: huga@hogehoge.com To: hoge@hogehoge.com Subject: =?iso-2022-jp?B?GyRCJFskMiRbJDIkVSQsJFUkLBsoQg==?=hogehogehugahuga =?iso-2022-jp?B?GyRCJFskMiRbJDIkVSQsJFUkLBsoQg==?= Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-2022-jp" Content-Transfer-Encoding: 7bit X-Virus-Scanned: clamav-milter 0.96.3 at MCN X-Virus-Status: Clean'
$ptrn = '/Subject:([\s\t]*=\?iso-2022-jp\?[BQ]\?([^\?]+)\?=)+.* Message\-ID/i';
preg_match($ptrn, $head, $regs);
var_dump(regs[0]);
$headに別関数で取得したメールのヘッダ情報、$ptrnに正規表現での一致条件を書き出しました。
PHPの正規表現チェッカーでは正常にマッチしたのですが、preg_matchで動作させるとマッチしてくれません。
何がまずいのでしょうか?
正しくマッチさせる方法をご回答お願いします。
No.1ベストアンサー
- 回答日時:
書いてる通りやったらこうなりました。
Array (
[0] => Subject: =?iso-2022-jp?B?GyRCJFskMiRbJDIkVSQsJFUkLBsoQg==?=hogehogehugahuga =?iso-2022-jp?B?GyRCJFskMiRbJDIkVSQsJFUkLBsoQg==?= Message-ID
[1] => =?iso-2022-jp?B?GyRCJFskMiRbJDIkVSQsJFUkLBsoQg==?=
[2] => GyRCJFskMiRbJDIkVSQsJFUkLBsoQg==
)
$head = 'Return-Path: Delivered-To: hoge@hogehoge.com Received: from docomo.ne.jp (mail102.docomo.ne.jp [203.138.203.2]) by www.hogehoge.com (Postfix) with ESMTP id C73904003B for ; Fri, 25 Mar 2011 16:32:19 +0900 (JST) Date: Fri, 25 Mar 2011 16:32:24 +0900 (JST) From: huga@hogehoge.com To: hoge@hogehoge.com Subject: =?iso-2022-jp?B?GyRCJFskMiRbJDIkVSQsJFUkLBsoQg==?=hogehogehugahuga =?iso-2022-jp?B?GyRCJFskMiRbJDIkVSQsJFUkLBsoQg==?= Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-2022-jp" Content-Transfer-Encoding: 7bit X-Virus-Scanned: clamav-milter 0.96.3 at MCN X-Virus-Status: Clean';
$ptrn = '/Subject:([\s\t]*=\?iso-2022-jp\?[BQ]\?([^\?]+)\?=)+.* Message\-ID/i';
preg_match($ptrn, $head, $regs);
echo "<pre>" . print_r($regs, true);
エラー表示をvar_dump()でしてたせいで改行コードが正しく表示されていなかったのが置き換えられない原因でした。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- PHP phpの imap_search で漢字コード 1 2022/09/06 17:32
- PHP PHPプログラムの間違い 1 2022/10/06 14:33
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- PHP php ログイン 1 2022/11/01 00:24
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- Excel(エクセル) エクセルの関数について 5 2023/01/26 15:26
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正規表現で「0」のみ抽出
-
preg_matchでエラーが出ます。
-
PHPで変数から1行目だけを取得...
-
preg_matchで Warning: Undefin...
-
正規表現でシングルクォーテー...
-
VBAを使ってHTMLソースから特定...
-
、"(ダブルクォーテーション)...
-
preg_replace_callback が渡す...
-
mb_eregのブレースについて(住...
-
住所から特定の文字列、数値を...
-
PHPで<a>タグ内からURLと文字を...
-
正規表現で、半角大文字と半角...
-
phpでメールアドレス入力の入力...
-
VBAのコマンドボタンの文字列の...
-
エスケープ文字の復帰(¥r)と...
-
ソースコードの1行が長いとき...
-
メッセージボックスで1025文字...
-
Excel関数「COUNTIF」で”文字”...
-
文字の入力で横バー上段、中断...
-
半角記号、全角記号を含む正規...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAを使ってHTMLソースから特定...
-
、"(ダブルクォーテーション)...
-
preg_matchでエラーが出ます。
-
PHPで変数から1行目だけを取得...
-
PHPの「ereg」って何の略で...
-
PHPで あるフォルダ内の、特定...
-
PHPの正規表現で住所を分けるに...
-
Excelで数字のみを2倍3倍にする...
-
正規表現で「0」のみ抽出
-
住所から特定の文字列、数値を...
-
PHPで<a>タグ内からURLと文字を...
-
正規表現で特定のHTMLタグのク...
-
正規表現で、半角大文字と半角...
-
正規表現でシングルクォーテー...
-
正規表現パターンの記入方法に...
-
preg_matchでのマッチが正しく...
-
Smartyで部分一致
-
正規表現を使いimgタグ内から幅...
-
電話番号のチェック ハイフン...
-
php 正規表現で(ただし○○は除...
おすすめ情報