php删除不是空目录实现代码

 更新时间:2016年11月25日 17:33  点击:2151
php中自带的函数rmdir只能删除空目录,如果你要删除带有文件或有目录的目录,需要递归与unlink一起使用了,下面我们看看删除不是空目录的自定义函数。

//rmdir(dir,context) rmdir() 函数删除空的目录。

$path ='';
if( is_dir( $path ) )
{
 if( rmdir( $path ) )
 {
  echo '删除目录成功';
 }
}
else
{
 echo '不是目录';
}

/*
总结
   
*/
/**
 * 删除文件或文件夹(递归)
 * @param array $filelist
 * @param string $option
 * @param string $fileext 要删除的文件扩展名 格式:'html'
 * @return void
 */

 function rm($filelist, $option='r', $fileext = null, $if_rmdir = false) {
  if (!is_array($filelist)) {
   $filelist = explode('|', $filelist);
  }
  foreach ($filelist as $filename) {
   if (is_file($filename)) {
    if (empty($fileext)) {
     unlink($filename);
    } else {
     if (substr(strrchr($filename, '.'), 1 ) == $fileext){
      unlink($filename);
     }
    }
   } elseif (is_dir($filename)) {
    if (strpos($option, 'r')!==false) {
     $file_list_ = ls($filename);
     foreach ($file_list_ as $fi => $file) {
      $file_list_[$fi] = $filename . $file;
     }
     rm($file_list_, $option, $fileext);
    }
    if ($if_rmdir) {
     rmdir($filename);
    }
   }
  }
 }

//调用方法

opendir() 函数打开一个目录句柄,可由 closedir(),readdir() 和 rewinddir() 使用。 若成功,则该函数返回一个目录流,否则返回 false 以及一个 error。可以通过在函数名前加上 \"@\" 来隐藏 error 的输出。

$dir = opendir("images");

//列出 images 目录中的文件
while (($file = readdir($dir)) !== false)
  {
  echo "filename: " . $file . "<br />";
  }
  closedir($dir);


// 看一下改装的目录浏览实现,使用表格浏览目录的结构

print("<table border="1">n");
// 创建表格的头
print("<tr><font color='red'>n");
print("<th>文件名</th>n");
print("<th>文件的大小</th>n");
print("</font></tr>n");
$mydirectory = opendir(".");  // 建立操作目录的句柄
// 读出目录中的每一个子项
while($entryname = readdir($mydirectory))//通过循环,访问目录的每一个文件
{
   print("<tr>");
   print("<td>$entryname</td>");
   print("<td align="right">");
   print(filesize($entryname));//返回文件大小
  print("</td>");
   print("</tr>n");
}
closedir($mydirectory);   // 关闭目录
print("</table>n");

利用fopen fread  fwrite fcolse打开文件形式

<?php
$fp = fopen ("templets.html","a");
if ($fp){
$fup = fread ($fp,filesize("templets.html"));
$fp2 = fopen ("html.shtml","w");
if ($fwrite ($fp2,$fup)){
$fclose ($fp);
$fcolse ($fp2);
die ("写入模板成功");
} else {
fclose ($fp);
die ("写入模板失败!");
}
}
?>

php读取文件,fread是用来读取用fopen打开的文件内容的,下面我们就来看看fread与gets 实例教程吧.

定义和用法
fread() 函数读取文件(可安全用于二进制文件)。

语法
fread(file,length)参数 描述
file 必需。规定要读取打开文件。
length 必需。规定要读取的最大字节数。

说明
fread() 从文件指针 file 读取最多 length 个字节。该函数在读取完最多 length 个字节数,或到达 eof 的时候,或(对于网络流)当一个包可用时,或(在打开用户空间流之后)已读取了 8192 个字节时就会停止读取文件,视乎先碰到哪种情况。

<?php
$file = fopen("test.txt","r");
fread($file,filesize("test.txt"));
fclose($file);
?>


更多详细内容请查看:http://www.111cn.net/phper/18/753bc9c01fa5a721a81c63887ddccb47.htm

缓存输出 ob_end_clean ob_start ob_get_length ob_get_contents函数

<?php
$s_fname = "93e.php";
$o_fname = "93e.htm";
ob_end_clean();
ob_start();
include($s_fname);
$length = ob_get_length();
$buffer = ob_get_contents();
$buffer = eregi_replace("r","",$buffer);
ob_end_clean();

$fp = fopen($o_fname,"w+");
fwrite($fp,$buffer);
fclose($fp);
?>


