2

この両方:

echo 'Tok: '.$tok.' Strpos: '.strpos($tok, "\"").' length: '.strlen($tok).'<br>';

この:

echo 'Tok: '.$tok.' Strpos: '.strpos($tok, '"').' length: '.strlen($tok).'<br>';

次の出力が得られます。

Tok: "fresh Strpos: length: 11

Strpos は二重引用符を完全に見つけることができず、false を返します (strpos() === false で確認しました)。誰かがここで何が起こっているのか教えてもらえますか? strpos が二重引用符を処理できないことを示唆するドキュメントが見つかりません。なぜ見つからないのですか? 私は途方に暮れています。

4

3 に答える 3

10

$tokの二重引用符が実際にはリテラル"であり、HTML エンティティではないことを 1000% 確信していますか? HTMLコードを確認できますか?

于 2010-01-31T18:21:20.473 に答える
3

コマンドラインでphpを使用すると、コードが機能します。

$tok の内容を指定していないことに気付きました。また、ブラウザに出力しているように見えることにも気付きました。html

&quot

実際の引用文字の代わりに使用されていませんか?

于 2010-01-31T18:24:09.607 に答える
1

$tok の最初の要素が二重引用符 (") であるため、 strpos($tok, '"') は === 0 に等しくなります。次に、0 を出力すると、ブール値の FALSE であるため、何も得られません。

この関数は、ブール値の FALSE を返す場合がありますが、0 や "" など、FALSE と評価されるブール値以外の値を返す場合もあります。詳細については、ブール値のセクションを参照してください。=== 演算子を使用して、この関数の戻り値をテストします - http://us3.php.net/strpos

于 2010-01-31T18:25:56.107 に答える