ホームページ >バックエンド開発 >PHPチュートリアル >JSON の受信に関する問題
CURL を使用して JSON を送信する方法を学びました。
しかし、メンバーがログイン情報を送信した後、インターフェースはデータを返します。00 が返されれば成功です。 11 が返される場合、ログインが失敗したことを意味します。
ログイン情報を正常に記録し、他の Web サイトにジャンプします。午後はずっと失敗してしまいました。例を挙げてください
ありがとうございます
送信されたサーバー側:
if (ログイン成功) {
echo('00')
}else{//Failed
; echo( '11');
あなたのプログラム:
$ch =curl_init();
$url="サービスサーバーのアドレスとパラメータを送信";
curl_setopt( $ch, CURLOPT_RETURNTRANSFER,1);
$a=curl_exec($ch);
if($a=='00'){
}elseif($ a==) '11'){
ログイン失敗
}
大体こんな感じです
送信されたサーバー側:
if (ログイン成功){
echo('00'); }else{///Failed
}
あなたの側のプログラム:
$ch =curl_init();
$url="サービスサーバーのアドレスとパラメータを送信します"; CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
if($a=='00'){
成功code;
}elseif($a=='11'){
ログインに失敗しました
}
皆さんが思っている通りかどうかは分かりませんが、おおよそこんな感じです
2つのパラメータAとBを受け取ります。 00 はログインが成功したことを意味します。B の URL を取得してジャンプします。別のURLに直接ジャンプすることはできますか?
$arrayData = array("name" => "Hagrid", "age" => "36");$sendJsonData = json_encode($arrayData);$ch = curl_init('http://127.0.0.1/jietu/test.php');curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");curl_setopt($ch, CURLOPT_POSTFIELDS, $sendJsonData);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($sendJsonData)));$ret = curl_exec($ch);if($ret == '00'){ 成功了执行的代码;}elseif($ret == '11'){ 登录失败}
$arrayData = array("name" => "Hagrid", "age" => "36");$sendJsonData = json_encode($arrayData);$ch = curl_init('http://127.0.0.1/jietu/test.php');curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");curl_setopt($ch, CURLOPT_POSTFIELDS, $sendJsonData);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($sendJsonData)));$ret = curl_exec($ch);if($ret == '00'){ 成功了执行的代码;}elseif($ret == '11'){ 登录失败}
var_dump($ret =curl_exec($ch)); 値を出力して参照してください
var_dump($ret =curl_exec($ch)); 値を出力して参照してください
boolean false
データは成功しましたが、戻り値は {"aa":"00","bb":"http://www.xxx.com/index"} です。
json_decode
と同じです。モデレーターは、はい、戻り値を変換するには json_decode を使用します
json_decode
さらに混乱しました。 。 。例を挙げてもらえますか?
簡単に説明しましょう。わかりやすい。 。 。これで、データの投稿が成功しました。戻り値は {"aa":"00","bb です。 " :"http://www.xxx.com/index"}入手方法は?
$json_str = '{"aa":"00","bb":"http://www.xxx.com/ index"} ';
$arr = json_decode($json_str); print_r($arr);
$ret =curl_exec($ch)
echo $ret; を実行すると、{"aa":"00" が得られます。 "bb": "http://www.xxx.com/index"}
は、実際に json 文字列を受信したことを意味します
ということは、
すでに json を使用しているのに、なぜ json 関連の関数さえ知らないのですか?
$ret =curl_exec($ch)
echo $ret; を実行すると、 {"aa":"00","bb":"http://www.xxx.com/index"} が得られます
は実際にあなたを意味します受け取りました json文字列にたどり着きました
では、
$t = json_decode($ret);print_r($t);/*stdClass Object( [aa] => 00 [bb] => http://www.xxx.com/index)*/$t = json_decode($ret, 1);print_r($t);/*Array( [aa] => 00 [bb] => http://www.xxx.com/index)*/