Php удалить все символы кроме разрешенных

Содержание
  1. Вырезаем мусорные специальные символы на php
  2. php функция
  3. Использование
  4. Результат
  5. Описание метода работы функции
  6. Как удалить все буквы, цифры и спецсимволы в строке на PHP/JavaScript?
  7. Как удалить все буквы, цифры и спецсимволы в строке на PHP?
  8. Как удалить все буквы, цифры и спецсимволы в строке на JavaScript?
  9. Удаление регулярными выражениями в PHP
  10. Текст и символы
  11. Удалить все пробелы
  12. Удалить двойные пробелы
  13. Удалить лишние пробелы перед знаками препинания
  14. Оставить в тексте только буквы, цифры и пробел
  15. Удалить цифры
  16. Удалить латинские буквы
  17. Удалить русские буквы
  18. Удалить все буквы и цифры
  19. Удалить все кроме цифр и пробелов
  20. Удалить табуляцию
  21. Удалить переносы строк
  22. Удалить определенное количество символов
  23. Удалить текст до определенного символа
  24. Удалить текст после символа
  25. Удалить скобки с их содержимым
  26. Комментарии
  27. Удалить комментарии из HTML
  28. Удаление многострочных комментариев «/* . */»
  29. Удалить комментарии «//» и «#»
  30. Комментарии SQL « —. »
  31. Нумерация строк
  32. Хештеги
  33. Вырезаем мусорные специальные символы на php
  34. php функция
  35. Использование
  36. Результат
  37. Описание метода работы функции

Вырезаем мусорные специальные символы на php

Здравствуйте, хотел бы поделится способом вырезания специальных символов на php. Столкнулся я с данной проблемой при написании поисковика по базе youtube. В результатах api в именах и описаниях видео попадались символы, сердечки, стрелки, наушники и т.д (�►◄). Готовых решений я не нашел, пришлось написать собственную функцию.

php функция

/** * Функция была взята с php.net **/ function utf8_str_split($str) < // place each character of the string into and array $split=1; $array = array(); for ( $i=0; $i < strlen( $str ); )< $value = ord($str[$i]); if($value >127)< if($value >= 192 && $value = 224 && $value = 240 && $value else < $split=1; >$key = NULL; for ( $j = 0; $j < $split; $j++, $i++ ) < $key .= $str[$i]; >array_push( $array, $key ); > return $array; > /** * Функция вырезки * @param $str * @return */ function clearstr($str) < $sru = 'ёйцукенгшщзхъфывапролджэячсмитьбю'; $s1 = array_merge(utf8_str_split($sru), utf8_str_split(strtoupper($sru)), range('A', 'Z'), range('a','z'), range('0', '9'), array('&',' ','#',';','%','?',':','(',')','-','_','=','+','[',']',',','.','/','\\')); $codes = array(); for ($i=0; $i$str_s = utf8_str_split($str); for ($i=0; $i > return $str; > ?> 

Использование

Результат

Описание метода работы функции

Полученный аргумент (строка) разбивается по символам в массив, затем символы переводятся в ASCII-код и сравниваются с заранее заготовленным массивом разрешенных символов. Если символ не прошел сравнение, вырезается, отформатированная строка возвращается. Таким образом мы вырезали все символы кроме: А-Я, A-Z, 0-9, &, пробел, #;%?:()- _=+[],./\

Читайте также:  Курсоры

Источник

Как удалить все буквы, цифры и спецсимволы в строке на PHP/JavaScript?

Этот своего рода вариант обрезки строки будет полезен, когда вы хотите получить информацию в определенном виде. Например, ник пользователя может быть только из букв, когда как его возраст – указывается числом.

Тому, как можно решить поставленные задачи, и посвящена эта статья.

Как удалить все буквы, цифры и спецсимволы в строке на PHP?

В PHP для удаления нужных символов мы воспользуемся функцией «preg_replace», с помощью которой по регулярному выражению найдем и удалим нужные нам символы.

Реализация для удаления всех букв:

Реализация для удаления всех цифр:

Реализация для удаления спецсимволов:

 ', '|', ':', '"', '', '?', '[', ']', ';', "'", ',', '.', '/', '', '~', '`', '='); $new_content = str_replace($code_match, '', $content); echo $new_content; // Выведет "12 Hello 3 world 45" ?>

В таком случае удаляются символы «! @ # $ % ^ & * ( ) _ + < >| : » ? [ ] ; ‘ , . / — ~ ` =».

