У меня есть этот код:
$profile_image_url = str_replace(" ", "%20", 'https://www.example.com/images/cropped (1).jpg');
$output .= "style='background:url('https://www.example.com/images/" . $profile_image_url . "')no-repeat;'";
На выходе получается:
style = "background:url(" https: www.example.com images cropped (1).jpg')no-repeat;
Как я могу исправить эту строку кода, чтобы предотвратить удаление косой черты URL? Спасибо!
$output .= "style='background:url('https://www.example.com/images/" . $profile_image_url . "')no-repeat;'";
Я пытался экранировать самые внутренние одинарные кавычки с помощью обратной косой черты, но это не сработало -->
$output .= "style='background:url(\'https://www.example.com/images/" . $profile_image_url . "\')no-repeat;'";
это повторилось в конце "echo $ output;"
между ними должно быть что-то среднее, потому что одинарная кавычка здесь style='back меняется на двойную кавычку. Посмотрите на эту скрипку: 3v4l.org/b9e4C Показанный здесь код работает так, как вы и ожидали.
Только 2 строки в верхней части вашего вопроса дают правильный результат.






На самом деле это не удаление косой черты. Вы увидите их, если будете просматривать исходный код страницы, а не использовать проверку.
Поместите значение атрибута стиля в двойные кавычки.
$output .= "style=\"background:url('https://www.example.com/images/" . $profile_image_url . "')no-repeat;\"";
Или поместите URL-адрес в двойные кавычки.
$output .= "style='background:url(\"https://www.example.com/images/" . $profile_image_url . "\")no-repeat;'";
Неэкранированные одинарные кавычки внутри одинарных кавычек невозможны. Вторая обнаруженная одинарная кавычка закроет первую. И бегство от них не работает в этом контексте, как вы видели.
$output? И у вас в любом случае будет проблема с одинарными кавычками в js:style='background:url('https..второй'нужно будет экранировать. Но все зависит от того, как вы его куда выведете.