php入门教程六(php实现连接ftp服务器与IMAP服务器)

 更新时间:2016年11月25日 15:10  点击:1943
根据上面的实例我们总结了,本文章主要是讲到imap服务器连接以及与ftp服务器进行连接详细教程,包括删除,上传,下载文件实例

用php教程实现连接服务器,还有实现连接imap服务器,最后通过php编写的代码来实现上传和下载文件

 代码如下 复制代码

<?php
//连接 imap 服务器链接,imap 的端口为 143。
$mbox = imap_open("{localhost:143}inbox","user_id","password");
//连接pop3 服务器链接,pop3 的端口为 110。
$mbox = imap_open("{localhost/pop3:110}inbox","user_id","password");
//连接nntp 服务器链接,nntp 的端口为 119。
$nntp = imap_open("{localhost/nntp:119}comp.test","","");
?>


邮件发送函数mail

 代码如下 复制代码
<?php
mail( "163@111cn.net", "欢迎你", "hello,你好! " );
?>
 代码如下 复制代码
<?php
//连接imap服务器
$mbox = imap_open("{imap.example.org}", "username", "password", op_halfopen)
      or die("连接失败: " . imap_last_error());
$list = imap_getmailboxes($mbox, "{imap.example.org}", "*");
if (is_array($list)) {
    foreach ($list as $key => $val) {
        echo "($key) ";
        echo imap_utf7_decode($val->name) . ",";
        echo "'" . $val->delimiter . "',";
        echo $val->attributes . "<br />n";
    }
} else {
    echo "imap_getmailboxes 失败: " . imap_last_error() . "n";
}
//关闭imap连接
imap_close($mbox);
?>

连接ftp服务器

 代码如下 复制代码

<?php
// 打开将要上传的文件
$file = 'demofile.txt';
$fp = fopen($file, 'r');

// 连接ftp服务器
$conn_id = ftp_connect($ftp_server);
//登陆ftp服务器
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// 上传文件
if(ftp_fput($conn_id, $file, $fp, ftp_ascii)) {
    echo "上传 $file 文件成功n";
} else {
    echo "上传 $file 文件失败n";
}

// 关闭ftp连接
ftp_close($conn_id);
//关闭打开的上传文件
fclose($fp);
?>

ftp文件上传下载功能

 代码如下 复制代码
<?php
$file = 'somefile.txt';
$remote_file = 'readme.txt';
// 连接ftp服务器
$conn_id = ftp_connect($ftp_server);
//使用用户名、密码登陆
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
//上传文件
if (ftp_put($conn_id, $remote_file, $file, ftp_ascii)) {
echo "成功上传 $file 文件n";
} else {
echo "上传 $file 文件失败n";
}
// 关闭ftp连接
ftp_close($conn_id);
?>

ftp删除文件

 代码如下 复制代码
<?php
$file = 'public_html/old.txt';
// 连接ftp服务器
$conn_id = ftp_connect($ftp_server);
// 验证用户名和密码
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
// 删除指定文件
if (ftp_delete($conn_id, $file)) {
echo "$file 文件删除成功 n";
} else {
echo "删除 $file 文件失败n";
}
// 关闭ftp连接
ftp_close($conn_id);
?>

ftp获取远程文件大小

 代码如下 复制代码
<?php
$file = 'somefile.txt';
// 连接ftp服务器
$conn_id = ftp_connect($ftp_server);
//验证用户名和密码
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
//获取指定文件的大小
$res = ftp_size($conn_id, $file);
if ($res != -1) {
    echo " $file 文件大小为 $res字节";
} else {
    echo "获取远程文件大小失败";
}
//关闭ftp连接
ftp_close($conn_id);
?> 
本款教程主要是讲对数据库操作的php代码范例,有php操作mysql数据连接,以及删除数据,查询数据 修改数据,修改更新记录等实例。

简单查询数据

 代码如下 复制代码

<?php
//连接数据库
$link_id = mysql_connect("localhost","root","") or die("连接失败");
if($link_id)
{
 //选择数据库
 mysql_select_db("my_test");
 //以上为头部数据库连接部分,为以下公用的部分。
 if(!$_get[id]){

  //显示用户列表
  $sql = "select * from userinfo";
  $result=mysql_query($sql);
  
  echo "<table border=1>
    <tr>
     <td>编号</td>
     <td>用户名称</td>
     <td>性别</td>
     <td>年龄</td>
     <td>注册时间</td>
     <td>详细信息</td>
    </tr>";

 

  while($row=mysql_fetch_array($result)){
   echo "<tr>
     <td>".$row[id]."</td>
     <td>".$row[username]."www.111cn.net</td>
     <td>".$row[gender]."</td>
     <td>".$row[age]."</td>
     <td>".$row[regdate]."</td>
     <td><a href=query.php?id=".$row[id].">查看</a></td>
    </tr>";
  }
  echo "</table>";
 }
 else
 {  
  //显示指定用户的详细信息
  $sql="select * from userinfo where id=".$_get[id];
  $result=mysql_query($sql);
  $row=mysql_fetch_array($result);
  echo "编号:".$row[id]."<br>用户名:".$row[username]."<br>性别:".$row[gender]."<br>年龄:".$row[age]."<br>注册时间:".$row['regdate'];

  echo "<br><br><br><a href=query.php>继续查询</a>";
 }
}//end if
?>

删除数据

 代码如下 复制代码

<?php
//连接数据库
$link_id = mysql_connect("localhost","root","") or die("连接失败");
if($link_id)
{
 mysql_select_db("my_test");
 if(!$_get[id])
 {

  $result=mysql_query("select * from userinfo");
  echo "<table border=1>
    <tr>
     <td>编号</td>
     <td>用户名称www.111cn.net</td>
     <td>性别</td>
     <td>年龄</td>
     <td>注册时间</td>
     <td>操作</td>
    </tr>";

 

  while($row=mysql_fetch_array($result)){
   echo "<tr>
     <td>".$row[id]."</td>
     <td>".$row[username]."</td>
     <td>".$row[gender]."</td>
     <td>".$row[age]."</td>
     <td>".$row[regdate]."</td>
     <td><a href=delete.php?id=".$row[id].">删除</a></td>
    </tr>";
  }
  echo "</table>";

 }//显示列表的内容
 else
 {

   $sql="delete from userinfo where id=".$_get[id];
   $result=mysql_query($sql);
   if($result)
    echo "记录已经成功删除<br><a href='delete.php'>返回</a>";
   else
    echo "记录删除失败<br><a href=delete.php.php?id=".$_get[id].">返回</a>";

 }//else($id部分)
} // end if
?>

修改,更新记录

 代码如下 复制代码

<?php
//连接数据库
$link_id = mysql_connect("localhost","root","") or die("连接失败");
if($link_id)
{
 mysql_select_db("my_test");
 if(!$_get[id])
 {

  $result=mysql_query("select * from userinfo");
  echo "<table border=1>
    <tr>
     <td>编号</td>
     <td>用户名称</td>
     <td>性别</td>
     <td>年龄</td>
     <td>注册时间</td>
     <td>操作</td>
    </tr>";

 

  while($row=mysql_fetch_array($result)){
   echo "<tr>
     <td>".$row[id]."</td>
     <td>".$row[username]."</td>
     <td>".$row[gender]."</td>
     <td>".$row[age]."</td>
     <td>".$row[regdate]."</td>
     <td><a href=modify.php?id=".$row[id].">编辑</a></td>
    </tr>";
  }
  echo "</table>";

 }//显示列表的内容
 else
 {
  if(!$_post[ok])
  {
   $sql="select * from userinfo where id=".$_get[id];
   $result=mysql_query($sql);
   $row=mysql_fetch_array($result);
   ?>
   <form method=post action='modify.php?id=<? echo $_get[id];?>'>
   <?
   echo $row[id]."<br>"; 
   ?>
   <input type="hidden" name="id" value=<?echo $row[id];?>>
   姓名 www.aimeige.com.cn<input type=text name="username" value=<?echo $row[username];?>><br>
   性别 <input type=text name="gender" value=<?echo $row[gender];?>><br>
   年龄 <input type=text name="age"   value=<?echo $row[age];?>><br>
   注册时间 <input type=text name="regdate"   value=<?echo $row['regdate'];?>><br>
   <input type=submit name=ok value="提交">
   </form>
   <?
  }// if(!$_post[ok])
  else{//针对$ok被激活后的处理:
   
   $sql="update userinfo set username='".$_post[username]."',gender='".$_post[gender]."',age='".$_post[age]."',regdate='".$_post[regdate]."' where id='".$_post[id]."'";
   $result=mysql_query($sql);
   if($result)
    echo "记录已经成功修改<br><a href='modify.php'>继续修改记录</a>";
   else
    echo "记录修改失败<br><a href=modify.php?id=".$_post[id].">返回</a>";
  }
 }//else($id部分)
} // end if
?>

