删除文本文件php中的特定字符

时间:2013-05-24 09:44:50

标签: php preg-replace text-files special-characters comma

我有这样的文字:

 # 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);
}

2 个答案:

答案 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);
}