50درصد تخفیف سورس فروشگاهی دیجی کالا + اپلیکیشن اندروید تا پایان این هفته - کد تخفیف : off50
با تخفیف میخرم

تابع file_get_contents در php

  • آپدیت شده در تاریخ

تابع file_get_contents در php

تابع file_get_contents در php یک از توابع مدیریت فایل ها در این زبان اسکریپت نویسی است . تابع file_get_contents تمام اطلاعات داخل فایل منبع یا url پاس داده شده را به عنوان یک داده رشته ای می خواند .

تابع file_get_contents یکی از پر استفاده ترین توابع در میان تابع هایی که برای خواندن فایل استفاده می شود ، است برای مثال تابع file() ، fread() و غیره … .

سینتکس تابع file_get_contents در php

ما باید تابع file_get_contents در اسکریپت php را به ترتیب و syntax زیر به کار ببریم .

پارامتر های تابع file_get_contents در php

حالا ، نگاهی به جزئیات تابع file_get_contents() می اندازیم .

  1. $file_name – نام یا آدرس فایل منبع که تعریف آن اجباری است
  2. $use_include_path – این یک فلگ (flag) است و فقط مقادیر boolean را می پذرید .اگر TRUE باشد ، مقدار ثابت FILE_USE_INCLUDE_PATH هنگام جستجو در فایل استفاده خواهد شد . در ورژن های php5.5 به بالا باید مقدار FILE_USE_INCLUDE_PATH را به جای TRUE قرار بدیم.
  3. $context – اگر یک سری پارامتر برای آدرس مقصد فایل بخواهیم ارسال کنیم ، از این پارامتر می توانیم استفاده کنیم.
  4. $start – این پارامتر برای ست کردن offset فایل برای اینکه از کجا خواندن اطلاعات فایل شروع شود ، مورد استفاده قرار می گیرد.
  5. $limit – این مقدار برای ست کردن مقدار محدودیت خواندن کاراکتر های فایل استفاده می شود.

تابع file_get_contents در php

نکته :

  • Offset های $start و $limit برای دریافت قسمت های خاصی از فایل به جای خواندن کل محتوای فایل مورد استفاده قرار می گیرد.
  • مقدار پیش فرض مقدار start همان نقطه شروع فایل و limit مقدار طول کل فایل را میگیرد

مثال تابع file_get_contents در php

دو مثال از دریافت محتوای کل فایل و محتوای قسمتی از فایل را با هم بررسی می کنیم .

دریافت محتوای فایل توسط تابع file_get_contents در php

در این کد php ، از تابع file_get_contents() برای خواندن سورس کامل فایل title_form.html استفاده می کنیم.

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

برای کپی صحیح و کامل کدها ، دابل کلیک کرده تا وارد محیط سفید و کپی شوید در غیر اینصورت امکان دارد اجرای کدها با مشکل روبرو شود

اولین دستور echo برای نمایش خروجی فایل با نمایش فرم html و فیلد های آن استفاده شده است و همچنین از دستور str_replace برای جایگزین کردن کاراکترهای تگ باز و بسته html با کاراکترهای رزرو شده html استفاده شده است.

همچنین کاراکتر های رفتن به خط جدید در php را با line breaks های html یا همان <br> برای نمایش بهتر نتیجه ، جایگزین کردیم.

نمایش محدود بایت های محتوای فایل

حالا ، قصد داریم قسمت خاصی از محتوای فایل را با مشخص کردن دو پارامتر start و پایان limit با تابع file_get_contents در php ، دریافت و نمایش دهیم .

با استفاده از اسکریپت php بالا ، می توانیم قسمت HEAD اچ تی ام ال و قسمت FORM را با ست کردن مقدار start و limit در تابع file_get_contents دریافت کنیم

همچنین می توانید به جای فایل ، آدرس url یک سایت یا صفحه خاصی را به تابع بدهید و اطلاعات آن را دریافت و انواع ویرایش ها با آن انجام بدید .

