问题描述
|
我的服务器上有一个要访问的文件。文件名是“ 0”
但是在我的数据库中,它存储为
ken\'s book.doc
(我已经解决了反斜杠问题,但是访问服务器上以前上传的文件仍然有问题。
我使用addslashes添加反斜杠,但它显示为:ken/\'s book.doc
(即正斜杠而不是反斜杠。
我用过:
str_replace(\"\'\",\"\\\'\",$filename);
但它显示为正斜杠。
我怎样才能解决这个问题?
谢谢
编辑
额外信息:我将新值用作链接的一部分。那是:
<a href=\"<?PHP echo str_replace(\"\'\",$filename);?>\">View</a>
解决方法
如果您的文件名在磁盘上包含反斜杠,我将首先解决该问题。您的第二个问题是将文件名存储到数据库中时似乎没有使用ѭ5((为什么文件名最终没有反斜杠)。
addslashes
btw本身不会添加正斜杠。您故事的那部分是不真实的。并再次删除它们,您将不需要古怪的str_replace
通话,而只需stripslashes
。
实际的问题(在您编辑后)原来是html链接。这仅仅是因为浏览器习惯将url中的反斜杠转换为正斜杠。为了防止这种情况,请适用ѭ9
<a href=\"<?=urlencode(stripslashes($filename));?>\">View</a>