2012-06-11 21 views
6

Duplicar posibles:
file_get_contents() errorfile_get_contents funciona en local pero no en el servidor

Trabajar en un guión que se conecta a Instagram API para obtener fotos de una determinada etiqueta. Funciona bien en Local pero en el servidor obtengo errores.

Warning: file_get_contents(): https: // envoltura está deshabilitado en la configuración del servidor en los allow_url_fopen = 0 en /storage/content/91/103391/instaboll.nu/public_html/instagram.php en la línea 19.

Así es como se ve la línea 19:
$ contents = file_get_contents ("https://api.instagram.com/v1/tags/ $ tag/media/recent? Client_id = $ client_id");

¿Alguna idea?

Han buscado esto y encuentran algunas publicaciones que recomiendan curl, pero no tienen idea de cómo proceder con eso.

+1

'https: // envoltorio está deshabilitado en la configuración por allow_url_fopen = 0' que dice, por lo que su pregunta es cómo configurarlo para '1' – Esailija

+1

Bueno, lo que necesita para establecer allow_url_fopen = 1 en su php. ini. – alexn

+2

¿Qué mensaje de error no comprende? No creo que pueda estar más claro cuál es el problema. –

Respuesta

15

Lo resolví con este código.

<?php 
$url = "http://www.example.org/"; 
$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, $url); 
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 5); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true); 
$contents = curl_exec($ch); 
if (curl_errno($ch)) { 
    echo curl_error($ch); 
    echo "\n<br />"; 
    $contents = ''; 
} else { 
    curl_close($ch); 
} 

if (!is_string($contents) || !strlen($contents)) { 
echo "Failed to get contents."; 
$contents = ''; 
} 

echo $contents; 
?>  
+2

Me encontré con esto, encontré su hilo, pero necesitaba cookies y otras cosas útiles con el cURL. Terminé publicando mi solución en el siguiente hilo, si es útil para otra persona. http://stackoverflow.com/questions/12885538/php-curl-and-cookies – Doug

+0

Funcionó para mí. Estaba usando 'file_get_contents' y había un error' 403 Forbidden' y 'file_get_contents' no mostraba nada. Pero esto resolvió mi problema. Muchas gracias. @blytung –

2

Deberá habilitar allow_url_fopen desde php.ini en su host o hablar con sus proveedores de hosting.

Esta opción habilita las envolturas fopen compatibles con URL que permiten acceder a objetos de URL como archivos.

+0

Las guías de seguridad nos dicen que lo apaguemos. ¿Cómo podemos desactivarlo excepto por URL externas? Es decir, no lo permita para recursos locales porque podría permitir que un atacante lea información confidencial. – jww

1

El administrador del servidor ha deshabilitado esta funcionalidad. Deberás pedirles que lo habiliten.

4

La solución es en el mensaje de error: juego de allow_url_fopen-1 en sus ini (utilizar un archivo php.ini, utilice ini_set en el código php, o hablar con su anfitrión).

+0

¿Es solo para crear un archivo php.ini y agregarlo a la carpeta donde tengo los otros archivos? ¿Cómo uso ini_set? – blytung

+0

El archivo ini utilizado por el servidor depende del servidor. Con apache, es posible que pueda usar 'suPHP_ConfigPath', pero tal vez no. 'ini_set': http://us.php.net/manual/en/function.ini-set.php –

+0

Las guías de seguridad nos dicen que lo apaguemos. ¿Cómo podemos desactivarlo excepto por URL externas? Es decir, no lo permita para recursos locales porque podría permitir que un atacante lea información confidencial. – jww

Cuestiones relacionadas