php 备忘
1、
foreach循环遍历赋值的时候,foreach次数过多的时候,赋值所产生的内存空间可能会不足,造成错误。
ignore_user_abort(true);//关闭浏览器,继续执行php文件set_time_limit(0);//最大执行时间无限制@error_reporting(E_ALL);//开启报错模式<br><br>@ini_set('memory_limit','1280M');//设置内存空间,避免空间不足而出错
file_get_contents();无法读取数据,可能是文件的编码问题
var_dump();无法输出,也编码问题
$return = iconv("gbk","UTF-8//IGNORE",$return);//将gbk转成ut-8,不要用gb2312,易出错。//IGNORE:标示忽略无法识别的编码。避免报错
CURL一直ssl错误这两个参数也无效:
$curlCode->setOpt("CURLOPT_SSL_VERIFYPEER",false);
$curlCode->setOpt("CURLOPT_SSL_VERIFYHOST",false);
这时看看协议头:是否是https,去掉s
number_format();四个参数:1数字,2几位小数,3小数点的替换字符,4千分位字符
php://input
$GLOBALS['HTTP_RAW_POST_DATA']
php://input 不能用于 enctype="multipart/form-data"
<? echo file_get_contents("php://input");?>
//json_decode()失败返回null。错误代码
$return = json_decode($output,true);
$error = json_last_error();
(1)使用UTF-8编码
(2)不能在最后元素有逗号
(3)不能有\r,\t,如果有请替换
php操作xml new DOMDocument()
file_put_contents的第三个参数,从尾部输入
file_put_contents('black_new.txt', $fieldsStr . "\n", FILE_APPEND);
__CLASS__ 获取当前类名
__FUNCTION__ 当前函数名(confirm)
__METHOD__ 当前方法名 (bankcard::confirm)
对于curl出错两个相对重要的函数
cul_getinfo($ch)
curl_errno($ch)
对于 http_code 为 0 看看他的错误码。
errno 错误码为7 是因为无法连接到主机,可能是因为https 中ssl 没有关闭。
addcslashes($str,$str)以C语言的风格给预定义字符加/ 进行转义
addslashes($str) 用反斜线转义字符串。这些字符是单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)。
函数返回当前 Unix 时间戳和微秒数。
$mobModel->dump(microtime()); $mobModel->dump(microtime(true)); $mobModel->dump(round(microtime(true),3)*1000);

魔术函数:
1、__construct()
实例化对象时被调用, 当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用。
2、__destruct()
当删除一个对象或对象操作终止时被调用。
3、__call()
对象调用某个方法, 若方法存在,则直接调用;若不存在,则会去调用__call函数。
4、__get()
读取一个对象的属性时,若属性存在,则直接返回属性值; 若不存在,则会调用__get函数。
5、__set()
设置一个对象的属性时, 若属性存在,则直接赋值;
若不存在,则会调用__set函数。
6、__toString()
打印一个对象的时被调用。如echo $obj;或print $obj;
7、__clone()
克隆对象时被调用。如:$t=new Test();$t1=clone $t;
8、__sleep()
serialize之前被调用。若对象比较大,想删减一点东东再序列化,可考虑一下此函数。
9、__wakeup()
unserialize时被调用,做些对象的初始化工作。
10、__isset()
检测一个对象的属性是否存在时被调用。如:isset($c->name)。
11、__unset()
unset一个对象的属性时被调用。如:unset($c->name)。
12、__set_state()
调用var_export时,被调用。用__set_state的返回值做为var_export的返回值。
13、__autoload()
实例化一个对象时,如果对应的类不存在,则该方法被调用。
魔术常量:
1、__LINE__
返回文件中的当前行号。
2、__FILE__
返回文件的完整路径和文件名。如果用在包含文件中,则返回包含文件名。自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径,而在此之前的版本有时会包含一个相对路径。
文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于 dirname(__FILE__)。除非是根目录,否则目录中名不包括末尾的斜杠。(PHP 5.3.0中新增)
4、__FUNCTION__
返回函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。
5、__CLASS__
返回类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。
Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4 起此常量返回 trait 被定义时的名字(区分大小写)。Trait 名包括其被声明的作用区域(例如 Foo\Bar)。
7、__METHOD__
返回类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。 格式:类名::方法名
当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)
预定义常量:
内核预定义常量:这些常量在 PHP 的内核中定义。它包含 PHP、Zend 引擎和 SAPI 模块:PHP_VERSION、PHP_OS、PHP_SAPI、E_ALL。。。。
标准预定义常量:PHP 默认定义的。
全局变量
这些超全局变量是:
$GLOBALS 超级全局变量,会保存所有的全局变量(键值)。在方法外赋值的变量就是全局变量。关键字global 就是把全局变量引入到局部函数块,下面的此变量全是全局变量
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV 为空的原因 php.ini 中variables_order="GPCS" 改成variables_order="EGPCS" 然后重启apache
$_COOKIE
$_SESSION 需开启session_start(); 否则: Notice: Undefined variable: _SESSION
php闭包:内部方法能用外部方法的变量。需要用use关键字。
function outFunction() {
$a = 'hello';
$b = ' world';
$func = function() use($a,$b) {
echo $a;
echo $b;
};
$func();
}
outFunction();//输出hello world
json 字符串中不能用单引号,否则会解析失败
(未完待续)
浙公网安备 33010602011771号