проблема urlencode/urldecode

Я выбираю данные из базы данных MySql и делаю следующее

echo "<input type=\"text\" name=\"distadd1\" id=\"distadd1\" class=\"textbox\" value=".  urlencode($row['ADD1']). " >";

однако значение отображается следующим образом Department+of+Planning + % 26+Development.

как я удаляю + и %26

1
задан hakre 25 December 2012 в 00:26
поделиться

2 ответа

Кодировка URL отличается от того, что вы хотите сделать, похоже. Попробуйте изменить кодировку URL на htmlentities, что избавит вас от '+' и &26;, но при этом защитит вас от XSS / инъекции скриптов на ваши веб-страницы.

Example #1 A htmlentities() example
<?php
$str = "A 'quote' is <b>bold</b>";

// Outputs: A 'quote' is &lt;b&gt;bold&lt;/b&gt;
echo htmlentities($str);

// Outputs: A &#039;quote&#039; is &lt;b&gt;bold&lt;/b&gt;
echo htmlentities($str, ENT_QUOTES);
?>

Из Руководства по PHP

2
ответ дан 2 September 2019 в 23:07
поделиться

Не добавляйте эти символы в первую очередь. Функция urlencode (), как следует из названия, используется для генерации URL-адресов. Вероятно, вы захотите использовать htmlspecialchars ().

Я пробовал htmlentities, но это просто возвращает первое слово строки.

Ваш HTML недействителен. Вам нужно использовать кавычки, чтобы ваши атрибуты могли содержать пробелы. Сравните:

<input name=user value=foo bar id=foo>
<input name="user" value="foo bar" id="foo">
0
ответ дан 2 September 2019 в 23:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: