我有一個PHP頁面,需要在頁面執行期間將數據發送到另一個PHP頁面並接收數據。如何訪問PHP腳本中的另一個PHP腳本?
可以這樣做嗎?如果是這樣,怎麼樣?
更新:
對不起 - 意思是說,第二個腳本是一個完全不同的服務器和域上。
怎麼樣的條紋與他們的PHP選擇這樣做:https://stripe.com/docs/api?lang=php
我有一個PHP頁面,需要在頁面執行期間將數據發送到另一個PHP頁面並接收數據。如何訪問PHP腳本中的另一個PHP腳本?
可以這樣做嗎?如果是這樣,怎麼樣?
更新:
對不起 - 意思是說,第二個腳本是一個完全不同的服務器和域上。
怎麼樣的條紋與他們的PHP選擇這樣做:https://stripe.com/docs/api?lang=php
使用include('script2.php')
從script1.php
然後你可以從SCRIPT1調用script2.php中的函數(假設他們有全局範圍)。 PHP。
編輯
望着條紋的源代碼,你會看到他們使用捲曲(ApiRequestor.php):
private function _curlRequest($meth, $absUrl, $headers, $params, $myApiKey)
{
$curl = curl_init();
$meth = strtolower($meth);
$opts = array();
if ($meth == 'get') {
$opts[CURLOPT_HTTPGET] = 1;
if (count($params) > 0) {
$encoded = self::encode($params);
$absUrl = "$absUrl?$encoded";
}
} else if ($meth == 'post') {
$opts[CURLOPT_POST] = 1;
$opts[CURLOPT_POSTFIELDS] = self::encode($params);
} else if ($meth == 'delete') {
$opts[CURLOPT_CUSTOMREQUEST] = 'DELETE';
if (count($params) > 0) {
$encoded = self::encode($params);
$absUrl = "$absUrl?$encoded";
}
} else {
throw new Stripe_ApiError("Unrecognized method $meth");
}
$absUrl = self::utf8($absUrl);
$opts[CURLOPT_URL] = $absUrl;
$opts[CURLOPT_RETURNTRANSFER] = true;
$opts[CURLOPT_CONNECTTIMEOUT] = 30;
$opts[CURLOPT_TIMEOUT] = 80;
$opts[CURLOPT_RETURNTRANSFER] = true;
$opts[CURLOPT_HTTPHEADER] = $headers;
$opts[CURLOPT_USERPWD] = $myApiKey . ':';
$opts[CURLOPT_CAINFO] = dirname(__FILE__) . '/../data/ca-certificates.crt';
if (!Stripe::$verifySslCerts)
$opts[CURLOPT_SSL_VERIFYPEER] = false;
curl_setopt_array($curl, $opts);
$rbody = curl_exec($curl);
if ($rbody === false) {
$errno = curl_errno($curl);
$message = curl_error($curl);
curl_close($curl);
$this->handleCurlError($errno, $message);
}
$rcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
return array($rbody, $rcode);
}
cURL - 從PHP manual:
PHP支持libcurl,Daniel Stenberg創建的一個庫, 允許您連接許多不同類型的協議並與許多不同類型的 服務器通信。 libcurl目前支持http,https,ftp,gopher,telnet,dict,file和ldap協議。 libcurl還支持HTTPS證書,HTTP POST,HTTP PUT,FTP上傳(這也可以通過PHP的ftp擴展完成), 基於HTTP表單的上傳,代理,Cookie和用戶名+密碼 驗證。
<?php
/* http://localhost/upload.php:
print_r($_POST);
print_r($_FILES);
*/
$ch = curl_init();
$data = array('name' => 'Foo', 'file' => '@/home/user/test.png');
curl_setopt($ch, CURLOPT_URL, 'http://localhost/upload.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_exec($ch);
?>
如果你想調用通過URL的PHP腳本像最終用戶的另一種可能性,捲曲是知道的好工具。
http://www.php.net/include – vascowhite 2011-12-14 23:50:20
對不起 - 意思是說,第二個腳本是一個完全不同的服務器和域上。 – chromedude 2011-12-14 23:52:30
@vascowhite什麼都沒有......我想到了所有我能想到的選項(include,cURL),但是他們不是爲這種情況而做的,或者我不想安裝一個軟件包。 – chromedude 2011-12-14 23:55:08