ارسال درخواست POST با PHP
![](https://media.hapigan.com/avatars/3080afdd90724629854cefe03bef62ef.webp)
mohsen•1 هفته قبل
ارسال شده در
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
ارسال نظر
مرتب سازی:
اولین نفری باشید که نظر می دهید!