Hello,
voici un petit script PHP qui permet d'inclure une page web à partir d'une principale. On peut s'éviter des frames...


L'idée est de faire une page principale, avec ses entêtes et pieds, barre de navigation, couleurs de fond, ect, ect.
Ensuite, le contenu peut être sélectionné par l'utilisateur: liste déroulante ou n0 de page par exemple.
Les pages incluses doivent être en html, of course. Pour éviter un usage abusif, la dimension des pages ne doit pas dépasser 100k: pour du texte, c'est déjà bien lourd...


Le fichier à inclure peut être local ou même http. Ce dernier mode est très instructif: si ce n'est pas sur le même serveur, des balises <a>...</a> ne seront pas complètes, par exemple. Les pages bourrées de code javascipt plantent rapidement! j'ai essayé pour tester sur le site de la poste (www.poste.ch). Par contre sur un site essentiellement "texte", ça fonctionne sauf pour les liens, qui se référencent au site original - mais ce n'est pas le but.
Bye,
//Yves


<?php
/* display_html_page.php
---------------------
16/11/2003 - mayv: first release
display a html page content, removing header, html and body tags.
Usage:
1) include the fct code in the html/php main file:
<?php require_once("display_html_page.php"); ?>
2) select the embedded html file, as:


$file = "./lot_of_files/test0001.html";
- or -
$file = "http://www.included.com/result.html";
Note : open file not only text on another server can give surprising result.
The local references are anyway lost!
3) use the fct call:
<?php display_html_page($file); ?>


*/
function display_html_page($file_name)
{
$fp = @fopen($file_name, 'rb');
if ($fp==0) die("Error 404 - Can't open file: " . $file_name);
//$body = @fread($fp, filesize($file_name)); //any size
$body = @fread($fp, 100000); // max 100 k


// regex issued in: http://www.phpinfo.net/regex/index.html
$body =
eregi_replace('(^.*<html[^>]*>.*<body[^>]*>)|(</body[^>]*>.*</html[^>]*>.*$)', '', $body);
echo $body;
}


?>

et pour tester:

<html>
<!-- Date de création: 16/11/2003 -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Check of embedded html</title>
<meta name="author" content="Yves Masur">
<meta name="generator" content="WebExpert 5">
</head>
<body>
<?php require_once("display_html_page.php"); ?>
Entrez le fichier HTML à inclure:

<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="get" enctype="text/plain">
<input type="text" name="file_name" size="60" maxlength="256">
</form>


Resultat:
<?php
$file = $_GET['file_name'];

if (strlen($file)>3)
{
   echo "file name:" . $file . "<br>\n\r";
   display_html_page($file);
}
?>
</body>
</html>

--
/********************************************************************/
/* Yves Masur - Ch de Faug 2 - CH 1805 JONGNY - 021 9228491; FAX:93 */
/* Professionnel: +41 21 631 82 43 mobile: +41 79 479 92 48         */
/* [EMAIL PROTECTED] - homepage: http://yves.masur.microclub.ch/  */
/* Sites: www.aspeda.ch, www.svehk.ch,                              */
/* www.microclub.ch et www.fanfaredechardonnejongny.ch              */
/********************************************************************/


_______________________________________________ microclub-web mailing list [EMAIL PROTECTED] http://lists.alphanet.ch/mailman/listinfo/microclub-web

Répondre à