« RGC 2014 : inscriptions ouvertes !Migration de SegaKore vers un tout nouveau "moteur" »

Inclure le contenu d'une page HTML dans une autre avec JavaScript et PHP

24.09.2014

Inclure le contenu d'une page HTML dans une autre avec JavaScript et PHP

Permalien 21:03:00 par iGREKKESS, Catégories: Da geek way of life , Tags: , , , , ,

Il peut se révéler intéressant, pour plein de raisons, de vouloir intégrer le contenu (le code) d'une page HTML, au sein d'une autre hébergée sur le même serveur, voire dans un billet sur un blog ; que ce soit pour intégrer par exemple une introduction, une signature, un formulaire, ou tout autre bout de code, qui serait commun à plusieurs pages/billets, et qu'on ait juste à modifier cette page, pour que la modification soit reprise partout où elle est incluse.
C'est ce que j'ai cherché à faire dernièrement, et bien que je n'ai en définitive pas retenu la solution, je suis parvenu à un résultat fonctionnel, que je vais livrer ci-dessous pour ceux qui chercheraient un jour à faire la même chose...

Lorsqu'on a accès à PHP, inclure le code d'une page est très simple, mais quand on n'a pas la possibilité de coller un petit include(), c'est moins simple... Me reposant sur le plugin Topics Anywhere pour forums phpBB, permettant d'afficher les sujets ayant reçu des réponses sur un site (système utilisé sur SegaKore), la méthode fait appel à quelques lignes de code dans un script PHP, et à un appel JavaScript de celui-ci.

Imaginons que je veux inclure dans ce billet le contenu d'une page HTML, hébergée sur ce serveur (c'est impératif), nommé : exemple.html


Pour ce faire, je crée tout d'abord un script PHP, nommé exemple.php , placé dans le même dossier que la page HTML (ce n'est pas obligatoire, tant qu'il est sur le même serveur), et qui va charger le contenu de cette page et le "transformer" de manière à ce qu'il puisse être récupéré dans un JavaScript :

PHP:

<?php
 
    $html_content addslashes(file_get_contents("exemple.html")) ;
 
    $rows explode("\n"$html_content) ;
    $output "" ;
    foreach($rows as $row => $html_line$output .= $html_line ;
 
    header("Content-type: text/javascript; charset=iso-8859-1") ;
    exit("document.writeln('".$output."');\n") ;
 
?>

Le script parse le contenu de la page dans un premier temps, puis met bout à bout toutes les lignes de code HTML, pour ne plus en faire qu'une seule, afin que celle-ci puisse être utilisée par JavaScript ; en effet, la fonction document.writeln(), utilisée dans JavaScript pour afficher le texte/code, ne sait pas gérer plusieurs lignes.
Le résultat est visible en ouvrant le script PHP (lien donné ci-dessus) : le code de la page apparaît sur une seule ligne, au sein de la fonction document.writeln().


Enfin, il ne reste plus qu'à appeler le résultat envoyé par le script PHP, sous forme de JavaScript donc, au sein de la page ou du billet de destination, comme suit :

Code:

<script type="text/javascript" language="JavaScript" src="/blog/media/blogs/igrekkess/articles/inclusion_html/exemple.php"></script>

 
Démonstration au sein même de ce billet, avec ci-dessous le contenu d'exemple.html :


Pour des raisons de sécurité, il est fortement déconseillé de faire en sorte que le script PHP soit dynamique et puisse inclure une page HTML dont le nom serait passé sous forme d'argument (fonction GET)...

Print this pagePermalienPermalien • 2323 vues

Aucun commentaire pour le moment

Août 2020
Lun Mar Mer Jeu Ven Sam Dim
 << <   > >>
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

Rechercher

Image aléatoire

Gazouillis

Pub-Pub

Statistiques

Ce blog propose 301 billets, et a reçu 966 commenaires, sur une période comprise entre le 11.06.2005 et le 21.10.2018. Le nombre total de mots sur l'ensemble des billets est de 158,147, et le nombre total de vues est de 1,275,202.

TOP : nombre de vues

Flux XML

powered by b2evolution