2011-08-02 10 views
13

PHPで<>の記号をHTMLで印刷しようとすると困っています。PHPで小文字と大文字の記号を印刷する

変数に "<machine>"という文字列を追加しています。

例:

$output .= " <machine> "; 
echo $output; 

私はエスケープを使用してみましたが、それは助けにはなりませんでした。何かアドバイス?あなたがHTMLを出力している場合は

+0

http://php.net/manual/en/function.htmlentities.php - 'エコーにhtmlentities($出力);の' – ajreal

+0

可能重複[どのように表示しますHTMLタグをプレーンテキストとして](http://stackoverflow.com/questions/6817262/how-to-display-html-tags-as-plain-text) –

答えて

5

、あなただけ<>を使用することはできません:あなたは、対応するHTML entities使用する必要があります:あなたはPHPで文字列を持っている場合は&lt;&gt;


をし、それらの文字を対応するHTMLエンティティで自動的に置き換えたい場合は、htmlspecialchars()関数(引用):行う

翻訳がある:ENT_NOQUOTESは 設定されていない場合

  • '&'は(アンパサンド)'&amp;'
  • '"'(二重引用符)となる'&quot;'なります。
  • "'"(一重引用符)は、ENT_QUOTESが の場合にのみ'&#039;'になります。 "=

    $出力:'&lt;'

  • '>'このようなコードの部分、あなたの場合は'&gt;'


なり(より大きい)となっ

  • '<'(未満) ";

    echo htmlspecialchars($output, ENT_COMPAT, 'UTF-8'); 
    

    あなたに出力として以下のHTMLコードを取得します:

    &lt;machine&gt; 
    


    をそして、あなたはより多くの文字をエンコードしたい場合は念のために、あなたはhtmlentities()機能を見てみる必要があります。

  • 19

    &gt; = >
    &lt; = <

    それとも、htmlspecialcharsを使用することができます。

    $output .= htmlspecialchars(" <machine> "); 
    
    +0

    回答した他の人と協力してくれてありがとう。 –

    +0

    また、 'echo'出力に対してのみ' htmlspecialchars() 'を実行します。それ以前に実行する必要はありません。 –

    +0

    @Wesley:OPのコードには連結が含まれていたので、元の意図と同じように使用することができます(出力するだけでなく、値を返すこともできます)。しかし、あなたが正しいです、それを一番上のレベルで呼び出す必要があります。 –

    2

    あなたのトラブルはなく、むしろ<>はHTMLで使用されているという事実と、PHPではありません。あなたがそれらをブラウザに表示したい場合は、おそらく彼らのエスケープエンティティのバージョンを印刷したい:

    • <&lt;
    • >あなたはまたにhtmlspecialchars()機能を使用することができます&gt;

    ですそれらを自動的に変換します:

    echo htmlspecialchars("<machine>"); 
    
    1

    例えば&lt;および&gt; - htmlentities()またはhtmlspecialchars()機能を参照してください。

    1
    echo htmlentities($output); 
    

    または

    echo htmlspecialchars($output); 
    

    あなたの文字列を通過すると、エンティティを置き換える手動で気にしたくない場合。

    -1

    <と>のシンボルはHTMLソースに表示する必要がありますが、「<マシン>」はXMLタグとして解釈されます。 htmlentities()を使用して、Stringのすべての特殊文字をHTMLに相当するものに変換するか、 "& lt; machine & gt;"

    ソリューション:

    $output .= " <machine> "; 
    $output = htmlentites($output); 
    echo $output; 
    
    関連する問題