| |
|
|
| | У меня есть такая строка. Как дописать чтоб бы можно было http:// или/и www. ставить. Не знаю как добавить значения к этой строке
$comment = preg_replace("#\[url=([a-zA-Z0-9]+)\](.*?)\[/url\]#is", '<A HREF="$1">$2</A>', $comment);
Хелп! | |
| |
|
|
| |
|
|
| |
для: Buhen
(18.07.2007 в 11:40)
| | | Куда ставить? Можно или нужно?
Она у вас и так должно работать...
____________
а... понял в чем дело... попробуйте вот так
#\[url=((?:http://)?[a-zA-Z0-9.]+)\](.*?)\[/url\]#is
|
| |
| |
|
|
| |
|
|
| |
для: kasmanaft
(18.07.2007 в 12:27)
| | | Как сделать чтоб можно было вписать не только http:// но и например ya.ru без http:// так удобнее для пользователей а то без http:// не получается и выходит ссылка мой сайт мой сайт/ya.ru а не просто ya.ru | |
| |
|
|
| |
|
|
| |
для: Buhen
(18.07.2007 в 13:16)
| | |
$comment = preg_replace("#\[url=((?:http://)?[a-zA-Z0-9.]+)\](.*?)\[/url\]#is", '<A HREF="//$1">$2</A>', $comment);
|
| |
| |
|
|
| |
|
|
| |
для: Faraon
(18.07.2007 в 13:21)
| | | В таком случае не будет работать с http:// :)
preg_replace("#\[url=(http://)?([a-zA-Z0-9.]+)\](.*?)\[/url\]#is", '<A HREF="http://$2">$3</A>', $comment);
|
Другое дело что кроме http еще существуют разные https, ftp, edk (или как оно там) и т.д.
Чтобы это все правильно обработать нужно, наверное, использовать preg_replace_callback с чем-то подобным этому: #\[url=((?:http|ftp|https)://)?([a-zA-Z0-9.]+)\](.*?)\[/url\]#is - смотреть что попадает в первую скобку... если ничего - попробовать добавить к адресу http... | |
| |
|
|
| |
|
|
| |
для: kasmanaft
(18.07.2007 в 13:40)
| | | Спасибо вам! Фараон - выбрал твой код. Ну и спасибо конечно же космонавту! | |
| |
|
|
| |
|
|
| |
для: Buhen
(18.07.2007 в 13:48)
| | | Ы... пожалуйста, конечно... но говоря "В таком случае не будет работать с http:// :)" я имел ввиду код Faraon'a... | |
| |
|
|
| |
|
|
| |
для: kasmanaft
(18.07.2007 в 13:40)
| | | Космонавт! Ты написал что надо проверить пападает ли что нибудь из скобки если нет то добавить http:// и использовать preg_replace_callback. Как такое осуществить? если конечно осуществимо? | |
| |
|
|
| |
|
|
| |
для: Buhen
(18.07.2007 в 13:59)
| | | Хотел уже было отправить в мануал (не зря же я ведь писал про скобку и preg_replace_callback.. регулярное выражение привел, осталось всего ничего), но потом вспомнил, как сам когда-то мучался с callback
<?php
function func($regs)
{
if ($regs[1] == '')
$regs[1] = 'http://';
return '<A HREF="'.htmlspecialchars($regs[1].$regs[2]).'">'.$regs[3].'</A>';
}
echo preg_replace_callback("#\[url=((?:http|ftp|https)://)?([^\]]+)\](.*?)\[/url\]#is", 'func', $comment);
?>
|
| |
| |
|
|
| |
|
|
| |
для: kasmanaft
(18.07.2007 в 14:19)
| | | Супер!! Спасибо!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!! RESPECT! | |
| |
|
|
| |
|
|
| |
для: kasmanaft
(18.07.2007 в 14:19)
| | | Вот еще один вариант, правда не знаю насколько удачливый
<?php
if(eregi("http://|https://|ftp://", $comment)){
$s="";
}else{
$s="http://";
}
$comment = preg_replace("#\[url=((?:http://|https://|ftp://)?[a-zA-Z0-9.]+)\](.*?)\[/url\]#is", '<A HREF="'.$s.'$1">$2</A>', $comment);
?>
|
| |
| |
|
|