易截截图软件、单文件、免安装、纯绿色、仅160KB

PHP,替换多个文件中的文本

需求:
    需要对两个目录中的文件内容进行查找替换,两个目录查找替换的内容不一样。
    实现中注意几点:
    (1)函数递归调用,来检索子目录;
    (2)函数名可以以参数形式传递;
    (3)用?进行非贪婪匹配;
    (4)每行匹配查找、整个文件内容匹配查找
<?php
//loopdir('dir1', 'repfile1');
loopdir('dir2', 'repfile2');
function loopdir($dir, $fun){
$dp = opendir($dir);
chdir($dir);
readdir($dp); //排除当前目录 "."
readdir($dp); //排除上层目录 "."
while( $v = readdir($dp) ){
if( is_dir($v) ) loopdir($v, $fun);
else $fun($v);
echo $v."<br>";
}
chdir("..");
}
function repfile1($filename){
$content = file_get_contents($filename);
if( empty($content) ){
echo "can't open file to read: ".$filename;
return ;
}

//加?号是进行非贪婪匹配,以免匹配的块太大
$content = preg_replace('/if \(!validateEmail\((.*?)"Email address is not valid(.*?})/s',
'if (!validateEmail(\\1"Email address is not valid\\2else if (!isNyhEmail(\\1"Can not add NYH email addresses.\\2',
$content);
writenewfile($filename, $content);
}
function repfile4615($filename){
$fpr = fopen($filename, 'r');
if( empty($fpr) ){
echo "can't open file to read: ".$filename;
return ;
}

$newContent = '';
while( $line = fgets($fpr) ){
$line = preg_replace('/^(.*)\$var_kitchen_dishwasher = "kitchen".\$kitchen_ind."_dishwasher";/s',
'\\1$var_kitchen_dishwasher = "kitchen".\$kitchen_ind."_dishwasher";
\\1$var_kitchen_oven = "kitchen".$kitchen_ind."_oven";
\\1$var_kitchen_fridge = "kitchen".$kitchen_ind."_fridge";', $line);
$newContent .= $line;
}
fclose($fpr);
writenewfile($filename, $newContent);
}
function writenewfile($filename, $content){
$fpw = fopen($filename, 'w');
if( empty($fpw) ){
echo "can't open file to write: ".$filename;
return ;
}
fwrite($fpw, $content);
fclose($fpw);
}
?>


相关文档:

PHP码农进化史3

Mysql自身学习
1.数据库常用的字段类型:
整数型: TINYINT(0-255字段), SMALLINT(大点), INT(更长), BIGINT;
小数型: FLOAT, BOUBLE, DECIMAL(M(整数),D(小数));
字符型: CHAR(固定), VARCHAR(弹性字符型,减缓容量);(最长字符为255)
日期型: DATETIME(日期时间), DATE(日期), TIMESTAMP(日期转化为数字.精度 ......

PHP码农进化史4


1.echo();2.print();3.die();4.printf();5.sprintf();6.print_r;7.var_dump();
1.echo()
输出多个字符串,可以多个参数,不需要圆括号,无返回值。
2.print()
只能输出一样东西,需要圆括号,有返回值,执行失败是返回flase.
3.die()
输出内容,停止程序。*多用于数据库的链接时,检验是否出错。
4.printf()
prin ......

php留言板

 1,设计一个程序的流程
设计流程:
功能需要->页面设计->数据库设计->代码设计->调试发布.
开始程序->初始化->条件->结束;
2.heml表单标签的使用:
<form action = "" method = "get">
<input type="test" size=10 name="user"/>
<input type="test" size=10 name="title"& ......

PHP初学之防水计数器

  这是我写的第一个计数器
<?
$s_ht="127.0.0.1";
$s_user="root";
$s_pas="123456";
$s_data="ceshi";
if (empty($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$myip = $_SERVER['REMOTE_ADDR'];
$myip = $_SERVER['REMOTE_ADDR'];
}
else {
$myip = explode(',', $_SERVER['HTTP_X_FORWA ......

php小笔记


<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:SimSun;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"\@宋体" ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号