не для начальных кавычек и для конечных кавычек
Это не мусор, это законные символы «умной цитаты», которые были переданы вам в кодировке UTF-8, но неверно прочитаны как ISO-8859-1.
Вы можете попытаться избавиться от них или попытаться разобрать их в старый добрый Latin-1, используя utf_decode, но если вы это сделаете, у вас будет приложение, которое не позволит вам печатать что-либо вне ASCII, что в этот день и возраст - довольно плохое шоу.
Лучше, если вы сможете управлять им, - чтобы все ваши страницы обслуживались как UTF-8, все ваши отправленные формы поступали как UTF-8, а все содержимое базы данных сохранялось как UTF-8. В идеале ваше приложение должно работать внутренне со всеми символами Unicode, но, к сожалению, PHP как язык не имеет собственных строк Unicode, поэтому обычно бывает, что все ваши строки также содержатся в формате UTF-8, и существует риск случайного усечения Последовательность UTF-8 и получение , если вы не хотите использовать mbstring.
$ data = pg_escape_string ($ data); // экранирует строку для вставки в базу данных
$ data = strip_tags ($ data); // удаляет теги HTML и PHP из строки
Вы не хотите делать это в качестве санитарной меры, входящей в ваше заявление. Сохраняйте все строки в виде простого текста для их обработки, затем pg_escape_string () только при выходе на запрос Postgres и htmlspecialchars () только при выходе на HTML-страницу.
В противном случае вы получите странные вещи, такие как экранирование SQL, появляющееся в переменных, которые прошли через сценарий прямо на выходную страницу, и никто не сможет использовать простой символ меньше чем.
Одна вещь, которую вы можете использовать в качестве меры по санации - это удалить все управляющие коды в строках (кроме символов новой строки, \ n, которые вы, возможно, захотите).
$data= preg_replace('/[\x00-\x09\x0B-\x19\x7F]/', '', $data);