Ucitavanje podataka iz datoteke

Ucitavanje podataka iz datoteke

offline
  • zend  Male
  • Počasni građanin
  • Pridružio: 22 Okt 2009
  • Poruke: 900
  • Gde živiš: Pancevo

Imam formu za porudzbinu i sada ne zelim da je upisujem u bazu nego u tekstualnu datoteku koja se zove porudzbine.txt
Pokusao sam da otvorim datoteku pomocu funkcije fopen()

Funkciji fopen() sam zadao dva parametra

Prvi parametar treba da bude putanja datoteke koju zelim da otvorim.
Drugi parametar funkcije fopen ( ) je rezim u kome se datoteka otvara.

Rezim koji sam izabrao je 'a+b'

Append 'a+' : Da mi otvari datoteku za dodavanje i citanje od kraja postojeceg sadrzaja. Ako datoteka ne postoji onda sistem pokusava da je napravi
Binary 'b' hocu da iskoristim ovaj rezim u kombinaciji sa Append rezimom jer koristim windows koji pravi razliku izmedju binarnih i tekstualnih dokumenata.

Ili moze da bude rezim 'w' ali sada nebitno...

Na pocetku scripta sam dodao
 $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];

I sada zelim da ucitam podatke iz datoteke


$ucitaj = fopen ( " $DOCUMENT_ROOT /porudzbine.txt ", 'a+b' ); if (!$fp) { echo "Ucitavanje nije uspelo" ; exit; } while (!feof ($ucitaj)) { $porudzbine = fgets ($ucitaj, 500); echo $porudzbine . '<br />' ; }

I kada pokrenem skript dobijam non stop
Warning: fopen() expects at least 2 parameters, 1 given in D:\wamp\www\ucenje\snimanje_i_ucitavanje_podataka\proces.php  on line 22 Ucitavanje nije uspelo

ili da fajl nije pronadjen....

Da li negde gresim ??? Ili ne radim ispravno?
Moze pomoc oko ovoga



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • lnenad  Male
  • Stručni saradnik
    Web
  • Nenad
  • Arhitetak
  • Pridružio: 16 Jan 2007
  • Poruke: 2860
  • Gde živiš: Bijeljina

Ajde probaj ovo

$ucitaj = fopen ( $DOCUMENT_ROOT.'/porudzbine.txt ', 'a+b' );



offline
  • zend  Male
  • Počasni građanin
  • Pridružio: 22 Okt 2009
  • Poruke: 900
  • Gde živiš: Pancevo

Sredio sam ono malopre na drugaciji nacin probao sam ovo sto si mi napisao radi i taj primer. Samo sada mi se stvara problem sada pri upisivanju... Upisem podatke prikupljene iz forme preko promenljivih on sve upise kako sam smislio i odredio ali kad opet pokusam da upisem on mi duplira predhodnu porudzbinu i upisuje ovu novu.. Znaci imam 2 stare i jednu novu... A ne da bude Stara pa nova...

Evo neki primer kako to izgleda


_____________________________________________________________ 14:05, Jrd April HARD: 1 kom GRAFICKA : 1 kom PROCESOR:3 RAM : 3 kom _____________________________________________________________ 14:05, Jrd April HARD: 1 kom GRAFICKA : 1 kom PROCESOR:3 RAM : 3 kom _____________________________________________________________ 14:05, Jrd April HARD : 12 kom GRAFICKA : 33 kom PROCESOR: 43 kom RAM : 54 kom _____________________________________________________________ 14:05, Jrd April HARD : 12 kom GRAFICKA : 33 kom PROCESOR: 43 kom RAM : 54 kom _____________________________________________________________

offline
  • lnenad  Male
  • Stručni saradnik
    Web
  • Nenad
  • Arhitetak
  • Pridružio: 16 Jan 2007
  • Poruke: 2860
  • Gde živiš: Bijeljina

Daj kod, inace kod svake funkcije potrebno je koristite jedne navodnike, bilo to '' ili "", ne smijes da mjesas, zato si zbunio PHP

