2011-12-14 169 views
-2

我有一個PHP頁面,需要在頁面執行期間將數據發送到另一個PHP頁面並接收數據。如何訪問PHP腳本中的另一個PHP腳本?

可以這樣做嗎?如果是這樣,怎麼樣?

更新:

對不起 - 意思是說,第二個腳本是一個完全不同的服務器和域上。

怎麼樣的條紋與他們的PHP選擇這樣做:https://stripe.com/docs/api?lang=php

+0

http://www.php.net/include – vascowhite 2011-12-14 23:50:20

+0

對不起 - 意思是說,第二個腳本是一個完全不同的服務器和域上。 – chromedude 2011-12-14 23:52:30

+0

@vascowhite什麼都沒有......我想到了所有我能想到的選項(include,cURL),但是他們不是爲這種情況而做的,或者我不想安裝一個軟件包。 – chromedude 2011-12-14 23:55:08

回答

1

使用include('script2.php')從script1.php

然後你可以從SCRIPT1調用script2.php中的函數(假設他們有全局範圍)。 PHP。

2

編輯

望着條紋的源代碼,你會看到他們使用捲曲(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); 
?> 
相關問題