PHP从url中删除奇怪的反斜杠
我正在用一个小的刮板来取乐,当我从某些网站上抓取一些图片URL时,它们会很奇怪 例如: 已删除的url:PHP从url中删除奇怪的反斜杠,php,string,strip,backslash,Php,String,Strip,Backslash,我正在用一个小的刮板来取乐,当我从某些网站上抓取一些图片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/thum
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保持不变
(编辑)以下是我用来抓取URL的代码:
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\u replace('\/','/',$url)
您也可以使用str\u replace(array('\/','\\')、array('/','\')、$url)
调用json\u encode
时,使用json\u UNESCAPED\u SLASHES
选项来防止它逃脱斜杠
但这并不是必须的。如果您正在输出JSON,您应该将其发送到解析JSON的程序,JSON解析器将把
\/
转换为/
显示正在进行抓取的代码。听起来您正在拾取JSON字符串中的URL。不要在注释中发布代码,更新问题。@Barmar,我没有从JSON获取URL,但我将数据输出为JSON,这就是问题所在吗?是的,JSON_encode
默认情况下会转义斜杠。您可以使用JSON\u UNESCAPED\u斜杠
选项禁用它。看,这种方法在这种情况下不起作用。