Jeudi 14 Août 2003
[Html] - Les urls data.
Un truc sympa que j'ai découvert aujourd'hui, merci Ganf, est les urls data. C'est très simple, il suffit de faire un lien hypertexte contenant le code html de votre page encodée à la manière qui va bien.
<a href="data:text/html;charset=iso-8859-1,codehtml">Liens</a>
Testé sous Gecko, cela permet de faire des trucs inutiles de ce style dont voici le code :
<?php
function parse($nb,$max)
{
# Fin de la recursion infinie.
if($nb == $max){
return false;
}
return '<html>'.
'<head>'.
'<title>Page '.$nb.'</title>'.
'</head>'.
'<body>'.
'<h1>Page '.$nb.'</h1>'.
'<a href="data:text/html;charset=iso-8859-1,'.
rawurlencode(parse($nb+1,$max)).
'">Allez à la page '.($nb + 1).'</a>'.
'</body>'.
'</html>';
}
echo parse(1,5);
?>
Edit.
Suite à la remarque de Jérémie qui n'a pas comprit l'interet de l'article, je vais preciser quelques petites choses.
Cette syntaxe permet de ne pas appeler une nouvelle page, mais de stocker le contenu de la page dans l'ancienne page. Sous la forme d'un liens data:content-type;charset,contenu Cela permet donc d'eviter une nouvelle requete HTTP en stockant tout dans une seule page, mais je ne sais pas si c'est très utile et ce n'est surement pas applicable à un site classique.
En ce qui concerne le code, il s'agit d'une fonction récursive (qui se rappelle elle même) affichant un code html (non valid :) en remplacant le contenu du liens par un nouvel appel de fonction, donc de nouveau le même code html si ce n'est les numero qui sont incrementés. De plus, l'appel à la fonction rawurlencode() permet d'encoder correctement le contenu du liens.
J'espere avoir apporter les precisions necesaires.
Commentaires
Vendredi 15 Août 2003 12:10:31 - Jérémie Lien
Mmh, tu t'es pas trop foulé pour cet article. On comprend ni l'interet, ni la façon de faire.
"C'est très simple, il suffit de faire un lien hypertexte contenant le code html de votre page encodée à la manière qui va bien."
Hum ... Je comprends rien, et encore moins avec l'exemple :|
A revoir ... et oublie pas que tout le monde est pas calé comme toi.
Vendredi 15 Août 2003 15:55:14 - Guillaume
Normal ca n'a aucun interet, enfin je n'en ai pas trouvé à ce jour.
Vendredi 15 Août 2003 16:12:23 - Jérémie Lien
j'y vois bien plus clair, merci beaucoup :)
Vendredi 15 Août 2003 21:59:00 - mat Lien
En fait ca a plusieurs interets: Par exemple Il est facile de generer des liens de ce style a la chaine, et sans creer des nouvelles pages a chaque fois.
Donc pour tout ce qui est generation de testcases tout ca, c'est bien pratique :)
Réagissez
En fait non ! Trop de smap