PHP从网址

时间:2015-05-19 00:46:18

标签: php string strip backslash

我正在制作一个小刮刀以获得乐趣,当我从某些网站上抓取一些图片网址时,他们回来的确非常奇怪。

例如:

抓取网址:

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

3 个答案:

答案 0 :(得分:3)

当您致电while ($rows=mysqli_fetch_assoc($result)) { echo "<a href='/link_to_where_you_want_to_go'>" . $rows['title'] . "</a>" . $br . $br; } 时,请使用json_encode选项阻止其转义斜杠。

但这不应该是必要的。如果您要输出JSON,则应将其发送到解析JSON的程序,JSON解析器会将JSON_UNESCAPED_SLASHES转换为\/

答案 1 :(得分:0)

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

答案 2 :(得分:-1)

你可以使用str_replace并且你需要逃避反斜杠,即:

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

echo str_replace("\\/", "/", $url);

输出:

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

演示:

http://ideone.com/45J5Vd