我還有一個問題:讀取的文件只能通過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