убрать все спецсимволы php
Удалить все спецсимволы из строчки
В строчке есть изображения из символов, символов море. Вопрос в том, как их сразу все удалить разом, не перечисляя каждый символ по отдельности. То есть оставить в строчке только буквы,цифры,запятую,точку, двоеточие, точку с запятой, вопросительный и восклицательный знак.
Добавлено через 1 час 36 минут
Через preg_replace
Добавлено через 1 час 50 минут
Как оставить данные символы?
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Нужно удалить все строчки, которые удовлетворяют условию заданой строчки
нужно удалить все строчки которые удовлетворяют условию заданой строчки, а то написал находит.
Удалить все спецсимволы из строки
Здравствуйте, подскажите, пожалуйста как удалить все спецсимволы из строки?
Как удалить все спецсимволы из строки?
Например, есть строка «\n\t\rText\t\n». Как удалить все спецсимволы и оставить только слово Text?
Как удалить все строчки в TTable?
По идее, должна быть какая-то процедура для этого? Индусские варианты вроде With.
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Удалить из строчки S1 длиной до 40 символов все слова
Помогите пжл с решением задачи: Удалить из строчки S1 длиной до 40 символов все слова.
Удалить из строчки все слова, являющиеся десятичными числами
Помогите пожалуйста. Дана строка символов, состоящая из прописных и строчных латинских букв.
Удалить спецсимволы
Здравствуйте, нужно удалить спецсимволы, удаляю регуляркой, которая заменяет отличные от.
Php, удалить строки содержащие спецсимволы
Есть txt файлы разного размера. Нужно удалить строки, содержащие значения ‘,%,$,@ В файле.
htmlspecialchars
(PHP 4, PHP 5, PHP 7, PHP 8)
htmlspecialchars — Преобразует специальные символы в HTML-сущности
Описание
Список параметров
Конвертируемая строка ( string ).
Необязательный аргумент, определяющий кодировку, используемую при конвертации символов.
Если не указан, то значение по умолчанию для encoding зависит от конфигурационной опции default_charset.
Хотя этот аргумент является технически необязательным, настоятельно рекомендуется указать правильное значение для вашего кода, опция конфигурации default_charset может быть задана неверно для входных данных.
Поддерживаются следующие кодировки:
Кодировка | Псевдонимы | Описание |
---|---|---|
ISO-8859-1 | ISO8859-1 | Западно-европейская Latin-1. |
ISO-8859-5 | ISO8859-5 | Редко используемая кириллическая кодировка (Latin/Cyrillic). |
ISO-8859-15 | ISO8859-15 | Западно-европейская Latin-9. Добавляет знак евро, французские и финские буквы к кодировке Latin-1 (ISO-8859-1). |
UTF-8 | 8-битная Unicode, совместимая с ASCII. | |
cp866 | ibm866, 866 | Кириллическая кодировка, применяемая в DOS. |
cp1251 | Windows-1251, win-1251, 1251 | Кириллическая кодировка, применяемая в Windows. |
cp1252 | Windows-1252, 1252 | Западно-европейская кодировка, применяемая в Windows. |
KOI8-R | koi8-ru, koi8r | Русская кодировка. |
BIG5 | 950 | Традиционный китайский, применяется в основном на Тайване. |
GB2312 | 936 | Упрощённый китайский, стандартная национальная кодировка. |
BIG5-HKSCS | Расширенная Big5, применяемая в Гонконге. | |
Shift_JIS | SJIS, SJIS-win, cp932, 932 | Японская кодировка. |
EUC-JP | EUCJP, eucJP-win | Японская кодировка. |
MacRoman | Кодировка, используемая в Mac OS. | |
» | Пустая строка активирует режим определения кодировки из файла скрипта (Zend multibyte), default_charset и текущей локали (смотрите nl_langinfo() и setlocale() ) в указанном порядке. Не рекомендуется к использованию. |
Замечание: Остальные кодировки не поддерживаются, вместо них будет применена кодировка по умолчанию и сгенерировано предупреждение.
Если параметр double_encode выключен, то PHP не будет преобразовывать существующие html-сущности. По умолчанию преобразуется все без ограничений.
Возвращаемые значения
Преобразованная строка ( string ).
PHP: как удалить все непечатаемые символы в строке?
Я полагаю, что мне нужно удалить символы 0-31 и 127,
есть ли функция или часть кода, чтобы сделать это эффективно.
16 ответов
7 бит ASCII?
если ваша Тардис только что приземлилась в 1963 году, и вы просто хотите 7-битные печатные символы ASCII, вы можете вырвать все из 0-31 и 127-255 с помощью этого:
он соответствует чему-либо в диапазоне 0-31, 127-255 и удаляет его.
8 бит расширенный ASCII?
Ах, добро пожаловать в 21 век. Если у вас есть строка в кодировке UTF-8, то /u модификатор может использоваться в регулярном выражении
это просто удаляет 0-31 и 127. Это работает в ASCII и UTF-8, потому что оба разделяют тот же диапазон набора управления (как отмечено mgutt ниже). Строго говоря, это будет работать без /u модификатор. Но она облегчает жизнь, если вы хотите удалить другие символы.
если вы имеете дело с Unicode, есть потенциально много непечатающих элементов, но давайте рассмотрим простой один: ПРОСТРАНСТВО БЕЗ ПЕРЕРЫВА (U+00A0)
добавление: как насчет str_replace?
preg_replace довольно эффективен, но если вы делаете эту операцию много, вы можете создать массив символов, которые хотите удалить, и использовать str_replace, как отмечено mgutt ниже, например
интуитивно кажется, что это будет быстро, но это не всегда так, вы должны обязательно проверить, если это спасет вас что-нибудь. Я сделал несколько тестов по различным длинам строк с помощью случайные данные, и этот шаблон появился с использованием php 7.0.12
сами тайминги предназначены для 10000 итераций, но что более интересно, это относительные различия. До 512 символов, я видел еще всегда выигрывают. В диапазоне 1-8kb str_replace имел маргинальное ребро.
Я думал, что это интересный результат, так это здесь. главное не принять этот результат и использовать его, чтобы решить, какой метод использовать, но для сравнения с ваши собственные данные, а затем решить.
многие другие ответы здесь не учитывают символы юникода (например, öäüßîîûηыეமிᚉ ⠛ ). В этом случае вы можете использовать следующее:
есть странный класс символов в диапазоне \x80-\x9F (чуть выше 7-битного диапазона ASCII символов), которые технически управляют символами, но со временем были неправильно использованы для печати символов. Если у вас нет никаких проблем с этим, то вы можете использовать:
если вы хотите также ленточный канал, возврат каретки, вкладки, неразрывные пробелы и мягкие дефисы, вы можете использовать:
обратите внимание, что вы должны используйте одинарные кавычки для приведенных выше примеров.
если вы хотите удалить все, кроме основных символов ASCII для печати (все символы примера выше будут удалены), вы можете использовать:
вы можете использовать классы символов
начиная с PHP 5.2, у нас также есть доступ к filter_var, о котором я не видел никаких упоминаний, поэтому думал, что выброшу его там. Чтобы использовать filter_var для удаления непечатаемых символов 127, вы можете сделать:
фильтр ASCII символов ниже 32
фильтр ASCII символов выше 127
вы также можете html-кодировать низкие символы (новая строка, вкладка и т. д.) во время зачистки высокий:
есть также варианты для зачистки HTML, дезинфекции электронной почты и URL-адресов и т. д. Таким образом, много вариантов для дезинфекции (удаление данных) и даже проверки (возврат false, если он недействителен, а не молча зачистки).
однако по-прежнему существует проблема, что FILTER_FLAG_STRIP_LOW будет удалять новую строку и возврат каретки, которые для textarea являются полностью допустимыми символами. поэтому некоторые ответы регулярных выражений, я думаю, все еще необходимы время от времени, например, после просмотра этого потока, я планирую сделать это для textarea:
Это кажется более читаемым, чем ряд регулярных выражений, которые были удалены числовой диапазон.
PHP: Как удалить все непечатаемые символы в строке?
Мне кажется, мне нужно удалить символы 0-31 и 127,
Есть ли функция или часть кода, чтобы сделать это эффективно.
7 бит ASCII?
Если ваш Тардис просто приземлился в 1963 году, и вам просто нужны 7-битные печатные символы ASCII, вы можете вырвать все из 0-31 и 127-255 с помощью этого:
Он соответствует любому в диапазоне 0-31, 127-255 и удаляет его.
8-разрядный расширенный ASCII?
Вы попали в машину с горячей водой, и вы вернулись в восьмидесятые годы. Если у вас есть форма 8-битного ASCII, вы можете сохранить символы в диапазоне 128-255. Легкая настройка – просто найдите 0-31 и 127
Ах, добро пожаловать в 21-й век. Если у вас есть кодированная строка UTF-8, то модификатор /u может использоваться в регулярном выражении
Добавление: Как насчет str_replace?
preg_replace довольно эффективен, но если вы много делаете эту операцию, вы можете создать массив символов, которые хотите удалить, и использовать str_replace, как указано ниже в mgutt, например
Интуитивно это похоже на то, что это будет быстро, но это не всегда так, вы должны определенно проверить, не спасет ли он вас. Я сделал несколько тестов по длинным строкам со случайными данными, и эта картина возникла с использованием php 7.0.12
Сами тайминги рассчитаны на 10000 итераций, но более интересными являются относительные различия. До 512 символов, я всегда видел preg_replace. В диапазоне 1-8kb у str_replace был крайний край.
Я думал, что это интересный результат, так что включите его здесь. Важно не принимать этот результат и использовать его для определения того, какой метод использовать, а для сравнения с вашими собственными данными, а затем решить.
Многие другие ответы здесь не учитывают символы Юникода (например, öäüßйȝîûηы ე மி ᚉ ⠛). В этом случае вы можете использовать следующее:
Есть странный класс символов в диапазоне \x80-\x9F (чуть выше 7-битного диапазона символов ASCII), которые являются технически управляющими символами, но со временем были неправильно использованы для печатных символов. Если у вас нет проблем с этим, вы можете использовать:
Если вы хотите также разбить линии, возврат каретки, вкладки, неразрывные пробелы и мягкие дефисы, вы можете использовать:
Обратите внимание, что для приведенных выше примеров вы должны использовать одинарные кавычки.
Если вы хотите удалить все, кроме основных печатных символов ASCII (все символы вышеприведенных символов будут удалены), вы можете использовать:
вы можете использовать классы символов
Начиная с PHP 5.2, у нас также есть доступ к filter_var, в котором я не видел упоминания о том, что я бы выбрал его там. Чтобы использовать filter_var для удаления символов, не подлежащих печати 127, вы можете:
Фильтровать символы ASCII ниже 32
Фильтровать символы ASCII выше 127
Вы также можете html-кодировать нижние символы (новая строка, вкладка и т. Д.) При высокой степени сжатия:
Существуют также варианты удаления HTML, дезинфекции сообщений электронной почты и URL-адресов и т. Д. Таким образом, множество параметров для дезинфекции (вычеркивание данных) и даже проверка (возврат false, если не действительный, а не молчащий отрыв).
Тем не менее, по-прежнему существует проблема, что FILTER_FLAG_STRIP_LOW будет лишать строки новой строки и возврата каретки, которые для текстового поля являются полностью допустимыми символами … поэтому некоторые из ответов Regex, по-моему, по-прежнему необходимы порой, например, после просмотра этого thread, я планирую сделать это для textareas:
Это кажется более читаемым, чем ряд регулярных выражений, разделенных цифровым диапазоном.
Все решения работают частично, и даже ниже, вероятно, не распространяется на все случаи. Моя проблема заключалась в попытке вставить строку в таблицу utf8 mysql. Строка (и ее байты) соответствовала utf8, но имела несколько плохих последовательностей. Я предполагаю, что большинство из них были контролем или форматированием.
Для дальнейшего усугубления проблемы стоит таблица против сервера и соединения или рендеринга контента, о чем здесь немного сказано
Моя совместимая с UTF-8 версия:
Вы можете использовать обычный экспресс, чтобы удалить все, кроме тех символов, которые вы хотите сохранить:
Заменяет все, что не (^) буквы AZ или az, числа 0-9, пробел, подчеркивание, hypen, plus и амперсанд – ни с чем (т.е. удаляют его).
Это приведет к удалению всех управляющих символов ( http://uk.php.net/manual/en/regexp.reference.unicode.php ), оставляя символы \n символов новой строки. По моему опыту, управляющие символы – это те, которые чаще всего вызывают проблемы с печатью.
Но, наконец, было важно не удалять 128-255, потому что, например, chr(128) ( \x80 ) является знаком евро в 8-битном ASCII, а многие шрифты UTF-8 в Windows отображают знак евро и Android в отношении моего собственного теста.
Вместо этого используйте это, чтобы удалить непечатаемые символы 0-31 и 127:
Самая быстрая медленная альтернатива¹ без использования регулярных выражений:
¹ Протестировано @PaulDixon и проверено мной.
дает мне полный контроль над тем, что я хочу включить
Отмеченный anwser совершенен, но он пропускает характер 127 (DEL), который также является неприменимым персонажем
«cedivad» решил проблему для меня с настойчивым результатом шведских символов ÄÄÖ.
Это сработало для меня. Я должен был преобразовать строку любого типа, которая была случайным заголовком в пул для SEO.
как удалить специальные символы в строке
Так вот иногда получаются невалидные документы, т.е. при открытии которых выводится ошибка о том что в тексте есть недопустимый знак. в notepade++ это символ US. если всех их удалить документ валидный.
отобрал поле с бд где есть проблема.
наверху при просмотре исходного кода в фф, внизу в notepade.
Перед тем как добавлять строки в document.xml я пропускаю их через htmlspecialchars. подскажите как выявить удалить подобные символы.
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Как удалить все специальные символы?
Как удалить все специальные символы?Вроде : o♂╝♥☻☺.Удалить из строки?
Удалить символы в строке, стоящие на четных местах; удалить лишние пробелы и знаки табуляции в строке, заменив одним пробелом
Надо удалить символы в строке, стоящие на четных местах. И удалить лишние пробелы и знаки табуляции.
Как убирать специальные символы в ASP?
Подскажите как убирать специальные символы в ASP при обработке форм?
Как удалить повторяющиеся символы в строке?
Есть необычная задача. Переменная с набором символов, как вырезать все повторяющиеся символы.
наверху при просмотре исходного кода в фф, внизу в notepade.
У меня получаются проверки на англ.символы, цифры, спец. символы.
А для русских букв никак не получает написать регексп.
// row
Input x,yIF ХлУлlt; AND Xgt; OR. Xgt; print «п�инадлежи�» ELSE print «не п�инадлежи�» п�иводи� к появлени� на �к�ане �лова «П�инадлежи�», п�ед��авляе� �обой
в html коде вместо одного неизвестного символа получили много символов с вопросиками.
изначально был только один спец.символ US в notepade++
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Как в строке удалить все символы начиная справа до определенного?
Вот например такая строка (Это только пример): String s=»Okulele\Random4eg»;Как мне удалить.
Как удалить лишние пробелы, переносы и экранировать символы в строке?
на вход приходит строка. нужно в любой приходящей строке удалять переносы на следующую строку.
Алфавит. Символы операций. Специальные символы
Алфавит. Символы операций. Специальные символы. Один из вопросов билета, предстоящего мне.