文件批量处理

lrenwang , 2010/04/12 17:07 , Php , 评论(0) , 阅读(2230) , Via 本站原创

今天研究php的jpgraph, 发现 src/Examples/下面所有的例子全部存在路径错误
require_once ('jpgraph/jpgraph.php');
require_once ('jpgraph/jpgraph_line.php');
应该是
require_once ('../jpgraph.php');
require_once ('../jpgraph_line.php');

一共473个文件,悲剧阿,zend没有批量处理功能,dw我又懒得安装,还是写段php程序吧 - -!
src/Examples/rename.php
<?php
$handl = opendir('./');
while (false!==($name=readdir($handl)))
{
  if (substr($name,-3)=='php')
  {
    $con = file_get_contents($name);
    $con = str_replace("require_once ('jpgraph/jpgrap","require_once ('../jpgrap",$con);
    file_put_contents($name,$con);
  }
}

?>


类似的代码会经常用到, 比如扒别人网站样式的时候,比如a[1].gif 需要去掉"[1]"
这个功能稍微改进下就行了
<?php
$handl = opendir('./');
while (false!==($name=readdir($handl)))
{
  if (is_file($name) && stristr($name,'[1]'))
  {
    $newname = str_replace('[1]','',$name);
    rename($name,$newname );
  }
}

?>


一个非常牛的截取字符串函数

lrenwang , 2010/04/12 16:33 , Php , 评论(0) , 阅读(2744) , Via 本站原创
读取每隔字符, 比如汉字宽度是2,那么正常字母是1, 如果是"1" 宽度为0.5 如果是"w" 宽度为2
string_cat($sourcestr,$cutlength)
所以, $cutlength 其实可以说是伪长度, 只要设定为20,不管字符串是100个数字1还是100个汉字,长度相等


/**
* 字符串截取函数
*
* @param string $sourcestr  字符串
* @param int $cutlength     截取长度
* @return string            返回字符串
* @author lrenwang
*/
function string_cat($sourcestr,$cutlength)
{
  $returnstr='';

  $i=0;

  $n=0;

  $str_length= strlen($sourcestr);//字符串的字节数

  $end = $cutlength * 2;

  while (($n<$end) and ($i<=$str_length))
  {
    $temp_str=substr($sourcestr,$i,1);
    $ascnum=Ord($temp_str);//得到字符串中第$i位字符的ascii码
    if ($ascnum>=224) //如果ASCII位高与224,
    {
      $returnstr=$returnstr.substr($sourcestr,$i,3); //根据UTF-8编码规范,将3个连续的字符计为单个字符
      $i=$i+3; //实际Byte计为3
      $n = $n+2; //字串长度计1
    }
    elseif ($ascnum>=192) //如果ASCII位高与192,
    {
      $returnstr=$returnstr.substr($sourcestr,$i,2); //根据UTF-8编码规范,将2个连续的字符计为单个字符
      $i=$i+2; //实际Byte计为2
      $n = $n +2; //字串长度计1
    }
    elseif ($ascnum>=65 && $ascnum<=90) //如果是大写字母,
    {
      $returnstr=$returnstr.substr($sourcestr,$i,1);
      $i=$i+1; //实际的Byte数仍计1个
      if ($ascnum==87)
      {
        $n = $n + 2;
      }
      else
      {
        $n = $n + 1.5; //但考虑整体美观,大写字母计成一个高位字符
      }

    }

    else //其他情况下,包括小写字母和半角标点符号,
    {
      $returnstr=$returnstr.substr($sourcestr,$i,1);
      $i=$i+1; //实际的Byte数计1个
      if ($ascnum == 119) //如果是几个特殊字 w
      {
        $n = $n + 1.5;
      }
      else
      {
        $n = $n + 1; //小写字母和半角标点等与半个高位字符宽...
      }

    }
  }

  if ($str_length>$i){
    $returnstr = $returnstr . "...";//超过长度时在尾处加上省略号
  }
  return $returnstr;

}


echo string_cat('测试截取长度,这个长度够了',10).'<br>';
echo string_cat(‘123456数字字母混合78900---666’,10);

?>


JS随机数

lrenwang , 2010/04/12 16:27 , Javascript , 评论(0) , 阅读(3038) , Via 本站原创

<script>
function rand(n)
{
  var str = '';
  for(var i=0;i<n;i++)
  {
    str += Math.floor(Math.random()*10)

  }
  return str
}
alert(rand(7))
</script>

最新更新 2011-07-28  http://blog.lrenwang.com/lnmp_v2/

主要参照了 http://blog.s135.com/nginx_php_v6/
在此,对张宴表示由衷的感谢 !!

vps系统CentOS5.2
添加一个常用帐号
VPS所在地 量子数据 http://www.qdata.com.cn
useradd lrenwang
passwd lrenwang



一 安装准备
关闭防火墙
service iptables stop

关闭 SELINUX, cp 命令直接覆盖,不需要提示
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux
setenforce 0
sed -i "s/alias cp='cp -i'/#alias cp='cp -i'/g" ~/.bashrc
su -

我下载的软件都放到 /home/lrenwang/soft
mkdir /home/lrenwang/soft/ver1 -p
cd /home/lrenwang/soft

配置yum
wget http://blog.lrenwang.com/down/CentOS-Base.repo
cp   CentOS-Base.repo  /etc/yum.repos.d/

卸载httpd(rmp -q httpd 查看是否安装)
yum remove -y httpd

更新所需的安装包
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers vsftpd patch zip

Tags: , , ,
分页: 49/49 第一页 上页 44 45 46 47 48 49 最后页 [ 显示模式: 摘要 | 列表 ]