x
მეტი
  • 19.04.2024
  • სტატია:134392
  • ვიდეო:351975
  • სურათი:508465
php - lesson 4

ნაწილი II

მოწინავე PHP

PHP თარიღი

P H P D A TE( ) ფუ ნ ქცი ა



სინტაქსი:


date(format, timestamp)




პარამეტრი აღწერა


ფორმატი სავალდებულო. დროის ნიშნულზე ფორმატის სპეციფიკაცია


დროის ნიშნული არასავალდებულო. დროის ნიშნულის სპეციფიკაცია.

სტანდარტულად არის მიმდინარე დრო და თარიღი




P H P თ ა რი ღ ი - რა ა რი ს დ როი ს ნ ი შნ უ ლი?



დროის ნიშნული არის წამების რიცხვი, როგორც January 1, 1970 at 00:00:00 GMT. ეს ასევე ცნობილია როგორც Unix დროის ნიშნული.



P H P თ ა რი ღ ი - თ ა რი ღ ი ს ფორმ ა ტ ი



პირველი პარამეტრი date() ფუნქციაში არის დროის/თარიღის ფორმატის სპეციფიკაცია. დროის/თარიღის გამოსასახავად ის იყენებს ასოებს. ქვემოთ მოყვანილია ის ასოები, რომლებიც შესაძლოა გამოყენებულ იქნას :



  • d - რიცხვი/დღე (01-31)
  • m - მიმდინარე თვე (01-12)
  • Y - მიმდინარე წელი

სხვა სიმბოლოები, როგორი ცაა "/", ".", ან "- " შესაძლებელია ასევე ჩაისვას ასოებს შორის:


<?php

echo date("Y/m/d");

echo "<br />";

echo date("Y.m.d");

echo "<br />";

echo date("Y-m-d");

?>


კოდი დაბეჭდავს:


2007 /07/11

2007 .07.11

2007 -07-11



P H P თ ა რი ღ ი - დ როი ს ნ ი შნ უ ლი ს დ ა მ ა ტე ბა



წამების პარამეტრი date() ფუნქციაში არის დროის ნიშნულის სპეციფიკაცია. ეს პარამეტრი არასავალდებულოა. თუ ჩვენ არ ვიყენებთ დროის ნიშნულს, მაშინ გამოიყენება მიმდინარე დრო.



შემდეგ მაგალითში, მომდევნო დღის დროის ნიშნულის შესაქმნელად გამოვიყენებთ mktime()

ფუნქციას.


mktime() ფუნქცია დააბრუნებს Unix დროის ნიშნულს სპეციფიური თარიღისათვის .


სინტაქსი:


mktime(hour, minute, second, month, day, year, is_dst)


მომდევნო დღეზე გადასასვლელად საჭიროა დაემატოს ერთი არგუმენტი mktime() :


<?php

$tomorrow = mktime(0, 0, 0, date("m"), date("d")+1, date("Y"));

echo "Tomorrow is ".date("Y/m/d/", $tomorrow);

?>


კოდი დაბეჭდავს:


Tomorrow is 2006/07/12






P HP - ფ აი ლი ს ჩ ასმ ა




ს ე რვ ე რუ ლი ჩ ა მ ატ ე ბე ბი



ჩვენ შეგვიძლია ფაილის შემცველობა ჩავსვათ PHP ფაილში სანამ სერვერი მიიღ ებს მას, inc lude(), ან require() ფუნქციებით. ეს ორი ფუნქცია იდენტურია, მხოლოდ მათ გააჩნიათ განსხვავებული შეცდომების იდენტიფიკატორები. include() ფუნქცია გამოსახავს გაფრთხილებას (მაგრამს სკრიპტი გააგრძელებს მუშაობას ) მანამ, სანამ require() ფუნქცია გამოსახავს გარდაუვალ შეცდომას (ამის მერე სკრიპტი შეწყვეტს მუშაობას ).


ეს ორი ფუნქცია გამოიყენება ფუნქციების, სათაურების, ქვე კოლონტიტულების, ან ელემენტების შესაქმნელად, რომლებიც შესაძლოა გამოყენებულ იქნას შემცველობით გვერდებზე.



