是否有任何方法將表單發佈數據直接存儲到PHP文件中,而不是以文本或二進制格式存儲它?我可以將數據存儲在PHP文件中嗎?
回答
這在技術上是可行的,但沒有充足的理由這樣做。你想解決什麼問題?
您可以使用fopen('file.php','a')打開一個附加的PHP文件並使用fwrite向其寫入內容。要讀取它,請閱讀整個文件,跳過PHP部分並讀取剛寫入的數據。
當然,你可以將它保存到你想要的任何類型的文件中。雖然把它放在一個php文件中將是一個主要的安全風險,因爲有人可以上傳一個壞的東西的腳本,然後啓動它,就像你網站上的任何其他頁面一樣。
如果您不想存儲數據(只能從腳本傳遞給腳本),您可以嘗試將表單存儲爲會話變量:
session_start(); $_SESSION['myData'] = $myData;然後所有共享會話的其他頁面都可以通過致電
$_SESSION['myData']
訪問數據。
不在PHP文件本身。但是你可以使用這個腳本只是存儲的東西:
file_put_contents(dirname(__FILE__).'/data.txt', var_export($_REQUEST, 1), FILE_APPEND);
如果你真的想直接存儲在PHP文件本身,只需更改腳本
file_put_contents(__FILE__, '?>'.var_export($_REQUEST, 1), FILE_APPEND);
;-)
爲什麼你想通過TXT文件將數據存儲在PHP文件中?真的,如果你正在向文件系統中的文件寫入數據,那麼擴展名將是什麼並不重要。 (但是,如果您寫入PHP文件並在瀏覽器中進行訪問,則會嘗試執行文件中的任何數據,這可能會造成很大的安全問題。)
我的建議是編寫在文本文件中爲每行添加一個值。然後,當你想讀取數據時,使用PHP將該文件讀回數組。
是的,這是可能的。如果你想這樣做,看看像var_export
這樣的功能。
然而,像其他人所說,這對於大多數意圖和目的來說是一個壞主意™。將事情寫入可執行文件意味着您必須對用戶輸入格外小心,例如,因爲他們可能會利用它來運行自己的代碼。
因此,您應儘可能使用數據庫或某種不可執行的平面文件來存儲數據。此外,如果您爲了「安全」而嘗試這樣做,即將保護性代碼放入文件中,可以通過將文件作爲文本文件讀取並跳過安全措施請記住,PHP代碼是純文本,不必執行即可讀取。如果您選擇將其作爲安全措施進行加密,則您也可以將加密數據存儲在數據庫中,從而使您的觀點沒有實際意義。
如果您發現自己無法訪問數據庫系統,則應考慮使用存儲在文件中的SQLite數據庫,因此不需要安裝任何內容,只需安裝PHP SQLite擴展,該擴展將作爲PHP的標準部分。
有可能是保存數據的更好的辦法,但如果你真的想這是可以做到這樣:
file_put_contents($storage_file, '<?php return ' . var_export($data) . ';');
這樣,所有數據都將被格式化好和良好逃脫。
然後你可以用這樣的代碼檢索數據:
$data = include $storage_file;
- 1. 我可以將JavaScript對象存儲在mySQL數據庫中嗎?
- 2. 我可以將shiro配置存儲在另一個數據存儲中嗎?
- 3. 將演示數據存儲在數據庫中可以嗎?
- 4. 可以將所有數據存儲在數據類中嗎?
- 5. Cassandra DB:可以在Cassandra數據庫中存儲XML文件嗎?
- 6. OutOfMemoryError - 我可以將數據轉儲到文件而不是內存中嗎?
- 7. 我可以在java德比數據庫中存儲文本文件嗎?
- 8. Python - 可以將文本文件數據存儲在代碼中嗎?
- 9. 我可以將文件存儲在iPhone的文件系統中嗎?
- 10. 我可以將數值常量存儲在值文件夾中嗎?
- 11. 我可以在外部文件中存儲數據註釋錯誤消息嗎?
- 12. 我們可以使用Javascript將HTML表單數據存儲到XML文件嗎?
- 13. 是否可以將數據從Python存儲在Access文件中?
- 14. 我可以序列化一個數組列表,以便我可以將其存儲在.dat文件中嗎?
- 15. 我可以直接將數據存儲在處理器緩存中嗎?
- 16. 我可以將可執行代碼存儲在覈心數據中嗎
- 17. 我們可以將對象存儲在文件中供以後檢索嗎?
- 18. 我可以將數組存儲在變量中嗎?
- 19. 我可以將Jquery Cycle參數存儲在變量中嗎?
- 20. 我們可以將數據以gzip格式存儲在postgresql中
- 21. 我可以在MongoDB中存儲關係數據庫結構嗎
- 22. 我可以在Redis中存儲這種類型的數據嗎?
- 23. 我可以在SHTML文件中包含PHP文件並將結果存儲在SHTML變量中嗎?
- 24. 我可以將存儲在數據存儲區中的數據導出到Excel中嗎?
- 25. 我可以將表單綁定到Dojo數據存儲嗎?
- 26. 我可以在RSpec中存儲STDERR嗎?
- 27. 我可以在Azure Blob存儲中解壓縮文件嗎?
- 28. 我可以在ScheduledTaskAgent中存儲一些文件嗎?
- 29. 我可以將SMS存儲映射到本地文件夾嗎?
- 30. Dompdf庫:我可以將文件存儲到硬盤嗎?
爲什麼要將基於文本的數據存儲在一個php文件中。發佈數據將是純文本不會嗎? – bharath 2011-01-28 15:44:50
BTW:一個PHP文件也是純文本... – Select0r 2011-01-28 15:46:58