index.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. <!DOCTYPE html>
  2. <html lang="es">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width" />
  6. <title>Generador de citas APA</title>
  7. </head>
  8. <body>
  9. <form action=".">
  10. <input placeholder="Introduce la URL aquí" type="search" name="url" required="">
  11. <button>Generar</button>
  12. </form>
  13. <p>
  14. <?php
  15. setlocale(LC_TIME, array('es_ES.UTF-8','es_ES@euro','es_ES','spanish'));
  16. $url = $_GET['url'];
  17. $content = file_get_contents($url);
  18. $doc = new DOMDocument();
  19. // squelch HTML5 errors
  20. @$doc->loadHTML($content);
  21. $meta = $doc->getElementsByTagName('meta');
  22. foreach ($meta as $element) {
  23. if ($element->getAttribute('property') == "article:published_time"){
  24. $published_date = $element->getAttribute('content');
  25. } else if ($element->getAttribute('property') == "og:site_name") {
  26. $site_name = $element->getAttribute('content');
  27. }
  28. }
  29. $h1 = $doc->getElementsByTagName('h1')->item(0)->textContent;
  30. if (isset($h1)) {
  31. $title = $h1;
  32. } else {
  33. $title = $doc->getElementsByTagName('title')->item(0)->textContent;
  34. }
  35. $title = utf8_decode($title);
  36. $pdate = explode("-", $published_date);
  37. $year = $pdate[0];
  38. $month = $pdate[1];
  39. $day = substr($pdate[2], 0, 2);
  40. $mes = '?';
  41. switch ($month) {
  42. case 1:
  43. $mes = 'enero';
  44. break;
  45. case 2:
  46. $mes = 'febrero';
  47. break;
  48. case 3:
  49. $mes = 'marzo';
  50. break;
  51. case 4:
  52. $mes = 'abril';
  53. break;
  54. case 5:
  55. $mes = 'mayo';
  56. break;
  57. case 6:
  58. $mes = 'junio';
  59. break;
  60. case 7:
  61. $mes = 'julio';
  62. break;
  63. case 8:
  64. $mes = 'agosto';
  65. break;
  66. case 9:
  67. $mes = 'septiembre';
  68. break;
  69. case 10:
  70. $mes = 'octubre';
  71. break;
  72. case 11:
  73. $mes = 'noviembre';
  74. break;
  75. case 12:
  76. $mes = 'diciembre';
  77. break;
  78. }
  79. echo "<i>$title</i> ($day de $mes de $year). " . utf8_decode($site_name) . ". Recuperado el " .strftime("%e de %B de %Y") . ', de <a href="' . $url . '">'. "$url</a>" ;
  80. ?>
  81. </p>
  82. </body>
  83. </html>