امروز: ۰۳ آذر ۱۴۰۳
در مسیر توسعه فردی و سازمانی
اشتراک دانش اشکان ابراهیمی » درباره cURL (۱۳۹۵/۱۱/۱۲)
تایید شده

cURL بسته ای است به صورت Extension که برروی PHP نصب می گردد و قابلیت اتصال از طریق URL توسط متدهای GET,POST,... را برقرار می کند.


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


Daniel Stenberg این کتابخانه را در سال 1997 شروع کرد و بوسیله آن انتقال فایل با پروتکل هایی مانند HTTP, FTP و غیره را بوسیله خط فرمان امکان ساخت..


cURL در PHP


 


PHP در نسخه 4.0.2 کتابخانه cURL را به خود اضافه کرد، تا از طریق این کتابخانه بتواند اطلاعات را از طریق URL جا به جا کند. برای مثال با استفاده از cURL میتوانید اطلاعات یک وبسایت را بخوانید، به صورت خودکار لاگین کنید، در سایت های دیگر فایل آپلود کنید و خیلی کارهای دیگر.


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


مثال از cURL


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


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


 


 




  1. $ch = curl_init("http://www.google.com");




  2. curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);




  3. $google = curl_exec($ch);




  4. echo $google;




  5. curl_close($ch);




 


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


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


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


در خط 4 برای دیدن اینکه واقعا چه چیزی اتفاق افتاده است دستور 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. $ch = curl_init("http://example.com/page2.php");




  2. curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);




  3. curl_setopt($ch, CURLOPT_REFERER, "http://exapmle.com/page1.php");




  4. $page = curl_exec($ch);




  5. curl_close($ch);




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

پاسخ مدیر : ضمن تشکر از شما، این مطلب در منابع دیگری موجود است و حداقل امتیاز به آن تعلق می گیرد.
محتوای آخرین دربهای گشوده شده
  • یک باک بنزین 206 معادل 75000 ت بوسیله کلیدک
  • 45000 تومان وجه نقد رایج مملکت بوسیله کلیدک
  • بن خرید یک عدد پیتزا American معادل 35ت بوسیله کلیدک
  • دو عدد  کارت سبز بوسیله کلیدک
  • دو روز ناهار میهمان شرکت به انتخاب خودتان معادل هر نهار ۳۰ ت بوسیله کلیدک
  • بن خرید یک عدد پیتزا American معادل 35ت بوسیله کلیدک
  • بن خرید یک عدد پیتزا American معادل 35ت بوسیله کلیدک
  • 45000 تومان وجه نقد رایج مملکت بوسیله کلیدک
ارسال درخواست دوره یا محتوای آموزشی