2012-02-04 44 views
-1

我有一個php頁面,當從瀏覽器中調用時顯示一個頁面,它也會生成一個靜態html頁面,所以 - http://somewebsite/create.php從瀏覽器運行時創建newpage.html。停止php顯示到屏幕 - 運行無聲

我也從CLI運行這個頁面#php create.php它會創建newpage.html,但是我得到屏幕上的所有輸出,這會降低執行速度,如果我必須多次運行它,可能需要幾個小時。

是否有一種方式來運行#PHP create.php和所有輸出剿屏幕

馬丁

+0

使用你的bash語法:添加「&」在命令的末尾。或者用|將它管道到/ dev/null – EGOrecords 2012-02-04 19:49:44

+0

您能否選擇正確的答案 – 2012-04-17 10:43:40

回答

0

可以通過管道在命令行輸出到/ dev/null的,例如:
php http://somewebsite/create.php > /dev/null

這實際上並不會停止由php生成的輸出,而只是顯示。

如果你真的想停止產生輸出,你可以使用php的輸出緩衝ob_start()並把輸出放到一個變量中,在代碼結尾使用ob_get_flush(),並且只在輸出某些參數不會傳遞給腳本。

+0

非常感謝majic bunnie - 完美的解決方案 - – MSB 2012-02-04 20:16:59

1

退房Output Buffering

您與ob_start()開始啓動緩衝輸出,那麼你可以使用$output = ob_get_clean()來獲取將被顯示的所有並將其存儲在$output,所以你可以做任何你想做的事情。

我相信有$_SERVER變量可以用來檢查你是否從命令行運行。 (很明顯,你可以檢查是正常存在的HTTP頭,他們不會從CLI設置)

var_dump($_SERVER),看看是否有什麼直觀的看:)