【问题标题】:Json - removing square brackets and identifying a certain stringJson - 删除方括号并识别某个字符串
【发布时间】:2011-03-26 14:20:22
【问题描述】:

我需要一些方法 -

通过 curl 保存或解码 json 文本文件时删除方括号

和或删除“created”和“modified”字符串,以便在使用 curl 保存时只剩下 url 字符串。

[{  
"created":"10:30pm 5 August 2010",  
"url":"\/Images\/Temp\/7553-12a40d5af00-12a45a200-12acd2ff1.0.png",  
"modified":"12:00am 7 August 2010"  
}  
]  

有没有一种简单的方法来识别 3 个完整字符串中的每一个?

我要做的是最终将脚本中的 url 与我的服务器 url 匹配
谢谢

好的,使用 Alan Storm 的方法,我需要能够从结果中删除 "" 和 string(**),以便我可以将 http://somesite.com 添加到输出的 url

这是结果

string(46) "/Images/temp/7553-12a4b226700-12a4b88690e.0.png"  
string(58) "/Images/temp/7553-12a488f3900-12a4c6bfe00-12a49861587.0.png"   
string(58) "/Images/temp/7553-12a488f3900-12a4eff2c00-12a4986463c.0.png"   
string(58) "/Images/temp/7553-12a488f3900-12a51925a00-12a49877738.0.png" 

理想情况下,这就是我想要的结果

http://somesite.com//Images/temp/7553-12a4b226700-12a4b88690e.0.png

这是我现在使用的代码

            $txt_file = $images_dir.'iso'.$i.'.txt';
            if(file_exists($txt_file)==false)
            $img = $error_img;
        else
        {
            $handle = fopen($txt_file, 'r');
            $obj = fread($handle,filesize($txt_file));
            $array_of_objects = json_decode($obj);
            $object = $array_of_objects[0];
            var_dump($object->url); 
}

感谢您到目前为止的帮助

【问题讨论】:

    标签: php scripting curl json


    【解决方案1】:

    PHP 带有用于解码 JSON 字符串的内置函数。下面的代码示例应该让您了解如何获取所需的数据。

    <?php
    $string = '[{  
    "created":"10:30pm 5 August 2010",  
    "url":"\/Images\/Temp\/7553-12a40d5af00-12a45a200-12acd2ff1.0.png",  
    "modified":"12:00am 7 August 2010"  
    }  
    ]';
    
    $array_of_objects = json_decode($string);
    $object = $array_of_objects[0];
    
    var_dump($object->created);
    var_dump($object->url); 
    var_dump($object->modified);    
    

    【讨论】:

    • 谢谢 - 这给了我两种不同的方法来解决这个问题
    • 已编辑我的原始帖子以显示此方法发生的情况
    【解决方案2】:

    假设您需要 PHP 代码,并且该响应位于名为 $response 的变量中:

    $obj = json_decode($response);
    $url = $obj[0]->url;
    

    已编辑以更正之前的错误代码(由 Alan 指出)

    【讨论】:

    • 谢谢 - 我会试一试。
    • 该代码行不通。 PHP 不允许函数调用上的数组访问 ([]),我很确定 stdClass 对象的数组访问也是不允许的,或者至少不鼓励。
    • 谢谢艾伦,这只是一个快速的回答,它解释了这个想法,而不是工作代码。我更新并测试了代码。
    猜你喜欢
    • 1970-01-01
    • 2011-11-03
    • 2017-10-31
    • 1970-01-01
    • 1970-01-01
    • 2012-03-16
    • 1970-01-01
    相关资源
    最近更新 更多