Convertir curl a PHP
curl2code convierte comandos curl a código PHP utilizando la extensión cURL o la librería Guzzle. La conversión se ejecuta en su navegador a través de WebAssembly para una privacidad total. Para lenguajes similares de servidor, consulte nuestro conversor de curl a Python o curl a Ruby. A continuación se presentan ejemplos prácticos de PHP.
Cómo copiar curl desde su navegador
- 1
Abrir DevTools
Presione F12 o Ctrl+Shift+I para abrir las herramientas de desarrollo de su navegador.
- 2
Vaya a la pestaña Network
Haga clic en la pestaña Network y realice la acción que activa la solicitud HTTP.
- 3
Copiar como cURL
Haga clic derecho en la solicitud → Copy → Copy as cURL. Luego péguelo arriba.
Preguntas frecuentes
¿Qué es PHP cURL?
La extensión curl de PHP es un envoltorio (wrapper) de la biblioteca C libcurl, que proporciona potentes capacidades de cliente HTTP. Admite prácticamente todos los protocolos y funciones que el propio curl admite. Inicializa con curl_init(), establece opciones con curl_setopt() y ejecuta con curl_exec(). curl2code también admite Guzzle y Requests como alternativas.
PHP cURL vs Guzzle vs Requests — ¿cuál debería usar?
PHP cURL es de bajo nivel y está integrado; no se necesita Composer. Guzzle es el cliente HTTP de PHP más popular con soporte PSR-7, middleware y solicitudes asíncronas. Requests ofrece una API simple para tareas rápidas. Usa Guzzle para proyectos modernos, PHP cURL para configuraciones mínimas. Para opciones similares en otros lenguajes, consulta curl a Python.
¿Cómo manejar la autenticación en PHP?
Con cURL: curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer token']). Para autenticación Basic: curl_setopt($ch, CURLOPT_USERPWD, 'user:pass'). Guzzle usa 'auth' => ['user', 'pass'] o 'headers' => ['Authorization' => 'Bearer token']. curl2code maneja las etiquetas -u y Bearer automáticamente.
¿Cómo enviar datos de formulario multipart en PHP?
Con cURL: pasa un array a CURLOPT_POSTFIELDS que contenga new CURLFile('path') para los archivos. Guzzle usa la opción 'multipart' con arrays de campos/archivos. curl2code convierte las etiquetas -F al formato correcto para cada variante de biblioteca de PHP.
¿Cómo manejar errores HTTP en PHP?
Con cURL: comprueba curl_errno($ch) para errores de transporte y analiza el estado de la respuesta manualmente. Guzzle lanza RequestException en caso de fallos; captura ClientException (4xx), ServerException (5xx) y ConnectException (red). Llama siempre a curl_close($ch) para liberar recursos.
¿Cómo hacer solicitudes HTTP asíncronas en PHP?
Guzzle admite asincronía a través de $client->requestAsync('GET', $url) devolviendo una Promise. Usa Promise\Utils::all() para solicitudes concurrentes. Con cURL, usa las funciones curl_multi_* para la ejecución en paralelo. Para un PHP verdaderamente asíncrono, considera los frameworks ReactPHP o Amp con sus clientes HTTP.
¿Cómo establecer tiempos de espera en PHP?
Con cURL: CURLOPT_CONNECTTIMEOUT para la conexión y CURLOPT_TIMEOUT para el tiempo total de la solicitud. Guzzle acepta 'connect_timeout' y 'timeout' en segundos. Estos se asignan directamente a las opciones --connect-timeout y --max-time de curl.
¿Cómo usar un proxy en PHP?
Con cURL: curl_setopt($ch, CURLOPT_PROXY, 'http://proxy:8080'). Para SOCKS5: añade CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5. Guzzle usa la opción 'proxy' => 'http://proxy:8080'. curl2code convierte las etiquetas -x y --proxy al código PHP correspondiente.
¿Cómo enviar una solicitud POST con un cuerpo JSON en PHP?
Convierte un comando curl POST como curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL a PHP usando curl2code. El código generado utiliza curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)). curl2code detecta automáticamente los flags -d/--data con contenido JSON y establece el encabezado Content-Type adecuado en el código de cURL.
¿Cómo añadir autorización con token Bearer en PHP?
Pasa curl -H "Authorization: Bearer YOUR_TOKEN" URL a curl2code y este generará código de cURL con el encabezado de autorización: curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer TOKEN']). curl2code detecta tokens Bearer tanto en los flags -H "Authorization: Bearer ..." como en --oauth2-bearer. Para Basic auth, utiliza -u user:pass.
¿Cómo configurar el encabezado Content-Type en PHP?
curl2code convierte curl -H "Content-Type: application/json" URL a código de cURL con el encabezado correcto: curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']). Para los datos de -d, curl utiliza por defecto application/x-www-form-urlencoded; para subidas de formularios con -F, utiliza multipart/form-data. curl2code mapea cada uno a la API de cURL correcta.
Extensión cURL de PHP vs Guzzle: ¿cuál debería usar?
La extensión cURL de PHP (funciones curl_*) está integrada en PHP y no requiere dependencias adicionales, lo que la hace ideal para solicitudes simples o cuando se busca un consumo mínimo de recursos. Guzzle es un cliente HTTP completo con middleware, solicitudes asíncronas, soporte para PSR-7/PSR-18 y reintentos automáticos. Usa cURL para scripts ligeros y Guzzle para aplicaciones complejas. curl2code genera código para ambos; selecciona tu variante preferida en el menú desplegable de lenguajes.
Enlaces útiles
Guías de curl
Códigos de error de curl
Busca cualquier código de salida de curl — causas, soluciones y consejos de depuración.
Descargar archivos con curl
Guarda archivos con -o, -O, sigue redirecciones, reanuda descargas y más.
SSL, TLS y proxy
Configura certificados, versiones de TLS, proxies HTTP/SOCKS y DNS personalizado.