"<"/">"をタグではなくHTMLの文字列として表示しようとしています。出力 "<"/">" HTMLの文字
私は、ユーザーのフルネームを含むデータベースや電子メールを持っていると私はそれらの両方を表示したいとき、私はこのような形式があります:
Christian Eric Paran <[email protected]>
をしかし、私はそれだけでこのように表示されます
Christian Eric Paran
これをPHPのHTML形式で表示する方法はありますか?
"<"/">"をタグではなくHTMLの文字列として表示しようとしています。出力 "<"/">" HTMLの文字
私は、ユーザーのフルネームを含むデータベースや電子メールを持っていると私はそれらの両方を表示したいとき、私はこのような形式があります:
Christian Eric Paran <[email protected]>
をしかし、私はそれだけでこのように表示されます
Christian Eric Paran
これをPHPのHTML形式で表示する方法はありますか?
は特別な意味character referencesを使用してHTMLに(<
あなたがテキストノードに心配する必要なものである& &
→&
<
→)との文字を表します。
htmlspecialchars
関数が変換されます。
print htmlspecichars("Christian Eric Paran <[email protected]>");
問題は、タグを区切るためにHTMLで使用されている<
と>
です。したがって、電子メールアドレスはHTMLタグとして解析され、すべてのブラウザではないにしてもほとんど隠されてしまいます。
<
を使用して<
をHTMLに、>
を>
として表示します。
データが動的である場合は、印刷する前に上記のエンコーディングを行うにはhtmlentities
またはhtmlspecialchars
を使用してください。あなたは適切なHTMLエンティティにhtmlspecialcharsを変換する必要が
- あなたがメールアドレスを扱っているので、このような「<
」
としては、あなたがそれだけで隠れていない結果を表示する方法を扱ういくつかの柔軟性が必要になります確信していますタグ
は、私はあなたがメール解析がインストールされていない場合は、この
を使用することができます http://php.net/mailparse_rfc822_parse_addresses$email = mailparse_rfc822_parse_addresses("Christian Eric Paran <[email protected]>") ;
echo $email[0]['display'] ; // Christian Eric Paran
echo $email[0]['address'] ; // [email protected]
をお勧めします
$email = parse_addresses ("Christian Eric Paran <[email protected]>");
echo $email ['display']; // Christian Eric Paran
echo $email ['address']; // [email protected]
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;
}