поле ввода, отображающее URL с кавычками

Я должен хранить некоторые URL-адреса Википедии в базе данных MariaDB.

Бывает, что некоторые URL содержат кавычки, например:

https://en.wikipedia.org/wiki/%22Heroes%22

поэтому я использую urlencode() хранить их как "en.wikipedia.org%2Fwiki%2F%22Heroes%22",

Если я urldecode () URL, чтобы показать его внутри <input type="text"> поле без всех% (они пугают неквалифицированных пользователей), кавычки разбивают input значение.

Я нашел этот обходной путь, чтобы показать результат более удобным способом:

$url = 'en.wikipedia.org%2Fwiki%2F%22Heroes%22'; // it comes in this way from the DB
$tmp = str_replace('%22','&quot;', $url);
$url_input = urldecode($tmp);
echo "<input type=\"text\" value=\"$url_input\" />";

Значение $url_input работает плавно, как <a href якорь, и запрос, поступающий из формы, затем фильтруется FILTER_SANITIZE_URL а также urlencode() хранить его в БД.

Есть лучший способ сделать это?

1

Решение

Просто используйте htmlspecialchars () вместо str_replace ()

$url = 'en.wikipedia.org%2Fwiki%2F%22Heroes%22'; // it comes in this way from the DB
//$tmp = str_replace('%22','&quot;', $url);
$url_input = htmlspecialchars(urldecode($url));
echo "<input type=\"text\" value=\"$url_input\" />";

Я думаю, что это будет работать лучше, чем это

1

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

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector