PHP通过FTP读取数据文件
发布时间:2013-05-25 21:09:31 来源:51推一把
【摘要】从以上列表可以看出 PHP的FTP功能非常强大 从ftp连接到ftp服务器上的文件操作等等 包含的非常详细
不过我们常用的其实也不外乎连接ftp服务器、上传下载文件这些功能
PHP 与 FTP 相关应用
目录
ftp_alloc -- Allocates space for a file to be uploaded.
ftp_cdup -- 切换到当前目录的父目录
ftp_chdir -- 在 FTP 服务器上切换当前目录
ftp_chmod -- Set permissions on a file via FTP
ftp_close -- 关闭一个活动的 FTP 连接
ftp_connect -- 建立一个新的 FTP 连接
ftp_delete -- 删除 FTP 服务器上的一个文件
ftp_exec -- 请求运行一条 FTP 命令
ftp_fget -- 从 FTP 服务器上下载一个文件并保存到本地一个已经打开的文件中
ftp_fput -- 上传一个已经打开的文件到 FTP 服务器
ftp_get_option -- 返回当前 FTP 连接的各种不同的选项设置
ftp_get -- 从 FTP 服务器上下载一个文件
ftp_login -- 登录 FTP 服务器
ftp_mdtm -- 返回指定文件的最后修改时间
ftp_mkdir -- 建立新目录
ftp_nb_continue -- 连续获取/发送文件(non-blocking)
ftp_nb_fget -- Retrieves a file from the FTP server and writes it to an open file (non-blocking)
ftp_nb_fput -- Stores a file from an open file to the FTP server (non-blocking)
ftp_nb_get -- 从 FTP 服务器上获取文件并写入本地文件(non-blocking)
ftp_nb_put -- 存储一个文件至 FTP 服务器(non-blocking)
ftp_nlist -- 返回给定目录的文件列表
ftp_pasv -- 返回当前 FTP 被动模式是否打开
ftp_put -- 上传文件到 FTP 服务器
ftp_pwd -- 返回当前目录名
ftp_quit -- ftp_close() 的别名
ftp_raw -- Sends an arbitrary command to an FTP server
ftp_rawlist -- 返回指定目录下文件的详细列表
ftp_rename -- 更改 FTP 服务器上指定的文件名
ftp_rmdir -- 删除一个目录
ftp_set_option -- 设置各种 FTP 运行时选项
ftp_site -- 向服务器发送 SITE 命令
ftp_size -- 返回指定文件的大小
ftp_ssl_connect -- Opens an Secure SSL-FTP connection
ftp_systype -- 返回远程 FTP 服务器的系统类型
ftp_alloc -- Allocates space for a file to be uploaded.
ftp_cdup -- 切换到当前目录的父目录
ftp_chdir -- 在 FTP 服务器上切换当前目录
ftp_chmod -- Set permissions on a file via FTP
ftp_close -- 关闭一个活动的 FTP 连接
ftp_connect -- 建立一个新的 FTP 连接
ftp_delete -- 删除 FTP 服务器上的一个文件
ftp_exec -- 请求运行一条 FTP 命令
ftp_fget -- 从 FTP 服务器上下载一个文件并保存到本地一个已经打开的文件中
ftp_fput -- 上传一个已经打开的文件到 FTP 服务器
ftp_get_option -- 返回当前 FTP 连接的各种不同的选项设置
ftp_get -- 从 FTP 服务器上下载一个文件
ftp_login -- 登录 FTP 服务器
ftp_mdtm -- 返回指定文件的最后修改时间
ftp_mkdir -- 建立新目录
ftp_nb_continue -- 连续获取/发送文件(non-blocking)
ftp_nb_fget -- Retrieves a file from the FTP server and writes it to an open file (non-blocking)
ftp_nb_fput -- Stores a file from an open file to the FTP server (non-blocking)
ftp_nb_get -- 从 FTP 服务器上获取文件并写入本地文件(non-blocking)
ftp_nb_put -- 存储一个文件至 FTP 服务器(non-blocking)
ftp_nlist -- 返回给定目录的文件列表
ftp_pasv -- 返回当前 FTP 被动模式是否打开
ftp_put -- 上传文件到 FTP 服务器
ftp_pwd -- 返回当前目录名
ftp_quit -- ftp_close() 的别名
ftp_raw -- Sends an arbitrary command to an FTP server
ftp_rawlist -- 返回指定目录下文件的详细列表
ftp_rename -- 更改 FTP 服务器上指定的文件名
ftp_rmdir -- 删除一个目录
ftp_set_option -- 设置各种 FTP 运行时选项
ftp_site -- 向服务器发送 SITE 命令
ftp_size -- 返回指定文件的大小
ftp_ssl_connect -- Opens an Secure SSL-FTP connection
ftp_systype -- 返回远程 FTP 服务器的系统类型
从以上列表可以看出 PHP的FTP功能非常强大 从ftp连接到ftp服务器上的文件操作等等 包含的非常详细
不过我们常用的其实也不外乎连接ftp服务器、上传下载文件这些功能
不过我们常用的其实也不外乎连接ftp服务器、上传下载文件这些功能
/*************************************************************************/
/*上传代码*/
<?php
$ftp_server= "xx.xxx.xxx.xx";
$ftp_user_name= "ftpname";
$ftp_user_pass= "ftppasswd";
$local_file = "TEXT.XML"; //本地文件
$server_file = "/TEXT.XML"; //待上传后文件所在路径
$conn_id = ftp_connect($ftp_server); //联接FTP
$login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass) or die("Login error"); //登录
$fp=fopen($local_file,"r");
ftp_pasv($conn_id, true); //开启被动模式传输 (在非开启的情况下,由于本地的防火墙等限制,将有可能出现Warning: ftp_fput() [function.ftp-fput]: Opening ASCII mode data connection的警告从而上传失败
//上传参数
if(ftp_fput($conn_id,$server_file,$fp,FTP_BINARY)) {
echo "Successfully uploaded $server_filen";
}else{
echo "There was a problem while uploading $filen";
}
//关闭连接
ftp_close($conn_id);
fclose($fp);
?>
/*************************************************************************/
/**下载文件**/
<?php
$ftp_server= "xx.xxx.xxx.xx";
$ftp_user_name= "ftpname";
$ftp_user_pass= "ftppasswd";
$file = TEST.XML;
$local_file = $file;
$server_file = $file;
//连接FTP服务器
$conn_id = ftp_connect($ftp_server);
//验证用户名和密码
$login_result = ftp_login($conn_id,$ftp_user_name,$ftp_user_pass) or die("Login error"); //登录
//下载参数
if(ftp_get($conn_id,$local_file,$server_file,FTP_BINARY)) {
echo "Successfully download $filen";
}else{
echo "There was a problem error $filen";
}
//关闭FTP连接
ftp_close($conn_id);
?>
/*************************************************************************/
/*************************************************************************/
/*格式化输出*/
<body>
<style>
bdoy,td
</style>
<table width=768 align=center>
<?php
<style>
bdoy,td
</style>
<table width=768 align=center>
<?php
$local_file =test.txt;
$contents =file($local_file);
//格式化输出本地文件
foreach($contents as $c)
{
echo "<tr>";
$attr=explode(",",$c);
foreach($attr as $value)
{
echo "<td align=center widht=100>".$value."</td> ";
}
echo "</tr>";
}
?>
</table>
</body>
$contents =file($local_file);
//格式化输出本地文件
foreach($contents as $c)
{
echo "<tr>";
$attr=explode(",",$c);
foreach($attr as $value)
{
echo "<td align=center widht=100>".$value."</td> ";
}
echo "</tr>";
}
?>
</table>
</body>
/*************************************************************************/
/*************************************************************************/
与XML文件的结合使用
/*************************************************************************/
/*远程打开FTP文件*/
<?php
$filename = "ftp://ftpname:ftppassword@58.213.19.135/xml/test.xml ";
$contents = file_get_contents($filename);
echo($contents);
?>
/*************************************************************************/
file_get_contents() 函数是用于将文件的内容读入到一个字符串中的首选方法。
file() 将文件作为一个数组返回。数组中的每个单元都是文件中相应的一行,包括换行符在内。如果失败,则返回 false。
/******
simplexml_load_file() 函数把 XML 文档载入对象中。如果失败,则返回 false。
$xml=simplexml_load_file(xml/prc/prc20120402102635.xml);
//var_dump($xml);
foreach($xml->MsgContent->priceinfo as $v){
echo "商品ID: $v->itemcode 价格:$v->price <br>";
}
******/
PS:重要◆◆◆
ftp_nlist()返回给定目录的文件列表
此方法在windows系统平台和linux系统平台下,返回的路径不一样,这点需要特别注意。