摘要:phpinfo()功能描述:输出 PHP 环境信息以及相关的模块、WEB 环境等信息。危险等级:中passthru()功能描述:允许执行一个外部程序并回显输出,类似于 exec()。危险等级:高exec()功能描述:允许执行一个外部程序(如 UNIX Shell 或 CMD 命令等)。危险等级:高system()功能描述:允许执行一个外部程序并回显输出,类似于 passthru()。危险等级:高chroot()功能描述:可改变当前 PHP 进程的工作根目录,仅当系统支持 CLI 模式PHP 时才能工作,且该函数不适用于 Windows 系统。危险等级:高scandir()功能描述:列出指定路径
阅读全文
摘要:本身没有区别,习惯问题 ,但是有时候牵涉到运算符优先级的问题,结果会不同,记录下。 例如: $p = 6 or 0; var_dump($p);//int(6) $p = 6 || 0; var_dump($p);//bool(true) $p = 6 and 0; var_dump($p); //int(6) $p = 6 && 0; var_dump($p); //bool(false) 因为赋值运算的优先级比AND和OR的高,所以先赋值;比&&和||的低,所以逻辑运算符先执行,先逻辑运算,再赋值。
阅读全文
摘要:官方网站为 http://memcached.org/Windows下的Memcache安装 :1. 下载memcache 的windows稳定版,解压放某个盘下面,比如在c:/memcached2. 在终端(也即cmd命令界面)下输入 ‘c:/memcached/memcached.exe -d install’ 安装【见底部同服务器多MEMCACHE服务的安装 】3. 再输入: ‘c:/memcached/memcached.exe -d start’ 启动。NOTE: 以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。4.下载php_me
阅读全文
摘要:今天在群里有网友说了这样一个问题:$data = array('a', 'b', 'c');foreach($data as $key=>$val) { $val = &$data[$key]; //unset($val); }$var_dump($data);问$var_dump($data)的结果是什么,为什么?运行后结果是:$data: array(3) { [0]=> string(1) "b" [1]=> string(1) "c" [2]=> &strin
阅读全文
摘要:在控制器中: public function index() { echo 1; $this->load->view('welcome2'); echo 2; //为什么输出结果为: 12<html></html> //而不是 1<html></html>2 }原因: 在system/core/Loader.php中: $_ci_CI->output->append_output(ob_get_contents()); //通过ob_start()和ob_get_conten...
阅读全文
摘要:对于日IP不高或者说并发数不是很大的应用,一般不用考虑这些!!用一般的文件操作方法完全没有问题。但如果并发高,在我们对文件进行读写操作时,很有可能多个进程对进一文件进行操作,如果这时不对文件的访问进行相应的独占,就容易造成数据丢失。例 如:一个在线聊天室(这里假定把聊天内容写入文件),在同一时刻,用户A和用户B都要操作数据保存文件,首先是A打开了文件,然后更新里面的数据,但这里 B也正好也打开了同一个文件,也准备更新里面的数据。当A把写好的文件保存时,这里其实B已经打开了文件。但当B再把文件保存回去时,这里已经造成了数据 的丢失,因为这里B用户完全不知道它所打开的文件在它对其进行更改时,A用户
阅读全文
摘要:PHP performance tipsAuthor: Eric Higgins, Google WebmasterRecommended experience: Beginner to intermediate PHP knowledgePHP is a very popular scripting language, used on many popular sites across the web. In this article, we hope to help you to improve the performance of your PHP scripts with some c
阅读全文
摘要:sphinx配置 php调用sphinx来搜索## LinuxTone full index search configure file#source lt_posts{ type = mysql sql_host = 127.0.0.1 sql_user = root sql_pass ...
阅读全文
摘要:Sphinx特性:* 高速的建立索引(在当代CPU上,峰值性能可达到10MB/秒);* 高性能的搜索(在2–4GB的文本数据上,平均每次检索响应时间小于0.1秒);* 可处理海量数据(目前已知可以处理超过100GB的文本数据,在单一CPU的系统上可处理100M文档);* 提供了优秀的相关度算法,基于短语相似度和统计(BM25)的复合Ranking方法;* 支持分布式搜索;* 提供文件的摘录生成;* 可作为MySQL的存储引擎提供搜索服务;* 支持布尔、短语、词语相似度等多种检索模式;* 文档支持多个全文检索字段(最大不超过32个);* 文档支持多个额外的属性信息(例如:分组信息,时间戳等);*
阅读全文
摘要:<?phpinterface IUser { function getName(); function setName($_name); function getDiscount(); //此处添加了一个抽象的方法} class VipUser implements IUser { private $name; private $discount = 0.8; //折扣变量 function getName() { return $this->name; } function setName($_name) { $this->name = $_name; } fu...
阅读全文
摘要:<?phpinterface User { function getName(); function setName($_name); } interface VipUser extends User //VipUser继承User接口{ function getDiscount(); //此处添加了一个抽象的方法 } class Vip implements VipUser { private $name; private $discount = 0.8; //折扣变量 function getName() { return $this->name; } function set
阅读全文
摘要://PHP 5.2.6 以上版本的 array_diff() 函数在处理大数组时,需要花费超长时间function array_diff_fast($firstArray, $secondArray) { // 转换第二个数组的键值关系 $secondArray = array_flip($secondArray); // 循环第一个数组 foreach($firstArray as $key => $value) { // 如果第二个数组中存在第一个数组的值 if (isset($secondArray[$value])) { ...
阅读全文
摘要:For many PHP programmers, object-oriented programming is a frightening concept, full of complicated syntax and other roadblocks. As detailed in my book, Pro PHP and jQuery, you’ll learn the concepts behind object-oriented programming (OOP), a style of coding in which related actions are grouped into
阅读全文
摘要:<?php/** * PHP 中检查或过滤 IP 地址 * * 支持 IP 区间、CIDR(Classless Inter-Domain Routing)及单个 IP 格式 * 整理:http://www.CodeBit.cn * 参考: * - {@link http://us2.php.net/manual/zh/function.ip2long.php#70055} * - {@link http://us2.php.net/manual/zh/function.ip2long.php#82397} * * @param string $network 网段,支持 IP 区间、C.
阅读全文
摘要:关于数组排序,PHP内置了shuffle()函数,可以重排数组排序,但是此函数“将删除原有的键名而不仅是重新排序”,如果传入的是关联数组,则关联数组的键名将丢失。 解决方法如下:关联数组和索引数组都可以用function array_shuffle($array){ //不是数组 if(!is_array($array)) { return array(); } //如果为空或者只有1项 if(($count=count($array))<=1){ return $array; } //得到打乱的键 $r...
阅读全文
摘要:// 用preg_match 模仿实现 preg_match_allfunction custom_preg_match_all($pattern, $subject){ $offset = 0; $match_count = 0; while(preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE, $offset)) { // Increment counter $match_count++; // Get byte offset and byte l...
阅读全文
摘要:function dirSize($directory){ $dir_size=0; if($dir_handle=@opendir($directory)) { while($filename=readdir($dir_handle)) { if($filename!="." && $filename!="..") { $subFile=$directory."/".$filename; if(is_dir($subFile)) { $dir_size+=dirSize($subFile); }...
阅读全文
摘要:/自己写的一个PDO类class CPdo{protected $_dsn = "mysql:host=localhost;dbname=test";protected $_name = "root";protected $_pass = "";protected $_condition = array();protected $pdo;protected $fetchAll;protected $query;protected $result;protected $num;protected $mode;protected $pre
阅读全文
摘要:PDO(PHP Data Object) 是PHP 5新出来的东西,在PHP 6都要出来的时候,PHP 6只默认使用PDO来处理数据库,将把所有的数据库扩展移到了PECL,那么默认就是没有了我们喜爱的php_mysql.dll之类的了,那怎么办捏,我们只有与时俱进了,我就小试了一把PDO。(本文只是入门级的,高手可以略过,呵呵)【PDO是啥】PDO是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么php_mysql.dll、php_pgsql.dll、php_mssql.dll、php_sqlite.dll等等扩展来连
阅读全文
摘要:<?php$str="this is a test \n";$patten = array("\r\n", "\n", "\r"); //先替换掉\r\n,然后是否存在\n,最后替换\r $str=str_replace($order, "", $str);?> //php 有三种方法来解决 //1、使用str_replace 来替换换行 $str = str_replace(array("\r\n", "\r", "\n"
阅读全文