Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Регулярное выражение обработки текста 
:(
    Опции темы
PriZraK
  Дата 27.10.2006, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 22.10.2006

Репутация: нет
Всего: нет



Здравствуйте.
Помогите разобраться:

Переменная $template_page содержит текст вида:
Код

$template_page="<b>Добро пожаловать</b> #:page_name:# 
бла-бла-бла #:page_content:# бла-бла-бла #:page_text:#";


Необходимо занести в массив значения (учтя тот факт, что значений в переменной $template_page может быть неограниченное количество):
#:page_name:#
#:page_content:#
#:page_text:#

Искал по форуму, пробовал, не выходит...



PM MAIL ICQ Skype GTalk   Вверх
Vaulter
Дата 27.10.2006, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 1
Всего: 22



preg_match_all("!#smile[-a-Z_\/]*):#!s,....
чтото типа того. 
читать про 
preg_match_all на php.net
и вообще про регулярные выражения




--------------------
PM MAIL WWW ICQ   Вверх
korisarimi
Дата 27.10.2006, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 111
Регистрация: 9.5.2006

Репутация: нет
Всего: 1



Код

$template_page="<b>Добро пожаловать</b> #:page_name:# 
бла-бла-бла #:page_content:# бла-бла-бла #:page_text:#";

$template_page=ereg_replace("([^#]+)(#[^#]+#)","\\2 ",$template_page);
$massive=split(" ",$template_page);/*$massive - это массив, в который заносятся все элементы*/


PM MAIL   Вверх
PriZraK
  Дата 27.10.2006, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 22.10.2006

Репутация: нет
Всего: нет



korisarimi
Код действительно работает, так как надо...
Код

$template_page="<b>Добро пожаловать</b> #:page_name:# 
бла-бла-бла #:page_content:# бла-бла-бла #:page_text:#";
$template_page=ereg_replace("([^#]+)(#[^#]+#)","\\2 ",$template_page);
$massive=split(" ",$template_page);/*$massive - это массив, в который заносятся все элементы*/


...но, надо было мне сразу привести пример моего текста использующего в обработке:

Код

$template_page='<td width="700" height="391" bgcolor="#FFFFFF" valign="top" align="center" colspan="2">
  <table border="0" width="700" height="1" cellspacing="0" cellpadding="0">
    <tr>
      <td width="211" height="1" valign="top" rowspan="2">#:page_content_1:#<br>#:page_content_2:#</td>
      <td width="489" height="1" valign="top">#:page_content_3:#</td>

    </tr>
    <tr>
      <td width="489" height="1" valign="top">#:page_content_4:#</td>
    </tr>
  </table>';
$template_page=ereg_replace("([^#]+)(#[^#]+#)","\\2 ",$template_page);
$massive=split(" ",$template_page);
print $massive[0];

// выводит #FFFFFF"


Как в этом случае быть?
PM MAIL ICQ Skype GTalk   Вверх
Vaulter
Дата 27.10.2006, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 1
Всего: 22



Код

preg_match_all("!#[-a-Z_\/]*?):#!s",$page, $matches);
print_r($matches);


Добавлено @ 18:12 
между [ и ] укажи еще какие символы входят в твои индификаторы.

Добавлено @ 18:14 
между [ и ] укажи еще какие символы входят в твои индификаторы.


--------------------
PM MAIL WWW ICQ   Вверх
PriZraK
Дата 27.10.2006, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 22.10.2006

Репутация: нет
Всего: нет



Цитата(Vaulter @ 27.10.2006,  18:11)
Код

preg_match_all("!#[-a-Z_\/]*?):#!s",$page, $matches);
print_r($matches);

Выдаётся ошибка:
Warning: preg_match_all() [function.preg-match-all]: Compilation failed: range out of order in character class at offset 5
PM MAIL ICQ Skype GTalk   Вверх
Vaulter
Дата 27.10.2006, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 1
Всего: 22



PriZraK, да, там скобочка не открыта
"!#([-a-Z_\/]*?):#!s"


--------------------
PM MAIL WWW ICQ   Вверх
PriZraK
  Дата 27.10.2006, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 22.10.2006

Репутация: нет
Всего: нет



Цитата(Vaulter @ 27.10.2006,  20:32)
PriZraK, да, там скобочка не открыта
"!#([-a-Z_\/]*?):#!s"

Уфф, спасибо большое, получилось!! =)
Код

preg_match_all("!#:([-a-zA-Z0-9_\/]*?):#!s",$page, $matches);
print_r($matches);

PM MAIL ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0968 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.