博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[笔记] php常见简单功能及函数
阅读量:5925 次
发布时间:2019-06-19

本文共 2374 字,大约阅读时间需要 7 分钟。

获取远程文件(图片等)

有三种方式

  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 "
";

创建多级目录

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;    }}

待续……

转载地址:http://veavx.baihongyu.com/

你可能感兴趣的文章
jdbc crud
查看>>
Android控件ToggleButton的用法 分类: Androi...
查看>>
Vue修饰符
查看>>
HDU 6185 Covering
查看>>
HDU 5631 Rikka with Graph
查看>>
conda内搭建pytorch深度学习框架环境
查看>>
配置多个视图解析器
查看>>
单链表的实现
查看>>
使用软件工具插件 备忘
查看>>
P1242 新汉诺塔(hanio)
查看>>
#HTTP协议学习# (二)基本认证
查看>>
【干货】vue2.0-模块化全局自定义过滤器和vue中export和export default用法(前端网备份)...
查看>>
连接池的实现
查看>>
nginx利用limit模块设置IP并发防CC攻击
查看>>
对TCP/IP网络协议的深入浅出归纳
查看>>
zabbix4.2学习笔记--安装percona插件监控MySQL
查看>>
CSS3媒体查询总结
查看>>
对栈溢出的分析(未完成)
查看>>
(转)EXT基础校验
查看>>
20145222黄亚奇《网络对抗》—— 网络欺诈技术防范
查看>>