2012-03-08 58 views
1

我稱之爲PHP從命令行,用-c參數加載另一個php.ini文件,像這樣:PHP不會禁用功能

php -c my_ini_file.ini test.php 

所以在disabled_functions我增加了echo功能。

在test.php中,echo的作品,我不知道爲什麼。 phpinfo()將回顯顯示爲禁用的功能。

+1

爲什麼你甚至想要禁用回聲? – 2012-03-08 21:08:45

+0

@Dagon:我能想到的一個原因是,如果腳本是由Cron作業執行的,那麼任何回顯的內容都可能發送到postfix,並開始氾濫電子郵件或佔用磁盤空間(如果未設置postfix向上)。至少,這是發生在我身上的事情。 – Travesty3 2012-03-08 21:11:41

+0

回聲甚至不是一個功能... – powtac 2012-03-08 21:14:52

回答

5

Echo不是一個函數,它是一個內置命令。它不能被禁用。

echo()實際上並不是一個函數(它是一種語言結構),因此您不需要使用括號。 echo()(與其他一些語言結構不同)不像函數那樣工作,所以它不能總是在函數的上下文中使用。此外,如果您想將多個參數傳遞給echo(),則參數不能包含在括號內。

3

按照文檔約echo

回聲()實際上不是一個函數(這是一個語言結構),所以你 不使用括號它要求。 echo()(與其他一些 語言結構不同)不會像函數那樣工作,所以它不能在函數的上下文中使用 。此外,如果要 將多個參數傳遞給echo(),則括號內的參數不得爲 。

1

正如其他海報已經提到,echo是不是一個真正的功能。也許一個解決方案是編寫另一個PHP腳本,其中包含要執行的腳本,但會打開輸出緩衝並從不輸出它。例如:

<?php 
    ob_start(); 
    include("test.php"); 
    ob_end_clean(); 
?> 
+0

我實際上正在編輯我的答案以反映您的建議,您只是毆打我。這聽起來像是避免輸出內容的正確方法。 – Crashspeeder 2012-03-08 21:08:15