2012-01-24 93 views
0

我有一個奇怪的問題,繼續困擾着我。我感謝您的建議....PHP包含運算符似乎無法找到php腳本

在PHP 5.3腳本中,我使用下面的代碼包含了另一個PHP腳本;

include 'moninit.php?id=1234'; // initialize array variables 

moninit.php存儲爲C:\ XAMPP \ htdocs中\ CarmelServices \ moninit.php

在php.ini中包括的路徑是:

include_path = "C:\xampp\htdocs\CarmelServices" 

因此,應該include執行moninit.php但我得到以下錯誤返回;

警告:包括(moninit.php ID = 1234?)[]:未能到 打開流:在C無誤差:\ XAMPP \ htdocs中\ CarmelServices \ SensorW.php上 線48

警告:包括()[]:未能打開 'moninit.php ID = 1234?' 列入 (include_path中= 'C:\ XAMPP \ htdocs中\ CarmelServices')在 C:\ XAMPP \在線48上的htdocs \ CarmelServices \ SensorW.php

如果我執行mo ninit.php直接使用瀏覽器,它工作正常。所以,包括似乎無法找到moninit。 SensorW與moninit位於同一文件夾中。

很奇怪,至少對我來說。謝謝!

回答

1

include不執行PHP腳本;它只會將文件的內容插入到當前正在運行的腳本中。

在你的例子中,你告訴PHP解釋器找到並打開一個名爲'moninit.php?id = 1234'的文件,該文件不存在。您可能希望自己添加「monit.php」,或者找到其他方法(如cURL)來執行腳本並檢索響應。

+0

George,Brilliant!說得通。我將重新配置id =部分。非常感謝你。 Al – Kovalick

1

你不能傳遞數組變量,它直接包含在你的腳本中,並會繼承可用範圍內的任何變量。所以你可以分配一個數組並使用它。

$data = array('id' => '1234'); 
include 'moninit.php'; // In moninit.php, use $data instead 

如果你只是路由傳遞的參數,不要擔心 - 他們已經工作。

+0

感謝您的優秀建議!非常讚賞和理解。人 – Kovalick

0

@GeorgeCummins的答案解釋了include()的工作原理。另外,您只能傳遞文件的名稱。你不能像你正在做的那樣傳遞變量。這是一個文件名,而不是一個URL。