В тексте встречаем [tab]name1[/tab].
Имея такую запись нужно обратиться к файлу по имени name1 и вставить его содержимое вместо [tab]name1[/tab].
Подскажите как такое реализовать.
Спустя 4 часа, 7 минут, 3 секунды (2.02.2011 - 01:29) myconstitution написал(а):
Изучил, что нашел по регулярным выражениям получилось:
удовлетворяет условию:
любой текст и символы переноса
[tab]nameTab[/tab]
любой текст и символы переноса
nameTab -имя таблицы
Только вот надо чтобы этих таблиц можно вставлять много, не понимаю как осуществить. Нужна помощь.
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 значения
остальные таблицы не видит...
хорошо было всех их как-то опознать по условию и запихнуть в массив, чтобы было похоже на:
Array
(
tab => "html код из файла tab",
tab1 => "html код из файла tab1",
tab2 => "html код из файла tab2"
);
[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 написал(а):
Спустя 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>";
?>