سرور ایران نسخه ۲.۱
(شنبه تا چهارشنبه ۹:۰۰ الی ۱۶:۰۰) ۶-۹۵۰۱۸۴۴۵-۰۳۱  
صفحه نخست     ناحیه کاربری     ثبت شکایات     وبلاگ
سرور ایران
  • دامنه
    • دامنه های ملی
    • دامنه های بین المللی
    • جستجو و ثبت دامنه
    • پنل مشتریان دامنه های ملی
    • پنل نمایندگان دامنه بین المللی
  • میزبانی وب
    • هاست لینوکس حرفه ای
    • هاست لینوکس اقتصادی
    • هاست لینوکس حرفه ای ایران
  • میزبانی فایل
    • هاست دانلود
  • نمایندگی هاست
    • نمایندگی هاست حجمی
    • نمایندگی هاست ایران
    • نمایندگی هاست نامحدود
    • نمایندگی مستر ریسلر نامحدود
  • گواهینامه SSL
  • قوانین و مقررات
  • درباره ما
  • ارتباط با ما
  • دامنه
    • دامنه های ملی
    • دامنه های بین المللی
    • جستجو و ثبت دامنه
    • پنل مشتریان دامنه های ملی
    • پنل نمایندگان دامنه بین المللی
  • میزبانی وب
    • هاست لینوکس حرفه ای
    • هاست لینوکس اقتصادی
    • هاست لینوکس حرفه ای ایران
  • میزبانی فایل
    • هاست دانلود
  • نمایندگی هاست
    • نمایندگی هاست حجمی
    • نمایندگی هاست ایران
    • نمایندگی هاست نامحدود
    • نمایندگی مستر ریسلر نامحدود
  • گواهینامه SSL
  • قوانین و مقررات
  • درباره ما
  • ارتباط با ما

cURL چیست؟

cURL چیست؟

cURL مخفف کلمه Client for URLs پروژه نرم افزاری است که یک کتابخانه و ابزار خط فرمان جهت انتقال داده ها با استفاده از پروتکل های مختلف و  براساس URL را فراهم می کند. چیزی که cURL را قدرتمند می کند تعداد پروتکل هایی است که این کتابخانه از آنها پشتیبانی می کند که شامل FTP, FTPS, HTTP, HTTPS, TFTP, SCP, SFTP, Telnet, DICT, FILE و LDAP است. پروژه cURL دو محصول را تولید می کند libcurl و cURL

Daniel Stenberg این پروژه را در سال ۱۹۹۷ آغاز کرد و به وسیله آن انتقال فایل با پروتکل هایی مانند HTTP, FTP و غیره را بوسیله خط فرمان امکان ساخت.

cURL در PHP

کتابخانه cURL در نسخه ۴.۰.۲ PHP اضافه شد تا از طریق این کتابخانه بتواند اطلاعات را از طریق URL جا به جا کند. برای مثال با استفاده از cURL میتوانید اطلاعات یک وب سایت را بخوانید، به صورت خودکار لاگین کنید، در سایت های دیگر فایل آپلود کنید و خیلی کارهای دیگر. cURL بسته ای است به صورت Extension که برروی PHP نصب می گردد و قابلیت اتصال از طریق URL توسط متدهای GET,POST,… را برقرار می کند.

اما بعضی از این کارها را هم شاید بتوان با توابع خود PHP مانند file_get_contents انجام داد، اما ابتدا نیاز دارید که گزینه allow_url_fopen در فایل php.ini در سرور شما فعال باشد و از آن جایی که بیشتر سرورها برای افزایش امنیت این گزینه را غیر فعال می کنند تنها راه شما یادگیری و استفاده از cURL است.

 

1
<?file_put_contents('Filename.zip', file_get_contents('http://domain.ir/Filename.zip'));?>

 

 

مثال از cURL

cURL به صورت پیش فرض بر روی Apache نصب نیست و اگر می خواهید از این کتابخانه بر روی localhost سیستم استفاده کنید ابتدا باید آن را فعال کنید. برای نحوه فعال سازی میتوانید از این مطلب استفاده کنید.

در یک مثال ساده ابتدا ما یک صفحه یک سایت را گرفته و نمایش می دهیم، با استفاده از کد زیر:

1
2
3
4
5
$ch = curl_init("http://www.google.com";);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$google = curl_exec($ch);
echo $google;
curl_close($ch);

 

در خط ۱ ابتدا با استفاده از تابع curl_init یک دستگیره (Handle) از آدرس موردنظر میگیریم. سپس در خط ۲ با استفاده از تابع curl_setopt مشخص می کنیم که ما می خواهیم اطلاعات بازگشت داده شوند به جای این که نمایش داده شوند.

تابع curl_setopt برای اعمال تنظیماتی (Set Option) بر روی Session موردنظر است. در این مثال ما با استفاده از TRUE کردن مقدار CURLOPT_RETURNTRANSFER به cURL می گوییم که قصد نمایش اطلاعات را نداریم. می توانید تمامی Optionها را در PHP Manual ببینید. از سایت php.net قابل دسترسی است.

در خط ۳ با استفاده از تابع curl_exec دستورات را اجرا می کنیم، و در خط ۵ با تابع curl_close سشن موردنظر را میبندیم.

در خط ۴ برای دیدن این که واقعا چه رخ داده است دستور echo را انجام داده ایم، حالا می توانید آن چیزی که از سایت مورد نظر لازم دارید استخراج کنید.

اگر دستورات بالا را اجرا کنید خواهید دید که سایت مورد نظر نمایش داده می شود.

اما این یک مثال ساده بود، مثال بالا را می توانید با تابع file_get_contents هم انجام دهید.

قدرت cURL در تابع curl_setopt است، با استفاده از این تابع چیزی که دقیقا میخواهید را می توانید پیاده سازی کنید.

در یک مثال دیگر در نظر بگیرید صفحه ای از سایتی (page2.php) را که در صورتی برای شما باز خواهد شد که شما از یک صفحه خاص (page1.php) به آن متصل شده باشید.

در واقع page2.php چک میکند که مقدار HTTP_REFERER شما صفحه page1.php باشد. خوب اگر قرار باشد که ما صفحه page2.php را باز کنیم باید مقدار HTTP_REFERER را برابر page1.php قرار دهیم. که برای اینکار باز هم از تابع curl_setopt استفاده می کنیم.

1
2
3
4
5
$ch = curl_init("http://example.com/page2.php");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_REFERER, "http://exapmle.com/page1.php");
$page = curl_exec($ch);
curl_close($ch);

 

 

مطالب مرتبط

mongodbپایگاه داده MongoDB و ویژگی های آن RAID چیستRAID چیست؟ cmsسیستم مدیریت محتوا (CMS) چیست؟ ngnixوب سرور Nginx چیست؟
Tags: curl
← اسپم یا هرزنامه چیست؟
مقایسه هاست لینوکس در ایران و خارج از کشور →

دسته‌ها

  • آموزش cPanel
  • آموزش امنیت
  • آموزش دایرکت ادمین
  • آموزش سئو و بهینه سازی
  • آموزش کانفیگ سرور
  • آموزش میزبانی وب
  • آموزش های دامنه
  • آموزش های وب سایت
  • آموزش وردپرس

نوشته های اخیر

  • نحوه اضافه کردن دامنه جدید به هاست سی پنل
    نحوه اضافه کردن دامنه جدید به هاست سی پنل

    نحوه اضافه کردن دامنه به هاست سی پنل (cPanel) در این مقاله ر...

  • تحریم ها و سیاست‌های جدید محدودیت Resello
    تحریم ها و سیاست‌های جدید محدودیت Resello

    اخیرا ریسلو ( Resello ) –  یک مرکز ثبت دامنه یا Registrar –...

  • بهینه سازی وب سرور nginx
    بهینه سازی وب سرور nginx

    Nginx در قیاس با PHP و MySQL نیاز به بهینه سازی کمتری دارد و...

  • جلوگیری از حملات bruteforce وردپرس در nginx
    جلوگیری از حملات bruteforce وردپرس در nginx

    در این مقاله جلوگیری از حملات bruteforce وردپرس در nginx به...

  • کانفیگ وب سرور Nginx – بخش دوم
    کانفیگ وب سرور Nginx – بخش دوم

    بهینه سازی های فایل سیستم در ادامه کانفیگ وب سرور Nginx – بخ...

نوشته های تصادفی

  • هاست چیست؟هاست چیست؟
  • ۷ نکته مهم در مورد میزبانی وب سایت۷ نکته مهم در مورد میزبانی وب سایت
  • فیشینگ چیست و راه های مقابله با آنفیشینگ چیست و راه های مقابله با آن
  • حذف کش DNS از مرورگرهای اینترنتحذف کش DNS از مرورگرهای اینترنت
  • رفع مشکل سنگین شدن دیتابیس وردپرسرفع مشکل سنگین شدن دیتابیس وردپرس
  • پیدا کردن مسیر فایل php.ini در سرور و لوکال هاستپیدا کردن مسیر فایل php.ini در سرور و لوکال هاست
  • دامنه بدون www برای سئو بهتر در موتورهای جستجودامنه بدون www برای سئو بهتر در موتورهای جستجو
  • رفع خطای Remove query strings from static resources در وردپرسرفع خطای Remove query strings from static resources در وردپرس
  • مقایسه‌ هاست اشتراکی و VPSمقایسه‌ هاست اشتراکی و VPS
  • افزایش سرعت دانلود در لینوکس با axelافزایش سرعت دانلود در لینوکس با axel

آخرین مطالب وبلاگ

  • نحوه اضافه کردن دامنه جدید به هاست سی پنل
    نحوه اضافه کردن دامنه جدید به هاست سی پنل

    نحوه اضافه کردن دامنه به هاست...

  • تحریم ها و سیاست‌های جدید محدودیت Resello
    تحریم ها و سیاست‌های جدید محدودیت Resello

    اخیرا ریسلو ( Resello ) –  یک...

  • بهینه سازی وب سرور nginx
    بهینه سازی وب سرور nginx

    Nginx در قیاس با PHP و MySQL ن...

مطالب تصادفی وبلاگ

  • نحوه تغییر دی ان اس (DNS) دامنه IR در ایرنیک nic.irنحوه تغییر دی ان اس (DNS) دامنه IR در ایرنیک nic.ir
  • غیر فعال کردن دسترسی به سایت با آی پی سرورغیر فعال کردن دسترسی به سایت با آی پی سرور
  • رفع خطای Failed To retrieve directory listing در Filezillaرفع خطای Failed To retrieve directory listing در Filezilla
Copyright © 2011-2025 ServerIran - All Rights Reserved