موضوع مقاله

cURL چیست؟

شاید هنگام جست و جو در اینترنت با عبارت CURL مواجه شده باشید ولی معنا و مفهوم آن را نمی دانید. CURL در PHP نیز اجرا می شود. ما در این مقاله به شما همراهان عزیز موضوع CURL چیست و چه کاربردی دارد را آموزش می دهیم. cURL کوتاه شده عبارت Client for URLs ، یک ابزار خط فرمان و جهت انتقال داده ها با استفاده از پروتکل های مختلف و بر اساس URL است. به علت تعدد پروتکل های قابل پشتیبانی مانند FTP, FTPS, HTTP, HTTPS, TFTP, SCP, SFTP, Telnet, DICT, FILE و LDAP بسیار مطرح شده است . این کتابخانه در سال 1997 توسط Daniel Stenberg شروع شده و بوسیله آن انتقال فایل با پروتکل هایی مانند HTTP, FTP و غیره توسط این خط فرمان امکانپذیر شد.

با curl میتونید هر نوع درخواستی رو به سرور ارسال کنید , میتونید یه فایل رو دانلود یا آپلود کنید و همونطور که توی مقدمه گفتیم از پروتکل های زیادی پشتیبانی می کنه اما در این بخس می خوایم نحوه ی نصب cURL رو برسی کنیم , البته این دستور به احتمال زیاد بصورت پیشفرض روی توزیع لینوکس شما نصب شده ولی برای اطمینان بیشتر دستور زیر رو توی ترمینال بزنید و اگه بهتون ارور نداد یعنی نصب شده:

				
					curl --version
				
			

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

برای نصب روی Obuntu و Debian

				
					sudo apt-get update
sudo apt-get install curl
curl --version
				
			

و بعد برای تایید راه اندازی cURL دستور زیر را استفاده کنید 

				
					dpkg -l | grep curl
				
			

نصب  curl  در       RHEL / CentOS / Fedora:

برای این کار در لینوکس روی RHEL ، CentOS و Fedora distros ، از طریق SSH به عنوان root وارد شوید و دستور را اجرا کنید.

				
					yum install curl
				
			

و بعد برای تایید راه اندازی cURL دستور زیر را استفاده کنید

				
					rpm -qa | grep curl
				
			

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

				
					curl https://netjournal.ir
				
			

با اجرای دستور بالا خروجی تولید شده کد html صفحه landing وب سایت netjournal.ir هست. هر چند این یک مثال بسیار ساده و ابتدایی ار کارکرد cURL می باشد اما قصد ما بیان نحوه ی کارکرد این کتابخانه و ابزار است .

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

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

cURL به صورت پیشفرض بر روی آپاچی نصب نیست و ابتدا باید آن را بر روی سرور فعال کرد.

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

				
					$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) بر روی سشن موردنظر است. در این مثال ما با استفاده از TRUE کردن مقدار CURLOPT_RETURNTRANSFER به cURL میگوییم که قصد نمایش اطلاعات را نداریم. میتوانید تمامی Optionها را در PHP Manual ببینید.

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

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

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

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

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

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

				
					$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);
				
			
0 0 رای ها
امتیازدهی به مقاله
اشتراک در
اطلاع از
guest
0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
0
افکار شما را دوست داریم، لطفا نظر دهید.x