Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: помогите пожалуйста переделать выражение под другие нужды )
 
 автор: waptanet   (16.04.2008 в 11:26)   письмо автору
 
 


    preg_match('%^(?:
          [\x09\x0A\x0D\x20-\x7E]                                    # ASCII
        | [\xC2-\xDF][\x80-\xBF]                                       # non-overlong 2-byte
        |  \xE0[\xA0-\xBF][\x80-\xBF]                               # excluding overlongs
        | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}                  # straight 3-byte
        |  \xED[\x80-\x9F][\x80-\xBF]                               # excluding surrogates
        |  \xF0[\x90-\xBF][\x80-\xBF]{2}                          # planes 1-3
        | [\xF1-\xF3][\x80-\xBF]{3}                                   # planes 4-15
        |  \xF4[\x80-\x8F][\x80-\xBF]{2}                          # plane 16
    )*$%xs', $string);

нужно не искать символы не соответствующие utf8 а вырезать .. сам пытался,неполучается что то )

   
 
 автор: cheops   (16.04.2008 в 12:07)   письмо автору
 
   для: waptanet   (16.04.2008 в 11:26)
 

Что подразумевается под "вырезанием"? Удаление, извлечение?

   
 
 автор: waptanet   (17.04.2008 в 16:41)   письмо автору
 
   для: cheops   (16.04.2008 в 12:07)
 

Удаление

   
 
 автор: cheops   (17.04.2008 в 21:13)   письмо автору
 
   для: waptanet   (17.04.2008 в 16:41)
 

Тогда вместо preg_match() используйте функцию preg_replace()
$string = preg_replace('%^(?: 
          [\x09\x0A\x0D\x20-\x7E]                                    # ASCII 
        | [\xC2-\xDF][\x80-\xBF]                                       # non-overlong 2-byte 
        |  \xE0[\xA0-\xBF][\x80-\xBF]                               # excluding overlongs 
        | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}                  # straight 3-byte 
        |  \xED[\x80-\x9F][\x80-\xBF]                               # excluding surrogates 
        |  \xF0[\x90-\xBF][\x80-\xBF]{2}                          # planes 1-3 
        | [\xF1-\xF3][\x80-\xBF]{3}                                   # planes 4-15 
        |  \xF4[\x80-\x8F][\x80-\xBF]{2}                          # plane 16 
    )*$%xs', '', $string);

   
 
 автор: waptanet   (17.04.2008 в 21:30)   письмо автору
 
   для: cheops   (17.04.2008 в 21:13)
 

Мм ) ну это понятно,вопрос несовсем в этом,этот пример прекрасно удалит из текста всё что соответствует utf8,а нужно как раз совсем наоборот,удалить "левые" символы,способные испортить валидность страницы ..

   
 
 автор: AcidTrash   (17.04.2008 в 21:47)   письмо автору
 
   для: waptanet   (17.04.2008 в 21:30)
 

>удалить "левые" символы,способные испортить валидность страницы ..
Что значит "левые символы" ?

   
 
 автор: waptanet   (17.04.2008 в 22:20)   письмо автору
 
   для: AcidTrash   (17.04.2008 в 21:47)
 

ну если вышеупомянутое выражение проверяет соответствие строки кодировке utf8 то под "левые символы" подрузомеваются символы ей несоответствующие

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования