关于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”这一行 就删掉 具体应该怎么做还请各位高手指教 最后写出代码哦谢谢了
...全文
977 点赞 收藏 17
写回复
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
ijustdoit168 2009-11-09
多谢了!
回复
谢谢各位了
回复
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));
回复
问题是怎么查找呀就是这个问题比较郁闷
弄用数组吗?
还请LS详解
回复
tfxg 2009-07-24
可以用fopen打開查找,如果有就重寫文件的數據了
回复
发动态
发帖子
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
社区公告
暂无公告