当前位置: 首页 > news >正文

[笔记] php常见简单功能及函数

获取远程文件(图片等)

有三种方式

  1. file_get_contents($url);
    使用file_get_contents()函数获取文件,在用file_put_contents()函数把文件写到本地。

  2. 使用curl

//获取到文件
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,60);
$file=curl_exec($ch);
curl_close($ch);
//写入本地
$fp=fopen($save_dir.$filename,'a');
fwrite($fp,$file);
fclose($fp);

3 . 使用ob_start()

//获取文件
ob_start();    //打开缓冲区
readfile($url);
$file=ob_get_contents();
ob_end_clean();
//写入本地
$fp=fopen($save_dir.$filename,'a');
fwrite($fp,$file);
fclose($fp);

多个进程写入同一个文件(加锁)

$fp = fopen("lock.txt","w+");
if(flock($fp,LOCK_EX)){
    //获得写锁,写数据
    fwrite($fp,"write something");
    //解除锁定
    flock($fp,LOCK_UN);
}else{
    echo "file is locking";
}
fclose($fp);

跳转的方法

header('Location:http://www.baidu.com');        //立刻跳转
header('refresh:3;url=http://www.baidu.com');    //三秒后跳转
//php函数跳转缺点:执行前不能有输出

//meta跳转
echo "<meta http-equiv='refresh' content='5;url=http://www.baidu.com' >";

创建多级目录

function create_dir($path,$mode=0777){
    if(is_dir($path)){
        return true;
    }else{
        if(mkdir($path,$mode,true)){
            return true;
        }else{
            return false;
        }
    }
}

无限极分类

function getCat($data,$pid=0,$level=0){
    static $res;
    foreach($data as $k=>$v){
        if($v['pid']=$pid){
            $v['level'] = $level;
            $res[] = $v;
            getCat($data,$v['id'],$level+1);
        }
    }
    return $res;
}

取出url中的扩展名

function getExt($url){
    $arr = parse_url($url);  //解析url,返回数组
    $file = basename($arr['path']);  //取文件名部分
    $ext = explode('.',$file);
    return $ext[count($ext)-1];
}
function getExt($url){
    $url = basename($url);
    $pos1 = strpos($url,'.');
    $pos2 = strpos($url,'?');
    if(strstr($url,'?')){
        return substr($url,$pos1+1,$pos2-$pos1-1);
    }else{
        return substr($url,$pos1+1);
    }
}

读取文件夹下的所有子目录和子文件夹

function my_scandir($dir){
    $files = array();
    if(is_dir($dir)){
        if($handle = opendir($dir)){
            while(($file = readdir($handle)) != false){
                if($file!='.' && $file!='..' ){
                    if(is_dir($dir.'/'.$file)){
                        $files[$file] = my_scandir($dir.'/'.$file);
                    }else{
                        $files[] = $dir.'/'.$file;
                    }
                }
            }
            closedir($handle);
            return $files;
        }else{
            return false;
        }
    }else{
        return false;
    }
}

待续……

相关文章:

  • SQLServer 理解copyonly备份操作
  • pycharm2016序列号失效问题解决办法
  • ASP.NET Core DI 手动获取注入对象
  • 深入浅出 spring-data-elasticsearch - 基本案例详解(三)
  • 远程桌面无法复制粘贴的解决方法
  • 《vSphere性能设计:性能密集场景下CPU、内存、存储及网络的最佳设计实践》一1.2.1 CPU基础设施基准...
  • “智能云”战略新品震撼发布,开发者如何快速上手?
  • 对于startActivity的使用改进
  • [设计模式][c++]状态切换模式
  • POJ2117-Electricity
  • HTML/CSS 知识点
  • java并发编程之:线程共享数据的方式
  • 《2017年全球数据库安全市场趋势》
  • 聊聊运维(1)证明你是坏运维的七个迹象,不要做CPR运维
  • 怎样制作C#安装程序
  • 【EOS】Cleos基础
  • 【技术性】Search知识
  • 10个确保微服务与容器安全的最佳实践
  • CAP理论的例子讲解
  • C语言笔记(第一章:C语言编程)
  • IndexedDB
  • JavaScript类型识别
  • Linux后台研发超实用命令总结
  • Linux快速复制或删除大量小文件
  • php ci框架整合银盛支付
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 初识 webpack
  • 大快搜索数据爬虫技术实例安装教学篇
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 分布式熔断降级平台aegis
  • ------- 计算机网络基础
  • 记一次和乔布斯合作最难忘的经历
  • 通过npm或yarn自动生成vue组件
  • 微信小程序:实现悬浮返回和分享按钮
  • 消息队列系列二(IOT中消息队列的应用)
  • 译有关态射的一切
  • 用Canvas画一棵二叉树
  • 与 ConTeXt MkIV 官方文档的接驳
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • ​secrets --- 生成管理密码的安全随机数​
  • #pragma data_seg 共享数据区(转)
  • %@ page import=%的用法
  • (42)STM32——LCD显示屏实验笔记
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (转)h264中avc和flv数据的解析
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (转)创业的注意事项