php下载文件时修改文件名

下载地址:

/download.php?controller=down_file&file=1.zip

然后在Controller里控制输出名就可以实现

$file = './路径/1.zip';
filename = '2.zip';
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header("Content-type:text/html;charset=utf-8");
header('Content-Disposition: attachment; filename='. $filename);
header('Content-Transfer-Encoding: binary');
header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
readfile($file);
exit;

阅读详细 »

高性能apache服务器配置MPM模块

1.
启用MPM模块配置文件

我们需要在httpd.conf文件中启用该配置文件,如下所示:

# Server-pool management (MPM specific)Include conf/extra/httpd-mpm.conf (去掉该行前面的注释符号”#”)
阅读详细 »

一个websocket的聊天室程序(php server)

通过命令行执行php文件  
如:D:\wamp\bin\php\php5.5.12\php -q D:\wamp\www\127.0.0.2\websocket\server.php 

通过本地web服务器访问 http://127.0.0.1/websocket/index.html即可

notice: 
需要php5.3或以上的执行环境,和一个web服务器如apache
浏览器需支持html5 web socket
这里监听 socket端口 9505,如遇到端口被占用可能需要在这两个文件内修改端口或者杀死相应端口进程

阅读详细 »

php 静态方法为什么不能调用this

一般方法调用,都是使用$obj->method();
这里的method方法中 $this 很明显就是 $obj
但是静态方法调用,我们一般使用 
Object::method();
没有进行实例化,所以根本没有$this对象

thinphp5 用input()方法接受 get/post数组 报错问题

症状:

<form>
<input name="id[]" value="1"/>
    <input name="id[]" value="2"/>
    <input name="id[]" value="3"/>
    <input name="id[]" value="4"/>
<button type="submit">提交</button>
</form>

如上表单,提交的id PHP再用 $_POST[‘id’] 接收后,会得到一个数组。

再用tp5 的   input(‘id’); 接受的时候,会报错。

后来参看手册后,发现tp5  使用 input(‘id/a‘) ; 可解决。 阅读详细 »

php环境wamp2.5下载地址

php环境wamp2.5下载地址

https://sourceforge.net/projects/wampserver/files/WampServer%202/Wampserver%202.5/

WampServer 2.5 – 32 and 64 bits

Be sure that you have installed Visual C++ Redistributable for Visual Studio 2012 : VC11 vcredist_x64/86.exe
http://www.microsoft.com/en-us/download/details.aspx?id=30679

Don’t Use previous WampServer Extensions/Addons. 
There are no more compatible with the new wampserver version’s (VC11)

Apache     : 2.4.9
MySQL      : 5.6.17
PHP        : 5.5.12
PHPMyAdmin : 4.1.14
SqlBuddy   : 1.3.3
XDebug     : 2.2.5

Source: readme.txt, updated 2014-05-01

通过php下载文件并重命名

通过php下载文件并重命名

$filename = dirname(__FILE__) . '/oldfilename.jpg';
$out_filename = 'newfilename.jpg';
if( ! file_exists($filename)){
  echo 'Not Found' . $filename;
  exit;
} else {
  // We'll be outputting a file
  header('Accept-Ranges: bytes');
  header('Accept-Length: ' . filesize($filename));
  // It will be called
  header('Content-Transfer-Encoding: binary');
  header('Content-type: application/octet-stream');
  header('Content-Disposition: attachment; filename=' . $out_filename);
  header('Content-Type: application/octet-stream; name=' . $out_filename);
  // The source is in filename
   if(is_file($filename) && is_readable($filename)){
    $file = fopen($filename, "r");
    echo fread($file, filesize($filename));
    fclose($file);
   }
  exit;
}

Apache用.htaccess来实现强制https访问

首先需要帮保证Apache已经开启了  模块

查找 httpd.conf 文件

找到

#LoadModule rewrite_module modules/mod_rewrite.so

去掉前边的#号 ,重启Apache服务器。

———————————-

然后是关于.htaccess文件的设置。

用Apache的.htaccess的重定向规则来实现http强制跳转到https访问网站。
重要提示:必须将代码放到.htaccess文件内容的最前面,以保证重定向优先权。

代码如下:

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.domain.com/$1 [R,L]

或者

RewriteEngine On 
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.domain.com/$1 [R=301,L]

或者

RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

如果是在子目录,可以用
RewriteCond %{SERVER_PORT} 80RewriteRule ^(.*)$ https://www.domain.com/subfolder [R,L]

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} subfolder
RewriteRule ^(.*)$ https://www.domain.com/subfolder [R,L]

将以上代码复制到.htaccess中即可。

页面滚动到底部 ajax加载内容代码 示例代码

页面滚动到底部 ajax加载内容代码:

html结构:

    <div class="ipshowListA">
        <ul class="clearfix">
        <!--<li class="item">内容块</li>-->
        </ul>
    </div>
    
    <div class="pagesA">
        <div class="more" data-url = "jsonlist.php?page=1" >点击加载更多</div>
        <div class="loading"><!--数据加载中...--></div>
        <div class="nodata">没有更多数据了...</div>
    </div>

js代码:

// JavaScript Document
$(function(){
    
    var $btn_more    = $('.pagesA .more');//更多按钮
    var $btn_loading = $('.pagesA .loading');//载入中
    var $btn_nodata  = $('.pagesA .nodata');//没有数据了
    var $box         = $('.ipshowListA ul');//容器
    var lock = false;
    var nexturl =  $btn_more.data('url');//第一次url
    
    function _more(){
        $btn_more.show();
        $btn_loading.hide();
        $btn_nodata.hide();
    }
    function _loading(){
        $btn_more.hide();
        $btn_loading.show();
        $btn_nodata.hide();
    }
    function _nodata(){
        $btn_more.hide();
        $btn_loading.hide();
        $btn_nodata.show();
    }
    //点击触发 (ajax加载数据)
    $btn_more.on('click',function(){
        ajaxLoad();                       
    });
    //距离底部300触发  (ajax加载数据)
    $(window).on('scroll',function(){
        if( $(document).height() - $(window).scrollTop() - $(window).height() < 300 ){
            ajaxLoad(); 
        }                    
    })
    
    
    //ajax加载数据
    function ajaxLoad(){
        //锁
        if( lock ){return false; }else{ lock = true; }
        _loading();
        $.ajax({
            url:nexturl,
            type:'get',
            dataType:'json',
            success:function(d){
                //{"error":0 , "msg":"ok" , "html":"6666", "nexturl":"jsonlist.php?page=1"} 
                if(d.error == 0 ){
                    //加载成功
                    $box.append( d.html );
                    lock = false;
                    _more();
                    nexturl = d.nexturl; //更新下一页地址
                }else if(d.error == 1 ){
                    //没有数据了
                    _nodata();
                    
                }else{
                    //其他错误
                    alert( d.msg );
                    lock = false;
                }
                
            },
            error:function( a,b,c){
                console.log('ajax错误:', a,b,c );
            }
        })
        
    }
});

php代码:

<?php 
sleep(3);//模拟网络延时 3秒

//返回的 json数据结构
//{"error":0 , "msg":"ok" , "html":"6666", "nexturl":"jsonlist.php?page=1"} 


$page = $_GET['page'];



if( $page > 5 ){
    //没有数据了 
    //{"error":1 , "msg":"没有数据了" , "html":"", "nexturl":""} 
    $j = array();
    $j['error'] = 1;
    $j['msg'] = '没有数据了';
    $j['nexturl'] = '';
    $j['html'] = '';
    
    die( json_encode($j) ); 

}
/////////////////////////////////////////////////////////////////////////////


$page++;

$j = array();
$j['error'] = 0;
$j['msg'] = 'ok';
$j['nexturl'] = 'jsonlist.php?page=' . $page;
$j['html'] = '
    <li class="item">内容块</li>
    <li class="item">内容块</li>
    <li class="item">内容块</li>
    ...
';

die( json_encode($j) );

PHP怎么禁止代理访问

PHP禁止代理访问

if($_SERVER['HTTP_PROXY_CONNECTION'] || $_SERVER['HTTP_VIA'] || $_SERVER['HTTP_USER_AGENT_VIA'] || $_SERVER['HTTP_X_FORWARDED_FOR'] || $_SERVER['HTTP_PROXY_CONNECTION'] || $_SERVER['HTTP_CACHE_CONTROL'] || $_SERVER['HTTP_CACHE_INFO']) {
        die("请勿使用代理服务器访问, 谢谢");
}

header(“Content-type:text/html;charset=utf-8”);什么意思???

header("Content-type:text/html;charset=utf-8");

设置页面内容是html编码格式是utf-8

PHP Ajax 跨域问题最佳解决方案

本文通过设置Access-Control-Allow-Origin来实现跨域。
例如:客户端的域名是client.runoob.com,而请求的域名是server.runoob.com。
如果直接使用ajax访问,会有以下错误:
XMLHttpRequest cannot load http://server.runoob.com/server.php. No ‘Access-Control-Allow-Origin’ header is present on the requested resource.Origin ‘http://client.runoob.com’ is therefore not allowed access.

1、允许单个域名访问
指定某域名(http://client.runoob.com)跨域访问,则只需在http://server.runoob.com/server.php文件头部添加如下代码:
header(‘Access-Control-Allow-Origin:http://client.runoob.com’);

2、允许多个域名访问
指定多个域名(http://client1.runoob.com、http://client2.runoob.com等)跨域访问,则只需在http://server.runoob.com/server.php文件头部添加如下代码:
$origin = isset($_SERVER[‘HTTP_ORIGIN’])? $_SERVER[‘HTTP_ORIGIN’] : ”;  

  

$allow_origin = array(  

    ‘http://client1.runoob.com’,  

    ‘http://client2.runoob.com’  

);  

  

if(in_array($origin, $allow_origin)){  

    header(‘Access-Control-Allow-Origin:’.$origin);       

3、允许所有域名访问
允许所有域名访问则只需在http://server.runoob.com/server.php文件头部添加如下代码:
header(‘Access-Control-Allow-Origin:*’); 

支付宝支付有测试模式吗?支付宝支付测试模式。

支付宝支付测试模式。
支付宝沙箱环境:http://sandbox.alipaydev.com/index.htm

如何调试支付宝接口?https://cshall.alipay.com/enterprise/help_detail.htm?help_id=477446

不知道你说的插件是跟什么程序整合:支付宝有提供比较常用的集成SDK https://b.alipay.com/order/techService.htm

php 中奖概率算法

<?php
/**
 *php 中奖概率算法
 *
 */
function get_zj( $jp ,$glname = 'gl'){
	$sum = 0;
	foreach($jp as $k =>$v ){
		$sum += $v[$glname];
	}

	$R = rand(1,$sum);//获取随机数

	foreach( $jp as $k => $v){
		if( $R <= $v[$glname] ){
			return $v;
		}
		$R = $R - $v[$glname] ;
	}

}


//使用方法
//模拟一个从数据库中读取的 中奖配置   gl 为 中奖的概率 
//例如array( 'gl' => 10 , 'title' => '一等奖');的中奖概率  =  10 / (10+20+30+40)
$jp = array();
$jp[] = array( 'gl' => 10 , 'title' => '一等奖');
$jp[] = array( 'gl' => 20 , 'title' => '二等奖');
$jp[] = array( 'gl' => 30 , 'title' => '三等奖');
$jp[] = array( 'gl' => 40 , 'title' => '未中奖');


//调用 中奖概率函数  
//返回中奖 信息数组 例如:array( 'gl' => 10 , 'title' => '一等奖');
$zj = get_zj( $jp );

//输出数组
var_dump($zj);

php 路径中的”\”和”/”的区别

php 路径中的”\”和”/”的区别

php中路径的斜杠有的是”/”,有的是”\”
当用 echo $_SERVER[‘PHP_SELF’]; 时返回:/test/01.php
当用 echo __FILE__; 时返回:d:\wamp\www\test\01.php
很多同学这这里都会困惑 都是表示路径。
两种斜杠有什么区别呢?运用的时候需要注意什么?

这里给大家详细解释一下。

首先,先清除路径分类两类,
    第一类,是网络地址URL,指的是通过网络如何访问。
    第二类,是物理地址path,也称磁盘地址,是文件系统的地址,是指文件保存在磁盘的那个位置。

在网络地址URl中,目录中的间隔符是正斜线(/)。

在物理地址(磁盘地址)中,受到不同的操作系统影响。
在UNIX环境下,目录中的间隔符是正斜线(/)。
如果你使用的是WINDOWS平台,可以使用正斜线(/)或者反斜线(\)。

如果使用反斜线,就必须使用转义字符(escape,标注为一个特殊字符),要转义一个字符,只需简单地在其前面添加一个反斜线(\)。

如下代码所示:

$fp=fopen(” c:\\data\\info.txt” , ” r” );

建议使用正斜线(/),因为这意味着代码不需要任何修改就可以在Windows和UNIX机器上运行。而反斜线(\)意味着代码只能在Windows机器上运行。

如把$fp更改成$fp=fopen(” c:/data/info.txt” ,” r” );

这样这行代码就都可以在Windows和UNIX机器上运行了。

Kindeditor 远程图片本地化 PHP

首先KindEditor这个编辑器带有远程图片上传功能
 但是因为远程图片肯定会有失效的一天
所以我想能不能在提交的同时将KindEditor编辑框内的所有远程图片本地化在调用 而不是调用远程图片
设提交数据获取到 $htmlData = $_POST[“content1”];
则有

$htmlData = $_POST["content1"];
preg_match_all("/<.+?>/s", strip_tags($htmlData, "<img>"), $r); //获取全部 img 标记作为替换本地文件时的依据
foreach($r[0] as $i=>$f) {
  preg_match("/src="([^"]+)"/i", $f, $u); //获取远程图片的url
  $s = file_get_contents($u[0]); //读取远程图片
  $fn = "按你自己规则产生的文件名";
  file_put_contents($fn, $s); //写入本地
  $t[$i] = "配好的url的文件名";
}
$htmlData = str_replace($r[0], $t, $htmlData); //替换回文档

PHP解决json_encode中文UNICODE转码问题(汇总)

什么是json_encode中文UNICODE转码问题?
先看下边的小列子

<?php
echo json_encode("中文");
//输出:  "\u4e2d\u6587"

在使用 json_encode() 函数将变量转义成json字符串的时候,由于json_encode()仅支持中文。
json_encode()函数会将中文转成utf-8的UNICODE编码。也就是大家看到的“\uxxxx”代表一个中文汉字的形式。

如何能让PHP更好的支持中文呢?
PHP5.4开始,给 json_encode() 增加了第二个参数 JSON_UNESCAPED_UNICODE 这样就可以很好的支持中文了,中文不会在被转义成 “\uxxxx” 的形式。

<?php
echo json_encode("中文", JSON_UNESCAPED_UNICODE);
//输出: "中文"

JSON_UNESCAPED_UNICODE 常量对应的 JSON_UNESCAPED_UNICODE => 256
以上代码还可以写成

<?php
echo json_encode("中文", 256 );
//输出: "中文"

PHP5.4 为json_encode() 函数增加了 JSON_UNESCAPED_UNICODE 参数,很好的解决了中文显示的问题。他还增加了:
JSON_BIGINT_AS_STRING,
JSON_PRETTY_PRINT,
JSON_UNESCAPED_SLASHES
等选项, 如果有兴趣, 大家可以参看: json_encode

———–华丽的分割线—–PHP老版本兼容问题——–
PHP5.4 增加了 JSON_UNESCAPED_UNICODE 参数 为 变量转json字符串的中文支持提供了更好的支持。
那么老版本的PHP如何更好的支持中文呢?
总体上有2个思路
思路一:
    1.在json_encode() 之前,先把中文用urlencode()函数转url编码( 中文变成%XXX的形式了)。
    2.在json_encode() 之后,把url编码的中文利用urldecode()函数转成中文。
示例代码:

$array = array(
'test'=>urlencode("中文")
);
$array = json_encode($array);
echo urldecode($array);
//输出:{"test":"中文"} 

思路二:  先json_encode()在解决中文UNICODE转码问题。你需要一个UNICODE转码转中文函数:

function decodeUnicode($str)
{
    return preg_replace_callback('/\\\\u([0-9a-f]{4})/i',
        create_function(
            '$matches',
            'return mb_convert_encoding(pack("H*", $matches[1]), "UTF-8", "UCS-2BE");'
        ),
        $str);
}

有了这个函数后,你就可以这样做了 :

$arr = array('name1':"中文",'name2':'abc12');
$jsonstr = decodeUnicode(json_encode($arr));//先转json ,再处理中文UNICODE转码问题

当然,你可以将上边两步封装成一步,直接封装一个 json_encode_ex();函数。

/**
* 对变量进行 JSON 编码
* @param mixed value 待编码的 value ,除了resource 类型之外,可以为任何数据类型,该函数只能接受 UTF-8 编码的数据
* @return string 返回 value 值的 JSON 形式
*/
function json_encode_ex($value) {
    if (version_compare(PHP_VERSION, '5.4.0', '<')) {
        $str = json_encode($value);
        $str = preg_replace_callback("#\\\u([0-9a-f]{4})#i",
        function($matchs) {
            return iconv('UCS-2BE', 'UTF-8', pack('H4', $matchs[1]));
        },
        $str);
        return $str;
    } else {
        return json_encode($value, JSON_UNESCAPED_UNICODE);
    }
}

PHP官方简体中文手册 CHM 2016最新版本

PHP官方简体中文手册 CHM 2016最新版本,改手册编译于2016年5月6日 官方终于提供了中文版手册,是国内学习PHP的新手老手的福音!这个最新的中文手册希望能给您带来帮助。

下载地址:http://pan.baidu.com/s/1dE0L7gt
备用地址:http://pan.baidu.com/s/1gf7dvov

php生成条码函数,PHP生成一维码函数

<?php 

/**
 *条码生成函数(一维码)
 *注意 条码为 11位数字 
 */
UPCAbarcode(12345678901);



function UPCAbarcode($code) { 
  $lw = 2; $hi = 100; 
  $Lencode = array('0001101','0011001','0010011','0111101','0100011', 
                   '0110001','0101111','0111011','0110111','0001011'); 
  $Rencode = array('1110010','1100110','1101100','1000010','1011100', 
                   '1001110','1010000','1000100','1001000','1110100'); 
  $ends = '101'; $center = '01010'; 
  /* UPC-A Must be 11 digits, we compute the checksum. */ 
  if ( strlen($code) != 11 ) { die("UPC-A Must be 11 digits."); } 
  /* Compute the EAN-13 Checksum digit */ 
  $ncode = '0'.$code; 
  $even = 0; $odd = 0; 
  for ($x=0;$x<12;$x++) { 
    if ($x % 2) { $odd += $ncode[$x]; } else { $even += $ncode[$x]; } 
  } 
  $code.=(10 - (($odd * 3 + $even) % 10)) % 10; 
  /* Create the bar encoding using a binary string */ 
  $bars=$ends; 
  $bars.=$Lencode[$code[0]]; 
  for($x=1;$x<6;$x++) { 
    $bars.=$Lencode[$code[$x]]; 
  } 
  $bars.=$center; 
  for($x=6;$x<12;$x++) { 
    $bars.=$Rencode[$code[$x]]; 
  } 
  $bars.=$ends; 
  /* Generate the Barcode Image */ 
  $img = ImageCreate($lw*95+30,$hi+30); 
  $fg = ImageColorAllocate($img, 0, 0, 0); 
  $bg = ImageColorAllocate($img, 255, 255, 255); 
  ImageFilledRectangle($img, 0, 0, $lw*95+30, $hi+30, $bg); 
  $shift=10; 
  for ($x=0;$x<strlen($bars);$x++) { 
    if (($x<10) || ($x>=45 && $x<50) || ($x >=85)) { $sh=10; } else { $sh=0; } 
    if ($bars[$x] == '1') { $color = $fg; } else { $color = $bg; } 
    ImageFilledRectangle($img, ($x*$lw)+15,5,($x+1)*$lw+14,$hi+5+$sh,$color); 
  } 
  /* Add the Human Readable Label */ 
  ImageString($img,4,5,$hi-5,$code[0],$fg); 
  for ($x=0;$x<5;$x++) { 
    ImageString($img,5,$lw*(13+$x*6)+15,$hi+5,$code[$x+1],$fg); 
    ImageString($img,5,$lw*(53+$x*6)+15,$hi+5,$code[$x+6],$fg); 
  } 
  ImageString($img,4,$lw*95+17,$hi-5,$code[11],$fg); 
  /* Output the Header and Content. */ 
  header("Content-Type: image/png"); 
  ImagePNG($img); 
} 
?>

WordPress的数据库操作类ezSQL

WordPress的数据库操作类ezSQL。
ezSQL是一个非常好用的PHP数据库操作类。著名的开源博客WordPress的数据库操作就使用了ezSQL的MySQL部分。该数据库操作类支持几乎所有主流的数据库,如:PHP-PDO, mySQL, Oracle, InterBase/FireBird, PostgreSQL, SQLite以及MS-SQL等。ezSQL具有很强的调试功能,可以快速地查看SQL代码的执行情况。使用ezSQL,可以为我们节省开发时间、简化代码并提高运行效率。

ezSQL的优点就不用多说了,它小巧、快速、简单、易用、并且开源。还有就是安全,你没想到的细节它都为你考虑了。你只需要在你的脚本开头包含相关的PHP文件,然后你就可以使用更好用的一套ezSQL函数来代替标准的PHP数据库操作函数。

下面是ezSQL中一些主要的函数:

$db->get_results — 从数据库中读取数据集。

$db->get_row — 从数据库中读取一行数据。

$db->get_col — 从数据库中读取一列指定的数据集。

$db->get_var — 从数据库的数据集中读取一个值。

$db->query — 执行一条SQL语句。

$db->debug — 打印最后执行的SQL语句及其返回的结果。

$db->vardump — 打印变量的结构及其内容。

$db->select — 选择一个新数据库。

$db->get_col_info — 获取列的信息。

$db->hide_errors — 隐藏错误。

$db->show_errors — 显示错误。

ezSQL的使用方法很简单,首先下载ezSQL源代码,然后将ez_sql_core.php文件和ez_sql_mysql.php文件(这里以mySQL为例)放到与你的脚本文件相同的目录下,然后将下面的代码添加到你的脚本文件的最前面,这样就可以正常使用ezSQL了。

<?php
// 包含ezSQL的核心文件
include_once "ez_sql_core.php";

// 包含ezSQL具体的数据库文件,这里以mySQL为例
include_once "ez_sql_mysql.php";

// 初始化数据库对象并建立数据库连接
$db = new ezSQL_mysql('db_user','db_password','db_name','db_host');
?>

下面是ezSQL中一些主要函数的应用实例,这些代码均来自于ezSQL的官方帮助文档。

实例一:

// Select multiple records from the database and print them out..
$users = $db->get_results("SELECT name, email FROM users");
foreach ( $users as $user ) {
            // Access data using object syntax
            echo $user->name;
            echo $user->email;
}

实例二:

// Get one row from the database and print it out..
$user = $db->get_row("SELECT name,email FROM users WHERE id = 2");
echo $user->name;
echo $user->email;

实例三:

$var = $db->get_var(“SELECT count(*) FROM users”);echo $var;

// Get one variable from the database and print it out..
$var = $db->get_var("SELECT count(*) FROM users");
echo $var;

实例四:

// Insert into the database
$db->query("INSERT INTO users (id, name, email) VALUES (NULL,'justin','jv@foo.com')");

实例五:

// Update the database
$db->query("UPDATE users SET name = 'Justin' WHERE id = 2)");

实例六:

// Display last query and all associated results
$db->debug();

实例七:

// Display the structure and contents of any result(s) .. or any variable
$results = $db->get_results("SELECT name, email FROM users");
$db->vardump($results);

实例八:

// Get 'one column' (based on column index) and print it out..
$names = $db->get_col("SELECT name,email FROM users",0)
foreach ( $names as $name ) {
    echo $name;
}

实例九:

// Same as above ‘but quicker’
foreach ( $db->get_col("SELECT name,email FROM users",0) as $name ) {
    echo $name;
}

实例十:

// Map out the full schema of any given database and print it out..
$db->select("my_database");
foreach ( $db->get_col("SHOW TABLES",0) as $table_name ) {
    $db->debug();
    $db->get_results("DESC $table_name");
}
$db->debug();

官方网站:http://justinvincent.com/ezsql

源码下载:https://github.com/jv2222/ezSQL