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

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

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

 

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

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

тема: Юникод
 
 автор: vasso_m   (09.05.2007 в 05:25)   письмо автору
 
 

как удалить [М] и [таб] в тексте с юникодом:

Одна из [М] основных составляющих успеха при работе на финансовых рынках — это возможность получать оперативные, полные и объективные новости. 24 часа в сутки наши сотрудники делают все возможное для того, чтобы перераспределения денежных средств на финансовых рынках происходили в пользу наших клиентов. Мы всегда держим руку на пульсе происходящих событий[таб].

"М" и "таб" - русские буквы.

   
 
 автор: Trianon   (09.05.2007 в 11:55)   письмо автору
 
   для: vasso_m   (09.05.2007 в 05:25)
 

юникод это utf-8?
тогда так:

$cut = array('[М]', '[таб]'); // эта строка набирается в кодировке utf-8
$paste = array('','')'; 
$text = str_replace($cut, $paste, $text);

   
 
 автор: vasso_m   (09.05.2007 в 19:49)   письмо автору
 
   для: Trianon   (09.05.2007 в 11:55)
 

Как их набрать в utf-8?

А разве "[" и "]" не являются специальными символами? их не нужно экранировать?

   
 
 автор: Unkind   (09.05.2007 в 20:07)   письмо автору
 
   для: vasso_m   (09.05.2007 в 19:49)
 

Как их набрать в utf-8?
В текстовом редакторе ручками.

их не нужно экранировать?
В str_replace() специальных символов нет. В RegEx - да.

P.S. Trianon, зачем Вы создаете массив с двумя пустыми элементами? Можно просто пустую строку.

   
 
 автор: Trianon   (09.05.2007 в 22:29)   письмо автору
 
   для: Unkind   (09.05.2007 в 20:07)
 

>Trianon, зачем Вы создаете массив с двумя пустыми элементами? Можно просто пустую строку.

Сомневался, вообще-то. Буду знать.

Ладно, пусть
$cut = array( chr(91).chr(208).chr(156).chr(93), 
             chr(91).chr(209).chr(130).chr(208).chr(176).chr(208).chr(177).chr(93));
$text = str_replace($cut, '', $text); 

   
 
 автор: vasso_m   (10.05.2007 в 17:41)   письмо автору
 
   для: Unkind   (09.05.2007 в 20:07)
 

В каком редакторе надо набирать, чтоб получилось utf-8?

   
 
 автор: kasmanaft   (11.05.2007 в 06:44)   письмо автору
 
   для: vasso_m   (10.05.2007 в 17:41)
 

Наверное, можно обойтись ф-ей iconv - сконвертировать текст при ее помощи.

   
 
 автор: Trianon   (11.05.2007 в 10:31)   письмо автору
 
   для: vasso_m   (10.05.2007 в 17:41)
 

в (09.05.2007 в 22:29) я привел решение, которое можно набирать в любом редакторе.
Или можно последовать совету kasmanaft'а и применить iconv
$text = $str_replace($explode('!', iconv('windows-1251', 'utf-8', '[М]![таб]')));
но этот вариант уже начнет зависеть от кодовой страницы исходника, и будет корректно работать, только если исходник в кодировке cp1251

   
 
 автор: Sfinks   (09.05.2007 в 22:04)   письмо автору
 
   для: vasso_m   (09.05.2007 в 19:49)
 

> Как их набрать в utf-8?
В юникоде несколько вариантов написания в коде страницы, поэтому, чтобы не ошибиться, нужно открыть код страницы, на которой вы их заменяете, найти и скопировать в свой код.

Возможны варианты:

[М] => [Рњ] или [М] или [М]
[таб] => [таб] или [таб] или [таб]

   
 
 автор: Trianon   (09.05.2007 в 22:28)   письмо автору
 
   для: Sfinks   (09.05.2007 в 22:04)
 

всё что начинается с &# это не юникод, а HTML-entity.
То, что HTML-entity строится на базе юникода - вопрос пятнадцатый. На нем вообще много чего строится.

   
 
 автор: Sfinks   (09.05.2007 в 22:47)   письмо автору
 
   для: Trianon   (09.05.2007 в 22:28)
 

Че к словам придираться?

Факт в том, что в сети полно страниц, которые озаглавлены utf-8, а структуру имеют именно такую. Это раз. Поэтому и подсказываю человеку, чтобы сразу проверил этот момент.

html-entity для русских букв:

    [А] => À
    [Б] => Á
    [В] => Â
    [Г] => Ã
    [Д] => Ä
и т.д.
    [а] => à
    [б] => á
    [в] => â
    [г] => ã
    [д] => ä
и т.п.
это два.

И что ж последнее время столько буквоедов развелось? Это три =(

   
 
 автор: Trianon   (09.05.2007 в 23:18)   письмо автору
 
   для: Sfinks   (09.05.2007 в 22:47)
 

1. Кому выгодно читать кривые страницы?
2. html-entity Вами расписанные - не для русских букв а для latin-1 . В котором нет русских букв.
3. Буквоедов, к сожалению, мало. Зато полно творцов, которым RFC comments не писаны.
И из-за них писать нормальные программы с каждым годом всё тяжелее.

   
Rambler's Top100
вверх

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