编程技巧 - 文章列表
-
PHP实现异步调用方法研究
浏览器和服务器之间是通过 HTTP 协议进行连接通讯的。这是一种基于请求和响应模型的协议。浏览器通过 URL 向服务器发起请求,Web 服务器接收到请求,执行一段程序,然后做出响应,发送相应的html代码给客户端。这就有了一个问题,Web 服务器执行一段程序,可能几毫秒就完成,也可能几分钟都完不成。如果程序执行缓慢,用户可能没有耐心等下去,就关闭浏览器了。 而有的时候,我们更本不关心这些耗时的脚本的返回结果,但却还要等他执行完返回,才能继续下一步。 那么有没有什么办法,只是简单的触发调用这些耗时的脚本然后就继续下一步,让这些耗时的脚本在服务端慢慢执行? 经过试验,总结
-
PHP技巧:何避免页面刷新数据重复写入数据库
何避免页面刷新数据重复写入数据库 当表单的数据是提交给本页面处理并写入数据库时,点提交后,刷新页面的话使数据重复写入数据库。网上搜索一下,发现了不少的解决方案:\n一、把一页面分开为两个,数据提交给另一个页面处理,之后再跳到输入页面。 优点:避免了刷新的影响,并可连续提交数据。 缺点:当用户在还没有完整的填写表单时,点了提交。若不执行数据入库操作又要保留用户之前输入的内容,用php来实现有些困难或说不方便。(当然,用js实现可能比较容易。在此约定本文只是从php的角度评价,研究php的运用) *总的说来,这是一种不错的解决方案。
-
PHP连接ACCESS数据库的类
试过PHP连接ACCESS数据库没?这个用途不大,但有时候也用得着!我以前试图将一个ASP程序改写成PHP的,原程序的数据库设计得比较完善,我打算开发时就用它的ACCESS数据库 ,等程序完成后再转换。这个程序改写计划最终搁浅了,但此过程中为了方便连接ACCESS数据库,我写了个PHP连接ACCESS数据库的类,比较方便,希望有人用得着!<?/* 作者:夜无眠 QQ:27262681 ***本类只能在win平台的服务器上使用*/class access{ function access(dir){ //构析函数,调用.com建立数据源,链接数据库;参数为数据库
-
php设计模式介绍之值对象模式
上文:《PHP设计模式介绍》第一章 编程惯用法\n《PHP设计模式介绍》第二章 值对象模式\n在所有的最简单的程序中,大多数对象都有一个标识,一个重要的商业应用对象,例如一个Customer或者一个SKU,有一个或者更多的属性—id,name,email地址,这样可以把它从同一个类的其他实例区分开来。此外,对象有一个恒定的标识:它是贯穿于整个应用程序的一个唯一的标识,对于程序员来说,”customer A”在任何地方就是”customer A”,并且只要你的程序在持续运行时”customer A”仍然是”customer A”。 但是
-
PHP实例:PHP汉字验证码的实现
<?php /* * 文件:chinesechar.php * 作用:汉字数据储存 * 作者:PHP实战群:33918040 – 鱼尾唯一 * 网址:http://bbs.ailf.cn/ http://www.fishwei.com/ * 特注:版权所有转载注明出处!有付出才会有收获! */ ChineseChar = array(“人”,”出”,”来”,”友”,”学”,”孝”,”仁
-
PHP实例:用PHP如何获取歌曲时间
PHP代码\n<?php file =realpath(“1.mp3″); //当前目录下1.mp3 if (!file_exists(file)) { exit(‘文件不存在’); } player = new COM(“WMPlayer.OCX”); media = player->newMedia(file); time=media->duration;//总的秒数 h=floor(time /3600);//小
-
PHP技巧:一个页面执行时间类
PHP代码<?php class Timer//页面执行时间类 { var starttime;//页面开始执行时间 var stoptime;//页面结束执行时间 var spendtime;//页面执行花费时间 function getmicrotime()//获取返回当前微秒数的浮点数 { list(usec,sec)=explode(” “,microtime()); return ((float)usec + (f
-
PHP实例:将IP最后一位替换为星号
将IP最后一位替换为星号 代码如下:\n<?phpstr = ’1.1.1.1′;reg = ‘/((?:d+.){3})d+/’;echo preg_replace(reg, “1*”, str);?>
-
php 截取中文
<?php< ?php//截取中文字符串function mysubstr(str, start, len) { tmpstr = “”; strlen = start + len; for(i = 0; i < strlen; i++) { if(ord(substr(str, i, 1)) > 0xa0) { tmpstr .= substr(str, i, 2); i++; } else tmpstr .= substr(str,
-
php设计模式介绍之工厂模式
上文:《PHP设计模式介绍》第二章 值对象模式\n《PHP设计模式介绍》第三章 工厂模式\n在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象。 在这些情况, 新对象的建立就是一个 “过程”,不仅是一个操作,像一部大机器中的一个齿轮传动。\n问题\n你如何能轻松方便地建立这么” 复杂 ” 的对象