2012-05-06 2 views
0

내 사이트에 다음 기능을 구현하고 싶습니다. 사용자가 무언가를 올리면 사진에 대한 링크 인 하나의 링크도 포함시킬 수 있습니다.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

당신을 감사합니다! 나는 그 중 하나를 시도 할 것입니다 :) – weltschmerz

+1

위대한, 도와 줘서 기뻐! –

관련 문제