怎么实现只输出“name” “location” “address”到本地txt中

我YXY心中有你 2014-06-03 09:21:28
<?php
$url = 'http://api.map.baidu.com/place/v2/search?&query=%E9%93%B6%E8%A1%8C&location=39.915,116.404&radius=2000&output=json&ak=kvfo779F6gthGiGq4DFnOGHn';
$html = file_get_contents($url);
// $txt=file($html);
echo $html;
file_put_contents('a1.txt',$html);
?>
我现在只能输出全部的信息到本地txt中!就是不明白怎么判断输出那3个信息到本地txt中!求指导
...全文
258 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
傲雪星枫 2014-06-05
  • 打赏
  • 举报
回复
引用 8 楼 A62220231000 的回复:
[quote=引用 7 楼 xuzuning 的回复:] 你保存的不是 echo 的结果吗?
function foo(&$v) { $v = urlencode($v); }
array_walk_recursive($res, 'foo');
$t = urldecode(json_encode($res));
file_put_contents('a1.txt', json_encode($t));
说实在的,不会变通的人,是不适合做程序员的
你说过的方式我试过的了!网上其他一些避免乱码的也试过的!还是乱码了!我也刚接触PHP,所以很不多不理解!做的不好的请多见谅![/quote] 这样就可以了,上面那个多了一次json_encode。

<?php
$url = 'http://api.map.baidu.com/place/v2/search?&query=%E9%93%B6%E8%A1%8C&location=39.915,116.404&radius=2000&output=json&ak=kvfo779F6gthGiGq4DFnOGHn';
$html = file_get_contents($url);
 
$json = json_decode($html, 1);
 
$d = array('name' => '', 'location' => '', 'address' => '');
foreach($json['results'] as $t) {
  $res[] = array_intersect_key($t, $d);
}

function foo(&$v) { $v = urlencode($v); }
array_walk_recursive($res, 'foo');
$t = urldecode(json_encode($res));
file_put_contents('a1.txt', $t);
?>
我YXY心中有你 2014-06-05
  • 打赏
  • 举报
回复
引用 9 楼 fdipzone 的回复:
[quote=引用 8 楼 A62220231000 的回复:] [quote=引用 7 楼 xuzuning 的回复:] 你保存的不是 echo 的结果吗?
function foo(&$v) { $v = urlencode($v); }
array_walk_recursive($res, 'foo');
$t = urldecode(json_encode($res));
file_put_contents('a1.txt', json_encode($t));
说实在的,不会变通的人,是不适合做程序员的
你说过的方式我试过的了!网上其他一些避免乱码的也试过的!还是乱码了!我也刚接触PHP,所以很不多不理解!做的不好的请多见谅![/quote] 这样就可以了,上面那个多了一次json_encode。

<?php
$url = 'http://api.map.baidu.com/place/v2/search?&query=%E9%93%B6%E8%A1%8C&location=39.915,116.404&radius=2000&output=json&ak=kvfo779F6gthGiGq4DFnOGHn';
$html = file_get_contents($url);
 
$json = json_decode($html, 1);
 
$d = array('name' => '', 'location' => '', 'address' => '');
foreach($json['results'] as $t) {
  $res[] = array_intersect_key($t, $d);
}

function foo(&$v) { $v = urlencode($v); }
array_walk_recursive($res, 'foo');
$t = urldecode(json_encode($res));
file_put_contents('a1.txt', $t);
?>
[/quote] 谢谢了啊!代码应该没问题了,我觉得我的文件设置的编码有问题!不过还是非常感谢你!
我YXY心中有你 2014-06-04
  • 打赏
  • 举报
回复
引用 7 楼 xuzuning 的回复:
你保存的不是 echo 的结果吗?
function foo(&$v) { $v = urlencode($v); }
array_walk_recursive($res, 'foo');
$t = urldecode(json_encode($res));
file_put_contents('a1.txt', json_encode($t));
说实在的,不会变通的人,是不适合做程序员的
你说过的方式我试过的了!网上其他一些避免乱码的也试过的!还是乱码了!我也刚接触PHP,所以很不多不理解!做的不好的请多见谅!
xuzuning 2014-06-04
  • 打赏
  • 举报
回复
你保存的不是 echo 的结果吗?
function foo(&$v) { $v = urlencode($v); }
array_walk_recursive($res, 'foo');
$t = urldecode(json_encode($res));
file_put_contents('a1.txt', $t);


说实在的,不会变通的人,是不适合做程序员的
www_7di_net 2014-06-03
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
$url = 'http://api.map.baidu.com/place/v2/search?&query=%E9%93%B6%E8%A1%8C&location=39.915,116.404&radius=2000&output=json&ak=kvfo779F6gthGiGq4DFnOGHn';
$html = file_get_contents($url);

