我有一個php頁面,當從瀏覽器中調用時顯示一個頁面,它也會生成一個靜態html頁面,所以 - http://somewebsite/create.php從瀏覽器運行時創建newpage.html。停止php顯示到屏幕 - 運行無聲
我也從CLI運行這個頁面#php create.php它會創建newpage.html,但是我得到屏幕上的所有輸出,這會降低執行速度,如果我必須多次運行它,可能需要幾個小時。
是否有一種方式來運行#PHP create.php和所有輸出剿屏幕
馬丁
我有一個php頁面,當從瀏覽器中調用時顯示一個頁面,它也會生成一個靜態html頁面,所以 - http://somewebsite/create.php從瀏覽器運行時創建newpage.html。停止php顯示到屏幕 - 運行無聲
我也從CLI運行這個頁面#php create.php它會創建newpage.html,但是我得到屏幕上的所有輸出,這會降低執行速度,如果我必須多次運行它,可能需要幾個小時。
是否有一種方式來運行#PHP create.php和所有輸出剿屏幕
馬丁
可以通過管道在命令行輸出到/ dev/null的,例如:
php http://somewebsite/create.php > /dev/null
這實際上並不會停止由php生成的輸出,而只是顯示。
如果你真的想停止產生輸出,你可以使用php的輸出緩衝ob_start()並把輸出放到一個變量中,在代碼結尾使用ob_get_flush(),並且只在輸出某些參數不會傳遞給腳本。
非常感謝majic bunnie - 完美的解決方案 - – MSB 2012-02-04 20:16:59
您與ob_start()
開始啓動緩衝輸出,那麼你可以使用$output = ob_get_clean()
來獲取將被顯示的所有並將其存儲在$output
,所以你可以做任何你想做的事情。
我相信有$_SERVER
變量可以用來檢查你是否從命令行運行。 (很明顯,你可以檢查是正常存在的HTTP頭,他們不會從CLI設置)
var_dump($_SERVER)
,看看是否有什麼直觀的看:)
使用你的bash語法:添加「&」在命令的末尾。或者用|將它管道到/ dev/null – EGOrecords 2012-02-04 19:49:44
您能否選擇正確的答案 – 2012-04-17 10:43:40