Sterge in fisier linie care contine cuvant din baza de date
-
- Mesaje: 117
Sterge in fisier linie care contine cuvant din baza de date
Salut, se poate cauta intr-un fisier un nume dintr-o baza de date ? Iar daca il gaseste sa stearga linia respectiva
MarPlo
Mesaje: 4343
Salut
Poti sa folosesti functia containsWord() din acest exemplu ca sa verifici data un cuvant exista intr-un sir:
Iar cu file_get_contents() poti sa preiei intr-un sir continutul unui fisier:
Nu stiu ce linie sa stearga, din fisier sau din tabelul mysql.
Daca e din tabelul mysql, cand faci Select-ul pt cuvant, iei si id-ul lui din tabel (daca are coloana pt id), apoi se aplica Delete cu acel id.
Poti sa folosesti functia containsWord() din acest exemplu ca sa verifici data un cuvant exista intr-un sir:
Cod: Selectaţi tot
//returns True if the $word exists in $str, otherwise, False
function containsWord($str, $word){
return !!preg_match('#\b' . preg_quote($word, '#') . '\b#i', $str);
}
$str ='String to test if the word "check" exists in this string';
$word ='Check';
if(containsWord($str, $word)) echo 'word found';
else echo 'word not in string';
Cod: Selectaţi tot
$str = file_get_contents('adresa/fisier.ext');
Daca e din tabelul mysql, cand faci Select-ul pt cuvant, iei si id-ul lui din tabel (daca are coloana pt id), apoi se aplica Delete cu acel id.
Cod: Selectaţi tot
DELETE FROM nume_tabel WHERE id = $id
Stefan
Mesaje: 117
Sa stearga linia pe care se afla cuantul respectiv din fisier
MarPlo
Mesaje: 4343
Te poti folosi de acest cod:
Cod: Selectaţi tot
$file_r ='file_read.txt'; //address of file to read
$file_s ='file_save.txt'; //address of file to save after delete the lines (can be the same $file_r)
$del_w ='word'; //word by which to delete the lines
//get the $file_r content into an array, by lines
$data_r = file($file_r, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$nrl = count($data_r); //number of lines
//traverses the lines and store in $data_s the lines without $del_w
$data_s =[];
for($i=0; $i<$nrl; $i++){
if(!preg_match('#\b' . preg_quote($del_w, '#') . '\b#i', $data_r[$i])) $data_s[] = $data_r[$i];
}
//saves the lines in $file_s
if(file_put_contents($file_s, implode(PHP_EOL, $data_s))) echo 'Content saved';
else echo 'Unable to save data in: '. $file_s;