найти URL изображения в комментарии и преобразовать в тег img - PullRequest
2 голосов
/ 30 октября 2011

Есть ли способ найти источник изображения в комментарии и преобразовать его в тег img?

Я нашел этот код, чтобы найти URL и преобразовать его в ссылку:

$comment = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]","<a rel=\"nofollow\" href=\"\\0\">\\0</a>", $comment);

Но теперь я хочу сделать то же самое для изображения.

Например, если у меня есть комментарий ниже:

This is an image http://localhost/website/image.gif

Я хочу, чтобы он стал

This is an image <img src="http://localhost/website/image.gif" />

1 Ответ

2 голосов
/ 30 октября 2011

Вам нужно найти все URL-адреса в комментарии и использовать их в качестве ссылки или изображения на основе расширения:

$comment = "hi! its a link: http://www.google.com and this is image http://upload.wikimedia.org/wikipedia/commons/thumb/5/52/Liliumbulbiferumflowertop.jpg/220px-Liliumbulbiferumflowertop.jpg  and this is ftp link ftp://domain.com/file.zip";
echo $comment."<br>-------------------------------------<br>";

$m = preg_match_all( "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/", $comment, $match);

if ($m) {
    $links = $match[0];
    foreach($links as $link) {
        $extension = strtolower(trim(@end(explode(".",$link))));
        switch($extension) {
            case 'gif':
            case 'png':
            case 'jpg':
            case 'jpeg':
                $comment = str_replace($link, '<img src="'.$link.'">', $comment);       
                break;
            default:
                $comment = str_replace($link, '<a rel="nofollow" href="'.$link.'">'.$link.'</a>', $comment);
                break;
        }
    }
}

echo $comment."<br><br>";

DEMO: http://codepad.viper -7.com / d3T1Xw

Работает с http, https, ftp, ftps

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...