ეს აკეთებს დროის ეკონომიას . ეს ნიშნავს რომ ჩვენ შეგვიძლია შევქმნათ სტანდარტული სათაური, ან მენიუს ფაილი ყველა გვერდზე ერთდროულად. როდესაც საჭიროა სათაურის განახლება, ჩვენ შეგვიძლია განვაახლოთ მხოლოდ ჩამატებული ფაილი, ან როდესაც ვამატებთ ახალ გვერდს, ჩვენ შეგვიძლია ადვილად შევცვალოთ მენიუს ფაილი.


IN C L UD E( ) ფუ ნ ქცი ა



inc lude() ფუნქციას მთლიანი ტექსტი მიაქვს სპეციფიურ ფაილში და აკოპირებს იმ ფაილში რომელიც გამოიყენება ჩამატების ფუნქციით.



მაგალითი 1:


წარმოვიდგინოთ რომ გვაქვს სტანდარტული სათაურის ფაილი, რომელსაც ქვია "header.php".

გვერდზე სათაურის ჩამატებისათვის, გამოვიყენოთ include() ფუნქცია შემდეგნაირად:


<html>

<body>

<?php include("header.php");?>

<h1>Welcome to my home page</h1>

<p>Some text</p>

</body>

</html>

მაგალითი 2:



ახლა ვთქვათ გვაქვს სტანდარტული მენიუს ფაილი რომელიც უნდა გამოვიყენოთ ყველა გვერდზე.


კოდი:


<html>

<body>

<a href="http://geocg.myweb .ge/ index.php">Home</a> |

<a href="http://geocg.myweb .ge/about.php">About Us</a> |

<a href="http://geocg.myweb .ge/contact.php">Contact Us</a>


ეს სამი ფაილი, "index.php", "about.php", და "contact.php" ჩაემატება ფაილში "menu.php" .


კოდი:


<?php include("menu.php");?>

<h1>Welcome to my home page</h1>

<p>Some text</p>

</body>

</html>


თუკი ვიხილავთ კოდს ბრაუზერში მას ექნება შემდეგი სახე:


<html>

<body>

<a href="default.php">Home</a> |

<a href="about.php">About Us</a> |

<a href="contact.php">Contact Us</a>

<h1>Welcome to my home page</h1>

<p>Some text</p>

</body>

</html>



R EQUIR E( ) ფუ ნ ქცი ა


თუ ჩვენ ფაილს ჩავსვავთ inc lude() ფუნქციით და მოხდება შეცდომა, შესაძლოა მივიღოთ შემდეგი შეტყობინება.


PHP კოდი:


<html>

<body>

<?php include("wrongFile.php"); echo "Hello World!";

?>

</body>

</html>


შეცდომის შეტყობინება:


Warning: include(wrongFile.php) [function.include]:

failed to open stream:

No such file or directory in C:\home\website\test.php on line 5

Warning: include() [function.include]:

Failed opening 'wrongFile.php' for inclusion

(include_path='.;C:\php5\pear')

in C:\home\website\test.php on line 5

Hello World!


გავითვალისწინოთ რომ echo ოპერატორი კვლავ მუშაობს ! ეს იმიტომ რომ გაფრთხილება არ აჩერებს სკრიპტის მუშაობას.

ახლა გავუშვათ მსგავსი მაგალითი require() ფუნქციით. PHP კოდი:


<html>

<body>

<?php require("wrongFile.php"); echo "Hello World!";

?>

</body>

</html>


შეცდომის შეტყობინება:


Warning: require(wrongFile.php) [function.require]:

failed to open stream:

No such file or directory in C:\home\website\test.php on line 5

Fatal error: require() [function.require]: Failed opening required 'wrongFile.php' (include_path='.;C:\php5\pear')

in C:\home\website\test.php on line 5


echo პარამეტრმა აღარ იმუშავა რადგან გამოვიდა გარდაუვალი შეცდომის შეტყობინება. რეკომენდირებულია გამოვიყენოთ require() ფუნქცია.


P HP - ფ აი ლი


ფა ი ლი ს გა ხს ნ ა



fopen() ფუნქცია გამოიყენება PHP-ში ფაილების გასახსნელად.


ამ ფუნქციის პირველი პარამეტრი შეიცავს ფაილის სახელს, რომელიც უნდა გაიხსნას და მეორე პარამეტრი კი სპეციფიკაციას აკეთებს, თუ რა რეჟიმში გაიხსნას ფაილი:


<html>

<body>

<?php

$file=fopen("welcome.txt", "r");

?>

</body>

