Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Witam! Mam taki skrypt który zapisuje tylko linie z podanym wyrazem z jednego pliku do drugiego
- wygląda to tak:
<?
if(!$_POST["f0"]) exit(0);
$litera1 = $_POST["f0"];
$fd = fopen("/var/www/apache2-default/plik/plik_txt", "rw+");
$fd1 = fopen("plik1.txt", "rw+");
while (!feof ($fd)){
$linia = fgets($fd, 92);
if(strpos($linia, $litera1) !== false)
fputs($fd1,"$linia"."\n");
}
?>
I traz pytanie: jak go przerobić żeby wyciągał tą podaną linie ( czyli tak jak jest ) oraz dwie kolejne po tej podanej.
Czyli przypuszczalnie żeby z pliku (np z nazwiskami ) o padanym nazwisku Kowalski - wyciągnął wszystkie linie
w których jest to nazwisko oraz dwie poniżej ( przykład:
Kowalski
dane 1 dasdasd
dane 2 rtetrtert
Kowalski
dane 3 kljljlkjlk
dane 4 fgdgdfgdf
itd.
Offline
$str = isset($_POST['str']) ? $_POST['str'] : ''; if (empty($str)) { die('Podaj str'); } if ($fp = fopen("/plik/do/czytania.txt", "r")) { $ile = 0; while(!feof($fp) { $line = fgets($fp); if (strpos($linia, $str) !== false) { $ile = 2; print $line . "<br />"; continue; } if ($ile > 0) { print $line . "<br />"; $ile--; } } fclose($fp); }
Cos takiego, i jak czytasz plik nie otwieraj go w trybie do zapisu....
Ostatnio edytowany przez milyges (2008-09-02 09:34:13)
Offline
Hmm albo ja czegoś nierozumie albo niedziała - bo jak wrzuce sobie ten skrypcik :
if (empty($str))
{
die('Podaj str');
}
if ($fp = fopen("/var/www/apache2-default/plik/plik_txt", "r"))
{
$ile = 0;
while(!feof($fp))
{
$line = fgets($fp);
if (strpos($linia, $str) !== false)
{
$ile = 2;
print $line . "<br />";
continue;
}
if ($ile > 0)
{
print $line . "<br />";
$ile--;
}
}
fclose($fp);
}
to dostaje dokładnie tekst który jest tu
if (empty($str))
{
die('Podaj str');
}
Cokolwiek bym tam nie wpisał czyli nawet Kowalski czy 0110234
to tylko to mi się wyświetli na ekran tylko ten tekst.
Tam jeszcze nawiasu niebyło w while ale to spoko:)
Także był bym wdzięczny za pomoc.
Niewiem czy pisałem ale pliku plik_txt jest mnóstwo różnych danych a mi chodzi o wyciągnięcie z tego pliku tylko o dane z podanym nazwiskiem ( ten przypuszczalnie kowalski może tam wystąpić nawet ze 100 razy)
I chodzi o to żeby wyrzucił np 1 linia z kowalskim + 2 następne, póżniej sprawdza dalej plik znów znalazł nazwisko kowalski i znów wyrzuca na ekran tą linie z nazwiskiem kowalski + 2 kolejne, zaraz pod poprzednim.
Offline
Aaa sorki!! Niezauwarzyłem u góry:
$str = isset($_POST['str']) ? $_POST['str'] : '';
Ale po porawieniu dostaje pustą stronę.
( tzn w pierwszym pliku podaję nazwe albo jakiś numer ( zależy co chce wyrzucic na ekran + 2 linie)
za pomocą <input type="text" name="str" style="width: 5cm" value="kowalski">
no i za pomocą przycisku urachamiam powyższy skrypt. Ale strona jest pusta:(
Offline
Literówka była, z głowy pisalem:
$str = isset($_POST['str']) ? $_POST['str'] : ''; if (empty($str)) { die('Podaj str'); } if ($fp = fopen("/plik/do/czytania.txt", "r")) { $ile = 0; while(!feof($fp)) { $line = fgets($fp); if (strpos($line, $str) !== false) { $ile = 2; print $line . "<br />"; continue; } if ($ile > 0) { print $line . "<br />"; $ile--; } } fclose($fp); }
Offline
Dokładnie o to mi chodziło!:) Dziękówka:)
Offline
Strony: 1