Sr. Fldig
Tal vez he estado sentado aquí demasiado tiempo mirando esto, pero ¿POR QUÉ lo haría? file_get_contents
devolver false
¿aquí? ¿He cortado y pegado la URL y funciona bien?
$url = "http://jobs.github.com/positions.json?search=" . $as_any . "&location=" . $location;
// URL contains http://jobs.github.com/positions.json?search=Project Manager&location=London
var_dump($url);
$json = file_get_contents($url);
var_dump($json);
$results = json_decode($json, TRUE);
var_dump($results);
exit;
EDITAR:
he comprobado allow_url_fopen
y definitivamente está encendido.
Prueba esto:
$query = http_build_query(array('search'=>$as_any, 'location'=>$location));
$url = "http://jobs.github.com/positions.json?" . $query;
El problema es que no estaba codificando en URL el término de búsqueda, que contiene un espacio. La solicitud devolvía un error 400 del servidor, que habría notado si tuviera habilitado el informe de errores.
-
En resumen, te amo… Intenté hacer $url = urlencode(….) pero no pareció funcionar, ¿cuál es la diferencia?
– Sr. Fldig
10/02/2013 a las 20:35
-
Eso codificará todos los caracteres delimitadores en la URL, por lo que no se reconocerán como delimitadores.
– Barmar
10 de febrero de 2013 a las 20:37
Es posible que deba habilitar allow_url_fopen en su php.ini
http://www.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen
De la documentación:
Esta opción habilita los envoltorios fopen con reconocimiento de URL que permiten acceder a objetos de URL como archivos.
Es posible que su servidor le impida abrir un archivo ubicado en una URL usando file_get_contents.
-
Actualmente /etc/php.ini tiene allow_url_fopen = Activado
– Sr. Fldig
10 de febrero de 2013 a las 20:04
-
si file_get_contents() devuelve falso, entonces no podría leer el archivo. Si el valor es NULL, la función en sí está deshabilitada.
– Nikhil Mark
7 de noviembre de 2017 a las 8:36
-
Parece que no es cierto @NikhilMk, obtuve falso pero después de habilitar obtuve los datos
– Fanky
26 de septiembre de 2021 a las 8:27
Probablemente allow_url_fopen en su php.ini: http://php.net/manual/en/filesystem.configuration.php
Necesita ser permitido.
En mi caso reemplazar archivo_obtener_contenido() en esta sencilla función
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;
}
A veces si file_get_contents devolver falso (no encontrado) deberías ver si la url es codificado.
ejemplo:
Debiera ser:
posible duplicado del Problema al obtener contenidos/archivos usando file_get_contents de url o Problema en la codificación geográfica inversa
– mario
10 de febrero de 2013 a las 20:01
Ninguna de las respuestas allí parece aplicarse a esta pregunta.
– Barmar
10 de febrero de 2013 a las 20:21