[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Разбить на слова файл в utf-8
redreem
Нужны все русские слова. Делаю так:

	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 написал(а):
мне надо и знаки препинания учитывать. и скобки и прочее. выдирать русские слова смешанные с чем угодно.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.