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

Форум Регулярные Выражения

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

 

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

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

тема: BB -> HTML
 
 автор: stalk3r   (18.12.2006 в 13:16)   письмо автору
 
 

Нужно преобразовать нечто вроде
[a href="111" title="222" alt="333"]LINK[/a]
в хтмл-аналог. Вся сложность в том, чтобы разрещаемые св-ва формировались динамически, т.е. я допустим укажу в настройках
a href|title|alt -- это значит разрешён тег <a> и в нём разрешены св-ва href, title, alt, которых может и не быть.. застрял на проверке

   
 
 автор: Somebody   (21.12.2006 в 00:44)   письмо автору
 
   для: stalk3r   (18.12.2006 в 13:16)
 

Пока в голову пришло только это

<?php
$text 
'Нужно преобразовать нечто вроде 
[a href="111" title="222" alt="333"]LINK[/a] 
в хтмл-аналог.'
;
$text preg_replace_callback('#\[a[\s]+(href="(.*)"|)[\s]*(title="(.*)"|)[\s]*(alt="(.*)"|)[\s]*\](.*)\[/a\]#isU''callback'$text);
function 
callback($matches) {
$href $matches[2];
$title $matches[4];
$alt $matches[6];
$linkname $matches[7];
$replace '<a ';
if(
$href != ''$replace $replace.'href="'.$href.'" ';
if(
$title != ''$replace $replace.'title="'.$title.'" ';
if(
$alt != ''$replace $replace.'alt="'.$alt.'" ';
$replace $replace.'>'.$linkname.'</a>';
return 
$replace;
}
echo 
$text;
?>

   
 
 автор: stalk3r   (22.12.2006 в 00:59)   письмо автору
 
   для: Somebody   (21.12.2006 в 00:44)
 

спасибо, но это не то, проблема в том, что тут нету динамизма и гмбкости настройки

   
 
 автор: Саня   (22.12.2006 в 01:21)   письмо автору
 
   для: stalk3r   (22.12.2006 в 00:59)
 

<?
$a 
'dhgdf[a href="111" alt="333"]LINK[/a]shgsth';
$t preg_replace("!\[a[\s]+(.+)[^\]]*\](.*)\[/a\]!""<a \\1>\\2</a>"$a);
print 
$t;

   
 
 автор: stalk3r   (25.12.2006 в 22:36)   письмо автору
 
   для: Саня   (22.12.2006 в 01:21)
 

И снова спасибо, но это снова не то. тут не проверяются свойства.
Я же вот что хочу
[a href="goodlink"]OK[/a] -> <a href="OK">OK</a>
нормально переделывалось
а неразрешённое св-во например onmouseover запретить, т.е. чтобы не происходило пробразования в html
[a href="badlink" onmouseover="alert('BAD');"]BAD[/a]

   
Rambler's Top100
вверх

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