三个函数吧:"ob_start()、ob_end_clean()、ob_get_contents()"

ob_start():是打开缓冲区的,就是要把您需要生成的静态文件的内容缓存在这里;
ob_get_contents():是读出缓冲区里的内容,下面有代码为例;
ob_end_clean():这个比较重要,只有使用了这个函数后,缓冲区里的内容才会读取出来

更多详细内容请查看:http://www.111cn.net/phper/php-cy/35433.htm

文章告诉你如何利用php 正则表达式匹配中文汉字哦,下面我们主要讲利用preg_match mb_eregi来验证汉字,并且正则过程出现问题的解决方法。

preg_match("/[a-z]{3,14}/",$content,[可选]$a);这个返回布尔值,$a得到的是数组,把匹配到的字符防在$a;


正则汉字

echo (mb_eregi("[x80-xff].","中d文") ? "有" : "无") ."汉字";
echo (mb_eregi("^([x80-xff].)+$","中文") ? "全是汉字" : "");

看一判断全中文字符串函数

$str = "请问php中的eregi如何匹配汉字";
if (preg_match("/^[".chr(0x80)."-".chr(0xff)."]+$/",$str)) {
   echo "这是一个纯中文字符串";
} else{
   echo "这不是一个纯中文字串";
}

preg_match_all($pat,……)与preg_replace($pat,……)……

 

preg_match_all("/(汉字)+/ism","我是汉字,看你把我怎么着!",$m_a);


了各个编码的高位与低位的开始与结束,那么自然就可以写出正则,而且直接是十六位的,有啥困难?呵呵。不过要注意,在php里面,表示十六位是用的x。

所以如上,我们还可以用该正则表达式来判断是否是gb2312的汉字

<?php
$str = "小小子";
if(preg_match("/^[xb0-xf7][xa0-xfe]+$/",$str)){
print($str."确实全是汉字");
} else {
print($str."这个真tc不全是汉字");
}
?>

