Z góry dziękuję
Strona 1 z 1
[PHP] Znajdź i usuń całą linię
#1
Napisano 05 październik 2011, 16:17
Witam. Mam coś w stylu 'bazy danych', czyli plik tekstowy z różnymi informacjami. Komplet informacji o jednym zdarzeniu daje jedną linię. Chciałbym zrobić tak, aby po wciśnięciu przycisku PHP znalazło konkretny ciąg znaków (najlepiej wszystkie), który ustalę i usunęło całą linię, w której takie coś znalazł.
Z góry dziękuję
Z góry dziękuję
#2
Napisano 05 październik 2011, 20:35
$out = array();
foreach(file('plik.txt') as $linia)
{
if(strpos($linia, 'wartosc do usuniecia') === false)
{
$out[] = $linia;
}
}
file_put_contents('plik.txt', join(PHP_EOL, $out), LOCK_EX);
Przygoda w Biurowej Dzielnicy - TODA :: Przyszłość sieci Webb i informatyzacja Polski
There is a road to freedom. Its milestones are Obedience, Endeavor, Honesty, Order, Cleanliness, Sobriety, Truthfulness, Sacrifice, and love of the Fatherland.
There is a road to freedom. Its milestones are Obedience, Endeavor, Honesty, Order, Cleanliness, Sobriety, Truthfulness, Sacrifice, and love of the Fatherland.
#3
Napisano 05 październik 2011, 21:35
Dziękuję bardzo za odpowiedź. Jest jednak problem. Przeglądarka zwraca błąd:
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /var/www/virtual/abc.pl/test.php on line 7
Kod wygląda mniej więcej tak:
Spróbowałem wstawić na początek, że $linia = 0;, bo podobno coś ze zmienną nie tak. Ale problem nadal jest z tą linią.
Znając siebie błąd jest chyba w przycisku, który ma aktywować usunięcie. Byłbym wdzięczny za naprowadzenie chociaż
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /var/www/virtual/abc.pl/test.php on line 7
Kod wygląda mniej więcej tak:
<?php
if (isset($_POST['execute']))
{
$out = array();
foreach(file "plik.txt" as $linia) //To niby ta 7 linia
{
if(strpos($linia, 'tekst') === false)
{
$out[] = $linia;
}
}
file_put_contents('plik.txt', join(PHP_EOL, $out), LOCK_EX);
}
?>
<form action="podglad.php" method="post">
<input type="hidden" name="execute" value="true">
<input type="submit" value="Przycisk">
</form>
Spróbowałem wstawić na początek, że $linia = 0;, bo podobno coś ze zmienną nie tak. Ale problem nadal jest z tą linią.
Znając siebie błąd jest chyba w przycisku, który ma aktywować usunięcie. Byłbym wdzięczny za naprowadzenie chociaż
Użytkownik sssebolll edytował ten post 05 październik 2011, 21:36
#4
Napisano 06 październik 2011, 07:57
zamień
na
foreach(file "plik.txt" as $linia)
na
foreach(file("plik.txt") as $linia)
Athlon 64 X2 5200+ | MSI K9N Neo V3 | KINGSTON DDR2 2x1GB 667 | WD3200AAKS | MSI N9600GT OC 2D512
Athlon 64 3200+ | MSI K9N6SGM-V | KINGSTON DDR2 2x512MB 667 | WD2500KS | Leadtek PX8500GT TDH (256)
Athlon 64 3200+ | MSI K9N6SGM-V | KINGSTON DDR2 2x512MB 667 | WD2500KS | Leadtek PX8500GT TDH (256)
Strona 1 z 1
Szybka odpowiedź
Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych
Zmień widoczność shoutboxa Shoutbox
|

Logowanie »
Rejestracja
Pomoc
Dodaj odpowiedź
Cytuj