保存记录到数据库

 代码如下 复制代码

<?php
if($_post[ok])
{
 $link_id = mysql_connect("localhost","root","") or die("连接失败");
 if($link_id)
 {
  //选择数据库
  mysql_select_db("my_test");
  //插入数据sql语句
  $sql="insert into userinfo values('".$_post[id]."','".$_post[name]."','".$_post[gender]."','".$_post[age]."','".$_post[regdate]."')";
  //执行sql语句
  $result=mysql_query($sql);
  if($result)
  {
   echo "记录已经成功插入<br><a href='insert.php'>继续插入记录</a>";
  }
  else
   echo "执行插入sql语句失败";
  //关闭数据库
  mysql_close($link_id);
 }
}
else
{
 ?>
 <form method=post action=insert.php>
 编号<input type=text name="id"><br>
 姓名<input type=text name="name"><br>
 性别<input type=text name="gender" ><br>
 年龄<input type=text name="age"><br>
 注册时间<input type=text name="regdate"><br>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 <input type=submit name=ok value="提交">
 </form>
 <?
}//end if
?>

对文件访问实现的源代码。主要讲到php教程操作文件以及xml文档实例方法。

<?php
// 创建一个新的pdf文档句柄
$pdf = cpdf_open(0);
// 打开一个文件
cpdf_open_file($pdf);
// 开始一个新页面(a4)
cpdf_begin_page($pdf, 595, 842);
// 得到并使用字体对象
$arial = cpdf_findfont($pdf, "arial", "host", 1);
cpdf_setfont($pdf, $arial, 10);
// 输出文字
cpdf_show_xy($pdf, "this is an exam of pdf documents, it is a good lib,",50, 750);
cpdf_show_xy($pdf, "if you like,please try yourself!", 50, 730);
// 结束一页
cpdf_end_page($pdf);
// 关闭并保存文件
cpdf_close($pdf);

// 如果要直接输出到客户端的话,把下面的代码加上

$buf = cpdf_get_buffer($pdf);

$len = strlen($buf);

header("content-type: application/pdf");

header("content-length: $len");

header("content-disposition: inline; filename=pie_php.pdf");

print $buf;

cpdf_delete($pdf);
?>

xml文件

<?php
$dom = new domdocument();
$dom->load("order.xsl");
$proc = new xsltprocessor;
$xsl = $proc->importstylesheet($dom);

$xml = new domdocument();
$xml->load('order.xml');
$string = $proc->transformtoxml($xml);
echo $string;
?>

order.sls

<?xml version="1.0" encoding='gb2312' ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform">
<xsl:output encoding='gb2312'/>

  <xsl:param name="column" select="'sku'"/>
<xsl:param name="order" select="'ascending'"/>
  <xsl:template match="/">
    <html>
      <body>
        <xsl:apply-templates select="order">
          <xsl:with-param name="sortcolumn" select="$column" />
          <xsl:with-param name="sortorder" select="$order" />
        </xsl:apply-templates>
      </body>
    </html>
  </xsl:template>

  <xsl:template match="order">
    <xsl:param name="sortcolumn" />
    <xsl:param name="sortorder" />
    <table border="1">
      <tr>
        <th>订单号</th>
        <th>id</th>
        <th>说明</th>
        <th>价格</th>
        <th>数量</th>
        <th>合计</th>
      </tr>
      <xsl:apply-templates select="item">        
      </xsl:apply-templates>
    </table>
  </xsl:template>
  <xsl:template match="item">
    <tr>
      <td><xsl:value-of select="../account" /></td>
      <td><xsl:value-of select="sku" /></td>
      <td><xsl:value-of select="description" /></td>
      <td><xsl:value-of select="priceper" /></td>
      <td><xsl:value-of select="quantity" /></td>
      <td><xsl:value-of select="subtotal" /></td>
    </tr>
  </xsl:template>    
</xsl:stylesheet>

order.xml文件

