2

「<"/">」をタグとしてではなく HTML の文字列として表示しようとしています。

ユーザーの氏名と電子メールを含むデータベースがあり、両方を表示したい場合は、次のような形式があります。

Christian Eric Paran <CEPexample@yahoo.com>

しかし、私は次のようにしか表示しません:

Christian Eric Paran

これを PHP から HTML で表示する方法はありますか?

4

4 に答える 4

5

文字参照を使用して、HTMLで特別な意味を持つ文字 ( <&lt;& &&amp;はテキスト ノードで考慮する必要があるもの) を表します。

関数はあなたのhtmlspecialcharsために変換します。

print htmlspecichars("Christian Eric Paran <CEPexample@yahoo.com>");
于 2012-05-08T15:21:15.107 に答える
4

問題は、<>が HTML でタグを区切るために使用されることです。したがって、電子メール アドレスは最終的に HTML タグとして解析され、すべてではないにしてもほとんどのブラウザで隠されます。

HTML で&lt;を表示するために使用します。<&gt;>

データが動的な場合は、htmlentitiesまたはhtmlspecialcharsを使用して、印刷する前に上記のエンコードを行います。

于 2012-05-08T15:21:22.807 に答える
2

htmlspecialchars&lt;を適切な HTML エンティティ (「 」など)に変換する必要があります。

于 2012-05-08T15:21:30.240 に答える
0

メールアドレスを扱っているので、タグを非表示にするだけでなく、結果を表示する方法を柔軟に扱う必要があると確信しています

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;
}
于 2012-05-08T15:31:37.227 に答える