کار با فایل ها و پوشه ها (folder) در PHP

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
فهرست مطالب:

  1. باز کردن و بستن یک فایل، با توابع fopen و fclose در PHP
  2. ساخت یک فایل جدید، در PHP
  3. نوشتن اطلاعات، در یک فایل موجود، با تابع fwrite در PHP
  4. حذف کردن یک فایل، با تابع unlink در PHP
  5. آپلود (upload) یک فایل، در PHP
  6. آپلود (upload) همزمان چند فایل، در PHP
  7. افزایش حداکثر حجم قابل آپلود (upload) برای فایل ها، در PHP و اطمینان از قابل آپلود بودن فایل های بزرگ
  8. به دست آوردن حجم یک فایل، با تابع filesize در PHP
  9. کپی کردن یک فایل از یک فولدر، به درون یک فولدر دیگر (با نام جدید)، با دستور copy در PHP
  10. از حالت فشرده در آوردن (unzip) یک فایل zip ، در PHP
  11. باز کردن یک فایل متنی و جایگزین کردن برخی عبارت ها (رشته ها - strings) با عبارت های دیگر و ذخیره به صورت یک فایل جدید، با کدهای PHP
  12. به دست آوردن مسیر فولدر حاوی فایل فعلی (parent directory's path)، با تابع dirname در PHP
  13. به دست آوردن لیست فایل های موجود در یک پوشه (Folder)، با تابع scandir در PHP
  14. یافتن پوشه ها (Folders) یا فایل هایی که نام آنها در یک الگوی (pattern) مشخص صدق می کند، با تابع glob در PHP
  15. چک کردن اینکه آیا یک نام ذخیره شده به صورت یک رشته (string)، نام یک پوشه (Folder) می باشد یا خیر، با تابع is_dir در PHP
  16. تشخیص نوع (type) یک فایل، با تابع filetype در PHP
  17. به دست آوردن زمان آخرین بار دسترسی (access) به یک فایل، با تابع fileatime در PHP
  18. به دست آوردن زمان آخرین بار اصلاح (modify) یک فایل، با تابع filemtime در PHP
  19. به دست آوردن زمان آخرین بار ایجاد تغییر (change) در inode یک فایل، با تابع filectime در PHP
  20. منظور از inode یک فایل چیست ؟ (در PHP)
  21. ساخت یک پوشه (Folder) جدید، با تابع mkdir در PHP
  22. حذف کردن یک پوشه (Folder)، با تابع rmdir در PHP
  23. به دست آوردن اجازه های (permissions) مربوط به یک فایل، با تابع fileperms در PHP
  24. به دست آوردن مقدار فضای خالی یک فایل سیستمی (filesystem) یا یک درایو (disk partition)، با تابع disk_free_space در PHP
  25. به دست آوردن مقدار کل فضای (خالی و غیر خالی) یک فایل سیستمی (filesystem) یا یک درایو (disk partition)، با تابع disk_total_space در PHP
  26. چک کردن مطابق بودن نام یک فایل (filename) و یا در کل، یک رشته (string)، با یک الگوی (pattern) مشخص، با تابع fnmatch در PHP
  27. ساخت یک فایل به صورت موقتی (temporary)، با تابع tmpfile در PHP
  28. ساخت لینک سخت (hard link) به یک فایل (وجود داشتن فایل با دو یا چند نام و در محل های مختلف، اما به صورت واحد و با اطلاعات یکسان، حتی در صورت تغییر دادن یکی از آنها)، با تابع link در PHP
  29. چک کردن وجود داشتن یک فایل، با تابع file_exists در PHP


منبع: کلیدستان
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
باز کردن و بستن یک فایل، با توابع fopen و fclose در PHP

باز کردن و بستن یک فایل، با توابع fopen و fclose در PHP

با استفاده از تابع fopen در PHP ، می توانیم یک فایل را باز کنیم و همچنین، تابع fclose ، می تواند برای بستن فایل باز شده، به کار رود. شیوه کلی استفاده از این دو تابع، به صورت زیر می باشد :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$file[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#990000]fopen[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"example.txt"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"r"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#666666][I]// some codes[/I][/COLOR]

[COLOR=#990000]fclose[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$file[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
عبارت "r" که درون پرانتز تابع fopen نوشته شده است، تعیین کرده که تنها می خواهیم از فایل مورد نظر، اطلاعاتی را بخوانیم. برای موارد دیگر، مثل نوشتن در فایل، باید عبارت های بخصوص دیگری نوشته شود.

چنانچه بخواهیم، در صورتیکه فایل مورد نظر، قابل باز شدن نباشد (مثلا، اصلا فایل موجود نباشد) آنگاه یک پیام به کاربر نمایش داده شود، می توانیم کدهای زیر را بنویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$file[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#990000]fopen[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"welcome.txt"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"r"[/COLOR][COLOR=#009900])[/COLOR] or [COLOR=#990000]exit[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"عدم موفقیت در باز کردن فایل"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#666666][I]// some codes[/I][/COLOR]

[COLOR=#990000]fclose[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$file[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
به مثال زیر توجه کنید :

[h=4]مثال :[/h]فرض کنید در یک فایل با نام example.txt (دقت کنید که txt پسوند فایل است که نوع فایل را مشخص می کند)، عبارت ((hello)) نوشته شده است. اکنون ما قصد داریم که با دستورات PHP ، فایل example.txt را باز کرده و عبارت نوشته شده در آن را در خروجی، به کاربر نمایش بدهیم. برای این منظور، کدهای زیر را می نویسیم (فرض می شود که صفحه PHP شامل این کدها و همچنین فایل example.txt ، هر دو در یک فولدر قرار دارند) :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$file[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#990000]fopen[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"example.txt"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"r"[/COLOR][COLOR=#009900])[/COLOR] or [COLOR=#990000]exit[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"عدم موفقیت در باز کردن فایل"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#B1B100]while[/COLOR][COLOR=#009900]([/COLOR][COLOR=#339933]![/COLOR][COLOR=#990000]feof[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$file[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#990000]fgetc[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$file[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#990000]fclose[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$file[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]Untitled.jpg
حالا این بار، عمدا نام فایل را اشتباه می نویسیم تا ببینیم آیا خروجی PHP ، همان پیام تعیین شده توسط ما، می باشد یا خیر (البته قبل از آن، پیامی خطایی نیز، توسط خود PHP ، نمایش داده می شود) :

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$file[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#990000]fopen[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"another_name.txt"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#0000FF]"r"[/COLOR][COLOR=#009900])[/COLOR] or [COLOR=#990000]exit[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"عدم موفقیت در باز کردن فایل"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#B1B100]while[/COLOR][COLOR=#009900]([/COLOR][COLOR=#339933]![/COLOR][COLOR=#990000]feof[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$file[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#990000]fgetc[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$file[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#990000]fclose[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$file[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :Untitled.jpg[/h]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
ساخت یک فایل جدید، در PHP

ساخت یک فایل جدید، در PHP

دستور fopen در PHP ، برای باز کردن یک فایل به کار می رود، اما این دستور، برای ساخت یک فایل جدید نیز مورد استفاده قرار می گیرد. تنها نکته این است که باید برای دستور fopen ، حالت write که به معنای نوشتن در فایل است را انتخاب کنیم. این انتخاب، با نوشتن حرف w در پرانتز دستور fopen صورت می گیرد (w حرف اول کلمه write می باشد).

به مثال زیر توجه کنید :

[h=4]مثال :[/h]فرض کنید بخواهیم فایلی با نام myFile.txt بسازیم، برای این منظور، کدهای زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$FileName[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"myFile.txt"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$FileHandle[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]fopen[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$FileName[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#0000FF]'w'[/COLOR][COLOR=#009900])[/COLOR] or [COLOR=#990000]die[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"can't open file"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#990000]fclose[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$FileHandle[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]فایلی با نام myFile.txt ، در همان محل فایل PHP صفحه، ساخته می شود (فایل دارای هیچ متنی نیست و خالی می باشد).
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
نوشتن اطلاعات، در یک فایل موجود، با تابع fwrite در PHP

نوشتن اطلاعات، در یک فایل موجود، با تابع fwrite در PHP

با استفاده از PHP ، می توانیم اطلاعات مورد نظرمان را درون فایل های متنی (text files) بنویسیم. برای این منظور، تابع fwrite در PHP به کار می رود. ابتدا باید فایل مورد نظر را با تابع fopen باز کنیم، سپس با تابع fwrite ، اطلاعات مورد نظرمان را در فایل متنی می نویسیم و در آخر، با تابع fclose ، فایل را می بندیم. البته با این روش، تمامی اطلاعات موجود در فایل، پاک می شود و فایل دوباره از نو نوشته می شود، اما در ادامه، روشی را هم برای نوشتن اطلاعات، در ادامه اطلاعات قبلی فایل، شرح خواهیم داد.

به مثال زیر توجه کنید :

مثال :


کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$FileName[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"myFile.txt"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$FileHandle[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]fopen[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$FileName[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#0000FF]'w'[/COLOR][COLOR=#009900])[/COLOR] or [COLOR=#990000]die[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"can't open file"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#000088]$stringData[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"www.www.www.iran-eng.ir"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#990000]fwrite[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$FileHandle[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#000088]$stringData[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#990000]fclose[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$FileHandle[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
نتیجه :

فایل با نام myFile.txt ، توسط PHP باز می شود و سپس عبارت www.www.www.iran-eng.ir ، در ابتدای آن نوشته خواهد شد (اگر اطلاعاتی قبلا در آن موجود باشد، آن اطلاعات پاک می شود). دقت داشته باشید که اگر دستور fopen ، فایلی با این نام، پیدا نکند، یک فایل با این نام خواهد ساخت (این مورد، ویژگی دستور fopen می باشد).


نوشتن اطلاعات، در ادامه اطلاعات یک فایل موجود، با تابع fwrite در PHP :

همان طور که قبلا شرح دادیم، روش قبل باعث می شود که تمامی اطلاعات فایل متنی، حذف شده و فایل از نو نوشته شود. ولی شاید بخواهیم که اطلاعات جدید، در ادامه همان اطلاعات قبلی فایل نوشته شود، برای این منظور، کدهایی مشابه آن کدها باید بنویسیم و تنها تفاوت این است که این بار باید فایل را در حالت append (کلمه append به معنای افزودن یا الحاق کردن می باشد) باز کنیم. بنابراین درون پرانتز دستور fopen ، به جای حرف w که از اول کلمه write گرفته شده است، حرف a از اول کلمه append را می نویسیم تا فایل در حالت append باز شود.

به مثال زیر توجه کنید :

مثال :


کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$FileName[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"myFile.txt"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$FileHandle[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]fopen[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$FileName[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#0000FF]'a'[/COLOR][COLOR=#009900])[/COLOR] or [COLOR=#990000]die[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"can't open file"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#000088]$stringData[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"www.www.www.iran-eng.ir"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#990000]fwrite[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$FileHandle[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#000088]$stringData[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#990000]fclose[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$FileHandle[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
نتیجه :

فایل با نام myFile.txt ، توسط PHP باز می شود و سپس عبارت www.www.www.iran-eng.ir ، بعد از اطلاعات موجود در آن، نوشته خواهد شد.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
آپلود (upload) یک فایل، در PHP

آپلود (upload) یک فایل، در PHP

معمولا سایت های کاربردی مختلف، قسمتی را برای آپلود (upload) فایل توسط کاربر قرار می دهند تا کاربر بتواند یک عکس، فایل فشرده شده (zip) یا هر نوع فایلی که مد نظر بوده است را بر روی سرور سایت، آپلود نماید. باید دقت داشت که هنگامی که به کاربر اجازه می دهیم که فایلی را بر روی سرور سایت ما آپلود کند، عملا راهی برای نفوذ به سایت خود، در اختیار وی قرار داده ایم، بنابراین برای اینکه از سوء استفاده های احتمالی جلوگیری کنیم، باید یک سری محدودیت را برای آپلود فایل اعمال نماییم. ابتدا یک کد ساده را برای آپلود فایل معرفی می کنیم، اما این کد به درد استفاده واقعی نمی خورد و تنها برای این است که با چگونگی کدنویسی برای آپلود فایل آشنا بشوید، پس از آن، یک کد حرفه ای تر را معرفی می کنیم که با اعمال یک سری محدودیت، امنیت را بیشتر می کند.

برای قسمت آپلود، ابتدا یک فرم HTML می سازیم و سپس اطلاعات حاصل از فرم را به یک فایل PHP می فرستیم تا بر روی آن اطلاعات، پردازش کند (این شیوه کلی ساخت فرم ها است). بنابراین یک فایل با نامی دلخواه می سازیم و کدهای زیر را درون آن می نویسیم (چون یک فرم HTML است، پس می تواند پسوند فایل، html یا php باشد) :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#339933]<[/COLOR]html[COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]body[COLOR=#339933]>[/COLOR]

[COLOR=#339933]<[/COLOR]form action[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"upload_file.php"[/COLOR] method[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"post"[/COLOR] enctype[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"multipart/form-data"[/COLOR][COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]label [COLOR=#B1B100]for[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#339933]>[/COLOR]Filename[COLOR=#339933]:</[/COLOR]label[COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]input type[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"file"[/COLOR] name[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"file"[/COLOR] id[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#339933]><[/COLOR]br[COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]input type[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"submit"[/COLOR] name[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"submit"[/COLOR] value[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"Submit"[/COLOR][COLOR=#339933]>[/COLOR]
[COLOR=#339933]</[/COLOR]form[COLOR=#339933]>[/COLOR]

[COLOR=#339933]</[/COLOR]body[COLOR=#339933]>[/COLOR]
[COLOR=#339933]</[/COLOR]html[COLOR=#339933]>[/COLOR][/FONT]
[/FONT][/COLOR]
همان طور که از کد بالا مشخص است، این فرم، اطلاعات را با روش POST ، به فایل upload_file.php می فرستد تا این فایل، بر روی اطلاعات دریافتی، پردازش کند. مشخصه enctype برای فرم، مشخص می کند که نوع اطلاعاتی که کاربر ارسال می کند، چه می باشد. با انتخاب multipart/form-data برای این مشخصه، اعلام کرده ایم که اطلاعات ارسالی، به صورت اطلاعات دودویی (binary data) است.

درون تگ input ، مشخصه type را برابر file قرار داده ایم تا اعلام کنیم که نوع ورودی، به صورت فایل می باشد. بنابراین درون فرم، یک دکمه browse به کاربر نمایش داده می شود تا با آن بتواند فایل مورد نظر را از کامپیوتر خود انتخاب نماید.

ظاهر فرم، به صورت زیر خواهد بود :php-2.png
یک فایل با نام upload_file.php می سازیم و کدهای زیر را درون آن می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"error"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]>[/COLOR] [COLOR=#CC66CC]0[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Error: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"error"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]"<br>"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR][COLOR=#B1B100]else[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Upload: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]"<br>"[/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Type: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]"<br>"[/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Size: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"size"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]/[/COLOR] [COLOR=#CC66CC]1024[/COLOR][COLOR=#009900])[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]" kB<br>"[/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Stored in: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"tmp_name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
متغیر $_FILES ، یک متغیر فوق سراسری (superglobal) می باشد.

[h=2]ایجاد یک سری محدودیت برای آپلود فایل :[/h]همان طور که گفتیم، امکان آپلود فایل در هاست سایت، روزنه ای امنیتی خواهد بود، مثلا یک هکر می تواند فایلی حاوی یک سری کد مخرب (به صورت یک صفحه اینترنتی) را در سایت شما آپلود کرده و سپس با وارد کردن آدرس مسیر آپلود آن فایل در مرورگر خود، آن را اجرا نماید. بنابراین آن کدهای مخرب، به صورت یک صفحه از سایت شما اجرا شده و ممکن است که توسط آن، فرد هکر اطلاعات بخشی از سایت را تخریب کرده و یا به سرقت ببرد. بنابراین باید برای نوع فایل و یک سری ویژگی های دیگر فایل، محدودیت هایی را اعمال کنیم.

این بار، کدهای فایل upload_file.php را به صورت زیر می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$allowedExts[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]array[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"gif"[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#0000FF]"jpeg"[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#0000FF]"jpg"[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#0000FF]"png"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$temp[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]explode[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"."[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$extension[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]end[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$temp[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#0000FF]"image/gif"[/COLOR][COLOR=#009900])[/COLOR]
[COLOR=#339933]||[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#0000FF]"image/jpeg"[/COLOR][COLOR=#009900])[/COLOR]
[COLOR=#339933]||[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#0000FF]"image/jpg"[/COLOR][COLOR=#009900])[/COLOR]
[COLOR=#339933]||[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#0000FF]"image/pjpeg"[/COLOR][COLOR=#009900])[/COLOR]
[COLOR=#339933]||[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#0000FF]"image/x-png"[/COLOR][COLOR=#009900])[/COLOR]
[COLOR=#339933]||[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#0000FF]"image/png"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR]
[COLOR=#339933]&&[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"size"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]<[/COLOR] [COLOR=#CC66CC]20000[/COLOR][COLOR=#009900])[/COLOR]
[COLOR=#339933]&&[/COLOR] [COLOR=#990000]in_array[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$extension[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#000088]$allowedExts[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"error"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]>[/COLOR] [COLOR=#CC66CC]0[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
        [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Error: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"error"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]"<br>"[/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#009900]}[/COLOR][COLOR=#B1B100]else[/COLOR][COLOR=#009900]{[/COLOR]
        [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Upload: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]"<br>"[/COLOR][COLOR=#339933];[/COLOR]
        [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Type: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]"<br>"[/COLOR][COLOR=#339933];[/COLOR]
        [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Size: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"size"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]/[/COLOR] [COLOR=#CC66CC]1024[/COLOR][COLOR=#009900])[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]" kB<br>"[/COLOR][COLOR=#339933];[/COLOR]
        [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Stored in: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"tmp_name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#009900]}[/COLOR]
[COLOR=#009900]}[/COLOR][COLOR=#B1B100]else[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Invalid file"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
در کد بالا تعیین کرده ایم که نوع فایلی که کاربر آپلود می کند، تنها می تواند gif یا jpeg یا png باشد و حداکثر حجم آن نیز باید 20 کیلوبایت (kB) باشد (فایل های بزرگتر، آپلود نخواهند شد). اگر کاربر، فایلی را انتخاب کند که در شرایط فوق صدق نکند، آنگاه یک پیام با عنوان Invalid file به وی نمایش داده می شود.

[h=2]ذخیره فایل آپلود شده :[/h]با کد قبل، تنها یک کپی از فایل، به صورت موقت نگهداری می شود. عمر این نسخه کپی از فایل، تنها تا پایان اجرای کدها می باشد، بنابراین باید کدهایمان را به گونه ای تغییر بدهیم که بتوانیم فایل را در یک فولدر از سایت، ذخیره نماییم. کدهای فایل upload_file.php را به صورت زیر تکمیل می کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$allowedExts[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]array[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"gif"[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#0000FF]"jpeg"[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#0000FF]"jpg"[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#0000FF]"png"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$temp[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]explode[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"."[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$extension[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]end[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$temp[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#0000FF]"image/gif"[/COLOR][COLOR=#009900])[/COLOR]
[COLOR=#339933]||[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#0000FF]"image/jpeg"[/COLOR][COLOR=#009900])[/COLOR]
[COLOR=#339933]||[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#0000FF]"image/jpg"[/COLOR][COLOR=#009900])[/COLOR]
[COLOR=#339933]||[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#0000FF]"image/pjpeg"[/COLOR][COLOR=#009900])[/COLOR]
[COLOR=#339933]||[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#0000FF]"image/x-png"[/COLOR][COLOR=#009900])[/COLOR]
[COLOR=#339933]||[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#0000FF]"image/png"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR]
[COLOR=#339933]&&[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"size"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]<[/COLOR] [COLOR=#CC66CC]20000[/COLOR][COLOR=#009900])[/COLOR]
[COLOR=#339933]&&[/COLOR] [COLOR=#990000]in_array[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$extension[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#000088]$allowedExts[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"error"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]>[/COLOR] [COLOR=#CC66CC]0[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
        [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Return Code: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"error"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]"<br>"[/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#009900]}[/COLOR][COLOR=#B1B100]else[/COLOR][COLOR=#009900]{[/COLOR]
        [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Upload: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]"<br>"[/COLOR][COLOR=#339933];[/COLOR]
        [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Type: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]"<br>"[/COLOR][COLOR=#339933];[/COLOR]
        [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Size: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"size"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]/[/COLOR] [COLOR=#CC66CC]1024[/COLOR][COLOR=#009900])[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]" kB<br>"[/COLOR][COLOR=#339933];[/COLOR]
        [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Temp file: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"tmp_name"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]"<br>"[/COLOR][COLOR=#339933];[/COLOR]

        [COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#990000]file_exists[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"upload/"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
            [COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]" already exists. "[/COLOR][COLOR=#339933];[/COLOR]
        [COLOR=#009900]}[/COLOR][COLOR=#B1B100]else[/COLOR][COLOR=#009900]{[/COLOR]
            [COLOR=#990000]move_uploaded_file[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"tmp_name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933],[/COLOR]
            [COLOR=#0000FF]"upload/"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
            [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Stored in: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]"upload/"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933];[/COLOR]
        [COLOR=#009900]}[/COLOR]
    [COLOR=#009900]}[/COLOR]
[COLOR=#009900]}[/COLOR][COLOR=#B1B100]else[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Invalid file"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
برای اجرای صحیح کد بالا، باید یک فولدر با نام upload بسازیم تا فایل درون آن ذخیره شود (در صورت عدم وجود فولدر upload ، یک پیام خطا نمایش داده می شود).

کد بالا ابتدا چک می کند که آیا فایل درون فولدر upload وجود دارد یا خیر و چنانچه فایل وجود نداشته باشد، یک کپی از آن را در فولدر upload ذخیره خواهد کرد. در صورتی که فایلی با آن نام درون فولدر upload وجود داشته باشد، یک پیام نمایش داده می شود که فایل هم اکنون وجود دارد و بنابراین فایل جدید، ذخیره نخواهد شد.

[h=4]نکته :[/h]چنانچه بخواهیم که بجای نام اصلی فایل، یک نام دیگر برای آن انتخاب کنیم، باید به جای این بخش از کدها :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#990000]move_uploaded_file[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"tmp_name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933],[/COLOR]
[COLOR=#0000FF]"upload/"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Stored in: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]"upload/"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
کد زیر را بنویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#000088]$new_name[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#0000FF]"myImage.png"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#990000]move_uploaded_file[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"tmp_name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933],[/COLOR]
[COLOR=#0000FF]"upload/"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$new_name[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Stored in: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]"upload/"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
البته من تنها به عنوان مثال، نام myImage.png را انتخاب کردم تا بدانید که کدام قسمت را باید تغییر بدهید، در صورتیکه یک کد کامل، باید شامل تشخیص نوع فایل نیز باشد تا نام جدید فایل، دارای پسوند مناسب باشد.

[h=4]نکته :[/h]اگر بخواهیم که فایل در فولدری غیر از فولدر upload ذخیره شود، باید کلمه upload را در کدها، به نام فولدر مورد نظرمان تغییر بدهیم.


[h=2]توضیحات بیشتر در مورد کدها :[/h]در ادامه، نکاتی را در مورد کدها ذکر خواهیم کرد.

[h=4]نکته :[/h]با استفاده از کدهای زیر، پسوند فایل را تشخیص داده و در یک متغیر ذخیره می کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#000088]$temp[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]explode[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"."[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$extension[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]end[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$temp[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
تابع explode یک علامت و یک رشته (string) را دریافت می کند و سپس، رشته مورد نظر را بر اساس علامتی که تعیین کرده ایم، به چندین رشته تجزیه کرده و به صورت یک آرایه رشته ای بر می گرداند. دقت کنید که متغیر فوق سراسری $_FILES ، حاوی اطلاعات فایل در حال آپلود می باشد، بنابراین، عبارت زیر، نام فایل در حال آپلود را به ما می دهد :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR][/FONT]
[/FONT][/COLOR]
بنابراین به تابع explode ، نام فایل در حال آپلود را داده ایم و همچنین علامت نقطه (.) را به عنوان علامت مورد نظرمان برای تجزیه رشته (string) انتخاب نموده ایم، بنابراین مثلا فرض کنید که کاربر فایلی با نام myFile.number2.png را برای آپلود انتخاب کند، آنگاه تابع explode ، یک آرایه رشته ای، حاوی سه رشته زیر را بر می گرداند :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]myFile
number2
png[/FONT]
[/FONT][/COLOR]
این آرایه رشته ای، در $temp ذخیره می شود. سپس با تابع end ، آخرین عنصر تابع را در متغیر $extension ذخیره می کنیم، زیرا پسوند فایل، همان آخرین رشته قرار گرفته در آرایه رشته ای می باشد. بنابراین پسوند را در متغیر$extension خواهیم داشت و با آن، می توانیم نوع فایل انتخاب شده توسط کاربر را تشخیص بدهیم.

[h=4]نکته :[/h]یکی از شرط هایی که برای چک کردن صحیح بودن فایل انتخاب شده برای آپلود، در کدها نوشته ایم، به صورت زیر می باشد :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#990000]in_array[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$extension[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#000088]$allowedExts[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][/FONT]
[/FONT][/COLOR]
تابع in_array برای چک کردن وجود یک مقدار در یک آرایه می باشد. اگر مقدار ذخیره شده در متغیر $extension که همان پسوند فایل انتخاب شده می باشد، در آرایه $allowedExts موجود باشد، آنگاه تابع in_array ، مقدار 1 را برمی گرداند و در غیر این صورت، مقدار 0 را برمی گرداند. آرایه $allowedExts همان آرایه حاوی پسوندهای مجاز برای آپلود فایل می باشد که قبلا آن را به این صورت تعریف کردیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#000088]$allowedExts[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]array[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"gif"[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#0000FF]"jpeg"[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#0000FF]"jpg"[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#0000FF]"png"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
بنابراین با آن شرط، در واقع چک کردیم که فایل انتخاب شده برای آپلود، دارای پسوندی مجاز باشد (نوع آن با انواع مجاز فایل که برای آپلود مشخص کرده ایم، مطابقت داشته باشد).منبع کدهای این آموزش :
w3schools.com/php/php_file_upload.asp
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
حذف کردن یک فایل، با تابع unlink در PHP

حذف کردن یک فایل، با تابع unlink در PHP

تابع unlink در PHP ، برای حذف یک فایل به کار می رود. نکته مهم این است که قبل از اینکه فایل را حذف کنیم، ابتدا باید مطمئن بشویم که فایل باز نیست (توسط کدهای قبل تر، باز نشده باشد). بنابراین ابتدا از توابع fopen و fclose برای باز کردن فایل و سپس بستن آن استفاده می کنیم تا مطمئن شویم که فایل باز نیست و سپس با تابع unlink ، فایل را حذف می کنیم.

برای درک بهتر این موضوع، به مثال زیر توجه کنید :

[h=4]مثال :[/h]فرض کنید که فایلی با نام myFile.txt درون فولدر حاوی فایل PHP صفحه، وجود دارد و قصد داریم که آن را حذف کنیم، برای این منظور، کدهای زیر را در فایل PHP صفحه می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$FileName[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"myFile.txt"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$FileHandle[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]fopen[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$FileName[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#0000FF]'w'[/COLOR][COLOR=#009900])[/COLOR] or [COLOR=#990000]die[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"can't open file"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#990000]fclose[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$FileHandle[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#990000]unlink[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$FileName[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]فایل myFile.txt ، حذف می شود.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
آپلود (upload) همزمان چند فایل، در PHP

آپلود (upload) همزمان چند فایل، در PHP

در مبحثی دیگر، کدهایی ارائه دادیم که برای ساخت یک فرم بودند که با آن، کاربر می توانست یک فایل را آپلود کند. اما گاهی نیاز داریم که چندین فایل را به طور همزمان آپلود کنیم، برای این منظور، ابتدا کدهای مربوط به آن مبحث را که برای آپلود یک فایل به کار می رود، در اینجا می نویسیم و سپس تغییرات لازم را به آنها اعمال می کنیم تا به طور همزمان، کاربر بتواند چندین فایل را آپلود کند (اینگونه، تفاوت بین حالت آپلود یک فایل با حالت آپلود همزمان چند فایل را هم بهتر متوجه خواهید شد).

برای قسمت آپلود، ابتدا یک فرم HTML می سازیم و سپس اطلاعات حاصل از فرم را به یک فایل PHP می فرستیم تا بر روی آن اطلاعات، پردازش کند (این شیوه کلی ساخت فرم ها است). بنابراین یک فایل با نامی دلخواه می سازیم و کدهای زیر را درون آن می نویسیم (چون یک فرم HTML است، پس می تواند پسوند فایل، html یا php باشد) :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#339933]<[/COLOR]html[COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]body[COLOR=#339933]>[/COLOR]

[COLOR=#339933]<[/COLOR]form action[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"upload_file.php"[/COLOR] method[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"post"[/COLOR] enctype[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"multipart/form-data"[/COLOR][COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]label [COLOR=#B1B100]for[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#339933]>[/COLOR]Filename[COLOR=#339933]:</[/COLOR]label[COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]input type[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"file"[/COLOR] name[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"file"[/COLOR] id[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#339933]><[/COLOR]br[COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]input type[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"submit"[/COLOR] name[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"submit"[/COLOR] value[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"Submit"[/COLOR][COLOR=#339933]>[/COLOR]
[COLOR=#339933]</[/COLOR]form[COLOR=#339933]>[/COLOR]

[COLOR=#339933]</[/COLOR]body[COLOR=#339933]>[/COLOR]
[COLOR=#339933]</[/COLOR]html[COLOR=#339933]>[/COLOR][/FONT]
[/FONT][/COLOR]
همان طور که از کد بالا مشخص است، این فرم، اطلاعات را با روش POST ، به فایل upload_file.php می فرستد تا این فایل، بر روی اطلاعات دریافتی، پردازش کند. مشخصه enctype برای فرم، مشخص می کند که نوع اطلاعاتی که کاربر ارسال می کند، چه می باشد. با انتخاب multipart/form-data برای این مشخصه، اعلام کرده ایم که اطلاعات ارسالی، به صورت اطلاعات دودویی (binary data) است.

درون تگ input ، مشخصه type را برابر file قرار داده ایم تا اعلام کنیم که نوع ورودی، به صورت فایل می باشد. بنابراین درون فرم، یک دکمه browse به کاربر نمایش داده می شود تا با آن بتواند فایل مورد نظر را از کامپیوتر خود انتخاب نماید.

یک فایل با نام upload_file.php می سازیم و کدهای زیر را درون آن می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$allowedExts[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]array[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"gif"[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#0000FF]"jpeg"[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#0000FF]"jpg"[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#0000FF]"png"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$temp[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]explode[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"."[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$extension[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]end[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$temp[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#0000FF]"image/gif"[/COLOR][COLOR=#009900])[/COLOR]
[COLOR=#339933]||[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#0000FF]"image/jpeg"[/COLOR][COLOR=#009900])[/COLOR]
[COLOR=#339933]||[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#0000FF]"image/jpg"[/COLOR][COLOR=#009900])[/COLOR]
[COLOR=#339933]||[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#0000FF]"image/pjpeg"[/COLOR][COLOR=#009900])[/COLOR]
[COLOR=#339933]||[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#0000FF]"image/x-png"[/COLOR][COLOR=#009900])[/COLOR]
[COLOR=#339933]||[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#0000FF]"image/png"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR]
[COLOR=#339933]&&[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"size"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]<[/COLOR] [COLOR=#CC66CC]80000[/COLOR][COLOR=#009900])[/COLOR]
[COLOR=#339933]&&[/COLOR] [COLOR=#990000]in_array[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$extension[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#000088]$allowedExts[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"error"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]>[/COLOR] [COLOR=#CC66CC]0[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
        [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Return Code: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"error"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]"<br>"[/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#009900]}[/COLOR][COLOR=#B1B100]else[/COLOR][COLOR=#009900]{[/COLOR]
        [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Upload: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]"<br>"[/COLOR][COLOR=#339933];[/COLOR]
        [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Type: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]"<br>"[/COLOR][COLOR=#339933];[/COLOR]
        [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Size: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"size"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]/[/COLOR] [COLOR=#CC66CC]1024[/COLOR][COLOR=#009900])[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]" kB<br>"[/COLOR][COLOR=#339933];[/COLOR]
        [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Temp file: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"tmp_name"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]"<br>"[/COLOR][COLOR=#339933];[/COLOR]

        [COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#990000]file_exists[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"upload/"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
            [COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]" already exists. "[/COLOR][COLOR=#339933];[/COLOR]
        [COLOR=#009900]}[/COLOR][COLOR=#B1B100]else[/COLOR][COLOR=#009900]{[/COLOR]
            [COLOR=#990000]move_uploaded_file[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"tmp_name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933],[/COLOR]
            [COLOR=#0000FF]"upload/"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
            [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Stored in: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]"upload/"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933];[/COLOR]
        [COLOR=#009900]}[/COLOR]
    [COLOR=#009900]}[/COLOR]
[COLOR=#009900]}[/COLOR][COLOR=#B1B100]else[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Invalid file"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
قبلا در مبحثی دیگر، این کدها را شرح داده ایم، تنها به طور مختصر، یادآوری می کنیم نوع فایل را به صورت عکس در نظر گرفته ایم (با چند پسوند که مشخص کرده ایم) و همچنین یک حداکثر اندازه نیز برای فایل در نظر گرفته ایم، بنابراین اگر فایل انتخاب شده توسط کاربر، با این مشخصات، تطابق نداشته باشد، فایل آپلود نخواهد شد. دقت داشته باشید که حتما آپلود فایل توسط کاربر را باید تنها به یک یا چند نوع فایل، محدود کنیم، در غیر این صورت، ممکن است یک هکر، یک صفحه شامل کد را در سرور آپلود کند و سپس با وارد کردن آدرس آن فایل، در مرورگر اینترنت خود، یک سری کد مخرب، در سرور شما اجرا گردد. همچنین، در کد بالا، پوشه ای با نام upload برای محل ذخیره فایل ها در نظر گرفته شده است که باید آن را بسازید. همچنین دقت داشته باشید که $_FILE یک متغیر فوق سراسری می باشد که اطلاعات مربوط به فایلی که آپلود می کنیم، در آن ذخیره می شود و با کدها، این اطلاعات را از آن دریافت کرده و فایل را در سرور ذخیره می کنیم.


[h=2]تغییر کدهای PHP ، برای ایجاد امکان آپلود همزمان چند فایل :[/h]اکنون فرض کنید که می خواهیم به طور همزمان، کاربر بتواند 3 فایل را انتخاب کند، برای این منظور، کدهای مربوط به فرم را که در ابتدا به صورت زیر بوده است :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#339933]<[/COLOR]html[COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]body[COLOR=#339933]>[/COLOR]

[COLOR=#339933]<[/COLOR]form action[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"upload_file.php"[/COLOR] method[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"post"[/COLOR] enctype[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"multipart/form-data"[/COLOR][COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]label [COLOR=#B1B100]for[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#339933]>[/COLOR]Filename[COLOR=#339933]:</[/COLOR]label[COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]input type[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"file"[/COLOR] name[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"file"[/COLOR] id[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#339933]><[/COLOR]br[COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]input type[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"submit"[/COLOR] name[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"submit"[/COLOR] value[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"Submit"[/COLOR][COLOR=#339933]>[/COLOR]
[COLOR=#339933]</[/COLOR]form[COLOR=#339933]>[/COLOR]

[COLOR=#339933]</[/COLOR]body[COLOR=#339933]>[/COLOR]
[COLOR=#339933]</[/COLOR]html[COLOR=#339933]>[/COLOR][/FONT]
[/FONT][/COLOR]
به این شکل، تغییر می دهیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#339933]<[/COLOR]html[COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]body[COLOR=#339933]>[/COLOR]

[COLOR=#339933]<[/COLOR]form action[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"upload_file.php"[/COLOR] method[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"post"[/COLOR] enctype[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"multipart/form-data"[/COLOR][COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]input type[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"file"[/COLOR] name[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"file[]"[/COLOR] id[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#339933]><[/COLOR]br[COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]input type[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"file"[/COLOR] name[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"file[]"[/COLOR] id[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#339933]><[/COLOR]br[COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]input type[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"file"[/COLOR] name[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"file[]"[/COLOR] id[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#339933]><[/COLOR]br[COLOR=#339933]>[/COLOR]
[COLOR=#339933]<[/COLOR]input type[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"submit"[/COLOR] name[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"submit"[/COLOR] value[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"Submit"[/COLOR][COLOR=#339933]>[/COLOR]
[COLOR=#339933]</[/COLOR]form[COLOR=#339933]>[/COLOR]

[COLOR=#339933]</[/COLOR]body[COLOR=#339933]>[/COLOR]
[COLOR=#339933]</[/COLOR]html[COLOR=#339933]>[/COLOR][/FONT]
[/FONT][/COLOR]
با مقایسه کدها، متوجه خواهید شد که قبلا تنها یک تگ input از نوع file داشتیم، اما اکنون 3 تا داریم. همچنین، مشخصه name برای آنها، دیگر برابر file نیست، بلکه برابر file[] می باشد. همچنین، تگ label را حذف کرده ایم (اهمیتی ندارد، ترجیح دادیم که برای خلوت تر شدن کدها، آن را حذف کنیم).

شکل فرم، به صورت زیر می باشد :php-13.png
کدهای فایل پردازش کننده فرم، قبلا به صورت زیر بود (برای آپلود یک فایل) :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$allowedExts[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]array[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"gif"[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#0000FF]"jpeg"[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#0000FF]"jpg"[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#0000FF]"png"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$temp[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]explode[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"."[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$extension[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]end[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$temp[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#0000FF]"image/gif"[/COLOR][COLOR=#009900])[/COLOR]
[COLOR=#339933]||[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#0000FF]"image/jpeg"[/COLOR][COLOR=#009900])[/COLOR]
[COLOR=#339933]||[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#0000FF]"image/jpg"[/COLOR][COLOR=#009900])[/COLOR]
[COLOR=#339933]||[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#0000FF]"image/pjpeg"[/COLOR][COLOR=#009900])[/COLOR]
[COLOR=#339933]||[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#0000FF]"image/x-png"[/COLOR][COLOR=#009900])[/COLOR]
[COLOR=#339933]||[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#0000FF]"image/png"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR]
[COLOR=#339933]&&[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"size"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]<[/COLOR] [COLOR=#CC66CC]80000[/COLOR][COLOR=#009900])[/COLOR]
[COLOR=#339933]&&[/COLOR] [COLOR=#990000]in_array[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$extension[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#000088]$allowedExts[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"error"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]>[/COLOR] [COLOR=#CC66CC]0[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
        [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Return Code: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"error"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]"<br>"[/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#009900]}[/COLOR][COLOR=#B1B100]else[/COLOR][COLOR=#009900]{[/COLOR]
        [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Upload: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]"<br>"[/COLOR][COLOR=#339933];[/COLOR]
        [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Type: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]"<br>"[/COLOR][COLOR=#339933];[/COLOR]
        [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Size: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"size"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]/[/COLOR] [COLOR=#CC66CC]1024[/COLOR][COLOR=#009900])[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]" kB<br>"[/COLOR][COLOR=#339933];[/COLOR]
        [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Temp file: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"tmp_name"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]"<br>"[/COLOR][COLOR=#339933];[/COLOR]

        [COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#990000]file_exists[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"upload/"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
            [COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]" already exists. "[/COLOR][COLOR=#339933];[/COLOR]
        [COLOR=#009900]}[/COLOR][COLOR=#B1B100]else[/COLOR][COLOR=#009900]{[/COLOR]
            [COLOR=#990000]move_uploaded_file[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"tmp_name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933],[/COLOR]
            [COLOR=#0000FF]"upload/"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
            [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Stored in: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]"upload/"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933];[/COLOR]
        [COLOR=#009900]}[/COLOR]
    [COLOR=#009900]}[/COLOR]
[COLOR=#009900]}[/COLOR][COLOR=#B1B100]else[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Invalid file"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
و ما آن را به صورت زیر تغییر می دهیم (برای آپلود همزمان چند فایل) :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#B1B100]for[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$i[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#CC66CC]0[/COLOR][COLOR=#339933];[/COLOR][COLOR=#000088]$i[/COLOR][COLOR=#339933]<[/COLOR][COLOR=#990000]count[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][COLOR=#000088]$i[/COLOR][COLOR=#339933]++[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#000088]$allowedExts[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]array[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"gif"[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#0000FF]"jpeg"[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#0000FF]"jpg"[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#0000FF]"png"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#000088]$temp[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]explode[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"."[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#000088]$i[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#000088]$extension[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]end[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$temp[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#000088]$i[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#0000FF]"image/gif"[/COLOR][COLOR=#009900])[/COLOR]
    [COLOR=#339933]||[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#000088]$i[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#0000FF]"image/jpeg"[/COLOR][COLOR=#009900])[/COLOR]
    [COLOR=#339933]||[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#000088]$i[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#0000FF]"image/jpg"[/COLOR][COLOR=#009900])[/COLOR]
    [COLOR=#339933]||[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#000088]$i[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#0000FF]"image/pjpeg"[/COLOR][COLOR=#009900])[/COLOR]
    [COLOR=#339933]||[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#000088]$i[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#0000FF]"image/x-png"[/COLOR][COLOR=#009900])[/COLOR]
    [COLOR=#339933]||[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#000088]$i[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#0000FF]"image/png"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR]
    [COLOR=#339933]&&[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"size"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#000088]$i[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]<[/COLOR] [COLOR=#CC66CC]80000[/COLOR][COLOR=#009900])[/COLOR]
    [COLOR=#339933]&&[/COLOR] [COLOR=#990000]in_array[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$extension[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#000088]$allowedExts[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
        [COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"error"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#000088]$i[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]>[/COLOR] [COLOR=#CC66CC]0[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
            [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Return Code: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"error"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#000088]$i[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]"<br>"[/COLOR][COLOR=#339933];[/COLOR]
        [COLOR=#009900]}[/COLOR][COLOR=#B1B100]else[/COLOR][COLOR=#009900]{[/COLOR]
            [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Upload: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#000088]$i[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]"<br>"[/COLOR][COLOR=#339933];[/COLOR]
            [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Type: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"type"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#000088]$i[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]"<br>"[/COLOR][COLOR=#339933];[/COLOR]
            [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Size: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"size"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#000088]$i[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]/[/COLOR] [COLOR=#CC66CC]1024[/COLOR][COLOR=#009900])[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]" kB<br>"[/COLOR][COLOR=#339933];[/COLOR]
            [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Temp file: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"tmp_name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#000088]$i[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]"<br>"[/COLOR][COLOR=#339933];[/COLOR]

            [COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#990000]file_exists[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"upload/"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#000088]$i[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR]
                [COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#000088]$i[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]" already exists. "[/COLOR][COLOR=#339933];[/COLOR]
            [COLOR=#009900]}[/COLOR][COLOR=#B1B100]else[/COLOR][COLOR=#009900]{[/COLOR]
                [COLOR=#990000]move_uploaded_file[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"tmp_name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#000088]$i[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933],[/COLOR]
                [COLOR=#0000FF]"upload/"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#000088]$i[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
                [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Stored in: "[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#0000FF]"upload/"[/COLOR] [COLOR=#339933].[/COLOR] [COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#000088]$i[/COLOR][COLOR=#009900]][/COLOR][COLOR=#339933];[/COLOR]
            [COLOR=#009900]}[/COLOR]
        [COLOR=#009900]}[/COLOR]
    [COLOR=#009900]}[/COLOR][COLOR=#B1B100]else[/COLOR][COLOR=#009900]{[/COLOR]
        [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"Invalid file"[/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#009900]}[/COLOR]
        [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"<br><br>"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
اولین تغییر، ساخت یک حلقه for برای کل کدها می باشد :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#B1B100]for[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$i[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#CC66CC]0[/COLOR][COLOR=#339933];[/COLOR][COLOR=#000088]$i[/COLOR][COLOR=#339933]<[/COLOR][COLOR=#990000]count[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$_FILES[/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"file"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900][[/COLOR][COLOR=#0000FF]"name"[/COLOR][COLOR=#009900]][/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][COLOR=#000088]$i[/COLOR][COLOR=#339933]++[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900]{[/COLOR][/FONT]
[/FONT][/COLOR]
این حلقه، به تعداد فایل هایی که آپلود می شود، اجرا خواهد شد (مثلا چون 3 فایل را آپلود می کنیم، بنابراین کدهای درون حلقه for ، سه بار اجرا می شوند).

علاوه بر این، به انتهای تمامی عبارت هایی که به متغیر فوق سراسری $_FILE ارجاع داده اند، عبارت [$i] نیز افزوده شده است (زیرا قبلا تنها یک فایل داشتیم، اما اکنون چند فایل داریم و باید مشخص کنیم که اطلاعات مربوط به کدام فایل را می خواهیم از متغیر فوق سراسری $_FILE فراخوانی کنیم).
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
افزایش حداکثر حجم قابل آپلود (upload) برای فایل ها، در PHP و اطمینان از قابل آپلود بودن فایل های بزرگ

افزایش حداکثر حجم قابل آپلود (upload) برای فایل ها، در PHP و اطمینان از قابل آپلود بودن فایل های بزرگ

ممکن است شما یک کد PHP نوشته باشید که برای آپلود (upload) فایل ها به هاست، به کار می رود و آن را هم برای فایل های کوچک تست کرده اید، اما هنگامی که این قابلیت را در اختیار کاربران قرار می دهید، به شما تذکر می دهند که اگر فایل ها از یک حدی بزرگتر باشند، کد PHP برای آپلود فایل، صحیح عمل نمی کند. این مورد، یکی از مشکلات رایج است که کسانی که برای اولین بار، امکان آپلود فایل به سایت خود را اضافه می کنند، با آن مواجه خواهند شد. نکته مهم این است که اگر کدهای PHP آپلود برای فایل های کوچک عمل می کند ولی با فایل های بزرگ مشکل دارد، بنابراین مشکل از محدودیت هایی است که برای PHP تعیین شده و باید تنظیمات مربوط به این محدودیت ها را تغییر بدهیم.

برای تغییر تنظیمات مورد نظرمان، باید در فولدری که در آن فایل های PHP (فایل های اصلی PHP ، نه کدهایی که ما در سایتمان قرار داده ایم) قرار داده شده است، فایل php.ini را باز کرده و برخی از مقادیر تعریف شده در آن را تغییر بدهیم. دقت کنید که معمولا سرورها، دسترسی به فایل های اصلی PHP را به شما نمی دهند، در این صورت، می توانید به صاحب سرور، درخواست تغییرات را بدهید (البته معمولا خود صاحبان سرورها، بهترین تنظیمات را انتخاب می کنند).

پس از باز کردن فایل php.ini ، مقادیر مهم و تاثیرگذار در آپلود فایل ها، عبارتند از :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]upload_max_filesize [COLOR=#339933]=[/COLOR] 10M 
post_max_size [COLOR=#339933]=[/COLOR] 20M 
memory_limit [COLOR=#339933]=[/COLOR] 128M
max_execution_time [COLOR=#CC66CC]300[/COLOR][/FONT]
[/FONT][/COLOR]
بعد از تغییر مقادیر این پارامترها، باید سرور restart شود تا شاهد اجرای تغییرات باشیم (یا اگر از نرم افزار شبیه ساز سرور مثل wampserver استفاده کردید، باید آن را بسته و دوباره اجرا کنید).

من مقادیری دلخواه را در کدهای بالا، برای آنها نوشته ام. دقت کنید که هر یک از این پارامترها را باید در فایل پیدا کرده و سپس بر اساس نیاز خود، یک مقدار را به آنها اختصاص بدهید. مثلا من پارامتر upload_max_filesize را برابر 10 مگابایت قرار داده ام که برای آپلود فایل های دارای حداکثر حجم 10 مگابایت، مناسب می باشد. پارامتر memory_limit بهتر است که از upload_max_filesize بزرگتر باشد، من آن را دو برابر upload_max_filesize انتخاب کرده ام. پارامتر max_execution_time برابر حداکثر زمان اجرای کدهای PHP است که من آن را برابر 300 ثانیه، یعنی 5 دقیقه، انتخاب کرده ام، اگر حدس می زنید که زمان آپلود یک فایل بزرگ، بیشتر است، بنابراین باید این زمان را هم به همان نسبت، افزایش بدهید.


[h=2]اعمال تنظیمات برای آپلود فایل های بزرگ، در نرم افزار wampserver نصب شده بر روی کامپیوتر خانگی :[/h]اگر نرم افزار wampserver را در کامپیوتر خانگی خود نصب کرده اید و در حال تست آن می باشید، باید فایل php.ini صحیح را به شما نشان بدهم زیرا ممکن است که به اشتباه، یک فایل دیگر را ویرایش کنید. ابتدا به فولدر محل نصب نرم افزار wampserver بروید و سپس مسیر زیر را دنبال کنید :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#339933]../[/COLOR]bin[COLOR=#339933]/[/COLOR]apache[COLOR=#339933]/[/COLOR]Apache2[COLOR=#339933].[/COLOR]2[COLOR=#339933].[/COLOR]21[COLOR=#339933]/[/COLOR]bin[COLOR=#339933]/[/COLOR][/FONT]
[/FONT][/COLOR]
که البته احتمالا شماره Apache متفاوت است، که اهمیتی ندارد. بنابراین فایل php.ini را در آن مسیر بیابید و سپس تغییراتی که گفته شده را به آن اعمال نمایید. باز هم تذکر می دهم که به مسیر فایل php.ini دقت کنید، زیرا فایل دیگری با همین نام در فولدری دیگر وجود دارد و ممکن است که آن را به جای این فایل، به اشتباه ویرایش کنید.


[h=2]چک کردن حداکثر حجم قابل آپلود فایل ها :[/h]اگر در هاست خود و یا در کامپیوتر خانگی خود (با نرم افزار wampserver)، به myPhpAdmin دسترسی دارید، وارد آن بشوید و سپس گزینه Import را انتخاب کنید. آنگاه در کنار گزینه مربوط به آپلود فایل پشتیبان (backup)، حداکثر حجم برای آپلود فایل ها توسط PHP ، نوشته شده است :php-11.png
مشاهده می کنید که حداکثر حجم برای آپلود فایل، برابر 20 مگابایت نوشته شده است. خوبی این نوع چک کردن این است که نیازی به کدنویسی نداریم و این روش نیز همیشه در حافظه ما باقی می ماند (به جای کدنویسی).
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
به دست آوردن حجم یک فایل، با تابع filesize در PHP

به دست آوردن حجم یک فایل، با تابع filesize در PHP

با استفاده از تابع filesize در PHP ، می توانیم حجم یک فایل را بر حسب بایت (byte) به دست بیاوریم.

به مثال زیر توجه کنید :

[h=4]مثال :[/h]به عنوان مثال، فرض کنید که یک فایل با نام myFile.xml در فولدری به نام myFolder داشته باشیم و بخواهیم که حجم آن را به دست آوریم، برای این منظور، کدهای زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$size_byte[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]filesize[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"myFolder/myFile.xml"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$size_byte[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"<br />"[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#000088]$size_kilobyte[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#000088]$size_byte[/COLOR][COLOR=#339933]/[/COLOR][COLOR=#CC66CC]1024[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$size_kilobyte[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"<br />"[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#000088]$size_megabyte[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#000088]$size_kilobyte[/COLOR][COLOR=#339933]/[/COLOR][COLOR=#CC66CC]1024[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$size_megabyte[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
متغیر size_byte برابر حجم فایل بر حسب بایت (byte)، متغیر size_kilobyte برابر حجم فایل بر حسب کیلوبایت (kilobyte) و متغیر size_megabyte برابر حجم فایل بر حسب مگابایت (megabyte) می باشد.

[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#CC66CC]1583[/COLOR]
[COLOR=#800080]1.5458984375[/COLOR]
[COLOR=#800080]0.0015096664428711[/COLOR][/FONT]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
کپی کردن یک فایل از یک فولدر، به درون یک فولدر دیگر (با نام جدید)، با دستور copy در PHP

کپی کردن یک فایل از یک فولدر، به درون یک فولدر دیگر (با نام جدید)، با دستور copy در PHP

با استفاده از دستور copy در PHP ، می توانیم یک فایل موجود در یک فولدر را به درون یک فولدر دیگر کپی کنیم (با نامی جدید).

به کد PHP زیر توجه کنید :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B] 
[COLOR=#990000]copy[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]'folder_1/file_1.zip'[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#0000FF]'folder_2/file_2.zip'[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
این کد باعث می شود که فایل با نام file_1.zip که درون فولدر folder_1 قرار دارد، به درون فولدر folder_2 کپی شود (با نام جدید file_2.zip).
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
از حالت فشرده در آوردن (unzip) یک فایل zip ، در PHP

از حالت فشرده در آوردن (unzip) یک فایل zip ، در PHP

فرض کنید که یک فایل فشرده با پسوند zip داریم و می خواهیم آن را از حالت فشرده در آوریم (unzip). با فرض اینکه فایل دارای نام file.zip باشد، کدهای زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$zip[/COLOR] [COLOR=#339933]=[/COLOR] [B]new[/B] ZipArchive[COLOR=#339933];[/COLOR]
[COLOR=#000088]$res[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#000088]$zip[/COLOR][COLOR=#339933]->[/COLOR][COLOR=#004000]open[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"file.zip"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$res[/COLOR] [COLOR=#339933]===[/COLOR] [COLOR=#009900][B]TRUE[/B][/COLOR][COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
    [COLOR=#000088]$zip[/COLOR][COLOR=#339933]->[/COLOR][COLOR=#004000]extractTo[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"/myFolder/"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#000088]$zip[/COLOR][COLOR=#339933]->[/COLOR][COLOR=#004000]close[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"success !"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR] [COLOR=#B1B100]else[/COLOR] [COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"fail !"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
دقت کنید که مسیر فایل های از حالت فشرده در آمده را به صورت زیر تعیین کرده ایم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#339933]/[/COLOR]myFolder[COLOR=#339933]/[/COLOR][/FONT]
[/FONT][/COLOR]
بنابراین حتما باید فولدر myFolder وجود داشته باشد، در غیر این صورت، PHP یک پیام خطا را نمایش می دهد.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
باز کردن یک فایل متنی و جایگزین کردن برخی عبارت ها (رشته ها - strings) با عبارت های دیگر و ذخیره به صورت یک فایل جدید

باز کردن یک فایل متنی و جایگزین کردن برخی عبارت ها (رشته ها - strings) با عبارت های دیگر و ذخیره به صورت یک فایل جدید

فرض کنید که یک فایل متنی با نام file_1.php داریم و می خواهیم که تگ های <tag1> را به تگ های <tag2> تبدیل کنیم (جایگزین کردن عبارت ها) و سپس نتیجه را به صورت یک فایل با نام file_2.php ذخیره نماییم، برای این منظور، کدهای PHP زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$data[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]file_get_contents[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"path/file_1.php"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$data[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]str_replace[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"<tag1>"[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#0000FF]"<tag2>"[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#000088]$data[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#990000]file_put_contents[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"path/file_2.php"[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#000088]$data[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
به دست آوردن مسیر فولدر حاوی فایل فعلی (parent directory's path)، با تابع dirname در PHP

به دست آوردن مسیر فولدر حاوی فایل فعلی (parent directory's path)، با تابع dirname در PHP

دستور dirname در PHP ، مسیر یک فایل را دریافت کرده و سپس مسیر فولدر حاوی آن فایل (parent directory's path) را به ما می دهد.


[h=2]حالت اول : مسیر کامل فایل را می دانیم[/h]اگر مسیر کامل فایل را بدانیم، تنها کافی است که آن را درون پرانتز تابع dirname بنویسیم، مثلا فرض کنید که در حال کدنویسی درون فایلی به مسیر زیر می باشیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]http://www.www.www.iran-eng.ir/php-education/index.php[/FONT]
[/FONT][/COLOR]
بنابراین، کدهای PHP زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$parent_directory[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#990000]dirname[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"http://www.www.www.iran-eng.ir/php-education/index.php"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$parent_directory[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]http://www.www.www.iran-eng.ir/php-education[/FONT]
[/FONT][/COLOR]
[h=2]حالت دوم : مسیر کامل فایل را نمی دانیم[/h]اما فرض کنید که مسیر کامل فایل را ندانیم (که معمولا نیز همین طور می باشد)، آنگاه تنها باید عبارت __FILE__ را درون پرانتز تابع dirname بنویسیم، یعنی به صورت زیر :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$parent_directory[/COLOR][COLOR=#339933]=[/COLOR][COLOR=#990000]dirname[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900][B]__FILE__[/B][/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$parent_directory[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]http://www.www.www.iran-eng.ir/php-education[/FONT]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
به دست آوردن لیست فایل های موجود در یک پوشه (Folder)، با تابع scandir در PHP

به دست آوردن لیست فایل های موجود در یک پوشه (Folder)، با تابع scandir در PHP

با استفاده از تابع scandir در PHP ، می توانیم لیست فایل های موجود در یک پوشه (Folder) را به دست آوریم.

[h=4]نکته :[/h]چنانچه از یک نرم افزار شبیه ساز سرور بر روی کامپیوتر شخصی (مثل نرم افزار wamp server) استفاده می کنید، می توانید آدرس یکی از پوشه های کامپیوتر را در نظر بگیرید و کدها را با آن تست کنید. به مثال زیر توجه کنید :

[h=4]مثال :[/h]فرض کنید که با یک نرم افزار شبیه ساز، سرور را بر روی کامپیوتر شخصی شبیه سازی کرده ایم و اکنون می خواهیم که لیست فایل های موجود در درایو C کامپیوتر را به دست آوریم. برای این منظور، کدهای PHP زیر را اجرا می کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$directory[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"C://"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$files[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]scandir[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$directory[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"<pre>"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#990000]print_r[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$files[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"</pre>"[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
یافتن پوشه ها (Folders) یا فایل هایی که نام آنها در یک الگوی (pattern) مشخص صدق می کند، با تابع glob در PHP

یافتن پوشه ها (Folders) یا فایل هایی که نام آنها در یک الگوی (pattern) مشخص صدق می کند، با تابع glob در PHP

چنانچه بخواهیم پوشه ها (Folders) یا فایل هایی که نام آنها در یک الگوی (pattern) مشخص صدق می کند را بیابیم، باید تابع glob در PHP را به کار ببریم.

به مثال زیر توجه کنید :

[h=4]مثال :[/h]فرض کنید که در پوشه فعلی (پوشه ای که فایل فعلی در آن قرار دارد)، فایل های زیر را داشته باشیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]page_1[COLOR=#339933].[/COLOR]php
page_2[COLOR=#339933].[/COLOR]php
file_1[COLOR=#339933].[/COLOR]txt
file_2[COLOR=#339933].[/COLOR]txt[/FONT]
[/FONT][/COLOR]
اکنون برای اینکه تمامی فایل های با پسوند php را در خروجی نمایش بدهیم، کدهای زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"<pre>"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$files[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]glob[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"*.php"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#990000]print_r[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$files[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"</pre>"[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
الگوی (pattern) کلی را به صورت زیر در نظر گرفته ایم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#339933]*.[/COLOR]php[/FONT]
[/FONT][/COLOR]
یعنی به جای علامت ستاره (*)، هر عبارت دیگری می تواند قرار بگیرد. بنابراین تابع glob ، نام تمامی فایل های با پسوند php را برمی گرداند.

[h=4]نتیجه :[/h]بنابراین لیست فایل های با پسوند php در خروجی نمایش داده می شود :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#990000]Array[/COLOR]
[COLOR=#009900]([/COLOR]
    [COLOR=#009900][[/COLOR][COLOR=#CC66CC]0[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]=>[/COLOR] page_1[COLOR=#339933].[/COLOR]php
    [COLOR=#009900][[/COLOR][COLOR=#CC66CC]1[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]=>[/COLOR] page_2[COLOR=#339933].[/COLOR]php
[COLOR=#009900])[/COLOR][/FONT]
[/FONT][/COLOR]
اکنون کدها را به صورت زیر می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"<pre>"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$files[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]glob[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"*.*"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#990000]print_r[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$files[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"</pre>"[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
مشاهده می کنید که الگوی کلی را به صورت زیر در نظر گرفته ایم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#339933]*.*[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]تمامی فایل ها نمایش داده می شوند :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#990000]Array[/COLOR]
[COLOR=#009900]([/COLOR]
    [COLOR=#009900][[/COLOR][COLOR=#CC66CC]0[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]=>[/COLOR] page_1[COLOR=#339933].[/COLOR]php
    [COLOR=#009900][[/COLOR][COLOR=#CC66CC]1[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]=>[/COLOR] page_2[COLOR=#339933].[/COLOR]php
    [COLOR=#009900][[/COLOR][COLOR=#CC66CC]2[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]=>[/COLOR] file_1[COLOR=#339933].[/COLOR]txt
    [COLOR=#009900][[/COLOR][COLOR=#CC66CC]3[/COLOR][COLOR=#009900]][/COLOR] [COLOR=#339933]=>[/COLOR] file_2[COLOR=#339933].[/COLOR]txt
[COLOR=#009900])[/COLOR][/FONT]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
چک کردن اینکه آیا یک نام ذخیره شده به صورت یک رشته (string)، نام یک پوشه (Folder) می باشد یا خیر، با تابع is_dir در PHP

چک کردن اینکه آیا یک نام ذخیره شده به صورت یک رشته (string)، نام یک پوشه (Folder) می باشد یا خیر، با تابع is_dir در PHP

چنانچه یک نام را به صورت رشته (string) داشته باشیم و بخواهیم چک کنیم که آیا این نام، نام یک پوشه (Folder) است یا خیر، می توانیم از تابع is_dir در PHP استفاده کنیم.

به مثال زیر توجه کنید :

[h=4]مثال :[/h]فرض کنید که در محل فایل فعلی (فایلی که در حال اجرای کدهای آن هستیم)، تنها یک پوشه (Folder) با نام myFolder وجود داشته باشد. اکنون کدهای PHP زیر را اجرا می کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$directory[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"myFolder"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$A[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]is_dir[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$directory[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#990000]var_dump[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$A[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"<br />"[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#000088]$file[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"default"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$B[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]is_dir[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$file[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#990000]var_dump[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$B[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
تابع var_dump را برای نمایش نوع و مقدار متغیرها به کار برده ایم.

[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]boolean [COLOR=#009900][B]true[/B][/COLOR]

boolean [COLOR=#009900][B]false[/B][/COLOR][/FONT]
[/FONT][/COLOR]
چون پوشه ای با نام myFolder داریم، در متغیر $A مقدار true ذخیره شده است. اما پوشه ای با نام default نداریم و بنابراین مقدار false در متغیر $B ذخیره شده است.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
تشخیص نوع (type) یک فایل، با تابع filetype در PHP

تشخیص نوع (type) یک فایل، با تابع filetype در PHP

با استفاده از تابع filetype در PHP ، می توانیم نوع (type) یک فایل را متوجه بشویم. انواعی از فایل که تابع filetype آنها را در خروجی خود بیان می کند، به صورت زیر می باشد (شیوه دسته بندی فایل ها توسط تابع filetype) :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]fifo
char
[COLOR=#990000]dir[/COLOR]
block
[COLOR=#990000]link[/COLOR]
[COLOR=#990000]file[/COLOR]
socket
unknown[/FONT]
[/FONT][/COLOR]
به مثال زیر توجه کنید :

[h=4]مثال :[/h]فرض کنید که در محل فایل فعلی (فایلی که در حال اجرای کدهای آن هستیم)، یک فایل با نام example.xml و همچنین یک پوشه (Folder) با نام myFolder وجود داشته باشد. کدهای زیر را اجرا می کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$file_1[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"example.xml"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$type_1[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]filetype[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$file_1[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$type_1[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"<br />"[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#000088]$file_2[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"myFolder"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$type_2[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]filetype[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$file_2[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$type_2[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#990000]file[/COLOR]
[COLOR=#990000]dir[/COLOR][/FONT]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
به دست آوردن زمان آخرین بار دسترسی (access) به یک فایل، با تابع fileatime در PHP

به دست آوردن زمان آخرین بار دسترسی (access) به یک فایل، با تابع fileatime در PHP

با استفاده از تابع fileatime در PHP ، می توانیم متوجه بشویم که آخرین بار، در چه زمانی به یک فایل، دسترسی (access) ایجاد شده است.

به مثال زیر توجه کنید :

[h=4]مثال :[/h]فرض کنید که در محل فایل فعلی (فایلی که در حال اجرای کدهای آن هستیم)، یک فایل با نام example.xml وجود دارد و می خواهیم بدانیم که آخرین بار، در چه زمانی به این فایل، دسترسی (access) ایجاد شده است. برای این منظور، کدهای PHP زیر را اجرا می کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$file[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"example.xml"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$time[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]fileatime[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$file[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$time[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"<br />"[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#000088]$date[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]date[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"F d Y H:i:s."[/COLOR][COLOR=#339933],[/COLOR][COLOR=#000088]$time[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$date[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#CC66CC]1391817582[/COLOR]
February [COLOR=#208080]07[/COLOR] [COLOR=#CC66CC]2014[/COLOR] [COLOR=#CC66CC]23[/COLOR][COLOR=#339933]:[/COLOR][COLOR=#CC66CC]59[/COLOR][COLOR=#339933]:[/COLOR][COLOR=#CC66CC]42[/COLOR][COLOR=#339933].[/COLOR][/FONT]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
به دست آوردن زمان آخرین بار اصلاح (modify) یک فایل، با تابع filemtime در PHP

به دست آوردن زمان آخرین بار اصلاح (modify) یک فایل، با تابع filemtime در PHP

با استفاده از تابع filemtime در PHP ، می توانیم متوجه بشویم که آخرین بار در چه زمانی، یک فایل اصلاح (modify) شده است.

به مثال زیر توجه کنید :

[h=4]مثال :[/h]فرض کنید که در محل فایل فعلی (فایلی که در حال اجرای کدهای آن هستیم)، یک فایل با نام example.xml وجود دارد و قصد داریم که ببینیم این فایل، آخرین بار در چه زمانی اصلاح (modify) شده است. بنابراین، کدهای PHP زیر را اجرا می کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$file[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"example.xml"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$time[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]filemtime[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$file[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$time[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"<br />"[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#000088]$date[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]date[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"F d Y H:i:s."[/COLOR][COLOR=#339933],[/COLOR][COLOR=#000088]$time[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$date[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#CC66CC]1391817582[/COLOR]
February [COLOR=#208080]07[/COLOR] [COLOR=#CC66CC]2014[/COLOR] [COLOR=#CC66CC]23[/COLOR][COLOR=#339933]:[/COLOR][COLOR=#CC66CC]59[/COLOR][COLOR=#339933]:[/COLOR][COLOR=#CC66CC]42[/COLOR][COLOR=#339933].[/COLOR][/FONT]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
به دست آوردن زمان آخرین بار ایجاد تغییر (change) در inode یک فایل، با تابع filectime در PHP

به دست آوردن زمان آخرین بار ایجاد تغییر (change) در inode یک فایل، با تابع filectime در PHP

با استفاده از تابع filectime در PHP ، می توانیم متوجه بشویم که آخرین بار در چه زمانی، در inode یک فایل، تغییر (change) داده شده است.

به مثال زیر توجه کنید :

[h=4]مثال :[/h]فرض کنید که در محل فایل فعلی (فایلی که در حال اجرای کدهای آن هستیم)، یک فایل با نام example.xml وجود دارد و قصد داریم که ببینیم inode این فایل، آخرین بار در چه زمانی تغییر (change) داده شده است. برای این منظور، کدهای PHP زیر را اجرا می کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$file[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"example.xml"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$time[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]filectime[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$file[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$time[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"<br />"[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#000088]$date[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]date[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"F d Y H:i:s."[/COLOR][COLOR=#339933],[/COLOR][COLOR=#000088]$time[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$date[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#CC66CC]1391812036[/COLOR]
February [COLOR=#208080]07[/COLOR] [COLOR=#CC66CC]2014[/COLOR] [COLOR=#CC66CC]22[/COLOR][COLOR=#339933]:[/COLOR][COLOR=#CC66CC]27[/COLOR][COLOR=#339933]:[/COLOR][COLOR=#CC66CC]16[/COLOR][COLOR=#339933].[/COLOR][/FONT]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
منظور از inode یک فایل چیست ؟ (در PHP)

منظور از inode یک فایل چیست ؟ (در PHP)

فایل ها، پوشه ها (directory)، وسایل (devices) و لینک ها (links)، بر اساس inode سازمان دهی می شوند (دقت کنید که یک پوشه، خود یک فایل سیستمی می باشد). inode یک فایل، شامل اطلاعاتی در مورد محل ذخیره شدن دو مورد زیر می باشد :
1- بلوک های اطلاعات فایل (file's data blocks)
2- اطلاعات metadata مربوط به فایل

مورد اول که همان اطلاعات اصلی فایل می باشد، اما منظور از metadata ، موارد زیر است :
1- اندازه فایل
2- محل قرارگیری فایل (یعنی مسیر directory)
3- اجازه های دسترسی (access permissions) به فایل
و ...

بنابراین با استفاده از inode یک فایل، متوجه می شویم که بلوک های اطلاعات (data blocks) و اطلاعات metadata مربوط به آن فایل، در چه محلی ذخیره شده اند. یعنی inode ، یک اشاره گر (pointer) به آن اطلاعات می باشد.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
ساخت یک پوشه (Folder) جدید، با تابع mkdir در PHP

ساخت یک پوشه (Folder) جدید، با تابع mkdir در PHP

با استفاده از تابع mkdir در PHP ، می توانیم یک پوشه (Folder) جدید بسازیم.

به مثال زیر توجه کنید :

[h=4]مثال :[/h]فرض کنید که بخواهیم در پوشه ای که فایل فعلی (فایلی که در حال اجرای کدهای آن هستیم) قرار دارد، یک پوشه (Folder) با نام Folder_1 بسازیم. برای این منظور، کدهای PHP زیر را اجرا می کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#990000]mkdir[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"Folder_1"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]در محل فایل فعلی، یک پوشه با نام Folder_1 ساخته می شود.

اکنون فرض کنید که بخواهیم درون پوشه Folder_1 ، یک پوشه با نام Folder_2 بسازیم. برای این منظور، کدهای PHP زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#990000]mkdir[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"Folder_1/Folder_2"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]درون پوشه Folder_1 ، یک پوشه با نام Folder_2 ساخته می شود.


[h=2]ساخت یک مسیر به طور کامل (ساخت چند پوشه تو در تو، به طور همزمان) :[/h]به روش معمولی، نمی توانیم که یک مسیر حاوی دو پوشه جدید را بسازیم (ساخت دو پوشه به طور همزمان امکان پذیر نیست). مثلا اجرای کدهای زیر، یک خطا را به وجود می آورد (فرض کرده ایم که فولدر Folder_3 وجود ندارد) :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#990000]mkdir[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"Folder_3/Folder_4"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
اما برای این منظور، می توانیم تابع mkdir را به صورت زیر به کار ببریم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$structure[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]'Folder_3/Folder_4/'[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#339933]![/COLOR][COLOR=#990000]mkdir[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$structure[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#208080]0777[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#009900][B]true[/B][/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
    [COLOR=#990000]die[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]'Failed to create folders...'[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]یک پوشه با نام Folder_3 ساخته می شود و درون آن، یک پوشه با نام Folder_4 ساخته خواهد شد.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
حذف کردن یک پوشه (Folder)، با تابع rmdir در PHP

حذف کردن یک پوشه (Folder)، با تابع rmdir در PHP

با استفاده از تابع rmdir در PHP ، می توانیم یک پوشه (Folder) را حذف کنیم. برای حذف کردن یک پوشه (Folder)، باید دو شرط زیر صادق باشد :

1- پوشه (Folder) خالی باشد (شامل هیچ فایل یا پوشه ای نباشد).

2- اجازه های (permissions) مربوط به حذف پوشه را داشته باشیم.

به مثال زیر توجه کنید :

[h=4]مثال :[/h]فرض کنید که در محل فایل فعلی (فایلی که در حال اجرای کدهای آن هستیم)، یک پوشه (Folder) با نام myFolder وجود داشته باشد. برای حذف این پوشه، کدهای PHP زیر را اجرا می کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$dir[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"myFolder"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#990000]rmdir[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$dir[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]پوشه myFolder حذف می شود (اگر فایل یا پوشه ای درون آن وجود داشته باشد، یک پیام خطا نمایش داده می شود).
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
به دست آوردن اجازه های (permissions) مربوط به یک فایل، با تابع fileperms در PHP

به دست آوردن اجازه های (permissions) مربوط به یک فایل، با تابع fileperms در PHP

با استفاده از تابع fileperms در PHP ، می توانیم اجازه های (permissions) مربوط به یک فایل را به صورت یک عدد به دست بیاوریم. البته در مثال ها، مثالی را نیز ذکر می کنیم که با آن می توان از عدد به دست آمده، اجازه ها (permissions) را به صورت قابل درک، نمایش داد.

به مثال زیر توجه کنید :

[h=4]مثال :[/h]فرض کنید که در محل فایل فعلی (فایلی که در حال اجرای کدهای آن هستیم)، یک فایل با نام example.xml وجود دارد. برای به دست آوردن اجازه های (permissions) مربوط به این فایل، کدهای PHP زیر را اجرا می کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$file[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"example.xml"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$permissions[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]fileperms[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$file[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$permissions[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#CC66CC]33206[/COLOR][/FONT]
[/FONT][/COLOR]
[h=4]مثال :[/h]همان مثال قبل را این بار به گونه ای می نویسیم که اجازه ها (permissions) را به صورت قابل درک تری مشاهده کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$file[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"example.xml"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$perms[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]fileperms[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$file[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$perms[/COLOR] [COLOR=#339933]&[/COLOR] [COLOR=#208080]0xC000[/COLOR][COLOR=#009900])[/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#208080]0xC000[/COLOR][COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
    [COLOR=#666666][I]// Socket[/I][/COLOR]
    [COLOR=#000088]$info[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]'s'[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR] [COLOR=#B1B100]elseif[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$perms[/COLOR] [COLOR=#339933]&[/COLOR] [COLOR=#208080]0xA000[/COLOR][COLOR=#009900])[/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#208080]0xA000[/COLOR][COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
    [COLOR=#666666][I]// Symbolic Link[/I][/COLOR]
    [COLOR=#000088]$info[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]'l'[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR] [COLOR=#B1B100]elseif[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$perms[/COLOR] [COLOR=#339933]&[/COLOR] [COLOR=#208080]0x8000[/COLOR][COLOR=#009900])[/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#208080]0x8000[/COLOR][COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
    [COLOR=#666666][I]// Regular[/I][/COLOR]
    [COLOR=#000088]$info[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]'-'[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR] [COLOR=#B1B100]elseif[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$perms[/COLOR] [COLOR=#339933]&[/COLOR] [COLOR=#208080]0x6000[/COLOR][COLOR=#009900])[/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#208080]0x6000[/COLOR][COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
    [COLOR=#666666][I]// Block special[/I][/COLOR]
    [COLOR=#000088]$info[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]'b'[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR] [COLOR=#B1B100]elseif[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$perms[/COLOR] [COLOR=#339933]&[/COLOR] [COLOR=#208080]0x4000[/COLOR][COLOR=#009900])[/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#208080]0x4000[/COLOR][COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
    [COLOR=#666666][I]// Directory[/I][/COLOR]
    [COLOR=#000088]$info[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]'d'[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR] [COLOR=#B1B100]elseif[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$perms[/COLOR] [COLOR=#339933]&[/COLOR] [COLOR=#208080]0x2000[/COLOR][COLOR=#009900])[/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#208080]0x2000[/COLOR][COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
    [COLOR=#666666][I]// Character special[/I][/COLOR]
    [COLOR=#000088]$info[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]'c'[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR] [COLOR=#B1B100]elseif[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$perms[/COLOR] [COLOR=#339933]&[/COLOR] [COLOR=#208080]0x1000[/COLOR][COLOR=#009900])[/COLOR] [COLOR=#339933]==[/COLOR] [COLOR=#208080]0x1000[/COLOR][COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
    [COLOR=#666666][I]// FIFO pipe[/I][/COLOR]
    [COLOR=#000088]$info[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]'p'[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR] [COLOR=#B1B100]else[/COLOR] [COLOR=#009900]{[/COLOR]
    [COLOR=#666666][I]// Unknown[/I][/COLOR]
    [COLOR=#000088]$info[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]'u'[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]

[COLOR=#666666][I]// Owner[/I][/COLOR]
[COLOR=#000088]$info[/COLOR] [COLOR=#339933].=[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$perms[/COLOR] [COLOR=#339933]&[/COLOR] [COLOR=#208080]0x0100[/COLOR][COLOR=#009900])[/COLOR] ? [COLOR=#0000FF]'r'[/COLOR] [COLOR=#339933]:[/COLOR] [COLOR=#0000FF]'-'[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$info[/COLOR] [COLOR=#339933].=[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$perms[/COLOR] [COLOR=#339933]&[/COLOR] [COLOR=#208080]0x0080[/COLOR][COLOR=#009900])[/COLOR] ? [COLOR=#0000FF]'w'[/COLOR] [COLOR=#339933]:[/COLOR] [COLOR=#0000FF]'-'[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$info[/COLOR] [COLOR=#339933].=[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$perms[/COLOR] [COLOR=#339933]&[/COLOR] [COLOR=#208080]0x0040[/COLOR][COLOR=#009900])[/COLOR] ?
            [COLOR=#009900]([/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$perms[/COLOR] [COLOR=#339933]&[/COLOR] [COLOR=#208080]0x0800[/COLOR][COLOR=#009900])[/COLOR] ? [COLOR=#0000FF]'s'[/COLOR] [COLOR=#339933]:[/COLOR] [COLOR=#0000FF]'x'[/COLOR] [COLOR=#009900])[/COLOR] [COLOR=#339933]:[/COLOR]
            [COLOR=#009900]([/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$perms[/COLOR] [COLOR=#339933]&[/COLOR] [COLOR=#208080]0x0800[/COLOR][COLOR=#009900])[/COLOR] ? [COLOR=#0000FF]'S'[/COLOR] [COLOR=#339933]:[/COLOR] [COLOR=#0000FF]'-'[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#666666][I]// Group[/I][/COLOR]
[COLOR=#000088]$info[/COLOR] [COLOR=#339933].=[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$perms[/COLOR] [COLOR=#339933]&[/COLOR] [COLOR=#208080]0x0020[/COLOR][COLOR=#009900])[/COLOR] ? [COLOR=#0000FF]'r'[/COLOR] [COLOR=#339933]:[/COLOR] [COLOR=#0000FF]'-'[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$info[/COLOR] [COLOR=#339933].=[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$perms[/COLOR] [COLOR=#339933]&[/COLOR] [COLOR=#208080]0x0010[/COLOR][COLOR=#009900])[/COLOR] ? [COLOR=#0000FF]'w'[/COLOR] [COLOR=#339933]:[/COLOR] [COLOR=#0000FF]'-'[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$info[/COLOR] [COLOR=#339933].=[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$perms[/COLOR] [COLOR=#339933]&[/COLOR] [COLOR=#208080]0x0008[/COLOR][COLOR=#009900])[/COLOR] ?
            [COLOR=#009900]([/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$perms[/COLOR] [COLOR=#339933]&[/COLOR] [COLOR=#208080]0x0400[/COLOR][COLOR=#009900])[/COLOR] ? [COLOR=#0000FF]'s'[/COLOR] [COLOR=#339933]:[/COLOR] [COLOR=#0000FF]'x'[/COLOR] [COLOR=#009900])[/COLOR] [COLOR=#339933]:[/COLOR]
            [COLOR=#009900]([/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$perms[/COLOR] [COLOR=#339933]&[/COLOR] [COLOR=#208080]0x0400[/COLOR][COLOR=#009900])[/COLOR] ? [COLOR=#0000FF]'S'[/COLOR] [COLOR=#339933]:[/COLOR] [COLOR=#0000FF]'-'[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#666666][I]// World[/I][/COLOR]
[COLOR=#000088]$info[/COLOR] [COLOR=#339933].=[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$perms[/COLOR] [COLOR=#339933]&[/COLOR] [COLOR=#208080]0x0004[/COLOR][COLOR=#009900])[/COLOR] ? [COLOR=#0000FF]'r'[/COLOR] [COLOR=#339933]:[/COLOR] [COLOR=#0000FF]'-'[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$info[/COLOR] [COLOR=#339933].=[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$perms[/COLOR] [COLOR=#339933]&[/COLOR] [COLOR=#208080]0x0002[/COLOR][COLOR=#009900])[/COLOR] ? [COLOR=#0000FF]'w'[/COLOR] [COLOR=#339933]:[/COLOR] [COLOR=#0000FF]'-'[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$info[/COLOR] [COLOR=#339933].=[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$perms[/COLOR] [COLOR=#339933]&[/COLOR] [COLOR=#208080]0x0001[/COLOR][COLOR=#009900])[/COLOR] ?
            [COLOR=#009900]([/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$perms[/COLOR] [COLOR=#339933]&[/COLOR] [COLOR=#208080]0x0200[/COLOR][COLOR=#009900])[/COLOR] ? [COLOR=#0000FF]'t'[/COLOR] [COLOR=#339933]:[/COLOR] [COLOR=#0000FF]'x'[/COLOR] [COLOR=#009900])[/COLOR] [COLOR=#339933]:[/COLOR]
            [COLOR=#009900]([/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$perms[/COLOR] [COLOR=#339933]&[/COLOR] [COLOR=#208080]0x0200[/COLOR][COLOR=#009900])[/COLOR] ? [COLOR=#0000FF]'T'[/COLOR] [COLOR=#339933]:[/COLOR] [COLOR=#0000FF]'-'[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$info[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#339933]-[/COLOR]rw[COLOR=#339933]-[/COLOR]rw[COLOR=#339933]-[/COLOR]rw[COLOR=#339933]-[/COLOR][/FONT]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
به دست آوردن مقدار فضای خالی یک فایل سیستمی (filesystem) یا یک درایو (disk partition)، با تابع disk_free_space در PHP

به دست آوردن مقدار فضای خالی یک فایل سیستمی (filesystem) یا یک درایو (disk partition)، با تابع disk_free_space در PHP

با استفاده از تابع disk_free_space در PHP ، می توانیم مقدار فضای خالی یک فایل سیستمی (filesystem) یا یک درایو (disk partition) را به دست آوریم. تابع disk_free_space ، در صورت موفقیت، مقدار فضای خالی را بر حسب تعداد بایت (bytes) بیان می کند و یا در صورت عدم موفقیت، مقدار false را برمی گرداند.

به مثال زیر توجه کنید :

[h=4]مثال :[/h]فرض کنید که بر روی کامپیوتر شخصی خود، از یک نرم افزار شبیه ساز سرور (مثل نرم افزار wamp server) استفاده کرده ایم تا کدهای PHP قابل اجرا باشند. اکنون با کدهای PHP زیر، ابتدا مقدار فضای خالی مربوط به پوشه (Folder) حاوی فایل فعلی (فایلی که در حال اجرای کدهای آن هستیم) و سپس مقدار فضای خالی مربوط به درایو C کامپیوتر را به دست می آوریم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$dfs[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]disk_free_space[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"/"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$dfs[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"<br />"[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#000088]$dfs[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]disk_free_space[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"C://"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$dfs[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#CC66CC]94159699968[/COLOR]
[COLOR=#CC66CC]94159699968[/COLOR][/FONT]
[/FONT][/COLOR]
به دلیل اینکه نرم افزار شبیه ساز، از درایو C برای شبیه سازی سرور (server) استفاده کرده است، مقدار دو عدد، برابر می باشد.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
به دست آوردن مقدار کل فضای (خالی و غیر خالی) یک فایل سیستمی (filesystem) یا یک درایو (disk partition)، با تابع disk_total_space

به دست آوردن مقدار کل فضای (خالی و غیر خالی) یک فایل سیستمی (filesystem) یا یک درایو (disk partition)، با تابع disk_total_space

با استفاده از تابع disk_total_space در PHP ، می توانیم مقدار کل فضای (خالی و غیر خالی) یک فایل سیستمی (filesystem) یا یک درایو (disk partition) را به دست آوریم. تابع disk_total_space ، در صورت موفقیت، مقدار کل فضا (خالی و غیر خالی) را بر حسب تعداد بایت (bytes) بیان می کند و یا در صورت عدم موفقیت، مقدار false را برمی گرداند.

به مثال زیر توجه کنید :

[h=4]مثال :[/h]فرض کنید که بر روی کامپیوتر شخصی خود، از یک نرم افزار شبیه ساز سرور (مثل نرم افزار wamp server) استفاده کرده ایم تا کدهای PHP قابل اجرا باشند. اکنون با کدهای PHP زیر، ابتدا مقدار کل فضای (خالی و غیر خالی) مربوط به پوشه (Folder) حاوی فایل فعلی (فایلی که در حال اجرای کدهای آن هستیم) و سپس مقدار کل فضای (خالی و غیر خالی) مربوط به درایو C کامپیوتر را به دست می آوریم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$dfs[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]disk_total_space[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"/"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$dfs[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"<br />"[/COLOR][COLOR=#339933];[/COLOR]

[COLOR=#000088]$dfs[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]disk_total_space[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"C://"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#000088]$dfs[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#CC66CC]306341474304[/COLOR]
[COLOR=#CC66CC]306341474304[/COLOR][/FONT]
[/FONT][/COLOR]
به دلیل اینکه نرم افزار شبیه ساز، از درایو C برای شبیه سازی سرور (server) استفاده کرده است، مقدار دو عدد، برابر می باشد.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
چک کردن مطابق بودن نام یک فایل (filename) و یا در کل، یک رشته (string)، با یک الگوی (pattern) مشخص، با تابع fnmatch در PHP

چک کردن مطابق بودن نام یک فایل (filename) و یا در کل، یک رشته (string)، با یک الگوی (pattern) مشخص، با تابع fnmatch در PHP

با استفاده از تابع fnmatch در PHP ، می توانیم چک کنیم که آیا نام فایل (filename) با یک الگوی (pattern) مشخص مطابقت دارد یا خیر. اگرچه این تابع برای چک کردن نام فایل (filename) به کار می رود، اما هر رشته (string) دلخواه را نیز می توان با آن چک کرد.

به مثال زیر توجه کنید :

[h=4]مثال :[/h]فرض کنید که بخواهیم نام یک فایل را چک کنیم که آیا از نوع xml (یعنی با پسوند xml) می باشد یا خیر. برای این منظور، باید نام فایل را با الگوی (pattern) کلی زیر چک کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#339933]*.[/COLOR]xml[/FONT]
[/FONT][/COLOR]
چون به جای ستاره (*)، هر نامی می تواند قرار بگیرد، بنابراین الگوی (pattern) فوق می تواند برای شناسایی فایل های با پسوند xml به کار رود.

بنابراین کدهای PHP زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$file[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"example.xml"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#000088]$match[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]fnmatch[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"*.xml"[/COLOR][COLOR=#339933],[/COLOR][COLOR=#000088]$file[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#000088]$match[/COLOR][COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"matched"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR][COLOR=#B1B100]else[/COLOR][COLOR=#009900]{[/COLOR]
    [COLOR=#B1B100]echo[/COLOR] [COLOR=#0000FF]"not matched"[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#009900]}[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]matched[/FONT]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
ساخت یک فایل به صورت موقتی (temporary)، با تابع tmpfile در PHP

ساخت یک فایل به صورت موقتی (temporary)، با تابع tmpfile در PHP

با استفاده از تابع tmpfile در PHP ، می توانیم یک فایل موقتی (temporary) بسازیم، به گونه ای که وقتی مجموعه عملیات های مورد نظرمان با فایل تمام شد، وقتی فایل را ببندیم، دیگر آن فایل وجود نخواهد داشت.

به مثال زیر توجه کنید :

[h=4]مثال :[/h]
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$temp[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#990000]tmpfile[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#990000]fwrite[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$temp[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#0000FF]"www.www.www.iran-eng.ir"[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#990000]fseek[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$temp[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#CC66CC]0[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#B1B100]echo[/COLOR] [COLOR=#990000]fread[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$temp[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#CC66CC]1024[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[COLOR=#990000]fclose[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$temp[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR] [COLOR=#666666][I]// this removes the file[/I][/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]خروجی صفحه به صورت زیر خواهد بود و فایل نیز دیگر وجود ندارد (وقتی تابع fclose را به کار ببریم، فایل خود به خود حذف می شود) :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]www[COLOR=#339933].[/COLOR]iran-eng[COLOR=#339933].[/COLOR]com[/FONT]
[/FONT][/COLOR]
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
ساخت لینک سخت (hard link) به یک فایل

ساخت لینک سخت (hard link) به یک فایل

ساخت لینک سخت (hard link) به یک فایل (وجود داشتن فایل با دو یا چند نام و در محل های مختلف، اما به صورت واحد و با اطلاعات یکسان، حتی در صورت تغییر دادن یکی از آنها)، با تابع link در PHP :


قبل از هر چیز، بهتر است شرح بدهیم که اصلا لینک سخت (hard link) به یک فایل چیست و چه کاربردی دارد. ساخت لینک سخت (hard link) برای یک فایل، به این معنی است که از آن فایل اصلی، یک فایل دیگر با نامی متفاوت (و یا حتی در محلی متفاوت)(یا با نام یکسان اما در محلی متفاوت) می سازیم، اما به گونه ای که هر تغییری که در یکی از این دو فایل بدهیم، فایل دیگر نیز تغییر می کند. در واقع دو فایل به هم لینک شده اند و به این نوع لینک شدن، لینک سخت (hard link) می گوییم.

محدودیتی در تعداد فایل وجود ندارد و هر تعداد که بخواهیم، می توانیم فایل با لینک سخت (hard link) از روی فایل اصلی بسازیم.

عکس زیر، مفهوم لینک سخت (hard link) را شرح می دهد :594.png
قابلیت ساخت یک یا چند لینک سخت (hard link) از روی یک فایل، در سیستم عامل ویندوز نیز وجود دارد و بنابراین اگر از یک نرم افزار شبیه ساز سرور (server) بر روی کامپیوتر استفاده کنید (مثل نرم افزار wamp server) و با کدهای PHP ، یک یا چند لینک سخت (hard link) از روی یک فایل بسازید، با تغییر به شیوه معمولی در ویندوز نیز سایر فایل های لینک شده، تغییر می کنند.

به مثال زیر توجه کنید :

[h=4]مثال :[/h]فرض کنید که با یک نرم افزار شبیه ساز سرور (server)، سرور را بر روی کامپیوتر خود شبیه سازی کرده باشیم. همچنین یک فایل با نام example.txt در محل پوشه حاوی فایل فعلی (فایلی که در حال اجرای کدهای آن هستیم) وجود دارد که حاوی متن زیر می باشد :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]www[COLOR=#339933].[/COLOR]iran-eng[COLOR=#339933].[/COLOR]com[/FONT]
[/FONT][/COLOR]
اکنون کدهای PHP زیر را اجرا می کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#000088]$target[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"example.txt"[/COLOR][COLOR=#339933];[/COLOR] 
[COLOR=#000088]$link[/COLOR] [COLOR=#339933]=[/COLOR] [COLOR=#0000FF]"example_2.txt"[/COLOR][COLOR=#339933];[/COLOR] 

[COLOR=#990000]link[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000088]$target[/COLOR][COLOR=#339933],[/COLOR] [COLOR=#000088]$link[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
[h=4]نتیجه :[/h]با اجرای کدهای بالا، یک فایل با نام example_2.txt ساخته می شود که اگر آن را باز کنیم، حاوی متن زیر می باشد (همان متن فایل اول) :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]www[COLOR=#339933].[/COLOR]iran-eng[COLOR=#339933].[/COLOR]com[/FONT]
[/FONT][/COLOR]
اکنون یک خط به متن درون فایل example_2.txt اضافه می کنیم تا حاوی دو خط زیر باشد :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]www[COLOR=#339933].[/COLOR]iran-eng[COLOR=#339933].[/COLOR]com
www[COLOR=#339933].[/COLOR]iran-eng[COLOR=#339933].[/COLOR]com[COLOR=#339933]/[/COLOR]php[COLOR=#339933]-[/COLOR]education[COLOR=#339933]/[/COLOR][/FONT]
[/FONT][/COLOR]
فایل را ذخیره (save) کرده و می بندیم. سپس فایل example.txt را باز می کنیم. متن درون آن، به صورت زیر می باشد :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]www[COLOR=#339933].[/COLOR]iran-eng[COLOR=#339933].[/COLOR]com
www[COLOR=#339933].[/COLOR]iran-eng[COLOR=#339933].[/COLOR]com[COLOR=#339933]/[/COLOR]php[COLOR=#339933]-[/COLOR]education[COLOR=#339933]/[/COLOR][/FONT]
[/FONT][/COLOR]
مشاهده می کنید که تغییری که در فایل example_2.txt ایجاد کردیم، به فایل example.txt نیز اعمال شده است، زیرا بین این دو فایل، لینک سخت (hard link) وجود دارد.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
چک کردن وجود داشتن یک فایل، با تابع file_exists در PHP

چک کردن وجود داشتن یک فایل، با تابع file_exists در PHP

با استفاده از تابع file_exists در PHP ، می توانیم چک کنیم که آیا یک تابع وجود دارد یا خیر.

به عنوان مثال فرض کنید بخواهیم که تنها در صورت وجود یک فایل با نام myFile.txt در محل فایل فعلی (در پوشه حاوی فایلی که در حال اجرای کدهای آن هستیم)، یک سری کد اجرا شود، برای این منظور، کدهای زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]<?php[/B]
[COLOR=#B1B100]if[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#990000]file_exists[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]'myFile.txt'[/COLOR][COLOR=#009900])[/COLOR][COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
    [COLOR=#666666][I]// your code[/I][/COLOR]
[COLOR=#009900]}[/COLOR]
[B]?>[/B][/FONT]
[/FONT][/COLOR]
که در آن، به جای عبارت // your code ، باید کدهایی را بنویسیم که قصد داریم در صورت وجود فایل، اجرا شوند.
 

Similar threads

بالا