为了账号安全,请及时绑定邮箱和手机立即绑定

如果视频不存在,则仅从数据库中输出无效的 YouTube ID

如果视频不存在,则仅从数据库中输出无效的 YouTube ID

PHP
holdtom 2023-06-18 17:06:31
我的数据库中存储了 YouTube 视频 ID。我正在尝试输出仅无效的 ID。我正在使用get_headers / oembed,它允许我检查 YouTube 上是否存在视频。然后我循环遍历 ID。这目前正在工作,但它显示了我表中的所有 YouTube ID,然后将文本“无效”添加到无效的那些。我只需要显示那些无效的 - 没有别的!如果有人不介意的话,我需要一些帮助。我真的很感激。代码:$servername = "localhost";$username = "";$password = "";$dbname = "";// Create connection$conn = new mysqli($servername, $username, $password, $dbname);// Check connectionif ($conn->connect_error) {   die("Connection failed: " . $conn->connect_error);}$sql = "SELECT src_id FROM youtube_videos ";$result = $conn->query($sql);while($row = $result->fetch_assoc()) {    echo 'Video ID: '.$row["src"];    $headers = get_headers('http://www.youtube.com/oembed?url=http://www.youtube.com/watch?v='.$row["src_id"].'');    if (!strpos($headers[0], '200')) {        echo " is invalid";    } else {        echo "";    }    echo 'no results';}
查看完整描述

1 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

如果标题代码不是 200,只需打印视频 ID?


while ($row = $result->fetch_assoc()) {

    $headers = get_headers('http://www.youtube.com/oembed?url=http://www.youtube.com/watch?v='.$row["src_id"].'');

    if (!strpos($headers[0], '200')) {

        echo "Video ID: ".$row['src']." is invalid\n";

    }

}

可能还想研究一种更好的获取响应标头的方法,该方法可能并非对所有情况都 100% 准确。我建议使用类似的东西


while ($row = $result->fetch_assoc()) {

    $headers = get_headers('http://www.youtube.com/oembed?url=http://www.youtube.com/watch?v='.$row["src_id"].'');

    if (substr($headers[0], 9, 3) != 200) {

        echo "Video ID: ".$row['src']." is invalid\n";

    }

}


查看完整回答
反对 回复 2023-06-18
  • 1 回答
  • 0 关注
  • 102 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信