我有一個PHP腳本,說a.php
,這是從JS使用Ajax調用(這是一個POST請求和一些數據傳遞給腳本)。如何從另一個PHP腳本調用PHP腳本?
我有另一個PHP腳本,說b.php
,從中我想打電話給a.php
並傳遞一些數據。我希望a.php
能夠完成這項工作,就像從JS調用它一樣。
我不想做include('a.php');
因爲變量名之間可能發生衝突。
我該怎麼做?
我有一個PHP腳本,說a.php
,這是從JS使用Ajax調用(這是一個POST請求和一些數據傳遞給腳本)。如何從另一個PHP腳本調用PHP腳本?
我有另一個PHP腳本,說b.php
,從中我想打電話給a.php
並傳遞一些數據。我希望a.php
能夠完成這項工作,就像從JS調用它一樣。
我不想做include('a.php');
因爲變量名之間可能發生衝突。
我該怎麼做?
你爲什麼不把它們放在一起作爲函數,使用include,並像在C++中那樣調用它們? Global is bad.
你是對的,我需要重新組織我的代碼......謝謝! – 2010-10-08 04:45:06
您可以使用curl或file_get_contents通過HTTP調用它。但我認爲你應該考慮重新設計。無論您是使用程序編寫代碼還是使用OOP代碼,都應該可以在沒有衝突的情況下擁有多文件程序。
一種方法是將b.php
的服務器請求與a.php
的URL進行通信,該URL通常由客戶端使用。
如果您使用PHP 5.3,則可以使用Namespaces來避免變量名稱衝突問題。
另一個建議是重構你的代碼,這樣你可以包含該文件,然後調用一個函數來執行它。函數調用中的所有變量只有函數的作用域。
一個解決方案(如果不完美)是使用file_get_contents()
與URL。
所以,像這樣:
$data = file_get_contents('http://domain.com/a.php?this=that&that=this');
$json = json_decode($data);
我一會兒前解決這個問題......最終我選擇了不同的方法,因爲有太多的妥協。 http://stackoverflow.com/questions/3471930/how-to-sandbox-a-request-to-another-php-script – JKS 2010-10-07 23:17:21