用PHP实现维护文件代码
PHP有很多与文件系统相关的函数,不仅可以帮助你打开文件,还可以显示目录内容、移动文件等。很多人甚至使用PHP写出了基于Web的文件管理器。
首先需要提醒一些关于文件路径的东西:在Windows你可以在文件路径中使用斜线“/”或反斜线“\”,而其他操作系统仅使用”/”。出于兼容性考虑,以下实例使用“/”的表示方法:
下面的简单脚本显示了一个基本的目录列表。注释在代码中并解释了每一步:
<? /* 在变量 $dir_name中给出希望访问的目录完整路径*/
$dir_name = "/home/me/";
/* 创建句柄,打开给定目录的结果*/
$dir = opendir($dir_name);
/* 启动一段文本添加到将要放置列表元素(文件名)的地方 */
$file_list = "<ul>";
/* 使用while语句,读取所打开目录的所有元素。如果文件名既非“.”及“..”则在列表中输出文件名*/
while ($file_name = readdir($dir)) {
if (($file_name != ".") && ($file_name != "..")) {
$file_list .= "<li>$file_name";
}
}
/* 终结列表 */
$file_list .= "</ul>";
/* 关闭打开的目录句柄并结束PHP代码段*/
closedir($dir);
?>
<!-- Start your HTML -->
<HTML>
<HEAD>
<TITLE>Directory Listing</TITLE>
</HEAD>
<BODY>
<!-- Use PHP to print the name of the directory you read -->
<P>Files in: <? echo "$dir_name"; ?></p>
<!-- Use PHP to print the directory listing -->
<? echo "$file_list"; ?>
</BODY>
</HTML>
恭喜,这时已经有了一个目录列表。需要记住,要读取目录或文件(马上你会见到)中的内容用户所在的PHP运行平台必须至少对目录或文件有read权限。
以下例子为如何复制文件:
<? /* 将需要复制的文件路径放入变量$original,复制的目标路径放入变量$copied */
$original = "/home/me/mydatabasedump";
$copied = "/archive/mydatabasedumo_1010";
/* 使用函数copy() 复制源文件至目的地,或以输出错误信息结束*/
@copy($original, $copied) or die("Couldn't copy file.");
?>
示例脚本是备份系统的第一步。当脚本运行时,出于安全考虑它先将数据库复制到不同地点。通过对crontab的修改,你可以在选定时间执行此文件而无需用户介入。
假设系统上已有Lynx,你可以创建crontab入口以运行Lynx并访问文件。访问文件将运行脚本并创建复制文件。以下例子将在早晨5点运行脚本,然后关闭Lynx:
0 5 * * * [username] lynx -dump http://localhost/copyfile.php 1>/dev/null 2>&1
如果你运行的是PHP的CGI版本,你可以跳过Lynx部分并参考二进制文件:
0 5 * * * [username] php /path/to/copyfile.php 1>/dev/null 2>&1
相关推荐
-
PHP 杂谈《重构-改善既有代码的设计》之五 简化函数调用
思维导图 介绍 前几篇系列文章,我比较关注的是<PHP 杂谈<重构-改善既有代码的设计>之一 重新组织你的函数>,但是我觉得我还是没有说清楚,我自己也有很多不理解的地方,而且这篇是我的第一篇这方面的文章,有很多的纰漏,所以我会经常性的去做修改,如果大家有好的意见不妨告知一.二. 今天谈得是"接口",此接口非"Interface",而是一个统称.我们一般可以把供别人使用的函数或者url(一般是用于提供数据)叫接口.--可能还有别的意思,毕竟我现
-
PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式
思维导图 点击下图,查看大图. 介绍 条件逻辑有可能十分复杂,因此本章提供一些重构的手法,专门用来简化它们. 全文简述(你可直接跳过下面的内容) 核心重构:Decompose Conditional--分离"转辙逻辑"(switching logic)和"操作细节"(details)分离. 多处测试有相同结果:Consolidate Conditional Expresssion 条件代码中去掉重复成分:Consolidate Duplicate 标识特殊情况:Re
-
PHP 杂谈《重构-改善既有代码的设计》之三 重新组织数据
思维导图 介绍 承接上文的PHP 杂谈<重构-改善既有代码的设计>之 重新组织你的函数继续重构方面的内容. 这章主要针对数据的重构. 1.争论的声音--直接访问Field还是通过函数(Accessor)访问Field 2.修改Array为Object:当你看到一个Array很像一个数据结构,你可以使用Replace Array with Object,把Array变成一个对象.--数据结构更清晰. 专业术语 accessor:访问者,存储器--在本文翻译为"函数" dumb
-
五款PHP代码重构工具推荐
在软件工程学里,重构代码一词通常是指在不改变代码的外部行为情况下而修改源代码.软件重构需要借助工具完成,而重构工具能够修改代码同时修改所有引用该代码的地方.本文收集了五款出色的PHP代码重构工具,以帮助你完善更加优秀的项目. 1. Rephactor Rephactor是一款命令行重构工具,这是一款自动化工具,允许开发者以一种简洁的方式在不同的代码库中修改源码. 主要功能: 保证重构的可逆性-- 一旦发现问题,代码是可逆的,可以回溯到前一个版本. 查找替换功能-- 普通查找替换,方法重命名,类重
-
使用PHP维护文件系统
PHP有很多与文件系统相关的函数,不仅可以帮助你打开文件,还可以显示目录内容.移动文件等.很多人甚至使用PHP写出了基于Web的文件管理器. 首先需要提醒一些关于文件路径的东西:在Windows你可以在文件路径中使用斜线"/"或反斜线"\",而其他操作系统仅使用"/".出于兼容性考虑,以下实例使用"/"的表示方法: 下面的简单脚本显示了一个基本的目录列表.注释在代码中并解释了每一步: <? /* 在变量 $dir_nam
-
PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
思维导图 点击下图,可以看大图. 介绍 我把我比较喜欢的和比较关注的地方写下来和大家分享.上次我写了篇<php 跟老大的对话>.还是有很多疑问,这书帮了我不少的忙. 如果你比较繁忙,或者懒得看文字,建议你直接看截图,也会有很大的收获的.你可以通过比较截图中的代码就能知道孰优孰劣了. 代码部分我为什么用图呢?因为我经常用手机看代码,博客园的代码在手机里乱七八糟的,还是看图比较舒服. 专业术语 我们毕竟是用英文字母编码,所以用一些英语单词,更能显示出我们的专业性.以下的英文单词,你如果掌握了,与其
-
PHP代码维护,重构变困难的4种原因分析
本文分析讲述了PHP代码维护,重构变困难的4种原因.分享给大家供大家参考,具体如下: 代码维护,重构是件很令人不爽的一件事.以下几种情况,会让代码维护和重构变得很困难. 1. 项目开始时,大家规定好一些代码规范,在一定的规范下进行开发,但是人的思想是不一样的,也就是说每个功能不同的人实现的逻辑可能会有这样那样的不同,导致了一些人不愿意去看别人代码,要改别人代码,首先要了解这个人当时是怎么想的,他的逻辑是怎么样的.所以有很多人的想法是有那看别人代码的时间,我就重新做好了.这种想法不要有,看别人代码
-
PHP 杂谈《重构-改善既有代码的设计》之二 对象之间搬移特性
思维导图 索引: Ø Move Method(搬移函数) Ø Move Field (搬移值域) Ø Extract Class (提炼类) Ø Inline Class (将类内联化,就是把当前的类合并到其他类中) Ø Hide Delegate (隐藏委托关系) Ø Remove Middle Man ( 移除中间人) Ø Introduce Foreign Method (引入外加函数) Ø Introduce Local Extension (引入本地扩展) 介绍 承接上文PHP 杂谈<
-
rephactor 优秀的PHP的重构工具
PHP框架可以是单一入口,完全面向对象的,完全基于类的MVC模式.但是,我们面对大量的旧的代码,或即便是新的代码,也不尽然完全符合面向对象的原则,符合设计模式.小的应用无妨.但如果面对大型应用,则必然是一个不小的疼痛!! 怎么办?很多人总会面临这一切,PHP代码需要重构.(当然,你要是能明白我所说的这一切,那你肯定是看过<重构--改善既有代码的设计>这一本书) 看看这个链接:http://zh-cn.w3support.net/index.php?db=so&id=100876 我们就
-
用PHP实现维护文件代码
PHP有很多与文件系统相关的函数,不仅可以帮助你打开文件,还可以显示目录内容.移动文件等.很多人甚至使用PHP写出了基于Web的文件管理器. 首先需要提醒一些关于文件路径的东西:在Windows你可以在文件路径中使用斜线"/"或反斜线"\",而其他操作系统仅使用"/".出于兼容性考虑,以下实例使用"/"的表示方法: 下面的简单脚本显示了一个基本的目录列表.注释在代码中并解释了每一步: <? /* 在变量 $dir_nam
-
Java编程利用socket多线程访问服务器文件代码示例
这篇文章将向大家展示Java编程利用socket多线程访问服务器文件代码示例,如果您想先了解Java多线程socket编程的基础知识,可以看下这篇文章:Java多线程编程实现socket通信示例代码. 接下来进入正文,我们看看利用socket多线程访问服务器代码: ServerMain.java package com.ysk.webServer; import java.io.File; import java.io.IOException; import java.net.ServerSoc
-
Yii安装EClientScript插件扩展实现css,js文件代码压缩合并加载功能
本文实例讲述了Yii安装EClientScript插件扩展实现css,js文件代码压缩合并加载功能.分享给大家供大家参考,具体如下: 扩展插件下载地址,解压后复制到/protected/vendor/ https://github.com/muayyad-alsadi/yii-EClientScript main配置文件配置插件,components里面增加 //js,css代码压缩,合并 'clientScript' => array( 'class' => 'application.ven
-
java webservice上传下载文件代码分享
本文实例为大家分享了java webservice上传下载文件代码,供大家参考,具体内容如下 1.新建动态web工程youmeFileServer,新建包com,里面新建类FileProgress package com; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.sql.Date; import java.text.Simple
-
java IO流将一个文件拆分为多个子文件代码示例
文件分割与合并是一个常见需求,比如:上传大文件时,可以先分割成小块,传到服务器后,再进行合并.很多高大上的分布式文件系统(比如:google的GFS.taobao的TFS)里,也是按block为单位,对文件进行分割或合并. 看下基本思路: 如果有一个大文件,指定分割大小后(比如:按1M切割) step 1: 先根据原始文件大小.分割大小,算出最终分割的小文件数N step 2: 在磁盘上创建这N个小文件 step 3: 开多个线程(线程数=分割文件数),每个线程里,利用RandomAccessF
-
python3使用scrapy生成csv文件代码示例
去腾讯招聘网的信息,这个小项目有人做过,本着一个新手学习的目的,所以自己也来做着玩玩,大家可以参考一下. 这里使用的是调用cmdline命令来生成csv文件,而不是importcsv模块. from scrapy import cmdline cmdline.execute("scrapy crawl field -o info.csv -t csv".split()) 这段代码我保存在一个自建的.py文件中,然后在主文件中调用这个模块,这样就不用每次在cmd中敲命令了,大家可以使用这
-
python删除服务器文件代码示例
本文主要研究的是Python编程删除服务器文件,具体实现 代码如下. 实例1 #coding:utf-8 import paramiko """ 创建文件 删除文件 root权限 """ ssh=paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(hostname="192.168.1.37",po
-
Java读写ini文件代码示例
本文实例主要实现Java读写ini文件,具体如下,代码中有详细注释. 在java中,配置文件一般主要是两种形式:xml文件或者property文件.但大部分人都习惯使用ini文件,而且ini文件的分节以及注释功能,比起xml,也是易懂易用的. 实例代码: package com.epoint.tools; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.OutputStream; im
-
Java程序生成Access文件代码实例
这篇文章主要介绍了Java程序生成Access文件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 package access; import java.io.File; import java.io.IOException; import java.sql.SQLException; import java.sql.Types; import org.junit.Test; import com.healthmarketscience
-
Python拆分大型CSV文件代码实例
这篇文章主要介绍了Python拆分大型CSV文件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 #!/usr/bin/env python3 # -*- coding:utf-8 -*- # @FileName :Test.py # @Software PyCharm import os import pandas as pd # filename为文件路径,file_num为拆分后的文件行数 # 根据是否有表头执行不同程序,默认有表头
随机推荐
- js正则表达exec与match的区别说明
- javascript 面向对象编程基础:封装
- 使用coffeescript编写node.js项目的方法汇总
- CheckBox为CheckBoxList实现全选或全取消选择(js代码实现)
- 解析php函数method_exists()与is_callable()的区别
- ANDROID BottomNavigationBar底部导航栏的实现示例
- 利用计划任务和VBS脚本实现自动WEB共享文件夹里的文件
- jQuery实现冻结表格行和列
- jQuery 常见学习网站与参考书
- javascript 浏览器检测代码精简版
- js实现图片缓慢放大缩小效果
- IIS配置与错误提示 解决方法
- Java编程使用UDP建立群聊系统代码实例
- SQLServer2008存储过程实现数据插入与更新
- 解决vue项目nginx部署到非根目录下刷新空白的问题
- vue路由守卫+登录态管理实例分析
- Android适配利用webview加载后图片显示过大的问题解决
- ios设备中angularjs无法改变页面title的解决方法
- layui数据表格重载实现往后台传参
- 通过实例解析Python调用json模块