|
|
|
| Нужно преобразовать нечто вроде
[a href="111" title="222" alt="333"]LINK[/a]
в хтмл-аналог. Вся сложность в том, чтобы разрещаемые св-ва формировались динамически, т.е. я допустим укажу в настройках
a href|title|alt -- это значит разрешён тег <a> и в нём разрешены св-ва href, title, alt, которых может и не быть.. застрял на проверке | |
|
|
|
|
|
|
|
для: 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;
?>
|
| |
|
|
|
|
|
|
|
для: Somebody
(21.12.2006 в 00:44)
| | спасибо, но это не то, проблема в том, что тут нету динамизма и гмбкости настройки | |
|
|
|
|
|
|
|
для: 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;
|
| |
|
|
|
|
|
|
|
для: Саня
(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] | |
|
|
|