[英]Linux command populate file from php script output
我有一個PHP腳本,它生成一些復雜的XML輸出。 XML當前正作為網頁輸出,但我不需要將其作為服務器上的物理文件而是網頁。
所以,我想知道是否有辦法將我的PHP腳本的輸出傳遞到Linux touch命令,以便我的PHP輸出填充或覆蓋我的服務器上的文件?
我目前正在嘗試以下代碼但沒有成功:
touch test | php xml_reports.php
您實際上可以從命令行運行PHP。
php filename.php
所以如果你的php文件包含:
<?php
echo "Hello World";
?>
輸出將是終端中的“Hello World”(不帶引號)。 因此,如果您使用PHP編寫應用程序,請嘗試在沒有瀏覽器渲染輸出的情況下考慮如何處理它。 我希望有所幫助。
[edit]您可能還想查看shell_exec。 (http://php.net/manual/en/function.shell-exec.php)
假設我正確理解你的問題,這是一個解決方案。 但是,在這種情況下,PHP代碼本身不是管道輸出PHP,而是在服務器上輸出該文件的副本。 我不確定這是通過linux管道完成的重要性。 另請注意,此解決方案是從http://forums.codewalkers.com/showpost.php?p=40350&postcount=3復制而來的。
1)在你的腳本的最開始這一行:
ob_start();
2)在你的腳本的最后,把這個:
$page = ob_get_contents(); ob_end_flush(); $fp = fopen("output.html","w"); fwrite($fp,$page); fclose($fp);
而且,bam,你應該將整個頁面放在一個名為output.html的文件中。 現在,您需要確定的一件事是Web服務器服務器可以編寫文件output.html。 這意味着您需要確保Web服務器具有在您計划存儲該文件的任何目錄中寫入的權限。
它是如何工作的? 基本上,它只是緩沖腳本的所有輸出。 然后,將該緩沖區存儲到字符串中。 然后將緩沖區發送到瀏覽器。 然后將該字符串存儲在文件中......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.