<?xml version="1.0" encoding='gb2312' ?>
<order>
  <account>9900234</account>
  <item id="1">
    <sku>1234</sku>
    <priceper>5.95</priceper>
    <quantity>100</quantity>
    <subtotal>595.00</subtotal>
    <description>www.111cn.net</description>
  </item>
  <item id="2">
    <sku>6234</sku>
    <priceper>22.00</priceper>
    <quantity>10</quantity>
    <subtotal>220.00</subtotal>
    <description>足球</description>
  </item>
  <item id="3">
    <sku>9982</sku>
    <priceper>2.50</priceper>
    <quantity>1000</quantity>
    <subtotal>2500.00</subtotal>
    <description>手机包</description>
  </item>
  <item id="4">
    <sku>3256</sku>
    <priceper>389.00</priceper>
    <quantity>1</quantity>
    <subtotal>389.00</subtotal>
    <description>手机</description>
  </item>
  <numberitems>www.111cn.net</numberitems>
  <total>3704.00</total>
  <orderdate>07/07/2002</orderdate>
  <ordernumber>8876</ordernumber>
</order>

 

 

这里主要讲到关于在php教程类的调用,申请明,使用以前各种类的实例方法与操作过程,让你清楚的知道php类的construct  destruct  clone  call wake sleep用法。

简单购物车类

<?php
class cart
{
    var $items;  // 购物车中的项目
    // 把 $num 个 $artnr 放入车中
    function add_item ($artnr, $num)
    {
        $this->items[$artnr] += $num;
    }
    // 把 $num 个 $artnr 从车中取出
    function remove_item ($artnr, $num)
    {
        if ($this->items[$artnr] > $num) {
            $this->items[$artnr] -= $num;
            return true;
        } else {
            return false;
        }
    }
}
?>

类中带有构造函数

<?php
class session
{
    public  function __construct()
{
     echo '构造函数执行';
    }
    public  function __destruct()
    {
      echo '析构函数执行';
    }
}
$obj = new session;
unset($obj);//删除对象, __destruct()会被调用的
//输出
//构造函数执行
/析构函数执行
?>

类的调用与clone

<?php
class session
{
 public $age = 20;
 public $sub = null;
 public function __clone()
 {
  $this->sub=clone $this->sub;
 }
}
class session 2
{
 public $value=5;
}
$s   = new session;
$s->sub=new session 2;
$s2 = clone $s;
$s->sub->$value =10;
echo $s2->sub->$value;
?>

类 call方法

<?php
class session
{
 protected function __call($func,$para)
 {
  echo '方法不存在:’func."n".'参数为:'."n";
  print_r($para);
 }
}
$s=new session ();
echo $c->getnames('hello','you');
/*
输出:
方法不存在:getnames
参数为:
array
(
    [0] => hello
    [1] => you
)
*/
?>

类wake sleep

<?php
//定义一个session类
class session {
 public $sessionvars;
public $id;
 function session() {
  $this->id = uniqid();
 }
 function _sleep() {
 }
 function _wake() {
  $this->id = uniqid();
 }
}
    //建立一个对象
    $s = new session;
    $s-> sessionvars = "1.02";

    //串行化
    $ss = serialize($s);
    //unserialize it 反串行化 id被重新赋值
    $s2 = unserialize($s);
    // $s和$s2有不同的id
    print_r($s);
    print_r($s2);
  ?>

函数和类来实现,包括计数,字符串连接,函数返    回结果,数字加法运算,数字乘法运算,数字大小排序等通过函数来实现的例子

<?php教程
function small_numbers()
{
    return array (0, 1, 2);
}
list ($zero, $one, $two) = small_numbers();
?> 

函数引用

<?php
function &returns_reference()
{
    return $someref;
}
$newref =& returns_reference();
?>

相加减

<?php
function foo()
{
    $numargs = func_num_args();
    echo "number of arguments: $numargs<br />n";
    if ($numargs >= 2) {
        echo "second argument is: " . func_get_arg(1) . "<br />n";
    }
    $arg_list = func_get_args();
    for ($i = 0; $i < $numargs; $i++) {
        echo "argument $i is: " . $arg_list[$i] . "<br />n";
    }
}
foo(1, 2, 3);
?>

 

[!--infotagslink--]

