删除打印的 JSON 中奇怪的反斜杠

问题描述 投票:0回答:2

我正在开发一个小型刮刀来娱乐,当我从某些网站抓取一些图像网址时,它们返回的结果非常奇怪。

例如:

抓取的网址:

https:\/\/cdn1.vox-cdn.com\/thumbor\/zN9XawbQJgFPkuAcA2JEGgqApm8=\/cdn0.vox-cdn.com\/uploads\/chorus_asset\/file\/3700712\/tomorrowland54fdf04f23efb_2040.0.jpg

所需网址:

https://cdn1.vox-cdn.com/thumbor/zN9XawbQJgFPkuAcA2JEGgqApm8=/cdn0.vox-cdn.com/uploads/chorus_asset/file/3700712/tomorrowland54fdf04f23efb_2040.0.jpg

它添加了不必要的反斜杠,因此当你跟随它时,url不起作用,它会给出错误。

我尝试使用 stripslashes 函数,因为看起来这就是它的目的,但它不起作用。网址保持不变。

(编辑)这是我用来获取网址的代码:

function GetImages($page_dom) {
    $found_links = [];

    $images = $page_dom->getElementsByTagName('img');
    foreach ($images as $image) {
        $img_src = $image->getAttribute('src');
        $found_links[] = $img_src;
    }

    return $found_links;
}
php json string strip backslash
2个回答
10
投票

当您调用

json_encode
时,请使用
JSON_UNESCAPED_SLASHES
选项来防止它转义斜杠。

但这其实没有必要。如果您要输出 JSON,则应该将其发送到解析 JSON 的程序,JSON 解析器会将

\/
转换为
/


0
投票

如果这是您期望的唯一模式,您可以使用

str_replace('\/', '/', $url)
您还可以使用
str_replace(array('\/', '\\'), array('/', '\'), $url)
获得更多模式

© www.soinside.com 2019 - 2024. All rights reserved.