احتیاط

  • زمانی که آدرس یا اسم یک فایل اشتباه را در تابع file_get_contents() مشخص می کنید ، در اینصورت تابع یک خطای PHP file not found نمایش می دهد . برای آشنایی با انواع خطاها در php کلیک کنید.
  • همچنین اگر مقدار پارامتر های $start و $limit را به درستی ست نکنید ، در این صورت هم تابع file_get_contents در php یک خطای Notice در مرورگر چاپ می کند.

نکته

در بعضی سرورها بنابر دلایل امنیتی مانند جلوگیری از اکسپلویت شدن باگ های LFI و RFI مقدار allow_url_fopen را غیرفعال می کنند که در اینصورت نمی توانید از تابع file_get_contents استفاده کنید.

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

در این شرط اجرای برنامه را متوقف کردیم ولی شما به جای این خط کد می توانید تابع مربوط به اجرای درخواست به آدرس URL موردنظر را با cURL انجام بدید (آموزش cURL در PHP)

جمع بندی

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

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

اینجاست که باید از تابع file_get_contents یا کتابخانه بی نظیر cURL استفاده کنید تا نتابج بروز و آپدیت شده و لحظه ای را نمایش بدید

برای اینکه قدرت این توابع را درک کنید حتما مقاله آموزش cURL در php را مطالعه کنید.

بنابراین برای فایل های داخلی سرور از file_get_contents و برای انجام تنظیمات بیشتر مثل ارسال پارامترها,ست کردن هدر و غیره… بر روی آدرس های URL خارجی از cURL استفاده کنید.

هرگونه مشکلی در پیاده سازی کد ها داشتید از قسمت نظرات ارسال کنید . سریعا پاسخگوی سوالات شما هستیم .

موفق و پیروز باشید .

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

آموزش های رایگان بیشتر در اینستاگرام ما ...

NETPARADIS /
مطالب زیر را حتما بخوانید
دیدگاه کاربران (۸)

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  1. میلاد ۱۸ آبان ۱۳۹۹

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

    پاسخ
    1. حسن شفیعی ۱۸ آبان ۱۳۹۹

      سلام. کافیه که آدرس صفحه رو به تابع بدید خروجی همان کل صفحه است.
      اگر سایت خروجی نمیده مطمینا فایروال سرور اجازه دسترسی نمیده که در این صفحه یک سری کد برای دورزدن این موارد هست:
      استخراج کل url های یک صفحه توسط php
      همچنین در نظرات آن پست یک سری راهکار داده شده
      موفق باشید.

      پاسخ
      1. میلاد ۱۹ آبان ۱۳۹۹

        من میخوام یک قسمت از سایت رو دریافت کنم یعنی یک قسمت مثلا جدول لیگ میشه راهنمایی کنید

        پاسخ
      2. حسن شفیعی ۲۰ آبان ۱۳۹۹

        سلام. باید با مفهوم اسکرپینگ آشنا باشید و php را هم متوسط به بالا یاد بگیرید
        آموزش scrapping در php
        کتاب آموزش php صفر تا صد
        همچنین توجه کنید که ایمیل www. ندارد و بدون www ثبت کنید

        پاسخ
  2. میلاد نقی پور ۱۶ آبان ۱۳۹۹

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

    پاسخ
    1. حسن شفیعی ۱۶ آبان ۱۳۹۹

      سلام.
      تابع preg_match_all همان تابع preg_match با آپشن /g هست که به جای پیدا کردن یک نتیجه همه نتایج را برگشت می دهد.
      در این مقالات آموزش ها مربوطه موجود هست :
      آموزش Regular Expression در php (عبارت باقاعده)
      توابع کار با رشته ها در php

      پاسخ
  3. محمد ۸ فروردین ۱۳۹۸

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

    پاسخ
    1. حسن شفیعی ۸ فروردین ۱۳۹۸

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

      پاسخ
دوره های آموزشی

دانلود رایگان کتاب آموزش PHP

صفر تا صد PHP و MySQL را یکجا یاد بگیرید
همین الان دانلود کن
نگران نباشید. ایمیل‌های مزاحم نمی‌فرستیم
close-link