Poslao: 27 Jun 2012 22:27
|
offline
- kostic.dk
- Ugledni građanin
- Pridružio: 24 Avg 2011
- Poruke: 300
- Gde živiš: Beograd
|
Ovako ljudi imam fajl.txt koji sadrzi:
neki tekst koji ima
novi red
i jos par
novih redova
bla bla bla
|pa nesto|i jos nesto|itd..
e sad ovaj kod bi trebalo da uradi to sto ja hocu, ali on nesto nece...
<?php
$fajl = "fajl.txt";
$otvorenfajl = fopen($fajl, 'r') or die("Error");
if (isset($_POST['submit'])){
//nesto
}
$trazi= explode('|', fgets($otvorenfajl));
fclose($otvorenfajl);
echo "trazi do prve crte:<br />".$trazi[0]."<br />pa do druga<br />".$trazi[1];
?>
Sve radi okej kada nema novog reda cim se ubaci u fajl.txt novi red kod pukne
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 27 Jun 2012 23:11
|
offline
- bobby
- Administrator
- Pridružio: 04 Sep 2003
- Poruke: 24135
- Gde živiš: Wien
|
Citat:string fgets ( resource $handle [, int $length ] )
Gets a line from file pointer.
Sudeci po ovome, fgets cita samo jednu liniju iz fajla.
|
|
|
|
Poslao: 27 Jun 2012 23:53
|
offline
- kostic.dk
- Ugledni građanin
- Pridružio: 24 Avg 2011
- Poruke: 300
- Gde živiš: Beograd
|
Nisi mi bas puno pomoga, izgleda da nismo na istom nivou php-a, to je ocigledno
|
|
|
|
Poslao: 28 Jun 2012 09:57
|
offline
- lnenad
- Stručni saradnik
Web
- Pridružio: 16 Jan 2007
- Poruke: 2860
- Gde živiš: Bijeljina
|
$trazi variabla se formira "eksplodiranjem" fgets funkcije koja koristi "|" znak kao separator. To znaci da fgets otvori fajl "fajl.txt", procita samo jednu liniju iz njega (mozes ti imati milion linija u fajlu), vrati tu liniju funkciji explode, i ona se posle obrade kao niz vraca u $trazi (sto apsolutno nema veze sa tvojim fajlom, osim u poslednjoj liniji istog gdje bi funkcija imala stvarno sta i da obradi).
Sta znaci "pukne" kod i da li imas neku gresku ?
|
|
|
|
|
|
Poslao: 28 Jun 2012 15:15
|
offline
- kostic.dk
- Ugledni građanin
- Pridružio: 24 Avg 2011
- Poruke: 300
- Gde živiš: Beograd
|
Notice: Undefined offset: 1 in C:\xampp\htdocs\dklab\admin\edit.php on line 9
9 linija:
echo "trazi do prve crte:<br />".$trazi[0]."<br />pa do druga<br />".$trazi[1];
|
|
|
|
Poslao: 28 Jun 2012 20:51
|
offline
- Rastafarii
- Moderator foruma
- Pridružio: 22 Mar 2006
- Poruke: 3760
- Gde živiš: 127.0.0.1
|
Zamisli - javlja ti gresku kad pokusavas da odstampas nepostojeci element niza
explode() f-ja vraca niz - cak i kad u stringu koji explode-ujes ne postoji delimiter (prvi param explode f-je). Niz koji vrati ima za jedan veci broj elemenata nego sto ima pojavljivanja delimitera u stringu.
S' obzirom da u stringu "neki tekst koji ima" nema delimitera "|", niz koji dobijes nazad ima 1 element (sa index-om 0), te element sa index-om 1 ne postoji ($trazi[1]), dobijas Notice.
Btw, da bi procitao jos neku liniju (osim prve), koristi ovako nesto:
while(!feof($otvorenfajl)) {
$trazi= explode('|',fgets($otvorenfajl);
}
ili, jos bolje:
$file = file('fajl.txt',FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
foreach ($file as $line)
{
$trazi = explode('|',$line);
}
|
|
|
|
Poslao: 28 Jun 2012 20:52
|
offline
- Pridružio: 16 Feb 2011
- Poruke: 1630
- Gde živiš: Pancevo
|
1. Sredi te errore
2. Sve to provuci kroz petlju
<?php
$file = fopen("MyCity.txt", "r") or exit("Unable to open file!");
//Output a line of the file until the end is reached
while(!feof($file))
{
echo fgets($file). "<br />";
}
fclose($file);
?>
|
|
|
|
Poslao: 29 Jun 2012 15:57
|
offline
- kostic.dk
- Ugledni građanin
- Pridružio: 24 Avg 2011
- Poruke: 300
- Gde živiš: Beograd
|
Rastafarii ::Zamisli - javlja ti gresku kad pokusavas da odstampas nepostojeci element niza
explode() f-ja vraca niz - cak i kad u stringu koji explode-ujes ne postoji delimiter (prvi param explode f-je). Niz koji vrati ima za jedan veci broj elemenata nego sto ima pojavljivanja delimitera u stringu.
S' obzirom da u stringu "neki tekst koji ima" nema delimitera "|", niz koji dobijes nazad ima 1 element (sa index-om 0), te element sa index-om 1 ne postoji ($trazi[1]), dobijas Notice.
Btw, da bi procitao jos neku liniju (osim prve), koristi ovako nesto:
while(!feof($otvorenfajl)) {
$trazi= explode('|',fgets($otvorenfajl);
}
ili, jos bolje:
$file = file('fajl.txt',FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
foreach ($file as $line)
{
$trazi = explode('|',$line);
}
Hvala, resio sam sa foreach-om
Hvala svima!
|
|
|
|