ajax简单与ajax+php实例应用(1/4)

 更新时间:2016年11月25日 15:54  点击:2377

[ajax介绍]

  ajax是使用客户端脚本与web服务器交换数据的web应用开发方法。web页面不用打断交互流程进行重新加裁,就可以动态地更新。使用ajax,用户可以创建接近本地桌面应用的直接、高可用、更丰富、更动态的web用户界面。

  异步网页特效和xml(ajax)不是什么新技术,而是使用几种现有技术——包括级联样式表(css教程)、网页特效、xhtml、xml和可扩展样式语言转换(xslt),开发外观及操作类似桌面软件的web应用软件。

  [ajax执行原理]

  一个ajax交互从一个称为xmlhttprequest的javascript对象开始。如同名字所暗示的,它允许一个客户端脚本来执行http请求,并且将会解析一个xml格式的服务器响应。ajax处理过程中的第一步是创建一个xmlhttprequest实例。使用http方法(get或post)来处理请求,并将目标url设置到xmlhttprequest对象上。

  当你发送http请求,你不希望浏览器挂起并等待服务器的响应,取而代之的是,你希望通过页面继续响应用户的界面交互,并在服务器响应真正到达后处理它们。要完成它,你可以向xmlhttprequest注册一个回调函数,并异步地派发xmlhttprequest请求。控制权马上就被返回到浏览器,当服务器响应到达时,回调函数将会被调用。

 

这是一款可以按时间日期来生成html类,他可以生成文件,同时也支持删除文件,删除目录,具有生成静态所有功能哦。

 

 代码如下 复制代码
class html
{
    var $dir; //dir for the htmls(www.111cn.net/)
    var $rootdir; //root of html files(www.111cn.net/):html
    var $name; //html文件存放路径
    var $dirname; //指定的文件夹名称
    var $url; //获取html文件信息的来源网页地址
    var $time; //html文件信息填加时的时间
    var $dirtype; //目录存放方式:year,month,,,,
    var $nametype; //html文件命名方式:name
   
   
    function html($nametype = 'name', $dirtype = 'year', $rootdir = 'html')
    {
        $this -> setvar($nametype, $dirtype, $rootdir);
        }
   
    function setvar($nametype = 'name', $dirtype = 'year', $rootdir = 'html')
    {
        $this -> rootdir = $rootdir;
        $this -> dirtype = $dirtype;
        $this -> nametype = $nametype;
        }
   
    function createdir($dir = '')
    {
        $this -> dir = $dir?$dir:$this -> dir;
       
        if (!is_dir($this -> dir))
            {
            $temp = explode('/', $this -> dir);
            $cur_dir = '';
            for($i = 0;$i < count($temp);$i++)
            {
                $cur_dir .= $temp[$i] . '/';
                if (!is_dir($cur_dir))
                    {
                    @mkdir($cur_dir, 0777);
                    }
                }
            }
        }
   
    function getdir($dirname = '', $time = 0)
    {
        $this -> time = $time?$time:$this -> time;
        $this -> dirname = $dirname?$dirname:$this -> dirname;
       
        switch($this -> dirtype)
        {
        case 'name':
            if(empty($this -> dirname))
                $this -> dir = $this -> rootdir;
            else
                $this -> dir = $this -> rootdir . '/' . $this -> dirname;
            break;
        case 'year':
            $this -> dir = $this -> rootdir . '/' . date("y", $this -> time);
            break;
       
        case 'month':
            $this -> dir = $this -> rootdir . '/' . date("y-m", $this -> time);
            break;
       
        case 'day':
            $this -> dir = $this -> rootdir . '/' . date("y-m-d", $this -> time);
            break;
            }
       
        $this -> createdir();
       
        return $this -> dir;
        }
   
    function geturlname($url = '')
    {
        $this -> url = $url?$url:$this -> url;
       
        $filename = basename($this -> url);
        $filename = explode(".", $filename);
        return $filename[0];
        }
   
    function geturlquery($url = '')
    {
        $this -> url = $url?$url:$this -> url;
       
        $durl = parse_url($this -> url);
        $durl = explode("&", $durl[query]);
        foreach($durl as $surl)
        {
            $gurl = explode("=", $surl);
            $eurl[] = $gurl[1];
            }
        return join("_", $eurl);
        }
   
    function getname($url = '', $time = 0, $dirname = '')
    {
        $this -> url = $url?$url:$this -> url;
        $this -> dirname = $dirname?$dirname:$this -> dirname;
        $this -> time = $time?$time:$this -> time;
       
        $this -> getdir();
       
        switch($this -> nametype)
        {
        case 'name':
            $filename = $this -> geturlname() . '.htm';
            $this -> name = $this -> dir . '/' . $filename;
            break;
       
        case 'time':
            $this -> name = $this -> dir . '/' . $this -> time . '.htm';
            break;
       
        case 'query':
            $this -> name = $this -> dir . '/' . $this -> geturlquery() . '.htm';
            break;
       
        case 'namequery':
            $this -> name = $this -> dir . '/' . $this -> geturlname() . '-' . $this -> geturlquery() . '.htm';
            break;
       
        case 'nametime':
            $this -> name = $this -> dir . '/' . $this -> geturlname() . '-' . $this -> time . '.htm';
            break;
           
            }
        return $this -> name;
        }
   
    function createhtml($url = '', $time = 0, $dirname = '', $htmlname = '')
    {
        $this -> url = $url?$url:$this -> url;
        $this -> dirname = $dirname?$dirname:$this -> dirname;
        $this -> time = $time?$time:$this -> time;
        // 上面保证不重复地把变量赋予该类成员
        if(empty($htmlname))
            $this -> getname();
        else
            $this -> name = $dirname . '/' . $htmlname; //得到name
       
       
        $content = file($this -> url) or die("failed to open the url " . $this -> url . " !");;
       
        // /////////////关键步---用file读取$this->url
       
        $content = join("", $content);
        $fp = @fopen($this -> name, "w") or die("failed to open the file " . $this -> name . " !");
        if(@fwrite($fp, $content))
            return true;
        else
            return false;
        fclose($fp);
        }
    // ///////////////以name为名字生成html
    function deletehtml($url = '', $time = 0, $dirname = '')
    {
        $this -> url = $url?$url:$this -> url;
        $this -> time = $time?$time:$this -> time;
       
        $this -> getname();
       
        if(@unlink($this -> name))
            return true;
        else
            return false;
        }
   
    /**
     * function::deletedir()
     * 删除目录
     *
     * @param $file 目录名(不带/)
     * @return
     */
    function deletedir($file)
    {
        if(file_exists($file))
            {
            if(is_dir($file))
                {
                $handle = opendir($file);
                while(false !== ($filename = readdir($handle)))
                {
                    if($filename != "." && $filename != "..")
                        $this -> deletedir($file . "/" . $filename);
                    }
                closedir($handle);
                rmdir($file);
                return true;
                }else{
                unlink($file);
                }
            }
        }
   
    }
php父类与子类读取数据代码是一填二级分类的程序代码,该程序可以根据父的数据查找出其子类的数据哦。
 代码如下 复制代码

function getsubcomments($parent = 0, $level = 0) {
$db = &jfactory::getdbo();

$sql = "..."; // 查询记录的sql
$db->setquery($sql);
$rows = $db->loadobjectlist();

$list = array();

// 先从数据得到记录集,再对记录添加level, 父层level = 0,它的下级level = 1,如此类推
foreach ($rows as $row) {
$row->level = $level;
$list[] = $row;

$tmparr = getsubcomments($row->id, $level + 1); // 递归调用
if (count($tmparr)) {
foreach ($tmparr as $tmprow) {
$list[] = $tmprow;
}
}
}

return $list;
}

$list = array();
foreach ($tmplist as $row) {
$row->level = 0;
$list[] = $row;
$tmplist2 = getsubcomments($row->id, 1);
foreach ($tmplist2 as $row2) {
$list[] = $row2;
}
}

// 按level分层次输出内容
if ($row->level) {
$pre = '';
for ($n = 0; $n < $row->level; $n++)
$pre .= '----';

echo $pre . '|- ';
}
echo strip_tags($row->content);

 

本款程序是利用php+txt实现的网页访问次数统计代码,要记录用户访问了页站页面的次数比较简单实用。


include ("counter.php")
?>

 代码如下 复制代码

<html>
<head>

  <title>访问者计数器</title>

</head>
<body>
<center>
<font color = blue>你是第</font><font color = red> <?= $counter ?> </font><font color = blue>个来访者,</font>
<font color = blue>你的ip:</font><font color = red><?= $ip ?></font>
</center>
</body>
</html>

<?php

 

 代码如下 复制代码

$fp = fopen("counter.txt","r+");
 $counter = fgets($fp,80);
 $counter = doubleval($counter) + 1;
 fseek ($fp,0);
 fputs($fp,$counter);
 fclose($fp);

/*
如果要把这个统计器做成图片的,可以加入下面代码,并且在images目录下做0,9命名的图片就ok了。
*/
 $number = strlen("$counter");
 for($i = 0;$i<$number;$i++){
  $gra_counter = substr($counter,$i,1);
  $image = $image."<img src = 'images/".$gra_counter.".jpg'>";

 }


if ($http_server_vars["http_x_forwarded_for"])
{
$ip = $http_server_vars["http_x_forwarded_for"];
}
elseif ($http_server_vars["http_client_ip"])
{
$ip = $http_server_vars["http_client_ip"];
}
elseif ($http_server_vars["remote_addr"])
{
$ip = $http_server_vars["remote_addr"];
}
elseif (getenv("http_x_forwarded_for"))
{
$ip = getenv("http_x_forwarded_for");
}
elseif (getenv("http_client_ip"))
{
$ip = getenv("http_client_ip");
}
elseif (getenv("remote_addr"))
{
$ip = getenv("remote_addr");
}
else
{
$ip = "unknown";
}

html代码

 代码如下 复制代码

<table width="100%" border="0" valign="top" align="center" cellpadding="0" cellspacing="0" >
  <tr>
    <td valign="top">
 
<table width="600" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#cccccc" class="all" id="tr"> 

          <tr >
            <td align="center" bgcolor="#d4e6ec" >id</td>
            <td height="28" align="left" bgcolor="#d4e6ec" >标题</td>
            <td align="left" bgcolor="#d4e6ec" >日期</td>
          </tr> 
<?php include_once("page.php"); ?> 
<?php
$conn=mysql_connect("localhost","root","") or die("不能连接数据库教程:".mysql_error());
$db=mysql_select_db("dbtest") or die("选择数据库错:".mysql_error());
mysql_query("set names gb2312");

$sql="select * from test order by id ";
genpage($sql,3); //这里引用了第一个函数 后面数字定义每页记录数
$result=mysql_query($sql) or die ("数据库操作出错:".mysql_error());
while ($row=mysql_fetch_array($result))
{
?>

          <tr >
            <td width="55" align="center" bgcolor="#ffffff" ><?php echo $row['id'] ?> </td>
            <td width="383" height="28" align="left" bgcolor="#ffffff" ><?php echo $row['title'] ?></td>
            <td width="162" align="left" bgcolor="#ffffff" ><?php echo $row['editdate'] ?></td>
          </tr>

<?php
}
?>
          <tr>
            <td height="30" colspan="3" align="center" bgcolor="#d4e6ec"><?php showpage();//这里引用了第二个函数 ?></td>
          </tr>
      </table>

 

[!--infotagslink--]

相关文章

  • php简单数据操作的实例

    最基础的对数据的增加删除修改操作实例,菜鸟们收了吧...2013-09-26
  • JS跨浏览器解析XML应用过程详解

    这篇文章主要介绍了JS跨浏览器解析XML应用过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-10-16
  • 快速理解MySQL中主键与外键的实例教程

    主键与外键的关系,通俗点儿讲,我现在有一个论坛,有两张表,一张是主贴 thread,一张是回帖 reply先说说主键,主键是表里面唯一识别记录的字段,一般是帖子id,体现在访问的时候,例如是 thread.php&#63;id=1 表示我要访问的是帖子...2015-11-24
  • 关于MySQL外键的简单学习教程

    在MySQL中,InnoDB引擎类型的表支持了外键约束。 外键的使用条件: 1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持); 2.外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时...2015-11-24
  • c# 接口使用实例

    这篇文章主要介绍了c#接口使用的实例,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-17
  • yii添删改查实例

    一、数据访问对象 (DAO)YiiDAO 基于 PHP Data Objects (PDO) 构建。它是一个为众多流行的DBMS提供统一数据访问的扩展,这些 DBMS 包括MySQL, PostgreSQL 等等。因此,要使用 Yii DAO,PDO 扩展和特定的 PDO 数据库驱动(例如...2015-11-24
  • vivo X9如何查出后台偷跑流量应用?vivo X9查出后台偷跑流量应用的方法

    vivo X9如何查看后台流量偷跑的情况?小编教你轻松查到!还不了解的小伙伴快来看看吧! 1)打开手机自带的【i管家】应用,打开后点击【流量监控】选项。(如下图) 2)接着选...2016-12-31
  • PHP云存储Redis的应用场景与Redis实现排行榜功能

    Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。本文我们来讲解Redis的应用场景实例。 C...2016-11-25
  • C# 实现简单打印的实例代码

    C# 实现简单打印的实例代码,需要的朋友可以参考一下...2020-06-25
  • C#中的IEnumerable简介及简单实现实例

    这篇文章主要介绍了C#中的IEnumerable简介及简单实现实例,本文讲解了IEnumerable一些知识并给出了一个简单的实现,需要的朋友可以参考下...2020-06-25
  • PHP explode()函数的几个应用和implode()函数有什么区别

    explode()函数介绍explode() 函数可以把字符串分割为数组。语法:explode(separator,string,limit)。 参数 描述 separator 必需。规定在哪里分割字符串。 string...2015-11-08
  • PHP Libevent扩展安装配置及简单应用

    Libevent 是一个用C语言编写的、轻量级的开源高性能网络库,主要有以下几个亮点:事件驱动( event-driven),高性能;轻量级,专注于网络,下文我们就一起来看PHP Libevent扩展安装...2016-11-25
  • php中echo <<< 的应用

    <? $a="变量的值将被带入"; echo <<< help <pre> php中echo <<< 的应用 虽然echo "...";可以断行,但若其中如出现",则仍需做转义 处理。需写做: echo " ...2016-11-25
  • PHP-GTK 介绍及其应用

    1. PHP-GTK介绍 1.1 PHP-GTK PHP-GTK是PHP的延伸模组,它可以让程式设计师写出在客户端执行的、且独立的GUI的程式。这个模组不允许在浏览器上显视GTK+的程式,它一开始就...2016-11-25
  • Vue中keep-alive的两种应用方式

    这篇文章主要介绍了Vue中keep-alive的两种应用方式,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-15
  • php socket讲解与实例

    在这一章里你将了解到迷人而又让人容易糊涂的套接字(Sockets)。Sockets在PHP中是没有充分利用的功能。今天你将看到产生一个能使用客户端连接的服务器,并在客户端使用sock...2016-11-25
  • C++内核对象封装单实例启动程序的类

    这篇文章主要介绍了利用C++内核对象封装的类,程序只能运行单个实例,可防止多次启动,大家参考使用吧...2020-04-25
  • css中Float属性深入剖析与应用

    这篇文章介绍了css中的float属性的应用和理解,让设置的标签产生浮动效果。希望能帮助到有需要的同学。 一、Float的特性 1. 应用于文字围绕图片 2. 创建一个块级框...2017-01-22
  • ajax简单与ajax+php实例应用(1/4)

    [ajax介绍]   ajax是使用客户端脚本与web服务器交换数据的web应用开发方法。web页面不用打断交互流程进行重新加裁,就可以动态地更新。使用ajax,用户可以创建接近本地...2016-11-25
  • php 中缓冲输出实例代码

    ob_start([string output_callback])- 打开输出缓冲区   所有的输出信息不在直接发送到浏览器,而是保存在输出缓冲区里面,可选得回调函数用于处理输出结果信息。 ob...2016-11-25