Linux (centos )下Nginx+PHP+MySQL配置——自己的lnmp配置

Linux (centos )下Nginx+PHP+MySQL编译配置——自己的lnmp配置

Posted in lamp, linux, mysql, php. Tags: , , , . 评论暂缺 »

PHP中插件机制的一种实现方案(转)

一篇不错的关于php插件机制原理文章

Posted in php. 评论暂缺 »

thinkphp debug日志的一些想法

tp2.0 较1.5 有了很大的改变。在日志系统上变化也不少。不过有个问题我一直很纠结,当我打开调试信息的时候,log系统还会以写文件的方式记录运行日志。即: 1.5 ( debug_mode=true) 2.0(app_debug=true) 的时候,本来是让页面输出调试信息,但同时也会把调试信息写入log文件中。个人觉得这个没必要,毕竟调试的时候一般都是在开发期间,反而在运行的时候有必要打开这个选项。所以找到框架源代码中的 设置。取消该项! tp2.0 找到 ThinkPHP/Common/debug.php    line 27 /* 日志设置 */ ‘LOG_RECORD’=>true,  // 进行日志记录 删除此行即可!如需要记录的话,直接在项目config.php中记录即可

Posted in php. 评论暂缺 »

高效的MySQL分页

来源:http://chaoqun.17348.com/2009/04/efficient-pagination-using-mysql/ PERCONA PERFORMANCE CONFERENCE 2009上,来自雅虎的几位工程师带来了一篇”Efficient Pagination Using MySQL“的报告,有很多亮点,本文是在原文基础上的进一步延伸。 首先看一下分页的基本原理: mysql> explain SELECT * FROM message ORDER BY id DESC LIMIT 10000, 20\G ***************** 1. row ************** id: 1 select_type: SIMPLE table: message type: index possible_keys: NULL key: PRIMARY key_len: 4 ref: NULL rows: 10020 Extra: 1 row in set (0.00 sec) limit 10000,20的意思扫描满足条件的10020行,扔掉前面的10000行,返回最后的20行,问题就在这里,如果是limit 100000,100,需要扫描100100行,在一个高并发的应用里,每次查询需要扫描超过10W行,性能肯定大打折扣。文中还提到limit n性能是没问题的,因为只扫描n行。 [Read More →]

Posted in mysql, php, python. 评论暂缺 »

windows php 加载curl.dll和mcrypt 模块

1、今在windows下遇到加载curl不成功的问题,打开php.ini文件,找到”;extension=php_curl.dll”这一行,把前面的分号去掉,在phpinfo中还是不行,查阅一些资料后发现,原来在Windows环境下打开curl扩展,还需要将libeay32.dll 和 ssleay32.dll 两个文件拷贝到Windows系统目录,解决办法:拷贝此2文件到C:\Windows目录,重启Apache即可! 2、除了在php.ini中药打开extension=php_mcrypt.dll,还需copy libmcrypt.dll 到 c:\windows\system32下

Posted in php. 评论暂缺 »

PHP的加密函数(转)

要使用本函数库要先准备 mcrypt 程序,可以到 ftp://argeas.cs-net.gr/pub/unix/mcrypt 下载这个程序 libmcrypt-x.x.tar.gz。同时在编译 PHP 程序时需要加入 –with-mcrypt 的选项,俾使本函数库能顺利运作。 本 函数提供的编码方式有 DES、TripleDES、Blowfish (默认值)、3-WAY、SAFER-SK64、SAFER-SK128、TWOFISH、TEA、RC2 及使用 CBC, OFB, CFB, ECB 作为密码检索的 GOST。此外还有 RC6 及 IDEA 等非免费的编码方式。见下面列示为已定义的密码: MCRYPT_BLOWFISH MCRYPT_DES MCRYPT_TripleDES MCRYPT_ThreeWAY MCRYPT_GOST MCRYPT_CRYPT MCRYPT_DES_COMPAT MCRYPT_SAFER64 MCRYPT_SAFER128 MCRYPT_CAST128 MCRYPT_TEAN MCRYPT_RC2 MCRYPT_TWOFISH (mcrypt 2.x 前的版本用) MCRYPT_TWOFISH128 (mcrypt 2.x 后的版本用) MCRYPT_TWOFISH192 MCRYPT_TWOFISH256 MCRYPT_RC6 MCRYPT_IDEA 在 密码检索本 (cipher) 方面,本函库支持 CBC、OFB、CFB 与 [Read More →]

Posted in php. 评论暂缺 »

fgetcsv读取不到中文的解决办法

今,php读取csv文件,在linux上出现中文读取不到的情况,google,后找到解决办法 <?php setlocale(LC_ALL, ‘zh_CN’); $row = 1; $handle = fopen(”xxx.csv”,”r”); while ($data = fgetcsv($handle, 1000, “,”)) { $num = count($data); echo “<p> $num fields in line $row: <br>\n”; $row++; for ($c=0; $c < $num; $c++) { echo $data[$c] . “<br>\n”; } } fclose($handle); ?> 解释: // utf-8 setlocale(LC_ALL, ‘en_US.UTF-8′); // 简体 setlocale(LC_ALL, ‘zh_CN’); “xxx.csv”更改成你的文件 以下是常用的地区标识 zh_CN GB2312 en_US.UTF-8 UTF-8 zh_TW BIG5 zh_HK BIG5-HKSCS zh_TW.EUC-TW EUC-TW zh_TW.UTF-8 [Read More →]

Posted in php. 评论暂缺 »

Php魔术方法学习实例

(1)初识魔术方法 Php5.0发布以来为我们提供了很多面向对象的特性,尤其是为我们提供了好多易用的魔术方法,这些魔术方法可以让我们简化我们的编码,更好的设计我们的系统。今天我们就来认识下php5.0给我们提供的魔术方法。 1,__construct() 当实例化一个对象的时候,这个对象的这个方法首先被调用。 class Test { function __construct() { echo “before”; } } $t = new Test(); 输出是: start 我们知道php5对象模型 和类名相同的函数是类的构造函数,那么如果我们同时定义构造函数和__construct()方法的话,php5会默认调用构造函数而不会调用__construct()函数,所以__construct()作为类的默认的构造函数 2,__destruct() 当删除一个对象或对象操作终止的时候,调用该方法。 class Test { function __destruct() { echo “end”; } } $t = new Test(); 将会输出 end 我们就可以在对象操作结束的时候进行释放资源之类的操作 3,__get() 当试图读取一个并不存在的属性的时候被调用。 如果试图读取一个对象并不存在的属性的时候,PHP就会给出错误信息。如果在类里添加__get方法,并且我们可以用这个函数实现类似java中反射的各种操作。 class Test { public function __get($key) { echo $key . ” [Read More →]

Posted in php. 评论暂缺 »

php中empty(),is_null(),isset(),bool之间的区别

从这个图中,可以很清楚的看到一种联系: 假设 $var 是任何type。 当 empty($var) 为 true 时, (bool)($var) 为 false 。反之亦然。 同样, 当 is_null($var) 为 true 时, isset($var) 为 false 。反之亦然。 假如: $i=$j+1; 这里的is_null($j)为true 可见: isset用于判断未定义的情况。 Empty可以判断未定义和已定义,但是为空,为0的情况。 Is_null可以看做是isset的反函数 If($表达式)可以看做是empty的反函数 当要判断的内容为数组时,表中仅仅罗列了一种情况,下面补充两种容易误会的情况 PHP代码   $b[]=null;       $b[]=null;          //视为数组已存在且不为空       $c[]="";    $c[]="";   //视为数组已存在且不为空 empty (PHP 3, PHP 4, PHP 5) empty — 检查一个变量是否为空 [Read More →]

Posted in php. 评论暂缺 »

php.ini 中文详解

作者:金步国 版权声明 本文作者是一位自由软件爱好者,所以本文虽然不是软件,但是本着 GPL 的精神发布。任何人都可以自由使用、转载、复制和再分发,但必须保留作者署名,亦不得对声明中的任何条款作任何形式的修改,也不得附加任何其它条件。您可 以自由链接、下载、传播此文档,但前提是必须保证全文完整转载,包括完整的版权信息和作译者声明。 其他作品 本文作者十分愿意与他人共享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有作品的列表: 金步国作品列表 BUG报告,切磋与探讨 由于作者水平有限,因此不能保证作品内容准确无误,请在阅读中自行鉴别。如果你发现了作品中的错误,请您来信指出,哪怕是错别字也好,任何提高作品 质量的建议我都将虚心接纳。如果你愿意就作品中的相关内容与我进行进一步切磋与探讨,也欢迎你与我联系。联系方式:MSN: csfrank122@hotmail.com ;;;;;;;;;;;;;;;;; ;; 关于php.ini ;; ;;;;;;;;;;;;;;;;; ; 这个文件必须命名为’php.ini’并放置在httpd.conf中PHPINIDir指令指定的目录中。 ; 最新版本的php.ini可以在下面两个位置查看: ; http://cvs.php.net/viewvc.cgi/php-src/php.ini-recommended?view=co ; http://cvs.php.net/viewvc.cgi/php-src/php.ini-dist?view=co ;;;;;;;;;;;; ;; 语法 ;; ;;;;;;;;;;;; ; 该文件的语法非常简单。空白字符和以分号开始的行被简单地忽略。 ; 章节标题(例如: [php])也被简单地忽略,即使将来它们可能有某种意义。 ; ; 设置指令的格式如下: ; directive = value ; 指令名(directive)是大小写敏感的!所以"foo=bar"不同于"FOO=bar"。 ; 值(value)可以是: ; 1. 用引号界定的字符串(如:"foo") ; 2. 一个数字(整数或浮点数,如:0, 1, 34, [Read More →]

Posted in php. 评论暂缺 »