ホームページ >バックエンド開発 >PHPチュートリアル >PHPでJSONからデータを抽出するにはどうすればよいですか?
私は現在、Baidu Maps の API を勉強していますが、いくつかの問題に遭遇しました
たとえば、この情報は http://likeapp.duapp.com/yx/4.php にありますが、たくさんあります。 Baidu のフィールドの説明は次のとおりです http://developer.baidu.com/map/direction-api.htm#place8_3
stepstruction フィールドのデータを抽出するにはどうすればよいですか? 専門家の回答をお願いします
json_decode
json_decode ? JSON 形式で文字列をエンコードする
JSON 形式で文字列をエンコードする
非常に簡単な
専門家がコードを教えてくださいああ、この例については、教えた後、必ずチュートリアルを注意深く読みます。
出力した配列の名前が $ar だとすると、
array_walk_recursive($ar, function($v, $k) { if($k == 'stepInstruction') echo $v; });は次の結果を取得します: Take the a4b561c25d9afb9ac8dc4d70affff41931d2ce74f60405c7b401a3b6c53778efRoute 12e6e38b3c62e8df885fe2e3986461aa630d36329ec37a2cc24d42c7229b69747a31d2ce74f60405c7b401a3b6c53778ef(またはe6e38b3c62e8df885fe2e3986461aa6331d2ce74f60405c7b401a3b6c53778efNo. 16e6e38b3c62e8df885fe2e3986461aa6331d2ce74f60405c7b401a3b6c53778ef,e6e38b3c62e8df885fe2e3986461aa63c4dbfde12dd0ce167b3d5b5d0b688c788 ウェイe6e38b3c62e8df885fe2e3986461aa6331d2ce74f60405c7b401a3b6c53778ef、e6e38b3c62e8df885fe2e3986461aa6331d2ce74f60405c7b401a3b6c53778ef2 ウェイe6e38b3c62e8df885fe2e3986461aa6386f764c2b1ab7a968bc08a32a92c60ccターミナル駅まで 360 メートル歩きますe6e38b3c62e8df885fe2e3986461aa63a4b561c25d9afb9ac8dc4d70affff41931d2ce74f60405c7b401a3b6c53778ef国道 19 号線に乗ります山水仁嘉駅e6e38b3c62e8df885fe2e3986461aa63 820 メートル歩くと 31d2ce74f60405c7b401a3b6c53778efターミナル駅に到着します
$ar = json_decode($json,true) );
array_walk_recursive($v, $k){ if($k == 'stepstruct') echo $v; });
$ar = json_decode($json, true);
array_walk_recursive($v, $k){ if($k == 'stepstruct') echo $v; });
array_walk_recursive($ar
,
php のバージョンが 5.3 より前の場合 array_walk_recursive($ar, 'funv');function func($v, $k) { if($k == 'stepInstruction') echo $v;}
array_walk_recursive($ar
,
function($v, $k){ if($k == 'stepstruct') echo $v; });コンマ!
php バージョンが 5.3 より低い場合
array_walk_recursive($ar, 'funv');function func($v, $k) { if($k == 'stepInstruction') echo $v;}警告: array_walk_recursive() [function.array-walk-recursive]: funv() を呼び出すことができません - 関数が E:PHPnow-1.5.6htdocs4.php に存在しません12 行目
カンマがありません。
php バージョンが 5.3 より低い場合
array_walk_recursive($ar, 'funv');function func($v, $k) { if($k == 'stepInstruction') echo $v;}警告: array_walk_recursive() [function.array-walk-recursive]: funv() を呼び出すことができません - 関数が E:PHPnow-1.5.6htdocs4.php に存在しません12 行目
array_walk_recursive($ar, 'func');function func($v, $k) { if($k == 'stepInstruction') echo $v;}
array_walk_recursive($ar , function($v, $k){ if($k == 'stepInstruction') echo $v; });
少了个逗号!
如果你的 php 版本低于 5.3
array_walk_recursive($ar, 'funv');function func($v, $k) { if($k == 'stepInstruction') echo $v;}Warning: array_walk_recursive() [function.array-walk-recursive]: Unable to call funv() - function does not exist in E:\PHPnow-1.5.6\htdocs\4.php on line 12
这个我好想做到了,加个br就好了
function func($v, $k) { static $cnt=1; if($k == 'stepInstruction') { echo '方案',$cnt,':',$v,'</br>'; }}
34567 function func($v, $k) { static $cnt=1; if($k == 'stepInstruction') { echo '方案',$cnt,':',$v,'</br>'; $cnt++; }}
csdn好恶心, 上边两层楼,第一个忘记 $cnt++了。 lz问题解决了就结贴吧, 话说这种基础问题,还是多看看书。
csdn好恶心, 上边两层楼,第一个忘记 $cnt++了。 lz问题解决了就结贴吧, 话说这种基础问题,还是多看看书。
还有一个问题,就是得到数据能不能不要网页的代码啊乘坐a4b561c25d9afb9ac8dc4d70affff419531a62e845fdfca4b07c0bfa6a5307ff12路e6e38b3c62e8df885fe2e3986461aa630d36329ec37a2cc24d42c7229b69747a531a62e845fdfca4b07c0bfa6a5307ff(或e6e38b3c62e8df885fe2e3986461aa63531a62e845fdfca4b07c0bfa6a5307ff16路e6e38b3c62e8df885fe2e3986461aa63531a62e845fdfca4b07c0bfa6a5307ff,e6e38b3c62e8df885fe2e3986461aa63531a62e845fdfca4b07c0bfa6a5307ff8路e6e38b3c62e8df885fe2e3986461aa63531a62e845fdfca4b07c0bfa6a5307ff,e6e38b3c62e8df885fe2e3986461aa63531a62e845fdfca4b07c0bfa6a5307ff2路e6e38b3c62e8df885fe2e3986461aa63531a62e845fdfca4b07c0bfa6a5307ff
array_walk_recursive($ar, 'func');function func($v, $k) { if($k == 'stepInstruction') echo $v;}求个正则表达式
不是正则可以胜任的事情,干嘛非要勉为其难呢?
不是正则可以胜任的事情,干嘛非要勉为其难呢?
不是啦,我是说得到之后的数据$v,因为有网页代码存在,我希望这些代码去除掉,得到纯文字信息 噢
echo strip_tags($v);
噢
echo strip_tags($v);