在很我的时候我们需要得到用户的真实IP地址,例如,日志记录,地理定位,将用户信息,网站数据分析等,其实获取IP地址很简单$_SERVER[\'REMOTE_ADDR\']就可以了。

//最简单的方法

$ip = $_server['remote_addr'];

//上面的方法只要使用了代理你就无法得到真实ip地址,下面有更详细的方法

echo "remote addr: " . $_server['remote_addr']."<br/>";
echo "x forward: " . $_server['http_x_forwarded_for']."<br/>";
echo "clien ip: " . $_server['http_client_ip']."<br/>";

//好了来看一个实例。

function getip() {   
 $ip = $_server['remote_addr'];    
 if (!empty($_server['http_client_ip'])) {       
  $ip = $_server['http_client_ip'];   
 } elseif (!empty($_server['http_x_forwarded_for'])) {       
  $ip = $_server['http_x_forwarded_for'];   
 }   
  return $ip;
}

/*
如果是是加密的代理是无法获取真实ip地址的。

[!--infotagslink--]

相关文章

  • php读取zip文件(删除文件,提取文件,增加文件)实例

    下面小编来给大家演示几个php操作zip文件的实例,我们可以读取zip包中指定文件与删除zip包中指定文件,下面来给大这介绍一下。 从zip压缩文件中提取文件 代...2016-11-25
  • 解决Pycharm的项目目录突然消失的问题

    今天小编就为大家分享一篇解决Pycharm的项目目录突然消失的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-04-22
  • 不打开网页直接查看网站的源代码

      有一种方法,可以不打开网站而直接查看到这个网站的源代码..   这样可以有效地防止误入恶意网站...   在浏览器地址栏输入:   view-source:http://...2016-09-20
  • php 调用goolge地图代码

    <?php require('path.inc.php'); header('content-Type: text/html; charset=utf-8'); $borough_id = intval($_GET['id']); if(!$borough_id){ echo ' ...2016-11-25
  • JS基于Mootools实现的个性菜单效果代码

    本文实例讲述了JS基于Mootools实现的个性菜单效果代码。分享给大家供大家参考,具体如下:这里演示基于Mootools做的带动画的垂直型菜单,是一个初学者写的,用来学习Mootools的使用有帮助,下载时请注意要将外部引用的mootools...2015-10-23
  • 删除条目时弹出的确认对话框

    复制代码 代码如下: <td> <a href="/member/life/edit_ppt/<?php echo $v->id;?>" class="btn">编辑</a> <a href="javascript:;" onclick="if(confirm('您确定删除这条记录?')){location.href='/member/life/d...2014-06-07
  • JS+CSS实现分类动态选择及移动功能效果代码

    本文实例讲述了JS+CSS实现分类动态选择及移动功能效果代码。分享给大家供大家参考,具体如下:这是一个类似选项卡功能的选择插件,与普通的TAb区别是加入了动画效果,多用于商品类网站,用作商品分类功能,不过其它网站也可以用,...2015-10-21
  • JS实现自定义简单网页软键盘效果代码

    本文实例讲述了JS实现自定义简单网页软键盘效果。分享给大家供大家参考,具体如下:这是一款自定义的简单点的网页软键盘,没有使用任何控件,仅是为了练习JavaScript编写水平,安全性方面没有过多考虑,有顾虑的可以不用,目的是学...2015-11-08
  • php 取除连续空格与换行代码

    php 取除连续空格与换行代码,这些我们都用到str_replace与正则函数 第一种: $content=str_replace("n","",$content); echo $content; 第二种: $content=preg_replac...2016-11-25
  • php简单用户登陆程序代码

    php简单用户登陆程序代码 这些教程很对初学者来讲是很有用的哦,这款就下面这一点点代码了哦。 <center> <p>&nbsp;</p> <p>&nbsp;</p> <form name="form1...2016-11-25
  • PHP实现清除wordpress里恶意代码

    公司一些wordpress网站由于下载的插件存在恶意代码,导致整个服务器所有网站PHP文件都存在恶意代码,就写了个简单的脚本清除。恶意代码示例...2015-10-23
  • JS实现双击屏幕滚动效果代码

    本文实例讲述了JS实现双击屏幕滚动效果代码。分享给大家供大家参考,具体如下:这里演示双击滚屏效果代码的实现方法,不知道有觉得有用处的没,现在网上还有很多还在用这个特效的呢,代码分享给大家吧。运行效果截图如下:在线演...2015-10-30
  • js识别uc浏览器的代码

    其实挺简单的就是if(navigator.userAgent.indexOf('UCBrowser') > -1) {alert("uc浏览器");}else{//不是uc浏览器执行的操作}如果想测试某个浏览器的特征可以通过如下方法获取JS获取浏览器信息 浏览器代码名称:navigator...2015-11-08
  • JS日期加减,日期运算代码

    一、日期减去天数等于第二个日期function cc(dd,dadd){//可以加上错误处理var a = new Date(dd)a = a.valueOf()a = a - dadd * 24 * 60 * 60 * 1000a = new Date(a)alert(a.getFullYear() + "年" + (a.getMonth() +...2015-11-08
  • C#路径,文件,目录及IO常见操作汇总

    这篇文章主要介绍了C#路径,文件,目录及IO常见操作,较为详细的分析并汇总了C#关于路径,文件,目录及IO常见操作,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • php跨网站请求伪造与防止伪造方法

    伪造跨站请求介绍伪造跨站请求比较难以防范,而且危害巨大,攻击者可以通过这种方式恶作剧,发spam信息,删除数据等等。...2013-10-01
  • PHP开发微信支付的代码分享

    微信支付,即便交了保证金,你还是处理测试阶段,不能正式发布。必须到你通过程序测试提交订单、发货通知等数据到微信的系统中,才能申请发布。然后,因为在微信中是通过JS方式调用API,必须在微信后台设置支付授权目录,而且要到...2014-05-31
  • PHP常用的小程序代码段

    本文实例讲述了PHP常用的小程序代码段。分享给大家供大家参考,具体如下:1.计算两个时间的相差几天$startdate=strtotime("2009-12-09");$enddate=strtotime("2009-12-05");上面的php时间日期函数strtotime已经把字符串...2015-11-24
  • php怎么用拼音 简单的php中文转拼音的实现代码

    小编分享了一段简单的php中文转拼音的实现代码,代码简单易懂,适合初学php的同学参考学习。 代码如下 复制代码 <?phpfunction Pinyin($_String...2017-07-06
  • Centos中彻底删除Mysql(rpm、yum安装的情况)

    我用的centos6,mysql让我整出了各种问题,我想重装一个全新的mysql,yum remove mysql-server mysql之后再install并不能得到一个干净的mysql,原来的/etc/my.cnf依然没变,datadir里面的数据已没有任何变化,手动删除/etc/my.cn...2015-03-15