私はリンクを含む文字列を持っています。私は私のリンクで、URLに応じてさまざまなことをするために私のPHPをします。PHPで文字列のリンクを検索します。通常とYouTubeのリンクとの違い
回答:すべての
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 -php上の段落と段落からのリンク-php上の配列/ 6861706#6861706 - youtube regex:http:// stackoverflowのためにここに。com/questions/6556559/youtube-api-extract-video-id/6556662#6556662 – hakre
それはちょうど私が見つけたいくつかのテストです。私は提案のために開いています。ありがとうございます – Holsteinkaa