</html>


ფაილი შესაძლებელია გაიხსნას ქვემოთ მოყვანილიდან ერთ-ერთ რეჟიმში:



რეჟიმი აღწერა


r კითხვა. იწყება ფაილის დასაწყისიდან


r+ კითხვა/ჩაწერა. იწყება ფაილის დასაწყისიდან


w მხოლოდ ჩაწერა. ხსნის და ასუფთავებს ფაილის შემცველობას ; ან ქმნის ახალ ფაილს თუ ის არ არსებობს


w+ კითხვა/ჩაწერა. ხსნის და ასუფთავებს ფაილის შემცველობას ; ან ქმნის ახალ ფაილს თუ ის არ არსებობს


a დამატება. ხსნის და წერს ფაილის ბოლოში, ან ქმნის ახალ ფაილს, თუ ის არ არსებობს


a+ კითხვა/დამატება. აკონსერვებს ფაილის შემცველობას ფაილის ბოლოში ჩაწერით


x მხოლოდ ჩაწერა. ქმნის ახალ ფაილს. აბრუნებს FALSE და შეცდომას, თუ ფაილი უკვე არსებობს


x+ კითხვა/ჩაწერა. ქმნის ახალ ფაილს. აბრუნებს FALSE და შეცდომას, თუ ფაილი უკვე არსებობს



შენიშვნა: თუ fopen() ფუნქციას არ შეუძლია გახსნას სპეციფიური ფაილი, ის დააბრუნებს 0-ს.



მიმდინარე მაგალითი გამოსახავს შეტყობინებას, თუ fopen() ფუნქციას არ შეუძლია სპეციფიური ფაილის გახსნა:


<html>

<body>

<?php

$file=fopen("welcome.txt", "r") or exit("Unable to open file!");

?>

</body>

</html>


ფა ი ლი ს დ ა ხუ რვ ა



fclose() ფუნქცია გამოიყენება გახსნილი ფაილის დასახურად :


<?php

$file = fopen("test.txt", "r");

//some code to be executed fclose($file);

?>



EN D -OF -F IL E-ი ს შე მ ოწმ ე ბა



feof() ფუნქცია ამოწმებს, მიღწეულია თუ არა("end-of-f ile" (EOF)) ფაილის ბოლოში. feof() ფუნქცია გამოსადეგია უცნობი სიგრძის მონაცემთა ციკლისათვის .

შენიშვნა: ჩვენ ვერ წავიკითხავს ფაილიდან, რომელიც გახსნილია w, a, და x რეჟიმებში!


if (feof($file)) echo "End of file";



ფა ი ლში თ ი თ ო-თ ით ო ხა ზ ი ს წა კი თ ხვ ა



fgets() ფუნქცია გამოიყენება ფაილიდან ერთი ხაზის წაკითხვისათვის.


შენიშვნა: ამ ფუნქციის გამოძახების შემდგომ ფაილის კურსორი გადავა მეორე ხაზზე.


მაგალითი


ქვემოთ მოყვანილი მაგალითი კითხულობს ფაილის თითო-თითო ხაზს, მანამ, სანამ არ გავა ფაილის ბოლოში:


<?php

$file = fopen("welcome.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);

?>



ფა ი ლში თ ი თ ო-თ ით ო ს ი მ ბოლოს წა კი თ ხვ ა



Fgetc() ფუნქცია გამოიყენება ფაილში თითო-თითო სიმბოლოს წასაკითხად.


შენიშვნა: ამ ფუნქციის გამოძახების შემდგომ ფაილის კურსორი გადავა შემდეგ სიმბოლოზე .


მაგალითი


ქვემოთ მოყვანილი მაგალითი ფაილში კითხულობს თითო-თითო სიმბოლოს, მანამ, სანამ ის არ მიაღწევს ფაილის დასასრულს :


<?php

$file=fopen("welcome.txt", "r") or exit("Unable to open file!");

while (!feof($file))

{

echo fgetc($file);

}

fclose($file);

?>



P HP - ფ აი ლი ს ატვი რ თ ვა



ფა ი ლი ს ა ტ ვ ი რთ ვ ი ს ფორ მ ი ს შე ქმ ნა



ქვემოთ მოყვანილია ფაილების ატვირთვის HTML ფორმა:


<html>

<body>

<form action="upload_file.php" method="post" enctype="multipart/form-data">

<label for="file">Filename:</label>

<input type="file" name="file" id="file" />

<br />

<input type="submit" name="submit" value="Submit" />

</form>

</body>

</html>


გავითვალისწინოთ შემდეგი HTML ფორმისათვის:


  • enctype ატრიბუტი <form> ტეგისათვის სპეციფიკაციას აკეთებს, თუ რომელი შემცველობითი ტიპი გამოიყენოს ფორმის გამოყენებისას .
  • "multipart/form-data" გამოიყენება, როდესაც ფორმა მოითხოვს ბინარულ მონაცემებს,
როგორიცაა ასატვირთი ფაილის შემცველობა.



შენიშვნა: მომხმარებელთათვის ფაილების ატვირთვის უფლების მიცემა წარმოადგენს დიდ რისკს.



ა ტ ვ ი რთ ვ ი ს ს კრი პ ტ ი ს შ ე ქმ ნ ა



"upload_file.php" შეიცავს ატვირთვის კოდს :


<?php

if ($_FILES["file"]["error"] > 0)

{

echo "Error: " . $_FILES["file"]["error"] . "<br />";

}

else

{

echo "Upload: " . $_FILES["file"]["name"] . "<br />";

echo "Type: " . $_FILES["file"]["type"] . "<br />";

echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";

echo "Stored in: " . $_FILES["file"]["tmp_name"];

}

?>


გლობალური PHP $_FILES მასივების გამოყენებით ჩვენ შეგვიძლია კომპიუტერიდან სერვერზე ავტვირთოთ ფაილები.



პირველი პარამეტრი არის input სახელი, ხოლო მეორე პარამეტრი შესაძლოა იყოს ნებისმიერი

"name ", "type", "size", "tmp_name", ან "error". ამის მსგავსად:


  • $_FILES["file"]["name"] - ატვირთული ფაილის სახელი
  • $_FILES["file"]["type"] - ატვირთული ფაილის ტიპი
  • $_FILES["file"]["size"] - ატვირთული ფაილის ზომა ბაიტებში
  • $_FILES["file"]["tmp_name"] - სერვერზე დაბრუნებული ფაილის დროებითი ასლი
  • $_FILES["file"]["error"] - შეცდომის კოდი

ეს არის ფაილების ატვირთვის ძალიან მარტილი გზა. დაცვისათვის, დავაწესოთ შეზღუდვები ასატვირთი ფაილების გაფართოებებზე.



შე ზ ღ უ დ ვ ა ატ ვ ი რთ ვ ა ზ ე



სკრიპტში ჩვენ ჩავამატებთ ფაილის ატვირთვის ზოგიერთ შეზღუდვებს . მომხმარებელს შეეძლება ატვირთოს მხოლოდ .gif, ან . jpeg ფაილები და ფაილის ზომა არ უნდა აღემატებოდეს 20 kb-ს:


<?php

if ((($_FILES["file"]["type"] == "image/gif")

|| ($_FILES["file"]["type"] == "image/jpeg")

|| ($_FILES["file"]["type"] == "image/pjpeg"))

&& ($_FILES["file"]["size"] < 20000))

{

if ($_FILES["file"]["error"] > 0)

{

echo "Error: " . $_FILES["file"]["error"] . "<br />";

}

else

{

echo "Upload: " . $_FILES["file"]["name"] . "<br />";

echo "Type: " . $_FILES["file"]["type"] . "<br />";

echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";

echo "Stored in: " . $_FILES["file"]["tmp_name"];

}

}

else

{

echo "Invalid file";

}

?>


შენიშვნა: IE-სათვის jpg ფაილების ცნობისათვის ტიპი უნდა იყოს pjpeg, ხოლო FireFox-

სათვის ტიპი უნდა იყოს jpeg.



ა ტ ვ ი რთ უ ლი ფა ი ლი ს და მ ა ხს ოვ რე ბა



ქვემოთ მოყვანილია მაგალითები, ატვირთული ფაილების დროებითი ასლის შექმნისა.



ფაილის დროები ასლები ქრებიან, როდესაც სკრიპტი ასრულებს მუშაობას. ატვირთული ფაილის შესანახად ჩვენ გვჭირდება მისი სხვა ადგილზე კოპირება:


<?php

if (($_FILES["file"]["type"] == "image/gif")

|| ($_FILES["file"]["type"] == "image/jpeg")

|| ($_FILES["file"]["type"] == "image/pjpeg")

&& ($_FILES["file"]["size"] < 20000))

{

if ($_FILES["file"]["error"] > 0)

{

echo "Return Code: " . $_FILES["file"]["error"] . "<br />";

}

else

{

echo "Upload: " . $_FILES["file"]["name"] . "<br />";

echo "Type: " . $_FILES["file"]["type"] . "<br />";

echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";

echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";

if (file_exists("upload/" . $_FILES["file"]["name"]))

{

echo $_FILES["file"]["name"] . " already exists. ";

}

else

{ move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);

echo "Stored in: " . "upload/" . $_FILES["file"]["name"];

}

}

}

