آموزش غیر از ویبولتینآموزش های عمومیانجمنبخش عمومی و مفید سایتعمومی

ارسال پارامتر به URL و دریافت مقادیر با PHP

ارسال پارامتر به URL و دریافت مقادیر با PHP
ارسال پارامتر به URL و دریافت مقادیر با PHP
ارسال پارامتر به URL و دریافت مقادیر با PHP

زمانی که از ارسال پارامتر در وب صحبت می کنیم، بیشتر ذهنمان معطوف به فرم های HTML و متد POST یا GET می شود، البته این شیوه مرسوم و پرکاربردی برای ارسال داده ها از مرورگر (سمت کاربر) به یک سایت (سمت سرور) است، اما گاهی مواقع نیاز است که از این قالب سنتی پا را فراتر بنهیم و از روش های دیگری نیز استفاده کنیم، به فرض از همین استاندارد POST و GET در ارسال درخواست های آژاکسی (Ajax) نیز به سرور استفاده می شود، از طرفی کدها و توابعی در PHP وجود دارد که می توانند علاوه بر ارسال پارامترها به یک سرور (آدرس URL)، پاسخ آن را نیز دریافت کنند، امکان بالقوه ای که می تواند کاربردهای زیادی داشته باشد، از جمله مهمترین این توابع file_get_contents و cURL هستند که در ادامه آموزش به آنها خواهیم پرداخت.
تابع file_get_contents

از تابع file_get_contents در PHP برای خواند اطلاعات یک فایل یا آدرس URL استفاده می شود، به عنوان مثال:

<?php
$homepage
= file_get_contents('webgoo.ir/');
echo
$homepage;
?>

کد بالا با ارسال یک درخواست به آدرس تعیین شده، پاسخ سرور (که صفحه اول سایت «وبگو» است) را به صورت رشته متنی دریافت می کند، اکنون اگر با دستور echo از متغیر فرضی homepage خروجی بگیریم، اطلاعات دریافت شده نمایش داده می شوند.
تابع file_get_contents پنج آرگومان به شرح زیر می پذیرد:
– آرگومان اول (filename): نام (یا آدرس) فایل یا URL.
– آرگومان دوم (use_include_path): فراخوانی فایل از دایرکتوری include_path در تنظیمات PHP.
– آرگومان سوم (context): محتوایی که به همراه درخواست ارسال می شود، این محتوا باید توسط تابع stream_context_create (و بر اساس استانداردهای HTTP context options) ساخته شود تا معتبر باشد، تنظیمات قابل اعمال در این قسمت عبارتند از: method، header، user_agent، content، #####، request_fulluri، follow_location، max_redirects، protocol_version، timeout و ignore_errors؛ اطلاعات بیشتر:
PHP: 404 Not Found آرگومان چهارم (offset): محل و خط شروع خواندن اطلاعات (این قابلیت به دلیل پشتیبانی نشدن برای فایل های لوکال و محدودیت هایش، چندان کاربردی نیست).
– آرگومان پنجم (maxlen): حداکثر کاراکتری که تابع خواهد خواند (در حالت پیش فرض تمام اطلاعات خوانده می شود).
تابع file_get_contents و متد POST

تابع file_get_contents علاوه بر دریافت پاسخ یک سرور، این توانایی را دارد که در چاچوب متد POST پارامترهایی نیز به سرور مقصد ارسال نماید، همان طور که در توضیح آرگومان های آن گفته شد، این پارامترها باید در چارچوب استاندارد HTTP بوده و پیش از ارسال توسط تابع stream_context_create معتبر شوند، به این ترتیب می توان نحوه کار فرم های HTML را به راحتی شبیه سازی کرد، ضمن اینکه علاوه بر ارسال پارامترها، می توان هم زمان نتیجه درخواست را نیز دریافت کرد، به مثال زیر توجه کنید.

<?php
//مقادیری که باید ارسال شوند
$data = http_build_query(
array(
'var_1' => 'content_1',
'var_2' => 'content_2',
'var_3' => 'content_3'
)
);
//تنظیم سربرگ های http
$http = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $data
)
);
//معتبر سازی با stream_context_create
$context = stream_context_create($http);
//ارسال درخواست و دریافت نتیجه
$result = file_get_contents('www.example.com/submit/get.php', FALSE, $context);
?>

نکته: برای نمایش نتیجه دریافتی می توانید از یک دستور ساده echo استفاده کرده و از متغیر result خروجی بگیرید.
تابع cURL

یکی از قدرتمند ترین کتابخانه های مربوط به کار با پروتکل های وب در PHP، کتابخانه libcurl است که از نسخه 4.0.2 به آن افزوده شده است، البته این کتابخه به صورت پیش فرض در مفسر PHP وجود ندارد، اما به جهت کاربردی بودن، معمولا در اکثر سرورها به صورت پیش فرض فعال است، به طور ساده کتابخانه libcurl دربرگیرنده مجموعه توابعی است که کار با پروتکل های وب (از جمله HTTPS، HTTP، FTP و…) را به صورت حرفه ای و با قابلیت های زیاد ممکن می کند، به مثال زیر توجه کنید.

