[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: обрезка текста
mystery
есть большой текст, нужно его обрезать до 100 слов что бы слова не срезало



Спустя 56 минут, 9 секунд (28.11.2010 - 22:03) Guest написал(а):
я не знаком с регулярками, напиши

Спустя 3 минуты, 33 секунды (28.11.2010 - 22:06) vinnie написал(а):
можно просто обрезать сто символов из текста, не зависимо от того, порежем мы слово или нет,
пример:

$text = "В лесу родилась ёлочка, в лесу она росла";
echo $text; //Выведется: В лесу родилась ёлочка, в лесу она росла
$text = substr ($text, 10); //Здесь вырезаем 10 символов
echo $text; //Выведется: В лесу род


Спустя 1 минута, 5 секунд (28.11.2010 - 22:07) kovaldm написал(а):
100 символов или слов?

Спустя 1 минута, 24 секунды (28.11.2010 - 22:09) vinnie написал(а):
эт я для примера показал с символами, можно и со словами замутить

Спустя 5 минут, 25 секунд (28.11.2010 - 22:14) vinnie написал(а):

<?php
$text = "В лесу родилась ёлочка, в лесу она росла";
$a = explode (" ", $text);
for ($i=0; $i<=100; $i++)
echo $a[$i]." ";

Спустя 1 минута, 43 секунды (28.11.2010 - 22:16) kovaldm написал(а):
Голова!

Спустя 1 минута, 50 секунд (28.11.2010 - 22:18) vinnie написал(а):
kovaldm Правильно написал?

Спустя 1 минута, 40 секунд (28.11.2010 - 22:19) kovaldm написал(а):
Правильно, только лучше не циклом, а извлечь из массива первые сто элементов, а потом обратно в строку склеить.

Спустя 1 час, 21 минута, 25 секунд (28.11.2010 - 23:41) vinnie написал(а):
а как еще извлечь, если не циклом?

Спустя 6 минут, 20 секунд (28.11.2010 - 23:47) vinnie написал(а):

<?php
$text = "В лесу родилась ёлочка, в лесу она росла В лесу родилась ёлочка, в лесу она росла";
$a = explode (" ", $text);
$b = array_slice ($a, 0, 100);
$c = implode (" ", $b);
echo $c;



так?

Спустя 2 минуты, 47 секунд (28.11.2010 - 23:50) kovaldm написал(а):
Да.

Спустя 1 минута, 38 секунд (28.11.2010 - 23:51) vinnie написал(а):
а в чем разница? циклом нельзя? медленнее? или как?

Спустя 12 минут, 18 секунд (29.11.2010 - 00:04) kovaldm написал(а):
Насчет медленнее или нет - не знаю - измерять надо, а через array_slice красивее и лаконичнее. Ну и фактически через цикл, ты создаешь свою функцию, а я где-то читал, что разрабы рекомендуют использовать встроенные функции - они быстрее работают.

Спустя 56 минут, 38 секунд (29.11.2010 - 01:00) FatCat написал(а):
$i = 0;
$p = 0;
$len = strlen($txt);
while($i<100 and $p<$len){if(substr($txt,$i,1)==" ")$i++;$p++;}
echo substr($txt,0,$p);

Подозреваю, что этот код будет самым быстрым и съест меньше всего ресурсов.

Спустя 1 час, 25 минут, 27 секунд (29.11.2010 - 02:26) Crater написал(а):
Похожая задача, только файл.

//Создаём страницы
$fp = fopen(($_FILES["filename"]["name"]), "r") or die("File does not exist!");
if ($fp) {
$a = 2;
while (!feof($fp)){
$mytext = fread($fp, 1130);
$save_file = "books/".$_POST['num']."_".$a.".php";
if(!file_exists($save_file)) {
$fopa = fopen($save_file, "w");
fwrite($fopa, $mytext);
fclose ($fopa);
echo '<br> Page '.$a.' is true!';
}
else{
exit ('Такой файл уже существует');
}
$a++;
}
}

fclose($fp);


Берём 1130 символов. Как раз подходит размером к страничке. Но получается обрезанно. Надо до точки уменьшить и следующую страничку начинать после той самой точки.

Спустя 1 год, 6 дней, 19 часов, 56 минут, 18 секунд (5.12.2011 - 21:22) Гость_Dmitry написал(а):
О супер лучше и не видел спасибо вам :D


понравился пример:

$text = "В лесу родилась ёлочка, в лесу она росла В лесу родилась ёлочка, в лесу она росла";
$a = explode (" ", $text);
$b = array_slice ($a, 0, 100);
$c = implode (" ", $b);
echo $c;


он быстрее чем цикл B)

Спустя 6 минут, 43 секунды (5.12.2011 - 21:29) XCross написал(а):
Попробуй так:

1. Берем строку, функцией explode() формируем массив.
2. В слове, которое находиться в последнем элементе массива ищем символы отличные от букв и цифр(запятые, кавычки и т.д), чтоб не получилась так:
Цитата
В лесу родилась ёлочка,

А получилось так:
Цитата
В лесу родилась ёлочка

Спустя 1 час, 25 минут, 57 секунд (5.12.2011 - 22:55) treycerok написал(а):
Цитата (kovaldm @ 28.11.2010 - 21:04)
Насчет медленнее или нет - не знаю - измерять надо, а через array_slice красивее и лаконичнее. Ну и фактически через цикл, ты создаешь свою функцию, а я где-то читал, что разрабы рекомендуют использовать встроенные функции - они быстрее работают.

порой разработанные функции могут и медленнее работаь =)))) ну я не беру рнр за всегда в такую тему=))
Быстрый ответ:

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