работа в текстовым файлов

rojers

Guest
работа в текстовым файлов

необходимо открыть файл содержащий текст и:

вариант 1: присвоить какой нибудь переменной n первых слов (например 25) из файла и закончить все это троеточием

вариант 2: присвоить какой нибудь переменной первые 3 предложения

помогите плиз просто горю
 

Фанат

oncle terrible
Команда форума
Вариант1 - [m]fread[m]
Вариант2 - сначала скажи, что такое предложение.
в РНР нет такого типа данных. Ему придется объяснить. Так что, ты уж постарайся, ххотя бы человеческими словами.
 

2People

Guest
Тебе нужны регулярные выражения.
Прочитай сначала это:
http://providerz.ru/articles/php/regexp-intro.html
потом это:
http://providerz.ru/articles/php/regexp-continue.html
 

Falc

Новичок
Вариант 1:
PHP:
$string = file_get_contents('file');
$words = explode( ' ', $string, 26 );
unset($words[25]);
$string = join( ' ', $words ).'...';
echo $string;
Кажется примерно так.

Второй вариант слишком сложный и без морфологии его никак не решить.
 

Фанат

oncle terrible
Команда форума
Falc, вариант твой ужасный.
перебирать по ящику ФУРУ пива, чтобы взять 20 бутылок...
если бы ты сам длал ту работу, которыю заставляешь выполнить компьютер - ты бы никогда такого не предложил.
 

Falc

Новичок
Originally posted by Фанат
Falc, вариант твой ужасный.
перебирать по ящику ФУРУ пива, чтобы взять 20 бутылок...
если бы ты сам длал ту работу, которыю заставляешь выполнить компьютер - ты бы никогда такого не предложил.
Все зависит от размера текстовых файлов.
Если там файлы не большие то вариант вполне подходит.
Если файлы большие то можно читать первые несколько байт.
А сам алгоритм разбиения останется таким же.
 

Falc

Новичок
А вообще лучше делать так:
PHP:
$allow_sym = 'а-яА-Я\w\d';
$small_descr = preg_replace("~(^.{200,}?[".$allow_sym."]+?)[^".$allow_sym."].{50,}~s", "\\1 ...", strip_tags($string) );
Правда это относится к html а не к тексту.
Для текста стрип_тегс не нужен.
 

NEK

Guest
Re: работа в текстовым файлов

Автор оригинала: rojers
вариант 2: присвоить какой нибудь переменной первые 3 предложения
Аля поисковик ???
Предложение начинается с большой буквы и заканчивается "."
PHP:
   $str='Sdfg.   Fdfg. Ffdg . Sdgsgg.sdf';
   ereg("([[:space:]]*[[:upper:]][^\\.]*\\.){0,3}",$str,$x);
   dump($x);
ВСЕ
 

Макс

Старожил PHPClub
NEK
в предложении могут быть еще и фамилии с инициалами:
$str = "Сегодня Иванов B.И. не пришел на урок";
 
Сверху