2012-05-06 4 views
0

私のサイトに次の機能を実装したいと思います。ユーザーが何かを投稿すると、写真へのリンクである1つのリンクも含めることができます。php - テキストの画像へのリンクを見つけてリンクに変換

Hello look at this awesome picture. It is hilarious isn't it? 
http://www.google.com/image.jpg 

次に、そのテキストがに変換する必要があります:ユーザーの投稿にこのようなものを想像し

Hello look at this awesome picture. It is hilarious isn't it? 
<a target="_blank" href="http://www.google.com/image.jpg"> 
    <img src="http://www.google.com/image.jpg" alt=""/> 
</a> 

だから私はリンクのために、それがリンクを見つけた場合は、テキストを検索し、いくつかのPHPスクリプトを必要とし、画像にリンクしていることを確認します。また、httpで始まらないリンクや、httpsで始まるリンクも認識できる必要があります。

どうすればよいですか?

どうもありがとう:)

組み合わせたこれら二つのリンクについてはどのようにデニス

答えて

2

best way to determine if a URL is an image in PHP

PHP Regular Expression Text URL to HTML Link

$url="http://google.com/image.jpg"; 

function isImage($url){ 
    $pos = strrpos($url, "."); 
    if ($pos === false) 
     return false; 
    $ext = strtolower(trim(substr($url, $pos))); 
    $imgExts = array(".gif", ".jpg", ".jpeg", ".png", ".tiff", ".tif"); // this is far from complete but that's always going to be the case... 
    if (in_array($ext, $imgExts)) 
     return true; 
return false; 
} 

$test=isImage($url); 
if($test){ 
    $pattern = '/((?:[\w\d]+\:\/\/)?(?:[\w\-\d]+\.)+[\w\-\d]+(?:\/[\w\-\d]+)*(?:\/|\.[\w\-\d]+)?(?:\?[\w\-\d]+\=[\w\-\d]+\&?)?(?:\#[\w\-\d]*)?)/'; 
    $replace = '<a href="$1">$1</a>'; 
    $msg = preg_replace($pattern , $replace , $msg); 
    return stripslashes(utf8_encode($msg)); 
} 
+1

ありがとうございました!私はその1つを試します:) – weltschmerz

+1

偉大な、助けてうれしい! –

関連する問題