[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: preg_match
myconstitution
Здравствуйте!

В тексте встречаем [tab]name1[/tab].
Имея такую запись нужно обратиться к файлу по имени name1 и вставить его содержимое вместо [tab]name1[/tab].


Подскажите как такое реализовать.




Спустя 4 часа, 7 минут, 3 секунды (2.02.2011 - 01:29) myconstitution написал(а):
Изучил, что нашел по регулярным выражениям получилось:

preg_match("/^[\s\w\d]*[^\s]?[tab]{3}[^\s]?([a-zA-Z0-9]+)[^\s]+[tab]{3}[^\s]?[\s\w\d]*$/",$text, $matches);


удовлетворяет условию:

любой текст и символы переноса
[tab]nameTab[/tab]
любой текст и символы переноса

nameTab -имя таблицы

Только вот надо чтобы этих таблиц можно вставлять много, не понимаю как осуществить. Нужна помощь.

Спустя 24 минуты, 56 секунд (2.02.2011 - 01:54) myconstitution написал(а):
скорее всего что-то неправильно с условием поиска. Пробовал несколько таблиц подряд, без текста:

[tab]tab[/tab][tab]tab1[/tab][tab]tab2[/tab]

в $matches всего 2 значения

$matches[0] == //сама строка (текст); 
$matches[1] == 'tab';

остальные таблицы не видит...

хорошо было всех их как-то опознать по условию и запихнуть в массив, чтобы было похоже на:

Array
(
tab => "html код из файла tab",
tab1 => "html код из файла tab1",
tab2 => "html код из файла tab2"
);

Спустя 7 часов, 30 минут, 40 секунд (2.02.2011 - 09:25) dima4321 написал(а):
тебе наверно нжна функция
preg_replace_callback

http://php.su/functions/?preg-replace-callback


Спустя 1 день, 12 часов, 7 минут (3.02.2011 - 21:32) myconstitution написал(а):
Все таки решение нашлось. Может кому-нибудь пригодится.
Оказалось все проще, чем думал))

<?php  
$text = 'Какой-то текст содержащий таблицы
[tab]tab[/tab][tab]tab1[/tab][tab]tab2[/tab]
нужно чтобы в $matches[1] они все были'
;
$pattern = "|\[tab\](.*?)\[/tab\]|is";
preg_match_all($pattern, $text, $matches);
unset($matches[0]);
echo "<pre>";
print_r($matches[1]);
echo "</pre>";
?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.