![]() |
регулярные выражения. вопрос
вопрос:
PHP код:
Мне надо бы сделать так, чтобы оно жрало ссылки вида www.site.ru site.ru www.ste.ru?parametr=zna4enie а то в таком виде кушает только вместе в протоколом и без параметров |
http://regexlib.com/Search.aspx?k=link
посмотри ) |
Спасиба. Я весь гугл обшарил, а эту штуку не находил)
|
Не блин... хрень какая-то... там все служебные символы закручены через кодировки и я хрен славливаюсь...
|
PHP код:
|
А это тебе для чего? Если тебе этим в чате или в форуме фильтровать, то под него попадут все любители не ставить пробел после точки, как тут "Привет.Как дела" - <a href="//Привет.Как/"...
Код:
$mess=preg_replace('!(https?:|ftp:|)(//|)([\w]+\.\w[\w.]+)/?([^\<\>\"\n\r\\\\?]*|)(\?[^\<\>\"\n\r\\\\]*|)!i', '<a href="\1//\3/\4\5" target="_blank">\1//\3/\4\5</a>', $mess); |
Hidden спасибо. так работает... но теперь смайлики перестали отображаться)))))))))))
PS мне под гостевуху.... |
Цитата:
|
адреса должны иметь вид
Код:
images/smiles/smile37.gifКод:
<img src="images/smiles/<a href="//smile9.gif/" target="_blank">//smile9.gif/</a>" border="0">все исправил. теперь ситуация описана актуально) |
Ну так она не может отличить имя с расширением от домена первого и второго уровня, можно не принимать единичный слеш перед доменным именем, можно фильтровать возможные доменные имена первого уровня, а можно фильтровать возможные расширения файлов, а вообще, смайлы должны обрабатываться после него. Когда я обрабатываю ббкоды, я их превращаю в промежуточную форму, чтоб не попадали под следующие выражения, а потом, всех сразу, в html
|
Простите неразумного. Меня сегодня совсем мухи засидели)))
Цитата:
|
Цитата:
|
Э.... не совсем понял...
что именно нужно привести? Полные имена? |
Цитата:
Пример: :) ;) :D :p ... |
а... ну это просто. Разновидности имеют такие символы...
1) :) 2) !) 3) :lol: вроде ниче опасного [hidden *] Есть такая галочка "Отключить смайлики в тексте" ;) [dron-anarchy] Я запомню... ;) [Great] А никто ее еще не поставил :) PS закрываем-с... |
Вложений: 1
Ну вот, вроде всё предусмотрел :)
В аттаче, т.к. форум фильтрует |
BB коды на регекспах не пишут - потенциальные места для XSS. Используйте конечный автомат, на phpclub'е видел отличную реализацию недавно.
|
Цитата:
Цитата:
|
Цитата:
Ошибку может допустить любой, хотя вероятность появления ошибки с повышением опыта уменьшается. |
Цитата:
Цитата:
|
Ну тогда же почему бы и не пойти путем, где может встретиться меньше ошибок?
Я вобщем-то не говорил взять скрипт того чувака, а советовал писать не через регекспы, а через StateMachine(как тот чел и делал) - вероятность ошибок будет сведена к минимуму. |
| Время: 20:00 |