2010-05-06 90 views
1

有沒有比以下更簡單的方法。從PHP腳本發出PHP GET請求並退出

我正在嘗試向PHP腳本發出GET請求,然後退出當前腳本。

我認爲這是CURL的工作,但有沒有更簡單的工作,因爲我不想真的擔心啓用CURL PHP擴展?

另外,下面開始PHP腳本然後回來就不等它完成了嗎?

//set GET variables 
$url = 'http://domain.com/get-post.php'; 

$fields = array(
    'lname'=>urlencode($last_name), 
    'fname'=>urlencode($first_name) 
    ); 

//url-ify the data for the GET 
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; } 
rtrim($fields_string,'&'); 

//open connection 
$ch = curl_init(); 

//set the url, number of POST vars, POST data 
curl_setopt($ch,CURLOPT_URL,$url); 
curl_setopt($ch,CURLOPT_GET,count($fields)); 
curl_setopt($ch,CURLOPT_GETFIELDS,$fields_string); 

//execute GET 
$result = curl_exec($ch); 

//close connection 
curl_close($ch); 

我要運行它包含的功能其他腳本當條件滿足一個簡單的包括將無法正常工作的,如果周圍的功能狀態包裝,對不對?

請注意,我在Windows機器上,我寫的代碼只能在Windows操作系統上使用。

感謝所有的幫助和建議

回答

6
$url = 'http://domain.com/get-post.php?lname=' . urlencode($last_name) . '&fname=' . urlencode($first_name); 
$html = file_get_contents($url); 

如果你想使用的查詢字符串的裝配方法(從您發佈的代碼):

//set GET variables 
$url = 'http://domain.com/get-post.php'; 

$fields = array(
    'lname'=>urlencode($last_name), 
    'fname'=>urlencode($first_name) 
    ); 

//url-ify the data for the GET 
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; } 
rtrim($fields_string,'&'); 
$html = file_get_contents($url . '?' . $fields_string); 

參見: http://php.net/manual/en/function.file-get-contents.php

+0

這是否需要等待腳本結束? – Abs 2010-05-06 10:05:40

+2

'file_get_contents()'將不會返回,直到請求完成處理。在GET請求完成之前,OP似乎希望繼續使用當前的PHP腳本,並簡單地忽略結果。 – Amber 2010-05-06 10:06:00

+0

@Abs - 你的意思是你通過GET調用的腳本?我有點困惑。 – karim79 2010-05-06 10:10:52