最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • PHP常用方法(不定时更新)

    正文概述 转载于:掘金(洒下诗篇三百年)   2021-06-16   315

    1、解决跨域问题

    public function __construct()
    {
        parent::__construct();
        header('Access-Control-Allow-Origin:*');    //跨域
    }
    

    2、json_encode 中文不转码

    die( json_encode( $result,JSON_UNESCAPED_UNICODE ) );
    

    3、二维数组排序

    $users = array(
        array('name' => 'xiao1', 'age' => 20),
        array('name' => 'xiao2', 'age' => 18),
        array('name' => 'xiao3', 'age' => 22)
    );
     
    /*按照年龄升序*/
    //要将age提取出来存储到一维数组里,然后按照age升序排列
    $ages= array_column($users, 'age');
    array_multisort($ages, SORT_ASC, $users);
     
    /*先按照年龄升序,再按照姓名降序*/
    $ages= array_column($users, 'age');
    $names = array_column($users, 'name');
    array_multisort($ages, SORT_ASC, $names, SORT_DESC, $users);
    

    4、如果Linux服务器上php.ini关闭了错误提示,导致结果406,500。打印错误信息。

    ini_set("display_errors", "On");
    error_reporting(E_ALL | E_STRICT);
    

    5、list 的使用

    //list使用
    public function test(){
        list($name, $sex) = $this->getInfo();
        echo "姓名:{$name},性别:{$sex}";
    }
     
    public function getInfo(){
        return ['张三', '男'];
    }
     
    //输出:姓名:张三,性别:男
    

    6、函数 array_column()的使用

    $array = [
        ['id'=>'99', 'name'=>'九十九'],
        ['id'=>'88', 'name'=>'八十八'],
        ['id'=>'77', 'name'=>'七十七'],
    ];
    $arr1 = array_column($array, 'name');   
    //输出:array (0 => '九十九',1 => '八十八',2 => '七十七',)
    $arr2 = array_column($array, 'name', 'id'); 
    //输出:array (  99 => '九十九',  88 => '八十八',  77 => '七十七',)
    
    • array_column() 与 array_combine() 搭配使用
    $ids = array_column($array, 'id');
    $arrayCombine = array_combine($ids, $array);
    /*$arrayCombine 输出:
     array ( 
         99 => array ( 'id' => '99', 'name' => '九十九', ), 
         88 => array ( 'id' => '88', 'name' => '八十八', ), 
         77 => array ( 'id' => '77', 'name' => '七十七', ), 
     )*/
    

    7、一维数组去重,删除0,null,索引重置

    $array = array(0,1,0,2,null,1,3,4,null,0);
    $array = array_values(array_unique(array_diff($array, [0, null])));	//去除0,null;去重
    var_export($array);
     
    /*输出:
    array (
      0 => 1,
      1 => 2,
      2 => 3,
      3 => 4,
    )
    */
    

    8、把秒转为时分秒

    • 把秒数转为时分秒,gmstrftime函数,不过该函数仅限于24小时内的秒数转换。
    $r = gmstrftime('%H:%M:%S',(3600*23)+123);
    var_export($r);
    //输出: '23:02:03'
    

    9、接口返回

    • 接口正常返回 1 ,异常返回 -1 。如果数据为空,是1;-1是参数异常或者逻辑错误。

    10、四舍五入保留2位小数。

    round($x, 2);
    

    11、隐藏手机号中间4位。

    $num = "13711111111";
    $str = substr_replace($num,'****',3,4);
    

    12、换行变量 PHP_EOL

    使用场景:一个小小的换行,其实在不同的平台有着不同的实现。
    本来在unix世界换行就用/n来代替,但是windows为了体现他的不同,就用/r/n,更有意思的是在mac中用/r。
     
    PHP_EOL就是php中已经定义好的变量,代表php的换行符。
    这个变量会根据平台而变,在windows下会是/r/n,在linux下是/n,在mac下是/r。
    

    13、PHP判断数组 键 是否存在 isset(),array_key_exists(),empty()

    $array = ['a'=>'我是第一个', 'b'=>'我是第二个', 'c'=>'我是第三个', 'f' => null];
    if(isset($array['a'])) {
        echo 'a存在 ';
    } else {
        echo 'a不存在 ';
    }
    
    if(array_key_exists('d', $array)) {
        echo 'd存在 ';
    } else {
        echo 'd不存在 ';
    }
    
    if (empty($array['f'])) {
        echo 'f不存在';
    } else {
        echo 'f存在,且不为 null,0,"0",false';
    }
     
    //a存在 d不存在 f不存在
    

    14、引入js的文件,带参数?_=1553829159194

    • http://***/index/index?_=1553829159194
    • 在url后面加一个timestamp时间戳,保证每次的url都是变化的,这样就不会读取浏览器缓存了。

    15、接口测试工具

    • 接口测试工具推荐 postman

    16、如果最后一个字是“区”,就删除。

    $distName = '南山区';
    $lastChar = mb_substr($distName, -1);
    if($lastChar=='区'){
        $lastChar = mb_substr($distName, 0, -1);
    }
    echo $lastChar;
    

    17、假设页面内容如下:

    • 后台返回的数据结构:
    {"eat":["大米","小麦"],"drink":["水","茶"]}
    
    • 不太好,这样还要前端对应到相关字段,eat吃的;drink是喝的。

    • 最好这样返回:

    [{"name":"吃的","list":["大米","小麦"]},{"name":"喝的","list":["水","茶"]}]
    

    18、创建0777目录,mkdir,chmod配合使用

    • 用mkdir创建在windows没问题,但是在linux使用mkdir创建文件夹会出现没有最大权限0777的情况;所以要再使用chmod函数,(chmod函数针对linux创建文件夹权限不足的情况)
    //若目录不存在则创建目录
    $filePath = '../file/20900101';
    if(@!file_exists($filePath)){
        mkdir($filePath, 0777, true);
        chmod($filePath, 0777);
    }
    

    19、foreach中引用赋值

    • 代码
    $temp = [
                [ 'id' => 1, 'name' => 'name1', 'age' => 'age1', 'time' => 'time1' ],
                [ 'id' => 2, 'name' => 'name2', 'age' => 'age2', 'time' => 'time2' ]
            ];
    
    # 清空原数据
    $data = $temp;
    foreach ($data as &$value){
        $value = [];
    }
    echo '<pre>';
    print_r($data);
    
    # 重置原数据
    $data = $temp;
    foreach ($data as &$value){
        $value = [
            'hobby' => 1
        ];
    }
    print_r($data);
    
    # 追加原数据
    $data = $temp;
    foreach ($data as &$value){
        $value['hobby'] = 1;
    }
    print_r($data);
    
    • 打印
    Array
    (
        [0] => Array
            (
            )
    
        [1] => Array
            (
            )
    
    )
    Array
    (
        [0] => Array
            (
                [hobby] => 1
            )
    
        [1] => Array
            (
                [hobby] => 1
            )
    
    )
    Array
    (
        [0] => Array
            (
                [id] => 1
                [name] => name1
                [age] => age1
                [time] => time1
                [hobby] => 1
            )
    
        [1] => Array
            (
                [id] => 2
                [name] => name2
                [age] => age2
                [time] => time2
                [hobby] => 1
            )
    
    )
    
    

    20、url生成器

    public function test() {
    	$url = self::getUrl('http://www.test.com', ['id' => 3, 'other' => '好的']);
    	echo $url . '<br>';     //打印:http://www.test.com?id=3&other=%E5%A5%BD%E7%9A%84
    	echo urldecode($url);   //打印:http://www.test.com?id=3&other=好的
    }
    
    public function getUrl($apiUrl, $param = []){
        $param = http_build_query($param);
        return $apiUrl . '?' . $param;
    }
    

    21、写接口空数组返回对象形式

    • $data为空时强转为 object类型后,json_encode的值是{}不强转的话则是==[]==,是否需要强转看实际情况
    $data = $data ? $data : (object)$data;
    

    起源地下载网 » PHP常用方法(不定时更新)

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元