用php 中ftp函数抓取别人服务器上的文件内容怎么做啊
ftp_get -- 从 FTP 服务器上下载一个文件
说明
bool ftp_get ( resource ftp_stream, string local_file, string remote_file, int mode [, int resumepos])
ftp_get() 函数用来下载 FTP 服务器上由 remote_file 参数指定的文件,并保存到由参数 local_file 指定的本地文件。传送模式参数 mode 只能为 (文本模式) FTP_ASCII 或 (二进制模式) FTP_BINARY 中的其中一个。
注: 参数 resumepos 仅在适用于 PHP 430 以上版本
如果成功则返回 TRUE,失败则返回 FALSE。
ftp_get() 例子
<php
// define some variables
$local_file = 'localzip';
$server_file = 'serverzip';
// connect to the FTP server
$conn_id = ftp_connect($ftp_server);
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
// try to download
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
echo "Successfully written to $local_file\n";
} else {
echo "There was a problem\n";
}
// close the connection
ftp_close($conn_id);
>
不知道你要的是不是这个函数。
给你的演示代码,有很多注释,你试试就知道了
<php//配置数据
$ftp_server="";//FTP服务器
$ftp_user_name="";//FTP用户名
$ftp_user_pass="";//FTP用户密码
$ftp_up_dir="webspace/httpdocs/upload";//上传到哪个目录
$ftp_site_url="";//文件访问URL地址
$admin="admin";//管理员用户名
$adminpw="admin";//管理员密码
session_start();
//退出登录
if($_GET['action']=="logout"){
$_SESSION['pw']="";
}
//保存登录状态
if($_POST['pw']==$adminpw && $_POST['user']==$admin){
$_SESSION['pw']=$adminpw;
$_SESSION['user']=$admin;
}
if($_SESSION['pw']!=$adminpw || $_SESSION['user']!=$admin)
{
>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 10 Transitional//EN" "http://wwww3org/TR/xhtml1/DTD/xhtml1-transitionaldtd">
<html xmlns="http://wwww3org/1999/xhtml">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>请登录</title>
</head>
<body>
<form action="<php $n = explode('/',$_SERVER['PHP_SELF']); echo $n[count($n)-1]; >" method="post">
<label for="file">管理账户:</label><input type="text" name="user" id="user" /> <br>
<label for="file">管理密码:</label><input type="password" name="pw" id="pw" />
<br />
<input type="submit" name="submit" value="Login" />
</form>
</body>
</html>
<
exit();
}
if(!$_FILES)
{
>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 10 Transitional//EN" "http://wwww3org/TR/xhtml1/DTD/xhtml1-transitionaldtd">
<html xmlns="http://wwww3org/1999/xhtml">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>FTP远程上传</title>
</head>
<body>
<form action="<php $n = explode('/',$_SERVER['PHP_SELF']); echo $n[count($n)-1]; >" method="post"
enctype="multipart/form-data">
<label for="file">文件名称:</label>
<input type="file" name="file" id="file" />
<input type="submit" name="submit" value="上传" />
</form>
<p><a href="action=logout">退出</a></p>
</body>
</html>
<php
}
else
{
$file = date('y-m-d_')rand(1,999999999)'_'$_FILES["file"]["name"];
// 连接FTP
$conn = ftp_connect($ftp_server);
$login_result = ftp_login($conn, $ftp_user_name, $ftp_user_pass);
//改编目录
ftp_chdir($conn,$ftp_up_dir);
// 上传
if(ftp_put($conn, $file,$_FILES["file"]["tmp_name"] , FTP_ASCII)) {
$cue = "上传文件 $file 成功<br />文件访问地址: <a href='$ftp_site_url$file' target='_blank'>$ftp_site_url"$file"</a>";
} else {
$cue = "上传文件 $file 时出错";
}
>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 10 Transitional//EN" "http://wwww3org/TR/xhtml1/DTD/xhtml1-transitionaldtd">
<html xmlns="http://wwww3org/1999/xhtml">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>文件上传结果</title>
</head>
<body>
<p><php echo $cue; ></p>
<p>
<form action="<php $n = explode('/',$_SERVER['PHP_SELF']); echo $n[count($n)-1]; >" method="post"
enctype="multipart/form-data">
<label for="file">文件名称:</label>
<input type="file" name="file" id="file" />
<input type="submit" name="submit" value="上传" />
</form>
</p>
<p><a href="action=logout">退出</a></p>
</body>
</html>
<php
// 关闭FTP连接
ftp_close($conn);
}
>
PHPini里,
max_input_time=秒数,这里要加大,
upload_max_filesize=2M 这里也要加大
default_socket_timeout=60这里看情况加大,
然后重启IIS
参考PHP Socket,以下例子摘自PHP手册:
<php
// connect to the internet using the '1921680100' IP
$opts = array('socket' =>
array('bindto' => '1921680100:0'));
// connect to the internet using the '1921680100' IP and port '7000'
$opts = array('socket' =>
array('bindto' => '1921680100:7000'));
// connect to the internet using port '7000'
$opts = array('socket' =>
array('bindto' => '0:7000'));
// create the context
$context = stream_context_create($opts);
// and use it to fetch the data
echo file_get_contents('http://wwwexamplecom', false, $context);
>
0条评论