首页 / PHP / PHP

读一读

include 'file';//包含 运行时载入
require 'file';//依赖 运行前载入
require_once 'file';//保证只引入一次

都是用来引入外部的php文件


数组

$arr=array();
$arr['键值']=值;
array_push($arr,元素);//添加元素到尾部

数组的索引最大值是按存在过的最大值计算的

$arr = array_values($arr);//重建索引,在删除元素后用等
sort($arr);//升序排序
rsort($arr);//降序排序

解引用

函数的形式

function getArray(){
   return array();
}

5.4之后 

$val = getArray()[1];

以前

$arr = getArray();
$val = $arr[1]

key会发生相应的转换

1.合法整型值转换为整型

2.浮点数转换为整型

3.布尔值转换为整型

4.null转换为空字符串

5.数组和对象不能作为键名

同一键名,后面会覆盖前面

若值没有键名,也键名就是数组中最大整数索引值+1

访问$数组名[索引键值][]


string可以通过下标的方式来访问具体的字符,当成一个array对象。

用.操作符来连接字符串

使用strval()转化为字符串

数组对象总是转换为Array,资源也是,对象也是(__toString魔法方法可以自定义改变),所以不能看到具体内容

串行化serialize()把对象数组什么的变成字符串可以永久保存起来

ord() chr()实现ASCII码和字符间的转换


在php7.1的时候mcrypt的扩展被弃用了,但是还是可以用的

laravel5.2的项目中会出现报错,需要忽略这些报错

  1. 修改php.ini配置文件

    error_reporting=E_ALL & ~E_NOTICE

  2. 如果还不行,在项目中加上这句代码

    error_reporting(E_ALL^E_NOTICE);


  1. 点击IIS里面的Web平台安装程序,选择产品-框架,选择需要的php版本下载

  2. 下载完成后,点击处理映射程序,添加模块映射,第一个填*.php,第二个选择FastCgiModule模块,第三个选择php版本文件的cgi应用程序

  3. 返回到IIS,点击PHP Manager进入选择使用的版本。


private function isMobile()
{
    // 如果有HTTP_X_WAP_PROFILE则一定是移动设备
    if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))
    {
        return true;
    }
    // 如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
    if (isset ($_SERVER['HTTP_VIA']))
    {
        // 找不到为flase,否则为true
        return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false;
    }
    // 脑残法,判断手机发送的客户端标志,兼容性有待提高
    if (isset ($_SERVER['HTTP_USER_AGENT']))
    {
        $clientkeywords = array ('nokia',
            'sony',
            'ericsson',
            'mot',
            'samsung',
            'htc',
            'sgh',
            'lg',
            'sharp',
            'sie-',
            'philips',
            'panasonic',
            'alcatel',
            'lenovo',
            'iphone',
            'ipod',
            'blackberry',
            'meizu',
            'android',
            'netfront',
            'symbian',
            'ucweb',
            'windowsce',
            'palm',
            'operamini',
            'operamobi',
            'openwave',
            'nexusone',
            'cldc',
            'midp',
            'wap',
            'mobile'
        );
        // 从HTTP_USER_AGENT中查找手机浏览器的关键字
        if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT'])))
        {
            return true;
        }
    }
    // 协议法,因为有可能不准确,放到最后判断
    if (isset ($_SERVER['HTTP_ACCEPT']))
    {
        // 如果只支持wml并且不支持html那一定是移动设备
        // 如果支持wml和html但是wml在html之前则是移动设备
        if ((strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== false) && (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') === false || (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'], 'text/html'))))
        {
            return true;
        }
    }
    return false;
}



mcrypt扩展 在php7.1之后要被弃用了,解决办法,目前只知道将php版本改为7.0或则修改配置或程序忽略弃用警告。