–
۲۳. تاریخ و زمان در PHP
تابع ()Date
date(format,timestamp)
پارامتر | شرح |
format |
ضروری. فرمت مهر زمانی را مشخص می کند
|
timestamp |
اختیاری. مهر زمانی را مشخص می کند. پیش فرض تاریخ و زمان فعلی است
|
نکته: مهر زمانی timestamp مجموعه ای از کاراکترها است که نشان دهنده تاریخ و/یا زمانی است که در آن یک رویداد خاص رخ داده است.
تاریخ
-
d – نشان دهنده روز ماه (01 تا 31) است.
-
m – نشان دهنده یک ماه (01 تا 12)
-
Y – یک سال را نشان می دهد (در چهار رقم)
-
l – (حرف کوچک “L”) – نشان دهنده روز هفته است
<?php
echo "Today is " . date("Y/m/d") . "<br>";
echo "Today is " . date("Y.m.d") . "<br>";
echo "Today is " . date("Y-m-d") . "<br>";
echo "Today is " . date("l");
?>

Today is 2022/09/22
Today is 2022.09.22
Today is 2022-09-22
Today is Thursday
استفاده از تابع ()Date برای درج خودکار تاریخ حق چاپ:
© 2010-<?php echo date("Y");?>

© 2010-2022
زمان
-
H – فرمت 24 ساعته یک ساعت (00 تا 23)
-
h – قالب 12 ساعته یک ساعت با صفرهای ابتدایی (01 تا 12)
-
i – دقیقه با صفرهای ابتدایی (00 تا 59)
-
s – ثانیه با صفرهای ابتدایی (00 تا 59)
-
a – حروف کوچک Ante meridiem و Post meridiem (صبح یا بعد از ظهر am و pm)
<?php
echo "The time is " . date("h:i:sa");
?>

The time is 09:31:53am
نکته: توجه داشته باشید که تابع ()date تاریخ/زمان فعلی سرور را برمی گرداند!
منطقه زمانی
<?php
date_default_timezone_set("America/New_York");
echo "The time is " . date("h:i:sa");
?>

The time is 03:41:36am
ایجاد یک تاریخ با تابع ()mktime
mktime(hour, minute, second, month, day, year)
<?php
$d=mktime(11, 14, 54, 8, 12, 2014);
echo "Created date is " . date("Y-m-d h:i:sa", $d);
?>

Created date is 2014-08-12 11:14:54am
ایجاد تاریخ از یک رشته با ()strtotime
تابع ()strtotime برای تبدیل یک رشته تاریخ قابل خواندن توسط انسان به یک مهر زمانی یونیکس (تعداد ثانیه از 1 ژانویه 1970 ساعت 00:00:00 GMT) استفاده می شود.
سینتکس:
strtotime(time, now)
<?php
$d=strtotime("10:30pm April 15 2014");
echo "Created date is " . date("Y-m-d h:i:sa", $d);
?>

Created date is 2014-04-15 10:30:00pm
<?php
$d=strtotime("tomorrow");
echo date("Y-m-d h:i:sa", $d) . "<br>";
$d=strtotime("next Saturday");
echo date("Y-m-d h:i:sa", $d) . "<br>";
$d=strtotime("+3 Months");
echo date("Y-m-d h:i:sa", $d) . "<br>";
?>

2022-09-23 12:00:00am
2022-09-24 12:00:00am
2022-12-22 10:28:44am
حل چند مثال از DATE
<?php
$startdate = strtotime("Saturday");
$enddate = strtotime("+6 weeks", $startdate);
while ($startdate < $enddate) {
echo date("M d", $startdate) . "<br>";
$startdate = strtotime("+1 week", $startdate);
}
?>

Sep 24
Oct 01
Oct 08
Oct 15
Oct 22
Oct 29
<?php
$d1=strtotime("July 04");
$d2=ceil(($d1-time())/60/60/24);
echo "There are " . $d2 ." days until 4th of July.";
?>

