/* * ① md5_file()要比get_headers()快很多 * ② global和$GLOBALS只能使用,但并不会改变原来的赋值 * ③ 递归思想的用处 * ④ register_shutdown_function()来模拟析构函数 * ⑤ set_error_handler() set_exception_handler() 接管的函数或者类都要加载错误出现之前 * ⑥ ini_set(‘display_errors‘,‘Off‘)的权限要大于error_reporting(); * ⑦ 代码技巧:先定义返回结果的格式,失败直接返回 * ⑧ sprintf: %u=>无符号十进制 %b=>二进制 %d=>有符号的十进制整数 %f=>浮点数 %s=>字符串 %x=>小写字母的十六进制 %X=>大写字母的十六进制 原理就是如何认为计算机里边的二进制数了,会把参数当作十进制 * 1)正负号,正号不用写,当不满足最小宽度的时候,从前边补0还是从后边补0 * 2)填充字元 0表示空格填充0 默认值是空格,表示空格就放着 * 3)总宽度(包括小数点),为最小宽度 * 4)(.)精确度 * 随心所欲的调用参数 “%1\$.2f %1\$f”(%1\$u 第一个参数,无符号十进制正数) * ⑨ ip2long()不要忘了使用%u * ⑩ substr_count($string,$serach[,$start,$length]) 检测一个字符串在另一个字符串中出现的次数 * 11) 用isset来替换array_key_exists * 为初始化的变量、0、空、null、空数组、false、[没有任何属性的object]都为empty * 重点 var = null 跟empty唯一不同的就是当变量为定义时,会抛出一个Notice * 12) 如果php.int中的register_globals=On的话,所有的$_GET $_POST $_COOKIE $_SESSION 都将别注册成全局变量,通过$GLOBALS中,不建议开启 * 13) get_magic_quotes_runtime() 和 get_magic_quotes_gpc() * 14) final关键字:如果类声明为final,则此类不允许继承,如果类中的方法声明为final,则此方法不允许覆盖 * 15) Exception * class Exception{ * protected $message; * protected $code=0; * protected $file; * protected $line; * * public function __construct($message=null,$code=0); * final function getMessage(); * final function getFile(); * final function getLine(); * final function getCode(); * final function getTrace(); * final function getTraceAsArray(); * * public function __toString(); * } * 16) 静态变量只存在函数作用域内,也就是说,静态变量只存活在栈中,一般的函数内部变量在函数结束后就会释放,比如局部变量,但是 * 静态变量不会,也就是说下次在调用的时候,这个变量会保存起来 * 静态属性不属于那个实例,对任何实例都有效 * * 17) htmlspecialchars($string[,ENT_COMPAT|ENT_QUOTES|ENTNOQUOTES]) 【这些都是针对单双引号的】 * ENT_COMPAT 尽编码双引号 * ENT_QUOTES 编码单双引号 * ENT_NOQUOTES 都不编码 * * 18) pathinfo($fine[,option]) 返回文件路径信息 * PATHINFO_DIRNAME * PATHINFO_BASENAME * PATHINFO_EXTENSION * PATHINFO_FILENAME * * 19) mb_strlen($str[,$encode]); 最好把encode加上 * * 20) strtr($str,from,to) 或者 strtr($str,$array); 可以做个小的关键词库 * * 21) explode(‘_‘,$str.2) 规定数组的最大长度 * * 22) call_user_func_array(array(‘classname‘,‘method‘),array(‘参数一‘,‘参数二‘,...)) * classname * 可以为类名,此时就不再调用初始化函数 * 可以为类的实例化,$test=new test(); array(&$test,methodName),调用初始化函数 * 参数数组是一个索引数组,不会去按关联数组去匹配,不要太天真哦~~~ * * 23)正则 (?=exp) 顺序肯定 (?<=exp) 逆序肯定 (?!exp) 顺序否定 (?<!exp) 逆序否定 * 匹配ABBABB的正则 [\d]+ ((?<n1>\d)(?<n2>[^\k<n1>])\k<n2>)\1 (如何不用分组名去捕获,我还是没写出来) * 三目运算符 (xxx)? (?(分组号) yyy|zzz) * 模式修正符,x:忽略表达始终的空格 * 24)URI和URL区别 * URI定义的是资源,而URL不但定义资源还定义怎么找到这个资源 * URL http://zhidao.baidu.com/question/68016373.html URI 是/question/68016373.html http://zhidao.baidu.com/为虚拟路径 * 25)base_convert($number,$in,$to);任意进制之间的转换(2<=$in,$to<=36) 0-z为36个数 * * 26) 一般在写脚本程序时,经常用到error_get_last(), 获取最后发生的错误,返回array(‘type‘=>E_NOTICE,‘message‘=>‘‘,‘file‘=>‘‘,‘line‘=>‘‘); * * 27) php多进程编程--pcntl * $pid=pcntl_fork(); * 父进程 pcntl_wait(&$status,WUNTRACED); //子进程已经退出,并且其状态未报告时返回 * 写个刷票的例子 * * 28) 动态生成正则时,用preg_quote($pattern,‘/‘) * PHP正则表达式的特殊字符包括 . \ + * ? [ ] ^ $ ( ) { } = ! < > | : (19个) * * 29) bin2hex(‘str‘) 返回字符串的ascii,16进制表示... * * 30) 有时候 ON DUPLICATE KEY UPDATE ... 还是很好用的 * * 31) json_encode() 一个未定义的东西时,会返回一个null * * 32) header(string,replace,http_response_code); * * Etag:服务器生成的唯一标识符,每次副本的标签都会变化 * header(‘Etag:listcache‘); 添加 * $_SERVER[‘HTTP_IF_NONE_MATCH‘] 来获取 * * header(‘Content-type:text/xml;charset=utf-8‘); * header(‘HTTP/1.1 404 Not Found‘); * header(‘Location:http://www.baidu.com‘); * header(‘Refresh:3;url=http://www.baidu.com‘) * * 33) curl一些常用的选项 CURLOPT_URL CURLOPT_RETURNTRANSFER CURLOPT_HEADER CURLOPT_POST CURLOPT_POSTFIELDS CURLOPT_REFERER CURLOPT_HTTPHEADER CURLOPT_AUTOREFERER CURLOPT_FOLLOWLOCATION CURLOPT_MAXREDIRS CURLOPT_COOKIE CURLOPT_COOKIEJAR CURLOPT_COOKIEFILE CURLOPT_FILE CURLOPT_TIMEOUT * * /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/data/ifengsite/mysqldata --user=mysql --log-error=/data/ifengsite/mysqldata/commentdb204.err --pid-file=/data/ifengsite/mysqldata/commentdb204.pid --socket=/usr/local/mysql/mysql.sock --port=3306 * // ReflectionClass * 34)字符串的反转 * * 35) session有效期 * setcookie(session_name(),session_id(),$lifetime,‘/‘); * session_set_cookie_params($lifetime); * * 36) php的弱类型 * var_dump("http://www.baidu.com"==0 => true * * 37) func_get_arg(0)=>获取第一个参数 func_get_args func_num_args */
原文:http://www.cnblogs.com/bai-jimmy/p/3604696.html