@:是错误控制运算符,通常用来屏蔽错误信息
__FILE__:代表当前网页文件的完整物理路径
__DIR__:代表当前网页文件所在的文件夹
__LINE__:代表当前这个常量名所在的“行号”
__METHOD__:当前所在类的方法名
PHP_INT_MAX:整数最大常量值
round(num):四舍五入。
getType($变量名):获取该变量的类型
setType(变量名,类型)将变量强制转换为目标类型
isset():是否设置了变量值
empty():是否为空
unset():销毁变量
Is_int($x);//是否整数类型
Is_float($x);//是否浮点类型
Is_string($x);//是否字符串
Is_bool($x);//是否布尔类型
Is_null($x);是否为空
Is_array($x);//是否数组
Is_object($x);//是否对象
Is_numeric($x)//是否是一个数字
Is_scalar($x);// 判断是否为标量类型,int float bool string
function_exists(函数名):判断一个函数是否被定义过,返回值为布尔值
func_get_arg($i):返回函数指定的参数
func_get_args():返回函数的参数,数组。
func_num_args():返回函数的参数个数。
setcookie():设置cookie
/*
setcookie(name,value,expire,path,domain,secure)
参数 描述
name 必需。规定 cookie 的名称。
value 必需。规定 cookie 的值。
expire 可选。规定 cookie 的有效期。
path 可选。规定 cookie 的服务器路径。
domain 可选。规定 cookie 的域名。
secure 可选。规定是否通过安全的 HTTPS 连接来传输 cookie。
*/
//echo $_COOKIE['user'];
//echo $HTTP_COOKIE_VARS["user"];
$value)
{
echo "$name : $value
";
}
}
?>
ini_set():设置配置项
session_start();
ini_set('session.gc_maxlifetime',21600);
strip_tags(): 函数剥去字符串中的 HTML、XML 以及 PHP 的标签
world!");
?>
//运行这段代码world不会被加粗
使用SimpleXMLElement()操作XML文件
Tove
Jani
Reminder
Don't forget me this weekend!
XML;
$simple = new SimpleXMLElement($note);
var_dump($simple);
?>
simplexml_load_string() 函数转换形式良好的 XML 字符串为 SimpleXMLElement 对象。
Tove
Jani
Reminder
Don't forget me this weekend!
XML;
$xml=simplexml_load_string($note);
print_r($xml);
?>
结果:
SimpleXMLElement Object ( [to] => Tove [from] => Jani [heading] => Reminder [body] => Don't forget me this weekend! )
simplexml_load_file() 函数把 XML 文档载入对象中。
simplexml_load_file(file,class,options,ns,is_prefix)
参数 描述
file 必需。规定要使用的 XML 文档。
class 可选。规定新对象的 class。
options 可选。规定附加的 Libxml 参数。
ns 可选。
is_prefix 可选。
返回值
返回类 SimpleXMLElement 的一个对象,该对象的属性包含 XML 文档中的数据。如果失败,则返回 false。
xml文件
George
John
Reminder
Don't forget the meeting!
php文件
结果:
object(SimpleXMLElement)#1 (4)
{
["to"]=> string(4) "George"
["from"]=> string(4) "John"
["heading"]=> string(8) "Reminder"
["body"]=> string(29) "Don't forget the meeting!"
}
json_encode() 对变量进行json编码
json_encode ( $value [, $options = 0 ] )
注意:1、$value为要编码的值,且该函数只对UTF8编码的数据有效;
2、options:由以下常量组成的二进制掩码:JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK,JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT;
3、第二个参数一般不需要;
4、json数据其实就是一个string,可以用var_dump()打印出来看数据类型;
5、执行成功返回JSON数据,否则返回FALSE。
json_decode()对json变量进行解码
mixed json_decode ( string json[,boolassoc ] )
接受一个 JSON 格式的字符串并且把它转换为 PHP 变量
参数
json
待解码的 json string 格式的字符串。
assoc
当该参数为 TRUE 时,将返回 array 而非 object 。
string exec ( string $command
[, array &$output
[, int &$return_var
]] ):执行外部命令
command
要执行的命令。
output
如果提供了 output 参数, 那么会用命令执行的输出填充此数组, 每行输出填充数组中的一个元素。 数组中的数据不包含行尾的空白字符,例如 \n 字符。
请注意,如果数组中已经包含了部分元素,exec() 函数会在数组末尾追加内容。如果你不想在数组末尾进行追加, 请在传入 exec() 函数之前 对数组使用 unset() 函数进行重置。
return_var
如果同时提供 output 和 return_var 参数, 命令执行后的返回状态会被写入到此变量。
Imagesx(画布)宽
Imagesy(画布)高
字体字符的宽高:
Imagefontwidth(字体)字体字符宽
Imagefontheight(字体)字体字符高
class_exists("类名") 判断一个类是否存在
interface_exists("接口名") 判断一个接口是否存在
get_class($obj1) 获得某个对象的所属类
get_parent_class($obj1) 获得某个对象的所属类的父类
Array get_class_methods(类名) 获得一个类的所有的方法,结果是一个数组,里面存储的是这些方法的名称
Array get_class_vars(类名) 获得一个类的所有属性,结果是一个数组,里面存储的是这些属性的名称
Array get_declared_classes(void) 获得“整个系统”当前页面所定义的所有类名,数组
Bool is_object($var):判断var是否是一个对象,是true,不是false
$obj instanceof A:判断变量obj是否是类A的实例
输出与格式化:echo,print,printf,print_r,var_dump
字符串去除和填充:返回值都是string,原字符串不会被修改
ereg(pattern,str,[array $regs]) int返回,匹配的存到第三个参数数组中
trim(str[,指定字符]):去除字符串首尾指定字符,不指定去除空白字符
Ltrim(str[,指定字符]): 删除字符串开头的空白字符(或其他字符)
Rtrim(str[,指定字符]):删除字符串末端的空白字符(或者其他字符)
str_pad ( string $input , int $pad_length [, string $pad_string = " " [, int $pad_type = STR_PAD_RIGHT ]] ),指定的长度小于或等于字符串,返回原字符串,默认从右侧填充
字符串连接与分隔:
String implode([连接符(默认空字符串),]数组)
join:是implode函数的别名
Array explode(分隔符,字符串):将字符串通过指定符号分隔成数组
Array str_split(字符串[,指定每个数组元素的长度(默认为1)]):通过长度分隔字符串
字符串截取:
String substr(str,startindex[,length]):从指定位置开始截取
String strstr(str,str2):返回str中str2(首次出现)开始到结束字符串
String strrchr(str,str2):返回str中str2最后出现位置到str结束的字符串
字符串替换:
String/array str_replace(被替换字符串/数组元素,替换字符串(原字符串子字符串)/数组元素,原字符串/数组):
String substr_replace(str,replacestr,start[,length]):将str中从start位置开始的length长度字符串用replacestr替换。
int substr_count ( string $haystack
, string $needle
[, int $offset
= 0 [, int $length
]] )substr_count() 返回子字符串needle
在字符串 haystack
中出现的次数。注意 needle
区分大小写。
/*参数
haystack
在此字符串中进行搜索。
needle
要搜索的字符串。
offset
开始计数的偏移位置。如果是负数,就从字符的末尾开始统计。
length
指定偏移位置之后的最大搜索长度。如果偏移量加上这个长度的和大于 haystack 的总长度,则打印警告信息。 负数的长度 length 是从 haystack 的末尾开始统计的。
返回值
该函数返回整型。*/
14,所以生成警告
echo substr_count($text, 'is', 5, 10);
// 输出 1,因为该函数不计算重叠字符串
$text2 = 'gcdgcdgcd';
echo substr_count($text2, 'gcdgcd');
?>
mixed count_chars ( string $string
[, int $mode
= 0 ] )返回字符串所用字符的信息
$val) {
echo "There were $val instance(s) of \"" , chr($i) , "\" in the string.\n";
}
?>
/*
以上例程会输出:
There were 4 instance(s) of " " in the string.
There were 1 instance(s) of "." in the string.
There were 1 instance(s) of "F" in the string.
There were 2 instance(s) of "T" in the string.
There were 1 instance(s) of "a" in the string.
There were 1 instance(s) of "d" in the string.
There were 1 instance(s) of "e" in the string.
There were 2 instance(s) of "n" in the string.
There were 2 instance(s) of "o" in the string.
There were 1 instance(s) of "s" in the string.
There were 1 instance(s) of "w" in the string.
*/
str_replace(find,replace,string,count)
字符串长度与位置:
Int strlen(str):返回字符串长度
Int strpos(str,str2):返回str2在str中首次出现的位置
Int strrpos(str,str2);返回str2在str中最后一次出现的位置
字符转换:
String Strtolower(str):返回转换后的小写字符串
String Strtoupper(str):返回转后的大写字符串
String lcfirst(str):使第一个字母小写,返回
String ucfirst(str):首字母大写,并返回
String ucwords(str):将字符串中每个单词首字母大写,并返回
特殊字符处理:
String nl2br(str):在str中所有新行之前插入换行标记’
’并返回
String addslashes(str):对str中的单引号,双引号,反斜线与NULL之前加反斜线,并返回
Stripslashes()去出反斜杠
String htmlspecialchars(str):将str中的html标记转换成实体(&npsb等),并返回
String htmlspecialchars_decode(str):与上面的函数对应,将实体转换成普通的字符(< >等)
microtime():返回类型是string,返回的的是秒数加微秒之和
microtime(true):返回类型是float
time():当前时间时间戳,是1970.1.1 00:00:00到当前的秒数,不包括微秒部分
date("Y-m-d H:i:s",时间戳):将时间戳转化为具体的时间,不加参数和time()一致。
sleep(n):停止运行指定秒数。
Int mktime(时,分,秒,月,日,年):返回指定日期的事件戳,从右往左可以逐一省略
Int strtotime(strtime):返回一个时间戳
echo strtotime("now"), "\n";
echo strtotime("10 September 2000"), "\n";
echo strtotime("+1 day"), "\n";
echo strtotime("+1 week"), "\n";
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo strtotime("next Thursday"), "\n";
echo strtotime("last Monday"), "\n";
date_add
date_diff()
bool date_default_timezone_set(时区):设定用于所有日期时间函数的默认时区
string date_default_timezone_get ( ):获取默认时区
Max():返回最大值,参数可以是数组,也可以是多个数值
Min():返回最小值,参数可以是数组,也可以是多个数值
float round(num[,precision]):对num保留指定位数小数.
Float ceil(num);向上取整
Float floor(num):向下取整
Abs(num):返回绝对值
Float sqrt(num):求平方根
pow ( number $base , number $exp ):返回base的exp次方的值
Int rand(int min,int max):返回min(包含)和max(包含)之间一个随机数。不加参数返回0到getrandmax()之间随机数
Int getrandmax():显示随机数最大的可能值
定界符:
Str=<<<”eof”
...
eof;
String file_get_contents($filename):将整个文件内容读入一个字符串
Int file_put_contents($filename,$data):将data写入文件,data可以是各种类型,返回值是写入的字节数,失败返回false.
Array file($filename):将文件内容读入数组中,一行为一个元素。
Resoure fopen($filename,打开方式):失败返回false
Bool fclose($resoure):成功返回true,失败返回false
String fread($resoure,$lenth):从文件读取length个字节,失败false
String stream_get_contents($resoure),读取文件全部内容
Int fwrite($resoure,$string):写文件,返回写入的字符,失败返回false
Int filesize($filename):返回文件的大小
Is_dir(file):返回true ,false
Chdir(directory):改变当前的目录
Chroot(directory):改变根目录,windows下不可用
Closedir(dir_handle):关闭目录句柄
Dir(directory):返回directory类的实例,包含handle,path两个属性和read()、rewind()和close()三个方法。
Getcwd():返回当前工作目录,无参数
Opendir(path,context):打开目录句柄
Readir(dir_handle):返回目录句柄中的条目
Rewinddir(dir_handle):重置目录句柄,相当于遍历之后把指针归位reset理解
Scandir(directory[,sorting_order,context]):放回指定目录中的文件和目录的数组
Glob(pattern[,flags]): 返回一个包含有匹配文件 / 目录的数组。如果出错返回 false
文件加载:include、require、include_once、require_once,成功返回1,失败false
include载入文件失败时(即没有找到该文件),抱一个“提示错误”,然后继续执行后续代码;可以配合分支语句使用
require载入文件失败时,报错并立即终止执行。不可配合分支语句使用,一般是在文件一开始就将文件引入。
include载入的文件不判断是否重复,只要有include语句,就会载入一次---即此时可能导致重复载入。
Include_once载入的文件会有内部判断机制,是否“前面的代码”已经载入过,如果载入过,就不再载入。
E_ERROR: 致命错误
E_WARNING: 警告性错误
E_NOTICE: 提示性错误
E_USER_ERROR: 自定义致命错误
E_USER_WARNING: 自定义警告错误
E_USER_NOTICE: 自定义提示错误
涉及到一个函数:Trigger_error("错误提示信息!",3种用户错误代号之一)
显示错误报告(error_reporting)
1. 修改php.ini中做修改error_reporting=E_ALL|E_NOTICE,影响全局所有php页面
2. 在当前页面设置ini_set("error_reporting",错误代号),当前页面
自定义错误处理:set_error_handler(‘f1’);
Function f1($errCode,$errMsg,$errFile,$errLine){}//参数是固定的代号、内容、文件、行号
Foreach($数组名 as $key=>$value){}
For($i=0;$i<$len;$i++){current($数组名);next($数组名)}
Bool sort(数组名):按值升序最数组排序
Bool Asort(数组名):按值升序保持索引关系
Bool ksort(数组名):按照键名进行升序排序
Bool rsort(数组名):按照值进行降序排序
Bool aarsort(数组名):按照值进行降序排序,并保持索引关系
Bool krsort(数组名)按照键名降序排序
Bool shuffle(数组名)打乱数组
$v1=current($数组); //获得数组的当前指针所在单元的“值”
$v2=key($数组); //获得数组当前指针所在单元的“键”(下标)
$v3=next($数组); //先将数组指针移向后一位,然后取得新单元的值
$v4=prev($数组); //先将数组的指针移向前一个单元,然后取得该单元的值。
$v5=end($数组); //先将数组的指针移向最后一个单元,然后取得该单元的值
$v6=reset($数组); //先将数组的指针移向第一个单元,然后取得该单元的值。
Mixed array_pop(数组) 出栈长度减一,返回出栈的值
Int array_push(数组,添加的值),添加到末尾(入栈),返回数组的长度
Mixed array_shift(数组)将第一个元素移除,并返回,长度减一
Int array_unshift(数组,添加的值):添加到数组头,返回数组长度
array array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = false ]] )
array array_splice ( array &$input , int $offset [, int $length = count($input) [, mixed $replacement = array() ]] ):把 input 数组中由 offset 和 length 指定的单元去掉,如果提供了 replacement 参数,则用其中的单元取代
Bool in_array(查找值,数组):存在返回真,否则返回假
Bool array_key_exists(查找的索引,数组名);查找数组中是否有指定索引
Mixed array(查找值,数组):存在则返回对应的第一个键名,不存在返回false
Int Count(数组):计算数组长度
Array array_reverse(数组):返回顺序相反的数组
Array array_merge(数组1,数组2):合并两个数组
Bumber array_sum(数组):对数组中所有值求和
Array array_keys(数组):返回数组中所有的键名
Array array_values(数组):返回数组中所有的值
Array range(start,end[,step]):创建一个数组
__construct(),类的构造函数
__destruct(),类的析构函数
__call(),在对象中调用一个不可访问方法时调用
__callStatic(),用静态方式中调用一个不可访问方法时调用
__get(),获得一个类的成员变量时调用
__set(),设置一个类的成员变量时调用
__isset(),当对不可访问属性调用isset()或empty()时调用
__unset(),当对不可访问属性调用unset()时被调用。
__sleep(),执行serialize()时,先会调用这个函数
__wakeup(),执行unserialize()时,先会调用这个函数
__toString(),类被当成字符串时的回应方法
__invoke(),调用函数的方式调用一个对象时的回应方法
__set_state(),调用var_export()导出类时,此静态方法会被调用。
__clone(),当对象复制完成时调用
__autoload(),尝试加载未定义的类
__debugInfo(),打印所需调试信息
__LINE__ 文件中的当前行号。
__FILE__ 文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。
__DIR__ 文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。
__FUNCTION__ 常量返回该函数被定义时的名字
__CLASS__ 常量返回该类被定义时的名字(区分大小写)。
__METHOD__ 类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。
__NAMESPACE__ 当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)。
$GLOBALS 储存全局作用域中的变量
$_SERVER 获取服务器相关信息
$_REQUEST 获取POST和GET请求的参数
$_POST 获取表单的POST请求参数
$_GET 获取表单的GET请求参数
$_FILES 获取上传文件的的变量
$_ENV 获取服务器端环境变量的数组
$_COOKIE 浏览器cookie的操作
设置cookie:setcookie(name, value, expire, path, domain);
获取cookie:$_COOKIE["user"];
删除cookie:setcookie("user", "", time()-3600);//设置过期时间
$_SESSION 服务端session的操作
使用session前一定要session_start()启动session
储存session:$_SESSION["name"]="King";//数组操作
销毁session:unset($_SESSION["name"]);//销毁一个
session_destroy()和unset($_SESSION);//销毁所有的session
Class factory{
public static function create($className){
$obj=new $className();
Return $obj;
}
}
Class Single{
Private Static $instance=null;
Private function __contruct(){}//创建私有的构造函数
Private function __clone(){}//禁止克隆
Public static function getInstance(){//创建类
If(!isset(self::$instance))//如果没有生产
{self::$instance=new self();
Return self::$instance;
}
Else{
Return self::$instance;
}
}
}
Php重载不同于其他面向对象的相同名字不同形参方法的多次定义,而是一个对象使用未定义的属或方法时,其中的一些处理机制
属性重载:
__get($prop_name):获取未定义属性值,预先在类中定义个空数组用于存放未定义的属性
__set($p,$v):将未定义的属性保存到属性数组中
__isset($prop_name):通过数组中的索引判断是否有值
方法重载:
__call($method_name,$args[])调用不存在的方法时自动调用这个函数
__callstatic($method_name,$args[]),调用不存在的静态方法时。
接口:
Interface interfaceName{
。。。
}
Class className implements interface1,interface2{
。。。
}
自动加载:当new一个对象时;使用类的静态方法...
系统内部:__autoload()//假如多个类路径不同则找不到使用自定义自动加载
Function __autoload($name)
{
Require_once $name.’.class.php’;
}
自定义自动加载:
spl_autoload_register("func1");//声明“函数1”作为自动加载函数
spl_autoload_register("func2");//声明“函数2”也作为自动加载函数
Function func1($name){
//判断文件存在引入,不存在则不处理
@include_once ‘路径1’.$name.’.class.php’;
}
Function func2($name){//判断文件存在引入,不存在则不处理
@include_once ‘路径2’.$name.’.class.php’;
}