我制作了一个 php 脚本,它遍历目录中的文件并输出指向它们的链接。文件名是西班牙语,所以有些文件名包含 á、é 等字符。
我的脚本在我的开发机器(windows+apache+php)中运行良好,但是它在我的主机服务器(linux+apache+php)中不起作用,它找不到文件。
一些搜索建议使用 urlencode(),但是当我这样做时,它会在我的开发机器下中断,所以这对我来说是不可接受的,尽管我没有在我的网络服务器中尝试过。
编辑:有关使用 urlencode() 时开发机器上的错误的更多详细信息。
似乎有 2 个错误,一个是文件名包含 á、é 等字符。另一个是文件名包含空格。
带有空格的文件名(即“Calidad Total .doc”)会获得以下链接http://localhost/temarios/docs/Calidad+total+.doc,这给了我一个 404 file not found 错误。将地址栏中的 '+' 替换为 ' 可以正常工作。
带有重音字符的文件名(即 Economía.doc)获取链接http://localhost/temarios/docs/Econom%EDa.doc给我一个 403 Forbidden 错误。将地址栏中的 'í' 替换为 '%ED' 可以正常工作。
我已经在 Firefox 3 和 IE8 windows 7 beta 中进行了测试,并且在两种浏览器中都发生了同样的事情。