PHP文件操作

读取数据库文件路径复制到另一个目录

代码:

<?phpdate_default_timezone_set('Asia/Shanghai'); // 设置时区
$db_host = '127.0.0.1';
$db_name = 'test_qyg_datas';
$db_user = 'root';
$db_pwd = 'xxx';
$mysqli = new mysqli($db_host, $db_user, $db_pwd, $db_name);
$mysqli->set_charset("utf8");$sql_array = array('SELECT image FROM buser_goods_list where image <> "" order by bid ','SELECT image FROM supplier_buser_goods_list where image <> "" order by bid ','SELECT image FROM works_sku where image <> "" order by id ','SELECT image FROM supplier_works_sku where image <> "" order by id '
);
$fs = DIRECTORY_SEPARATOR; // 文件分隔符
$root = "{$fs}data{$fs}www{$fs}test";
$root_cp = "{$fs}data{$fs}www{$fs}img_cp";
$log = 'log.log';foreach ($sql_array as $key => $value) {file_put_contents($log, date('Y-m-d H:i:s') . "  查询SQL:$value\r\n", FILE_APPEND);$result = $mysqli->query($value);if($result == false){file_put_contents($log, date('Y-m-d H:i:s') . "  SQLERROR  查询SQL失败:$value\r\n", FILE_APPEND);continue;}try{while ($row = $result->fetch_assoc()) {if(empty($row['image'])) continue;$images = explode(',', $row['image']);foreach ($images as $k => $img) {if(stripos($img, 'http') !== false){// 文件路径包含http$preg = '/^(http:\/\/?[^\/]+)/i'; // 匹配http域名正则preg_match($preg, $img,$res);$img = str_replace($res[0], '', $img);}if(!file_exists($root . $img)){file_put_contents($log, date('Y-m-d H:i:s') . "  ERROR  文件不存在:$img\r\n", FILE_APPEND);continue;}$img_index = strripos($img, '/') + 1;$folder = substr($img, 0, $img_index);$file = substr($img, $img_index);$root_cp_tmp = $root_cp . $folder;// 判断文件夹是否存在if(!file_exists($root_cp_tmp)){$res = mkdir(iconv("UTF-8", "GBK", $root_cp_tmp), 0777, true); // 创建文件夹if($res == true){file_put_contents($log, date('Y-m-d H:i:s') . "  TRUE  创建目录:$root_cp_tmp\r\n", FILE_APPEND);}else{file_put_contents($log, date('Y-m-d H:i:s') . "  ERROR  创建目录失败:$root_cp_tmp\r\n", FILE_APPEND);continue;}}// 执行复制文件命令exec("cp $root$img $root_cp_tmp", $result_info);if(empty($result_info)){file_put_contents($log, date('Y-m-d H:i:s') . "  TRUE  复制成功:$img\r\n", FILE_APPEND);}else{file_put_contents($log, date('Y-m-d H:i:s') . "  ERROR  复制失败:" . json_encode($result_info) . "  文件:$img\r\n", FILE_APPEND);}}}}catch(Exception $e){file_put_contents($log, date('Y-m-d H:i:s') . "  SYSERROR  报错了:" . $e->getMessage() . "\r\n", FILE_APPEND);}}

PHP文件操作-读取数据库文件路径复制到另一个目录相关推荐

  1. 读取Java文件到byte数组的三种方式及Java文件操作大全(包括文件加密,String加密)

    读取Java文件到byte数组的三种方式 package zs;import java.io.BufferedInputStream; import java.io.ByteArrayOutputSt ...

  2. C#操作mdb数据库文件

    C#操作mdb数据库文件 源码如下: namespace CSharpWindowsFormsApplication1 {public partial class Form1 : Form{publi ...

  3. JDBC编程——从属性资源文件中读取数据库的信息

    JDBC连接数据库(通过类加载的方式注册驱动) 从属性资源文件中读取数据库的信息,这里首先是给大家介绍一下注册驱动的另一种方式--通过类加载的方式注册驱动,这种方式也是程序员经常使用的一种,因为类加载 ...

  4. python read_excel 参数_详解pandas库pd.read_excel操作读取excel文件参数整理与实例

    详解pandas库pd.read_excel操作读取excel文件参数整理与实例 来源:中文源码网    浏览: 次    日期:2019年11月5日 详解pandas库pd.read_excel操作 ...

  5. python read_excel header_详解pandas库pd.read_excel操作读取excel文件参数整理与实例

    除了使用xlrd库或者xlwt库进行对excel表格的操作读与写,而且pandas库同样支持excel的操作:且pandas操作更加简介方便. 首先是pd.read_excel的参数:函数为: pd. ...

  6. Java文件操作大全(包括文件加密,String加密)

    1.创建文件夹 //import java.io.*; File myFolderPath = new File(%%1); try { if (!myFolderPath.exists()) myF ...

  7. C文件操作、读写文件 C++文件读写、文件操作

    转自  飘羽随风 基于C的文件操作  在ANSI C中,对文件的操作分为两种方式,即流式文件操作和I/O文件操作,下面就分别介绍之. 一.流式文件操作 这种方式的文件操作有一个重要的结构FILE,FI ...

  8. Objective-C文件和目录操作,IOS文件操作,NSFileManager使用文件操作

    Objective-C文件和目录操作,IOS文件操作,NSFileManager使用文件操作: objective-c通过使用NSFileManager类来管理和操作文件.目录,NSFileManag ...

  9. Java编程那些事儿——文件操作之写文件

    Java编程那些事儿--文件操作之写文件 Java, Java培训, Java基础, Java学习, Java教程 11.3.1.4 写文件 如前所述,将程序内部的数据输出到程序外部的数据源,应该使用 ...

  10. android读取assets中的html文件,android读取assets文件.htm

    android读取assets文件 android读取assets文件 style='FONT-SIZE: 14px; FONT-FAMILY: verdana, "ms song" ...

最新文章

  1. c++重载运算符_C/C++编程笔记:运算符重载丨重载C++中的New和Delete运算符
  2. 解释i节点在文件系统中的作用?超级块作用?
  3. 使用Markdown写数学公式打出百分号%
  4. vue 附件上传获取附近内容_vue实现文件上传功能
  5. 贵州出台首部大数据地方法规 数据开放引入负面清单
  6. 捷联惯导系统学习4.3(静基座误差)
  7. quarkus-contexts和DI介绍(原理)
  8. Mac苹果电脑登录其他用户教程
  9. 基于WinPcap的网络流量在线分析系统的设计与实现
  10. 常用软件开发安装包+破解分享
  11. DS18B20 数字温度传感器的使用和基于RT-Thread操作系统的实现
  12. 微信网页授权并获取用户信息
  13. 2019.04流量副卡方案对比 - (日租卡类)月租在20元以下的
  14. 赛后复盘 - DataCastle 科大讯飞AI营销算法大赛
  15. 没有人觉得B站的搜索很难用吗?— 怎么用Tableau(数据可视化)帮助饭圈女孩磕CP
  16. win10DCH驱动卸载后无法安装标准驱动的问题(与首选图形处理器拒绝访问)
  17. EIGRP协议工作过程与配置详解
  18. 使用MATLAB进行聚类分析K-means(二维-三维)
  19. matlab累积概率分布,[转载]Matlab累积分布函数cdf与概率密度函数pdf
  20. 【区块链与密码学】第9-3讲:群签名方案的安全性要求

热门文章

  1. eclipse 大小写快捷键_idea中的一些常用快捷键
  2. Go基础:不同数据类型作为函数参数传递值传递/地址(引用)传递判断
  3. Javascript特效:侧边广告
  4. HTML:颜色列表(自用)
  5. 算法笔记_面试_0.刷leetcode攻略
  6. cartographer探秘第一章之安装编译与参数配置
  7. 针对python矩阵运算的理解
  8. LeetCode--032--最长有效括号(java)
  9. UVaOJ 10328 Coin Toss
  10. HTML学习笔记——DOCTYPE和DTD,标准模式和兼容模式