offline
  • zend  Male
  • Počasni građanin
  • Pridružio: 22 Okt 2009
  • Poruke: 900
  • Gde živiš: Pancevo

Ne pravim nista ozbiljno nego samo vezbam pa bi lepo da savladam ovo gradivo!!!
Evo koda
<?php   $DOCUMENT_ROOT=$_SERVER['DOCUMENT_ROOT']; $hard=$_POST['hard']; $graficka=$_POST['graficka']; $procesor=$_POST['procesor']; $ram=$_POST['ram']; $date= date('H:i, JS F'); $ucitaj = fopen ( $DOCUMENT_ROOT.'/porudzbine.txt ', 'a+b' ); while (!feof($ucitaj)) { $citaj= fgets($ucitaj, 900); echo '<br>'. $citaj;  }    $upisi = $date.'<br>'.'<b>HARD</b>' .':' . $hard. '<br>'. '<b>GRAFICKA</b>' .':' . $graficka . '<br>'. '<b>PROCESOR</b>' .':' . $procesor . '<br>'. '<b>RAM</b>' .':' . $ram . '<br>'. '<hr>';    fwrite($ucitaj, $upisi, strlen($upisi));  fclose ($ucitaj);      ?>

offline
  • Pridružio: 08 Jan 2010
  • Poruke: 101

iz prvog posta:

$ucitaj = fopen ( " $DOCUMENT_ROOT /porudzbine.txt ", 'a+b' );

if (!$fp) {
echo "Ucitavanje nije uspelo" ;
exit;
}

$fp (predstavlja file pointer iz C-a il odakle vec, ovde je to stream, nije ni bitno) treba da bude $ucitaj u ovom primeru...(imas 2 promenljive, a treba ti 1)

$ucitaj = fopen ( $DOCUMENT_ROOT.'/porudzbine.txt ', 'a+b' ); while (!feof($ucitaj)) { $citaj= fgets($ucitaj, 900); echo '<br>'. $citaj;  }

mozes da zamenis sa:

$ucitaj = file_get_contents($DOCUMENT_ROOT.'/porudzbine.txt '); echo nl2br($ucitaj);

koristi prednosti php5 Wink

predlog za ovu skriptu, mogao bi da upisujes u fajl poput xml-a
<hard>hard disk</hard>
<graf>neka grafa</graf>
...
i onda uz pomoc malo regex-a da lakse to citas

cisto me zanima, sto postujes isti problem na 2 foruma kad dobijas dobre odgovore na oba ?

offline
  • zend  Male
  • Počasni građanin
  • Pridružio: 22 Okt 2009
  • Poruke: 900
  • Gde živiš: Pancevo

cek ovo
$ucitaj = fopen ( $DOCUMENT_ROOT.'/porudzbine.txt ', 'a+b' ); while (!feof($ucitaj)) { $citaj= fgets($ucitaj, 900); echo '<br>'. $citaj;  }

$citaj promenljiva mi nije potrebana znaci mogu kroz petlju while da izlistam $ucitaj??

Pa neznam trebalo mi pa sam mislio ko prvi odg.. Al dobro sada to nije toliko bitno....

na php manuelu malo je drugacije kada sam traziio za fopen funkciju...

Ko je trenutno na forumu
 

Ukupno su 802 korisnika na forumu :: 36 registrovanih, 4 sakrivenih i 762 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 8u47, _Sale, A.R.Chafee.Jr., aramis s, Brankoni, cikadeda, dac, darkangel, dollar, dragoljub11987, dragon986, Duh sa sekirom, FOX, gzoki, havoc995, HrcAk47, JOntra, Lucije Kvint, mean_machine, Mlav, Nebo_M, Oscar, pavle_pzs, rovac, ruger357, ruma, Sale.S, segax1, Snorks, tmanda323, Toni, topalovicdj, Toper, wolf431, YU-UKI, Zmaj001