Como insertar contenido de sitios externos con PHP
Actualizado: 25 de enero del 2023
Por: Norfi Carrodeguas
Por: Norfi Carrodeguas
Impregnar o embeber paginas completas o solo secciones del HTML, en artículos de mi sitio usando PHP. Ejemplos prácticos y código necesario.

En algunas ocasiones necesitamos insertar el contenido o parte del contenido de una página de internet en un artículo nuestro, de forma que se actualice dinámicamente.
Los métodos disponibles como los marcos o iframe no siempre resuelven la necesidad y con AJAX es imposible agregar contenido de sitios externos, por cuestiones de seguridad.
Tampoco ayuda que dicho sitio no use HTTPS.
Una solución casi perfecta es usar el método DOMDocument::loadHTMLFile de PHP.
En esta página comparto como hacerlo con ejemplos.
Insertar una página externa completa con PHP
La primera posibilidad que nos ofrece el método de PHP es insertar una página completa, con todos sus elementos.Al final de esta pagina como se puede comprobar, se inserta o impregna el todo contenido de la página Latest Stable Versions que posee los enlaces a todas las versiones de la librería JQuery actualizadas.
Para eso uso el siguiente snippett (código).
<?php
$doc = new DOMDocument();
libxml_use_internal_errors(true); //Evitar mensajes de error de libxml
$doc->loadHTMLFile("https://code.jquery.com/");
echo $doc->saveHTML();
?>
Como se puede comprobar, al cargar todos los elementos de la página externa, también se cargan los archivos de estilo que se suman a los originales de este sitio y cambian completamente la apariencia.Insertar solo una sección o bloque de una página externa con PHP
Otra opción es impregnar solo una sección de una página externa que puede estar definida por un identificador (ID) o por un elemento HTML.Nos permite ser más flexibles y es de mucha utilidad cuando se trata de poco contenido, prescindiendo del innecesario.
Insertar contenido de un identificador
El primer código de ejemplo usa un identificador (ID), para insertar solo el contenido que este abarca.En este caso es un contenedor que posee el identificador "content".
<?php
$texto = new DOMDocument();
$texto->loadHTMLFile("https://code.jquery.com/");
$texto->saveHTML();
$specialdiv = $texto->getElementById('content');
if(isset($specialdiv))
{
echo $texto->saveXML($specialdiv);
}
?>
Insertar el contenido de una etiqueta HTML
El segundo código de ejemplo permite insertar solo el contenido de una etiqueta HTML (TAG).La desventaja es que solo se impregna el contenido HTML sin el CSS o sea sin estilo.
En este caso se trata del contenido del elemento <footer>
<?php
$etiqueta = new DOMDocument();
$etiqueta->loadHTMLFile("https://code.jquery.com/");
$etiqueta->saveHTML();
$seccion = $etiqueta->getElementsByTagName('footer')[0];
if(isset($seccion))
{
echo $etiqueta->saveXML($seccion);
}
?>
Descarga de JQuery (últimas versiones)
Contenido de la página original.Páginas relacionadas
✓ Como escribir con PHP en las páginas web
✔ Insertar contenido de otra página con AJAX, JavaScript y JQuery
✔ Ejemplos prácticos, trucos y demostraciones de PHP
✔ Crear, comprimir o convertir archivos PDF gratis
✔ Cargar imágenes desde sitios HTTP no seguros y mostrar con HTTPS
✔ Cargar con JavaScript librerías y archivos externos solo a petición
✔ Crear e insertar calendario de Google Calendar en mi sitio web
✔ Insertar contenido de otra página con AJAX, JavaScript y JQuery
✔ Ejemplos prácticos, trucos y demostraciones de PHP
✔ Crear, comprimir o convertir archivos PDF gratis
✔ Cargar imágenes desde sitios HTTP no seguros y mostrar con HTTPS
✔ Cargar con JavaScript librerías y archivos externos solo a petición
✔ Crear e insertar calendario de Google Calendar en mi sitio web
Comparte
Facebook
Twitter