>

应用PHP遍历文件夹与子目录的函数代码_php本事

- 编辑:云顶娱乐yd2221 -

应用PHP遍历文件夹与子目录的函数代码_php本事

PHP的兴安盟格局提供七个中央安全的分享意况,在叁个有多个客户帐户存在的PHP开放的Web服务器上。当一个Web服务器上运营的PHP展开了安全方式,那么部分函数将被完全的取缔,并且会约束部分可用的作用。

作者们要使用的函数有 Scandir,它的效应是列出钦赐路线中的文件和目录,就好像Dir 相似。

那篇小说的独特之处是,正则式尤其头眼昏花鸟,╮╭,再不怕 Copy 函数的灰常强大的三个用法。 > 话说刚才听 NsYta 说小邪的宗旨太白了,杯具。近来太忙,未有空,不然就和煦搞叁个新核心。 大器晚成. 抓取 CSS 中的图片: > 1. 第黄金时代做好策动专门的学问: > 第一步,先把 CSS 原来的门路存到 $url 变量里,然后把 CSS 的内容保留在 abc.css 中。 > 因为思索到平日遭遇八个 CSS 文件的气象,所以小邪未有一直填一个 CSS 路线。 > 而是把多少个 CSS 文件的剧情统大器晚成到一块儿,全体塞到 abc.css 文件之中就能够,嘎嘎嘎。 $data = file_get_contents; > 接着读取 CSS 文件的源委到 $data 变量中,然后用正则式把域名给收取来。 > 因为此处酌量到广大图片文件用到了相对根路线,比如说 /img/1.gif 和 img/1.gif。 > 然后 CSS 原地址在 //www.jb51.net/css/ 那么位置的四个文本地点是莫衷一是的。 > 第叁个公文在 /upload/二零一一09/二零一一0926143903807.gif,因为它的门路用到了相对根路线。 > 而第一个在 /upload/二〇一三09/二零一二0926143903169.gif,它的路径只是平常的相对路线。 复制代码 代码如下: $url = '//www.jb51.net/css/'; preg_match//',$url,$host); //这里用正则式把 //www.jb51.net/ 给收取来,后端不忘记加斜杠喔。 //.*? 是懈怠相配,也正是能相称得越少就万分越少的内容,那样就不会取过头了。 $host = $host[1];

今昔玩微博的人尤为多了,而关于博客园的第三方使用开采也更多,自个儿在有的时候间起头接触了今日头条新浪API开采,天涯论坛天涯论坛API开辟的财富超多,乐乎今日头条提供了三个开采者的阳台,网站是: 本人在开拓和上学的进度中,以为尽管从未太劫难度,但要么有局地主题材料是亟需我们注意的,明日就自小编在开采和上学的历程中,轻巧的对运用PHP实行微博新浪API开垦的内容开展三个整合治理和验证, 新浪今日头条API开拓前的备选专门的职业首先到微博乐乎开放平台下载基于PHP的SDK开辟包,下载地址是: 下载完毕后放置自身的支付条件中并解压,在其间也带有了demo演示程序,大家能够参谋其样例程序开展编写制定。 今日头条今日头条API开采最重视的客户授权过程其实际付出进程中多数的难点都是汇总在顾客授权那些品级,小编付出的第三方使用,使用的是OAuth授权,关于OAuth授权的流程在和讯博客园开放平台里有很鲜明完整的介绍,大家得以到 1.率先获得未授权的Request Token 复制代码 代码如下: $o = new WeiboOAuth; $keys = $o->getRequestToken(); //echo($keys['oauth_token'].' : '.$keys['oauth_token_secret']); 大家要求在博客园天涯论坛开放平高雄登记四个帐号,或间接利用我们的搜狐乐乎帐号登陆,步入作者的行使,然后根据提醒创造归属大家和谐的第三方使用,创建达成未来大家能够拿到多个授权的App Key和App Secret值,这两个值正是我们付出使用的机要。 获得授权值后,大家就足以选用方面包车型客车代码得到未授权的Request Token值了,它们会保留在$key数组变量中。 2.然后号令客户授权Token 复制代码 代码如下: $_SESSION['keys'] = $keys; aurl = $o->getAuthorizeURL( $keys['oauth_token'] ,false , ''); 拿到未授权的Request Token值后,大家就选择方面包车型地铁代码能够起来策动去天涯论坛博客园授权页面进行授权,$aurl便是授权链接页面,大家得到$aurl后就能够运用header()直接跳转到该授权页面,然后顾客输入微博博客园帐号和密码进行授权,授权实现后,自动跳回你在终极叁个参数里面安装的回调页面: 须要小心的是设置session的keys的值是必需的,它在上边获取到授权的Access Token中是索要使用的。比相当多的心上人可能会仿效其开放平台下面的验证来张开授权时,可开掘一而再延续出错,日常都是那一个主题材料,你未曾安装session的keys值,在下边自然取不到Access Token的值了,那个一定要切记了。 3.尾声拿到顾客授权的Access Token 复制代码 代码如下: $o = new WeiboOAuth( WB_AKEY , WB_SKEY , $_SESSION['keys']['oauth_token'] , $_SESSION['keys']['oauth_token_secret'] ); $last_key = $o->getAccessToken( $_REQUEST['oauth_verifier'] ) ; echo($last_key['oauth_token']); 上面的代码就最后得到了客户授权的Access Token,共八个值,它们保存在$last_key数组变量里面,大家也可以看到,前边的四个参数正是前方大家设置的session值。到此就着力形成了,那就是网易天涯论坛顾客授权的一个全体的历程。 授权完毕后的办事 在授权完结今后,大家就能够起来调用和讯今日头条提供的各式API函数接口举办实际使用的支付了,在这里边自个儿就拿到最新腾讯网记录那么些接口进行二个差不离表达,别的都临近。 获取最新新浪和讯新闻的API接口函数是:public_timeline(),样例代码看上边: 复制代码 代码如下: //获取前20条最新更新的国有知乎信息 $c = new WeiboClient( WB_AKEY , WB_SKEY , $oauth_token , $oauth_token_secret ); $msg = $c->public_timeline(); if ($msg === false || $msg === null){ echo "Error occured"; return false; } if (isset && isset{ echo ('Error_code: '.$msg['error_code'].'; Error: '.$msg['error'] ); return false; } print_r; 日常我们在获取客户授权的Access Token值之后,就把它们保存在我们的顾客表中,与大家的使用中的帐号进行相应,之后大家在调用博客园博客园各api接口时就不用每次都去验证了。 上边包车型大巴代码相当粗略,实例化WeiboClient对象,然后径直调用接口函数public_timeline就足以获得重临的消息,若无错误的话。平时天涯论坛博客园api接口再次回到的数目格式平时为Json格式或xml格式,而笔者辈在这里是用php进行支付,则利用Json格式的数码就有自然的优势,若是回到Json格式数据来讲,直接选用php函数json_decode()就能够转变为php常用的array数组格式了。 来源:红心草博客 原来的书文地址:

