Одинарные кавычки внутри Одинарные кавычки, удаляющие косые черты - PullRequest
0 голосов
/ 06 июня 2019

У меня есть этот код:

$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;'";

1 Ответ

3 голосов
/ 06 июня 2019

Это на самом деле не удаляет косые черты.Вы увидите их, если будете просматривать исходный код страницы, а не использовать inspect.

Поместите значение атрибута стиля в двойные кавычки.

$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;'";

Неэкранированные одинарные кавычки внутри одинарных кавычек невозможны.Вторая найденная одинарная кавычка закроет первую.И, как вы видели, выход из них не работает в этом контексте.

...