0

これらの 2 つのタグが異なることを行っている理由を誰か教えてもらえますか? (最初の文字列はサーバーにアップロードするときに機能しません。2 番目の文字列は問題ありません)

<a href="http://www.example.com">a</a>
<a href="http://www.example.com">a</a>

HEX値への変換を実行しましたが、最初の文字列に少なくとも1文字以上あるようです:

3c6120687265663d223f687474703a2f2f7777772e6578616d706c652e636f6d223e613c2f613e0d0a
3c6120687265663d22  687474703a2f2f7777772e6578616d706c652e636f6d223e613c2f613e

2 番目の文字列は手書きで、最初は PHP 関数によって生成されます。

<?php
$handle = @fopen("./data/test.txt", "r");
$homepage = trim(fgets($handle, 4096));
?>

<a href="<?php echo $homepage;?>">a</a>

test.txt には、次のものがあります。

http://www.example.com

最初の行、次に数行のテキスト。

また、見えない文字のコードは 3f のクエスチョン マークのようですが、見えるはずですよね?

4

1 に答える 1

3

ファイルにBOMがあります: EF BB BF

正しい解決策は、データをファイルに配置するアルゴリズムを修正する( BOM を配置しない) か、ファイルが静的な場合は、十分に高度なテキスト エディター (Notepad++ など) を使用して一度削除するだけですが、簡単に実行時に削除するだけの汚いソリューション:

if (substr($homepage, 0, 3) == pack('CCC', 0xef, 0xbb, 0xbf)) {
    $homepage = substr($homepage, 3);
}
于 2013-03-10T22:40:24.280 に答える