簡體   English   中英

Linux命令從php腳本輸出填充文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM