我编写了代码,可以从我的页面下载大约5000部所有视频。但是我有一些问题。首先,我正在使用xampp。我已经使用每个视频的描述和日期为每个视频制作了文件名,最后添加了.mp4。像这样的“ XXXX XXXXXXX XXXXX 2020年2月9日。mp4”。该文件名是根据描述和发布日期自动生成的。但是当我在file_put_contents中使用它时,它给了我这个错误:file_put_contents(filename.mp4):无法打开流:第51行的C:\ xampp \ htdocs \ xxxx \ xxxx.php中没有此类文件或目录。
如果我输入静态名称,例如'X.mp4',则会下载所有文件,但由于名称相同,它们会相互替换。请帮我解决这个问题。还可以使用此php代码轻松获取大量数据吗?
try {
// Returns a `FacebookFacebookResponse` object
$response = $fb->get(
'XXXXX/videos?fields=source,description,created_time,live_status&limit=5',
$access_token
);
} catch(Facebook\Exceptions\FacebookResponseException $e) {
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
$graphEdge = $response->getGraphEdge();
foreach ($graphEdge as $graphNode)
{
//$live = $graphNode->getField('live_status');
//if($live != 'VOD')
//{
// continue;
//}
$url = $graphNode->getField('source');
//echo $url;
$date = $graphNode->getField('created_time');
$date = $date->format('d');
$date = $date .' Sep 2017';
$name = $graphNode->getField('description');
$res = preg_replace("/[^a-zA-Z0-9\s-]/", "", $name);
if (strlen($res) > 89) {
$res = substr($res,0,89);
}
$res = $res.' '.$date.'.mp4';
echo $res;
echo '<br>';
if(file_put_contents($res,file_get_contents($url))) {
echo "File downloaded successfully";
}
else {
echo "File downloading failed.";
}
echo '<br>';
}```
离话题有点远。您是否知道(或想要编写代码)简单的php / mysql以执行以下操作:
1)表单以选择视频文件并上传到FB组(表单的用户已经登录到应用程序内的FB-他们可以通过单选按钮选择哪个Public GROUP或自己的时间表来发布视频)2)需要返回FB中的视频URL,并将其放入具有用户名和视频链接的mysql表中。
将为此解决方案付费。
罗伊