строка — PHP удаляет странные обратные слэши из 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 просто остался прежним.

(изменить) вот код, который я использую, чтобы захватить 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;
}

1

Решение

Когда вы звоните json_encode, использовать JSON_UNESCAPED_SLASHES возможность не допустить попадания слешей.

Но это не должно быть на самом деле необходимо. Если вы выводите JSON, вы должны отправить его в программу, которая анализирует JSON, и анализатор JSON переведет \/ в /,

3

Другие решения

если это единственный шаблон, который вы ожидаете, вы можете использовать str_replace('\/', '/', $url) Вы также можете использовать str_replace(array('\/', '\\'), array('/', '\'), $url) для большего количества моделей

0

Ты можешь использовать 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

0
По вопросам рекламы [email protected]