Вывод определенного кол-ва слов

Печать RSS
323

Автор
Пришелец
0
Выводит только первый символ
М

Малиновые штаны
0
Может проще символы обрезать?

Добавлено через 04:16 сек.
$words = split(" ",$string);
$words = array_slice($words , 0, 200);
$string200 = join(" ", words);
П

Пацак
0
11. WolfEYE, странно, у меня все работает. Вероятно, проблема в том, что число слов меньше 200. Тогда нужно несколько изменить код:
 <?php 
for($last=$i=0; ($i!=200)&&($last=strpos($str, ' ', $last+1)); $i++);
$last || $last=strlen($str);
echo substr($str, 0, $last);
?>

Землянин
0
обрезание строки по количеству слов:
function cut_string($string,$n) {
	if (empty($string)) return FALSE;
	$str = explode(' ',$string);
	if (count($str)<=1) return $string;
		else {
			$i = 0;
			$newstring = '';
			while ($i<$n) {
				if (empty($str[$i])) break;
				$newstring = $newstring.' '.$str[$i];
				$i++;
			}
			return $newstring;
		}
}

насчет нагрузки на сервер не знаю)
Изменил: Серега (28.08.2012 / 13:10)
П

Пацак
0
Если уж использовать массивы, то хотя бы так - $arr=explode(' ', $str, 201); unset($arr[200]);
М

Малиновые штаны
0
Im-ieee (28 Августа 2012 / 13:39)
Если уж использовать массивы, то хотя бы так - $arr=explode(' ', $str, 201); unset($arr[200]);
Тогда уж $arr=explode(' ', $str, 200); без unset, тем более слов может оказаться меньше 200
П

Пацак
0
16. Flyd, explode помещает оставшуюся строку в последний элемент массива, его нужно удалить. Если число слов меньше, то такого элемента просто не будет.
Изменил: Петр (28.08.2012 / 14:01)
М

Малиновые штаны
0
не знал. Но всё равно проверка по-моему не помешает есть ли 201й элемент
К

Айсберг Визави
0
<?php
$text="тут должно быть не менее 200 слов через пробел";
$text = explode(" ",$text);
$i = 0;
while($i!=200)
{
echo $text[$i]."<br>";
$i++;
}  
?> 

Добавлено через 00:47 сек.
вывод работает, нагрузки нет

Добавлено через 03:14 сек.

<?php
function do_except($string, $word_limit) {
$words = explode(' ', $string, ($word_limit + 1));
if (count($words) > $word_limit)
array_pop($words);
echo implode(' ', $words).' ...';
}

?> 

Добавлено через 06:01 сек.
этот вообще куколка)
П

Пацак
0
18. Flyd, это тоже лишнее. При удалении никаких ошибок не возникает, даже E_NOTICE.
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск