[Tutorial] PHP

poruka: 9
|
čitano: 9.711
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
12 godina
neaktivan
offline
[Tutorial]PHP

...

Programming is understanding. – Kristen Nygaard
Poruka je uređivana zadnji put pet 7.1.2022 1:47 (royalhero).
 
9 0 hvala 10
12 godina
neaktivan
offline
[Tutorial]PHP

Dadoteke:

Ovdje ćemo se pozabaviti radom sa dadotekama u PHP-u.

Otvaranje dadoteke:
Funkcija za stvaranje datoteka se zove fopen. Ako postoji dadoteka sa sa sitim imenom, fopen će je samo otvoriti, bez stvaranja nove, a ako nepostoji dadoteka sa istim imenom fopen će je stvoriti.


Fopen mora sadržavati dvije informacije:
1.Ime dadoteke koju ćemo otvoriti.
2.Moramo funkciji fopen reći što će raditi sa dadotekom, pomoću pointera:

  Pisanje: 'w' //otvara datoteku samo za pisanje, prijašnji podaci izbrisani

  Čitanje: 'r' //otvara datoteku samo za čitanje

  Nadopisivanje :'a' //otvara datoteku samo za pisanje, ali prijašnji podaci sačuvani i file pointer na kraju dadoteke
  Čitanje/Pisanje: 'r+'   //otvara datoteku za pisanje i čitanje, file pointer se nalazi na početku datoteke
  Pisanje/Čitanje: 'w+' //                 -||-  , kada je dadoteka otvorena sve prethodno se briše
  Nadopisivanje: 'a+'  //                  -||- ,  sadržaj ostaje, pokazivač se nalazi na kraju dadoteke

<?php
$ime="dadoteka1.txt";
$dadoteka=fopen($ime, 'file_pointer') or die("Cannot open file!");
fclose($dadoteka);
?>

 

Prvo što moramo uraditi je postaviti ime dadoteke u varijalu, moramo kreirati varijablu koja će upravljati dadotekom i u nju postavimo funkciju fopen.
or die("Cannot open file!");Govori korisniku da nemože otvoriti dadoteku.
Na kraju funkcijom fclose zatvaramo dadoteku, argument joj je varijabla sa funkcijom fopen.

 

Pisanje u dadoteku:

Pisanjem u dadoteku ćemo se služiti funkcijom fwrite:
<?php
$ime="dadoteka1.txt";
$dadoteka=fopen($ime, 'w') or die("Cannot open file!");
$podatak="BugOnline, Forum";
fwrite($dadoteka, $podatak);
fclose($dadoteka);
?>

Funkcij fwrite, smo predali dva argumenta, varijablu koja upravlja dadotekom i podatak koji treba zapisati u dadoteku, taj podatak može biti bilo što, najčešće se dadoteke koriste ako je potrebno imati neku vijest ili nešto slično, a nekoristimo bazu, onda funkcijom fwrite to zapišemo u tu dadoteku.

Pored zapisivanja u dadoteku, često je potrebno i čitati iz nje tada na scenu stupa fread.
Prije pisanja treba drugačije otvoriti ili stvoriti dadoteku, umjesto 'w', treba 'r' ili 'a', 'r+' ili 'a+'.
Prethodno treba znati veličinu dadoteke u byteovima, 1 znak=1 byte
<?php
$ime="dadoteka1.txt";
$dadoteka=fopen($ime, 'r') or die("Cannot open file!");
$pisanje=fread($dadoteka, 16);
echo $pisanje;
fclose($dadoteka);
?>

Ali nemožemo uvjek znati tačnu veličinu onda se koristimo filesize.
filesize($dadoteka)
<?php
$ime="dadoteka1.txt";
$dadoteka=fopen($ime, 'r') or die("Cannot open file!");
$pisanje=fread($dadoteka, filesize($dadoteka));
echo $pisanje;
fclose($dadoteka);
?>

Programming is understanding. – Kristen Nygaard
Poruka je uređivana zadnji put ned 13.11.2011 17:13 (royalhero).
 
4 0 hvala 6
12 godina
neaktivan
offline
[Tutorial]PHP

Brisanje, nadodavanje, skraćivanje dadoteke

Nadodavanje:
To vam je već jasno, pomoću file_pointera 'a', pa evo da i to prođemo:

<?php
$ime="dadoteka1.txt";
$dadoteka=fopen($ime, 'a') or die("Cannot open file!");
$podatak2="\nOvo će biti nadodano na kraj!";
fclose($dadoteka);
?>

Sada je stanje u dadoteci:
BugOnline, Forum!
Ovo če biti nadodano na kraj!

