2010-05-25 105 views
1

好吧,這可能聽起來很容易,它是:)執行PHP文件

我有兩個文件:

file1.php 
file2.php 

Withing我file1.php是一個循環和內循環我想執行(不包括)file2.php

while(1){ //execute file2.php } 

我知道我可以使用exec()或包裹file2.php到功能,但有一個本地函數來做這樣的事情?

+2

你爲什麼要PHP來執行PHP? – baloo 2010-05-25 13:29:35

+0

我需要快速開發一個測試環境,這是模擬某些事情的最現實的方法:) – n00b 2010-05-25 13:39:44

+0

'include'將執行腳本。 – 2012-12-24 23:30:56

回答

1

file_get_contents()應該這樣做。

+1

做到了!謝謝 – n00b 2010-05-25 13:42:17

+0

編號。使用'require'或'include'。 – 2012-12-24 23:27:56

+0

@mačekOP專門說不要使用include,所以我只是聽了。我會說你的-1是沒有道理的。 – sshow 2012-12-24 23:37:53

1

如果確實需要,您可以使用backticks。例如: -

$output = `php file2.php`; 

不過,我會在封裝中的函數file2.php的功能,包括文件一次,並且在循環運行該功能。這是一種非常乾淨的方法。

+0

謝謝,甚至不知道在php中有這樣的東西:) – n00b 2010-05-25 13:41:58

+0

爲什麼不使用'require'或'include'? – 2012-12-24 23:29:07

+0

@maček:OP明確聲明**不包括文件。 'include'ing會將該文件的所有符號加載到包含它的文件中,這可能會導致衝突,而不會導致衝突。調用'php file2.php'似乎是一個非常簡單的方法來執行文件並避免這些問題。但是我也提到,通過適當的文件結構,'include'將是更合適的解決方案。 – 2012-12-25 06:20:45

4

爲什麼不應該包含「include()」?

如果您需要,您可以在之前執行一些環境清潔或初始化。例如,如果將文件包含在函數的主體中,則所有局部變量都將被屏蔽。例如,您仍然需要移動會話內容,但這很容易...

否則,您仍然可以啓動php解釋器(將php腳本作爲參數傳遞給它)。爲它製作一個包裝bash腳本比較容易。

+0

這是正確的答案。 – 2012-12-24 23:28:32