آموزش 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
لیست نظرات
سلام . ممنون از سایت بسیار خوبتون واقعا هیچ جا ندیدم انقدر ساده و مشخص همه چیز رو توضیح بدند.. میشه یه توضیحی درباره دریافت اطلاعات api با curl بدید . از api های ساده به راحتی با curl میتونم استخراج کنم ولی بعضی از api ها پیغام 403 Forbidden میاد و چیزی دریافت نمیشه چه با curl چه با file_get .ولی داخل مرورگر لینک api رو میزنیم کاملا باز میشه و نمایش میده ولی نمیشه ازش استفاده کرد از دوست دیگری پرسیدم گفتد باید هدر مشخص کنی . خیلی آشنا نیستم . میشه توضیح بدید از api هایی که نمیشه ازشون خروجی گرفت و این پیغام یا مشابهش میاد چکار باید کرد.
درود ، می تونه دلایل مختلفی داشته باشه اگر براتون امکان پذیر هست لینک اون api رو بفرستید تا بررسی بشه و پاسخی براتون ارسال بشه .
سلام واقعا عالی بود . یک سوال داشتم . اگه بخواهیم با استفاده از curl چندین سایت رو استخراج کنیم اون موقع باید چیکار کرد . و در آخر هم چطوری این اطلاعات رو در متغیر های جدا گانه بریزیم . مثلا اطلاعات هر سایت داخل یک متغیر باشه. تا بتوان بخشی از اطلاعات اون صفحه رو با استفاده از کلاس به دست آورد و نمایش داد
می تونید از این آموزش استفاده کنید .