我有这样的文字:
# GEMEL
Eclipse: ,frank,jean
accueil: ,eclipse,alex
accueil: eclipse,truc
我想删除,
前面的frank or eclipse
,它可以是任何字词。
我的想法是检查Eclipse:或者accueil之前是否有逗号:如果有一个逗号,那么我们只删除逗号:
# GEMEL
Eclipse: frank,jean
accueil: eclipse,alex
accueil: eclipse,truc
但是,如果她存在,我们怎么能删除一个commat?
我创建了一行:
if($fd = file($filename)){
//1- on recupere les données transmise
$data = fgets(STDIN);
$chaine2 = explode(",", $data);
$chaine = $chaine2[0];
$user = ",".$chaine2[1]."\n";
//var_dump($fd);
foreach ($fd as $key => $value) {
if(preg_match('/'.$chaine.'/', $value)){
$fd[$key] = rtrim($value, "\n\r").$user;
}
}
file_put_contents($filename, $fd);
}
答案 0 :(得分:4)
$data = file_get_contents($filename);
$data = preg_replace('/(:\s*),/', '$1', $data);
file_put_contents($filename, $data);
正则表达式匹配从:
到,
的所有内容。带括号的组与逗号之前的部分匹配。因此我们将其替换为$
,以便我们保留除逗号之外的所有内容。
答案 1 :(得分:0)
if ($fd = file($filename)) {
foreach ($fd as $key => $value) {
$fd[$key] = preg_replace('/(\s+),/', '$1', $value));
}
file_put_contents($filename, $fd);
}