بررسی توابع PHP
تابع rand : این تابع یک عدد تصادفی بین 1 تا 32767 را ایجاد می کند البته اگر آرگومان آن تعریف نشود در غیر این صورت یک عدد تصادفی بین حد پایین و حد بالای تعریف شده را به صورت تصادفی ایجاد می کند.
نکته : عدد ایجاد شده در هر بار اجرای تابع ممکن است تکراری باشد.
شکل کلی :
مثال :
<?php
?>
خروجی :
17825
80
دو تابع اول عددی تصادفی بین 1 تا 32767 تولید و چاپ می کند که ممکن است این عدد تکراری هم باشد و تابع سوم عددی تصادفی بین 10 تا 100 را ایجاد می کند.
تابع uniqid : این تابع یک رشته منحصر به فرد را ایجاد می کند. که شامل رشته قبلی نمی شود یعنی برعکس تابع rand که احتمال ایجاد عدد تکراری بود اینجا وجود ندارد و دارای دو آرگومان است :
- آرگومان اول : پیشوند ثابت که به اول رشته ایجاد شده توسط تابع الصاق می شود.
- آرگومان دوم : دو حالت true , false دارد که به طور پیش فرض false است و طول رشته تولیدی 13 کارکتر است و اگر true باشد طول رشته تولیدی 23 کاراکتر می شود البته بدون در نظر گرفتن پیشوند(آرگومان اول) است.
شکل کلی :
مثال :
<?php
?>
خروجی :
501a955e4c4ee7.83133945
php_501a955e4c4f82.38270220
در تابع اول، یک رشته تصادفی با طول 13 کاراکتر ایجاد می شود.
تابع دوم مقدار آرگومان دوم true است و خروجی تابع 23 کاراکتر خواهد بود.
تابع سوم مقدار پیشوند مشخص شده که طول رشته تولیدی 23+4 است.
تابع getrandmax : این تابع بزرگترین مقدار تابع rand را برمی گرداند این تابع به تنهای کاربرد نداره و فقط بزرگترین مقداری که تابع rand می تواند ایجاد کند را بر می گرداند(32767)
مثال :
<?php
?>
خروجی :
0.22397534104434
مقدار تابع اول همیشه 32767 است چون حد تابع rand از 1 تا 32767 است.
خط دوم با هر بار اجرای تابع یک مقدار متفاوت ایجاد می شود که طول آن از 5 بیشتر است.
تابع getdate : این تابع یک آرایه انجمنی که شامل اطلاعات مربوط به زمان است را بر می گرداند که به ترتیب شامل : ثانیه، دقیقه، ساعت، روز از ماه، روز از ھفته، ماه از سال، سال، روز از سال نام روز، نام ماه و برچسب زمان ھستند.
- [seconds] - ثانیه
- [minutes] - دقیقه
- [hours] - ساعت
- [mday] - چندمین روز ماه
- [wday] - چندمین روز هفته
- [year] - سال
- [yday] - چندمین روز سال
- [weekday] - نام روز در هفته
- [month] - نام ماه در سال
- [0] - مشخص کننده فرمت زمان در یونیکس
نکته : این تابع از تاریخ سرور استفاده می کند اگر شما از برنامه های مانند Easyphp و ... استفاده می کنید از آنجا که به صورت پیش فرض روی اروپا تنظیم شده است این تابع زمانی را که بر می گرداند با سیستم شما مغایر خواهد بود برای حل این مشکل باید به تنظیمات برنامه رفته و Timezone را روی آسیا/ تهران تنظیم کنید. در برنامه Easyphp به این شکل است.
مثال 1 :
<?php
print_r(getdate());
?>
خروجی :
Array
(
[seconds] => 2
[minutes] => 38
[hours] => 17
[mday] => 4
[wday] => 6
[mon] => 8
[year] => 2012
[yday] => 216
[weekday] => Saturday
[month] => August
[0] => 1344085682
)
همین طور که مشاهده می کنید می تواینم با استفاده از اندیس مشخص شده ای آرایه ای انجمنی تابع تاریخ مقادیر مورد نظر را استفاده کنیم برای درک بهتر به مثال بعد توجه کنید.
مثال 2 :
<?php
// تاریخ جاری سیستم را برمیگرداند
$now = getdate();
//ساعت و تاریخ را جداگانه در متغیر ذخیره می شود
$currentTime = $now["hours"] . ":" . $now["minutes"] . ":" . $now["seconds]; $currentDate = $now["year"] . "." . $now["mon"] . "." . $now["mday"];
// result: "It is now 18:7:22 on 2012.8.4 (example)
echo "It is now $currentTime on $currentDate";
?>
خروجی :
ابتدا مقدار خروجی تابع در آرایه now ذخیره شده و سپس با استفاده از اندیس آرایه ها تاریخ و ساعت را جدا کرده و چاپ می کنیم.
تابع date : از اين تابع براي کار با تاريخ استفاده مي شود و يکي از توابع کاربردي و کامل php است که پارامترهاي زيادي دارد که به بررسي آنها مي پردازيم خروجي اين تابع به ميلادي است.
دو آرگومان دارد که اولي فرمت تاريخ را و دومي تاريخ مشخصي را به تابع مي دهد.
شکل کلي:
date(الصاق تاريخ , فرمت)
فرمتهاي تابع:
فرمت |
توضيح | مقادير بازگشيي |
|---|---|---|
| روز | --- | --- |
| d | چندمين روز ماه به همراه صفرهاي مقدم | 01 تا 31 |
| D | نمايش متني نام روز هفته (سه حرف) | نام روزهاي هفته به صورت مخفف |
| j | چندمين روز ماه بدون صفرهاي مقدم | 1 تا 31 |
| l (حرف کوچگ) | نمايش متني کامل روزهاي هفته | شنبه تا جمعه |
| N | طبق استاندارد تاريخ و زمان ISO-8601 ، نمايش عددي روزهاي هفته که از دوشنبه شروع مي شود. | 1 (براي دوشنبه) تا 7 (براي يکشنبه) |
| S | پسوند ترتيبي انگليسي براي روزهاي يک ماه که دو کاراکتر که با پارامتر j استفاده مي شود. | st, nd, rd or th که با j استفاده مي شود |
| w | نمايش عددي روز هفته | 0 (براي يکشنبه) تا 6 (براي شنبه) |
| z | چندمين روز سال که از 0 شروع مي شود. | 0 تا 365 |
| هفته | --- | --- |
| W | طبق استاندارد ISO-8601، چندمين هفته سال را نمايش داده که هفته با دوشنبه شروع مي شود. | مثال: 42 که 42 مين هفته سال است |
| ماه | --- | --- |
| F | نمايش متني يک ماه مانند August | January تا December |
| m | نمايش عددي يک ماه به همراه صفرهاي مقدم | 01 تا 12 |
| M | نمايش متني کوتاه از يک ماه که سه حرفي است. | Jan تا Dec |
| n | نمايش عددي يک ماه بدون صفرهاي مقدم | 1 تا 12 |
| t | نمايش تعداد روزهاي ماه جاري | 28 تا 31 |
| سال | --- | --- |
| L | نشان مي دهد آبا سال کبيسه است | 1 اگر سال کبيسه باشد و 0 در غير اين صورت |
| o | طبق ISO-8601 ، عدد سال | مثال : 1999 يا 2003 |
| Y | نمايش عددي سال ، چهار رقمي | مثال : 1999 يا 2003 |
| y | نمايش دو رقمي سال | مثال: 99 يا 03 |
| زمان | --- | --- |
| a | نمايش حروف کوچک am يا pm | am يا pm |
| A | نمايش حروف بزرگ AM يا PM | AM يا PM |
| B | زمان اينترنت(در حالت عادي هر روز 24 ساعت و هر ساعت 60 دقيقه است ولي در سيستم Internet Time هر روز به 1000 بيت و هر بيت يک دقيقه و 26.4 ثانيه است) | 000 تا 999 |
| g | شکل 12 ساعته يک روز | 1 تا 12 |
| G | شکل 24 ساعته يک روز | 0 تا 23 |
| h | شکل 12 ساعته يک روز با صفرهاي مقدم | 01 تا 12 |
| H | شکل 24 ساعته يک روز با صفرهاي مقدم | 00 تا 23 |
| i | دقيقه، با صفرهاي مقدم | 00 تا 59 |
| s | ثانيه، با صفرهاي مقدم | 00 تا 59 |
| u | ميکرو ثانيه | مثال: 654321 |
| Timezone | --- | --- |
| e | معين کننده منطقه ساعت جهاني ( نصف النهار) | مثال : UTC, GMT, Atlantic/Azores |
| I | اختلاف تاريخ در روز | 0 وقتي که روز و 1 در غير اين صورت |
| O | اختلاف با ساعت جهاني گرينويچ (GMT) | مثال : +0200 |
| P | اختلاف با ساعت گرينويچ (added in PHP 5.1.3) | مثال : +02:00 |
| T | مخفف ساعت جهاني | مثال : EST, MDT ... |
| Z | محدوده ساعت جهاني به ثانيه (-43200 تا 43200) | -43200 تا 50400 |
| تاريخ و زمان کامل | --- | --- |
| c | فرمت زماني ISO-8601 | 2004-02-12T15:19:21+00:00 |
| r | فرمت زماني RFC 2822 | مثال : Thu, 21 Dec 2000 16:01:07 +0200 |
| U | ثانيه ها بعد از دوره يونيکس (January 1 1970 00:00:00 GMT) | See also time() |
مثال :
<?php
echo $today = date("F j, Y, g:i a"). "<br />"; // August 29, 2012, 6:32 pm
echo $today = date("m.d.y"). "<br />"; // 08.29.12
echo $today = date("j, n, Y"). "<br />"; // 29, 8, 2012
echo $today = date("Ymd"). "<br />"; // 20120829
echo $today = date('h-i-s, j-m-y, it is w Day'). "<br />"; // 06-32-27, 29-08-12, 3231 3227 3 Wedpm12
echo $today = date('\i\t \i\s \t\h\e jS \d\a\y.'). "<br />"; // it is the 29th day.
echo $today = date("D M j G:i:s T Y"). "<br />"; // Wed Aug 29 18:32:27 IRDT 2012
echo $today = date('H:m:s \m \i\s\ \m\o\n\t\h'). "<br />"; // 18:08:27 m is month
echo $today = date("H:i:s"). "<br />"; // 18:32:27
?>
خروجي :
08.29.12
29, 8, 2012
20120829
06-32-27, 29-08-12, 3231 3227 3 Wedpm12
it is the 29th day.
Wed Aug 29 18:32:27 IRDT 2012
18:08:27 m is month
18:32:27
خیلی تالارتخصصی ایه
با سلام. اگر بخوام با برنامه C اعداد تصادفی صحیح و بدون تکرار بین 1 و 6 ایجاد کنم باید چیکار کنم؟!!! خیلی خیلی فوررری
با سلام. اگر بخوام با برنامه C اعداد تصادفی صحیح و بدون تکرار بین 1 و 6 ایجاد کنم باید چیکار کنم؟!!! خیلی خیلی فوررری
با سلام. اگر بخوام با برنامه C اعداد تصادفی صحیح و بدون تکرار بین 1 و 6 ایجاد کنم باید چیکار کنم؟!!! خیلی خیلی فوررری
ممکن هست اموزش فریم ورک ها روهم قرار دهید