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

Форум PHP

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

 

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

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

тема: Возможно ли на php сделать тэг more
 
 автор: scva   (08.09.2010 в 12:20)   письмо автору
 
 

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

  Ответить  
 
 автор: Саня   (08.09.2010 в 12:25)   письмо автору
 
   для: scva   (08.09.2010 в 12:20)
 

Возможно

  Ответить  
 
 автор: Slo_Nik   (08.09.2010 в 12:26)   письмо автору
 
   для: scva   (08.09.2010 в 12:20)
 

если я Вас правильно понял, то Вы хотите разбить вывод информации в браузер, краткое содержание и подробное. Правильно?
Если так, то можно сделать.
Всё зависит от того где хранится Ваша информация.

  Ответить  
 
 автор: Valick   (08.09.2010 в 12:29)   письмо автору
 
   для: Slo_Nik   (08.09.2010 в 12:26)
 

это можно сделать вне зависимости от того где хранится информация :)
способы будут разные и только.

  Ответить  
 
 автор: scva   (08.09.2010 в 12:41)   письмо автору
 
   для: Slo_Nik   (08.09.2010 в 12:26)
 

у меня вывод инфы из базы идет вот так
<?
$str 
"$post[text]";
    
$limit 800;
    if (
strlen ($str) > $limit)
    
$str substr ($str0$limit-strlen (strrchr (substr ($str0$limit), ' ')));
?>

но меня это не устраивает (не этично получается иногда), хочу сделать, так чтобы при добавлении материала в алминке (там у меня стоит тинимси), я ставил определеный тэг и информация на нужных страницах выводилась до этого тэга

  Ответить  
 
 автор: Alph[p]a   (08.09.2010 в 13:14)   письмо автору
 
   для: scva   (08.09.2010 в 12:41)
 

до вывода инфы разделить текст на две части explode и выводить сначала одну часть потом типа читать далее потом вторую часть как вариант

  Ответить  
 
 автор: Slo_Nik   (08.09.2010 в 13:30)   письмо автору
 
   для: scva   (08.09.2010 в 12:41)
 

оформите ссылку more так

<?php 
 $more 
"<a href='?more=yes'>читать далее.</a>";
// и проверяйте наличие этого параметра
if(!$_GET['more']){
 
// выводите краткое содержание и переменную $more
}
else{
 
// выводите подробное содержание, вместо переменной $more можно следать ссылку "назад"
}
?>

это просто набросок...

А зачем переменная $post[text] в кавычках?
И если Вы храните в БД, то не проще ли делать поле для краткого содеражания и для полного?

  Ответить  
 
 автор: scva   (08.09.2010 в 13:33)   письмо автору
 
   для: Slo_Nik   (08.09.2010 в 13:30)
 

честно говоря не допер, в админке при заполнении что мне ставить в тинимси, без кавычек notice будет, можно и так $str = $post['text'];

  Ответить  
 
 автор: Slo_Nik   (08.09.2010 в 13:50)   письмо автору
 
   для: scva   (08.09.2010 в 13:33)
 

вот теперь я не понял, что означает тинимси?
приведите полностью свой код

  Ответить  
 
 автор: scva   (08.09.2010 в 15:36)   письмо автору
 
   для: Slo_Nik   (08.09.2010 в 13:50)
 

TinyMCE

  Ответить  
 
 автор: Valick   (08.09.2010 в 14:06)   письмо автору
 
   для: scva   (08.09.2010 в 13:33)
 

Вы бы сначала определились где РНР, а где тиниэмси...

  Ответить  
 
 автор: Valick   (08.09.2010 в 14:33)   письмо автору
 
   для: Slo_Nik   (08.09.2010 в 13:30)
 

это просто набросок...
даже для просто наброска это выглядит ужасающе

  Ответить  
 
 автор: Valick   (08.09.2010 в 14:16)   письмо автору
 
   для: scva   (08.09.2010 в 12:41)
 

То что Вы напишите в форме ввода тиниэмси, самого тиниэмси мягко говоря не колышит (он выполняется на клиенте)
А вот на сервере куда попадает все что Вы написали "хавает" всю эту байду обработчик.
Он то и должен определять число символов до вашего тега (допустим [more])
$str=trim($_POST[text]);
$count=stripos($str,"[more]");

http://php.su/functions/?stripos
и записывать в базу в отдельное поле (например count) это число.
далее не забудьте избавиться от этого самого тега при выводе полной новости пользователю.
При выборке из базы краткой формы новости (или что там у Вас) берете часть текста соответствующую этому числу.
SELECT LEFT(full_news, count) FROM news WHERE id IN(список выводимых новостей);


[поправлено мной]
___
испавленому верить

  Ответить  
 
 автор: scva   (08.09.2010 в 15:39)   письмо автору
 
   для: Valick   (08.09.2010 в 14:16)
 

теперь допер, спасибо

  Ответить  
 
 автор: Valick   (08.09.2010 в 15:53)   письмо автору
 
   для: scva   (08.09.2010 в 15:39)
 

изначально я думал избавляться от этого тега перед записью в базу, но с ним будет проще "выплевывать" текст обратно в тиниэмси при необходимости редактировать.
при таком раскладе по идее можно совсем обойтись без дополнительного поля count
SELECT LEFT(full_news, INSTR(full_news,'[more]')) FROM news WHERE id IN(список выводимых новостей);

только нужно будет автоматом добавлять [more] в конец каждого текста, на тот случай если этого тега текст не содержит, так как INSTR() вернет ноль если не найдет вхождения подстроки
___
все-таки лучше с отдельным полем...
эх.. мне бы Ваши проблемы :) я тут вторую неделю пытаюсь написать логику расстановки кораблей для морского боя...

  Ответить  
Rambler's Top100
вверх

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