آموزش رایگان PHP

آموزش کامل ارسال درخواست HTTP با cURL در PHP (مطابق استاندارد گوگل)

1405/08/02 15:53 محراب حسن زاده
آموزش کامل ارسال درخواست HTTP با cURL در PHP (مطابق استاندارد گوگل)

آشنایی با cURL در PHP

ابزار cURL (Client URL Library) یکی از قدرتمندترین کتابخانه‌ها برای برقراری ارتباط با سرورهای دیگر و ارسال درخواست‌های HTTP در زبان PHP است. با استفاده از cURL می‌توانید به راحتی اطلاعات را به وب‌سایت‌ها یا APIهای دیگر ارسال کرده یا از آن‌ها داده دریافت کنید. گوگل همواره استفاده از روش‌های استاندارد و امن را برای تعامل با سرویس‌های خارجی توصیه می‌کند و cURL به دلیل انعطاف‌پذیری بالا، بهترین گزینه برای این کار است.

مراحل چهارگانه ساخت یک درخواست cURL

به طور کلی، هر درخواست cURL در PHP از یک چرخه ۴ مرحله‌ای ساده پیروی می‌کند:

  • راه‌اندازی (Initialize): ایجاد یک نمونه جدید با تابع curl_init
  • تنظیمات (Set Options): پیکربندی گزینه‌های درخواست مانند URL، متد ارسال، هدرها و غیره با تابع curl_setopt
  • اجرا (Execute): ارسال واقعی درخواست و دریافت پاسخ با تابع curl_exec
  • بستن اتصال (Close): آزاد کردن منابع سیستم با تابع curl_close

آموزش ارسال درخواست GET در PHP

درخواست GET معمولاً برای دریافت داده‌ها از یک سرور استفاده می‌شود. در مثال زیر، نحوه ارسال یک درخواست ساده GET به یک API فرضی را مشاهده می‌کنید:


$url = "https://api.example.com/users?limit=5";

// ۱. راه‌اندازی cURL
$ch = curl_init($url);

// ۲. تنظیم گزینه‌ها
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // دریافت پاسخ به صورت رشته به جای چاپ مستقیم
curl_setopt($ch, CURLOPT_TIMEOUT, 10); // تعیین مهلت زمان پاسخ‌دهی به ثانیه

// ۳. اجرای درخواست
$response = curl_exec($ch);

// مدیریت خطاها
if (curl_errno($ch)) {
    $error_msg = curl_error($ch);
    echo "خطا در برقراری ارتباط: " . $error_msg;
} else {
    // پردازش پاسخ دریافت شده
    echo "پاسخ سرور: " . $response;
}

// ۴. بستن اتصال
curl_close($ch);

آموزش ارسال درخواست POST با فرمت JSON

برای ارسال اطلاعات به سرور (مثلاً ثبت نام کاربر جدید یا ارسال یک فرم)، از متد POST استفاده می‌شود. امروزه اکثر APIها داده‌ها را در قالب JSON دریافت می‌کنند. در زیر نحوه ارسال درخواست POST به همراه هدرهای اختصاصی آورده شده است:


$url = "https://api.example.com/users";

// داده‌هایی که می‌خواهیم ارسال کنیم
$data = [
    "name" => "علی رضایی",
    "email" => "ali@example.com"
];
$jsonData = json_encode($data);

$ch = curl_init($url);

// تنظیمات متد POST و داده‌ها
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);

// تنظیم هدرهای درخواست برای ارسال JSON
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Content-Type: application/json",
    "Authorization: Bearer YOUR_API_TOKEN"
]);

$response = curl_exec($ch);

if (curl_errno($ch)) {
    echo "خطای POST: " . curl_error($ch);
} else {
    // بررسی وضعیت HTTP پاسخ (مثلا 200 یا 201)
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    if ($httpCode === 201) {
        echo "اطلاعات با موفقیت ثبت شد. پاسخ: " . $response;
    } else {
        echo "خطای سمت سرور با کد: " . $httpCode;
    }
}

curl_close($ch);

استانداردهای طلایی گوگل در استفاده از cURL

