регулярные выражения

Мутник

Новичок
регулярные выражения

Подскажите как заменить код типа

[u r l = http://www.url.xx]Линк какой то[ / u r l ] - только без пробелов

на
PHP:
<a href="http://www.url.xx">Линк какой то</a>
данное выражение не помогает
PHP:
ereg_replace("url=([url]http://[/url]([A-Za-z0-9.\-])*)]" , "<a href=\"\\1\" target=_blank>", $list);
если же не писать первую "[" то все ок (т.е. ("url=(http://([A-Za-z0-9.\-])*)]")
 

SiMM

Новичок
Форумы, похоже, что-то сделали с регулярником?
PHP:
preg_replace('~\[урл=(.*?)\](.*?)\[/урл\]~si','<а hrеf=$1>$2</а>',$list);
PS: а почему в разделе "для продвинутых"?
2admins: похоже тэг PHP парсится неправильно :(
 

Мутник

Новичок
Спасибо.


только все равно с приколом. Печатает полученный текст не как тэг, а как простой текст... а закрытие тэга а происходит нормально.
 

sage

Новичок
2Мутник

PHP:
<?php

$str = "[url=http://www.url.xx]Линк какой то[ /u r l]";
$out = preg_replace('/\[url=(.*)\](.*)\[\/url\]/si', '<a href=\\1>\\2</a>', $str);
echo $out;  

?>
 

Мутник

Новичок
2sage

не работает. :( вторая скобка первого тега не меняется и первая скобка второго тэга.
 

Мутник

Новичок
Всем спасибо. Справился.

-~{}~ 17.03.04 17:27:

Все таки то, что было дано работает некорректно:
если на странице имеются две ссылки, то началом получается то, что открыто первым УРЛ, а концом - последнее [/УРЛ] присутствующее в строке...

пользовался этим:

PHP:
$list = preg_replace('/\[урл=(.*)\](.*)\[\/урл\]/si', '<a href=\\1>\\2</a>', $list);
 

Макс

Старожил PHPClub
Hint:
приведенные варианты (хоть и неправильные - жадность надо выключать) позволяют вставлять на страницу произвольный HTML:
PHP:
$list = "[урл=\"\"><img src=\"aaa.jpeg\">]<b onmouseover=\"alert('test')\">click here</b>[/урл]";
echo $list = preg_replace('/\[урл=(.*?)\](.*?)\[\/урл\]/si', '<a href=\\1>\\2</a>', $list);
 

Макс

Старожил PHPClub
:)
вообще-то я показывал, что этот код дырявый и тебе с его помощью на страницу любой HTML/Javascript могут прописать
 

Мутник

Новичок
Да на самом деле тут не особо нужна так сказать защита... Это для себя самого, чтобы кой куда линки пихать. А про дырявость - знаю... :(
 

SiMM

Новичок
Мутник, надо было жадность использовать. Мой же вариант не работал только потому, что когда я боролся с неправильной обработкой тэгов форумами, я заменил в некоторых местах английские буквы схожими по написанию русскими (при указании а href у меня упорно вставлялся лишний код) - всего то надо было набить текст ручками, а не пользоваться Cut&Paste. Прошу прощения за то, что забыл указать на эту особенность.
 
Сверху