Как удалить все буквы, цифры и спецсимволы в строке на JavaScript?

В JavaScript мы воспользуемся аналогичной функцией «replace», с помощью которой также по регулярному выражению удалим нужные нам символы.

Реализация для удаления всех букв:

   

Реализация для удаления всех цифр:

   

Реализация для удаления спецсимволов:

   

Если вдруг при использовании какого-либо способа у вас возникают трудности – пишите об этом в комментариях.

Источник

Удаление регулярными выражениями в PHP

Примеры регулярных выражений для удаления данных из текста.

Текст и символы

Удалить все пробелы

$text = 'a b c d e'; $text = mb_ereg_replace('[\s]', '', $text); echo $text; // abcde

Удалить двойные пробелы

$text = 'a b c d e'; $text = mb_ereg_replace('[ ]+', ' ', $text); echo $text; // a b c d e

Удалить лишние пробелы перед знаками препинания

$text = 'Многие ! известные ? личности , и по сей день .'; echo preg_replace("/\s+([\.|,|!|\?]+)/", '\\1',$text);
Многие! известные? личности, и по сей день.

Оставить в тексте только буквы, цифры и пробел

$text = 'Многие известные. личности, по: сей день.'; echo mb_eregi_replace("[^a-zа-яё0-9 ]", '', $text);
Многие известные личности по сей день

Удалить цифры

$text = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя abcdefghijklmnopqrstuvwxyz 0123456789'; echo mb_eregi_replace('1', '', $text);
абвгдеёжзийклмнопрстуфхцчшщъыьэюя abcdefghijklmnopqrstuvwxyz

Удалить латинские буквы

$text = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя abcdefghijklmnopqrstuvwxyz 0123456789'; echo mb_eregi_replace('[a-z]', '', $text);
абвгдеёжзийклмнопрстуфхцчшщъыьэюя 0123456789

Удалить русские буквы

$text = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя abcdefghijklmnopqrstuvwxyz 0123456789'; echo mb_eregi_replace('[а-яё]', '', $text);

Удалить все буквы и цифры

$text = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя abcdefghijklmnopqrstuvwxyz 0123456789 . '; echo mb_eregi_replace('[\w]', '', $text);

Удалить все кроме цифр и пробелов

$text = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя abcdefghijklmnopqrstuvwxyz 0123456789 . '; echo mb_eregi_replace('[^0-9 ]', '', $text);

Удалить табуляцию

Удалить переносы строк

echo preg_replace("/[\r\n]/", '', $text);

Удалить определенное количество символов

Примеры удаляют девять символов в начале и конце текста.

// Удаление с начала $text = mb_eregi_replace("^.(.*)$", '\\1', $text); echo $text; // Удаление с конца $text = mb_eregi_replace("(.*)[^.]$", '\\1', $text); echo $text;

Удалить текст до определенного символа

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

$text = 'Многие известные. личности, по: сей - день.'; // Удалить до пробела echo preg_replace("/^(.*?)(\s)(.*?)$/", '\\3', $text); // Удалить до "." echo preg_replace("/^(.*?)(\.\s)(.*?)$/", '\\3', $text); // Удалить до "," echo preg_replace("/^(.*?)(,\s)(.*?)$/", '\\3', $text); // Удалить до ":" echo preg_replace("/^(.*?)(:\s)(.*?)$/", '\\3', $text); // Удалить до "-" echo preg_replace("/^(.*?)(-\s)(.*?)$/", '\\3', $text);
известные. личности, по: сей - день. личности, по: сей - день. по: сей - день. сей - день. день.

Удалить текст после символа

$text = 'Многие известные. личности, по: сей - день.'; // Удалить после пробела echo preg_replace("/^(.+?)\s.+$/", '\\1', $text); // Удалить после «.» echo preg_replace("/^(.+?)\..+$/", '\\1', $text); // Удалить после «,» echo preg_replace("/^(.+?),.+$/", '\\1', $text); // Удалить после «:» echo preg_replace("/^(.+?):.+$/", '\\1', $text); // Удалить после «-» echo preg_replace("/^(.+?)-.+$/", '\\1', $text);
Многие Многие известные Многие известные. личности Многие известные. личности, по Многие известные. личности, по: сей

Удалить скобки с их содержимым

$text = '(Casio G-SHOCK) [GW-9200-1ER] '; // Удаление (. ) echo preg_replace("/(.*?)\(.*?\)\s?(.*?)/is", '\\1\\3', $text); // Удаление [. ] echo preg_replace("/(.*?)\[.*?\]\s?(.*?)/is", '\\1\\3', $text); // Удаление echo preg_replace("/(.*?)\<.*?\>\s?(.*?)/is", '\\1\\3', $text); // Удаление [. ] echo preg_replace("/(.*?)<.*?>\s?(.*?)/is", '\\1\\3', $text);

Комментарии

Удалить комментарии из HTML

$text = '

Текст текст

'; echo preg_replace('/\s?\s?/', ' ', $text);

Удаление многострочных комментариев «/* . */»

$text = " /** * Описание функции и тд * @param name * @param defaultValue * @returns */ document.write(' '); "; echo preg_replace("/\/\*(.*?)\*\//sm", '', $text);

Удалить комментарии «//» и «#»

$text = " // По возрастанию: ksort($array); # По убыванию: krsort($array);"; $res = preg_replace("/\/\/.*\n/", '', $text); $res = preg_replace("/#.*\n/", '', $res); echo $res;

Комментарии SQL « —. »

$text = " SELECT * FROM `articles` WHERE `name` LIKE '%KEY%' -- OR `title` LIKE '%KEY%' OR `text` LIKE '%KEY%'"; echo preg_replace("/\s--.*\n/", '', $text);
SELECT * FROM `articles` WHERE `name` LIKE '%KEY%' OR `text` LIKE '%KEY%'

Нумерация строк

$text = ' 1 text text text. 2 text text text. 3 text text text. 1. text text text. 2. text text text. 3. text text text. 1) text text text. 2) text text text. 3) text text text.'; echo preg_replace('/(\d)+(\.|\)|\s)+([\s]?)+(.*)/', '\\4', $text);
text text text. text text text. text text text. text text text. text text text. text text text. text text text. text text text. text text text.

Хештеги

$text = 'broken beat, nu jazz, downtempo #nujazz, #downtempo, #intelligent'; echo preg_replace('/#([\S]+)/', '', $text);
broken beat, nu jazz, downtempo 

Источник

Вырезаем мусорные специальные символы на php

Здравствуйте, хотел бы поделится способом вырезания специальных символов на php. Столкнулся я с данной проблемой при написании поисковика по базе youtube. В результатах api в именах и описаниях видео попадались символы, сердечки, стрелки, наушники и т.д (�►◄). Готовых решений я не нашел, пришлось написать собственную функцию.

php функция

/** * Функция была взята с php.net **/ function utf8_str_split($str) < // place each character of the string into and array $split=1; $array = array(); for ( $i=0; $i < strlen( $str ); )< $value = ord($str[$i]); if($value >127)< if($value >= 192 && $value = 224 && $value = 240 && $value else < $split=1; >$key = NULL; for ( $j = 0; $j < $split; $j++, $i++ ) < $key .= $str[$i]; >array_push( $array, $key ); > return $array; > /** * Функция вырезки * @param $str * @return */ function clearstr($str) < $sru = 'ёйцукенгшщзхъфывапролджэячсмитьбю'; $s1 = array_merge(utf8_str_split($sru), utf8_str_split(strtoupper($sru)), range('A', 'Z'), range('a','z'), range('0', '9'), array('&',' ','#',';','%','?',':','(',')','-','_','=','+','[',']',',','.','/','\\')); $codes = array(); for ($i=0; $i$str_s = utf8_str_split($str); for ($i=0; $i > return $str; > ?> 

Использование

Результат

Описание метода работы функции

Полученный аргумент (строка) разбивается по символам в массив, затем символы переводятся в ASCII-код и сравниваются с заранее заготовленным массивом разрешенных символов. Если символ не прошел сравнение, вырезается, отформатированная строка возвращается. Таким образом мы вырезали все символы кроме: А-Я, A-Z, 0-9, &, пробел, #;%?:()- _=+[],./\

Источник

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