php类

BluePage通用分页类

最后都变了- 提交于 2020-02-16 03:28:28
分页是网站常用的一项功能,如果有一个良好的分页类(函数),可以帮开发者节省不少开发时间. 1 分页要与SQL无关。为什么分页必须与SQL无关呢?很显然,有一定开发经验的朋友,至少都在使用数据库代理类。我们不应该在分页类中global或传递数据库类,至于直接把数据库连接放进去,那更要不得。另外请看第5点。 2 分页要与html及样式分离。与html分离是显而易见的需要的,首先,就算是同一个网站,也会需要不同风格的分页,甚至有些用的还是图片。其次,可以应付不同编码格式。另外,与html和样式分离,即相当于PHP的模板技术一处道理,美工可以修改出自己想要的效果。 3 要考虑变量值问题,并非所有分页都是数字的。比如有些人分页是page=pn123,甚至是page=p123nfadfafdaf。分页类要提供这方面的处理。 4 web协议不仅仅限于http。很多分页类内部就把协议定死了http了,这是不可取的。 仅仅上面最基本的四点,现在所能看到的所谓分页类中,能做到其中两个的,基本上没有。 好吧。我们开始。 5 分页不仅限于数据库分页。有些是对内容的分页,比如把一篇长达上万字的内容进行分页,这样如果把SQL写到类里面的,就更要不得了,一点用也没有。 BluePage是一个通用的分页类,它能帮助你更快地完成分页任务。 先看使用例子: http://www.bluessoft.com

ecshop操作数据库类

