PHP 代码:根据 ID 下载单个网站图片
PHP 代码:根据 ID 下载单个网站图片
以下 PHP 代码片段演示了如何根据输入的网站 ID 来获取并下载单个网站的图片。
/** download */
if ($action == 'down') {
$pagesize = 3;
$curpage = $curpage + 1;
$where = "web_status=3";
if ($type == 'part') {
$where .= " AND web_pic=''";
}
$id = isset($_GET['id']) ? intval($_GET['id']) : 0; // 获取输入的id
if ($id > 0) {
$where .= " AND web_id=$id"; // 根据输入的id筛选记录
}
$websites = $DB->fetch_all("SELECT web_id, web_name, web_url FROM $table WHERE $where ORDER BY web_id DESC LIMIT $start, $pagesize");
$totalnum = $DB->get_count($table, $where);
$totalpage = @ceil($totalnum / $pagesize);
echo '<div style="font-size: 12px; line-height: 25px; padding: 10px;">';
if ($curpage <= $totalpage) {
$savepath = '../'.$options['upload_dir'].'/website/';
echo '<meta http-equiv="refresh" content=3;url="'.$fileurl.'?act='.$action.'&type='.$type.'&page='.$curpage.'">';
echo '<h3>共需采集 '.$totalpage.' 页,每次下载 '.$pagesize.' 张,当前第 '.$curpage.' 页,正在下载远程图片...</h3>';
foreach ($websites as $row) {
$filepath = save_to_local(str_replace('/', '.', $row['web_url']), $savepath);
$filesize = filesize($filepath);
if ($filesize < 10240) {
$newpath = str_replace('../image/', '', $filepath);
if (!empty($newpath)) {
$status = '下载成功!';
$DB->update($table, array('web_pic' => $newpath), array('web_id' => $row['web_id']));
} else {
$status = '下载失败!';
}
} else {
$status = '文件大小超过限制!';
}
echo $row['web_id'].' - '.$row['web_name'].' ------ '.$status.'<br />';
}
echo '<h3>本页已采集完成,5秒后将自动采集下一页...<h3>';
} else {
echo '<h3>已经将所有的远程图片本地化!</h3>';
}
echo '</div>';
}
该代码片段增加了对 id 参数的处理,用户可以通过访问 $fileurl?act=down&type=full&id=1 来获取 id 为 1 的网站图片。
注意:
- 代码中的
$table、$DB、$options['upload_dir']、$fileurl、save_to_local()等变量和函数需要根据实际情况进行修改。 - 代码中假设数据库中存在
web_id、web_name和web_url字段,用于存储网站信息。 - 该代码仅供参考,实际应用中可能需要根据需求进行调整和完善。
原文地址: https://www.cveoy.top/t/topic/qz3z 著作权归作者所有。请勿转载和采集!