php分页实例程序函数
这是我自己写的一个php分页实例
代码如下 | 复制代码 |
<html> $query="SELECT count(*) FROM user"; |
上面代码不能重复使用,后来整理了一个类
代码如下 | 复制代码 |
#pages{display:block; text-align:center; overflow:hidden; color:#000; font-size:13px} |
PHP分页函数类源码:
代码如下 | 复制代码 |
<?php interface Page{ class AdminPage implements Page{ public function __construct($sql,$p){ $s = new Sql(); } public function showpage(){ if( $this->pageNum <=5){ $this->pageStr = '<ul id="pages"><li><a href="'.$this->urlstr.'?p=1" target="rframe" >首页</a></li>'; $this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$this->pageNum.'" target="rframe" >末页</a></li>'; }else if($this->pageNum>5){ $this->pageStr = '<ul id="pages"><li><a href="'.$this->urlstr.'?p=1" target="rframe" >首页</a></li>'; for($i=1;$i<=5;$i++){ $this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$this->pageNum.'" target="rframe" >末页</a></li>'; }else if($this->nowpage <= $this->pageNum -2 && $this->nowpage>=5){ }else if($this->nowpage>=$this->pageNum-3 && $this->nowpage <=$this->pageNum){ $this->pageStr = '<ul id="pages"><li><a href="'.$this->urlstr.'?p=1" target="rframe" >首页</a></li>'; for($i=$this->pageNum-4;$i<=$this->pageNum;$i++){ $this->pageStr .='<li><a href="'.$this->urlstr.'?p='.$this->pageNum.'" target="rframe" >末页</a></li>'; } |
创建一个可以控制的资源句柄,通过控制资源句柄超时来控制file_get_contents这个方法的超时时间,使用起来很方便,也很简单。
代码如下 | 复制代码 |
|
一、增加超时的时间限制
这里需要注意:set_time_limit只是设置你的PHP程序的超时时间,而不是file_get_contents函数读取URL的超时时间。
我一开始以为set_time_limit也能影响到file_get_contents,后来经测试,是无效的。真正的修改file_get_contents延时可以用resource $context的timeout参数:
代码如下 | 复制代码 |
$opts = array( |
二、一次有延时的话那就多试几次
有时候失败是因为网络等因素造成,没有解决办法,但是可以修改程序,失败时重试几次,仍然失败就放弃,因为file_get_contents()如果失败将返回 FALSE,所以可以下面这样编写代码:
代码如下 | 复制代码 |
$cnt=0; while($cnt < 3 && ($str=@file_get_contents('http...'))===FALSE) $cnt++; |
以上方法对付超时已经OK了。那么Post呢?细心点有人发现了'method'=>"GET", 对!是不是能设置成post呢?百度找了下相关资料,还真可以!而且有人写出了山寨版的post传值函数,如下:
代码如下 | 复制代码 |
function Post($url, $post = null) if (is_array($post)) $context['http'] = array 'timeout'=>60, return file_get_contents($url, false, stream_context_create($context)); $data = array echo Post('http://www.111cn.net', $data); |
问题现象:zend studio xdebug 57% waiting for xdebug session
作者本人的开发环境通常是windows宿主机器+vmare Linux虚拟机,通过linux的samba功能将虚拟机下的目录共享给windows做磁盘映射,这样的开发环境可以快速的在windows下实现完整的Linux代码调试环境。
今日在虚拟机下给php装xdebug来调试代码时,按照网上的步骤对xdebug做了配置,因为我的虚拟机环境的网络是走NAT的。
linux虚拟机的网段是192.168.2.0/255.255.255.0 ,网关为192.168.2.2.
windows宿主机器的网段是192.168.1.0/255.255.255.0
在windows下浏览器访问虚拟机下的http服务时都是通过vmare 的nat虚拟网卡转发过去,此网卡绑定的p为192.168.2.1。那么问题就来了,虚拟机下获取到的来路请求ip都是192.168.2.1,获取到xdebug的调试请求后转发信息给zend studio时网络却受阻了。我在设置的xdebug端口号是19000.如下如所示:
可以从图中看到我们的请求在发送给192.168.2.1 的19000端口时,但是这是卡住的原因是syn_sent的过程网络不通,导致php无法连接到windows宿主机下的zend studio。只要问题定位到就好办了,最快的解决方法就是开启iptables的端口转发,将发送到192.168.2.1 端口19000的数据全部转发给宿主机IP:192.168.1.105。
我们用root配置如下iptabless规则:
iptables -t nat -A OUTPUT -p tcp -d 192.168.2.1 --dport 19000 -j DNAT --to 192.168.1.105:19000
这样我们的zend studio就可以轻松收到php发来的xdebug调试数据了。
用NAT网络模式的虚拟环境比较蛋疼,如果换成桥接模式让宿主机和虚拟机同一个网段,那么问题迎刃而解。
本文章来给各位同学介绍我一个常用的php用户注册时的一些用户名和密码验证函数,还有:邮件格式、手机号码格式、 QQ号码的格式、电话号码格式包括区号、检测参数是否为中文等。代码如下 | 复制代码 |
Class Check{ /** * IsUsername函数:检测是否符合用户名格式 * $Argv是要检测的用户名参数 * $RegExp是要进行检测的正则语句 * 返回值:符合用户名格式返回用户名,不是返回false */ function IsUsername($Argv){ $RegExp='/^[a-zA-Z0-9_]{3,16}$/'; //由大小写字母跟数字组成并且长度在3-16字符直接 return preg_match($RegExp,$Argv)?$Argv:false; } /** * IsMail函数:检测是否为正确的邮件格式 * 返回值:是正确的邮件格式返回邮件,不是返回false */ function IsMail($Argv){ $RegExp='/^[a-z0-9][a-z.0-9-_] @[a-z0-9_-] (?:.[a-z]{0,3}.[a-z]{0,2}|.[a-z]{0,3}|.[a-z]{0,2})$/i'; return preg_match($RegExp,$Argv)?$Argv:false; } /** * IsSmae函数:检测参数的值是否相同 * 返回值:相同返回true,不相同返回false */ function IsSame($ArgvOne,$ArgvTwo,$Force=false){ return $Force?$ArgvOne===$ArgvTwo:$ArgvOne==$ArgvTwo; } /** * IsQQ函数:检测参数的值是否符合QQ号码的格式 * 返回值:是正确的QQ号码返回QQ号码,不是返回false */ function IsQQ($Argv){ $RegExp='/^[1-9][0-9]{5,11}$/'; return preg_match($RegExp,$Argv)?$Argv:false; } /** * IsMobile函数:检测参数的值是否为正确的中国手机号码格式 * 返回值:是正确的手机号码返回手机号码,不是返回false */ function IsMobile($Argv){ $RegExp='/^(?:13|15|18)[0-9]{9}$/'; return preg_match($RegExp,$Argv)?$Argv:false; } /** * IsTel函数:检测参数的值是否为正取的中国电话号码格式包括区号 * 返回值:是正确的电话号码返回电话号码,不是返回false */ function IsTel($Argv){ $RegExp='/[0-9]{3,4}-[0-9]{7,8}$/'; return preg_match($RegExp,$Argv)?$Argv:false; } /** * IsNickname函数:检测参数的值是否为正确的昵称格式(Beta) * 返回值:是正确的昵称格式返回昵称格式,不是返回false */ function IsNickname($Argv){ $RegExp='/^s*$|^c:\con\con$|[%,*"st<>&'()]|xA1xA1|xACxA3|^Guest|^xD3xCExBFxCD|xB9x43xABxC8/is'; //Copy From DZ return preg_match($RegExp,$Argv)?$Argv:false; } /** * IsChinese函数:检测参数是否为中文 * 返回值:是返回参数,不是返回false */ function IsChinese($Argv,$Encoding='utf8'){ $RegExp = $Encoding=='utf8'?'/^[x{4e00}-x{9fa5}] $/u':'/^([x80-xFF][x80-xFF]) $/'; Return preg_match($RegExp,$Argv)?$Argv:False; } } |
1.email验证函数
代码如下 | 复制代码 |
function isValidEmail($email) { $email = strtolower($email); $domain_array = explode(“.”, $email_array[1]); $length = sizeof($domain_array); |
2.验证移动电话是否符合规范
代码如下 | 复制代码 |
function isValidCellPhone($cellPhone) { $flag = FALSE; if (preg_match(‘@^1[3458][0-9]{9}$@’, $cellPhone)) { $flag = TRUE; } return $flag; } |
3.验证电话是否符合规范
代码如下 | 复制代码 |
function isValidPhone($phone) { if (preg_match(‘@^1[3458][0-9]{9}$@’, $phone)) { return true; } if (preg_match(‘@((?:(?:(?:00860?|0)(?:10|2d|[3-9]dd))-?)?([2-8]d{6,7}))@’, $phone)){ return true; } if (preg_match(‘@^([48]00(?:d{7}|-d{7}|-d{3}-d{4}|-d{4}-d{3}|d-d{3}-d{3}))$@’, $phone)) { return true; } return false; } |
相关文章
- eval函数在php中是一个函数并不是系统组件函数,我们在php.ini中的disable_functions是无法禁止它的,因这他不是一个php_function哦。 eval()针对php安全来说具有很...2016-11-25
- 在php中eval是一个函数并且不能直接禁用了,但eval函数又相当的危险了经常会出现一些问题了,今天我们就一起来看看eval函数对数组的操作 例子, <?php $data="array...2016-11-25
- 我们这里介绍php与KindEditor编辑器使用时如何利用KindEditor编辑器的分页功能实现文章内容分页,KindEditor编辑器在我们点击分页时会插入代码,我们只要以它为分切符,就...2016-11-25
Python astype(np.float)函数使用方法解析
这篇文章主要介绍了Python astype(np.float)函数使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-06-08- 最近接了一个项目,其中有需求要用到jquery分页控件,上网也找到了需要分页控件,各种写法各种用法,都是很复杂,最终决定自己动手写一个jquery分页控件,全当是练练手了。写的不好,还请见谅,本分页控件在chrome测试过,其他的兼容性...2015-10-30
- 这篇文章主要介绍了Python中的imread()函数用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-16
- 本文主要介绍了C# 中取绝对值的函数。具有很好的参考价值。下面跟着小编一起来看下吧...2020-06-25
- 下面小编就为大家带来一篇C#学习笔记- 随机函数Random()的用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
- 本文实例讲述了jquery实现的伪分页效果代码。分享给大家供大家参考,具体如下:这里介绍的jquery伪分页效果,在火狐下表现完美,IE全系列下有些问题,引入了jQuery1.7.2插件,代码里有丰富的注释,相信对学习jQuery有不小的帮助,期...2015-10-30
- CREATE FUNCTION ChangeBigSmall (@ChangeMoney money) RETURNS VarChar(100) AS BEGIN Declare @String1 char(20) Declare @String2 char...2016-11-25
- 这篇文章主要介绍了C++中Sort函数详细解析,sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变...2022-08-18
Android开发中findViewById()函数用法与简化
findViewById方法在android开发中是获取页面控件的值了,有没有发现我们一个页面控件多了会反复研究写findViewById呢,下面我们一起来看它的简化方法。 Android中Fin...2016-09-20- strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。语法:strstr(string,search)参数string,必需。规定被搜索的字符串。 参数sea...2013-10-04
PHP函数分享之curl方式取得数据、模拟登陆、POST数据
废话不多说直接上代码复制代码 代码如下:/********************** curl 系列 ***********************///直接通过curl方式取得数据(包含POST、HEADER等)/* * $url: 如果非数组,则为http;如是数组,则为https * $header:...2014-06-07- Foreach 函数(PHP4/PHP5)foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。...2013-09-28
- free函数是释放之前某一次malloc函数申请的空间,而且只是释放空间,并不改变指针的值。下面我们就来详细探讨下...2020-04-25
- Vue.js通过简洁的API提供高效的数据绑定和灵活的组件系统.这篇文章主要介绍了vue.js 表格分页ajax 异步加载数据的相关资料,需要的朋友可以参考下...2016-10-20
- PHP 函数 strip_tags 提供了从字符串中去除 HTML 和 PHP 标记的功能,该函数尝试返回给定的字符串 str 去除空字符、HTML 和 PHP 标记后的结果。由于 strip_tags() 无法实际验证 HTML,不完整或者破损标签将导致更多的数...2014-05-31
- 分享一个PHP加密解密的函数,此函数实现了对部分变量值的加密的功能。 加密代码如下: /* *功能:对字符串进行加密处理 *参数一:需要加密的内容 *参数二:密钥 */ function passport_encrypt($str,$key){ //加密函数 srand(...2015-10-30
SQL Server中row_number函数的常见用法示例详解
这篇文章主要给大家介绍了关于SQL Server中row_number函数的常见用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-08