PHP 批量修改文件名/文件后缀名(扩展名)

 更新时间:2016年11月25日 15:46  点击:2147
今天我有几千个文件要一次修改文件或把后缀名给改了,但是我要手工一个个去改,不得改几天后来想到一个办法,利用php写一个量修改文件名/文件后缀名程序,一下就实现了,下面来看看方法。

几个关键的函数。

is_dir($dirname)      //判断一个文件名是否 为目录
opendir($dirname)      //打开一个文件夹
readdir($dir_stream)   //函数返回由 opendir() 打开的目录句柄中的条目
pathinfo($path)        //函数以数组的形式返回文件路径的信息。
例如当前文件夹下的P1010436


例如当前文件夹下的P1010436.jpg文件路径信息数组:

Array
(
    [dirname] => .
    [basename] => P1010436.jpg
    [extension] => jpg
    [filename] => P1010436
)
rename(oldname,newname,context) //函数重命名文件或目录。若成功,则该函数返回 true。若失败,则返回 false。

 代码如下 复制代码

 

<?php
function fileRename($dir,$srcExtension,$desExtension){
 if(!is_dir($dir)){
  echo "{$dir}不是一个有效的目录!n";
  exit();  
  }
 $handler = opendir($dir);
 //列出$dir目录中的所有文件
 while(($fileName = readdir($handler))!=false){
  if($fileName!='.'&&$fileName!='..'){
   //'.' 和 '..'是分别指向当前目录和上级目录
   $curDir = $dir.'/'.$fileName;
   if(is_dir($curDir)){
    //如果是目录,则递归下去
    fileRename($curDir,$srcExtension,$desExtension);
    }
    else{
     //获取文件路径的信息
     $path = pathinfo($curDir);
     //print_r($path);
     if($path['extension']==$srcExtension){  
      $newname = $path['dirname'].'/'
      .$path['filename'].".".$desExtension;
      rename($curDir,$newname);   
      echo $curDir.'-->'.$newname."n";   
      }
     }
   }
  }
 }
fileRename(".","JPG","jpg");
?>


使用方法很简单,我们把图片与php文件同一目录然后再运行php即可。

获取客户端IP地址我们最简单的办法就是直接使用REMOTE_ADDR但这种如果有代理IP就无法获取了,所以我们要使用HTTP_X_FORWARDED_FOR来获取,下面我来给大家介绍一个获取IP地址函数

最简单的做法

 代码如下 复制代码


function getRealIpAddr()
{
  if (!emptyempty($_SERVER['HTTP_CLIENT_IP']))
  {
    $ip=$_SERVER['HTTP_CLIENT_IP'];
  }
  elseif (!emptyempty($_SERVER['HTTP_X_FORWARDED_FOR']))
  //to check ip is pass from proxy
  {
    $ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
  }
  else
  {
    $ip=$_SERVER['REMOTE_ADDR'];
  }
  return $ip;
}


这个我自己写的

 

 代码如下 复制代码
<?php
if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
  $onlineip = getenv('HTTP_CLIENT_IP');
 } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
  $onlineip = getenv('HTTP_X_FORWARDED_FOR');
 } elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
  $onlineip = getenv('REMOTE_ADDR');
 } elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
  $onlineip = $_SERVER['REMOTE_ADDR'];
 }
echo $onlineip;
?>

但感觉不怎么样,后来百度找到了一个

实例

 代码如下 复制代码

