我建立了一個URL來執行curl。該網址將爲我正在使用的LMS調用api。在能夠調用其他任何東西之前,您需要從LMS接收一個令牌以放入網址。我已經從api獲取了令牌,並且可以回顯它,並且它顯示得很好,當我在將令牌附加到該令牌後回顯該URL時,它不會顯示出來。在echo "{$url}<br />";
PHP:不添加字符串
/www/api2.php?action=create_user &登錄
curl_setopt($c, 'CURLOPT_RETURNTRANSFER', true); $res = curl_exec($c); curl_close($c); $start = strpos($res,"<token>"); $end = $start+37; $token = substr($res,$start+7,$end-$start); echo "{$token}<br />"; $url = "/www/api2.php?action=create_user"; $url .= "&login=" . urlencode($username); $url .= "&password=" . urlencode($password); $url .= "&name=" . urlencode($data['first_name']); $url .= "&surname=" . urlencode($data['last_name']); $url .= "&email=" . urlencode($email); $url .= "&languages=english"; $url .= "&token=" . $token; echo "{$url}<br />";
輸出= foobar3130 &密碼= 6116b3f29c &名=美孚&姓=酒吧&電子郵件= foobar的%40gmail。 COM &語言=英語&令牌=
OUTP的echo "{$token}<br />";
UT pUCu2BUAE1heAyQ93fApfhvDE1bjKd
編輯 我添加了一個檢查,看看是否$start
是假的,這是假的。我猜它實際上並不是獲得echo'd的標記,因爲如果我將該行註釋掉,我爲標記輸出獲得的字符串仍然會打印出來。我不確定它甚至會來自哪裏。
編輯2 我現在有它返回的XML,但我不知道如何解析它來獲取令牌。它返回:
<xml><token>Fp1rYkds4fSuTAQxTvLvSiW5NE2FJz</token></xml>
並輸出回聲「{$ token}
」; ?? – 2010-08-16 15:10:31
您是否在curl_exec之前設置了'CURLOPT_RETURNTRANSFER'選項? – a1ex07 2010-08-16 15:16:41
對不起,忘了添加那個輸出。更新。 @ a1ex07是的,我做了,我只是沒有包含腳本的那部分內容。我獲得了令牌的價值。它回聲很好。 – 2010-08-16 15:18:15