Intereting Posts
Использование PHP для удаления выбранного элемента из раскрывающегося списка, среди прочих Неустранимая ошибка: допустимый размер памяти Отправка данных с сервера на клиент? Ошибка API-интерфейса Google Translator Toolkit («Multipart должен иметь часть Atom и медиа») Как удалить элемент html и его содержимое с помощью RegEx Doctrine querybuilder DATE_FORMAT не работает Как я могу поместить свою форму в другую форму и использовать одну кнопку отправки? Разница между вызовами метода $ model-> relation (); и $ model-> отношение; Активационный завиток на EasyPHP on localhost redirect работает над ошибкой hostgator Невозможно изменить информацию заголовка (php) Изменение часового пояса в PHP Перенаправление на новую страницу с данными POST (PHP / Zend) Как сделать файлы загрузки Opera похожими на другие браузеры? простая оценка php Dollar $ в строковых вопросах Загрузка больших файлов на FTP с помощью PHP

Ускоренный апостроф в значении ассоциативного массива

У меня есть ассоциативный массив, который динамически создается из таблицы MySQL так:

array(['p.id'] => 3, ['p.fname'] => 'Bill', ['p.lname'] => 'O\'Reilly') 

Это большой массив и был построен таким образом по причинам, которые слишком длинны, чтобы войти сюда. Проблема, как вы можете видеть, заключается в том, что когда мы пытаемся получить доступ к значению ['p.lname'], мы получаем «O \»

У кого-нибудь есть идеи о том, как обойти это без изменения способа построения массива? В настоящее время я снимаю косые черты и внутренние апострофы, но предпочитаю оставлять апострофы на месте и просто удалять косые черты.

Это осложняется тем, что выход переходит в форму, введенную так:

 $field = "<input type='text' name='$input_unique_id' style='width:$width;' value='$array_value' />"; 

    стрижка

    Это правда до сих пор.

    Это осложняется тем, что выход переходит в форму ввода

    И это другая проблема: вы используете одинарные кавычки для атрибутов элемента HTML, поэтому вы не можете использовать их в значении атрибута, подобном этому *. Значения атрибутов всегда должны быть экранированы с помощью htmlspecialchars (в этом случае вам необходимо установить флаг ENT_QUOTES )

    *) ваш текущий HTML (с применяемыми stripslashes ) выглядит следующим образом:

     <input value='O'Reilly'> 

    Часть Reilly' недействительна и, таким образом, игнорируется, это оставляет value='O'

    Вам нужно пройти через каждый элемент массива и разбить черты как таковые:

     foreach ($arr as $key => $value) { $arr[$key] = stripslashes($value); }