Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 383
от 28.06.2006, 16:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 311, Экспертов: 43
В номере:Вопросов: 1, Ответов: 4


Вопрос № 47084: Здравствуйте уважаемые эксперты. У меня простой вопрос: Как в php реализовать автоматическое создание описания для статьи из ее содержания - никаких изворотов, просто первые скажем 250символов, просто как их отрезают от исходного текста? Использу...

Вопрос № 47.084
Здравствуйте уважаемые эксперты. У меня простой вопрос:
Как в php реализовать автоматическое создание описания для статьи из ее содержания - никаких изворотов, просто первые скажем 250символов, просто как их отрезают от исходного текста? Используется база данных mysql, может это можно сделать даже и на начальной фазе чтения информации из базы данных? Заранее спасибо.
Отправлен: 22.06.2006, 19:01
Вопрос задал: Bolzamo (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Ерёмин Андрей
Здравствуйте, Bolzamo!
Получить первые n символов строки очень просто. Вот пример:
$descr = substr($article,0,250)."...";
Подразумевается, что $article - сама статья, загруженная из базы.
---------
Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессор)
Россия, Тула
WWW: Программирование на DELPHI: Всё для программиста.
ICQ: 286837644
----
Ответ отправлен: 22.06.2006, 19:09

Отвечает: Mamont
Здравствуйте, Bolzamo!
Вариант 1 (чуть проще 2):
<?
$article=... // статья, загруженная из базы.
$descr = substr($article,0,250); // вырезаем 250 символов начиная с 1 ( индекс 0 )
?>

Вариант 2 (быстрее):
<?
// при выборке сразу обрезаем (обычно вся статья сразу не нужна)
if (! $my_articles = mysql_query('SELECT id, LEFT(article, 250) as short_art FROM articles'))
// запрос содержит только выборку id и short_art - вычисляемое поле (на самом деле его нет в базе и старое не изменяется - эт так, чтоб не переживали за базу ;) )
// если нужны другие - включаем
// не забываем указать LIMIT если статей много
{
die('mysql error:'.mysql_error());
}

while ($item=mysql_fetch_assoc($my_articles)){
// здесь пишем обработку каждой статьи
// $item['id'] - id статьи
// $item['short_art'] - наша брезанная статья
}
?>
---------
Иногда движение вперед-результат пинка под зад
Ответ отправил: Mamont (статус: 2-ой класс)
Ответ отправлен: 22.06.2006, 19:40
Оценка за ответ: 5
Комментарий оценки:
Отлично! Именно то что мне нужно! Огромное спасибо!

Отвечает: Cybernetic_Creature
Здравствуйте, Bolzamo!
function substr($str,$from [,$to])
http://php.net/manual/ru/function.substr.php
или же использовать встроенный в МуСКЛ substring
select substring(body,1,100) from news;
Ответ отправил: Cybernetic_Creature (статус: Специалист)
Ответ отправлен: 23.06.2006, 09:12

Отвечает: PVS
Здравствуйте, Bolzamo!
Самый быстрый вариант - добавить еще одно поле в таблицу и сразу же при создании стать писать в него первые 250 символов
Ответ отправил: PVS (статус: 3-ий класс)
Ответ отправлен: 23.06.2006, 09:30
Оценка за ответ: 3
Комментарий оценки:
Спасибо конечно но загромождать таблицу лишними данными меня не предьщает. Мне кже подсказали быстрый и удобный вариант


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.34 от 01.06.2006
Яндекс Rambler's Top100

В избранное