Skip to content

Instantly share code, notes, and snippets.

@nicastelo
Last active August 29, 2015 14:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nicastelo/7c22f744984dcc4874cf to your computer and use it in GitHub Desktop.
Save nicastelo/7c22f744984dcc4874cf to your computer and use it in GitHub Desktop.
<?php
//Le indico que va a mostrar un json
header('Content-Type: application/json');
//quito los errores por las etiquetas html5
libxml_use_internal_errors(true);
//Guardo la url pasada por get
$url = $_GET["url"];
if(preg_match('#^http://www.filmaffinity.com.*#s', trim($url))){
//Funciona
} else{
$data = array('msg' => 'bad url');
echo json_encode($data);
return false;
}
//Tomo el código y lo meto en una variable
$fo= fopen($url,"r") or die ("No se encuentra la pagina.");
while (!feof($fo)) {
$cadena .= fgets($fo, 4096);
}
fclose ($fo);
//Cargo la cadena como documento DOM
$doc = new DOMDocument();
$doc->loadHTML($cadena);
//Obtengo los elementos <dl>
$elements = $doc->getElementsByTagName('dl');
//Defino la lista
//(El primer <dl> del sitio es la lista que contiene los datos)
//De el saco todos los <dd>
$lista = $elements->item(0)->getElementsByTagName('dd');
//Defino el titulo (el primer <dd>)
$title = $lista->item(0)->nodeValue;
//Defino el año (el segundo <dd>)
$age = $lista->item(1)->nodeValue;
//Defino el director (el quinto <dd>)
$director = $lista->item(4)->nodeValue;
//Defino el guion (el sexto <dd>)
$guion = $lista->item(5)->nodeValue;
//Defino el director (el noveno <dd>)
$reparto = $lista->item(8)->nodeValue;
//Defino la productora (el décimo <dd>)
$prod = $lista->item(9)->nodeValue;
//Guardo todo en un array
$data = array('title' => $title, 'age' => $age, 'director' => $director, 'guion' => $guion, 'reparto' => $reparto, 'prod' => $prod, 'msg' => 'success');
//imprimo el array como json
echo json_encode($data);
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment