ارسال درخواست POST با PHP

mohsen1 هفته قبل
ارسال شده در
php

برای ارسال درخواست با متد Post در PHP روش های مختلفی وجود دارد که در اینجا دو روش با و بدون CURL را با هم بررسی می کنیم

روش بدون CURL

می‌توانید از تابع file_get_contents همراه با تابع stream_context_create برای ارسال داده‌های POST استفاده کنید. این روش در سرورهایی که "allow_url_fopen" را فعال کرده‌اند، کار می‌کند:

      $url = 'http://server.com/path';
$data = ['key1' => 'value1', 'key2' => 'value2'];

$options = [
    'http' => [
        'header' => "Content-type: application/x-www-form-urlencoded\r\n",
        'method' => 'POST',
        'content' => http_build_query($data),
    ],
];

$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
if ($result === false) {
    /* Handle error */
}

var_dump($result);

    
  • اگر allow_url_fopen در پیکربندی PHP شما خاموش باشد، این روش کار نخواهد کرد.
  • این روش ممکن است در برخی از میزبانی‌های مشترک قابل استفاده نباشد.

استفاده از CURL

استفاده از CURL یکی از روش‌های آسان و کاربردی برای ارسال درخواست‌های POST است. اگر می‌خواهید کنترل بیشتری بر روی درخواست‌ها داشته باشید، توصیه می‌شود از CURL استفاده کنید:

      <?php
$url = 'http://server.com/path';

$data = [
    'key1' => 'value1',
    'key2' => 'value2'
];

$fields_string = http_build_query($data);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

$result = curl_exec($ch);
curl_close($ch);

echo $result;
?>

    

نوشتن تابع مخصوص برای ارسال داده‌ها با CURL

همچنین می‌توانید یک تابع خاص برای ارسال داده‌ها به روش POST با استفاده از CURL ایجاد کنید:

      function httpPost($url, $data)
{
    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($curl);
    curl_close($curl);
    return $response;
}

    

این تابع می‌تواند به آسانی مورد استفاده قرار گیرد و به شما این امکان را می‌دهد که به راحتی داده‌ها را ارسال کنید.

رای
0
ارسال نظر
مرتب سازی:
اولین نفری باشید که نظر می دهید!