0

私はコードを書いていました: <?PHP $where='<something'; echo $where; ?> しかし、文字列 $where を '< something' ("<" の後にスペースを追加) に変更するまで何もエコーしません。なぜですか?

< を何らかのマークアップ言語の先頭にコンパイルする場合があります。


mono - CreateInstance または InvokeMethod で ref を使用する方法は?

Mono で CreateInstance を使用して 'ref' を渡すにはどうすればよいですか?

例:

public MyMethod(ref SomeType data) {...
...
SomeType st = new SomeType();
object handle = Activator.CreateInstance(type, new object[] { st });

これは、私の Windows コンソール アプリケーションでは問題なく動作します。問題は、これを Mono に移植するときに、型「SomeType」を受け入れる「MyMethod」が見つからないという欠落メソッド例外が発生することです。

コンストラクターから「ref」を削除すると、Mono はメソッドを見つけて問題なく実行します。

何か案は?

前もって感謝します。

4

3 に答える 3

1

<なり記号と小なり>記号は、html エンティティまたは html タグを表す予約済みの記号です。それらを表示するには、エンティティ名またはエンティティ番号を使用する必要があります。「未満」の場合は、それぞれ < と < です。

したがって、コードを次のように変更します。

$where='&lt;someting'; echo $where;

またはさらに良い

$where='&lt;someting'; echo htmlentities($where);

@Waleed Kahnによって正しく提案されたとおり。

于 2013-02-16T02:38:34.820 に答える
0

ブラウザで<、HTML タグを導入します。あなたの文字列が$where = "<img"おそらく次のようなものになるでしょう:

画像 http://example.com/

テキストを出力するときはいつでも、 を実行するかhtmlentitieshtmlspecialchars単にstr_replace("<","&lt;",$where);HTML が処理されないようにする必要があります (最後のものは &characters; を許可します)。

于 2013-02-16T02:41:41.627 に答える
0

これは、ブラウザが開き括弧 を<HTML タグとして扱うためです。ブラウザーでページを右クリックし、[ソースの表示] を選択します。

端末がある場合は、次を使用できます。

php -f file.php

これにより、解析せずに生のコンテンツが出力されます。

ブラウザでコードを表示したい場合は、次のようなものを使用して HTML 文字をエンコードする必要がありますhtmlentities()

$where = '<something';
echo htmlentities($where); // &lt;something
于 2013-02-16T02:44:20.750 に答える