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!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2008-09-02 08:37:28

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

Podana linia do pliku + dwie kolejne

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.


debbie
Wrócę jak zjem zupę i drugie danie - tyle
a oto ta zupa:

Offline

 

#2  2008-09-02 09:31:49

  milyges - inż.

milyges
inż.
Skąd: Gorlice/Kraków
Zarejestrowany: 2006-04-09
Serwis

Re: Podana linia do pliku + dwie kolejne

Kod:

$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

 

#3  2008-09-04 09:45:51

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

Re: Podana linia do pliku + dwie kolejne

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.


debbie
Wrócę jak zjem zupę i drugie danie - tyle
a oto ta zupa:

Offline

 

#4  2008-09-04 09:57:58

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

Re: Podana linia do pliku + dwie kolejne

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:(


debbie
Wrócę jak zjem zupę i drugie danie - tyle
a oto ta zupa:

Offline

 

#5  2008-09-04 10:22:50

  milyges - inż.

milyges
inż.
Skąd: Gorlice/Kraków
Zarejestrowany: 2006-04-09
Serwis

Re: Podana linia do pliku + dwie kolejne

Literówka była, z głowy pisalem:

Kod:

$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

 

#6  2008-09-04 10:52:19

  debbie - Użytkownik

debbie
Użytkownik
Zarejestrowany: 2006-09-19

Re: Podana linia do pliku + dwie kolejne

Dokładnie o to mi chodziło!:) Dziękówka:)


debbie
Wrócę jak zjem zupę i drugie danie - tyle
a oto ta zupa:

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)