你知道目录名,用mkdir创建一个,在你自己的递归函数里面
解决方案 »
- MYSQL 表出问题Table 'XX' is marked as crashed and should be repaired
- 求一个PHP分页显示图片的代码
- Visual Studio2005 与 Visual Studio 2010 共存问题
- php登陆页面问题待解
- 再开帖请教.和+
- urlrewrite如何写这样的效果
- mysql模糊查询问题
- 你知道我在等你吗?online forever
- 请高手指教:如何配置w200+iis5+php4+Oracle8????
- php simplexml_load_file xml 不出数组
- 求一个不定参数的Url重写的正则表达式
- PHP的session 有没有类似Java session中的监听器功能
A:
以下部分内容参照手册
copy — 拷贝文件
说明
bool copy ( string $source, string $dest )
将文件从 source 拷贝到 dest。如果成功则返回 TRUE,失败则返回 FALSE。 注意: 从 PHP 4.3.0 开始,如果启用了“fopen wrappers”的话,source 和 dest 都可以是 URL。更多细节见 fopen()。如果 dest 是一个 URL,则如果封装协议不支持覆盖已有的文件时拷贝操作会失败。
根据上面说的,参数中的$source和$dest可以直接使用 C:\www\ 之类的路径,
至于fopen(),里面有个mode参数,可以根据参数文件中定位,并且返回一个指针,个人理解与句柄类似,接下来就可以利用这个"柄",通过各类函数对文件进行操作了.
警告
如果目标文件已存在,将会被覆盖。 Windows 兼容: 如果复制一个零字节的文件,copy() 将返回 FALSE ,但文件也会被正确复制。 除了复制之外,php还有一个clone的概念 ,关于这个概念,我会在结尾给出一个简单的操作类Q: 还有copy 函数能复制目录以及目录下面的所有文件和目录吗?
A: copy函数只能单个文件对单个文件,至于批量copy就要自己写脚本了
至于检测目录,给你两个函数名 scandir() readdir() ,如果用到可以去php.net看看
这里有一个现成的批量copy脚本http://www.phpchina.com/html/28/29828-8433.html关于clone的脚本
<?php
class file_operations
{
//设置文件名
function file_setname($file_name){
$this->file_name = $file_name;
}
//打开文件
function file_open($mode = "r"){
//确定文件是否存在
if(file_exists($this->file_name)){
//fopen
$this->file_handle = fopen($this->file_name,$mode);
if(!$this->file_handle)
echo "open failed\n";
}else{
echo "file not exists!\n";
}
}
//在页面输出文件
function file_read(){
if($this->file_handle){
//测试指针是否到了文件结束位置
while (!feof($this->file_handle)){
//得到文件内容
$content=fgets($this->file_handle);
echo $content;
}
}else{
echo "read failed\n";
}
}
//添加内容
function file_write($content){
if($this->file_handle){
//写文件
echo "\nyou write ".fwrite($this->file_handle,$content)." letters\n";
}
}
//关闭句柄
function file_close(){
if($this->file_handle){
fclose($this->file_handle);
}
}
//对象克隆
function __clone(){
if ($this->file_handle){
$this->file_handle = fopen($this->file_name, "a");
}
} private $file_name;
private $file_handle = NULL;
}/**
*文件读取
**/
$name1 = "1.txt";
$op1 = new file_operations();
$op1->file_setname($name1);
$op1->file_open("r");
$op1->file_read();
$op1->file_close();/**
*文件写入
**/
$name2 = "2.txt";
$content2 ="hello";
$op2 = new file_operations();
$op2->file_setname($name2);
//注意fopen属性,文件应为可写
$op2->file_open("a");
echo "file bytes :".filesize($name2)."\n";
$op2->file_write($content2);
$op2->file_close();
echo "file bytes :".filesize($name2)."\n";//克隆对象
$object_clone= clone $op1;
/**
*php clone
*因为clone是引用复制,不会进行更加深入的复制.
*这意味着如果类中一个对象是"引用"(指针)的话
*clone之后的新对象,仍然保持原"引用"(指针)
*因此,这里修改的是原来的1.txt,而不是重新clone一个1.txt
*/
$object_clone->file_write($content2);
$object_clone->file_close();
//unlink($filename); //删除文件
?>ps:因为很多东西我也没有实际操作过,所以很多概念只是提一下,如果有错误,希望大家指出...