复制代码 代码如下:

[ 使用安全情势来强制约束 ]

> 与更加强力的 Glob() 函数,功用是以数组的情势再次回到与钦命方式相相配的文书名或目录。 > 友情提醒,千万别像小邪那样在Computer前面呆太短时间,否则就能像小邪同样得见鬼的高血脂。 大器晚成. 遍历单层文件夹: > 在围观单层文件夹的主题材料是,七个函数的结果虽有区别,可是展现是偏离非常的小的。 > Scandir 函数会提供额外两行,分别是 “.” 和 “..” ,而 Glob 则是未有的。 复制代码 代码如下: function get_dir_scandir; foreach as $single){ echo $single."
rn"; } } get_dir_scandir(); function get_dir_glob; foreach as $single){ echo $single."
rn"; } } get_dir_glob(); 二. 递归遍历文件树: > 在递归扫描文件夹树的难点上,照旧 Glob 函数的突显好一些,很规范的说。 > Scandir 函数会莫明其妙扫描两次 ../ 处的文书,也便是说假使小邪有俩文本。 > ../b.php 和 ../a.php,结果就能在围观报告上边现身四次,格外竟然。 复制代码 代码如下: //Update at 贰零零捌.07.25 - 以下代码作废 $path = '..'; function get_filetree_scandir{ $tree = array(); foreach as $single){ if){ $tree = array_merge($tree,get_filetree; } else{ $tree[] = '../'.$single; } } return $tree; } print_r(get_filetree_scandir; //Update at 2010.07.25

  1. 把图纸存款和储蓄文件夹建好: > 小邪这里用了 is_dir 来分明文件夹是还是不是留存,存在的话,就不用再营造第贰次了。 > 呵呵,顺便说下,is_file 函数能够规定此文件是不是为常规文件,也足以鲜明是否存在。 > 但 file_exists() 杰出一点,因为某次看到有人在 Webmasterworld.com 下边商讨过。 if { mkdir; } > 3. 用正则式把图片相对地址收取来: $regex = '/url\'{0,1}"{0,1})/'; //这里用正则式相称出图片地址,要思考两种状态,即 url url。 //那二种写法都以足以行使的,所以大家就用地点的正则把内部的 1.gif 收取来。 //'{0,1} 表示单引号只怕现身1次或0次," 则代表双引号可能现身1次或0次。 //中间必得选用懒惰相配,不然抽出来的就是1.gif" 实际不是 1.gif 鸟,OP。 preg_match_all; > 4. 拍卖这几个图片: > 首先利用二个生生不息,把上边是用正则提抽取来的第生机勃勃拨出内容数组给管理一下。 > 额,这里的首先分段表示正则式里面包车型地铁率先个括号来着,呵呵,由此及彼。 foreach { } > 然后是用正则式判别,因为还要思索到这般 /upload/二零一二09/二零一二0926143903807.gif。 > 那样是运用了总体的渠道了,并不是想任何的生机勃勃致是 /img/1.gif 要么 img/1.gif。 > 所以单独推断一下,然后紧接着剖断那四个,看看是 /img/1.gif 依然 img/1.gif。 复制代码 代码如下: if (preg_match { $target = $val; } else if (preg_match { $target=$host.$val; } else { $target=$url.$val; } echo $target."
    rn"; > 最终把公文名抽取来,即 /img/1.gif 中的 1.gif,用于保存文件。 复制代码 代码如下: preg_match$/',$val,$name); > 然后大家就足以开首下载了,这里要介绍四个强硬的 Copy 函数用法。 复制代码 代码如下: if (!is_file { $imgc = file_get_contents; $handle = fopen('./img/'.$name[1],'w+'); fwrite; fclose; } > 上边十分是我们的老艺术了,嘎嘎,很麻烦。某次,小邪忽地开采 Copy 的无敌。 > Copy 居然也得以下载,所以能够轻便使用上面包车型客车代码来拍卖,上边的能够退休鸟。 复制代码 代码如下: if (!is_file { copy($target,'./img/'.$name[1]); } > 5. 完整源代码: > 使用的时候把 $url 填好就能够,然后把持有 CSS 内容存到 abc.css 中就能够。 复制代码 代码如下:

'900') { session_destroy(); echo "登陆超时"; exit (); } else { $_SESSION['times'] = mktime(); } } ?> PHP+MYSQL会员系统的登入即权限决断富含三个页面,cogfig页面是被含有页面。denglu页面担当提交,session赋值等,denglu_link页面担任权限决断的以身作则。 本例事先已存在test数据库,user_list表,表中有uid,m_id,username,password四个字段。并且password字段已经因而md5加密,方式是:md5,即客户输入的密码加常量举办加密。 config.php页面: 复制代码 代码如下:

