Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Odczyt z pliku lini zaczynajacej sie...
Forum PHP.pl > Forum > PHP
comanderv
witam,

chce odczytac z pliku dana wybrana linie ktora zaczyna sie od jakiegos tam stringu, powiedzmy ze mam zapisywane w liniach imiona i nazwiska i chce w tym pliku odnalesc imie Julia i odczytac jej naziwsko,

mam nadzieje wiadomo o co mi chodzi, chce poprostu ustawic kursor tym miejscu i czytac cala linie do 'entera' ...

z gory dziekuje za pomoc
comanderv
no tak gdybym znal funkcje fgets prawdopodonie bym nie pytal stad moje pytanie pomocnicze smile.gif

jak fgets pozwali mi namierzyc linie w ktorej jest szukany przeze mnie string ?
erix
Iteruj po kolei wszystkie linie. Zrób sobie licznik i jeśli tekst w danym ciągu znaleziony -> nr linii = licznik.
ultra_18
Cytat(erix @ 22.12.2008, 16:05:50 ) *
Iteruj po kolei wszystkie linie. Zrób sobie licznik i jeśli tekst w danym ciągu znaleziony -> nr linii = licznik.


Na pewno nr lini = licznik, a nie przypadkiem numerowanie tablicy zaczyna sie od 0?


  1. <?php
  2. $linia = 'Maria-Nowak';
  3. $plik = 'plik.txt';
  4.  
  5. $tablica = file($plik);
  6.  
  7. for($i=0;$i<count($tablica);$i++){
  8. if(trim($tablica[$i]) == $linia){
  9. $numer = $i + 1;
  10. break;
  11. }}
  12. ?>
erix
Cytat
Na pewno nr lini = licznik, a nie przypadkiem numerowanie tablicy zaczyna sie od 0?
  1. nie miałem na myśli file" title="Zobacz w manualu PHP" target="_manual
  2. w założeniu nie tworzyłem żadnej tablicy; jest taka funkcja fgets" title="Zobacz w manualu PHP" target="_manual, gwoli ścisłości

Poza tym, w przypadku Twojego kodu, dodatkowy licznik jest bez sensu.
olcia
Podepnę się pod ten post, ponieważ mam pytanie z tego tematu.

Jak zmienić poniższy kod, tak by wyciągał drugą, a nie pierwszą (zerową) linę w pliku, a najlepiej jak za jednym zamachem wyciągać dwie lub trzy linie (chodzi o najnowsze komentarze, bo pokazuje aktualnie tylko jeden, a chciałabym 2 lub 3).

Z góry bardzo dziękuję za pomoc smile.gif

  1. <?php
  2. function newestcomment(){
  3.  
  4.    include("settings.php");
  5.  
  6.    $commentfilearray = file($commentfile);
  7.    unset($commentfilearray[0]);
  8.    $newarray = array();
  9.  
  10.    foreach($commentfilearray as $comment){
  11.  
  12.        $break = "|";
  13.        list($name_comm, $comment_comm, $date_comm, $id_comm, $status_comm)=explode($break,$comment);
  14.  
  15.        if(trim($status_comm) == "1"){
  16.            array_push($newarray, $comment);
  17.        }
  18.    }
  19.  
  20.    if(count($newarray) != 0){
  21.  
  22.        $blogfilearray = file($datafile);
  23.        unset($blogfilearray[0]);
  24.  
  25.        $break = "|";
  26.        list($name_comm, $comment_comm, $date_comm, $id_comm, $status_comm)=explode($break,$newarray[0]);
  27.  
  28.        foreach($blogfilearray as $thisline){
  29.  
  30.            list($title, $post, $date, $id, $image, $username_blog)=explode("|",$thisline);
  31.  
  32.            if($id == $id_comm){
  33.  
  34.                if(file_exists("./accounts/{$name_comm}.php")){
  35.  
  36.                    include("./accounts/{$name_comm}.php");
  37.                    $name_comm = "<a href=\"view_member.php?username=$name_comm\">$name_comm</a>";
  38.  
  39.                }    
  40.  
  41.                $patterns = array(
  42.                                    "/:)/",
  43.                                    "/:(/",
  44.                                    "/:o/",
  45.                                    "/:P/",
  46.                                    "/:|/",
  47.                                    "/:D/",
  48.                                    "/:banana:/");
  49.  
  50.                $replacements = array(
  51.                                        "<img src=\"emoticons/smile.gif\" border=\"0\">",
  52.                                        "<img src=\"emoticons/sad.gif\" border=\"0\">",
  53.                                        "<img src=\"emoticons/oh.gif\" border=\"0\">",
  54.                                        "<img src=\"emoticons/tongue.gif\" border=\"0\">",
  55.                                        "<img src=\"emoticons/dry.gif\" border=\"0\">",
  56.                                        "<img src=\"emoticons/biggrin.gif\" border=\"0\">",
  57.                                        "<img src=\"emoticons/banana.gif\" border=\"0\">");
  58.  
  59.                $comment_comm = preg_replace($patterns,$replacements, $comment_comm);
  60.                echo "<b>$name_comm:</b> $comment_comm<br />in <a href=\"view_post.php?id=$id\">$title</a><br><br>";
  61.  
  62.            }
  63.        }
  64.    } else {
  65.        echo "brak komentarzy";
  66.    }
  67.  
  68. }
  69. ?>
comanderv
olciu nie mam niestety dla Ciebie zadnej wskazowki,

tylko wyjasnie jak sobie poradzilem z problemem...

poexplodowalem calosc (1 wpis 1 miejsce w tablicy) i zrobilem warunek ze jezeli $string=$wpis[0].$wpis[1].$wpis[2] ... == $string2 gdzie $string2 to byl szukany przeze mnie wyraz (byl on na samym poczatku stirngu wiec to bylo to co pozwolilo mi wprowadzic taki tok rozumowania) jezeli sie zgadzalo to wyswietlalem w petli $wpis[$i] (nie mam kodu przed soba a ost duze pisalem - http://www.rytroman.cba.pl/kalllllllllllll...lllll/index.php - warunkiem zerwania petli np moglo by byc $wpis[$i] == " ")

w kazdym razie moj problem rozwiazany bez uzycia zadnych fgetsow itd ;]

i to kocham w PHPie smile.gif ze nikt mojego toku rozumowania nie polapie tongue.gif

wszytskim dziekuje za odezwe w tym temacie...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.