else

{

echo "Invalid file";

}

?>



P HP C OOK IE S(ბ მ ულებ ი )



რა ა რი ს ბმ უ ლი (C OOK IE )?



ბმული არის ხშირად გამოყენებადი მომხმარებლის იდენტიფიკაციისათვის. ბმული არის პატარა ფაილი, რომელიც სერვერმა ჩადგა მომხმარებლის კომპიუტერში. რამდენჯერაც კომპიუტერი მოითხოვს მისამართს ბრაუზერში, იმდენჯერ გაეგზავნება მონაცემები ბმულს. PHP-თ, ჩვენ შეგვიძლია შევქმნათ და მივიღოთ ბმულები.



როგორ შე ვ ქმ ნ ა თ ბმ უ ლი?



setcookie() ფუნქცია გამოიყენება ბმულების დასასმელად.


შენიშვნა: setcookie() ფუნქცია უნდა დაიწეროს <html> ტეგამდე.

სინტაქსი:


setcookie(name, value, expire, path, domain);

მაგალითი:


ქვემოთ მოყვანილ მაგალითში ჩვენ შევქმნი ბმულს სახელით "user" და მივანიჭებთ მნიშვნელობას "Alex Porter":


?php

setcookie("user", "Alex Porter", time()+3600);

?>

<html>

<body>

</body>

</html>



როგორ შე ვ ა ს წოროთ ბმ უ ლი?


PHP $_COOKIE ცვლადი გამოიყენება ბმულის მნიშვნელობების შესასწორებლად.


ქვემოთ მოყვანილ მაგალითში, ჩვენ შევასწორებთ ბმულს სახელად "user" და გამოვსახავთ მას გვერდზე:


<?php

// Print a cookie

echo $_COOKIE["user"];

// A way to view all cookies print_r($_COOKIE);

?>


მიმდინარე მაგალითში ჩვენ გამოვიყენებთ isset() ფუნქციას, რათა ვიპოვოთ დასმული ბმული:


<html>

<body>

<?php

if (isset($_COOKIE["user"]))

echo "Welcome " . $_COOKIE["user"] . "!<br />";

else

echo "Welcome guest!<br />";

?>

</body>

</html>



როგორ წა ვ შა ლ ოთ ბმ უ ლი?



წაშლის მაგალითი:


<?php

// set the expiration date to one hour ago setcookie("user", "", time()-3600);

?>



თ უ ბრა უ ზ ე რი ა რ უ ზ რუ ნ ვ ე ლყ ოფს ბმ უ ლე ბს



თუ ბრაუზერი არ უზრუნველყოფს ბმულებს, ჩვენ უნდა გამოვიყენოთ სხვა მეთოდი, რათა ინფორმაცია გადავცეთ ერთი გვერდიდან მეორე გვერდზე.



ქვემოთ მოცემული ფორმა გადასცემს მომხმარებლის ინფორმაციას "welcome.php"-ს როდესაც მომხმარებელი იმოქმედებს "Submit" ღილაკზე:


<html>

<body>

<form action="welcome.php" method="post"> Name: <input type="text" name="name" /> Age: <input type="text" name="age" />

<input type="submit" />

</form>

</body>

</html>


შევასწოროთ მნიშვნელობა "welcome.php"-ში შემდეგის მსგავსად:


<html>

<body>

Welcome <?php echo $_POST["name"];?>.<br />

You are <?php echo $_POST["age"];?> years old.

</body>

</html>


0
65
1-ს მოსწონს
ავტორი:გიორგი ყვავილაშვილი
გიორგი ყვავილაშვილი
65
  
კომენტარები არ არის, დაწერეთ პირველი კომენტარი
0 1 0