function real_ip() {
 static $realip = NULL;

 if ($realip !== NULL)  {
  return $realip;
 }

 if (isset($_SERVER)) {
  if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
   $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);

   /* 取X-Forwarded-For中第一个非unknown的有效IP字符串 */
   foreach ($arr AS $ip) {
    $ip = trim($ip);

    if ($ip != 'unknown') {
     $realip = $ip;
     break;
    }
   }
  } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
   $realip = $_SERVER['HTTP_CLIENT_IP'];
  } else {
   if (isset($_SERVER['REMOTE_ADDR'])) {
    $realip = $_SERVER['REMOTE_ADDR'];
   } else {
    $realip = '0.0.0.0';
   }
  }
 } else {
  if (getenv('HTTP_X_FORWARDED_FOR')) {
   $realip = getenv('HTTP_X_FORWARDED_FOR');
  } elseif (getenv('HTTP_CLIENT_IP')) {
   $realip = getenv('HTTP_CLIENT_IP');
  } else {
   $realip = getenv('REMOTE_ADDR');
  }
 }

 preg_match("/[d.]{7,15}/", $realip, $onlineip);
 $realip = !empty($onlineip[0]) ? $onlineip[0] : '0.0.0.0';

 return $realip;
}

在php中我们经常会使用各种编辑器,下面我来介绍在PHP网页中Ewebeditor编辑器嵌入代码,各位同学可参考。

下载“Ewebeditor”PHP编辑器。
1在 </head> 之前加上下面一段代码:(得到 ewebeditor 中编辑的内容)

 代码如下 复制代码

<script>
function checkForm()
{
document.form1.content .value = window.ewebeditor .getHTML();
************getHTML() 获得编辑区内容
************ 此处的名字 ewebeditor 要与 iframe 中的 name="ewebeditor" 相同
************content.value 也要与 content 中的 <input > 中相对应
}
</script>

(2)下面一段代码是把 ewebeditor 嵌入到网页中:
 

 代码如下 复制代码
<input type="hidden" name="content" id="content" value ="">
**********id="content" 中的 content 要与 <iframe> 中的 id=content 相同!
<iframe id="ewebeditor" name="ewebeditor" src="ewebeditor/ewebeditor.php?id=content " frameborder="0" scrolling="no" width="100%" HEIGHT="450">
</iframe>
本文章来给大家介绍一下关于Simple HTML Dom解析器的使用方法详解,有需要了解的同学不防进入参考。

 

1. 开始使用

首先下载解压缩,然后将simple_html_dom.php文件包含进要编写的脚本文件中,加载要处理的html,支持三种模式的html加载,分别是『从url中加载,从字符串中加载,从文件中加载』。

 代码如下 复制代码

<?php
require_once('simple_html_dom.php');
//从url加载
$html = file_get_html('http://www.111cn.net');
//从字符串加载
$html = str_get_html('<html><body>Hello World!</body></html>');
//从文件中加载
$html = file_get_html('example.htm');
从字符串加载网上文件需要先从网络下下载,使用cURL比较好一些,需要在php配置文件中打开php扩展php_curl。

$url = 'http://www.111cn.net';
$ci = curl_init();
curl_setopt($ci,CURLOPT_URL,$url);
curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ci, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ci, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);

2. 查找html元素
使用find函数查找,返回包含对象的数组,常见的查找如下。

 代码如下 复制代码
//查找超链接元素
$alink = $html->find('a');
//查找第n个连接元素
$alink = $html->find('a',5);
//查找id为main的div
$mainDiv = $html->find('div[id=main]');
//查找所有定义了id的div
$idDiv = $html->find('div[id]');
//查找所有定义了id的元素
$idAll = $html->find('[id]');
//查找样式类为info的元素
$classInfo = $html->find('.info');
//支持嵌套子元素查找
$ret = $html->find('ul li');
//查找多个html元素
$ret = $html->find('a,img,p');
//....

3. 其他
可以使用内置的函数来进行元素的定位,返回父元素parent,返回子元素数组children,返回第一个子元素first_child,返回最后一个子元素last_child,返回前一个相邻元素prev_sibling,返回后一个相邻元素next_sibling等。

提供简单的正则表达式来过滤属性选择器,类似于[attribute]的格式。

每个对象都有4个基本属性:
tag — 返回html标签名
innertext — 返回innerHTML
outertext — 返回outerHTML
plaintext — 返回HTML标签中的文本

返回元素属性值

//返回$alink的href值
$link = $alink->href;
通过设置元素的属性值可以对元素进行添加、修改、删除操作。

 代码如下 复制代码

