我想确保链接来自所选的社交类型。 帮助!!
$socialType = 'youtube';
$link = 'https://www.youtube.co.uk/watch?v=DBK-Cy9ge4M';
if (!preg_match("/^(http|https):\\/\\/[a-z0-9_]+$socialType*\\.[_a-z]{2,5}"."((:[0-9]{1,5})?\\/.*)?$/i",$link))
{
return Response::json('inValid');
}
{
return Response::json('Valid');
}
答案 0 :(得分:0)
如果链接包含使用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的网址中。
另外,我不希望通过各种社交网络的通用正则表达式得到答案。每个都有自己的模式。
答案 1 :(得分:0)
将有两种选择 - 1.使用preg_match -
$subject = "https://www.youtube.co.uk/watch?v=DBK-Cy9ge4M";
$pattern = '/^youtube/';
preg_match($pattern, substr($subject,7), $matches);
print_r($matches);
2。 (Ruslan Osmanov饰演) -
$socialType = 'youtube';
$link = 'https://www.youtube.co.uk/watch?v=DBK-Cy9ge4M';
if (strpos($link, $socialType) !== false) {
return Response::json('Valid');
}