「<"/">」をタグとしてではなく HTML の文字列として表示しようとしています。
ユーザーの氏名と電子メールを含むデータベースがあり、両方を表示したい場合は、次のような形式があります。
Christian Eric Paran <CEPexample@yahoo.com>
しかし、私は次のようにしか表示しません:
Christian Eric Paran
これを PHP から HTML で表示する方法はありますか?
「<"/">」をタグとしてではなく HTML の文字列として表示しようとしています。
ユーザーの氏名と電子メールを含むデータベースがあり、両方を表示したい場合は、次のような形式があります。
Christian Eric Paran <CEPexample@yahoo.com>
しかし、私は次のようにしか表示しません:
Christian Eric Paran
これを PHP から HTML で表示する方法はありますか?
文字参照を使用して、HTMLで特別な意味を持つ文字 ( <
→ <
& &
→&
はテキスト ノードで考慮する必要があるもの) を表します。
関数はあなたのhtmlspecialchars
ために変換します。
print htmlspecichars("Christian Eric Paran <CEPexample@yahoo.com>");
問題は、<
と>
が HTML でタグを区切るために使用されることです。したがって、電子メール アドレスは最終的に HTML タグとして解析され、すべてではないにしてもほとんどのブラウザで隠されます。
HTML で<
を表示するために使用します。<
>
>
データが動的な場合は、htmlentities
またはhtmlspecialchars
を使用して、印刷する前に上記のエンコードを行います。
htmlspecialchars<
を適切な HTML エンティティ (「 」など)に変換する必要があります。
メールアドレスを扱っているので、タグを非表示にするだけでなく、結果を表示する方法を柔軟に扱う必要があると確信しています
http://php.net/mailparse_rfc822_parse_addressesをお勧めし ます
$email = mailparse_rfc822_parse_addresses("Christian Eric Paran <CEPexample@yahoo.com>") ;
echo $email[0]['display'] ; // Christian Eric Paran
echo $email[0]['address'] ; // CEPexample@yahoo.com
メール解析がインストールされていない場合は、これを使用できます
$email = parse_addresses ( "Christian Eric Paran <CEPexample@yahoo.com>" );
echo $email ['display']; // Christian Eric Paran
echo $email ['address']; // CEPexample@yahoo.com
parse_addresses
関数
function parse_addresses($address) {
$info = array ();
preg_match_all ( '/\s*"?([^><,"]+)"?\s*((?:<[^><,]+>)?)\s*/', $address, $matches );
$info ['display'] = $matches [1] [0];
$info ['address'] = str_replace ( array (
"<",
">"
), "", $matches [2] [0] );
return $info;
}