webForumDet fria alternativet

Radera från textfil

PHP

2 svar · 495 visningar · startad av K@llen

Medlem sedan mars 20032 667 inlägg
Frågan#1

Hej,

Har mest jobbat med databaser och är inte så bra på filhantering i PHP. Ponera att jag har följande innehåll i en fil:

aaaaa|bbbbb|ccccc|ddddd|
ggggg|hhhhh|iiiii|jjjjjj|

Detta vill jag göra:
1. Kolla om det finns en rad med ett visst innehåll i andra kolumnen.
2. Om jag har värdet "bbbbb" i en variabel, så vill jag ta bort den rad där värdet matchar värdet i andra kolumnen.

Tacksam för hjälp!

mvh Jörgen

PS. Hade jag själv fått bestämma hade jag använt en databas. ;)

Medlem sedan juni 20014 421 inlägg
#2

Hmm, det finns olika sätt att lösa det på...du kan anitngen läsa in allt på en gång och typ matcha mot ett regexp. Eller läsa rad för rad och sedan skriva om filen. Här är ett exempel på det senare, otestat...

$clause="bbbb";
$new_cont="";
$handle = @fopen("filen", "r");
if ($handle) {
    while (!feof($handle)) {
        $buffer=fgets($handle);
        if (!check_exist($buffer,$clause)) {
         $new_cont.=$buffer;
       }
    }
    fclose($handle);
}

$handle = @fopen("filen", "w+");

if ($handle) {
fwrite($handle,$new_cont);
fclose($handle);
}

function check_exist($haystack,$needle) {
list(,$val)=split("|",$haystack,2);
return ($val===$needle);
}
Medlem sedan mars 20032 667 inlägg
#3

Tack! Ska kolla på din lösning inom kort. :D

268 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)