2011-08-19 78 views

回答

5

如何在不執行內聯代碼的情況下調用函數?

你不行。

您可能可以使用output buffering來抑制包含的輸出,但代碼仍然會執行。

我不認爲有一個好的方法來做到這一點,而不需要製作各自包含的副本,並從它們中剝離內聯代碼。

+0

你可以'fsockopen'到本地主機等。 –

+0

@史蒂夫?哼?如果您在外部包含文件,您將如何獲得這些功能?請詳細說明 –

+0

我想我讀錯了問題,但想通過HTTP調用函數,以便輸出只在套接字內。但這意味着第三方API基於'$ _REQUEST'。 –

0

簡單的答案是你不能。撥打電話include只需打開文件並在內容上運行eval()

0

將原始文件拆分爲函數文件和本地代碼文件並將它們包括在內怎麼樣?通過這種方式,原始文件可以像以前一樣工作,並且只需在腳本中包含這些功能即可。

0

從理論上講,可以通過評估文件的過濾內容來進行評估,但是在腳本和性能方面,過濾代碼並非易事。

0

如果你所有的功能都在要包括文件的頂部定義,你可以像這樣的函數定義後,立即加有結構吧:

if (something that would be true if the file was included) { 
    return; 
} 

例如,如果腳本做在包括已經定義了一個名爲$myVar你可以做變量:

if (isset($myVar)) return; 

這將導致包含的文件停止執行,並將控制返回到原來的腳本。

然而,最好的解決方案是創建另一個文件,例如, 'functions.php'和include('functions.php');在這兩個腳本中...

相關問題