全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
12
返回列表 发新帖
楼主: 玉藻前

PHP求助!

[复制链接]
 楼主| 发表于 2018-12-23 22:21:41 | 显示全部楼层
wwww961h 发表于 2018-12-23 22:10
这是json数据,我帮你写了下

感谢大佬!我试了
$a=$rs;
成功变的不同了!(虽然出现了=> Array这样奇怪的字符),不过已经知道大概方向了,之后百度就好了
发表于 2018-12-23 22:24:07 | 显示全部楼层
变成了数组,就可以$b=json_decode($a,true);ID=$b['id'] 小写的['id'] id是数组下标,
 楼主| 发表于 2018-12-23 22:28:00 | 显示全部楼层
wwww961h 发表于 2018-12-23 22:17
你要想办法把string()"和最后一个“去掉,然后就是正规的JSON数据了,就可以用json_decode搞定了,具体怎 ...

好的,我去百度看下
 楼主| 发表于 2018-12-23 23:49:53 | 显示全部楼层
wwww961h 发表于 2018-12-23 22:24
变成了数组,就可以$b=json_decode($a,true);ID=$b['id'] 小写的['id'] id是数组下标,

大佬,我现在去掉了那些,但是用了
print_r(json_decode($rs,true));
之后,后面会多个1是怎么回事啊?

{"battle":[{"id":"4988318832","buser":"muddyriddl","intype":"AP deficiency","type":"JQ"},
{"id":"11423615469","buser":"17750973387","intype":"AP deficiency","type":"QP"}]}1
这样。如果删掉那一句就不会有最后的1...

function get_content($url, $cookie) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); //读取cookie
    $rs = curl_exec($ch); //执行cURL抓取页面内容
    curl_close($ch);
    print_r(json_decode($rs,true));
 楼主| 发表于 2018-12-24 00:02:02 | 显示全部楼层
wwww961h 发表于 2018-12-23 22:24
变成了数组,就可以$b=json_decode($a,true);ID=$b['id'] 小写的['id'] id是数组下标,

json_decode换成json_encode,结果后面多了个true!
什么鬼!
发表于 2018-12-24 07:53:52 | 显示全部楼层
又一个爬虫大佬
 楼主| 发表于 2018-12-24 13:05:31 来自手机 | 显示全部楼层
cklfish 发表于 2018-12-24 07:53
又一个爬虫大佬

并不是哈哈哈
发表于 2018-12-24 13:11:46 | 显示全部楼层
// 将xml转换为数组
    public function xmlToArray($str)
    {
//        var_dump($str);
        $xml       = $str;//XML文件
        $objectxml = simplexml_load_string($xml);//将文件转换成 对象
        $xmljson   = json_encode($objectxml);//将对象转换个JSON
        $xmlarray  = json_decode($xmljson, true);//将json转换成数组
        return $xmlarray;
    }



送你一个我常用的函数吧~
 楼主| 发表于 2018-12-24 13:41:02 来自手机 | 显示全部楼层
ai0by 发表于 2018-12-24 13:11
// 将xml转换为数组
    public function xmlToArray($str)
    {

报错了…删了public就好了(但是内容好像没有变啊)
我想弄成
if(intype=="0"){ intype="等待执行"; }
if(intype=="AP is less than 40"){ intype="AP上限不足40"; }
这样的替换应该怎么写?
发表于 2018-12-24 14:04:27 | 显示全部楼层
public报错是因未我这个函数之前写在class里面的。。。
至于你说的这个问题,函数返回值是一个数组,所以当你执行 xmlToArray($successstring); 时应该把这个函数的结果赋值给一个变量,例如:$res = xmlToArray($successstring);
然后判断时使用
if($res['intype']=="0"){ intype="等待执行"; }
if($res['intype']=="AP is less than 40"){ intype="AP上限不足40"; }
这样写即可~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2026-4-21 22:14 , Processed in 0.061146 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表