There are -80 days until 4th of July.
–
۲۴. Include کردن فایل در PHP
دستورات Include و Require
دستورات Include و Require یکسان هستند، به جز در صورت ارور و اعلان خطا:
- require یک خطای مهلک (E_COMPILE_ERROR) ایجاد می کند و اسکریپت را متوقف می کند.
-
include فقط یک هشدار (E_WARNING) تولید می کند و اسکریپت ادامه می یابد.
include 'filename';
or
require 'filename';
مثالهای Include:
مثال ۱ :
<?php
echo "<p>Copyright © 1999-" . date("Y") . " raiatec.com</p>";
?>
<html>
<body>
<h3>Welcome to my home page!</h3>
<p>Some text.</p>
<p>Some more text.</p>
<?php include 'footer.php';?>
</body>
</html>

Welcome to my home page!
Some text.
Some more text.
Copyright © 1999-2022 raiatec.com
مثال۲:
<?php
echo '<a href="/default.asp">Home</a> -
<a href="/html/default.asp">HTML Tutorial</a> -
<a href="/css/default.asp">CSS Tutorial</a> -
<a href="/js/default.asp">JavaScript Tutorial</a> -
<a href="default.asp">PHP Tutorial</a>';
?>
<html>
<body>
<div class="menu">
<?php include 'menu.php';?>
</div>
<h3>Welcome to my home page!</h3>
<p>Some text.</p>
<p>Some more text.</p>
</body>
</html>

Home – HTML Tutorial – CSS Tutorial – JavaScript Tutorial – PHP 7 Tutorial
Welcome to my home page!
Some text.
Some more text.
مثال ۳ :
<?php
$color='red';
$car='BMW';
?>
<html>
<body>
<h3>Welcome to my home page!</h3>
<?php include 'vars.php';
echo "I have a $color $car.";
?>
</body>
</html>

Welcome to my home page!
I have a red BMW.
مقایسه include و require
<html>
<body>
<h3>Welcome to my home page!</h3>
<?php include 'noFileExists.php';
echo "I have a $color $car.";
?>
</body>
</html>

Welcome to my home page!
I have a .
<html>
<body>
<h3>Welcome to my home page!</h3>
<?php require 'noFileExists.php';
echo "I have a $color $car.";
?>
</body>
</html>

Welcome to my home page!
Warning: require(noFileExists.php): Failed to open stream: No such file or directory in C:\xampp\htdocs\phptest.com\public_html\index.php on line 5
Fatal error: Uncaught Error: Failed opening required ‘noFileExists.php’ (include_path=’C:\xampp\php\PEAR’) in C:\xampp\htdocs\phptest.com\public_html\index.php:5 Stack trace: #0 {main} thrown in C:\xampp\htdocs\phptest.com\public_html\index.php on line 5
هنگامی که فایل مورد نیاز برنامه است، از require استفاده کنید.
زمانی که فایل مورد نیاز نیست از عبارت include استفاده کنید و زمانی که فایل پیدا نشد برنامه باید ادامه یابد.
–
۲۵. کار با فایلها در PHP
ایجاد تغییرات در فایلها
هنگام دستکاری فایل ها مراقب باشید!
اگر کار اشتباهی انجام دهید می توانید آسیب های زیادی وارد کنید. خطاهای رایج عبارتند از: ویرایش فایل اشتباه، پر کردن هارد دیسک با داده های زباله (garbage) ، و حذف محتوای یک فایل به صورت تصادفی.
تابع ()readfile
AJAX = Asynchronous JavaScript and XML
CSS = Cascading Style Sheets
HTML = Hyper Text Markup Language
PHP = PHP Hypertext Preprocessor
SQL = Structured Query Language
SVG = Scalable Vector Graphics
XML = EXtensible Markup Language
<?php
echo readfile("webdictionary.txt");
?>

