Blog de programación, errores, soluciones

Chose Language:
Author: Admin/Publisher |finished | checked

Utilizando file_get_contents en PHP

La función file_get_contents en PHP se utiliza para transmitir un fichero completo a un string, si falla devuelve false.

Description
file_get_contents(
    string $filename,
    bool $use_include_path = false,
    resource $context = ?,
    int $offset = 0,
    int $maxlen = ?): string

En este apartado más que ver como funciona esta función veremos en que es utilizada.

Supongamos que quiero recorrer una página de otra persona, en ese caso puedo querer obtener esa página en modo de un sting.

Una vez obtenido el HTML de la página en forma de strings puedo ver donde se encuentran los links, y ir recorriendo estos 1 a 1.

Intentémoslo obtener el HTML de google.com. Es probable que algunas páginas no dejen hacer esto. A esto se le llama crawler un pequeño robot que obtiene información de otras páginas, de hecho Google tiene el suyo y es así como indexa nuestra página. Claro está ni idea del lenguaje que utiliza Google, probablemente este hecho en c o c++.

obteniendo el contenido de google.com
<?php

$p = file_get_contents('http://google.com/');
if($p !==false){
    echo "<textarea>$p</textarea>";
}else{
    echo "no pudo obtenerse el contenido de la pagina";
}
?>

si le haces simplemente echo intentará mostrar la página de Google en tu página

Es probable que desees hacer un robot para copiar otro sitio, y así hacer un sitio rápidamente. No lo hagas, Google sabe que tu web es una copia de la otra y pondrá esta otra por delante de la que crees de esta forma además de ponerle una sanción poniéndola aún más abajo en ranking de lo que debería estar, tampoco escalara en ranking

Por razones obvias en este post no se enseña a hacer un crowler, sería demasiado largo para explicarlo todo. Y además las cosas que podemos hacer con file_get_contents aún no ha terminado.

Usar un archivo JSON con file_get_contents en PHP

También podemos utilizar un archivo json, utilizando file_gets_contents y json_decode

Si tenemos un JSON de menues como el siguiente:

menu.json
{"menues": [
    {
        "id": 1,
        "title": "Hamburguesas",
        "image": "hamburguesas.jpg"
    },
    {
        "id": 5,
        "title": "Porteño",
        "image": "portenos.jpg"
    }]
}

Ahora abriremos obtendremos el contenido de este archivo, veamos como hacerlo:

ejemplo2.php misma carpeta de menu.json
$a =file_get_contents("menu.json");
if($a !==false){
    $a=json_decode($a,true);
    var_dump($a['menues']);
}else{
    echo "no pudo obtenerse el contenidod el archivo JSON";
}
?>

Probablemente, digas, pero no estás recorriendo nada, eso es nada más que poner un foreach en pocas palabras borramos ese var_dump y ponemos un foreach

ejemplo2.php
foreach ($a['menues'] as $menu){
        echo "<p>".$menu['id']."<p>";
        echo "<p>".$menu['title']."<p>";
        echo "<p>".$menu['image']."<p>";
    }
Category: php
Something wrong? If you found an error or mistake in the content you can contact me on Twitter | @luisg2249_luis.
Last 4 post in same category