تبدیل دستورات curl به کد PHP - تولید کد PHP cURL آماده استفاده برای درخواستهای API
"https://api.example.com/data", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => json_encode(["name" => "test"]), CURLOPT_HTTPHEADER => [ "Content-Type: application/json" ], ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; }
در اینجا برخی دستورات curl رایج که میتوانید به کد PHP تبدیل کنید آمده است:
curl https://api.example.com/users
curl -X POST -H "Content-Type: application/json" -d '{"name":"John","email":"[email protected]"}' https://api.example.com/users
curl -X PUT -H "Authorization: Bearer token123" -d '{"status":"active"}' https://api.example.com/users/1
curl -X DELETE https://api.example.com/users/1
curl -H "X-API-Key: abc123" -H "Accept: application/json" https://api.example.com/data
افزونه cURL در PHP روشی قدرتمند برای ارسال درخواستهای HTTP فراهم میکند. در اینجا برخی الگوهای رایج PHP cURL آمده است:
"https://api.example.com/upload", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => [ 'file' => $cfile ], CURLOPT_HTTPHEADER => [ "Authorization: Bearer YOUR_TOKEN_HERE" ], ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; }
"https://api.example.com/data", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 5, // 5 seconds timeout CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", ]); $response = curl_exec($curl); $err = curl_error($curl); $httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE); curl_close($curl); if ($err) { echo "cURL Error: " . $err; } else { if ($httpCode >= 400) { echo "HTTP Error: " . $httpCode . "\n"; echo "Response: " . $response; } else { $data = json_decode($response, true); if (json_last_error() === JSON_ERROR_NONE) { // Process JSON data print_r($data); } else { echo "JSON parsing error: " . json_last_error_msg(); echo "Raw response: " . $response; } } }
دستور curl خود را کپی کنید → در کادر ورودی جایگذاری کنید → کد PHP cURL تبدیل شده را دریافت کنید
true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_HTTPHEADER => [ "Authorization: Bearer YOUR_TOKEN_HERE", "Content-Type: application/json", "Accept: application/json" ], ]; // First request curl_setopt_array($curl, $options + [ CURLOPT_URL => "https://api.example.com/users", CURLOPT_CUSTOMREQUEST => "GET", ]); $response1 = curl_exec($curl); $err1 = curl_error($curl); // Second request with the same session curl_setopt_array($curl, $options + [ CURLOPT_URL => "https://api.example.com/products", CURLOPT_CUSTOMREQUEST => "GET", ]); $response2 = curl_exec($curl); $err2 = curl_error($curl); curl_close($curl); // Process responses $users = json_decode($response1, true); $products = json_decode($response2, true);
ابزار ما این گزینههای رایج curl را پشتیبانی میکند و آنها را به کد PHP cURL مناسب تبدیل میکند:
ج: کد PHP cURL تولید شده با PHP 5.5 و بالاتر سازگار است. برای نسخههای قدیمیتر PHP، ممکن است تنظیمات جزئی مورد نیاز باشد، به ویژه برای کلاس CURLFile که در آپلود فایلها استفاده میشود.
ج: بله، کد تولید شده شامل مدیریت خطای پایه برای خطاهای cURL است. برای کد تولیدی، ممکن است بخواهید مدیریت خطای جامعتری مطابق با نیازهای برنامه خود اضافه کنید.
ج: برای پاسخهای JSON، از json_decode() برای تجزیه پاسخ به آرایه یا شیء PHP استفاده کنید. برای سایر فرمتها، میتوانید رشته پاسخ خام را بر اساس نیاز پردازش کنید.
ج: بله، شما به افزونه cURL فعال شده در نصب PHP خود نیاز دارید. اکثر نصبهای مدرن PHP به طور پیشفرض cURL را فعال دارند. میتوانید با php -m | grep curl
در ترمینال خود بررسی کنید.
ج: برای آپلود فایل در PHP، باید از کلاس CURLFile استفاده کنید. مبدل ما دستورات curl با گزینههای -F
یا --form
را پشتیبانی میکند و کد PHP مناسب با استفاده از CURLFile تولید میکند.
ج: افزونه cURL در PHP گزینههایی برای مدیریت کوکی ارائه میدهد. هنگامی که دستورات curl شامل مدیریت کوکی (با استفاده از -b
یا --cookie
) را تبدیل میکنید، ابزار ما کد PHP تولید میکند که به درستی کوکیها را با استفاده از گزینههای CURLOPT_COOKIE یا CURLOPT_COOKIEFILE/CURLOPT_COOKIEJAR مدیریت میکند.
ج: در حالی که curl خط فرمان برای تست سریع API عالی است، PHP cURL به شما امکان میدهد درخواستهای HTTP را مستقیماً در برنامههای PHP خود ادغام کنید. تبدیل curl به PHP به پر کردن شکاف بین تست و پیادهسازی در توسعه PHP کمک میکند.
درک دستورات curl برای تست مؤثر API با PHP ضروری است. در اینجا مرجع سریعی از گزینههای رایج curl که مبدل ما پشتیبانی میکند آمده است:
curl [options] [URL]
-X, --request METHOD
: Specify request method (GET, POST, PUT, DELETE, etc.)-H, --header LINE
: Add header to the request-d, --data DATA
: Send data in POST request-F, --form CONTENT
: Submit form data-u, --user USER:PASSWORD
: Server user and password-k, --insecure
: Allow insecure server connections-I, --head
: Show document info only-v, --verbose
: Make the operation more verbose-s, --silent
: Silent mode--connect-timeout SECONDS
: Maximum time for connectionمبدل PHP ما دستورات پیچیده curl شامل چندین هدر، احراز هویت، دادههای محتوا و گزینههای مختلف را پشتیبانی میکند. به سادگی دستور curl خود را جایگذاری کنید و کد PHP تمیز و مدرن با استفاده از افزونه cURL دریافت کنید.
هنگام کار با PHP cURL، این بهترین شیوهها را برای تعاملات API کارآمد و امن دنبال کنید:
۲. از curl_setopt_array برای گزینههای متعدد استفاده کنید
"https://api.example.com/data", CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "Authorization: Bearer token123", "Accept: application/json" ], ]); $response = curl_exec($curl); curl_close($curl);۳. مدیریت خطای جامع را پیادهسازی کنید
"https://api.example.com/data", CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 30, CURLOPT_CUSTOMREQUEST => "GET", ]); $response = curl_exec($curl); $errno = curl_errno($curl); $httpCode = curl_getinfo($curl, CURLINFO_HTTP_CODE); curl_close($curl); if ($errno) { // Handle cURL errors switch ($errno) { case CURLE_OPERATION_TIMEDOUT: echo "Request timed out"; break; case CURLE_COULDNT_CONNECT: echo "Could not connect to server"; break; default: echo "cURL error ({$errno}): " . curl_strerror($errno); } } else if ($httpCode >= 400) { // Handle HTTP errors echo "HTTP error: {$httpCode}"; } else { // Process successful response $data = json_decode($response, true); // Continue processing... }