AJAX = Asynchronous JavaScript and XML CSS = Cascading Style Sheets HTML = Hyper Text Markup Language PHP = PHP Hypertext Preprocessor SQL = Structured Query Language SVG = Scalable Vector Graphics XML = EXtensible Markup Language236
–
۲۶. باز کردن/خواندن/بستن فایل
باز کردن فایل با تابع ()fopen
AJAX = Asynchronous JavaScript and XML
CSS = Cascading Style Sheets
HTML = Hyper Text Markup Language
PHP = PHP Hypertext Preprocessor
SQL = Structured Query Language
SVG = Scalable Vector Graphics
XML = EXtensible Markup Language
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
echo fread($myfile,filesize("webdictionary.txt"));
fclose($myfile);
?>

AJAX = Asynchronous JavaScript and XML CSS = Cascading Style Sheets HTML = Hyper Text Markup Language PHP = PHP Hypertext Preprocessor SQL = Structured Query Language SVG = Scalable Vector Graphics XML = EXtensible Markup Language
حالت ها | شرح |
r |
یک فایل فقط برای خواندن باز می کند. نشانگر فایل از ابتدای فایل شروع می شود
|
w |
یک فایل فقط برای نوشتن باز می کند. محتویات فایل را پاک می کند یا در صورت نبود فایل جدید ایجاد می کند. نشانگر فایل از ابتدای فایل شروع می شود
|
a |
یک فایل فقط برای نوشتن باز می کند. داده های موجود در فایل حفظ می شود. نشانگر فایل از انتهای فایل شروع می شود. در صورت عدم وجود فایل، فایل جدیدی ایجاد می کند
|
x |
یک فایل جدید فقط برای نوشتن ایجاد می کند. FALSE را برمیگرداند و اگر فایل از قبل وجود داشته باشد، یک خطا را نشان میدهد
|
+r |
یک فایل جدید فقط برای نوشتن ایجاد می کند. FALSE را برمیگرداند و اگر فایل از قبل وجود داشته باشد، یک خطا را نشان میدهد
|
+w |
یک فایل برای خواندن/نوشتن باز می کند. محتویات فایل را پاک می کند یا در صورت نبود فایل جدید ایجاد می کند. نشانگر فایل از ابتدای فایل شروع می شود
|
+a |
یک فایل برای خواندن/نوشتن باز می کند. داده های موجود در فایل حفظ می شود. نشانگر فایل از انتهای فایل شروع می شود. در صورت عدم وجود فایل، فایل جدیدی ایجاد می کند
|
+x |
یک فایل جدید برای خواندن/نوشتن ایجاد می کند. FALSE را برمیگرداند و اگر فایل از قبل وجود داشته باشد، یک خطا را نشان میدهد
|
خواندن فایل با تابع ()fread
fread($myfile,filesize("webdictionary.txt"));
بستن فایل با تابع ()fclose
نکته: این یک تمرین برنامه نویسی خوب است که همه فایل ها را بعد از اتمام کار با آنها ببندید. شما نمی خواهید یک فایل باز در سرور شما در حال اجرا باشد و منابع را اشغال کند!
<?php
$myfile = fopen("webdictionary.txt", "r");
// some code to be executed....
fclose($myfile);
?>
خواندن یک خط با تابع ()fgets
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
echo fgets($myfile);
fclose($myfile);
?>

AJAX = Asynchronous JavaScript and XML
بررسی پایان فایل با تابع ()feof
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
// Output one line until end-of-file
while(!feof($myfile)) {
echo fgets($myfile) . "<br>";
}
fclose($myfile);
?>

AJAX = Asynchronous JavaScript and XML
CSS = Cascading Style Sheets
HTML = Hyper Text Markup Language
PHP = PHP Hypertext Preprocessor
SQL = Structured Query Language
SVG = Scalable Vector Graphics
XML = EXtensible Markup Language
خواندن یک کاراکتر با تابع ()fgetc
<?php
$myfile = fopen("webdictionary.txt", "r") or die("Unable to open file!");
// Output one character until end-of-file
while(!feof($myfile)) {
echo fgetc($myfile);
}
fclose($myfile);
?>