Naravno ako ste prethodno sačuvali dadoteku iz prethodnih postova.

Skraćivanje

To je kao neki reset dadoteke, ali pazite da ne resetujete neku XAMPPovu textualnu dadoteku!

 

<?php
$ime="dadoteka1.txt";
$dadoteka=fopen($ime, 'w') or die("Cannot open file!");
fclose($dadoteka);
?>


File_pointer 'w' prethodni tekst briše, tako smo resetovali dadoteku.


Brisanje

<?php
$ime="dadoteka1.txt";
$dadoteka=fopen($ime, 'file_pointer') or die("Cannot open file!");
fclose($dadoteka);
?>


Ovim smo otvorili dadoteku imena dadoteka1.txt na serveru, u našem slučaju u mapi htdocs.
Nerijetko nakon obvljenog posla dadoteku treba izbrisati, to radimo funkcijom unlink, koja ima samo jedan parametar, varijablu koja sadrži ime dadoteke koju treba izbrisati.
Ovdje morate biti oprezni da ne izbrišete dadoteku koju neželite izbrisati.
<?php
$ime="dadoteka1.txt";
unlink($ime);
?>
Ovim je famozna dadoteka imena "dadoteka1.txt" izbrisana.

 

Programming is understanding. – Kristen Nygaard
Poruka je uređivana zadnji put ned 13.11.2011 17:13 (royalhero).
 
3 0 hvala 4
12 godina
neaktivan
offline
[Tutorial]PHP

MySql i PHP

I dio

