Подтвердить что ты не робот

Поле ввода, содержащее значение двойных кавычек

В моем проекте php у меня есть значение, связанное со специальными charectors типа "," и т.д. ( "5 дюймов", "3,5 дюйма" и т.д.), но оно не отображается в текстовом поле. возможно ли отобразить это значение в текстовом поле? Помогает ли мне кто-нибудь...

4b9b3361

Ответ 1

Используйте htmlentities:

<input value="<?php echo htmlentities($value);?>">

Ответ 2

Я полагаю, что ваше "текстовое поле" представляет собой элемент HTML <input>?

Если это так, вы показываете его, используя что-то вроде этого:

echo '<input name="..." value="' . $yourValue . '" />';

Если это так, вам нужно избежать HTML, содержащегося в вашей переменной, с htmlspecialchars:

echo '<input name="..." value="' . htmlspecialchars($yourValue) . '" />';

Обратите внимание, что вам может потребоваться добавить несколько параметров, особенно для указания используемой вами кодировки.


Таким образом, учитывая $yourValue, был инициализирован следующим образом:

$yourValue = '5 " inches';

Вы получите из этого сгенерированного HTML:

<input name="..." value="5 " inches" />

К тому, что работает намного лучше:

<input name="..." value="5 &quot; inches" />

Ответ 3

Для UTF-8 я пошел за htmlspecialchars($value, ENT_QUOTES, "UTF-8"), который сделал трюк.

источник стека

Ответ 4

При использовании кодировки UTF-8 я использую код ниже, чтобы получить Iñtërnâtiônàlizætiøn И двойные (или одиночные) цитаты справа:

<input type="text" name="title" value="<?php echo htmlentities(stripslashes(utf8_decode($title))); ?>" />

ps: это полезно после того, как кто-то отправил форму, но когда вход не подтвержден.

Ответ 5

Попробуйте это

 echo '<input name="..." value="' . htmlspecialchars(stripslashes($yourValue)) . '" />';

или

<input name="..." value="<?php echo htmlspecialchars(stripslashes($value)); ?>">

Удачи;)

Ответ 6

Это немного устарело, но я нашел его, поэтому я решил внести свой вклад в то, что узнал.

Я нашел, если у вас есть двойные кавычки в переменной в javascript (из AJAX/database any), и вы хотите поместить ее в поле - если вы создадите целое поле/форму html, а затем замените это на div используя innerHTML, двойные кавычки в значении вызовут проблемы. Я делал это, и я не мог найти способ обойти его, избегая также.

Вы должны создать html с полем и сначала поменять его, а затем сделать document.getElementById('myfieldid'). value = thevalue; вместо этого он отлично работает.

Ответ 7

Personnaly Я использую этот трюк:

$s = str_replace("& amp ;", "&", (htmlentities(stripslashes($s), ENT_QUOTES, 'UTF-8')));

Ответ 8

Мне нужно было применить htmlspecialcars() для запроса массива результатов. Я нашел полезное решение здесь (см. Комментарий sean).

//create a cleaning function
function _clean(&$value) {
  $value = htmlspecialchars($value);
  //$value = htmlspecialchars($value, ENT_QUOTES);//alternative
}

//fetch the data from DB somehow (sqlQ is a custom function)
$q = "...";
$r = $d->sqlQ($q);
$row = mysqli_fetch_array($r,MYSQLI_ASSOC);

//...call the function recursively (not always necessary) to the resultset row
array_walk_recursive($row, '_clean');

Это делает немного ненужную работу, если вы извлекаете только несколько текстовых столбцов, но по крайней мере вам не нужно писать функцию htmlspecialchars() в HTML-форму несколько раз.