PHP 一些琐碎

A.命令行运行PHP代码

php -r "echo 1;"


B.5.3.0分水岭版本的一些改变

  • POSIX → PCRE
  • ereg_replace() → preg_replace()
  • ereg() → preg_match()
  • eregi_replace() → preg_replace()
  • eregi() → preg_match()
  • split() → preg_split()
  • spliti() → preg_split()
  • sql_regcase() → No equivalent
php5.4取消了magic_quotes_gpc后
function addslashesDeep($var) {
return is_array($var) ? array_map('addslashesDeep', $var) : addslashes($var);
}
$_GET = addslashesDeep($_GET);
$_POST = addslashesDeep($_POST);
$_COOKIE = addslashesDeep($_COOKIE);
$_REQUEST = addslashesDeep($_REQUEST);


C.写文件 不换行
fwrite($fp,"\r\n");
原来需要双引号,困扰了我好多年。

D.method_exists  VS is_callable
如果method_exists恰好判断一个私有或者受保护的方法时,能够得到一个正确的返回,但是执行的时候,会得到一个 “Fatal Error”。

E.用异或交换两个整数的陷阱
function exchange($a, $b)
{
if($a == $b) return ; //相等时会……
$a ^= $b;
$b ^= $a;
$a ^= $b;
}

F.php array会把string key自动转成int吗?
php的int取值范围与系统有关,在int的有效范围内,php array会把数字字符串的key转成int;当key超过int范围时,不再转换。

G.特殊优先级的情况
if ($a = 100 && $b = 200) {
    var_dump($a, $b);
}

if ($a = 100 || $b = 200) {
    var_dump($a, $b);
}
虽然&&具有高优先级,但是在这个表达式中必须先执行$b=200,再执行100 && $b,因为如果先执行100 && $b的话表达式就成了
$a = (100 && $b) = 200; 会有语法错误。所以……

G.mysql的substring的pos从1开始,php的substr从0开始。

H.safe_mode

PHP5.4开始 无安全模式 之前所起到的功能 用系统用户权限来实现

1.系统文件函数 open_basedir 

chdir, move_uploaded_file, chgrp, parse_ini_file, chown, rmdir, copy, rename, fopen, require, highlight_file, show_source, include, symlink, link, touch, mkdir, unlink

2.执行命令函数 safe_mode_exec_dir

exec,shell_exec,passthru,system,popen

3.部分设置函数

set_time_limit, set_include_path, ini_set的display_errors、memory_limit


safe_mode=on打开安全模式

safe_mode_gid = off  开启后  此值应该 与文件系统函数的目标文件的用户id 一致

safe_mode_exec_dir 执行程序目录

safe_mode_include_dir 包含文件目录

open_basedir PHP脚本能够访问的目录

disable_functions=chdir,chroot,dir 关闭指定函数(例如文件操作什么的)

expose_php = Off 关闭PHP版本信息

register_globals = Off 关闭注册的全局变量(POST或者GET提交的变量,都将自动注册为全局变量。关闭后用$_GET['key']访问)

magic_quotes_gpc = On 防止SQL注入


I.ci框架

实现多项目公用一套system 

把index.php放进不同的application目录下  web服务器更目录设置此application下  更改index.php的目录设置即可


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值