PHP 从 url 中删除奇怪的反斜杠

PHP remove weird backslashes from url

我正在开发一个小的刮板来取乐,当我从某些网站抓取一些图像 url 时,它们返回时真的很奇怪。

例如:

已删除 url:

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

想要url:

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

它添加了不必要的反斜杠,因此url在您遵循它时不起作用,它会出错。

我尝试使用 stripslashes 函数,因为这似乎是它的目的,但它没有用。 url 保持不变。

(edit) 这是我用来获取 urls 的代码:

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;
    }

如果这是您期望的唯一模式,您可以使用 str_replace('\/', '/', $url) 您还可以使用 str_replace(array('\/', '\'), array('/', '\'), $url) 更多模式

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

但这真的没有必要。如果你正在输出 JSON,你应该将它发送到解析 JSON 的程序,然后 JSON 解析器会将 \/ 转换为 /