PHPで<
>
の記号をHTMLで印刷しようとすると困っています。PHPで小文字と大文字の記号を印刷する
変数に "<machine>
"という文字列を追加しています。
例:
$output .= " <machine> ";
echo $output;
私はエスケープを使用してみましたが、それは助けにはなりませんでした。何かアドバイス?あなたがHTMLを出力している場合は
PHPで<
>
の記号をHTMLで印刷しようとすると困っています。PHPで小文字と大文字の記号を印刷する
変数に "<machine>
"という文字列を追加しています。
例:
$output .= " <machine> ";
echo $output;
私はエスケープを使用してみましたが、それは助けにはなりませんでした。何かアドバイス?あなたがHTMLを出力している場合は
、あなただけ<
と>
を使用することはできません:あなたは、対応するHTML entities使用する必要があります:あなたはPHPで文字列を持っている場合は<
と>
をし、それらの文字を対応するHTMLエンティティで自動的に置き換えたい場合は、htmlspecialchars()
関数(引用):行う
翻訳がある:
ENT_NOQUOTES
は 設定されていない場合
'&'
は(アンパサンド)'&'
'"'
(二重引用符)となる'"'
なります。"'"
(一重引用符)は、ENT_QUOTES
が の場合にのみ'''
になります。 "=$出力:
'<'
'>'
このようなコードの部分、あなたの場合は'>'
なり(より大きい)となっ
'<'
(未満) "; echo htmlspecialchars($output, ENT_COMPAT, 'UTF-8');
あなたに出力として以下のHTMLコードを取得します:
<machine>
をそして、あなたはより多くの文字をエンコードしたい場合は念のために、あなたはhtmlentities()
機能を見てみる必要があります。
回答した他の人と協力してくれてありがとう。 –
また、 'echo'出力に対してのみ' htmlspecialchars() 'を実行します。それ以前に実行する必要はありません。 –
@Wesley:OPのコードには連結が含まれていたので、元の意図と同じように使用することができます(出力するだけでなく、値を返すこともできます)。しかし、あなたが正しいです、それを一番上のレベルで呼び出す必要があります。 –
あなたのトラブルはなく、むしろ<
と>
はHTMLで使用されているという事実と、PHPではありません。あなたがそれらをブラウザに表示したい場合は、おそらく彼らのエスケープエンティティのバージョンを印刷したい:
<
<
>
あなたはまたにhtmlspecialchars()
機能を使用することができます>
ですそれらを自動的に変換します:
echo htmlspecialchars("<machine>");
例えば<
および>
- htmlentities()
またはhtmlspecialchars()
機能を参照してください。
echo htmlentities($output);
または
echo htmlspecialchars($output);
あなたの文字列を通過すると、エンティティを置き換える手動で気にしたくない場合。
<と>のシンボルはHTMLソースに表示する必要がありますが、「<マシン>」はXMLタグとして解釈されます。 htmlentities()を使用して、Stringのすべての特殊文字をHTMLに相当するものに変換するか、 "& lt; machine & gt;"
ソリューション:
$output .= " <machine> ";
$output = htmlentites($output);
echo $output;
http://php.net/manual/en/function.htmlentities.php - 'エコーにhtmlentities($出力);の' – ajreal
可能重複[どのように表示しますHTMLタグをプレーンテキストとして](http://stackoverflow.com/questions/6817262/how-to-display-html-tags-as-plain-text) –