php 进入命令行交互,PHP与命令行交互(实现查找和替换)

// Ask for Input

fwrite(STDOUT, "Please Select Option(Default is Find) [1]Find [2]Replace Please Input Number: ");

// Get Input

$todo = trim(fgets(STDIN));

if(empty($todo)) $todo =1;

if($todo != 1 && $todo !=2){

echo "Selected Error! ";

exit;

}

if($todo==1){

fwrite(STDOUT,"Please Input Find Directory(Default is Current Directory):");

$dir = trim(fgets(STDIN));

if(empty($dir)){

$dir = getcwd();//当前目录

}else{

if(!is_dir($dir)){

echo "Directory Not Exist! ";

exit;

}

}

fwrite(STDOUT,"Please Input Content of the Find:");

$search = trim(fgets(STDIN));

echo "In Directory'".$dir."'Find'".$search."',Please Wait... ";

exec("find ".$dir." -exec grep --exclude='*.svn/*' -- '".$search."' {} ",$output);

foreach($output as $val){

echo "$val ";

}

}else{// write input back

fwrite(STDOUT, "Please Input Find Directory(Default is Current Directory):");

$dir = trim(fgets(STDIN));

if(empty($dir)){

$dir = getcwd();//当前目录

}else{

if(!is_dir($dir)){

echo "Directory Not Exist! ";

exit;

}

}

fwrite(STDOUT,"Please Input Prefix(Default is php):");

$ext = trim(fgets(STDIN));

if(empty($ext)) $ext = 'php';

fwrite(STDOUT,"Please Input Find Content:");

$search = trim(fgets(STDIN));

fwrite(STDOUT,"Please Input Replace Content:");

$replace = trim(fgets(STDIN));

echo "正在目录'".$dir."'查找后缀为'".$ext."'的文件,将内容'".$search."'替换为'".$replace."',请稍后... ";

exec("find ".$dir." -name '*.".$ext."'  -exec sed --in-place 's/".$search."/$replace/g' {} ;");

echo "Replace Completed! ";

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值