Как реализовать. Разбитие страницы на вступительный текст и подробности

Кощей

if(!$needle) die("ooh");
Как реализовать. Разбитие страницы на вступительный текст и подробности

Для ленты новостей, новости бывают очень длинные поэтому имеет смысл делать некоторую вступительную часть.
Делать отдельную ячейку для этого нехочу, как можно сделать так чтобы при выборке из базы текста новости для главной страницы выборка останавливалась бы на какомто спец символе или фразе, вроде такой:
<----breaker---> (где-то такое видел)
Как это сделать?
У кого какие мысли
 

Gorynych

Посетитель PHP-Клуба
так чтобы при выборке из базы текста новости для главной страницы выборка останавливалась бы на какомто спец символе или фразе, вроде такой
не надо так делать! Зачем Вам лишнее условие на текстовое поле в запросе к БД?
 

Кощей

if(!$needle) die("ooh");
Ну или пусть берет все, просто при выводе н титулку выводилось только это
 

dark.Strannik

Новичок
А нельзя ли выводить просто определённое количество символов и ссылку на полную версию?
 

Кощей

if(!$needle) die("ooh");
Нет, просто я хочу контролировать чтобы небыло разрыва на полслове. Тоесть к примеру новость на 400 символов, я её оставляю полностью выводиться, а новость к примеру на 1500 символов уже невывожу, пишу пару абзацев, ставлю спец фразу и выводить только то что до спец фразы и потом ссылка читать далее
Подобное реализировано на
gameinside.com
 

Кощей

if(!$needle) die("ooh");
Ктото может такое выражение написать, я помню как-то надо было одно такое написать год насад так пока разобрался часа три потратил, а сейчас уже всё забыл.
Может кто в форме сейчас по этому вопросу)
 

Gorynych

Посетитель PHP-Клуба
Кощей
во-во... Выбирать ограниченное количество символов (я бы предложил 100) и усекать с конца до одно из знаков препинания: ".", "!", "?"
 

AzAlt

Новичок
Регулярным выражением - это если в базе. В скрипте же можно и без него обойтись:
substr($news, 0, strpos($news, $marker))

Но вообще это довольно странный подход. Логически новость всё равно делится на аннотацию и основное содержимое - зачем гемориться с каким-то разделителем, когда всё можно просто разложить по полям БД и выводить как душе заблагорассудится.
 

Кощей

if(!$needle) die("ooh");
Gorynych
Это совсем не выход.К примеру я ставлю ограничение 400 символов а новость на 500, толку её обрезать.
Или же новость на 1000 но её можно вывести и всю на главку.
С таким методом можно добиться очень симпатичного вида новостной ленты!

-~{}~ 06.07.06 01:19:

AzAlt
Оно что-то всё обрезает вообще(
 

master_x

Pitavale XXI wieku
Кощей
сделай два поля под введение и основной текст. все остальные способы неверны.
 

Skubent

Новичок
master_x, не надо так категорично.
Ошибки пользователей, вбивающих потом введение отдельно от остального текста неизбежны, так что надо решить, для кого приложение - для удобства программера и внутренней красоты или таки для пользователя.

Если уж хочешь резать, то:
$news = 'some text <---breaker---> some long text';
$toprint = explode('<---breaker--->', $news);
if (!FULL_NEWS)
echo $toprint[0];
else
echo $toprint[0].' '.$toprint[1];
 

antivir

Новичок
Делать отдельную ячейку для этого нехочу,
почему? аргументы можно?
не хочу потому, что ....., или потому, что лень?

плюсы, когда будет присутствовать пояснительное поле:

1. можно изменить текст и форматирование анонса, не изменяя текст статьи
2. быстре формировать список новостей с анонсом, не выдирая из основного текста анонс

Можно сделать условие, что в случае отсутствия анонса, выводится текст статьи полностью (это на случай маленьких статей), например..

минусов не вижу.

-~{}~ 06.07.06 12:39:

и вообще, анонс - это такое же полноправное поле, такая же полноправная сущность программы, как и все остальные поля, будь то источник, автор и т.д..

Вы же не выделяете автора статьи из текста? или не выделяете источник, путём внедрения идиотских тегов типа

<!--ISTOCHNKIK--!>источник</!--ISTOCHNKIK--!>

тогда зачем усложнять задачу?
 
Сверху