Удаляем символы кавычек php

Удалить кавычки из начала и конца строки в PHP

Мне нужно избавиться от » (двойных кавычек) в конце и в начале, если они существуют, но если в String есть такой символ, тогда он должен быть оставлен. Пример:

7 ответов

Если второй символ также » ‘или предпоследний тоже, то он также будет удален. Если они значительны, то обрезка падает. Это немного зависит от фактических данных. См. Ответ пользователя 783322.

Проще говоря: «trim () удалит последовательные кавычки с начала или с конца. Однако мы просто хотим удалить только самые первые и самые последние кавычки. Это означает, что это не должно быть приемлемым ответом.

Это не должно быть принятым ответом. Что если цитата является частью строки? «this is double-quote -> «» выведет this is double-quote -> что означает, что вы пропустили неотъемлемую часть строки.

У меня была аналогичная потребность и я написал функцию, которая удалит лидирующие и завершающие одиночные или двойные кавычки из строки:

/** * Remove first and end quote from a quoted string of text * * @param mixed $text */ function stripQuotes($text) < $unquoted = preg_replace('/^(\'(.*)\'|"(.*)")$/', '$2$3', $text); return $unquoted; >

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

Input text Output text -------------------------------- No quotes => No quotes "Double quoted" => Double quoted 'Single quoted' => Single quoted "One of each' => "One of each' "Multi""quotes" => Multi""quotes '"'"@";'"*&^*'' => "'"@";'"*&^*' 

trim удалит все экземпляры char с начала и конца, если он соответствует шаблону, который вы предоставляете, поэтому:

$myValue => '"Hi"""""'; $myValue=trim($myValue, '"'); 

Здесь можно удалить только первый и последний char, если они совпадают:

$output=stripslashes(trim($myValue)); // if the first char is a " then remove it if(strpos($output,'"')===0)$output=substr($output,1,(strlen($output)-1)); // if the last char is a " then remove it if(strripos($output,'"')===(strlen($output)-1))$output=substr($output,0,-1); 

Так как этот поток должен был быть убит давно, я не мог не ответить тем, что я назвал бы самым простым ответом. Я заметил, что эта тема вновь появляется на 17-м, поэтому я не чувствую себя так же плохо.:)

Использование образцов, предоставленных Стивом Чемберсом;

Input text Output text -------------------------------- No quotes => No quotes "Double quoted" => Double quoted 'Single quoted' => Single quoted "One of each' => One of each "Multi""quotes" => Multi""quotes '"'"@";'"*&^*'' => "'"@";'"*&^*' 

Это только когда-либо удаляет первую и последнюю цитату, она не повторяется, чтобы удалить дополнительный контент и не заботится о совпадении концов.

Читайте также:  vertical-align

Если вам нравится производительность по ясности, это способ:

// Remove double quotes at beginning and/or end of output $len=strlen($output); if($output[0]==='"') $iniidx=1; else $iniidx=0; if($output[$len-1]==='"') $endidx=-1; else $endidx=$len-1; if($iniidx==1 || $endidx==-1) $output=substr($output,$iniidx,$endidx); 

Комментарий помогает с ясностью. скобки в массиве, как использование в строках, возможно и требуют меньше усилий по обработке, чем эквивалентные методы, слишком плохо, что нет переменной длины или последнего индекса char

Я понимаю, что OP не спрашивал о многобайтовых строках, но это не будет работать с такими строками. Не нужно использовать Regex, но они делают это довольно просто.

Как насчет регулярного выражения

//$singleQuotedString="'Hello this 'someword' and \"somewrod\" stas SO"; //$singleQuotedString="Hello this 'someword' and \"somewrod\" stas SO'"; $singleQuotedString="'Hello this 'someword' and \"somewrod\" stas SO'"; $quotesFreeString=preg_replace('/^\'?(.*?(?=\'?$))\'?$/','$1' ,$singleQuotedString); 
Hello this 'someword' and "somewrod" stas SO 

Вам нужно использовать регулярные выражения, посмотрите: —

Или вы могли бы в этом случае использовать substr, чтобы проверить, является ли первый, а затем последний символ строки меткой кавычки, если она есть, усечь строку.

Trim может в конечном итоге удалить существенные кавычки в начале или конце строки — я поддерживаю регулярные выражения!

Проще говоря: «trim () удалит последовательные кавычки с начала или с конца. Однако мы просто хотим удалить только самые первые и самые последние кавычки.

Ещё вопросы

  • 1 Получить объекты и SelectedIndex из ListViewItem
  • 0 Как можно эмулировать нажатие клавиатуры или мыши?
  • 1 Рабочий каталог при запуске в eclipse, cmd и jar
  • 0 PHP заменить все предложение из строки
  • 1 SelectionChanged показывает старое значение
  • 1 Таймер Java не работает. Вызов нескольких таймеров одновременно
  • 0 Выполните поиск, используя фильтр, но игнорируя знаки препинания
  • 0 Ошибка «Необходимо указать поле grant_type» при получении токена Oauth2
  • 0 Я получаю «Усеченное неверное значение даты и времени:« 0000-00-00 »» даже при выключенном строгом режиме.
  • 0 Как получить значение sql AS в Laravel?
  • 0 ng-repeat для массива объектов выдает $$ hash
  • 1 Проект EAR Maven — JAR не исключается?
  • 1 выберите значение индекса из groupby на фрейме данных pandas в python
  • 1 Клавиатура Android не отображается при нажатии поля ввода в единстве?
  • 0 Magento 1.9 изменить базовый образ с phpMyAdmin
  • 1 P2P рукопожатие без центрального сервера
  • 0 переменная и ее родительская область видимости внутри нг-если
  • 1 Как стилизовать кнопку «Выбрать все» в сетке данных?
  • 0 Чтение строки из переменной для SQL-запроса
  • 1 Очень простая проблема с массивами, циклами и логическим сравнением
  • 0 Маршрутизация пользовательского интерфейса с корневым состоянием не разрешается до дочернего контроллера состояния
  • 0 Завершающее регулярное выражение со специфическим символом при первом появлении
  • 1 Добавить значения в массив в цикле
  • 0 Как мне заполнить мою форму из моих данных, сохраненных в localalstorage
  • 1 Как сопоставить элементы JAXB в CIM / RDF?
  • 0 Как работать с формами, представленными на одной HTML-странице
  • 0 Как вызвать метод, специфичный для подкласса C ++
  • 0 yii загружать элементы CRUD в другое место
  • 1 Как создать частичные классы из CodeFirst
  • 0 Актуальный URL открыть страницу перенаправления в php
  • 0 Можно ли найти все посещенные ссылки в браузере?
  • 1 Загрузка растрового изображения со слишком большой высотой в Android ImageView
  • 1 Фрагменты ConstraintLayout вырезаны в FrameLayout активности
  • 1 Как остановить службу переднего плана перед вызовом метода startForeground ()?
  • 1 Java jar-файл не может найти .dll с jna.jar
  • 0 Ошибка счетчика текстовых символов при загрузке страницы
  • 1 Шрифт C3.js tootltip
  • 1 Генерация пары ключей RSA на стороне клиента в приложении Google Web Toolkit через Google App Engine с библиотекой gwt-crypto
  • 1 Заполнить перфорированную форму в изображении, используя библиотеки Python?
  • 0 Сортировать многомерный массив по значениям
  • 1 Некоторые поля в документе могут быть пустыми, и если я пытаюсь получить результат, приложение вылетает из-за nullPointerException [duplicate]
  • 1 Android: отображение неверной даты окончания (за день до фактической даты) в Календаре Google при добавлении события с намерением
  • 1 листы Google горизонтальное выравнивание
  • 1 Визуализация времени разработки пользовательских элементов управления в пользовательском Region / RegionManager
  • 0 Как я могу читать не символы, такие как арабские слова в PHP
  • 1 Android Retrofit2 / RxJava2 / Room — Простая обработка данных
  • 0 Я что-то пропустил с этим $ http.jsonp в angularjs?
  • 1 Правильное использование IEnumerable
  • 0 Добавить класс в привязку для CodeIgniter
  • 1 Чистое разделение вида и кода с помощью Vue с использованием шаблонов
