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

Форум PHP

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

 

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

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

тема: Работа с текстом
 
 автор: JIEXA   (23.06.2005 в 23:52)   письмо автору
 
 

Как в тексте найти данные помещанные в спец теги [vip][/vip]?
Вот мне нудно типа этого:


текст текст текст
текст текст текст
текст текст текст
текст текст текст
текст текст текст
текст текст текст
текст текст текст
текст текст текст
текст текст текст
текст текст текст
[vip]
if(!iMEMBER)
{
print "для просмотра этой инфы вам нужно зарестрироваться...";
}
else
{
# выводится текст помещанный в теги [vip][/vip]
}
[/vip]



Просто я хочу сделать, чтобы НЕ зарегистрированные пользователи НЕ могли просматривать текст помещанный в теги [vip][/vip]..

   
 
 автор: isset   (23.06.2005 в 23:55)   письмо автору
 
   для: JIEXA   (23.06.2005 в 23:52)
 

preg_match_all + preg_replace

/\[vip\](.*)\[\/vip\]/i

   
 
 автор: JIEXA   (24.06.2005 в 00:06)   письмо автору
 
   для: isset   (23.06.2005 в 23:55)
 

isset не братишка, я совсем что-то уже не чего не соображаю (с девушкой пробблемы, я не очем думать немогу, кроме как о ней...) может дашь готовый вариант кода?

   
 
 автор: cheops   (24.06.2005 в 01:51)   письмо автору
 
   для: JIEXA   (24.06.2005 в 00:06)
 

isset имеет ввиду что-то вроде следующего
<?php
  $text 
= 'текст текст текст
текст текст текст
текст текст текст
текст текст текст
текст текст текст
текст текст текст
текст текст текст
текст текст текст
текст текст текст
текст текст текст
[vip]if(!iMEMBER)
{
print "для просмотра этой инфы вам нужно зарестрироваться...";
}
else
{ 
# выводится текст помещанный в теги
}[/vip]'
;

// Для неавторизованных посетителей
// echo preg_replace('#\[vip\]([^\[]*)\[\/vip\]#iU','',$text);
// Для авторизованных посетителей
echo preg_replace('#\[vip\]([^\[]*)\[\/vip\]#iU',"\${1}",$text);
?>

   
 
 автор: isset   (24.06.2005 в 02:22)   письмо автору
 
   для: cheops   (24.06.2005 в 01:51)
 

Да, только:

<?php
  $text 
= 'текст текст текст
текст текст текст
текст текст текст
текст текст текст
текст текст текст
текст текст текст
текст текст текст
текст текст текст
текст текст текст
текст текст текст
[vip]if(!iMEMBER)
{
print "для просмотра этой инфы вам нужно зарестрироваться...";
}
else
{
# выводится текст помещанный в теги
}[/vip]'
;

// Для неавторизованных посетителей
// echo preg_replace('#\[vip\](.*)\[\/vip\]#iU','',$text);
// Для авторизованных посетителей
echo preg_replace('#\[vip\](.*)\[\/vip\]#iU',"\${1}",$text);
?> 


Иначе будут проблемы с текстом типа:


  $text = 'текст текст текст
текст текст текст
текст текст текст
[vip]Массив a[mm], жирно! [/vip]';

   
 
 автор: JIEXA   (24.06.2005 в 19:19)   письмо автору
 
   для: isset   (24.06.2005 в 02:22)
 

Спасибо, но не много вы меня не понили...
Текст будет выгледить так:
<?
$text = 'текст текст текст
текст текст текст
текст текст текст
текст текст текст
текст текст текст
текст текст текст
текст текст текст
текст текст текст
текст текст текст
текст текст текст
[vip]
этот текст видят только зарегистрированные...
[/vip]
тут всякий текст, который видят все...';
?>

вот как бы [vip] означает:

if(!iMEMBER) 
{ 
print "для просмотра этой инфы вам нужно зарестрироваться..."; 
} 
else 
{
print " 

а [/vip]

";
}

   
 
 автор: cheops   (24.06.2005 в 21:54)   письмо автору
 
   для: JIEXA   (24.06.2005 в 19:19)
 

А почему бы не сделать следущим образом
<?php
if(!iMEMBER) 
{ 
 echo 
preg_replace('#\[vip\]([^\[]*)\[\/vip\]#iU','Для просмотра этой информации вам необходимо зарегистрироваться',$text);
} 
else 
{ 
echo 
preg_replace('#\[vip\]([^\[]*)\[\/vip\]#iU',"\${1}",$text);
}
?>

   
 
 автор: JIEXA   (25.06.2005 в 22:59)   письмо автору
 
   для: cheops   (24.06.2005 в 21:54)
 

А если текст не заключен в [vip] то он не отображается вообще :(

   
 
 автор: cheops   (26.06.2005 в 00:26)   письмо автору
 
   для: JIEXA   (25.06.2005 в 22:59)
 

Хм... странно, не должно бы - приведите кусок сбойного текста.

   
 
 автор: method   (26.06.2005 в 02:06)   письмо автору
 
   для: cheops   (26.06.2005 в 00:26)
 

ээээ... извеняюсь канеш за вмешательство, но почему бы не сделать это
всё при помощи сессий? я вот не врубился почему тебе надо показывать
текст зарег.пользователям, и ещё к этому тексту применять
preg_replace....
а с сессиями как хорошо=), проверил на наличие
определенных переменых в супГ.массиве, а там уже
в зависимости от присутсвия онного или отсутствия
выводи чё хочеш, и кому хочеш...=)

   
 
 автор: JIEXA   (26.06.2005 в 12:15)   письмо автору
 
   для: cheops   (26.06.2005 в 00:26)
 

Текст текст текст
[vip]а тут для зарегененых...[/vip]
екст текст текст
[vip]Только для VIP :)[/vip]
текст текст

   
 
 автор: JIEXA   (26.06.2005 в 12:18)   письмо автору
 
   для: JIEXA   (26.06.2005 в 12:15)
 

Все работает, это я ступил... Спасибо

   
Rambler's Top100
вверх

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