记录几个php的函数

  有机会一定要读几遍手册 

1.arsort($arr)

按值把数组降序排列,改变了原数组的结构了。如果是个二维数组,会按照二维数组的数量进行排列

$arr    被排序的数组,可以是二维,再高的就不知道了

2.current

取出数组中当前元素的值,应该默认是第一个

加一个

reset    将数组内指针指向第一个元素并输出,类似的还有

 

  • end() - 将内部指针指向数组中的最后一个元素,并输出
  • next() - 将内部指针指向数组中的下一个元素,并输出
  • prev() - 将内部指针指向数组中的上一个元素,并输出
  • reset() - 将内部指针指向数组中的第一个元素,并输出
  • each() - 返回当前元素的键名和键值,并将内部指针向前移动

先用reset下边这些东西把指针调整了,再用current取值。为什么这样?因为比如sort函数会改变数组结构···

3.array_pad($arr, $len, $str)

填充数组到指定长度

$arr    被填充的数组

$len    填充后的长度

$str     用什么填充

4. 获取远程网址的内容

简单的用  file_get_contents ,复杂的用curl

只说file_get_contents,如果是http那没问题,如果是https 那就不行了
上代码

$stream_opts = [
    "ssl" => [
        "verify_peer"=>false,
        "verify_peer_name"=>false,
    ]
];

return $data = json_decode(file_get_contents($url, false, stream_context_create($stream_opts)),true);

居然还能用post,下边这段是从手册复制过来的
$opts = array('http' =>
  array(
    'method'  => 'POST',
    'header'  => "Content-Type: text/xml\r\n".
      "Authorization: Basic ".base64_encode("$https_user:$https_password")."\r\n",
    'content' => $body,
    'timeout' => 60
  )
);
                        
$context  = stream_context_create($opts);
$url = 'https://'.$https_server;
$result = file_get_contents($url, false, $context, -1, 40000);

5. 获取csv的时候 会遇到乱码

set_time_limit(0);
        try{
            if ($_FILES && $_FILES['file']) {
                set_time_limit(0);
                $file = UploadedFile::getInstancesByName('file'); // 获取文件
                $abc=fopen($file[0]->tempName,'r'); 
                $num=0;
                $arrr=[];
                while ($reader=fgetcsv($abc)){ // 这里有时候获取的数组字段带逗号,没有完全分开,改一下
//    用 fget($abc,2000) , 再用explode转数组
                        
//                    $encode = mb_detect_encoding($reader, array("ASCII",'UTF-8',"GB2312","GBK",'BIG5'));
                    $arrr[]=mb_convert_encoding($reader, 'utf-8', array("ASCII",'UTF-8',"GB2312","GBK",'BIG5')); // 转化格式
                    $num++;
                };
                fclose($abc);
                $abcdef=array_values($arrr[0]);
                $arrr1=array_map(function($v1)use($abcdef){ // 把第一列作为其他列的键
                    return array_combine($abcdef,$v1);
                },$arrr);
                unset($arrr1[0]); // 释放内存
                unset($arrr); // 释放内存
                if(count($arrr1)===0){
                    throw new \Exception('数据缺失');
                }
var_dump($arrr1);
            }
        }catch (\Exception $e){

        }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值