|
|
|
| здравствуйте.это вопрос о ссылках в комментариях.
этот код размещает ссылки,можно размещять видимое фото изменив код,так вот в чем вопрос,как создать в одном коде используя регулярные выражения,например при .jmg .png .giv ,был редирект на нужный обработчик?
function replace($url){
$url = str_replace("\\r","\r",$url);
$url = str_replace("\\n","\n<BR>",$url);
$url = str_replace("\\n\\r","\n\r",$url);
$in=array(
'`((?:https?|ftp)://\S+[[:alnum:]]/?)`si',
'`((?<!//)(www\.\S+[[:alnum:]]/?))`si'
);
// это для ссылок
$out=array(
'<a style="color:navy;" href="$1" rel="nofollow">$1</a>',
'<a style="color:navy;" href="http://$1" rel=\'nofollow\'>$1</a>'
);
// это для фото
$out=array(
'<img src="$1" rel="nofollow">',
'<img src="http://$1" rel=\'nofollow\'>'
);
return preg_replace($in, $out, $url);
}
?>
|
| |
|
|
|
|
|
|
|
для: rurgil
(09.03.2014 в 12:48)
| |
<?php
function replace($url){
$url = str_replace("\\r","\r",$url);
$url = str_replace("\\n","\n<BR>",$url);
$url = str_replace("\\n\\r","\n\r",$url);
$in=array(
'`((?:https?|ftp)://\S+[[:alnum:]]/?)`si',
'`((?<!//)(www\.\S+[[:alnum:]]/?))`si',
'`((?:https?|ftp)://\S+[[:alnum:]]\.(png|jpeg|jpg|gif)\b`si',
'`((?<!//)(www\.\S+[[:alnum:]]\.(png|jpeg|jpg|gif)\b))`si'
);
// это для ссылок и фото
$out=array(
'<a style="color:navy;" href="$1" rel="nofollow">$1</a>',
'<a style="color:navy;" href="http://$1" rel=\'nofollow\'>$1</a>',
'<img src="$1" rel="nofollow">',
'<img src="http://$1" rel=\'nofollow\'>'
);
return preg_replace($in, $out, $url);
}
|
Подходит? | |
|
|
|
|
|
|
|
для: duhon
(12.03.2014 в 14:57)
| | к великому сожалению нет,выдает ошибку
Warning: preg_replace() [function.preg-replace]: Compilation failed: missing ) at offset 54 in /home/shamil/domains/tin-l.ru/public_html/admin/functions.php on line 319
|
может с условием и preg_match нужно??? | |
|
|
|
|
|
|
|
для: rurgil
(13.03.2014 в 23:03)
| | практически разобрался, в вашей поправке не хватало символов,я исправил,и все сработало
function replace($url){
$url = str_replace("\\r","\r",$url);
$url = str_replace("\\n","\n<BR>",$url);
$url = str_replace("\\n\\r","\n\r",$url);
$in=array(
'`((?:https?|ftp)://\S+[[:alnum:]]/?)`si',
'`((?<!//)(www\.\S+[[:alnum:]]/?))`si',
'`((?:https?|ftp)://\S+[[:alnum:]]\.(png|jpeg|jpg|gif)\b/?)`si',
'`((?<!//)(www\.\S+[[:alnum:]]\.(png|jpeg|jpg|gif)\b/?))`si'
);
$out=array(
'<a href="$1" rel="nofollow">$1</a>',
'<a href="http://$1" rel=\'nofollow\'>$1</a>',
'<img style="width:200px;" src="$1" alt="" />',
'<img style="width:200px;" src="http://$1" alt="" />'
);
return preg_replace($in, $out, $url);
}
|
но теперь вместе с фото всплывает rel="nofollow" . так как это ссылочный атрибут для "а",
вот для img,src чтобы можно было придумать в регулярном выражении!""??? | |
|
|
|