【问题标题】:parse a url response(serialized data) to php array将 url 响应(序列化数据)解析为 php 数组
【发布时间】:2017-07-18 15:49:13
【问题描述】:

我想要实现的是反序列化我从以下链接获得的所有数据并将其转换为 php 数组

http://ip-api.com/php

我知道我可以使用 php 的 unserialize() 函数并传递序列化的字符串来转换它。 如何将上述链接的响应转换为 php 数组?

谢谢

【问题讨论】:

    标签: php serialization


    【解决方案1】:

    我一般使用 curl 从外部链接获取内容
    执行以下操作

    $c = curl_init();
    curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($c, CURLOPT_URL, 'http://ip-api.com/php');
    $contents = curl_exec($c);
    curl_close($c);
    print_r(unserialize($contents));
    

    您的结果数组将如下所示

    Array ( [query] => 43.231.208.107 [region] => [timezone] => Asia/Kathmandu [org] => ClassicTech Pvt. [as] => AS55915 Classic Tech Pvt. Ltd. [city] = > Kathmandu (Koteshwor) [zip] => [isp] => ClassicTech Pvt. [status] => success [lat] => 27.684499740601 [lon] => 85.34839630127 [country] => Nepal [countryCode] => NP [regionName ] => 中部地区)

    如果你想清理代码,你也可以创建一个函数并传递 url。

    【讨论】:

    • 它会在本地主机上运行还是我必须在实时服务器上上传脚本才能运行?我在本地服务器上没有得到任何响应。得到空白页,没有别的
    • 问题出在curl_close($c); 我删除了这一行,现在它可以正常工作了。谢谢老兄
    【解决方案2】:

    您也可以使用file_get_contents() 将其存档。

    $result = file_get_contents('http://ip-api.com/php');
    var_dump(unserialize($result));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-11
      • 1970-01-01
      • 2015-01-09
      • 2016-10-20
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      • 2017-08-21
      相关资源
      最近更新 更多