<?php
$content
= 'PHP cURL';
$curl = curl_init('www.example.com/submit/get.php');
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, 'var='.$content);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, FALSE);
$result = curl_exec($curl);
curl_close($curl);
?>

همان طور که در مثال بالا مشخص است، توابع مربوط به این کتابخانه با پیشوند _curl شروع می شوند، اما توضیح مختصری درباره برخی توابع این کتابخانه:
– تابع curl_init: با دریافت یک آدرس url، نشست cURL را آغاز می کند.
– تابع curl_setopt: تنظیم پارامترهای مورد نیاز برای اجرای صحیح یک نشست cURL.
– تابع curl_exec: اجرای یک نشست cURL.
– تابع curl_close: پایان یک نشست cURL.
– تابع curl_error: آخرین خطای رخ داده در نشست را نمایش می دهد.
– تابع curl_errno: شماره خطای برگردانده شده را نمایش می دهد.
البته توابع مربوط به این کتابخانه محدود به موارد گفته شده نمی شود:
PHP: 404 Not Found مثالی کاربردی توجه کنید.

<?php
//تنظیم آدرس url
$curl = curl_init('www.example.com/submit/get.php');
//تنظیم ارسال از طریق متد POST
curl_setopt($curl, CURLOPT_POST, 1);
//تنظیم پارامترها
curl_setopt($curl, CURLOPT_POSTFIELDS, 'var_1=content_1&var_2=content_2&var_3=content_3');
//تعین اینکه پاسخ سرور دریافت شود یا خیر
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
//اجرای نشست
$result = curl_exec($curl);
//پایان نشست
curl_close($curl);
?>توضیح

:
– آدرس url مقصد را در قسمت curl_init مشخص کنید.
– در تنظیمات مربوط به CURLOPT_POST، متد استفاده شده در درخواست را مشخص می کنیم، اگر مقدار 1 یا TRUE باشد، مقادیر CURLOPT_POSTFIELDS از طریق متد POST ارسال شده و پارامترهای احتمالی در آدرس URL نادیده گرفته می شوند (امکان ترکیب متد POST و GET در این حالت وجود ندارد).
– در تنظیمات قسمت CURLOPT_POSTFIELDS، پارامترها و مقادیر آنها را تعیین کنید، این پارامترها در واقع نقش نام فیلد و مقادیر آنها نقش مقدار فیلد را در یک فرم HTML بازی می کنند.
– در قسمت CURLOPT_RETURNTRANSFER، مشخص می کنیم که آیا پاسخ سرور نیز پس از ارسال درخواست دریافت شود یا خیر، اگر مقدار TRUE باشد، پاسخ به صورت رشته متنی دریافت می شود و اگر FALSE باشد، پاسخ دریافت نمی شود.
– برای تکمیل یک نشست cURL باید حتما با تابع curl_exec آن را اجرا کنیم.
– در نهایت نیز با تابع curl_close، نشست cURL را خاتمه می دهیم.
نکته: برای نمایش نتیجه دریافتی می توانید از یک دستور ساده echo استفاده کرده و از متغیر result خروجی بگیرید.


(1) ارسال پارامتر به URL و دریافت مقادیر با PHP
ارسال پارامتر به URL و دریافت مقادیر با PHP


(2) URL و دریافت مقادیر با PHP
وبگو ارسال پارامتر به URL و دریافت مقادیر با PHP


(3) روشهای ارسال پارامتر با مقدار Value
روشهای ارسال پارامتر با مقدار Value و ارجاع Reference درC


(4) ارسال پارامتر یا Query String در Action
ارسال پارامتر یا Query String در Action Method


(5) ارسال پارامتر به URL و دریافت مقادیر با PHP
به فرض از همین استاندارد POST و GET در ارسال درخواست های آژاکسی Ajax نیز به سرور استفاده می شود از طرفی کدها و توابعی در PHP وجود دارد که می توانند علاوه بر ارسال پارامترها به یک سرور آدرس URL پاسخ آن را نیز دریافت کنند امکان


(6) ارسال پارامتر به URL و دریافت مقادیر با PHP
5 فروردین 1395 ه.ش. - ارسال پارامتر به url و دریافت مقادیر با php زمانی که از ارسال پارامتر در وب گفتگو می کنیم بیشتر ذهنمان معطوف به فرم های html و متد post


(7) دریافت داده های فرم با استفاده از GET و POST در PHP - وب کوئری
در قسمت آموزش html در فرم ها دیده شد که هدف از فرم ها و فیلدهایی که درون آن قرار می گیرد ارسال اطلاعات به سرور است. ارسال اطلاعاتی مانند نام توسط فیلد متنی یا مقادیر دیگر که توسط فیلدهای دیگر مانند checkbox radiobox email password و


(8) barnamenevisan.org
ارسال و دریافت شی از JQuery و وب سرویس ها. در این مقاله به شما آموزش می دهیم که چگونه شیئ را از Jquery و وب س


(9) ارسال درخواست به سرور در AJAX - درخواست
ارسال درخواست به سرور در AJAX - درخواست با GET - درخواست با POST


(10) ارسال اطلاعات سنسور به سرور با ESP8266
ارسال اطلاعات سنسور به سرور با ESP8266 در آردوینو - وبلاگ و

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

18 − 3 =

دکمه بازگشت به بالا