سبد (0)

توابع کار با فایل ها در PHP

  • به چه چیزی نیاز دارم؟

    Wiki

    برای شروع کار با PHP می توانید یکی از موارد زیر را استفاده نمایید:

    1. می توانید از یک وب هاست که PHP و MYSQL را پشتیبانی می کند، استفاده نمایید.
    2. یک web server مانند Apache، روی کامپیوترتان نصب کنید و سپس PHP و MYSQL را نصب نمایید.
    3. می توانید از پکیج هایی مانند Xampp یا Wamp استفاده نمایید.

    1- وب هاستی که PHP را پشتیبانی می کند

    Wiki

    اگر سرور شما PHP را پشتیبانی می کند به چیز دیگری نیاز ندارید.

    فقط باید یک فایل PHP ایجاد نمایید و آنرا در دایرکتوری وب قرار دهید. سرور بطور اتوماتیک آنرا ترجمه خواهد کرد.

    بخاطر اینکه PHP رایگان است و اغلب سرورها آنرا پشتیبانی می کنند نیاز به کامپایل یا نصب ابزار های اضافی ندارید.

    به هر حال اگر سرور شما PHP را پشتیبانی نمی کند، باید PHP را نصب نمایید.


    2- نصب جداگانه Web Server و PHP و MYSQL

    Wiki

    اگر کامپیوترتان، PHP را پشتیبانی نمی کند باید کارهای زیر را انجام دهید:

    • نصب وب سرور (Apache)
    • نصب PHP
    • نصب بک پایگاه داده، مانند MYSQL

     در لینک روبرو، آموزش چگونگی نصب PHP به خوبی توضیح داده شده است: http://php.net/manual/en/install.php

    دانلود Apache Server:

    برای دانلود رایگان Appache از لینک روبرو استفاده کنید: http://httpd.apache.org/download.cgi

    دانلود PHP:

    برای دانلود رایگان PHP از لینک روبرو استفاده کنید: http://www.php.net/downloads.php

    دانلود MySQL :

    برای دانلود رایگان MySQL از لینک روبرو استفاده کنید: http://www.mysql.com/downloads

     توجه: به جای نصب جداگانه PHP , MySQL, Apache می توانید از پکیج هایی مانند Xampp یا Wamp استفاده نمایید که کار شما را بسیار ساده تر می نمایند، البته در مطلب PHP & IIS چگونگی اجرای فایلهای PHP روی IIS توضیح داده شده است.


    3- استفاده از Xampp یا Wamp

    Wiki

    همانطور که قبلاً گفته شد برای شروع کار با php نیاز به نصب مفسر آن داریم که پکیج Xampp برای این منظور مناسب می باشد.

    مراحل نصب XAMPP:

    برای دانلود رایگان XAMPP از لینک روبرو استفاده کنید: http://www.apachefriends.org/en/xampp.html

    1- در اولین مرحله، خوش آمدگویی داریم، پس Next را مطابق شکل زیر کلیک کنید.

    2-  مسیر نصب را مطابق شکل زیر البته به صورت دلخواه مشخص کنید.

    3- در صورتی که میخواهید Apache و MySQL به عنوان سرویس های ویندوز نصب بشوند گزینه های Install Apache as Service و Install MySQL as Service را تیک بزنید، در غیر این صورت اگر تیک Install as Service را نزده باشید باید هر بار که ویندوز بالا می آید Apache و MySQL را فعال کنید، یعنی باید دکمه Start کنارشون را در کنترل پانل XAMPP کلیک کنید، در نهایت کلید Install را مطابق شکل زیر کلیک کنید.

    نکته1: در صورتیکه IIS روی سیستم شما نصب است و XAMPP را نصب کنید، در نهایت برای اجرای فایل های PHP به مشکل برخواهید خورد، بنابراین باید IIS را Stop کنید.

    نکته2:اگر SQL Server روی سیستم شما نصب است باید سرویس Reporting Services Configuration Manager آنرا Stop کنید تا XAMPP به درستی فایلهای PHP را اجرا کند.

    در شکل زیر کنترل پنل Xampp را می بینید که می توانید Apache و MySQL را Start یا Stop کنید.

     حالا مرورگرتان را باز کنید و در آدرس بار مرورگر localhost یا 127.0.0.1 را تایپ کنید و یا می توانید در شکل بالا دکمه Admin را کلیک کنید اگر همه چیز خوب پیش رفته باشه صفحه زیر را خواهید دید که می توانید زبان صفحات Xampp را انتخاب کنید پس روی English کلیک کنید!

    در نهایت صفحه ای مانند شکل زیر نمایش داده می شود.

    ایجاد و اجرای یک فایل PHP:

      1. یک فایل PHP ساده ایجاد کنید، به عنوان مثال در ادیتور NOTEPAD کد زیر را تایپ کنید و با نام hello و با پسوند php ذخیره کنید(hello.php):

        <?php
        echo "Hello";
        ?>

      2.  فایل ایجاد شده در بالا را در مسیر C:\xampp\htdocs کپی کنید. (مسیر نصب XAMPP خواهد بود)
      3. در آدرس بار مرورگر، آدرس localhost/hello.php را وارد کنید.
      4. اگر همه چیز درست پیش رفته باشد، خروجی زیر را خواهید داشت:

        Hello


    برای مشاهده فیلم ها و آموزش های پروژه محور برنامه نویسی PHP کلیک کنید.

    READ MORE
  • مقدمه ی توابع کار با فایل ها در PHP یا (Filesystem)

    توابع مربوط به فایل ها در PHPبه شما امکان می دهند تا filesystem را دستکاری کرده و تغییر دهید. 


    نحوه نصب کردن

    توابع filesystem جزئی از هسته ی php هستند. و نیازی نیست تا برای استفاده از این توابع آنها را نصب کنید. 


    توابع filesystem در php5

    تابع توضیحات
    basename

     تابع ()basename، نام فایل مورد نظر را از یک مسیر، برمی گرداند. 

    chgrp

     تابع ()chgrp درواقع usergroup را از فایل مشخص شده تغییر می دهد.

    chmod

     تابع ()chmod دسترسی های یک فایل مشخص را تغییر می دهد. 

    chown

     تابع ()chown مالکیت یک فایل مشخص را تغییر می دهد.

    clearstatcache

     تابع ()clearstatcatche درواقع وضعیت کش شدن فایل را مشخص می کند. 

    copy

     تابع ()copy یک فایل را کپی می کند. 

    delete

     به جای آن به تابع unlink یا unset مراجعه کنید. 

    dirname

     تابع ()dirname، نام دایرکتوری را از یک مسیر برمی گرداند. 

    disk_free_space

     تابع ()disk_free_space از یک دایرکتوری مشخص، مقدار فضای خالی را به بایت برمی گرداند. 

    disk_total_space

     تابع ()disk_total_space فضای کلی یک دایرکتوری مشخص را با بایت برمی گرداند. 

    diskfreespace

     یک نام مستعار تابع disk_free_space است. 

    fclose

     تابع ()fclose یک فایل باز شده را می بندد. 

    feof

     تابع ()feof بررسی می کند که آیا به EOF رسیده ایم یا نه.

    fflush

     تابع ()fflush تمام خروجی بافر شده را دریک فایل باز شده(open) می نویسد. 

    fgetc

     تابع ()fgetc یک کاراکتر تکی از یک فایل باز شده را برمی گرداند.

    fgetcsv

     تابع ()fgetcsv یک خط از داده های یک فایل باز شده ی csv را تجزیه می کند. 

    fgets

     تابع ()fgets یک خط از یک فایل باز شده را برمی گرداند. 

    fgetss

     تابع ()fgetss از یک فایل باز شده، یک خط را برمی گرداند به طوری که تگ های HTML و PHP آن خذف شده اند. 

    file

     تابع ()file یک فایل را درون یک آرایه، می خواند. 

    file_exists

     تابع ()file_exists بررسی می کند که آیا یک فایل یا یک دایرکتوری، موجود است یا نه. 

    file_get_contents

     تابع ()file_get_contents یک فایل را در یک رشته می خواند. 

    file_put_contents

     تابع ()file_put_contents یک رشته را درون یک فایل می نویسد. 

    fileatime

     تابع ()fileatime زمان آخرین دسترسی به یک فایل مشخص را برمی گرداند. 

    filectime

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

    filegroup

     تابع ()filegroup از یک فایل مورد نظر، group ID را برمی گرداند.

    fileinode

     تابع ()fileinode مقدار inode از یک فایل مورد نظر را برمی گرداند. 

    filemtime

     تابع ()filemtime آخرین زمانی که محتوای فایل مورد نظر تغییر کرده است را برمی گرداند.

    fileowner

     تابع ()fileowner درواقع user ID(مالک) را  از یک فایل مشخص برمی گرداند. 

    fileperms

     تابع ()fileperms مجوزهای(permissions) یک فایل یا دایرکتوری را برمی گرداند.

    filesize

     تابع ()filesize سایز یک فایل مشخص را برمی گرداند. 

    filetype

     تابع ()filetype نوع فایل را از یک فایل یا دایرکتوری مشخص برمی گرداند. 

    flock

     تابع ()flock یک فایل را قفل کرده و یا آزاد می کند.

    fnmatch

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

    fopen

     یک فایل یا url را باز می کند. 

    fpassthru

     تابع ()fpassthru تمام داده ها را از مکان کنونی، در یک فایل باز شده می خواند تا هنگامی که به پایان فایل(EOF) برسد و سپس نتیجه را در خروجی می نویسد. 

    fputcsv

     تابع ()fputcsv، یک خط داده را به فرمت CSV در می آورد و آن را در یک فایل باز، می نویسد. 

    fputs

     این تابع یک نام مستعار از تابع fwrite است. 

    fread

     تابع ()fread عمل خواندن را از یک فایل باز شده انجام می دهد.

    fscanf

    Parses input from an open file according to a specified format

    fseek

     تابع ()fseek در یک فایل باز شده پویش می کند. 

    fstat

     تابع ()fstat اطلاعاتی را درباره ی یک فایل باز شده برمی گرداند. 

    ftell

     تابع ()ftell  مکان کنونی(current position) را در یک فایل باز شده، برمی گرداند.

    ftruncate

     تابع ()ftruncate یک فایل باز شده را به یک طول مشخص کوتاه می کند.

    fwrite

     تابع ()fwrite در درون یک فایل باز شده، عمل نوشتن را انجام می دهد. 

    glob

     تابع ()glob یک آرایه از نام فایل ها یا دایرکتوری هایی که با یک الگوی مشخص تطابق دارند را برمی گرداند. 

    is_dir

     تابع ()is_dir بررسی می کند که آیا فایل مشخص شده یک دایرکتوری است یا نه. 

    is_executable

     تابع ()is_executable بررسی می کند که آیا فایل مشخص شده قابل اجرا(executable) است یا نه. 

    is_file

     تابع ()is_file بررسی می کند که آیا یک فایل مشخص، یک فایل حقیقی است یا نه. 

    is_link

     تابع ()is_link بررسی می کند که آیا فایل مشخص شده یک لینک است یا نه. 

    is_readable

     تابع ()is_readable بررسی می کند که آیا فایل مشخص شده قابل خواندن است یا نه. 

    is_uploaded_file

     تابع ()is_uploaded_file بررسی می کند که آیا فایل مورد نظر، به وسیله ی HTTP POST آپلود شده است یا نه. 

    is_writable

     تابع ()is_writeable بررسی می کند که آیا فایل مورد نظر قابل خواندن است ی نه. 

    is_writeable

     یک مستعار از تابع is_writable است.

    lchgrp

    Changes group ownership of symlink

    lchown

    Changes user ownership of symlink

    link

    Creates a hard link

    linkinfo

     تابع ()linkinfo اطلاعاتی را درباره ی یک hard link برمی گرداند. 

    lstat

     تابع ()lstat اطلاعاتی را درباره ی یک فایل یا یک لینک سمبلیک برمی گرداند. 

    mkdir

     تابع ()mkdir یک دایرکتوری را ایجاد می کند. 

    move_uploaded_file

     تابع ()move_uploaded_file یک فایل آپلود شده را به یک مکان جدید حرکت می دهد. 

    parse_ini_file

     تابع ()parse_ini_file یک فایل پیکربندی(ini) را تجزیه کرده و تنظیمات درون آن را به صورت یک آرایه برمی گرداند. 

    parse_ini_string

     یک رشته ی پیکربندی را تجزیه می کند. 

    pathinfo

     تابع ()pathinfo  یک آرایه را برمی گرداند که دربردارنده ی اطلاعاتی درباره ی یک مسیر(path)است. 

    pclose

     تابع ()pclose یک pipe را که به وسیله ی popen باز شده است را می بندد. 

    popen

     تابع ()popen یک pipe را که در برنامه ای که در پارامتر command مشخص شده است را باز می کند. 

    readfile

     تابع ()readfile یک فایل را می خواند و آن را در خروجی می نویسد. 

    readlink

     تابع ()readlink در واقع target مورد نظر از یک لینک سمبلیک را برمی گرداند. 

    realpath

     تابع ()realpath نام مسیر(phathname) مطلق را برمی گرداند. 

    realpath_cache_get

    Returns realpath cache entries

    realpath_cache_size

    Returns realpath cache size

    rename

     تابع ()rename یک فایل یا دایرکتوری را تغییر نام می دهد. 

    rewind

     تابع ()rewind مکان اشاره گر فایل را به ابتدای فایل برمی گرداند. 

    rmdir

     تابع ()rmdir یک دایرکتوری خالی را حذف می کند. 

    set_file_buffer

     تابع ()set_file_buffer اندازه ی بافر یک فایل باز شده را ست می کند. 

    stat

     تابع ()stat اطلاعاتی را درباره ی یک فایل برمی گرداند. 

    symlink

     تابع ()symlink از target موجود به وسیله ی link مشخص شده، یک لینک سمبلیک را ایجاد می کند. 

    tempnam

     تابع ()tempnam یک فایل موقت را با یک نام یکتا در یک دایرکتوری مشخص ایجاد می کند. 

    tmpfile

     تابع ()tmpfile یک فایل موقت را با یک نام یکتا در حالت read-write یا +w، ایجاد می کند. 

    touch

     تابع ()touch زمان دسترسی(access) و زمان اصلاح(modification) فایل مورد نظر را ست می کند. 

    umask

     تابع ()umask دسترسی ها را برای فایل ها تغییر می دهد. 

    unlink

    تابع ()unlink یک فایل را حذف می کند.

    READ MORE
  • جلسه ی ششم طراحی یک فروشگاه اینترنتی-طراحی زیرمنوها  به صورت داینامیک

    در قسمت دوم از این جلسه، به آموزش 'طراحی زیرمنوها به صورت داینامیک' خواهیم پرداخت.


    آنچه که در قسمت قبل طراحی شد

    در قسمت قبل، موارد کلی زیر آموزش داده شدند:

    1.  پیاده سازی منوهای html با استفاده از php با استفاده از یک جدول در داخل دیتابیس

    مشاهده ی آنچه که در قسمت قبل طراحی شد:

     


    آنچه که در قسمت 'طراحی زیرمنوها به صورت داینامیک' خواهید آموخت

    در قسمت 'طراحی منو به صورت داینامیک' موارد زیر آموزش داده خواهند شد:

    توضیح اجمالی:

      در این قسمت به تکمیل داینامیک نمودن منوی اصلی سایت می پردازیم.در قسمت قبل منوها را داینامیک نمودیم و اما در این بخش قصد داریم زیرمنوها را نیز به صورت داینامیک از دیتابیس دریافت کنیم و به کاربران نمایش دهیم.

    توضیح تفصیلی:

    1. ایجاد table جدیدی با نام tblzirmenu در دیتابیس جهت ذخیره سازی زیرمنوها
    2. ایجاد سه فیلد id,title,parent از نوع int,varchar,varchar در جدول فوق
    3. insert نمودن برخی از زیرمنوها در این table
    4. یافتن تعداد زیرمنوهای هرمنو با استفاده از دستور rowCount در PDO
    5. استفاده از دستور شرطی if جهت نمایش یا عدم نمایش زیرمنو در صورت وجود یا عدم وجود
    6. استفاده از کوئری select جهت اتصال به دیتابیس و فراخوانی زیرمنوها
    7. کاربرد حلقه while تو در تو جهت fetch کردن زیرمنوها از tblzirmenu
    8. نحوه نوشتن مقدار متغیرهای غیرعددی در یک کوئری با استفاده از سینگل کوتیشن یا دابل کوتیشن ها
    9. توضیحاتی در مورد ترکیب متغیرها و دستورات مربوط به php و رفع ایرادات احتمالی یا باگ ها
    10. prepare نمودن و سپس execute کردن و هم چنین fetch کردن اطلاعات با استفاده از PDO در php

     طراحی زیرمنوها  به صورت داینامیک

     منوهای زیر را در نظر داشته باشید:

     

    حالا می خواهیم ببینیم که به چه صورت می توانیم این زیرمنوها را با استفاده از php پیاده سازی کنیم. پس نرم افزار دریم ویور را باز می کنیم و به سراغ فایل top.php می رویم، یعنی همان فایلی که منوهای ما را در داخل خودش جا داده بود. 

    قبل از شروع به نوشتن کدها، باید به سراغ دیتابیس برویم و یک table جدید ایجاد کنیم تا زیر منو ها را در داخل آن ذخیره کنیم. بنابراین یک table به نام tblzirmenu ایجاد می کنیم:

     پس tblzirmenu جدولی است که قرار است در آن زیرمنوها را ایجاد کنیم. 

    یک فیلد که باید برای آن در نظر بگیریم عبارت است از فیلد id. ما از فیلد id اکثرا در جدول استفاده می کنیم. دلیل آن هم این است که موقعی که داریم سطرهای جدیدی را در table خود insert می کنیم، اگر که یک فیلد داشته باشیم که به صورت auto increment باشد، سطرها به صورت اتوماتیک افزایش پیدا می کنند. و علاوه بر آن، چون id منحصر به فرد است، به همین دلیل می توانیم با استفاده از id، هر سطری را به طور خاص تشخیص دهیم. 

    به طور فرضی، اگر بخواهیم که در جدول tblmenu همان طور که در زیر مشاهده می کنید، مشخص کنیم که سطر مربوط به لپتاپ، برابر است با سطر id شماره ی 2، چون این سطر منحصر به فرد است و سطر دیگری وجود ندارد که id آن برابر با 2 باشد، همین سطر مربوط به لپتاپ را برای ما مشخص می کند:

     

     بنابراین id هویت یا شناسه ی هرکدام از این سطرها است به طور منحصر به فرد. درواقع این یکی از مزایای اصلی id است که در ادامه بیشتر با این فیلد آشنا خواهیم شد...


    دسترسی به موارد آموزشی بالا در بسته ی خریداری شده:

    • شماره جلسه: 6
    • نام فایل ویدئو: 19
    • فرمت فایل: mp4.

    نقطه ی شروع بحث بالا (طراحی زیرمنوها به صورت داینامیک) در ویدئو: 01:41

    READ MORE
  • جلسه ی چهارم طراحی یک فروشگاه اینترنتی-طراحی کالاهای پیشنهادی

    در قسمت اول از این جلسه، به آموزش 'طراحی کالاهای پیشنهادی' می پردازیم.


    آنچه که در قسمت قبل طراحی شد

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

    1. نحوه ی ایجاد قسمت جدیدترین کالاها
    2. نحوه ی اضافه کردن قسمت اسلایدشو

    مشاهده ی آنچه که در قسمت قبل طراحی شد:

    eshop part12 lastResult


    آنچه که در قسمت 'طراحی کالاهای پیشنهادی' خواهید آموخت

    در قسمت 'طراحی کالاهای پیشنهادی' موارد زیر آموزش داده خواهند شد:

    توضیح اجمالی:

    1. ایجاد div دربردارنده ی قسمت کالاهای پیشنهادی
    2.  ایجاد قسمت 'کالاهای پیشنهادی'

    توضیح تفصیلی:

    1. ایجاد یک تگ div جدید با id به نام underslide و همچنین div دیگری با آی دی underslide1 درون آن با width برابر با 1100 پیکسل.
    2. تفکیک underslide1 به دو ستون راست و چپ با id های right و left
    3. استایل دهی به بخش های فوق با استفاده از دستورات css
    4. ایجاد تگ h2 جهت نمایش عنوان مربوط به کالاهای پیشنهادی
    5. مثال هایی دیگر از دستور float  جهت نمایش المان ها در یک ردیف در کنار یکددیگر.
    6. عیب یابی کدنویسی قالب و رفع مشکل با استفاده از فایرباگ.
    7. ایجاد زیرخط زیبا و گرافیکی جهت جدا کردن عنوان از بخش های درون کالاهای پیشنهادی
    8. مثالی دیگر از دستور box-shadow برای ایجاد سایه در اطراف یک المان
    9. کار با دستور list-style و نحوه ی حذف نقاط توپر سیاه رنگ کنار تگ های li
    10. کاربردی دیگر از دستور direction و مشخص نمودن جهت شروع کدنویسی html
    11. استایل دهی به تگ ul و liهای درون آن و همچنین مشخص نمودن padding یا همان حاشیه داخلی

    2.ایجاد قسمت 'کالاهای پیشنهادی'

    در این قسمت، به سراغ ایجاد عنوان 'کالاهای پیشنهادی' و نقاط رنگی که در کنار این عنوان مشاهده می شوند می رویم:

    eshop part12 kalahayePishnahadi

     به دلیل اینکه این کار را برای قسمت جدیدترین کالاها، یک بار انجام داده ایم، پس می توانیم دوباره از آن استفاده کنیم. کاری که قبلا انجام دادیم این بود که یک تگ h2 ایجاد کردیم و برای آن یک استایل تعریف کردیم. حالا می خواهیم برای ایجاد قسمت 'جدیدترین کالاها' دوباره از آنها استفاده نماییم. قبل از انجام این کار، یک div جدید را باز می کنیم و مقدار id آن را برابر با 'pishnahad' قرار می دهیم،حالا در داخل این div از تگ h2 مورد نظر استفاده می کنیم:

    مشاهده ی کد نویسی:

    eshop part12 pishnahadDiv

     اکنون از div با آی دی pishnahad شروع می کنیم و یک استایل دهی مختصر را به آن اضافه می کنیم، به صورت زیر:

    1. width یا همان پهنای آن را برابر با % 100 قرار می دهیم.
    2. مقدار border آن را برابر با 1px solid #ccc قرار می دهیم که درواقع یک کادر به اندازه ی یک پیکسل را ایجاد می کند.
    3. مقدار دستور border-radius را برابر با 7px قرار می دهیم که باعث گرد شدن حاشیه ها می شود.

    مشاهده ی کدنویسی:

    eshop part12 code1

    با انجام این تنظیمات، اگر که صفحه را دوباره رفرش(refresh) کنیم، تغییرات زیر را مشاهده می نماییم:

    مشاهده ی نتیجه:

    eshop part12 demo1

     همان طور که مشاهده می کنید، تگ h2 مورد نظر به نمایش درمی آید. حالا می توانیم استایل مربوط به این تگ h2 را نیز همان طور که قبلا آن را ایجاد کرده بودیم، در اینجا پیاده سازی کنیم. پس همان استایلی را که به تگ h2 داده بودیم از آن استفاده می کنیم درست مثل عکس زیر:

    مشاهده ی کد نویسی:

    eshop part12 pishnahadStyle

     بعد از تعریف استایل برای تگ h2 در داخل  div با آی دی 'pishnahad'، تغییرات را ذخیره می کنیم و دوباره صفحه را رفرش(refresh)می کنیم. همان طور که در تصویر زیر می بینید، استایل این تگ h2 مشابه قسمت جدیدترین کالاها شد: 

    مشاهده ی نتیجه:

    eshop part12 code2

     به یک نکته ی حائز اهمیت توجه داشته باشید که، دستور float ممکن است ما را دچار سردرگمی کند، الان اگر که کلید F12 را فشار دهیم تا افزونه ی Firebog اجرا شود...


    دسترسی به موارد آموزشی بالا در بسته ی خریداری شده:

    • شماره جلسه: 4
    • نام فایل ویدئو: 12
    • فرمت فایل: mp4.

    نقطه ی شروع بحث بالا (طراحی کالاهای پیشنهادی) در ویدئو: 8:52

    READ MORE
  • باز کردن فایل در PHP

    Wiki

    تابع ()fopen برای باز کردن فایل ها در php مورد استفاده قرار می گیرد.

    پارامتر اول این تابع شامل نام فایلی است که می خواهیم باز شود و پارامتر دوم مشخص می کند که فایل در چه حالتی باز شود:

    <html>
    <body>

    <?php
    $file=fopen("welcome.txt","r");
    ?>

    </body>
    </html>

    فایل ممکن است در یکی از حالات زیر باز شود:

    حالت توضیحات
    r

    فقط خواندنی. از ابتدای فایل آغاز می شود

    r+

    خواندنی/نوشتنی. از ابتدای فایل آغاز می شود

    w

    فقط نوشتنی. فایل را باز و محتویات آن را پاک می کند، یا اگر فایلی وجود نداشت آن را ایجاد می کند

    w+

    خواندنی/نوشتنی. فایل را باز و محتویات آن را پاک می کند، یا اگر فایلی وجود نداشت آن را ایجاد می کند

    a

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

    a+

    خواندنی/افزودنی. محتویات فایل را با نوشتن در انتهای آن حفظ می کند

    x

    فقط نوشتنی. یک فایل جدید ایجاد می کند.اگر فایل درحال حاضر وجود داشته باشد false و یک خطا برمیگرداند

    x+

    خواندنی/نوشتنی. یک فایل جدید ایجاد می کند. اگر فایل درحال حاضر وجود داشته باشد false و یک خطا برمیگرداند

    نکته:اگر تابع ()fopen قادر به باز کردن فایل مشخص شده نباشد٫ مقدار "0" یا (false) را برمی گرداند.

    مثال:

    در مثال زیر اگر تابع ()fopenقادر به باز کردن فایل مشخص شده نباشد یک پیغام تولید می کند:

    <html>
    <body>

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

    </body>
    </html>


    بستن فایل در PHP

    Wiki

    تابع ()fclose برای بستن یک فایل باز استفاده می شود:

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

    //some code to be executed

    fclose($file);
    ?>


    چک کردن پایان فایل

    Wiki

    تابع ()feof بررسی می کند که آیا به پایان فایل (eof) رسیده ایم یا نه.

    تابع ()feof برای ایجاد حلقه در داده های با طول نامشخص مناسب است.

    توجه:شما نمی توانید از فایل هایی که در حالت w و a و x باز شده اند، بخوانید!

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


    خواندن خط به خط یک فایل

    Wiki

     تابع ()fgets برای خواندن یک خط از یک فایل، مورد استفاده قرار می گیرد.

    نکته: بعد از هر بار فراخوانی این تابع، اشاره گر فایل، به خط بعدی جابه جا می شود.

     مثال:

    مثال زیر یک فایل را تا پایان فایل، خط به خط می خواند:

    <?php
    $file = fopen("welcome.txt", "r") or exit("Unable to open file!");
    //Output a line of the file until the end is reached
    while(!feof($file))
      {
      echo fgets($file). "<br />";
      }
    fclose($file);
    ?>


    خواندن کاراکتر به کاراکتر یک فایل

    Wiki

     تابع ()fgetc برای خواندن یک کاراکتر تنها از یک فایل، مورد استفاده قرار می گیرد.

    نکته: بعد از فراخوانی این تابع، اشاره گر فایل به کاراکتر بعدی جابه جا می شود.

    مثال:

    مثال زیر یک فایل را تا پایان فایل، کاراکتر به کاراکتر می خواند:

    <?php
    $file=fopen("welcome.txt","r") or exit("Unable to open file!");
    while (!feof($file))
      {
      echo fgetc($file);
      }
    fclose($file);
    ?>

    برای مشاهده فیلم ها و آموزش های پروژه محور برنامه نویسی PHPکلیک کنید.

    READ MORE
  • فرم های HTML در PHP

    Wiki

    مهمترین چیز موقع کار کردن با فرمهای HTML و PHP این است که هر عنصر در فرم HTML به طور اتوماتیک در فرم PHP قابل دسترس و ردیابی است.

    در PHP با استفاده از متغیرهای POST_$ و GET_$ می توان به اطلاعات فرم های HTML دسترسی داشت.

    مثال:

    در مثال زیر یک فرم HTML با سه عنصر زیر تعریف شده است:

    1. فیلد input از نوع text که با نام "fname" در کد PHP قابل ردیابی است.
    2. فیلد input از نوع text که با نام "age" در کد PHP قابل ردیابی است.
    3. فیلد input از نوع submit که محتویات textها را به صفحه "welcome.php" می فرستد.

    <html>
    <body>

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

    </body>
    </html>

    توجه: در مثال بالا از دو خصوصیت در تگ form استفاده شده ولی به صورت کلی خصوصیات تگ form به صورت زیر است:

    • action: اگر submit اتفاق افتاد، اطلاعات فرم HTML به صفحه ای که در این خصوصیت  مشخص شده ارسال می شود.(به صورت پیش فرض صفحه جاری در نظر گرفته می شود)
    • method: با استفاده از این خصوصیت مشخص می کنیم که ارسال اطلاعات از فرم HTML به صفحه PHP به چه شکل باشد، اگر آنرا با مقدار "get" پر کنیم، اطلاعات فرم در آدرس صفحه قرار می گیرد و ارسال می شود، و برعکس اگر آنرا با مقدار "post" پر کنیم، اطلاعات به صورت یک آرایه ارسال می شود.(به صورت پیشفرض Get در نظر گرفته می شود)
    •  name: نام فرم است كه برای php‏ نیازی به آن نداریم ولی اگه بخواهیم از جاوا اسكریپت استفاده كنیم نیاز می شود (مثل چك كردن صحت ایمیل قبل از ارسال)
    • target: نوع باز شدن صفحه مقصد را مشخص می کند كه شامل صفحه جاری ، صفحه جدید ، صفحه پدر ، یك فریم خاص و... است.
    • ...

    فایل "welcome.php" می تواند چیزی شبیه زیر باشد:

    <html>
    <body>

    Welcome <?php echo $_POST["fname"]; ?>!<br />
    You are <?php echo $_POST["age"]; ?> years old.

    </body>
    </html>

    اگر در فرم HTML تعریف شده تکس باکس ها را به صورت  "fname=Amir" و "age=28" مقدار دهی کنیم خروجی برنامه بعد از کلیک روی دکمه "submit" به صورت زیر خواهد بود:

    Welcome Amir!
    You are 28 years old.

    همانطور که قبلاً گفته شد متغیرها با علامت "$" شروع می شوند، در صفحه PHP بالا نیز از متغیری بنام "post_$" استفاده شده که در فصل بعد توضیح داده خواهد شد.


    اعتبار سنجی فرم (Validation Form)

    Wiki

    اعتبار سنجی فرم یا Validation Form یعنی چک کردن ورودی های کاربر، قبل از اینکه در دیتابیس ذخیره شود، مثلاً در بالا برای تکس باکس "age" باید حتماً کاراکترهای عددی وارد شود، در غیر این صورت برنامه باید پیغام خطا بدهد.

    به دو صورت می توان اعتبار سنجی کرد:

    1. client scripts: اعتبار سنجی سمت سرویس گیرنده انجام می شود که در این صورت سرعت بیشتر خواهد بود.
    2. server validation: اعتبار سنجی سمت سرویس دهنده انجام می شود، در حقیقت این وظیفه را یک صفحه PHP که روی سرور قرار دارد انجام می دهد.

    در فصل های آینده راجع به این موضوع به صورت کامل توضیح داده خواهد شد.


    برای مشاهده فیلم ها و آموزش های پروژه محور برنامه نویسی PHP کلیک کنید.

    READ MORE
  • متغیرهای جلسه (session) در php

    Wiki

    وقتی یک Application تحت ویندوز را باز می کنید و چند تغییر روی آن می دهید و سپس آنرا می بندید، کامپیوتر می داند شما چه کسی هستید، چه موقع درخواست را آغاز و چه موقع آن را به اتمام رسانده اید. اما در اینترنت یک مشکل وجود دارد، سرور وب نمی داند شما که هستید و چه می کنید چون آدرس HTTP، حالت State را پشتیبانی نمی کند.

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

    جلسه ها با ایجاد یک شماره ID منحصر به فرد برای هر بیننده و ذخیره متغیرها براساس این شماره ها کار می کنند.

    نکته: در یک پروژه تحت وب، بعد از ایجاد یک متغیر جلسه، مقدار آن برای همه ی صفحات پروژه قابل دستیابی است.


    آغاز یک جلسه (session) در php

    Wiki

     قبل از اینکه بتوانید اطلاعات کاربر، را در جلسه تان ذخیره کنید، ابتدا باید یک جلسه آغاز شود، تابع ()session_start برای این منظور استفاده می شود.

    نکته:تابع ()session_start باید قبل از تگ <html> بیاید:

    <?php session_start(); ?>

    <html>
    <body>

    </body>
    </html>


    تعریف یک متغیر جلسه (session) در PHP

    Wiki

     روش صحیح برای ذخیره و بازیابی متغیرهای جلسه، استفاده از SESSION_$ است:

    <?php
    session_start();
    // store session data
    $_SESSION['views']=1;
    ?>

    <html>
    <body>

    <?php
    //retrieve session data
    echo "Pageviews=". $_SESSION['views'];
    ?>

    </body>
    </html>

    خروجی کد بالا:

    Pageviews=1

    در مثال زیر یک "شمارنده بازدید صفحه" ایجاد کرده ایم، تابع ()isset بررسی می کند که آیا متغیر "views" در حال حاضر تنظیم شده است یا نه:

    <?php
    session_start();

    if(isset($_SESSION['views']))
       $_SESSION['views']=$_SESSION['views']+1;
    else
       $_SESSION['views']=1;
    echo "Views=". $_SESSION['views'];
    ?>


    از بین بردن جلسه (session) در PHP

    Wiki

    برای از بین بردن جلسه ها در PHP می توان از توابع زیر استفاده کرد:

    • ()unset: یک جلسه مشخص را به عنوان پارامتر دریافت می کند و آنرا از بین می برد.
    • ()session_destroy: کلیه جلسه های ایجاد شده را از بین می برد.

    <?php
    unset($_SESSION['views']);
    ?>

    <?php
    session_destroy();
    ?>

    برای مشاهده فیلم ها و آموزش های پروژه محور برنامه نویسی PHPکلیک کنید.

    READ MORE
  • متغیرهای رشته ای در PHP

    Wiki

    متغیر های رشته ای برای ذخیره مجموعه ای از کاراکترها استفاده می شود.

    در این فصل قصد داریم متداولترین توابعی که برای دستکاری رشته ها(String) در PHP استفاده می شود را نشان دهیم.

    بعد از اینکه یک متغیر رشته ای(String Variable) ایجاد کردید می توانید آنرا دستکاری کنید، یک رشته می تواند مستقیماً در یک تابع استفاده شود یا می توانید آنرا در یک متغیر ذخیره کنید.

    در کد PHP زیر کلمه "سلام" را به یک متغیر رشته ای(String Variable) بنام TXT$ انتساب داده و سپس آنرا چاپ می کنیم:

    <? php
    $TXT = "سلام";
    echo $TXT;
    ?>

    خروجی کد بالا:

    سلام


      حالا اجازه دهید تا بعضی از توابع و عمل کننده هایی(Operators) که برای دستکاری رشته ها بکار می رود را نشان دهیم:

    عمل کننده الحاق(نقطه)

    Wiki

    در PHP تنها یک عمل کننده برای رشته ها وجود دارد، و برای الحاق دو رشته بکار می رود، در کد زیر دو رشته "سلام" و "روز خوبی داشته باشید" به هم الحاق شده اند:

    <? php
    echo "روز خوبی داشته باشید" . " " . "سلام";
    ?>

    خروجی کد بالا:

    سلام روز خوبی داشته باشید


    تابع ()strlen

    Wiki

    این تابع برای بازگرداندن طول یک رشته استفاده می شود.

    <?php
    echo strlen("سلام!");
    echo "<br />";
    echo strlen("beyamooz.com");
    ?>

    خروجی کد بالا:

    9
    12

    توجه: در خط اول مثال بالا، چون در رشته "!سلام" از کاراکترهای فارسی استفاده شده است و به ازای هر کاراکتر فارسی 2 بیت فضا در نظر گرفته می شود، خروجی تابع ()strlen به ازای رشته مذکور 9 خواهد شد. یعنی 8 بیت برای رشته "سلام" و 1 بیت برای کاراکتر "!" در نظر گرفته خواهد شد.


    تابع ()strpos

    Wiki

    این تابع برای پیدا کردن مکان یک کاراکتر یا یک کلمه در یک رشته استفاده می شود.

    <?php
    echo strpos("beyamooz.com","m");
    ?>

    خروجی کد بالا:

    4

    توجه: همانطور که مشاهده می شود کاراکتر "m" در مکان 4 یافت شد. توجه داشته باشید که اولین مکان در رشته از 0 شروع می شود و نه 1.


    برای مشاهده فیلم ها و آموزش های پروژه محور برنامه نویسی PHP کلیک کنید.

    READ MORE
تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehi مجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامی پرداخت آنلاین -  بانک ملت معرفی بیاموز در شبکه سه