我尝试用php发出sql请求,选择有youtube链接的帖子,但它不起作用。
这就是我所做的:
$bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
$motif='#http(?:s?)://(?:www\.)?youtu(?:be\.com/watch\?v=|\.be/)([\w\-\_]+)(&(amp;)?[\w\?=]*)?#';
$sql = "SELECT * FROM posts WHERE post REGEXP :motif";
$params = array(':motif'=>$motif);
$search_for_yt_links = $bdd->prepare($sql);
$search_for_yt_links->execute($params);
$result = $search_for_yt_links->fetch();
var_dump($result);
我得到了这个结果:
false
这个是:
array (size=1)
'post' => string 'Look at my new video https://www.youtube.com/watch?v=y2Xef0CnUYA. Awesome ?' (length=75)
不幸的是它不起作用。 你能救我吗?
感谢。
答案 0 :(得分:0)
试试这个正则表达式。
'http(s)?://(www\.)?youtu(be\.com/watch\\?v=|\.be/)([[:alnum:]]+)'
答案 1 :(得分:0)
此正则表达式检测完整链接和短链接(youtu.be)
"/\s*[a-zA-Z\/\/:\.]*youtu(be.com\/watch\?v=|.be\/)([a-zA-Z0-9\-_]+)([a-zA-Z0-9\/\*\-\_\?\&\;\%\=\.]*)/i"