|
|
|
| Ребята подскажите какими строковыми функциями и как можно сделать так, чтобы мини новости (новостная лента) на сайте вырезались не побуквенно, а пословно. Ну я имею в виду как сделать так чтобы Когда я в своем скрипте добавляю новости, в новостную ленту добавллось автоматически Первые слова, а потом там как у всех "подробнее..."
Никак не могу ничего придумать | |
|
|
|
|
|
|
|
для: l-mariachi
(04.10.2006 в 19:57)
| | Делайте explode() по пробелу, а затем выводите из массива нужное количество слов. | |
|
|
|
|
|
|
|
для: l-mariachi
(04.10.2006 в 19:57)
| |
<?
$q = 'Ребята подскажите какими строковыми функциями и как можно сделать так,
чтобы мини новости (новостная лента) на сайте вырезались не побуквенно,
а пословно. Ну я имею в виду как сделать так чтобы Когда я в своем скрипте
добавляю новости, в новостную ленту добавллось автоматически Первые слова,
а потом там как у всех "подробнее..."
Никак не могу ничего придумать';
;
$num = 100;
$r = preg_match("/^([\s\S]{1,$num})(?=([\s]|$))/", $q, $r) && $r[2] ? ($r[1] .'... подробнее') : $q;
echo nl2br($r);
?>
|
| |
|
|
|
|
|
|
|
для: Trianon
(04.10.2006 в 20:26)
| | угу, а как расшифровывается /^([\s\S]{1,$num})(?=([\s]|$))/ | |
|
|
|
|
|
|
|
для: l-mariachi
(04.10.2006 в 21:50)
| | >угу, а как расшифровывается /^([\s\S]{1,$num})(?=([\s]|$))/
это шаблон регулярного выражения.
^ - от самого начала строки
( - первое сохраняемое выражение
[\s\S] - любой символ (дословно - пробельный либо непробельный символ)
{1, 100} - в количестве от одного до сотни (т.к. на этом этапе $num уже заменено на сотню)
) - первое выражение закончилось
(?= утверждение - проверка вперед
( - второе выражение
[\s] - пробельный символ
| - либо
$ - конец всей строки
) - второе выражение закончилось
) - утверждение закончилось. | |
|
|
|