//删除url连接
$alink->href = null;
//元素的修改
$ret->outertext = '<div class="nav">' . $ret->outertext . '</div>';
$ret->outertext = '';
$ret->outertext = $ret->outertext . '<div>other</div>';
$ret->outertext = '<div>Welcome</div>' . $ret->outertext;
-EOF-

在phpmyadmin中密码设置分为三种模式,分别为:cookie授权模式 、config授权模式、http授权模式,下面我来介绍这三种模式的配置方法。


phpmyadmin大家可以官方下载,然后再在目录中修改config.cfg.php

一、使用cookie授权模式

将'auth_type'改为'cookie',然后修改'blowfish_secret'用一个任意字符串作为cookie的加密字符串,如果没有加密钥匙,系统会显示"配置文件现在需要绝密的短语密码(blowfish_secret) " ,配置文件如下:

$cfg['Servers'][$i]['auth_type'] = 'cookie';

$cfg['blowfish_secret'] = '44e2f5aece2855.93921574';

修改完毕后,登录窗口入下

http授权模式的web登陆页面

二、使用config授权模式

config需要这几个参数:

$cfg['Servers'][$i]['auth_type'] = 'config'; //授权模式

$cfg['Servers'][$i]['user'] = 'root'; //mysql登陆用户

$cfg['Servers'][$i]['password'] = '12345'; //mysql登陆用户密码

三、用http授权模式

$cfg['Servers'][$i]['auth_type'] = 'http';

http授权模式的登陆窗口

注意事项:如果mysql服务器端采用了4.1以上版本,而客户端连接用的是mysql4.1一下版本,对用户设置密码时注意使用OLD_PASSWORD函数,举例:

mysql > SET PASSWORD = OLD_PASSWORD('12345')

mysql > /G

phpmyadmin密码忘了怎么办


1、关闭mysql服务

# service mysql stop


如果提示mysql: unrecognized service这样的错误提示。

先查看查找mysql.server,使用:find / -name "mysql.server"


再使用/usr/local/mysql/share/mysql/mysql.server stop命令关闭mysql。


2、 安全模式启动mysql跳过授权表

先查看mysqld_safe程序,可以使用find / -name "mysqld_safe"命令来查找,默认都是在mysql安装目录下。

 #find / -name "mysqld_safe"


安全模式启动mysql跳过授权表


3、使用root账户登陆mysql修改密码重新授权

新建立一个连接登陆云服务器


1)先输入mysql -u root命令登陆mysql

2)在输入update mysql.user set password=PASSWORD('123456789') where User='root'; 更新mysql密码为:123456789

3)quit 退出mysql

4、重启mysql服务


1)killall mysqld 结束所有mysql进程

2)service mysql start 启动mysql

3)mysql -u root –p 回车,提示输入密码,则为您刚刚重置的mysql密码。

[!--infotagslink--]

