前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP中一些可用的方法

PHP中一些可用的方法

作者头像
用户7657330
发布2020-08-14 15:17:14
2960
发布2020-08-14 15:17:14
举报
文章被收录于专栏:程序生涯程序生涯

//数组编码转换函数

代码语言:javascript
复制
/*

return Array

$in_charset原字符串编码

$out_charset输出字符串编码

$arr传入的数组

*/

function array_iconv($in_charset,$out_charset,$arr){   

    eval('$resArr = '.iconv($in_charset,$out_charset."//IGNORE",var_export($arr,true)).' ;');
    return $resArr;
}

//二维数组排序函数

代码语言:javascript
复制
/*

$arr输入的二位数组

$keys需要排序的字段

$mode是否保持原来的键名,keep为保持、nokeep为重新建立

$type排序方式 asc为升序。desc为降序

*/

function array_sort($arr,$keys,$mode='nokeep',$type='asc'){   

      $keysvalue = $new_array = array();

      foreach ($arr as $k=>$v){

            $keysvalue[$k] = iconv('UTF-8', 'GB2312',$v[$keys]);

       }

       if($type == 'asc'){

            asort($keysvalue);

       }else{

             arsort($keysvalue);

        }

        reset($keysvalue);

        if($mode=='keep'){

        foreach ($keysvalue as $k=>$v){

              $new_array[$k] = $arr[$k];

         }

        }else{

             foreach ($keysvalue as $k=>$v){

             $new_array[] = $arr[$k];

        }

   }
    return $new_array; 

}

//curl获取远程数据 需要开启curl库

代码语言:javascript
复制
/*

$url远程地址

*/

function curl_get_contents($url){

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, $url);            //设置访问的url地址

    //curl_setopt($ch,CURLOPT_HEADER,1);            //是否显示头部信息

    curl_setopt($ch, CURLOPT_TIMEOUT, 5);           //设置超时

    curl_setopt($ch, CURLOPT_USERAGENT, _USERAGENT_);   //用户访问代理 User-Agent

    curl_setopt($ch, CURLOPT_REFERER,_REFERER_);        //设置 referer

    curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);      //跟踪301

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);       //返回结果

    $r = curl_exec($ch);

    curl_close($ch);

    return $r;

}

//下载函数

代码语言:javascript
复制
 /*
    $filename下载文件地址或路径
    */
    function download($filename){
        if(preg_match("/^http\:\/\//i",$filename)){
            header("location:$filename");
        }else{
            header('Content-Description: File Transfer');
            header('Content-Type: application/octet-stream');
            $simplename = basename($filename);
            header('Content-Disposition: attachment; filename='.$simplename);
            header('Content-Transfer-Encoding: binary');
            header('Expires: 0');
            header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
            header('Pragma: public');
            header('Content-Length: ' . filesize($filename));
            ob_clean();
            flush();
            readfile($filename);
        }
    }

//生成随机数

代码语言:javascript
复制
    /*
    return String
    $num生成位数
    $mode模式,1为生成大写与数字,2为生成大小写与数字
    */

    function randnum($num,$mode=1){
        if($mode==1){
            $str_abc = '1234567890ABCDEFGHIJKLOMNOPQRSTUVWXYZ';
            $str = '';
            for($i=0;$i<$num;$i++){
                $str .= $str_abc{mt_rand(0,35)};
            }
            return $str;
            $str = '';
        }else{
            $str_abc = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLOMNOPQRSTUVWXYZ';
            $str = '';
            for($i=0;$i<$num;$i++){
                $str .= $str_abc{mt_rand(0,61)};
            }
            return $str;
            $str = '';
        }
    }

//中文截取函数

代码语言:javascript
复制
/*
     return String
     $str传入的字符
     $start起始位置
     $start结束位置
     */

    function cSubstr($str,$start,$len)
    {
        for ($i = $start; $i < $len; $i++) {
            $temp_str = substr($str, 0, 1);
            if (ord($temp_str) > 127) {
                $i++;
                if ($i < $len) {
                    $new_str[] = substr($str, 0, 3);
                    $str = substr($str, 3);
                }
            } else {
                $new_str[] = substr($str, 0, 1);
                $str = substr($str, 1);
            }
            return join($new_str);
        }
    }

使用"自然"算法来比较两个字符串(不区分大小写):

strnatcasecmp() 函数使用一种"自然"算法来比较两个字符串。

在自然算法中,数字 2 小于数字 10。在计算机排序中,10 小于 2,这是因为 10 中的第一个数字小于 2。

注释:strnatcasecmp() 对大小写不敏感。

strnatcasecmp(string1,string2)

返回值:

  • 0 - 如果两个字符串相等
  • <0 - 如果 string1 小于 string2
  • >0 - 如果 string1 大于 string2
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-03-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档