0

有人能告诉我为什么这两个标签做不同的事情吗?(上传到服务器时第一个字符串不起作用,第二个很好)

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

我运行转换为十六进制值,似乎第一个字符串中至少还有一个字符:

3c6120687265663d223f687474703a2f2f7777772e6578616d706c652e636f6d223e613c2f613e0d0a
3c6120687265663d22  687474703a2f2f7777772e6578616d706c652e636f6d223e613c2f613e

第二个字符串是手写的,第一个是由 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

文件中有一个BOMEF BB BF:.

正确的解决方案是修复将数据放入文件的算法(不放入 BOM),或者如果文件是静态的 - 只需使用任何足够高级的文本编辑器(如 Notepad++ 左右)将其删除一次,但作为快速和肮脏的解决方案,您可以在运行时将其删除:

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