링크가 포함 된 문자열이 있습니다. 나는 나의 링크가 URL에 따라 다른 것들을 수행하도록 PHP를 원한다.PHP에서 문자열로 된 링크를 찾습니다. 일반 및 유튜브 링크와 다름
답 : 모든
function fixLinks($text)
{
$links = array();
$text = strip_tags($text);
$pattern = '!(https?://[^\s]+)!';
if (preg_match_all($pattern, $text, $matches)) {
list(, $links) = ($matches);
}
$i = 0;
$links2 = array();
foreach($links AS $link) {
if(strpos($link,'youtube.com') !== false) {
$search = "!(http://.*youtube\.com.*v=)?([a-zA-Z0-9_-]{11})(&.*)?!";
$youtube = '<a href="youtube.php?id=\\2" class="fancy">http://www.youtube.com/watch?v=\\2</a>';
$link2 = preg_replace($search, $youtube, $link);
} else {
$link2 = preg_replace('@(https?://([-\w\.]+)+(:\d+)?(/([\-\w/_\.]*(\?\S+)?)?)?)@', '<a href="$1" target="_blank"><u>$1</u></a>', $link);
}
$links2[$i] = $link2;
$i++;
}
$text = str_replace($links, $links2, $text);
$text = nl2br($text);
return $text;
}
'무엇을 eregei'을?! –
나는 더 열심히 노력하고 더 많은 정규 표현식을 던질 것이다. 이것은 일반적으로 시야에서 완전히 벗어나는 것을 돕습니다. :) - 콜백이있어서, 먼저 모든 링크를 추출한 다음 youtube를 찾을 수 있습니다 : http://stackoverflow.com/questions/6861324/how-to-extract-http -links-a-paragraph-and-store-them-in-a-array-on-php/6861706 # 6861706 - 여기 youtube regex : http : // stackoverflow.co.kr/questions/6556559/youtube-api-extract-video-id/6556662 # 6556662 – hakre
글쎄, 내가 찾은 일부 테스트 일뿐입니다. 나는 제안을 위해 열려 있습니다. 고마워요 – Holsteinkaa