2017-04-22 82 views
0

我不斷收到錯誤「警告:非法字符串偏移'代碼'在/路徑/在第17行」。我嘗試過很多東西,但不知道問題出在哪裏。這裏是我的代碼:警告:非法字符串偏移'代碼'在/路徑/在線17

require_once 'unirest-php-master/src/Unirest.php'; 

$response = Unirest\Request::post("https://andruxnet-random-famous- 
quotes.p.mashape.com/?cat=movies", 
    array(
    "X-Mashape-Key" => "key", 
    "Content-Type" => "application/x-www-form-urlencoded", 
    "Accept" => "application/json" 
) 
); 

$encoded = json_encode($response,true); 
echo $encoded['code']; 

該代碼被用來從API的信息,並將其成功地獲取信息,但是當我嘗試在陣列中訪問對象,我得到一個錯誤。

我也嘗試使用,而不是編碼json_decode但是,讓我關於參數1需要是一個字符串

編輯一個錯誤:線17是這樣的線:回聲$編碼[「代碼」];

+0

'in/path/on line 17' - 是你發佈代碼的這一行代碼嗎? – Pharaoh

+0

對不起,我應該更清楚。第17行是這一行'echo $ encoded ['code'];' – Hydrone

回答

1

從你的代碼看來,你似乎想打印從API獲取的響應(以JSON格式)。所以,你應該在這裏做json_decode。

var_dump($response); // Check response obtained from API 

$encoded = json_decode($response,true); // Change to json_decode 
echo "<pre>"; print_r($encoded); // Debug decoded array 

echo $encoded['code']; // Check data 
+0

相反,我得到以下錯誤:警告:json_decode()期望參數1是字符串,在/ path /在第16行給出的對象 – Hydrone

+0

var_dump($ response)的結果是什麼?死;'? –

+0

'object(Unirest \ Response)#1(4){[「code」] => int(200)[「raw_body」] => string(144)「{」quote「:」有一天早上我拍了一頭大象我的睡衣。 「,」作家「:」動物餅乾「,」類別「:」電影「}」[「body」] =>對象(stdClass)#2(3){ [「quote」] => string(85)「有一天早上,我用睡衣拍了一頭大象,他穿着我的睡衣,我不知道。」 [「author」] => string(15)「Animal Crackers」[「category」] => string(6)「Movies」} [「headers」] => array(6){[0] => string(15 )「HTTP/1.1 200 OK」[「Content-Type」] => string(24)「text/html; charset = UTF-8」[「Date」] => string(29)「Sat,' – Hydrone

0

我已解決該問題。我做錯的第一件事是嘗試解碼或編碼它,我不需要做任何一件事。我還在使用[「code」]而不是 - >代碼

相關問題