相关文章

  • Lua语言新手简单入门教程

    这篇文章主要给大家介绍的是关于Lua语言新手入门的简单教程,文中通过示例代码一步步介绍的非常详细,对各位新手们的入门提供了一个很方便的教程,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。...2020-06-30
  • 分享一段php获取linux服务器状态的代码

    简单的php获取linux服务器状态的代码,不多说-直接上函数:复制代码 代码如下:function get_used_status(){ $fp = popen('top -b -n 2 | grep -E "^(Cpu|Mem|Tasks)"',"r");//获取某一时刻系统cpu和内存使用情况 $rs =...2014-05-31
  • Springboot+TCP监听服务器搭建过程图解

    这篇文章主要介绍了Springboot+TCP监听服务器搭建过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-10-28
  • 服务器 UDP端口占用几千个的解决办法

    前一段时间使用NetStat命令查看服务器端口时,发现服务器udp端口开放了好多,最少在1000个以上,当时事情比较多,没有管它,今天终于有点时间,仔细检查了一下,排除了这个问题. ...2016-01-27
  • PHP连接公司内部服务器的MYSQL数据库的简单实例

    “主机,用户名,密码”得到连接、“数据库,sql,连接”得到结果,最后是结果的处理显示。当然,数据库连接是扩展库为我们完成的,我们能做的仅仅是处理结果而已。...2013-09-29
  • 解决HttpPost+json请求---服务器中文乱码及其他问题

    这篇文章主要介绍了解决HttpPost+json请求---服务器中文乱码及其他问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-22
  • C#线程入门教程之单线程介绍

    这篇文章主要介绍了C#线程入门教程之单线程介绍,本文讲解了什么是进程、什么是线程、什么是多线程等内容,并给出了一个单线程代码示例,需要的朋友可以参考下...2020-06-25
  • Hyper-V尝试连接到服务器出错无效类的解决方法

    这篇文章主要介绍了Hyper-V尝试连接到服务器出错无效类的解决方法,需要的朋友可以参考下...2016-09-28
  • mac使用Shell(终端)SSH连接远程服务器的方法

    这篇文章主要介绍了mac使用Shell(终端)SSH连接远程服务器的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-07-11
  • js实现上传图片到服务器

    这篇文章主要为大家详细介绍了js实现上传图片到服务器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-04-11
  • CocosCreator入门教程之用TS制作第一个游戏

    这篇文章主要介绍了CocosCreator入门教程之用TS制作第一个游戏,对TypeScript感兴趣的同学,一定要看一下...2021-04-16
  • c# HttpWebRequest通过代理服务器抓取网页内容应用介绍

    在C#项目开发过程中可能会有些特殊的需求比如:用HttpWebRequest通过代理服务器验证后抓取网页内容,要想实现此方法并不容易,本文整理了一下,有需求的朋友可以参考下...2020-06-25
  • uploader秒传图片到服务器完整代码

    这篇文章主要为大家详细介绍了uploader秒传图片到服务器的完整代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-04-27
  • Linux环境下nginx搭建简易图片服务器

    这篇文章主要介绍了Linux环境下nginx搭建简易图片服务器,需要的朋友可以参考下...2016-01-27
  • Windows 2016 服务器安全设置

    最近公司的网站升级Windows 2016服务器,选择安装了最新版的Windows 2016,以前使用Windows服务器还是Windows 2003系统,发现变化还是挺多的,依次记录下来以备后面查阅...2020-10-05
  • 使用node-media-server搭建一个简易的流媒体服务器

    这篇文章主要介绍了使用node-media-server搭建一个简易的流媒体服务器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-20
  • 阿里云免费套餐再次升级: 含云服务器、云数据库等35+产品

    阿里云免费套餐再次升级,提供更多产品,更久时长的使用,本次活动针对个人用户和企业用户,不过仅限新用户申请,想要了解更多,下面就来简单地了解一下活动规则 阿里云免费...2017-07-06
  • ECMall支持SSL连接邮件服务器的配置方法详解

    首先,主要是ecmall使用的phpmailer版本太低,不支持加密连接。然后,得对相应代码做一定调整。1. 覆盖phpmailer请从附件进行下载: 复制代码 代码如下:http://cywl.jb51.net:81/201405/yuanma/ecmall_phpmailer_lib(jb51.n...2014-05-31
  • php入门教程(类实例教程)

    这里主要讲到关于在php教程类的调用,申请明,使用以前各种类的实例方法与操作过程,让你清楚的知道php类的construct destruct clone call wake sleep用法。 简单购物车...2016-11-25
  • golang DNS服务器的简单实现操作

    这篇文章主要介绍了golang DNS服务器的简单实现操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-01