リンクはstrpos
を使用して、サブストリングが含まれている場合は、単純に、チェックすることができます。
$link = 'https://www.youtube.co.uk/watch?v=DBK-Cy9ge4M';
$type = 'youtube';
if (strpos($link, $type) !== false) {
// passed
}
それとも、厳しいチェックしたい場合は、単純な正規表現を使用します。
$reg_type = preg_quote($type, '/');
if (preg_match("/^https?:\/\/(www\.)?$reg_type/", $link)) {
// passed
}
注意を、 preg_quote
を使用して正規表現に渡された値をエスケープする必要があります。
パターンは十分でなければなりません。過度に複雑化しないでください。完璧な正規表現を書くのは一般的に不可能です。たとえば、HTTP(S)プロトコルプレフィックス+オプションの「www」を見つけることはほとんどありません。 + "youtube" Youtubeに属していないURLに
また、私はあらゆる種類のソーシャルネットワークの普遍的な正規表現で答えを得ることは期待しません。それぞれには独自のパターンがあります。 (ルスランOsmanov)としてstropsと
$subject = "https://www.youtube.co.uk/watch?v=DBK-Cy9ge4M";
$pattern = '/^youtube/';
preg_match($pattern, substr($subject,7), $matches);
print_r($matches);
2 - -
YouTubeのも 'youtu.be'ドメインを持っています、https://youtu.be/DBK-Cy9ge4Mはあなたが投稿した同じビデオにリンクしています。あなたはまた、これらのビデオ(imho)を許可する必要があります。 – Arjan