Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Настройка количества отображаемой информации в блоке новостей.
 
 автор: Ramzero   (23.08.2007 в 14:07)   письмо автору
 
 

Подскажите пожалуйста, каким образом можно настроить отображение информации на главной странице блока новостей, если я хочу, чтобы на ней отображалось не определенное количество СИМВОЛОВ, а первый абзац текста, который, само собой, я отделяю от текста тэгом <br>?

<table width="900" cellpadding=0 cellspacing=0 border=0>
<tr><td align=center colspan=3><br><i><b>Статьи</b><br><br></td></tr>
<?php
// Выставляем уровень обработки ошибок (http://www.softtime.ru/info/articlephp.php?id_article=23)
Error_Reporting(E_ALL & ~E_NOTICE);

// Этот файл выводит первые $pnumber новостей
// Устанавлинваем соединение с базой данных
require_once("configt.php");
?>

<?php
// Запрашиваем все видимые новости, т.е. те, у которых в базе данных hide='show',
// если это поле будет равно 'hide', новость не будет отображаться на странице
$query = "SELECT * FROM texts
WHERE hide='show' AND putdate <= NOW()
ORDER BY putdate DESC
LIMIT $pnumber";
$new = mysql_query($query);
if(!$new) puterror("Ошибка при обращении к блоку новостей");
if(mysql_num_rows($new) > 0)
{
while($texts = mysql_fetch_array($new))
{

// Выводим изображение
if(trim($texts['url_pict']) != "" && trim($texts['url_pict']) != "-")
echo "<tr><td valign=top width=100><img height=100 align=right valign=top class=img src=".$texts['url_pict']."></td>";

// Формируем анонс
// Переменная $numchar содержит примерное
// количество символов в анонсе
$pos = strpos(substr($texts['body'],$numchar), " ");

// Если новость длинная, то выводим троеточие...
if(strlen($texts['body'])>$numchar) $srttmpend = "...";
else $strtmpend = "";

// Выводим заголовок новости
echo "<td width=30><td width=870 valign=top><b><i>".$texts['name']."</i></b>";


// Выводим анонс
echo "<p align=justify>".substr($texts['body'], 0, $numchar+$pos).$srttmpend;

echo "</p><p align=right><small>Дата публикации: ".$texts['putdate']."</small><br><a href=texts.php?id_texts=".$texts['id_texts']."><p align=right><b>подробно</b></a></p>";
}
}

// Выясняем общее количество новостей в базе данных, для того чтобы
// правильно отображать ссылки на последующие новости.
$tot = mysql_query("SELECT count(*) FROM texts WHERE hide='show' AND putdate <= NOW()");
if ($tot)
{
$total = mysql_result($tot,0);
// Если в базе новостей меньше чем $pnumber
// выводим их без вывода ссылки "Все новости".
if($pnumber < $total) echo "<p class='linkblock'><a href=alltexts.php class='linkblock'>Все статьи</a>";
}
else puterror("Ошибка при обращении к блоку новостей");

?>
<br><br><br>
</td>
</tr>
</table>

Конфиг, я думаю, показывать не надо:)

   
 
 автор: minas   (24.08.2007 в 04:44)   письмо автору
 
   для: Ramzero   (23.08.2007 в 14:07)
 

Используйте strpos - находит первое вхождение некого символа в строку и например explode. Функцией explode разрываем строку на две части по первому найденому <br> (после абзаца). Первая часть абзац, вторая все остальное.

   
 
 автор: Ramzero   (26.08.2007 в 19:21)   письмо автору
 
   для: minas   (24.08.2007 в 04:44)
 

Простите, а Вы не могли бы показать на примере, как нужно использовать эту функцию?

   
 
 автор: bronenos   (26.08.2007 в 22:29)   письмо автору
 
   для: Ramzero   (26.08.2007 в 19:21)
 

http://php.su/functions/?explode
http://php.su/functions/?strpos

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования