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__ 总是包含一个绝对路径,而在此之前的版本有时会包含一个相对路径。

 
3、__DIR__
文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于 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 中该值总是小写字母的。
 
6、__TRAIT__
Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4 起此常量返回 trait 被定义时的名字(区分大小写)。Trait 名包括其被声明的作用区域(例如 Foo\Bar)。

7、__METHOD__
返回类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。 格式:类名::方法名
 
8、__NAMESPACE__
当前命名空间的名称(区分大小写)。此常量是在编译时定义的(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 字符串中不能用单引号,否则会解析失败

(未完待续)

posted @ 2015-08-28 22:18  到站了  阅读(139)  评论(0)    收藏  举报