lunes, 7 de mayo de 2012

Reemplazo para file_get_contents usando cURL

¿Por qué no usar file_get_contents?


Por razones de seguridad. Al usar file_get_contents para recuperar datos de sitios remotos se deja abierta la posibilidad de un ataque por inyección de código. Es por ello que se recomienda deshabilitar la opción allow_url_fopen en el archivo php.ini, la cuál permite el acceso a archivos remotos para funciones que normalmente toman un nombre de archivo como parámetro como file_get_contents.

¿Por qué usar cURL?


cURL es una librería segura, potente y ampliamente usada para realizar transferencias de datos con diversos protocolos en PHP.

¿Cómo reemplazo file_get_contents?


Usando una función que haga lo mismo pero usando cURL  como la que sigue lineas abajo.

Código - Función reemplazo de file_get_contents:


function file_get_contents_curl($url) {
    $ch = curl_init();
   
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
   
    $data = curl_exec($ch);
    curl_close($ch);
   
    return $data;
}

1 comentario:

  1. No tienes idea, de lo mucho que me has ayudado con esa función. Justo estaba teniendo problemas con el file_get_contents. Muchas gracias, aunque lo pusiste hace 5 años, de verdad muchas gracias.

    ResponderEliminar