$json = json_decode($html, 1);

$d = array('name' => '', 'location' => '', 'address' => '');
foreach($json['results'] as $t) {
  $res[] = array_intersect_key($t, $d);
}
file_put_contents('a1.txt', json_encode($res));
+1
xuzuning 2014-06-03
  • 打赏
  • 举报
回复
$url = 'http://api.map.baidu.com/place/v2/search?&query=%E9%93%B6%E8%A1%8C&location=39.915,116.404&radius=2000&output=json&ak=kvfo779F6gthGiGq4DFnOGHn';
$html = file_get_contents($url);

$json = json_decode($html, 1);

$d = array('name' => '', 'location' => '', 'address' => '');
foreach($json['results'] as $t) {
  $res[] = array_intersect_key($t, $d);
}
file_put_contents('a1.txt', json_encode($res));
我YXY心中有你 2014-06-03
  • 打赏
  • 举报
回复
引用 5 楼 xuzuning 的回复:
处理一下
function foo(&$v) { $v = urlencode($v); }
array_walk_recursive($res, 'foo');
echo urldecode(json_encode($res));
现在在网页的页面能正确显示了!但是在txt中还是乱码! [{"name":"%E4%B8%AD%E5%9B%BD%E5%B7%A5%E5%95%86%E9%93%B6%E8%A1%8C%28%E5%92%8C%E5%B9%B3%E9%97%A8%E5%86%85%E6%94%AF%E8%A1%8C%29","location":{"lat":"39.90742","lng":"116.390732"},"address":"%E5%8C%97%E4%BA%AC%E5%B8%82%E8%A5%BF%E5%9F%8E%E5%8C%BA%E5%8C%97%E6%96%B0%E5%8D%8E%E8%A1%97%E4%B8%9C%E6%9D%BE%E6%A0%91%E8%83%A1%E5%90%8C%E7%94%B231%E5%8F%B7"},{"name":"%E4%B8%AD%E5%9B%BD%E5%B7%A5%E5%95%86%E9%93%B6%E8%A1%8C%28%E4%B8%9C%E4%BA%A4%E6%B0%91%E5%B7%B7%E5%82%A8%E8%93%84%E6%89%80%29","location":{"lat":"39.908091","lng":"116.413558"},"
xuzuning 2014-06-03
  • 打赏
  • 举报
回复
处理一下
function foo(&$v) { $v = urlencode($v); }
array_walk_recursive($res, 'foo');
echo urldecode(json_encode($res));
我YXY心中有你 2014-06-03
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
$url = 'http://api.map.baidu.com/place/v2/search?&query=%E9%93%B6%E8%A1%8C&location=39.915,116.404&radius=2000&output=json&ak=kvfo779F6gthGiGq4DFnOGHn';
$html = file_get_contents($url);

$json = json_decode($html, 1);

$d = array('name' => '', 'location' => '', 'address' => '');
foreach($json['results'] as $t) {
  $res[] = array_intersect_key($t, $d);
}
file_put_contents('a1.txt', json_encode($res));
大神,非常感谢你!但是为什么我输出的是一堆乱码饿了?[{"name":"\u4e2d\u56fd\u5de5\u5546\u94f6\u884c(\u548c\u5e73\u95e8\u5185\u652f\u884c)","location":{"lat":39.90742,"lng":116.390732},"address":"\u5317\u4eac\u5e02\u897f\u57ce\u533a\u5317\u65b0\u534e\u8857\u4e1c\u677e\u6811\u80e1\u540c\u753231\u53f7"},{"name":"\u4e2d\u56fd\u5de5\u5546\u94f6\u884c(\u4e1c\u4ea4\u6c11\u5df7\u50a8\u84c4\u6240)","location"。。。。。
我YXY心中有你 2014-06-03
  • 打赏
  • 举报
回复
大神,非常感谢你!但是为什么我输出的是一堆乱码饿了?[{"name":"\u4e2d\u56fd\u5de5\u5546\u94f6\u884c(\u548c\u5e73\u95e8\u5185\u652f\u884c)","location":{"lat":39.90742,"lng":116.390732},"address":"\u5317\u4eac\u5e02\u897f\u57ce\u533a\u5317\u65b0\u534e\u8857\u4e1c\u677e\u6811\u80e1\u540c\u753231\u53f7"},{"name":"\u4e2d\u56fd\u5de5\u5546\u94f6\u884c(\u4e1c\u4ea4\u6c11\u5df7\u50a8\u84c4\u6240)","location"。。。。。

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