Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.04.2010, 19:49   #1
MrJenika
Форумчанин
 
Аватар для MrJenika
 
Регистрация: 07.09.2009
Сообщений: 361
По умолчанию Частичный вывод текста

Здравствуйте, вопрос следующий :
Есть большая статья, выкладывать весь текст некрасиво, как сделать чтобы выводилась только часть статьи?(остальное выводится полностью при нажатии ссылки ) . Знаю что есть функция substr, Но не не знаю как точно её использовать потому что храню текст в массиве (Привожу часть кода)
PHP код:
     <?php 
$res 
mysql_query ("SELECT id, title,  date , text,   FROM news ORDER BY date DESC, id DESC LIMIT 1",$db); 
if (!
$res
{
echo 
"<p> <br><strong>Код ошибки :</strong></p>";
exit (
mysql_error ());
}
if (
mysql_num_rows ($res) > 0)
{
$myrow mysql_fetch_array ($res);
      
printf(" <h2>%s</h2>
      <p>  Добавлено : %s </p>
      <p> %s </p>    
    
    "
$myrow ['title'], $myrow ['date'] ,$myrow1 ['text']  );
    }
    else 
{
echo 
"<p>бла бла бла</p>";
exit ();
}
Так выводится вся статья, как сделать чтобы выводились допустим первые 200 символов???
P.S. Пробовал так :

PHP код:
$myrow['text'] = $result;
 
$result substr ($res,0,200); 
затем выводил переменную $result , но ничего не вышло(
Подскажите как правильно надо делать!
MrJenika вне форума Ответить с цитированием
Старый 01.04.2010, 20:36   #2
Linel
Форумчанин
 
Аватар для Linel
 
Регистрация: 21.02.2009
Сообщений: 372
По умолчанию

PHP код:
$myrow['text'] = $result
Данной строчкой вы присваиваете элементу "text" массива "myrow" значение переменной "result".

Попробуйте так:

PHP код:
$result $myrow['text']; 
No name. Just Linel.
Linel вне форума Ответить с цитированием
Старый 01.04.2010, 20:57   #3
MrJenika
Форумчанин
 
Аватар для MrJenika
 
Регистрация: 07.09.2009
Сообщений: 361
По умолчанию

ой , точно, простите за невнимательность, большое спасибо, всё сделал как и задумал.
решено так:
Код:
$myrow['text'] = substr ($myrow['text'],0,100);

Последний раз редактировалось MrJenika; 01.04.2010 в 21:02.
MrJenika вне форума Ответить с цитированием
Старый 02.04.2010, 01:05   #4
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

Обычно превью статьи не обрезают по символам, потому что выглядит это ужасно... Обычно обрезают по абзацам, либо внедряют некий BB-код, по которому происходит обрезание. Этот код автор статьи должен добавлять сам (и таким образом решать, где лучше обрезать статью). Можно использовать оба метода сразу. В любом случае это будет лучше, чем обрезать статью посреди слова.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?
Johnatan вне форума Ответить с цитированием
Старый 02.04.2010, 01:39   #5
MrJenika
Форумчанин
 
Аватар для MrJenika
 
Регистрация: 07.09.2009
Сообщений: 361
По умолчанию

не подскажите как обрезать по абзацам? ну или по ВВ коду. Или ткните в статью, очень полезно будет.

нашёл вот такую функцию : strstr() . Пример:
Код:
<?php
$tekst=strstr("odin dva tri dva tri","dva");
echo $tekst;
?>
но так как с сервером малость глючит сейчас, а переустанавливать малость поздновато, то так и не проверил её, но согласно примеру она выведет: dva tri dva tri , то есть начнёт выводить с того места где находит совпадение, а как сделать чтобы выводила с начала и ДО совпадения?

Последний раз редактировалось MrJenika; 02.04.2010 в 02:01. Причина: нагуглил
MrJenika вне форума Ответить с цитированием
Старый 02.04.2010, 03:16   #6
Johnatan
Antimoderаtoris
Участник клуба
 
Регистрация: 08.02.2008
Сообщений: 1,251
По умолчанию

PHP код:
$tekst=strstr("odin dva tri dva tri","dva"TRUE); 
Читайте мануал, там же всё есть.
http://docs.php.net/manual/en/function.strstr.php

Для первого абзаца это будет
PHP код:
$tekst=strstr($string,"\r\n"TRUE); 
Если Вам нужно вывести два первых абзаца - это уже нужно через поиск strpos() и т.д.
98% из тысячи моих постов сделаны в профильном подфоруме. Я не накручиваю свои посты болтанием в "курилке", а ты?

Последний раз редактировалось Johnatan; 02.04.2010 в 03:21.
Johnatan вне форума Ответить с цитированием
Старый 02.04.2010, 10:28   #7
MrJenika
Форумчанин
 
Аватар для MrJenika
 
Регистрация: 07.09.2009
Сообщений: 361
По умолчанию

спасибо, клянусь читать мануалы от начала до конца*
MrJenika вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод текста SeeWhoIam Помощь студентам 2 24.12.2009 22:36
Вывод текста на метки HellMercenariess Общие вопросы Delphi 6 16.10.2009 14:30
C|Вывод текста Troi666 Помощь студентам 4 09.05.2009 01:31
вывод текста Shkentik Общие вопросы Delphi 5 21.04.2009 23:29
Работа с Printer. Частичный вывод листа из принтера. Izhic Общие вопросы Delphi 6 15.10.2008 08:57