我还有一个问题:读取的文件只能通过PHP
当我写localhost/folder/file.txt
到浏览器中,它会打开并显示file.txt的内容。
但是我想让这个文件只能被PHP读取,而不能被浏览器读取。我试了一下chmod
,但它不起作用。有可能这样做吗?
谢谢
我还有一个问题:读取的文件只能通过PHP
当我写localhost/folder/file.txt
到浏览器中,它会打开并显示file.txt的内容。
但是我想让这个文件只能被PHP读取,而不能被浏览器读取。我试了一下chmod
,但它不起作用。有可能这样做吗?
谢谢
你可以拒绝访问.txt
扩展。
.htaccess
# prevent viewing of a specific file
<Files file.txt>
order allow,deny
deny from all
</Files>
# multiple file types
<FilesMatch ".(htaccess|htpasswd|ini|phps|fla|psd|log|sh|txt)$">
Order Allow,Deny
Deny from all
</FilesMatch>
把它放在web根目录之外还是比较稳固的, - 服务器配置中的'AllowOverride'可能会改变并渲染这个模拟 – 2013-02-11 10:51:24
这不是真的,有些提供程序不允许你访问... – 2013-02-11 10:52:13
我在说' AllowOverride'在中央服务器配置中发生变化,这会使文件不受保护。这不应该发生,但它可以。 (不是我downvote虽然,有时这是唯一的方法) – 2013-02-11 10:54:35
你可以把文本文件放到一个mySQL数据库中作为BLOB或TEXT。所以不可能通过浏览器阅读,只能通过查询(通过php)。
这是一个非常原始的建议,但可以说有更简单的方法。 :) – 2013-02-11 10:50:31
更好的方法,为了你想要的目的,你不想这样做。 – jeroenvisser101 2013-02-11 10:53:00
写入文件外部 web根目录,那么Web服务器将不会提供给客户端。 (PHP没有要求在文档根目录下读取它)。
其他选项包括:
简单的解决方案:
$s=file_get_contents('test.txt');
如果文件中有一些代码来执行,可以eval
它。
eval(file_get_contents('test.txt'));
最可靠的方法是把它放在web根目录之外。 – 2013-02-11 10:50:10