php 小功能 (垃圾代码) 把中文 数字 替换成 阿拉伯数字

<?php
	$path = iconv('utf-8','gbk','D:/baiduyundownload/lampPHP/特'); //转换编码,因为是中文目录,反正无法识别
 	$dir = opendir($path);
 	while($filename=readdir($dir))
 	{
 		if(stripos($filename,'wmv')) //只有wmv文件 才替换
 		{
 			rep($filename);
 		}
 	}
 	closedir($dir); //释放资源
 	function rep($filename)
 	{
 		$arr = array('一','二','三','四','五','六','七','八','九','十');//因为此页面为utf-8所以数组中的元素也是utf-8格式
 		$oldName = $filename; //保存一下,注意 $filename 由 readdir获得,也是 gbk编码
 		$filename = iconv('gbk','utf-8',$filename);  //要与数组中的元素匹配 所以要转换格式
 		for ($i=0; $i <count($arr) ; $i++) { 
 			if(mb_strpos($filename,$arr[$i],0,'utf-8')!==false)
 			{
 				$filename = str_replace($arr[$i], $i+1, $filename); //将文件名称中的中文数字改变为阿拉伯数字,有一个问题就是‘十’的替换
 			}
 		}
 		//以下代码为 对替换 ‘十’ 的判断
 		$pos = mb_strpos($filename,'10',0,'utf-8');//获得 ‘10’的位置
 		if(is_numeric(mb_substr($filename,$pos-1,1,'utf-8'))&&is_numeric(mb_substr($filename,$pos+2,1,'utf-8')))
 		{
 			//二十三 => 2103 => 23
 			$filename = str_replace('10', '', $filename);//如果10 左右都为数字 则替换成空
 		}
 		else if(is_numeric(mb_substr($filename,$pos-1,1,'utf-8')))
 		{
 			//十三 => 103 => 13
 			$filename = str_replace('10', '0', $filename);//如果10 左边为数字 则替换成'0'
 		}
 		else if(is_numeric(mb_substr($filename,$pos+2,1,'utf-8')))
 		{
 			//二十 => 210 => 20
 			$filename = str_replace('10', '1', $filename);//如果10 右边为数字 则替换成'1'
 		}
 		//将文件名中的 ‘第’ 和 ‘集’字 去掉,还有空格替换成'.'
 		$filename = str_replace('第', '', str_replace('集', '', str_replace(' ', '.', $filename)));
 		$filename = iconv('utf-8','gbk',$filename); //一样的 要用 gbk编码,oldname 
 		$path = iconv('utf-8','gbk','D:/baiduyundownload/lampPHP/特'); //因为实在函数中,还有弄一下 path
 		rename($path.'/'.$oldName, $path.'/'.$filename); //替换文件名
 	}
?>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值