Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: помогите сделать краткий обзор

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: помогите сделать краткий обзор из новостного текста
tipagraf
Отправлено: 12 Января, 2012 - 14:42:27
Post Id



Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Апр. 2011  
Откуда: Ukraine


Помог: 0 раз(а)




Доброго времени всем.
Огорчение помогите сделать краткий обзор из целого новостного текста который выводится из базы полностью. В общем вот:
Цитата:
$result = mysql_query("SELECT id,date,header,image,content FROM news WHERE approved=1 ORDER BY id LIMIT $start, $num ",$db);


if (!$result)
{
echo "<p>Запрос на выборку данных из базы не прошел. Напишите об этом администратору admin@mail.com <br> <strong>Код ошибки:</strong></p>";
exit (mysql_error());
}

if (mysql_num_rows($result) > 0)

{
$myrow = mysql_fetch_array($result);

do
{


printf ("<table align='center' class='post'>

<tr>
<td class='post_title'>
<p class='post_name'><img class='mini' align='left' src='image/%s.jpg' width='120' height='120' ><p class='post_adds'><b>%s</b></p>
<p class='post_adds'>Дата: %s</p>
%s<a href='index_post.php?id=%s'>далее</a></p>
</td>
</tr>

<tr>

</tr>

</table><br><br>",$myrow["image"],$myrow["header"],$myrow["date"],$myrow["content"],$myrow["id"]);


}
-вот эта конструкция выводит новость из базы целиком, а мне надо чтобы новость обрезалась и выводилась в виде краткого обзора. За вывод отвечают поля "content" и метка "%s" они отмечены красным??? Растерялся или ткните в статью где есть подобный пример. Спасибо
 
 Top
LIME
Отправлено: 12 Января, 2012 - 15:09:17
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




можно в текст новости вставить метку разделяющую короткий вариант
например
CODE (html):
скопировать код в буфер обмена
  1. <p>Новость начинается.Потом граница.<!--text_label-->И тут продолжение новости </p>

в полном варианте метки видно не будет
а в коде отрезать текст начиная от вашей метки
перед printf вставим строку
PHP:
скопировать код в буфер обмена
  1. $myrow["content"]=preg_replace('#<!--text_label-->(.)+$#s','',$myrow["content"]);
 
 Top
tipagraf
Отправлено: 12 Января, 2012 - 19:01:41
Post Id



Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Апр. 2011  
Откуда: Ukraine


Помог: 0 раз(а)




Спасибо, что откликнулись, если я правильно понимаю то в сам текст выводимой новости: (поправьте если ошибаюсь)
LIME пишет:
в текст новости вставить метку разделяющую короткий вариант
тогда получается что вставить метку очень накладно потому что все новости парсятся, отдельным парсером в базу мускуль напрямую а оттуда уже идет вывод , на страницу, а переделать парсер чтобы выводил дескрипшен не могу он зазендин автором, вот и думаю каким можно, способом еще обработать массив с контентом чтобы выводить как, краткий обзор. может регулярку кто знает которая может этот массив на лету обработать.
(Добавление)
дело в том что сам, текст новости - уже выводится получается целиком через вот эту метку "%s" смею предположить может как-то можно ловить массив текста новости когда обрабатывается в "$myrow["content"]" и там, Закатив глазки как-то может, можно посчитать и выводить только определенное количество символов какой нибудь регуляркой к примеру, а остальное обрезать.... я извиняюсь за свои возможно дикие варианты, не силен в пхп Улыбка

(Отредактировано автором: 12 Января, 2012 - 19:08:30)

 
 Top
LIME
Отправлено: 12 Января, 2012 - 19:41:49
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




http://php.su/functions/?substr
(Добавление)
PHP:
скопировать код в буфер обмена
  1. </table><br><br>",$myrow["image"],$myrow["header"],$myrow["date"],
  2. substr($myrow["content"],0,500/*например 500 символов*/),
  3. $myrow["id"]);

(Отредактировано автором: 12 Января, 2012 - 19:44:56)

 
 Top
alexiy
Отправлено: 12 Января, 2012 - 19:50:03
Post Id



Посетитель


Покинул форум
Сообщений всего: 483
Дата рег-ции: Янв. 2011  


Помог: 6 раз(а)




а можно попробовать в таблицу добавить еще одно поле в котором будет краткий обзор статьи и ссылку на полную новость, если я правильно понял...
 
 Top
tipagraf
Отправлено: 12 Января, 2012 - 20:34:34
Post Id



Новичок


Покинул форум
Сообщений всего: 15
Дата рег-ции: Апр. 2011  
Откуда: Ukraine


Помог: 0 раз(а)




Большое человеческое Благодарю!!! LIME ваша ссылка на статью очень помогла, ну а вариант предложенный вами полностью сработал. Удачи! вам в Новом году! Радость
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB