ajax简单与ajax+php实例应用(1/4)
[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); } } } } |
代码如下 | 复制代码 |
function getsubcomments($parent = 0, $level = 0) { $sql = "..."; // 查询记录的sql $list = array(); // 先从数据得到记录集,再对记录添加level, 父层level = 0,它的下级level = 1,如此类推 $tmparr = getsubcomments($row->id, $level + 1); // 递归调用 return $list; $list = array(); // 按level分层次输出内容 echo $pre . '|- '; |
本款程序是利用php+txt实现的网页访问次数统计代码,要记录用户访问了页站页面的次数比较简单实用。
include ("counter.php")
?>
代码如下 | 复制代码 |
<html> <title>访问者计数器</title> </head> |
<?php
代码如下 | 复制代码 |
$fp = fopen("counter.txt","r+"); /* }
|
html代码
代码如下 | 复制代码 |
<table width="100%" border="0" valign="top" align="center" cellpadding="0" cellspacing="0" > <tr > $sql="select * from test order by id "; <tr > <?php |
相关文章
- 最基础的对数据的增加删除修改操作实例,菜鸟们收了吧...2013-09-26
- 这篇文章主要介绍了JS跨浏览器解析XML应用过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-10-16
- 主键与外键的关系,通俗点儿讲,我现在有一个论坛,有两张表,一张是主贴 thread,一张是回帖 reply先说说主键,主键是表里面唯一识别记录的字段,一般是帖子id,体现在访问的时候,例如是 thread.php?id=1 表示我要访问的是帖子...2015-11-24
- 在MySQL中,InnoDB引擎类型的表支持了外键约束。 外键的使用条件: 1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持); 2.外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时...2015-11-24
- 这篇文章主要介绍了c#接口使用的实例,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-17
- 一、数据访问对象 (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- Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。本文我们来讲解Redis的应用场景实例。 C...2016-11-25
- C# 实现简单打印的实例代码,需要的朋友可以参考一下...2020-06-25
- 这篇文章主要介绍了C#中的IEnumerable简介及简单实现实例,本文讲解了IEnumerable一些知识并给出了一个简单的实现,需要的朋友可以参考下...2020-06-25
PHP explode()函数的几个应用和implode()函数有什么区别
explode()函数介绍explode() 函数可以把字符串分割为数组。语法:explode(separator,string,limit)。 参数 描述 separator 必需。规定在哪里分割字符串。 string...2015-11-08- Libevent 是一个用C语言编写的、轻量级的开源高性能网络库,主要有以下几个亮点:事件驱动( event-driven),高性能;轻量级,专注于网络,下文我们就一起来看PHP Libevent扩展安装...2016-11-25
- <? $a="变量的值将被带入"; echo <<< help <pre> php中echo <<< 的应用 虽然echo "...";可以断行,但若其中如出现",则仍需做转义 处理。需写做: echo " ...2016-11-25
- 1. PHP-GTK介绍 1.1 PHP-GTK PHP-GTK是PHP的延伸模组,它可以让程式设计师写出在客户端执行的、且独立的GUI的程式。这个模组不允许在浏览器上显视GTK+的程式,它一开始就...2016-11-25
- 这篇文章主要介绍了Vue中keep-alive的两种应用方式,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-15
- 在这一章里你将了解到迷人而又让人容易糊涂的套接字(Sockets)。Sockets在PHP中是没有充分利用的功能。今天你将看到产生一个能使用客户端连接的服务器,并在客户端使用sock...2016-11-25
- 这篇文章主要介绍了利用C++内核对象封装的类,程序只能运行单个实例,可防止多次启动,大家参考使用吧...2020-04-25
- 这篇文章介绍了css中的float属性的应用和理解,让设置的标签产生浮动效果。希望能帮助到有需要的同学。 一、Float的特性 1. 应用于文字围绕图片 2. 创建一个块级框...2017-01-22
- [ajax介绍] ajax是使用客户端脚本与web服务器交换数据的web应用开发方法。web页面不用打断交互流程进行重新加裁,就可以动态地更新。使用ajax,用户可以创建接近本地...2016-11-25
- ob_start([string output_callback])- 打开输出缓冲区 所有的输出信息不在直接发送到浏览器,而是保存在输出缓冲区里面,可选得回调函数用于处理输出结果信息。 ob...2016-11-25