Читайте также:  Заголовок

Источник

stripslashes

stripslashes () можно использовать, если вы не вставляете эти данные в место (например, базу данных), требующее экранирования. Например, если вы просто выводите данные прямо из HTML-формы.

Parameters

Return Values

Возвращает строку с удаленными обратными косыми чертами. ( \’ становится ‘ и т. д.) Двойные обратные косые черты ( \\ ) превращаются в одиночные обратные косые черты ( \ ).

Examples

Пример # 1 stripslashes () Пример

 $str = "Is your name O\'reilly?"; // Outputs: Is your name O'reilly? echo stripslashes($str); ?>

Note:

stripslashes () не рекурсивен. Если вы хотите применить эту функцию к многомерному массиву, вам необходимо использовать рекурсивную функцию.

Пример # 2 Использование stripslashes () в массиве

 function stripslashes_deep($value) < $value = is_array($value) ? array_map('stripslashes_deep', $value) : stripslashes($value); return $value; > // Example $array = array("f\\'oo", "b\\'ar", array("fo\\'o", "b\\'ar")); $array = stripslashes_deep($array); // Output print_r($array); ?>

Выводится приведенный выше пример:

Array ( [0] => f'oo [1] => b'ar [2] => Array ( [0] => fo'o [1] => b'ar ) )

Источник

stripslashes

Замечание:

Если включена директива magic_quotes_sybase, вместо обратных слешей будут удаляться двойные одинарные кавычки.

Функцию stripslashes() можно использовать, например, если директива конфигурации magic_quotes_gpc имеет значение on (она была включена по умолчанию в версиях до PHP 5.4), и экранирование символов не требуется. Например, данные не вставляются в базу данных, а просто выводятся в браузер.

Список параметров

Возвращаемые значения

Возвращает строку с вырезанными обратными слешами. (\’ становится и т.п.) Двойные обратные слеши (\\) становятся одинарными (\).

Примеры

Пример #1 Пример использования stripslashes()

// выводит: Вас зовут O’reilly?
echo stripslashes ( $str );
?>

Замечание:

stripslashes() не рекурсивна. Если вы хотите применить ее к многомерному массиву, то вам необходимо использовать рекурсивную функцию.

Пример #2 Использование stripslashes() с массивом

function stripslashes_deep ( $value )
$value = is_array ( $value ) ?
array_map ( ‘stripslashes_deep’ , $value ) :
stripslashes ( $value );

// Пример
$array = array( «f\\’oo» , «b\\’ar» , array( «fo\\’o» , «b\\’ar» ));
$array = stripslashes_deep ( $array );

Результат выполнения данного примера:

Array ( [0] => f'oo [1] => b'ar [2] => Array ( [0] => fo'o [1] => b'ar ) )

Смотрите также

  • addslashes() — Экранирует строку с помощью слешей
  • get_magic_quotes_gpc() — Получение текущего значения настройки конфигурации magic_quotes_gpc

Источник

PHP: Как удалить эти кавычки « или экранировать?

И какие ещё есть символы такого рода, что удалить не так просто?

Оценить 2 комментария

sim3x

Denormalization

Denormalization

seredaes:
$name = «Вася«Маша»;
echo htmlentities($name, ENT_DISALLOWED);

https://yadi.sk/i/EkzjCHCJhbn5x
Вывел даже в textarea, никакого результата ваш код не принёс!

Denormalization

seredaes: еще один? Может потому что не нужно смотреть спецсимволы в браузере? И стоит попробовать запустить из консоли, так, для развлечения.

Можете пояснить как оно работает?

Вот пример из интернета:
$str ;

// выводит: A ‘quote’ is bold
echo htmlentities($str);

Я вижу, что угловые скобки заменяет на но в моём случае « никак не заменился. :/
Как я должен был понять, что всё отработало?
Консоль это жёстко. Я ожидал увидеть хотя бы как-то \u.

Denormalization

seredaes: потому что html entities автоматически преобразуются в символы. т.е &_gt; станет > в браузере.

Вам шашечки или ехать? Можно в консоли браузера смотреть что с сервера приходит, там оно чистым будет.

Источник

Оцените статью