Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Закрытая темаСоздание новой темыСоздание опроса

> Разбить на слова файл в utf-8, с помощью preg_match_all
redreem  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 4287
Пользователь №: 29002
На форуме: 13 лет, 8 месяцев, 27 дней
Карма: 147




Нужны все русские слова. Делаю так:

	function putFile($fileName) {

$this->file = fopen($fileName,'r');
$this->fileContent = iconv("UTF-8", "WINDOWS-1251", fread($this->file,filesize($fileName)));

fclose($this->file);


$res = preg_match_all("#([а-яё]+)#i", $this->fileContent, $words);


foreach ($words[0] as $k=>$v) {
print_r(iconv("WINDOWS-1251", "UTF-8", $v).'<br>');
}



}


результат - делит не только на слова, но и сами слова рубит на куски по непонятному алгоритму. файл в utf-8, сайт тоже на utf-8.

где лоханулся?


Свернутый текст
авиаперелё  авиап  лемё  авиас  ёмка  авиа  ё  ав  огидропод  ёмник  ав  околёса  ав  о  ё  ка  аг  кнё  аг  кнё  с  аг  а  ёлк  аделём  азо  ёрн  й  акмежёл  й  акрилзаме  ённ  й  Аксён  Аксёнов  аксилён  ак  ёр  ак  ёрка  ак  ёрский  ак  ёрски  ак  ёрс  вова  ак




Спустя 18 минут, 54 секунды (2.02.2012 - 20:33) twin написал(а):
А зачем танцы с бубнами с iconv? Убери и поставь модификатор u
Да и s непомешает я думаю.

Спустя 2 минуты, 13 секунд (2.02.2012 - 20:35) Игорь_Vasinsky написал(а):
накалякай пример строки с которой работаешь?

действительно...
Свернутый текст
А зачем танцы с бубнами с iconv? Убери и поставь модификатор u
Да и s непомешает я думаю.

Спустя 2 минуты, 26 секунд (2.02.2012 - 20:37) redreem написал(а):
щас попробую.

так ставить: preg_match_all("#([а-яё]+)#ius"...?

Спустя 36 секунд (2.02.2012 - 20:38) Игорь_Vasinsky написал(а):
ага скобки тока можешь убрать

Спустя 1 минута, 40 секунд (2.02.2012 - 20:40) redreem написал(а):
о! заработало! пасиб!

Спустя 5 секунд (2.02.2012 - 20:40) neadekvat написал(а):
Цитата (Игорь_Vasinsky @ 2.02.2012 - 21:38)
ага скобки тока можешь убрать

С фига ли, если ему нужен результат?

redreem, нет смысла в $res. Вызывай функция просто так.

Спустя 1 минута, 43 секунды (2.02.2012 - 20:41) redreem написал(а):
neadekvat
ну на всякий случай мне res не помешает. еще в работе алгоритм.

Спустя 1 час, 46 минут, 30 секунд (2.02.2012 - 22:28) Winston написал(а):
preg_match_all("#[^ ]+#", $this->fileContent, $words);
echo '<pre>'.(print_r($words, 1)).'</pre>';

Спустя 11 минут, 2 секунды (2.02.2012 - 22:39) redreem написал(а):
непонял что значит [^<пробел>]?

Спустя 20 минут, 32 секунды (2.02.2012 - 22:59) Winston написал(а):
Все что не равно пробелу, в твоем случае будут выбраны все слова.

Спустя 4 минуты, 24 секунды (2.02.2012 - 23:04) redreem написал(а):
мне надо и знаки препинания учитывать. и скобки и прочее. выдирать русские слова смешанные с чем угодно.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Закрытая темаСоздание новой темыСоздание опроса