PHP ini file_get_contents URL externa
Utilizo la siguiente función PHP:
file_get_contents('http://example.com');
Cada vez que hago esto en un servidor determinado, el resultado está vacío. Cuando lo hago en cualquier otro lugar, el resultado es cualquiera que sea el contenido de la página. Sin embargo, cuando uso la función localmente en el servidor donde el resultado está vacío, sin acceder a una URL externa ( file_get_contents('../simple/internal/path.html');
), funciona .
Ahora, estoy bastante seguro de que tiene algo que ver con cierta configuración de php.ini. Sin embargo, de lo que no estoy seguro es de cuál . Por favor ayuda.
Complementando la respuesta de Aillyn, podrías usar una función como la siguiente para imitar el comportamiento de file_get_contents:
function get_content($URL){
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $URL);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
echo get_content('http://example.com');
La configuración que buscas es allow_url_fopen
.
Tiene dos formas de evitarlo sin cambiar php.ini, una de ellas es usar fsockopen()
y la otra es usar cURL .
Recomiendo usar cURL de file_get_contents()
todos modos, ya que fue creado para esto.