关于php删除文件内容的某一行的问题

zuoshoubingliangmm 2009-07-24 05:06:31
小弟想问下关于linux /etc/fstab 里删除某一行的问题:

LABEL=/ / ext3 defaults 1 1
LABEL=/home /home ext3 defaults 1 2
LABEL=/swap /swap ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
UUID=11111111 /disk2 ext3 defaults 0 0
UUID=22222222 /disk3 ext3 defaults 0 0
UUID=33333333 /disk4 ext3 defaults 0 0

上面是fstab的内容
小弟想 让当UUID=22222222 的时候 然后就到fstab里面去匹配 如果有“UUID=22222222 /disk3 ext3 defaults 0 0”这一行 就删掉 具体应该怎么做还请各位高手指教 最后写出代码哦谢谢了
...全文
1042 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
ijustdoit168 2009-11-09
  • 打赏
  • 举报
回复
多谢了!
zuoshoubingliangmm 2009-07-27
  • 打赏
  • 举报
回复
谢谢各位了
mrshelly 2009-07-26
  • 打赏
  • 举报
回复
^UUID={$uuid}.*?\n$
fenyao 2009-07-25
  • 打赏
  • 举报
回复
^_^
骄傲青蛙 2009-07-25
  • 打赏
  • 举报
回复
12楼那个有时会出错, 不知什么原因, 下面这个更好



function file_modify($search_contents, $replace_contents, $filename)
{
$fp = file_get_contents($filename);
$new_fp = str_replace($search_contents, $replace_contents, $fp);
file_put_contents($filename, $new_fp);
}

//使用如下
file_modify('UUID=22222222'', '', '/etc/fstab');


ruanchao 2009-07-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jakey9826 的回复:]
先读文件,然后删除了以后再写文件.
PHP code$file=file("/etc/fstab");foreach($fileas$key=>$value)
{if(strpos($value,'UUID=22222222')!==FALSE))
{unset($file[$key]);
}
}file_put_contents('/etc/fstab',implode("\n",$file));
[/Quote]

不知道楼主是否尝试过这种方法?
hekeyphp 2009-07-25
  • 打赏
  • 举报
回复
确实不错。
骄傲青蛙 2009-07-25
  • 打赏
  • 举报
回复

//这是我自己写的

$fp = file_get_contents('/etc/fstab'); //取出

$fp = strtr($fp, 'UUID=22222222', ''); //删除

file_put_contents('/etc/fstab', $fp); //写入


骄傲青蛙 2009-07-25
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jakey9826 的回复:]
先读文件,然后删除了以后再写文件.
PHP code$file=file("/etc/fstab");foreach($fileas$key=>$value)
{if(strpos($value,'UUID=22222222')!==FALSE))
{ unset($file[$key]); //$file[$key] = '';
}
}file_put_contents('/etc/fstab',implode("\n",$file));
[/Quote]

改了下
kojie_chen 2009-07-25
  • 打赏
  • 举报
回复
顶下,学习下
Ricky_Bobo 2009-07-25
  • 打赏
  • 举报
回复
在这里受益了~
YHL27 2009-07-24
  • 打赏
  • 举报
回复
好!
程序猿之殇 2009-07-24
  • 打赏
  • 举报
回复
phpboy最近好长时间不见人呀.
phpboy 2009-07-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jakey9826 的回复:]
先读文件,然后删除了以后再写文件.
PHP code$file=file("/etc/fstab");
foreach($fileas$key=>$value)
{
if(strpos($value,'UUID=22222222')!==FALSE)){
unset($file[$key]);
}
}
file_put_contents('/etc/fstab',implode("\n",$file));
[/Quote]

写的很好啊
程序猿之殇 2009-07-24
  • 打赏
  • 举报
回复
先读文件,然后删除了以后再写文件.

$file = file("/etc/fstab");
foreach($file as $key=>$value)
{
if(strpos($value, 'UUID=22222222') !== FALSE))
{
unset($file[$key]);
}
}
file_put_contents('/etc/fstab', implode("\n", $file));
zuoshoubingliangmm 2009-07-24
  • 打赏
  • 举报
回复
问题是怎么查找呀就是这个问题比较郁闷
弄用数组吗?
还请LS详解
tfxg 2009-07-24
  • 打赏
  • 举报
回复
可以用fopen打開查找,如果有就重寫文件的數據了

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