Автор |
изменение bbcode и работа с preg_replace |
2b
Пользователь
Сообщений: 4
Зарегистрирован: 05.06.08 |
Опубликовано 05/06/2008 01:25:14 |
|
|
В общем вопрос такой...
Стал редактировать ббкоды в maincore.php
изменил стандартный тег [img][/img] на:
$text = preg_replace("#\[img\]((http|ftp|https|ftps)://)(.*?)(\.(jpg|jpeg|gif|png|JPG|JPEG|GIF|PNG))\[/img\]#sie","'<a href=\'\\1'.str_replace(array('.php','?','&','='),'','\\3').'\\4\' class=\'highslide\' onClick=\'return hs.expand(this);\'><img src=\'\\1'.str_replace(array('.php','?','&','='),'','\\3').'\\4\' style=\'width: 300px; border: none;\'><div style=\'width: 300px; text-align: right;\'><img src=\'/theme/diz/increase.gif\' style=\'border: none;\'> Увеличить</div></a>'",$text);
Но тут появилась проблема... код обрезается из за строчки
onClick=\'return hs.expand(this);\'
Если её убрать то ничего не обрезает, а если он будет то отрезается с начала и до конца этой строчки
В общем вопрос такой.. почему он обрезает тег onClick и как это исправить? :( |
|
Автор |
RE: изменение bbcode и работа с preg_replace |
AlexALX
Супер Администратор

Сообщений: 401
Зарегистрирован: 30.01.08 |
Опубликовано 05/06/2008 10:04:37 |
|
|
У тебя много ошибок в регулярном выражении, попробуй писитать в нете дето про регулярные выражения и функцию preg_replace.
А вообще тут ошибки заключаются в том, что в preg replace символы . $ / ( )и некоторые другие считаются спец символами, а чтобы они были нормальными, то нужно ставить перед ними "\" :) |
|
Автор |
RE: изменение bbcode и работа с preg_replace |
2b
Пользователь
Сообщений: 4
Зарегистрирован: 05.06.08 |
Опубликовано 05/06/2008 11:00:10 |
|
|
Дело в том что даже если написать
onClick=\'\'
То он тоже обрезает... не пойму почему..
|
|
Автор |
RE: изменение bbcode и работа с preg_replace |
AlexALX
Супер Администратор

Сообщений: 401
Зарегистрирован: 30.01.08 |
Опубликовано 05/06/2008 12:45:58 |
|
|
2b написал:
Дело в том что даже если написать
onClick=\'\'
То он тоже обрезает... не пойму почему..
Скобки тоже спец символы. Я про ( и ) |
|
Автор |
RE: изменение bbcode и работа с preg_replace |
2b
Пользователь
Сообщений: 4
Зарегистрирован: 05.06.08 |
Опубликовано 07/06/2008 04:03:11 |
|
|
В общем извратился, но вопрос решил )))
Вот что в итоге сделал:
$text = preg_replace('#\[img\]((http|ftp|https|ftps)://)(.*?)(\.(jpg|jpeg|gif|png|JPG|JPEG|GIF|PNG))\[/img\]#si','<div class="thumbs"><script type="text/javascript">t2="onClick";t3="=\'return hs.expand(this)\'";t1="<a href=\'\\1'.str_replace(array('.php','?','&','=' ,'','\\3' .'\\4\' class=\'highslide\' ";document.write(""+t1+""+t2+""+t3+"><img width=\'150\' src=\'\\1'.str_replace(array('.php','?','&','=' ,'','\\3' .'\\4\' style=\'border:none;\'><div style=\'width: 150px; text-align: right;\'><img src=\'/theme/diz/increase.gif\' style=\'border: none;\'> Увеличить</div></a>");</script></div>',$text);
Изврат, но что уж делать  |
|
Автор |
RE: изменение bbcode и работа с preg_replace |
AlexALX
Супер Администратор

Сообщений: 401
Зарегистрирован: 30.01.08 |
Опубликовано 07/06/2008 12:13:35 |
|
|
2b написал:
В общем извратился, но вопрос решил )))
Вот что в итоге сделал:
$text = preg_replace('#\[img\]((http|ftp|https|ftps)://)(.*?)(\.(jpg|jpeg|gif|png|JPG|JPEG|GIF|PNG))\[/img\]#si','<div class="thumbs"><script type="text/javascript">t2="onClick";t3="=\'return hs.expand(this)\'";t1="<a href=\'\\1'.str_replace(array('.php','?','&','='),'','\\3').'\\4\' class=\'highslide\' ";document.write(""+t1+""+t2+""+t3+"><img width=\'150\' src=\'\\1'.str_replace(array('.php','?','&','='),'','\\3').'\\4\' style=\'border:none;\'><div style=\'width: 150px; text-align: right;\'><img src=\'/theme/diz/increase.gif\' style=\'border: none;\'> Увеличить</div></a>");</script></div>',$text);
Изврат, но что уж делать :)
1. Отключаем смайлы.
2. ( и ) - спец символы, как оно заработало - хз, это не правельно. |
|
Автор |
RE: изменение bbcode и работа с preg_replace |
2b
Пользователь
Сообщений: 4
Зарегистрирован: 05.06.08 |
Опубликовано 08/06/2008 04:32:35 |
|
|
Работает .
Да, смайлы забыл выключить. |
|