2011-11-21 12 views
5

私は、次の例のように私のコード内の文字列を持ってすることはできません。文字。すべてのことの取得echo'edは次のとおりです。PHPの文字列は< and >文字

何とか何とか

だから、基本的に私は、私は彼らがPHPで動作しますが、正確にどのようにわからないイムことを得るためにこれらの文字をエスケープする必要があります推測しています。 、だから私はいつでも画面上<と>の文字を表示する必要はありません

<include="filename.html"> 

を:私が使用してHTMLでのように、ファイルをファイルを含めることができ、テンプレートシステムのためにこれを使用しています私はちょうどファイルを読んで、これらのタグのインスタンスを見つけ、いくつかの魔法をする必要があります。私はその部分のすべてが働いているが、それは正常に動作しないように見える演算子以上/以下を含む任意の文字列です。

アイデア?

+0

ページのソースを表示しているのですか、ブラウザが表示している視覚的な結果が表示されていますか? –

+0

< and >は画面に表示する必要はありません。単純に文字列変数に格納されています。 – Amo

+0

[PHPで小文字と大文字の記号を印刷する]の複製が可能です(http://stackoverflow.com/questions/6916023/printless-than-and-greater-than-symbols-in-php) – mario

答えて

3

HTMLにならないようにするには、HTML文字を使用する必要があります。

ので:PHPで

echo htmlspecialchars("<hello>"); 
+4

あなたが参照したPHPドキュメントから:*データベースクエリなどで引用する必要のある文字の前にバックスラッシュを含む文字列を返します。*これと何が関係していますか質問? –

+0

おっと! @Davidは正しく – tekknolagi

+0

この関数は効果がありません '<'大括弧。これは 'と'の文字列の中でエスケープするためのものです –

1

あなたが<括弧をエスケープするhtmlspecialchars機能を使用することができます。..

8

あなたはHTMLマークアップを生成することができますので、あなたが持っていますHTML要素文字(< &>)を区別する方法を見つけることができます。 HTMLには、HTML entitiesと呼ばれる特別な文字列が存在します。それらはアンパサンドで記述されています。いくつかの種類の省略形とセミコロンで終わります。ここで

は、いくつかの例は以下のとおりです。

&gt;  : > (greater-than) 
&lt;  : < (less-than) 
&amp; : & (ampersand) 
&raquo; : » (right angle quote marks) 
&eacute; : é (e acute) 

ほとんどすべての文字は、そのような事業体で表現することができますが、それはすぐに退屈を取得します。 <と>のものと、URLの場合は&を覚えておく必要があります。

小数点以下を示すことを目的とした場合は、このようにコードを書き直す必要があります。

<?php 
$find = '&lt;tag'; 
$string = 'blah blah &lt;tag=something&gt;'; 
?> 

他の回答で述べたように、あなたは変数に文字を変換する機能htmlspecialchars()を使用することができます(例えば、ユーザー入力から)。

<?php echo htmlspecialchars($string); ?> 

は、Webブラウザで表示するためblah blah <tag=something>表示されます。そうでなければ、たとえばコマンドラインでPHPを使用していたなら、この関数を使う必要はありません。

関連する問題