2012-03-15 26 views
5

He escrito una clase que detecta si cURL está disponible, si se realiza GET, POST, DELETE usando cURL. En la versión cURL utilizo curl_getinfo($curl, CURLINFO_HTTP_CODE); para obtener el código HTTP. Si cURL no está disponible, utiliza fopen() para leer el contenido del archivo. ¿Cómo obtengo el código de encabezado HTTP sin cURL?PHP obtener el código de respuesta del encabezado http sin cURL

+0

Use 'fsockopen()'. –

+0

Si está leyendo directamente la secuencia de respuesta HTTP, debe analizar los encabezados y el código de respuesta. No es gran cosa, debería poder encontrar el código de muestra con una búsqueda rápida. –

+0

He publicado un código de ejemplo en [esta respuesta] (http://stackoverflow.com/a/7566440/367456). Una descripción más general de cómo se puede hacer HTTP con PHP sin las funciones curl se describe [en esta respuesta] (http://stackoverflow.com/a/9705711/367456). – hakre

Respuesta

14

Uso get_headers:

<?php 
$url = "http://www.example.com/"; 

$headers = get_headers($url); 

$code = $headers[0]; 
?> 

Editar:get_headers requiere una llamada adicional, y no es apropiado para este escenario. Use $http_response_headers como suggested by hakre.

+1

Eso ejecutará una solicitud por sí mismo. – hakre

+0

Ah, estaría en lo correcto. Mi respuesta probablemente no sea la mejor opción en este caso. –

+2

Bueno, técnicamente no está mal, porque el TS no ha publicado mucho código, por lo que no está claro qué exactamente quería saber;) – hakre

Cuestiones relacionadas