Sie können einfach überprüfen, ob der Link Ihren String enthält strpos
mit:
$link = 'https://www.youtube.co.uk/watch?v=DBK-Cy9ge4M';
$type = 'youtube';
if (strpos($link, $type) !== false) {
// passed
}
Oder mit einem einfachen regulären Ausdruck verwenden, wenn Sie wollen strengere Kontrolle:
$reg_type = preg_quote($type, '/');
if (preg_match("/^https?:\/\/(www\.)?$reg_type/", $link)) {
// passed
}
Hinweis, Sie sollten Werte, die an den regulären Ausdruck übergeben wurden, mit preg_quote
ausschließen.
Das Muster sollte gerade genug sein. Nicht überkomplizieren. Es ist im Allgemeinen unmöglich, einen perfekten regulären Ausdruck zu schreiben. Zum Beispiel ist es sehr unwahrscheinlich, HTTP (S) -Protokoll Präfix + optional "www." + "youtube." in einer URL, die nicht zu Youtube gehört.
Auch würde ich nicht erwarten, die Antwort mit einem universellen regulären Ausdruck für alle Arten von sozialen Netzwerken zu bekommen. Jeder hat sein eigenes Muster.
Youtube hat auch die 'youtu.be' Domain und https://youtu.be/DBK-Cy9ge4M verweist auf dasselbe Video, das Sie gepostet haben. Du solltest diese Videos auch erlauben (imho). – Arjan