相关文章

  • C#文件后缀名的详细介绍

    这篇文章详细介绍了C#文件后缀名,有需要的朋友可以参考一下...2020-06-25
  • 使用phpMyAdmin批量修改Mysql数据表前缀的方法

    多个网站共用一个Mysql数据库时,为使数据库管理不混乱,一般采用不同的网站使用不同前缀名的方式进行区分。而如何批量修改已有数据库的前缀名呢?全部导出修改后再导入?还是一个表一个表的修改?今天我要介绍的是相对简单的...2015-10-21
  • php中获取文件后缀名多种方法

    以前我都讲过了很多关于获取文件后缀名的方法,今天我们再次总结一下关于利用不同种函数来取得,有需要的朋友可以参考一下 一,php explode函数,函数用法参考 http://...2016-11-25
  • php批量修改文件名程序

    提供二款利用遍历批量修改文件的文件名的php代码,有需要的朋友可以参考一下。 实例一 代码如下 复制代码 <?php //利用PHP目录和文件函数遍...2016-11-25
  • PHP 批量修改文件名/文件后缀名(扩展名)

    今天我有几千个文件要一次修改文件或把后缀名给改了,但是我要手工一个个去改,不得改几天后来想到一个办法,利用php写一个量修改文件名/文件后缀名程序,一下就实现了,下面来...2016-11-25
  • photoshop批量修改图片大小方法分享

    今天小编在这里就来给各位photoshop的这一款软件的使用者们来说一说批量修改图片大小的方法,各位想知道具体方法的使用者们,那么各位就快来跟着小编一起看看方法吧。 ...2016-09-14
  • photoshop批量修改文件名经验技巧

    今天小编在这里就来给photoshop的这一款软件的使用者们来说说批量修改文件名的经验技巧,各位想知道的使用者,那么下面就快来跟着小编一起看一看吧。 给各位photosh...2016-09-14
  • php取得文件后缀名方法

    下面举出了三种获取文件缀名方法代码有需要的朋友可以参考一下。 <?php教程 //方法一: function extend_1($file_name) { $retval=""; $pt=strrpos($file_n...2016-11-25
  • php获取文件后缀名的几种方法

    后缀名指的是文件拓展名了,我们在php中可以通过许多的方法来获得了,下面一起来看小编整理的一些例子吧。 获取文件后缀的方法有很多种,差不多能总结出7,8种,原理基本...2016-11-25
  • php批量修改文件扩展名的代码

    提供一个实例的php自定义函数,这是一个可以批量修改文件后缀名的php程序,有需要的朋友可以参考一下。 代码如下 复制代码 <?php function...2016-11-25
  • 美图看看批量修改图片尺寸方法分享

    今天小编在这里就来给美图秀秀的这一款软件的使用者们来说一下批量修改图片尺寸的方法,各位想知道具体处理方法的使用者们,那么下面就快来跟着小编一起看一看教程吧。 ...2016-09-14
  • PHP批量修改静态html文件编码的例子

    一堆的文件编码都是ANSI的,本来想用linux shell批量修改文件编码,却不太熟悉,写了个PHP脚本批量修改html文件的编码 代码如下 复制代码 <?php...2016-11-25
  • 使用R语言批量修改文件名的方法

    这篇文章主要介绍了使用R语言批量修改文件名的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-05-06
  • PHP chmod函数与批量修改文件目录权限

    chmod() 函数改变文件模式。chmod — Changes file mode如果成功则返回 TRUE,否则返回 FALSE,哈哈,我们不只是讲chmod简单语法,而且还做了复杂的关于chmod使用实例 ...2016-11-25
  • php中一行代码获取文件后缀名

    php中一行代码获取文件后缀名的方法要结合很多的函数了,我们这个有点像asp中的函数了,下面来一起看看吧。 实例: 代码如下 复制代码 $filenam...2016-11-25
  • php获取文件后缀的9种方法

    这篇文章主要为大家详细介绍了php获取文件后缀的9种方法,有一定的实用价值,感兴趣的小伙伴们可以参考一下...2016-03-27
  • php获取上传文件类型 获取文件后缀

    本教程提供了三款获取上传文件与图片类型的方法,方法也是很简单的前二种,是先把类型定义好,再用in_array判断,最后一步是利用了fopen再读取前二个字节,判断。 ...2016-11-25
  • php批量修改表结构实例

    下面小编就为大家带来一篇php批量修改表结构实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2017-05-26
  • 修改服务器配置 让asp.net文件后缀名随心所欲

    asp或php的方法对.net就不行了,同样的办法,修改应用程序映射后,仍然没有得到预期的结果,文件什么内容,返回的就是什么内容,而不是当作asp.net程序来处理了...2016-01-27
  • php 批量修改RAR文件注释代码(1/2)

    从当前文件夹添加全部 *.hlp 文件到压缩文件 help.rar 中 winrar a help *.hlp 从文件添加注释可以使用 -z<文件> 开关。 winrar c -zinfo.txt dummy 这样,我们就可以...2016-11-25