在乌海情势下,一些品尝访谈文件系统的函数成效将被节制。运转Web服务器客户ID,倘使想要操作有个别文件,则必得具有该文件读取只怕写入的拜访权限,达成这几个范围功效对于PHP来讲是没格外的。

  • 以下为新代码 $path = './'; function get_filetree_scandir{ $result = array; if ||!is_readable return null; //检查评定目录有效性 $allfiles = scandir; //获取目录下具备文件与公事夹 foreach ($allfiles as $filename) { //遍历一回目录下的文件与公事夹 if (in_array($filename,array continue; //无视 . 与 .. $fullname = $path.'/'.$filename; //得到完全文件路线 if { //是目录的话继续递归 $result[$filename] = get_filetree_scandir; //递归开端 } else { $temp[] = $filename; //假若是文本,就存入数组 } } foreach { //把有时数组的源委存入保存结果的数组 $result[] = $tmp; //这样能够让文件夹排前面,文件在背后 } return $result; } print_r(get_filetree_scandir; > Glob 函数扫描灰常正确,並且会自行根据字母排好顺序,貌似是最好方案。 复制代码 代码如下: $path = '..'; function get_filetree{ $tree = array(); foreach as $single){ if{ $tree = array_merge($tree,get_filetree; } else{ $tree[] = $single; } } return $tree; } print_r;

denglu.php页面: 复制代码 代码如下: include; if{ $username=str_replace(" ","",$_POST['username']); //去除空格 $sql="SELECT * FROM `user_list` WHERE `username` = '$username'"; $query=mysql_query; $exist=is_array($row=mysql_fetch_array; //判别是还是不是留存这么一个用户$exist2=$exist?md5($_POST['password'].ALL_PS)==$row['password']:FALSE;//决断密码 if{ $_SESSION['uid']应用PHP遍历文件夹与子目录的函数代码_php本事_脚本之家,新浪搜狐API开辟简单介绍之客商授权_php实例_脚本之家。=$row['uid']; // session赋值 $_SESSION['user_shell']=md5($row['username'].$row['password'].ALL_PS); echo "登入成功"; }else{ echo "不得法的客户名"; SESSION_DESTROY(); } } ?> denglu_link denglu_link.php页面: 复制代码 代码如下: include; $arr=user_shell($_SESSION['uid'],$_SESSION['user_shell']);//以上两句即可对权力进行推断echo $arr['username']; ?> 权限内容

本文由云顶娱乐yd2221发布,转载请注明来源:应用PHP遍历文件夹与子目录的函数代码_php本事