Spajanje na server:
Pretpostavimo da imamo bazu podataka na localhostu, username nam je root i šifra bug_forum.
Bilo bi dobro da kreirate novi folder na serveru tipa php_mysql ili slično, da u njega spremate viježbe.
Kreirat ću fajl spajanje.php i u njemu koda sa spajanje na server:
<?php
if(!$baza=@mySQL_connect('localhost', 'root', 'bug_forum'){
die(mySQL_error)
}
?>
mySQL_connect:
Ova funkcija služi za povezivanje sa bazom, ima 3 argumenta, host, username, password.
die:
Sa ovom funkcijom smo se već susretali,  ispisuje grešku, u našem slučaju funkciju mySQL_error.
mySQL_error:
Funkcija koja ispisuje grešku koja se dogodila.

Spajanje na bazu:
Pretpostavimo da imamo bazu podataka koja se zove bug_novosti.
<?php
if(!$baza=@mySQL_connect('localhost', 'root', 'bug_forum'){
die(mySQL_error)
}
if(!mySQL_select_db("bug_novosti", $baza){
die(mySQL_error)
?>

mySQL_select_db:
Sa ovom funkcijom odabiremo bazu čije ćemo tablice koristiti, ima dva argumenta i to:
1.Ime baze koju ćemo koristiti
2.Vezu na server

Uskoro ću uraditi i unos podataka.

 

 

 

 

Programming is understanding. – Kristen Nygaard
Poruka je uređivana zadnji put ned 13.11.2011 17:13 (royalhero).
 
4 0 hvala 4
12 godina
neaktivan
offline
Re: [Tutorial]PHP

Malo odskačemo od baza, ali sam se sjetio korisne stvari.

Pražnjenje varijabli:

Varijabla se prazni funkcijiom unset, ima parametar varijablu koju treba prazniti.
<?
$varijabla="Ovaj tekst ćese izbrisati";
echo $varijabla;
unset($varijabla);
?>

Ovim na serveru dobivamo više mijesta.
Kada završimo query-e, pokazat ću vam kako možemo i njih prazniti.

Programming is understanding. – Kristen Nygaard
12 godina
neaktivan
offline
[Tutorial] PHP

Unos podataka u bazu
Kao što sam i u prvom tutorijalu o MySql-u i PHP-u, ovdje se nebavimo bazama podataka, ali eto pretpostavili smo da imamo bazu podataka "bug_novosti" i recimo tablicu "news1".

Inače unosimo u SQL preko naredbe INSTERT INTO ime_tablice("field1", "field2", "field3",...) VALUES("vrijednost fielda1",...);

Posao mi otežava to što se uvjek moram vraćati na SQL, ali nebi bilo loše da pogledate neki tutorijal o njemu, možda napišem jedan, ali na internetu imate na tone materijala za SQL, a ja vam preporučujem video tutorijale našeg fakulteta, FIT Mostar, koje sam postavio u ovoj temi:http://www.bug.hr/forum/topic/razvoj-web-stranica/e-learning-web-tehnologije/122392.aspx

Podatke ćemo unositi preko HTML forme, koju mislim da znate pa nemam potrebe obješnjavati input type-ove.

Što se naše "news1" tablice tiče, pretpostavimo da imamo fieldove "ime", "novost", "datum", ime je VARCHAR, novost je TEXT, datum je DATE.
<?php
if(!$baza=@mySQL_connect('localhost', 'root', 'bug_forum'){
die(mySQL_error)
}
if(!mySQL_select_db("bug_novosti", $baza){
die(mySQL_error)
?>


Ovaj kod spremite kao "link.php", kasnije ćemo ga include-at.

Pa krenimo, prvo ću staviti cijeli kod, pa ću ga obrazložiti.

<html>
<head>
<title>Unos u bazu</title>
</head>
<body>
<h2>Unos podataka u bazu Bug Novosti!</h2>
<br /><br /><br />

<?php
if($_POST["potvrda_unosa"]
?>

<form method="POST" action="">
<p>Naslov novosti:</p>
<input type="text" name="ime" size=20>
<p>Novost:</p>
<textarea name="novost"></textarea>
<br />
<input type="submit" name="potvrda_unosa" value="Unesi!">
</form>
<?php
}
else{
include("link.php);
$datum=date("Y-m-d");
$SQL="INSERT INTO news1(ime, novost, datum) VALUES('$_POST[ime]', '$_POST[novost]', '$datum')";
if(mysql_query($SQL)){
echo "Novost pohranjena, uskoro očekuj komentare na forumu!";
}
else{
echo "Novost nemože biti pohranjena!"<br />
mysql_error();
}
}
?>
</body>
</html>

 

 

Na početku uvjet if ima argument  name našeg submit botuna.
Kod poslje if-a i prije else-a neću analizirati, jer to pretpostavljam da znate.
Includali smo fajl "link.php" u kojem se spajamo na server i bazu.
U varijablu datum pohrnanjivamo vrijdnost fukcije date koja daje datum.
U varijablu SQL, u duple navodne, pišemo SQL kod, prvo poredamo fieldove, zatim im damo vrijednosti, $_POST[], vidjeli ste da je metod forme post, http://www.w3schools.com/php/php_post.asp, i varijablu datum koju smo prethodno deklarisali.
-mysql_query funkcija "provjerava da li je novost pohranjena", zašto sam stavio navodne, pa zato što nismo obrađivali upite/query-je, što je stvar baze.



Programming is understanding. – Kristen Nygaard
Poruka je uređivana zadnji put uto 15.11.2011 20:10 (royalhero).
 
2 0 hvala 3
12 godina
neaktivan
offline
Re: [Tutorial]PHP
royalhero kaže...

Brisanje, nadodavanje, skraćivanje dadoteke

Nadodavanje:
To vam je već jasno, pomoću file_pointera 'a', pa evo da i to prođemo:

<?php
$ime="dadoteka1.txt";
$dadoteka=fopen($ime, 'a') or die("Cannot open file!");
$podatak2="\nOvo će biti nadodano na kraj!";
fclose($dadoteka);
?>

Sada je stanje u dadoteci:
BugOnline, Forum!
Ovo če biti nadodano na kraj!

Naravno ako ste prethodno sačuvali dadoteku iz prethodnih postova.

Skraćivanje

To je kao neki reset dadoteke, ali pazite da ne resetujete neku XAMPPovu textualnu dadoteku!

 

<?php
$ime="dadoteka1.txt";
$dadoteka=fopen($ime, 'w') or die("Cannot open file!");
fclose($dadoteka);
?>


File_pointer 'w' prethodni tekst briše, tako smo resetovali dadoteku.


Brisanje

<?php
$ime="dadoteka1.txt";
$dadoteka=fopen($ime, 'file_pointer') or die("Cannot open file!");
fclose($dadoteka);
?>


Ovim smo otvorili dadoteku imena dadoteka1.txt na serveru, u našem slučaju u mapi htdocs.

 

tu ti fale neke operacije nakon inicijalizacije pointera kolega. lijepi tutovi btw.

12 godina
neaktivan
offline
Re: [Tutorial]PHP

Hvala, a vidio sam, treba fread u nadodavanju, inače nisam provjeravao kodove, uvjeren sam u svoje zanje {#}.

Programming is understanding. – Kristen Nygaard
13 godina
offline
[Tutorial] PHP

Tema je malo stara no može li odgovor?
Koja je glavna razlika između objectoriented stila i procedural stila?

“The only thing standing between you and your goal is the bullshit story you keep telling yourself as to why you can&amp;amp;amp;amp;amp;amp;amp;#39;t achieve it.”
Moj PC  
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice