2015-08-18 146 views
-1

我覺得很愚蠢的問題。PHP從URL得到結果

我有一個我想訪問的API。如果我只是把它放在我的瀏覽器中,它會正確返回所有的結果。

https://api.mydomain.com/v1/name?user=user1&pass=1234 
在我的瀏覽器

這將返回數組信息:

{"firstname":"John","Surname":"Smith"}  

我希望能夠使用PHP來簡單的URL頁面的結果賦值給一個變量:

$url="https://api.mydomain.com/v1/name?user=user1&pass=1234"; 
$result=parse($url); 
print_r($result); 

這顯然不起作用,只是尋找正確的語法。做了一些研究,但沒有得到任何運氣。應該如此簡單,但不是。

建議一如既往的讚賞。 感謝

+1

函數應該是'parse_url()'。 – Chayan

+0

你有一個叫做'parse()'的自定義函數嗎?因爲「parse()」不是核心PHP函數。 http://php.net/manual-lookup.php?pattern=parse&scope=quickref - ''parse_url()'是一個核心PHP函數http://php.net/manual/en/function.parse-url.php if這就是你的意思。 –

+0

投票結束,因爲不清楚。 @當我們讓我們都知道的時候,我會刪除投票。 –

回答

0

解決方案:的file_get_contents(!也許你需要捲曲如果ini_get( 「allow_url_fopen選項」)= 1 ....)

$url="https://api.mydomain.com/v1/name?user=user1&pass=1234"; 
$result=parse(file_get_contents($url)); 
print_r($result); 

希望你的 「解析()」 函數知道如何解析你的api調用的結果。我猜你不知道你在做什麼,接下來你會問爲什麼解析函數沒有被定義:p(它看起來像你正在尋找json_decode,只是猜測而已。)

i覺得你的解析函數看起來像:

function parse($apiresponse){return json_decode($apiresponse,true);} 
2

只是做一個請求,你的API服務:

$url="https://api.mydomain.com/v1/name?user=user1&pass=1234"; 
$result = file_get_contents($url); 

然後,如果我理解正確的話,你的API返回JSON響應,讓你不得不對它進行解碼:

$vars = json_decode($result, true); 

將返回所有的數組變量:

echo $vars['firstname']; //"John"; 
echo $vars['Surname']; //"Smith"; 
0

如果您已經安裝了curl庫,你可以這樣做:

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, 'https://api.mydomain.com/v1/name?user=user1&pass=1234'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$result = curl_exec($ch); 
$vars = json_decode($result, true); 
//do something useful with the $vars variable