橙三吉。 提交于 2020-02-08 09:17:49
ECShop v2.7.2没有使用一些开源的数据库操作类,比如adodb或者PEAR,而是封装了自己的实现。这样做的好处是实现非常轻量,只有一个文件,27Kb,大大减小了分发包的文件大小。另外,当网站需要做memcached缓存时,也可以很方便的实现。当然,这样做的后果就是数据库的选择非常狭窄,无法实现其它的非MySQL数据库。 ECShop的数据操作类文件是includes/cls_mysql.php,类名是cls_mysql。该类主要提供了下面 一些比较有用的方法: getAll ($sql)和 getAllCached ($sql, $cached = 'FILEFIRST'):获取所有记录。 getRow ($sql, $limited = false)和 getRowCached ($sql, $cached = 'FILEFIRST'):获取单行记录。 getCol ($sqlse)和 getColCached ($sql, $cached = 'FILEFIRST'):获取某栏位的所有值。 getOne ($sql, $limited = false)和 getOneCached ($sql, $cached = 'FILEFIRST'):获取单个数值。 query ($sql):执行数据库查询。 autoExecute ($table, $field_values,

php加密解密实用类

风流意气都作罢 提交于 2020-01-28 18:39:07
  一个加解密类。如果你想在用户忘记密码时为他或她找回原来的密码,那么这个类是个好用的工具   用户注册的密码一般不会明文保存,总得加个密先。最简单的当然是在数据库sql语句中调用md5函数加密用户密码。这里介绍一个加解密类。如果你想在用户忘记密码时为他或她找回原来的密码,那么这个类是个好用的工具。当然,这个加解密类也可用于其他用途。   <?php   class crypt {   private $skey;   public function __construct($key) {   $this->skey = hash("md5", $key, true); //32位skey   }   public function safe_b64encode($string) {   $data = base64_encode($string);   $data = str_replace(array('+', '/', '='), array('-', '_', ''), $data);   return $data;   }   public function safe_b64decode($string) {   $data = str_replace(array('-', '_'), array('+', '/'), $string);   $mod4 = strlen

网站适用的PHP缓存类

蹲街弑〆低调 提交于 2020-01-27 10:52:07
缓存在实际使用当中应用很广泛,可以减轻对服务器数据库的访问,提高运行速度。目前很多CMS内容管理系统中频繁使用缓存机制来提高系统运行的效率。下面是一个写得不错的缓存类,可以参考下缓存的机制与写法。 cache.php 代码如下: <? /* 用户需要事先定义的常量: _CachePath_ 模板缓存路径 _CacheEnable_ 自动缓存机制是否开启,未定义或为空,表示关闭自动缓存机制 _ReCacheTime_ 自动重新缓存间隔时间,单位为秒,未定义或为空,表示关闭自动重新缓存 */ class cache { var $cachefile ; var $cachefilevar ; function cache() { //生成当前页的Cache组文件名 $this->cachefilevar 及文件名 $this->cachefile //动态页的参数不同对应的Cache文件也不同,但是每一个动态页的所有Cache文件都有相同的文件名,只是扩展名不同 $s = array ( "." , "/" ); $r = array ( "_" , "" ); $this ->cachefilevar= str_replace ( $s , $r , $_SERVER [ "SCRIPT_NAME" ]). "_" . $_GET [_ActionVar_]; $this -

浅析PHP类的自动加载和命名空间

痴心易碎 提交于 2020-01-27 03:20:53
php是使用 require(require_once) 和 include(include_once) 关键字加载类文件。但是在实际的开发工程中我们基本上不会去使用这些关键字去加载类。 因为这样做会使得代码的维护相当的困难。实际的开发中我们会在文件的开始位置用use关键字使用类,然后直接new这个类就可以了. 至于类是怎么加载的,一般都是框架或者composer去实现的。 <?php use Illuminate\Container\Container; $container = new Container(); 自动加载 小说网站 https://www.198200.com 我们可以通过一段 伪代码 来模拟一下在类的实例化工程中类是如何工作的 function instance($class) { // 如果类已加载则返回其实例 if (class_exists($class, false)) { return new $class(); } // 查看 autoload 函数是否被用户定义 if (function_exists('__autoload')) { __autoload($class); // 最后一次加载类的机会 } // 再次检查类是否存在 if (class_exists($class, false)) { return new $class(); }

浅析PHP类的自动加载和命名空间

大城市里の小女人 提交于 2020-01-15 13:35:59
php是使用 require(require_once) 和 include(include_once) 关键字加载类文件。但是在实际的开发工程中我们基本上不会去使用这些关键字去加载类。 因为这样做会使得代码的维护相当的困难。实际的开发中我们会在文件的开始位置用use关键字使用类,然后直接new这个类就可以了. 至于类是怎么加载的,一般都是框架或者composer去实现的。 <?php use Illuminate\Container\Container; $container = new Container(); 自动加载 我们可以通过一段 伪代码 来模拟一下在类的实例化工程中类是如何工作的 function instance($class) { // 如果类已加载则返回其实例 if (class_exists($class, false)) { return new $class(); } // 查看 autoload 函数是否被用户定义 if (function_exists('__autoload')) { __autoload($class); // 最后一次加载类的机会 } // 再次检查类是否存在 if (class_exists($class, false)) { return new $class(); } else { // 系统:我实在没辙了 throw

获取PHP类的所有属性和所有方法,可通过反射机制

混江龙づ霸主 提交于 2020-01-12 11:37:34
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 <?php class Class1{ public $var1 = 'var1' ; public $var2 = 'var2' ; private $var3 = 'var3' ; public function method1(){} public function method2(){} private function method3(){} } print_r(get_class_methods(Class1)); print_r(get_class_vars(Class1)); //用反射类可以获得私有属性和私有方法 $ref = new ReflectionClass(Class1);//Class1 可以为对象实例 $class = new Class(); print_r( $ref ->getMethods()); print_r( $ref ->getProperties()); 输出 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48

计算地图上两点间的距离PHP类

点点圈 提交于 2020-01-06 03:42:46
计算地图上两点间的距离,使用的是谷歌地图 <?php class GeoHelper { /** * @param int $lat1 * @param int $lon1 * @param int $lat2 * @param int $lon2 * @param string $unit * @return */ public static function distance($lat1, $lon1, $lat2, $lon2, $unit = "K") { $theta = $lon1 - $lon2; $dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad ($lat2)) * cos(deg2rad($theta)); $dist = acos($dist); $dist = rad2deg($dist); $miles = $dist * 60 * 1.1515; $unit = strtoupper($unit); if ($unit == "K") { return ($miles * 1.609344); } else if ($unit == "N") { return ($miles * 0.8684); } else { //mi

超强PHP分页类(转自PHPCHINA)

我们两清 提交于 2019-12-30 03:35:02
<? /* * * filename: ext_page.class.php * @package:phpbean * @author :feifengxlq<feifengxlq#gmail.com><[url=http://www.phpobject.net/]http://www.phpobject.net/[/url]> * @copyright :Copyright 2006 feifengxlq * @license:version 2.0 * @create:2006-5-31 * @modify:2006-6-1 * @modify:feifengxlq 2006-11-4 * description:超强分页类,四种分页模式,默认采用类似baidu,google的分页风格。 * 2.0增加功能:支持自定义风格,自定义样式,同时支持PHP4和PHP5, * to see detail,please visit [url=http://www.phpobject.net/blog/read.php]http://www.phpobject.net/blog/read.php[/url]? * example: * 模式四种分页模式: require_once('../libs/classes/page.class.php'); $page=new page(array

细说PHP文件上传类fileupload.class.php,很好用

眉间皱痕 提交于 2019-12-29 20:59:40
<?php /** file: fileupload.class.php 文件上传类FileUpload 本类的实例对象用于处理上传文件,可以上传一个文件,也可同时处理多个文件上传 */ class FileUpload { private $path = "./uploads"; //上传文件保存的路径 private $allowtype = array('jpg','gif','png'); //设置限制上传文件的类型 private $maxsize = 1000000; //限制文件上传大小(字节) private $israndname = true; //设置是否随机重命名文件, false不随机 private $originName; //源文件名 private $tmpFileName; //临时文件名 private $fileType; //文件类型(文件后缀) private $fileSize; //文件大小 private $newFileName; //新文件名 private $errorNum = 0; //错误号 private $errorMess=""; //错误报告消息 /** * 用于设置成员属性($path, $allowtype,$maxsize, $israndname) * 可以通过连贯操作一次设置多个属性值 *@param