برای اینکه کدهای شما بر اساس استانداردهای بین‌المللی و توصیه‌های گوگل بهینه‌سازی شده باشند، نکات زیر را همواره رعایت کنید:

  1. همیشه Timeout تعیین کنید: از CURLOPT_TIMEOUT استفاده کنید تا در صورت کندی سرور مقصد، اسکریپت PHP شما متوقف نشود و منابع سرور هدر نرود.
  2. اعتبارسنجی SSL را غیرفعال نکنید: هرگز مقدار CURLOPT_SSL_VERIFYPEER را برابر با false قرار ندهید. این کار امنیت ارتباط را به شدت کاهش می‌دهد و در کدهای نهایی غیر استاندارد است.
  3. کدهای وضعیت HTTP را بررسی کنید: صرفاً دریافت پاسخ به معنای موفقیت‌آمیز بودن عملیات نیست. همیشه از تابع curl_getinfo($ch, CURLINFO_HTTP_CODE) برای بررسی وضعیت سرور استفاده کنید.

پیشنمایش

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

آموزش موقعیت‌بندی المان‌ها با استفاده از position در CSS: نحوه استفاده از absolute، relative و fixed
1402/06/05 23:43

آموزش موقعیت‌بندی المان‌ها با استفاده از position در CSS: نحوه استفاده از absolute، relative و fixed

مطالعه بیشتر
آموزش کامل دستورات شرطی در PHP: راهنمای جامع if، else و elseif
1405/04/04 00:05

آموزش کامل دستورات شرطی در PHP: راهنمای جامع if، else و elseif

مطالعه بیشتر
آموزش سیر تا پیاز تاریخ و زمان در PHP (استاندارد گوگل)
1405/04/27 21:58

آموزش سیر تا پیاز تاریخ و زمان در PHP (استاندارد گوگل)

مطالعه بیشتر
آموزش کار با flex-grow، flex-shrink و flex-basis در CSS Flexbox: مدیریت اندازه و فضای عناصر
1403/08/11 20:50

آموزش کار با flex-grow، flex-shrink و flex-basis در CSS Flexbox: مدیریت اندازه و فضای عناصر

مطالعه بیشتر
استفاده از Flexbox در CSS برای چیدمان‌های مدرن: راهنمای جامع و کاربردی
1403/08/10 21:59

استفاده از Flexbox در CSS برای چیدمان‌های مدرن: راهنمای جامع و کاربردی

مطالعه بیشتر
کار با فیلترهای CSS: آموزش استفاده از blur، brightness و contrast برای افکت‌های تصویری جذاب
1403/08/11 21:08

کار با فیلترهای CSS: آموزش استفاده از blur، brightness و contrast برای افکت‌های تصویری جذاب

مطالعه بیشتر
مفاهیم Promise و چگونگی استفاده از آن در جاوا اسکریپت: راهنمای کامل همراه با مثال‌ها
1403/07/30 20:38

مفاهیم Promise و چگونگی استفاده از آن در جاوا اسکریپت: راهنمای کامل همراه با مثال‌ها

مطالعه بیشتر
چگونه اسکریپت‌های ساده جاوا اسکریپت را در مرورگر بنویسیم و اجرا کنیم: راهنمای کامل برای مبتدیان
1402/07/02 21:37

چگونه اسکریپت‌های ساده جاوا اسکریپت را در مرورگر بنویسیم و اجرا کنیم: راهنمای کامل برای مبتدیان

مطالعه بیشتر
آموزش صفر تا صد ساخت ماشین حساب با جاوا اسکریپت (پروژه محور و کاربردی)
1405/03/13 23:55

آموزش صفر تا صد ساخت ماشین حساب با جاوا اسکریپت (پروژه محور و کاربردی)

مطالعه بیشتر
کار با border و تنظیمات آن در CSS: مدیریت زوایای گرد با border-radius
1403/08/09 20:16

کار با border و تنظیمات آن در CSS: مدیریت زوایای گرد با border-radius

مطالعه بیشتر
آموزش کامل include و require در PHP + تفاوت‌های کلیدی و کاربردی
1405/05/01 20:28

آموزش کامل include و require در PHP + تفاوت‌های کلیدی و کاربردی

مطالعه بیشتر
اصول پایه React.js: آشنایی با کامپوننت‌ها، وضعیت و رندرینگ
1402/06/28 23:20

اصول پایه React.js: آشنایی با کامپوننت‌ها، وضعیت و رندرینگ

مطالعه بیشتر

تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد