Php自用分页函数程序代码
代码如下 | 复制代码 |
/* * 前台分页 * * $page_array = array( * 'totle' =>10, //总数 * 'dispage' =>10, //每页显示条数 * 'url' =>'/article/list/',//url地址 * 'now_page', =>1, //当前所在页数 * ); * * @return pagenav */ function front_page( $page_array ){ //分页判断 $lastpage = ceil($page_array['total'] / $page_array['dispage']); //最后一页 $page_array['now_page'] = min( $lastpage , $page_array['now_page'] );//比较当前页数和最后一页 $prepage = $page_array['now_page'] - 1;//上一页 $nextpage = ($page_array['now_page'] == $lastpage ? 0 : $page_array['now_page'] + 1 );//下一页 $firstcount = ($page_array['now_page']-1) * $page_array['dispage']; if( $lastpage <= 1) return false;//最后一页小于1,则直接返回 //首页 if($prepage){ $page_array[]="<a href='{$page_array['url']}"."1/'>首页</a>"; }else{ $page_array[]="<span class=\"nolink\">首页</span>"; } //上一页 if($prepage) { $page_array[]="<a href='{$page_array['url']}$prepage/'> 上一页 </a> "; }else{ $page_array[]=''; } //显示的数字分页条数 $pagenum=5; $offset=2;//偏移两 $from=$page_array['now_page'] - $offset;//起始 $to=$page_array['now_page'] + $pagenum-$offset-1;//终止 if($pagenum>$lastpage){ $from=1; $to=$lastpage; }else{ if($from<1){ $to=$page_array['now_page'] + 1 - $from; $from=1; if(($to-$from)<$pagenum && ($to-$from)<$lastpage){ $to=$pagenum; } }elseif($to>$lastpage){ $from=$page_array['now_page'] - $lastpage+$to; $to=$lastpage; if(($to-$from)<$pagenum && ($to-$from)<$lastpage){ $from=$lastpage-$pagenum+1; } } } for($i=$from;$i<=$to;$i++){ if($i == $page_array['now_page']){ $pagenav.="<a href=\"#\" title=\"\">$i</a> "; }else{ $pagenav.="<a href=\"{$page_array['url']}$i/\" title=\"\">$i</a> "; } } //数字分页 $page_array[]= $pagenav; //下一页 if($nextpage){ $page_array[]="<a href='{$page_array['url']}"."$nextpage/'> 下一页 </a> "; }else { $page_array[]=''; } //尾页 if($nextpage){ $page_array[]="<a href='{$page_array['url']}"."$lastpage/'>尾页</a>"; }else{ $page_array[]='<span class="nolink">尾页</span>'; } //记录数 $page_array[]="<span>每页 ".$page_array['dispage']." 条</span> <span>共 ".$page_array['total']." 条纪录</span>"; //分页数 $page_array[]="共 ".$lastpage." 页"; //跳页 $page_array[] = '<span>跳转到:</span><input size="4" id="pagenu" type="text" onkeydown="javascript:if(event.keyCode==13){var page=(this.value<0)?1:this.value;location=\''.$page_array['url'].'\'+page;}" /> <a href="javascript:void(0)" onclick="javascript:var spage=(window.document.getElementById(\'pagenu\').value==\'\')?1:window.document.getElementById(\'pagenu\').value;location=\''.$page_array['url'].'\'+spage;">Go</a>'; //第一页总数 $firstcount=$firstcount < 1 ? 0 : $firstcount; return array('pagenav'=>$page_array,'limit'=>$firstcount,'offset'=> $page_array['dispage'],'allpage'=>$lastpage); } |
推荐方法 CURL获取
代码如下 | 复制代码 |
<?php |
使用file_get_contents
代码如下 | 复制代码 |
<?php |
看看file_get_contents性能
1)fopen/file_get_contents 每次请求远程URL中的数据都会重新做DNS查询,并不对DNS信息进行缓存。但是CURL会自动对DNS信息进行缓存。对同一域名下的网页或者图片的请求只需要一次DNS 查询。这大大减少了DNS查询的次数。所以CURL的性能比fopen/file_get_contents 好很多。
2)fopen/file_get_contents在请求HTTP时,使用的是http_fopen_wrapper,不会keeplive。而curl却可以。这样在多次请求多个链接时,curl效率会好一些。(设置header头应该可以)
3)fopen/file_get_contents函数会受到php.ini文件中allow_url_open选项配置的影响。如果该配置关闭了,则该函数也就失效了。而curl不受该配置的影响。
4)curl可以模拟多种请求,例如:POST数据,表单提交等,用户可以按照自己的需求来定制请求。而fopen/file_get_contents只能使用get方式获取数据。
5)fopen/file_get_contents 不能正确下载二进制文件
6)fopen/file_get_contents 不能正确处理ssl请求
7)curl 可以利用多线程
8)使用 file_get_contents 的时候如果 网络出现问题, 很容易堆积一些进程在这里
9)如果是要打一个持续连接,多次请求多个页面。那么file_get_contents就会出问题。取得的内容也可能会不对。所以做一些类似采集工作的时候,肯定就有问题了。对做采集抓取的用curl,如果还有同不相信下面我们再做个测试
curl与file_get_contents性能对比PHP源代码如下:
1829.php
代码如下 | 复制代码 |
<?php /** * 通过淘宝IP接口获取IP地理位置 * @param string $ip * @return: string **/ function getCityCurl($ip) { $url="http://ip.taobao.com/service/getIpInfo.php?ip=".$ip; $ch = curl_init(); $timeout = 5; curl_setopt ($ch, CURLOPT_URL, $url); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $file_contents = curl_exec($ch); curl_close($ch); $ipinfo=json_decode($file_contents); if($ipinfo->code=='1'){ return false; } $city = $ipinfo->data->region.$ipinfo->data->city; return $city; } function getCity($ip) { $url="http://ip.taobao.com/service/getIpInfo.php?ip=".$ip; $ipinfo=json_decode(file_get_contents($url)); if($ipinfo->code=='1'){ return false; } $city = $ipinfo->data->region.$ipinfo->data->city; return $city; } // for file_get_contents $startTime=explode(' ',microtime()); $startTime=$startTime[0] + $startTime[1]; for($i=1;$i<=10;$i++) { echo getCity("121.207.247.202")."</br>"; } $endTime = explode(' ',microtime()); $endTime = $endTime[0] + $endTime[1]; $totalTime = $endTime - $startTime; echo 'file_get_contents:'.number_format($totalTime, 10, '.', "")." seconds</br>"; //for curl $startTime2=explode(' ',microtime()); $startTime2=$startTime2[0] + $startTime2[1]; for($i=1;$i<=10;$i++) { echo getCityCurl('121.207.247.202')."</br>"; } $endTime2 = explode(' ',microtime()); $endTime2=$endTime2[0] + $endTime2[1]; $totalTime2 = $endTime2 - $startTime2; echo "curl:".number_format($totalTime2, 10, '.', "")." seconds"; ?> |
测试访问
file_get_contents速度:4.2404510975 seconds
curl速度:2.8205530643 seconds
curl比file_get_contents速度快了30%左右,最重要的是服务器负载更低.
PHP定时执行程序脚本我写过不少文章不过都被那些大站采集过去了,结果百度算法有问题大站有排名我的没有,下面我今天再来给各位整理一些不错的定时执行程序的php代码今天分享一个超简单直接的PHP定时执行的小代码,关掉浏览器,PHP脚本也能后继续执行!
用web浏览器定时刷新今天想到用sleep函数来实现php 自动定时执行。只要php能运行即可。
由于代码少,这里给个例子直接解释:
代码如下 | 复制代码 |
<?php ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行 set_time_limit(20);//程序超时时间,单位秒;通过set_time_limit(0)可以让程序无限制的执行下去;当用了set_time_limit()函数设置运行时间,sleep()函数在执行程序时的持续时间将会被忽略掉 $interval=5;//每隔多少秒运行,单位:秒 do{ $number = file_get_contents($num_file); //等待执行的时间 ?> |
上面方法如果关了浏览器好像就不行了,我们可以尝试使用平台的计划任务来处理
1、windows 的计划任务
2、linux的脚本程序
代码如下:
PHP
代码如下 | 复制代码 |
<?php |
在浏览器里执行一下http://localhost/test/time.php
则会在test 文件夹下每隔5秒自动创建一个以当前时间戳命名的txt文件,并写入当前时间戳
可以发现即使关闭了浏览器。这个脚本还是会每5秒执行一次。
这样就达到了定时执行的目的。
如果是要按时间点执行,比如每天 1点钟的时候执行。
那么也只需要小小修改一下也能够实现。
当然这只是一种解决思路,至于实际应用,还要再探索一番
还有一种实现方法:利用死循环,原理差不多
PHP
代码如下 | 复制代码 |
<?php 补充这样也可以 <?php ?> |
一个新手写的 PHP 图片上传类,基本的功能已经满足,可以返回客户端文件名,文件大小,临时文件夹路径,允许上传的文件类型,文件后缀,新路径,新文件名,图片宽度,图片高度,自定义上传成功消息,显示上传的状态。。是否上传成功的信息等等,外加构造函数,对于新手学习来说,已经足够了,值得研究学习。。
在使用时,和其它PHP类一样,先要进行初始化对象,在前台调用函数方法即可,这里不再详细说明,这个类的研究价值主要在于代码的规范与实用,并没有大量繁琐的代码,都是一些简单的上传函数整合成的一个PHP图片上传类,下面是详细的类代码:
代码如下 | 复制代码 |
class upload { |
给cookie赋值
setcookie (name, value, expire, path, domain)
例如:
代码如下 | 复制代码 |
<?php |
如果我们要获取user值如何操作
代码如下 | 复制代码 |
<?php |
如果我们没设置user cookie那么我们执行时会出错了,这样我们可以使用isset函数来加以判断。
代码如下 | 复制代码 |
<?php |
中文总是乱码
比如“小伟”获取后是“%u5C0F%u4F1F”
这个其实不是乱码,而是unicode的编码,在php中有一个内置函数叫unicode_encode可以将一个unicode字符串转变为你想要的编码方式,函数原型为:string unicode_encode ( unicode input, string encoding )
这里有一个例子可以参考一下:
代码如下 | 复制代码 |
<?php |
例子 结合js+php实现页面浏览统计
代码如下 | 复制代码 |
// 浏览页面次数 |
当运行这个页面时服务器端会写入个cookie值,用于保存你访问该页面的次数。这里应用到了php的setcookie方法。
输出这个值:
现在来看如何使用js获取和设置cookie
代码如下 | 复制代码 |
var cookie = $.cookie(‘demoCookie’); var cookie = $.cookie(‘demoCookie’); $.cookie(‘demoCookie’,text,{expires: 7}); |
当点击保存链接的时候,将输入框的值写入cookie。
相关文章
- 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
- 有一种方法,可以不打开网站而直接查看到这个网站的源代码.. 这样可以有效地防止误入恶意网站... 在浏览器地址栏输入: view-source:http://...2016-09-20
- <?php require('path.inc.php'); header('content-Type: text/html; charset=utf-8'); $borough_id = intval($_GET['id']); if(!$borough_id){ echo ' ...2016-11-25
- 本文实例讲述了JS基于Mootools实现的个性菜单效果代码。分享给大家供大家参考,具体如下:这里演示基于Mootools做的带动画的垂直型菜单,是一个初学者写的,用来学习Mootools的使用有帮助,下载时请注意要将外部引用的mootools...2015-10-23
- 本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
- 本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
- 本文实例讲述了jquery实现的伪分页效果代码。分享给大家供大家参考,具体如下:这里介绍的jquery伪分页效果,在火狐下表现完美,IE全系列下有些问题,引入了jQuery1.7.2插件,代码里有丰富的注释,相信对学习jQuery有不小的帮助,期...2015-10-30
- php 取除连续空格与换行代码,这些我们都用到str_replace与正则函数 第一种: $content=str_replace("n","",$content); echo $content; 第二种: $content=preg_replac...2016-11-25
- CREATE FUNCTION ChangeBigSmall (@ChangeMoney money) RETURNS VarChar(100) AS BEGIN Declare @String1 char(20) Declare @String2 char...2016-11-25
- php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p> </p> <p> </p> <form name="form1...2016-11-25
Android开发中findViewById()函数用法与简化
findViewById方法在android开发中是获取页面控件的值了,有没有发现我们一个页面控件多了会反复研究写findViewById呢,下面我们一起来看它的简化方法。 Android中Fin...2016-09-20- 这篇文章主要介绍了C++中Sort函数详细解析,sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变...2022-08-18
- 公司一些wordpress网站由于下载的插件存在恶意代码,导致整个服务器所有网站PHP文件都存在恶意代码,就写了个简单的脚本清除。恶意代码示例...2015-10-23