Radera från textfil

PHP

2 svar · 498 visningar · startad av K@llen

Medlem sedan mars 20032 667 inlägg
Trådstart#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

287 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
142 ms — deklarationer (db)
0 ms — hämta statistik (cache)
140 ms — hämta tråd, inlägg och bilagor (db)
144 ms — ändringar (db)