AJAX = Asynchronous JavaScript and XML CSS = Cascading Style Sheets HTML = Hyper Text Markup Language PHP = PHP Hypertext Preprocessor SQL = Structured Query Language SVG = Scalable Vector Graphics XML = EXtensible Markup Language
–
۲۷. ایجاد/نوشتن فایل
ایجاد فایل با تابع ()fopen
$myfile = fopen("testfile.txt", "w")
نوشتن در فایل با تابع ()fwrite
<?php
$myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
$txt = "John Doe\n";
fwrite($myfile, $txt);
$txt = "Jane Doe\n";
fwrite($myfile, $txt);
fclose($myfile);
?>
John Doe
Jane Doe
رونویسی
<?php
$myfile = fopen("newfile.txt", "w") or die("Unable to open file!");
$txt = "Mickey Mouse\n";
fwrite($myfile, $txt);
$txt = "Minnie Mouse\n";
fwrite($myfile, $txt);
fclose($myfile);
?>
Mickey Mouse
Minnie Mouse
اضافه کردن متن
<?php
$myfile = fopen("newfile.txt", "a") or die("Unable to open file!");
$txt = "Donald Duck\n";
fwrite($myfile, $txt);
$txt = "Goofy Goof\n";
fwrite($myfile, $txt);
fclose($myfile);
?>
Mickey Mouse
Minnie Mouse
Donald Duck
Goofy Goof
–
۲۸. آپلود فایل
پیکربندی فایل php.ini
file_uploads = On
ساخت فرم HTML
<!DOCTYPE html>
<html>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
Select image to upload:
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Upload Image" name="submit">
</form>
</body>
</html>
-
اطمینان حاصل کنید که فرم از متد “post” استفاده می کند
-
فرم همچنین به ویژگی زیر نیاز دارد: enctype=”multipart/form-data”. مشخص می کند که از کدام نوع محتوا هنگام ارسال فرم استفاده شود
-
ویژگی “type=”file تگ <input> فیلد ورودی را به عنوان کنترل انتخاب فایل با دکمه “Browse” در کنار کنترل ورودی نشان می دهد.فرم بالا داده ها را به فایلی به نام “upload.php” ارسال می کند که در ادامه آن را ایجاد خواهیم کرد.
ایجاد اسکریپت آپلود فایل
<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
echo "File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "File is not an image.";
$uploadOk = 0;
}
}
?>
توضیح کد بالا:
-
“/target_dir = “uploads$ فهرستی را که قرار است فایل در آن قرار گیرد را مشخص می کند
-
target_file$ مسیر فایلی که باید آپلود شود را مشخص می کند
-
1=uploadOk$ هنوز استفاده نشده است (بعدا استفاده خواهد شد)
-
imageFileType$ پسوند فایل را نگه می دارد (با حروف کوچک)
-
سپس بررسی می نماید که آیا فایل تصویر یک تصویر واقعی است یا یک تصویر جعلی
نکته: شما باید یک دایرکتوری جدید به نام “uploads” در دایرکتوری که فایل “upload.php” در آن قرار دارد ایجاد کنید. فایل های آپلود شده در آنجا ذخیره می شوند.
بررسی کنید که آیا فایل از قبل وجود دارد یا خیر
// Check if file already exists
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
محدود کردن اندازه فایل
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
محدود کردن نوع فایل
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
تکمیل اسکریپت آپلود فایل
<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
echo "File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "File is not an image.";
$uploadOk = 0;
}
}
// Check if file already exists
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 500000) {
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "The file ". htmlspecialchars( basename( $_FILES["fileToUpload"]["name"])). " has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
}
?>
منبع:
w3schools.com