1

非常に単純な質問をして申し訳ありませんが、ここに私の問題があります。私は実際に自分のニーズに合わせて PlancakeEmailParser を変更しています。

簡単な正規表現を作成しました:

/([^:]+) (<+.*>)$/

と一致する必要があります:

John DOE <johndoe@fakemail.com>

http://www.gethifi.com/tools/regexでテストしましたが、完全に機能します

しかし、私のコードでは false を返します!

問題のあるコードは次のとおりです。

preg_match('/([^:]+): ?(.*)$/', $line, $matches);
$newHeader = strtolower($matches[1]);

$string = $matches[2];
$reg = "/([^:]+) (<+.*>)$/";

echo 'VALUE: '.$string."\n";
echo 'PREG_MATCH: '.preg_match($reg, $string)."\n\n";

if (preg_match('/([^:]+) (<+.*>)$/', $matches[2])) {
    echo('match'."\n\n\n\n");
} else {
    $value = $matches[2];
}

エコー フィードバックは次のとおりです。

VALUE: John DOE <johndoe@fakemail.com>
PREG_MATCH: 0

あなたの誰かが問題が何であるかを理解していますか?

どうもありがとうございました !

編集

問題は、すべてのコンテンツで htmlentities を作成したため、 <> が変換されたことです。

解決策は、これから正規表現を書き直すことです:

/([^:]+) (<+.*>)$/

これに

/([^:]+) (&lt;+.*&gt;)$/

助けてくれてありがとう、ピーター・アルフビン:)

いつか誰かの役に立つかもしれない

4

1 に答える 1