当前位置: 编程技术>php
本页文章导读:
▪PHP 操作文件的一些FAQ总结
问:如何新建一个文件? 答:1、使用fopen("要建立的文件名","参数"),参数可选 w,w+,a,a+ 2、使用exec("echo '' > 要建立的文件名");这样是使用系统方式建立这个文件,你还可以使用touch这个linux.........
▪php实现从ftp服务器上下载文件树到本地电脑的程序
代码如下:/* 用ftp_nlist()函授时,返回的数组值会有两种类型:因服务器不同而异 a:单独的文件名 b:包含目录的文件名。 如果挪用,请注意更改此处。 */ <?php function download_file($dir,$fc,$_FI.........
▪PHP6 mysql连接方式说明
mysqlnd是在PHP源码树中集成,与原先的libmysql不同,mysqlnd与内核联系更紧密. 官方说内存占用要节省40%左右.速度也更快. 顺便提一下.如果在升级到PHP5.3以后,数据库连接时出现mysql_connect()[2002] tcp:.........
[1]PHP 操作文件的一些FAQ总结
来源: 互联网 发布时间: 2013-11-30
问:如何新建一个文件?
答:1、使用fopen("要建立的文件名","参数"),参数可选 w,w+,a,a+
2、使用exec("echo '' > 要建立的文件名");这样是使用系统方式建立这个文件,你还可以使用touch这个linux命令来建立
问:为什么我无法建立文件?
答:1、如果你使用了fopen建立文件,是否正确的使用了参数
2、系统权限问题,请询问你的WEBMASTER你的FTP目录是否有写的权限
3、FTP权限问题,你要确认你的PHP文件所要写文件所在目录要有写的权限,也就是你的FTP软件登陆后other组要有写这个权限,
如果没有请修改权限后尝试
问:如何将文件读入数组?
答:使用file
问:如何将文件全部读出?
答:1、使用fread($fp);
2、如果你的PHP版本>=4.3.0的话可以使用file_get_contents();
问:如何判断文件是否存在?
答:使用file_exists();为什么不使用fopen()来判断呢?原因是有时候是因为权限问题导致fopen返回的数据引导我们错误的判断
问:为什么当我读取一个WEB页面的时候出错?
答:1、可能是你的传递参数错,当读取WEB页面的时候你只可以使用r方式读取页面
2、确保你要读取的WEB页面可以访问
问:我如何才能获得文件的相关属性?
答:PHP提供了一组获得文件属性的方法,例如 filemtime(),fileowner(),filegroup(),filectime(),fileatime()...详细的使用
请参阅手册。
问:PHP打开文件后是否可以象C一样进行文件“游标”的定位呢?
答:可以的,使用fseek();
问:我想在访问文件的时候不允许其他人也访问此文件,怎么办?
答:1、你可以采用其他方面程序限制用户接入文件操作的页面
2、使用flock();详细的参数以及使用方法请参阅手册
问:如何删除文件内第一行,或指定一行数据?
答:PHP并没有提供这样的操作方法,不过我们可以通过组合使用,以下代码演示我们将删除文件"test.dat"中的第三行数据(test.datw
文件中数据不止三行)
<?php
$filename="test.dat";//定义操作文件
$delline=3; //要删除的行数
if(!file_exsits($filename)){
die("指定文件未发现!操作中断!");
}
$farray=file($filename);//读取文件数据到数组中
for($tmpa=0;$Tmpa<count($farray);$Tmpa++){
if(strcmp($Tmpa+1,$delline)==0){
//判断删除的行
continue;
}
//重新整理后的数据
$newfp.=$farray[$Tmpa]."\r\n";
}
$fp=@fopen($filename,"a") or die("写方式打开文件 $filename 失败");//我们以写的方式打开文件
@fputs($fp,$newfp) or die("文件写入失败");
@fclose($fp);
?>
以上代码演示的是删除一行文件,不过你如果仔细的看的话,其实也给你提供了其他的文件操作的相关提醒~
问:当我试图打开一个不存在的文件的时候,我如何不让错误显示出来以避免我的路径泄露!!
答:在你要打开文件的方法前增加@符号用来屏蔽错误,@是PHP提供的错误信息屏蔽的专用符号
或您可以在这个要操作的步骤前增加(通常是在页首)error_reporting(0);用来屏蔽页面内所有错误信息的显示
一个不推荐的方法就是去修改php.ini(ISP除外)
问:我使用的是虚拟主机,我如何防止其他用户窃取我的数据?
答:建议ISP修改php.ini中的open_basedir进行限制,
不推荐的ISP设置是将fopen,file等文件操作加入disable_function中。
问:为什么我用PHP建立文件后我FTP登陆要删除这些文件无法删除??
答:主要是因为PHP建立的文件归属WEB用户组,也就是建立的文件,并非是你FTP用户的!!!
这个问题的解决就是,使用PHP程序的chmod,unlink等方式进行处理,建议用户在使用PHP建立文件的时候
记得chmod文件权限,建议为777
问:如何使用文本文件作为数据仓库?有的留言本,论坛之类的都是使用这个的啊!
答:其实这个主要还是使用了file,结合explode进行数据读取与分割的典型范例而已。
问:如何更改文件名?
答:rename();
问:如何删除文件?
答:unlink(); exec("del(rm -vf) filename");注:rm -vf为linux下使用
问:如何清空文件?
答:使用fopen(filename,"w");或exec("echo '' > filename");
问:如何编辑文件内容?
答:我记得我以前回答过一个删除文件内容的,其实编辑内容在删除内容的基础上,进行变量替换就可以了。
希望你可以向上找找,将我上面的continue修改为替换变量数据就可以了:)
答:1、使用fopen("要建立的文件名","参数"),参数可选 w,w+,a,a+
2、使用exec("echo '' > 要建立的文件名");这样是使用系统方式建立这个文件,你还可以使用touch这个linux命令来建立
问:为什么我无法建立文件?
答:1、如果你使用了fopen建立文件,是否正确的使用了参数
2、系统权限问题,请询问你的WEBMASTER你的FTP目录是否有写的权限
3、FTP权限问题,你要确认你的PHP文件所要写文件所在目录要有写的权限,也就是你的FTP软件登陆后other组要有写这个权限,
如果没有请修改权限后尝试
问:如何将文件读入数组?
答:使用file
问:如何将文件全部读出?
答:1、使用fread($fp);
2、如果你的PHP版本>=4.3.0的话可以使用file_get_contents();
问:如何判断文件是否存在?
答:使用file_exists();为什么不使用fopen()来判断呢?原因是有时候是因为权限问题导致fopen返回的数据引导我们错误的判断
问:为什么当我读取一个WEB页面的时候出错?
答:1、可能是你的传递参数错,当读取WEB页面的时候你只可以使用r方式读取页面
2、确保你要读取的WEB页面可以访问
问:我如何才能获得文件的相关属性?
答:PHP提供了一组获得文件属性的方法,例如 filemtime(),fileowner(),filegroup(),filectime(),fileatime()...详细的使用
请参阅手册。
问:PHP打开文件后是否可以象C一样进行文件“游标”的定位呢?
答:可以的,使用fseek();
问:我想在访问文件的时候不允许其他人也访问此文件,怎么办?
答:1、你可以采用其他方面程序限制用户接入文件操作的页面
2、使用flock();详细的参数以及使用方法请参阅手册
问:如何删除文件内第一行,或指定一行数据?
答:PHP并没有提供这样的操作方法,不过我们可以通过组合使用,以下代码演示我们将删除文件"test.dat"中的第三行数据(test.datw
文件中数据不止三行)
代码如下:
<?php
$filename="test.dat";//定义操作文件
$delline=3; //要删除的行数
if(!file_exsits($filename)){
die("指定文件未发现!操作中断!");
}
$farray=file($filename);//读取文件数据到数组中
for($tmpa=0;$Tmpa<count($farray);$Tmpa++){
if(strcmp($Tmpa+1,$delline)==0){
//判断删除的行
continue;
}
//重新整理后的数据
$newfp.=$farray[$Tmpa]."\r\n";
}
$fp=@fopen($filename,"a") or die("写方式打开文件 $filename 失败");//我们以写的方式打开文件
@fputs($fp,$newfp) or die("文件写入失败");
@fclose($fp);
?>
以上代码演示的是删除一行文件,不过你如果仔细的看的话,其实也给你提供了其他的文件操作的相关提醒~
问:当我试图打开一个不存在的文件的时候,我如何不让错误显示出来以避免我的路径泄露!!
答:在你要打开文件的方法前增加@符号用来屏蔽错误,@是PHP提供的错误信息屏蔽的专用符号
或您可以在这个要操作的步骤前增加(通常是在页首)error_reporting(0);用来屏蔽页面内所有错误信息的显示
一个不推荐的方法就是去修改php.ini(ISP除外)
问:我使用的是虚拟主机,我如何防止其他用户窃取我的数据?
答:建议ISP修改php.ini中的open_basedir进行限制,
不推荐的ISP设置是将fopen,file等文件操作加入disable_function中。
问:为什么我用PHP建立文件后我FTP登陆要删除这些文件无法删除??
答:主要是因为PHP建立的文件归属WEB用户组,也就是建立的文件,并非是你FTP用户的!!!
这个问题的解决就是,使用PHP程序的chmod,unlink等方式进行处理,建议用户在使用PHP建立文件的时候
记得chmod文件权限,建议为777
问:如何使用文本文件作为数据仓库?有的留言本,论坛之类的都是使用这个的啊!
答:其实这个主要还是使用了file,结合explode进行数据读取与分割的典型范例而已。
问:如何更改文件名?
答:rename();
问:如何删除文件?
答:unlink(); exec("del(rm -vf) filename");注:rm -vf为linux下使用
问:如何清空文件?
答:使用fopen(filename,"w");或exec("echo '' > filename");
问:如何编辑文件内容?
答:我记得我以前回答过一个删除文件内容的,其实编辑内容在删除内容的基础上,进行变量替换就可以了。
希望你可以向上找找,将我上面的continue修改为替换变量数据就可以了:)
[2]php实现从ftp服务器上下载文件树到本地电脑的程序
来源: 互联网 发布时间: 2013-11-30
代码如下:
/*
用ftp_nlist()函授时,返回的数组值会有两种类型:因服务器不同而异
a:单独的文件名
b:包含目录的文件名。
如果挪用,请注意更改此处。
*/
<?php
function download_file($dir,$fc,$_FILE_)
{
$fn=ftp_nlist($fc,".");//列出该目录的文件名(含子目录),存储在数组中
$size=sizeof($fn);
$dir=($dir=="")?$dir:('/'.$dir);
$_FILE_=$_FILE_.$dir;
echo $_FILE_."<br/>";
for($i=0;$i<$size;$i++)
{
if(ereg('^[a-zA-Z0-9_]+',$fn[$i])) //提取是文件和目录,剔除.,..这两个目录
{
if(ereg('^[a-zA-Z0-9_]+([a-zA-Z0-9-]*.*)(\.+)',$fn[$i])) //是文件时直接下载
{
if(ftp_get($fc,$fn[$i],$fn[$i],FTP_BINARY))
{
echo "<br/>下载".getcwd()."/".$fn[$i]."成功<br/>";
}
else
{
echo "<br/>下载".getcwd()."/".$fn[$i]."失败<br/>";
}
}//文件下载结束
else //"是目录,进入目录,再读取文件";
{
if(!file_exists($fn[$i]))
mkdir($fn[$i], 0700);//本地机器上该目录不存在就创建一个
if(ftp_chdir($fc,$fn[$i]))
chdir($fn[$i]);
echo "当前的目录是:".getcwd()."<br/>";// 更好的看清当前目录
download_file($fn[$i],$fc,$_FILE_);//递归进入该目录下载文件
}
}//提取文件,目录结束
}//for循环结束
ftp_cdup($fc);//ftp服务器返回上层目录
chdir(dirname($_FILE_));
}//download——file()函数结束
$_FILE_="本地机绝对地址";//例如c:/download,不要这样c:/download/
$hostname="服务器名";
$loginname="用户名";
$password="用户密码";
$fc=ftp_connect($hostname,"21") or die("Couldn't connect to $hostname");
$fc_rw=ftp_login($fc,$loginname,$password);
ftp_set_option($fc,FTP_TIMEOUT_SEC,100000);//设置超时时间
$dir="";chdir($_FILE_);//进入本地机绝对地址目录
download_file($dir,$fc,$_FILE_);
ftp_quit($fc);
//从服务器下载文件树的程序
?>
希望能给大家带去帮助,谢谢
[3]PHP6 mysql连接方式说明
来源: 互联网 发布时间: 2013-11-30
mysqlnd是在PHP源码树中集成,与原先的libmysql不同,mysqlnd与内核联系更紧密.
官方说内存占用要节省40%左右.速度也更快.
顺便提一下.如果在升级到PHP5.3以后,数据库连接时出现mysql_connect()[2002] tcp://localhost:3306 的错误提示时.
需要将localhost改成127.0.0.1,或者将连接方式由tcp改为socket.
在使用phpmyadmin这类工具时,也可以按照上述方式修改config.inc.php
官方说内存占用要节省40%左右.速度也更快.
顺便提一下.如果在升级到PHP5.3以后,数据库连接时出现mysql_connect()[2002] tcp://localhost:3306 的错误提示时.
需要将localhost改成127.0.0.1,或者将连接方式由tcp改为socket.
在使用phpmyadmin这类工具时,也可以按照上述方式修改config.inc.php
最新技术文章: