آموزش cURL در PHP

آموزش cURL در PHP

آموزش cURL در PHP – کلمه cURL که مخفف Client URL می باشد که در بسیاری از پلتفرم ها پشتیبانی می شود با کمک این کتابخانه قادر خواهید بود که درخواست های HTTP ارسال کنید .

همچنین از پروتکل هایی از جمله IMAP , POP , FTP و … پشتیبانی می کند .

در این آموزش با 4 متد HTTP کار خواهیم کرد :

1- GET Method
2- POST Method
3- PUT Method
4- DELETE Method

0 – آشنایی با توابع curl در PHP

curl_init

ورودی ندارد و خروجی resource برمی گرداند که قابل استفاده است .

برای آماده سازی curl ، اولین کاری که برای ارسال درخواست انجام می دهید استفاده از همین تابع است .


curl_setopt_array

آماده سازی درخواست با تنظیمات مورد نظر.

دارای 2 ورودی »
1- خروجی بدست آمده از curl_init – اجباری
2- تنظیمات ارسال درخواست – اجباری

برای ورودی دوم در قالب یک آرایه حداقل با عضو CURLOPT_URL باید مقدار آدرسی که می خواهید درخواست ارسال می شود را وارد کنید .

curl_exec

اجرا درخواست ، این تابع خروجی بدست آمده از سرور را برمی گرداند .

دارای 1 ورودی اجباری »
1- خروجی بدست آمده از curl_init – اجباری

curl_error

در مواجه شدن با خطا می توانید از این تابع استفاده کنید که پیغام خطا را با جزئیات نمایش می دهد

1 ورودی اجباری که از تابع curl_init بدست آمده .

curl_errno

مشابه curl_error با این تفاوت که کد خطا را نمایش می دهد .

همان ورودی اجباری curl_errno

curl_getinfo

پس از ارسال درخواست یکسری جزئیات از سرور میزبان برمی گرداند .

1 ورودی اجباری که از curl_init برگردانده می شود .


curl_close

بستن کانال curl .

دارای 1 ورودی اجباری »
1- خروجی بدست آمده از curl_init – اجباری


1- ارسال GET Method در PHP

$params = http_build_query(["s"=>"admin"]);

$options = array(
	CURLOPT_URL => "https://rapidcode.ir/?{$params}",
	CURLOPT_HTTPHEADER => ["Content-Type: application/json"],
	CURLOPT_CUSTOMREQUEST => "GET",
	CURLOPT_SSL_VERIFYPEER => false,
	CURLOPT_RETURNTRANSFER => true
);

$ch = curl_init();
curl_setopt_array($ch, $options);

$response = curl_exec($ch);

curl_close($ch);

echo($response);

خط 7 : در صورتی که این درخواست را از سروری می فرستید که دارای HTTPS نمی باشد بر روی false بگذارید اما توصیه می شود جهت جلوگیری از حمله MITM بر روی true باشد .


2- ارسال POST Method در PHP

$params = json_encode(['title' => 'RAPIDCODE', 'body' => 'let\'s Write Some Code (;', 'userId' => 1]);


$options = array(
	CURLOPT_URL => 'https://jsonplaceholder.typicode.com/posts',
	CURLOPT_HTTPHEADER => ["Content-Type: application/json"],
	CURLOPT_CUSTOMREQUEST => "POST",
	CURLOPT_POSTFIELDS => $params,
	CURLOPT_SSL_VERIFYPEER => false,
	CURLOPT_RETURNTRANSFER => true
);
$ch = curl_init();
curl_setopt_array($ch, $options);

$response = curl_exec($ch);

curl_close($ch);

echo($response);

# { "title": "RAPIDCODE", "body": "let's Write Some Code (;", "userId": 1, "id": 101 }


3- ارسال PUT Method در PHP

$params = json_encode(['title' => 'RAPIDCODE', 'body' => 'let\'s Write Some Code (;', 'userId' => 1291 , 'id' => 9]);

$options = array(
	CURLOPT_URL => 'https://jsonplaceholder.typicode.com/posts/9',
	CURLOPT_HTTPHEADER => ["Content-Type: application/json"],
	CURLOPT_CUSTOMREQUEST => "PUT",
	CURLOPT_POSTFIELDS => $params,
	CURLOPT_SSL_VERIFYPEER => false,
	CURLOPT_RETURNTRANSFER => true
);
$ch = curl_init();
curl_setopt_array($ch, $options);

$response = curl_exec($ch);

curl_close($ch);

echo($response);

# { "title": "RAPIDCODE", "body": "let's Write Some Code (;", "userId": 1291, "id": 9 }


4- ارسال DELETE Method در PHP

$options = array(
	CURLOPT_URL => 'https://jsonplaceholder.typicode.com/posts/9',
	CURLOPT_HTTPHEADER => ["Content-Type: application/json"],
	CURLOPT_CUSTOMREQUEST => "DELETE",
	CURLOPT_SSL_VERIFYPEER => false,
	CURLOPT_RETURNTRANSFER => true
);

$ch = curl_init();
curl_setopt_array($ch, $options);

$response = curl_exec($ch); // {}

if(curl_getinfo($ch)['http_code'] === 200)
	echo "DELETED !";

curl_close($ch);

آموزش cURL در PHP

ارسال نظر

جهت استفاده از کد حتما از تگ pre استفاده نمایید .

لیست نظرات

  1. کامی
    کامی

    سلام . ممنون از سایت بسیار خوبتون واقعا هیچ جا ندیدم انقدر ساده و مشخص همه چیز رو توضیح بدند.. میشه یه توضیحی درباره دریافت اطلاعات api با curl بدید . از api های ساده به راحتی با curl میتونم استخراج کنم ولی بعضی از api ها پیغام 403 Forbidden میاد و چیزی دریافت نمیشه چه با curl چه با file_get .ولی داخل مرورگر لینک api رو میزنیم کاملا باز میشه و نمایش میده ولی نمیشه ازش استفاده کرد از دوست دیگری پرسیدم گفتد باید هدر مشخص کنی . خیلی آشنا نیستم . میشه توضیح بدید از api هایی که نمیشه ازشون خروجی گرفت و این پیغام یا مشابهش میاد چکار باید کرد.

    12 اسفند 1401 | 22:55:12
  • حسین باقری
    حسین باقری

    درود ، می تونه دلایل مختلفی داشته باشه اگر براتون امکان پذیر هست لینک اون api رو بفرستید تا بررسی بشه و پاسخی براتون ارسال بشه .

    12 اسفند 1401 | 23:41:44
  • ناهید
    ناهید

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

    08 تیر 1400 | 10:30:49
    • حسین باقری
      حسین باقری

      می تونید از این آموزش استفاده کنید .

      07 مرداد 1400 | 14:35:52
    contact us