Gmane
Favicon
From: Francois Legrand <legrand <at> iap.fr>
Subject: Re: Re: afficher un document html dans un squellette
Newsgroups: gmane.comp.web.spip.user
Date: 2004-05-18 22:16:43 GMT (4 years, 28 weeks, 2 days, 9 hours and 2 minutes ago)

Bon, j'ai fait quelque filtres permettant de faire ça. En gros, j'ai développé deux approches.

1ière solution: Faire un include des fichiers à insérer dans ta page. Pour pouvoir faire ça dans un filtre, il faut faire un
premier filtre qui va chercher une balise spécifiant la page à inclure (par ex <inclure_fichier le_nom_du_fichier> et récupérer
le nom du fichier dans une variable. Ensuite tu peux remplacer ta balise par le contenu du fichier à l'aide de la fonction suivante:

// fonction insérant le résulat de l'exécution d'un fichier php
function my_include($filename){
    ob_start();      // On bufferise l'output
    include($filename)  ;   // ici l'include va pas sur l'output mais dans le buffer
    $retour = ob_get_contents();    // on récupère le contenu du buffer dans une variable
    ob_end_clean();  //  on ferme et flush le buffer
    return $retour; // on renvoi le contenu du fichier
}

Ça s'appelle comme ça
function mon_filtre($fl_txt){
    // On initialise
    $le_fichier_a_inclure = "" ;
    $fl_replace_in="";
   
    // On va utiliser une expression régulière pour parser la balise et récupérer l'adresse de la page à inclure
    $fl_patern_in="|<inclure_fichier([^>]*?)>|i";
    // On traite que si la balise est présente
    if (preg_match($fl_patern_in, $fl_txt, $matches) ) {
          // Et que si une adresse est spécifiée
         if (trim($matches[1])<>""){           
                $le_fichier_a_inclure=trim($matches[1]); 
                $fl_replace_in1= <at> my_include($le_fichier_a_inclure);  
                 // ici, pour être propre, il faut ajouter une fonction qui extrait que ce qui est compris
                // entre les balises <body> et </body> de ton fichier include. C'est la fonction filtrehtml.
                // Au départ, je prenais aussi les styles, mais c'est trop risqué si certains s'appellent comme
                // dans ton site "hote".
                $fl_txt =  filtrehtml($fl_txt);
                $fl_txt = preg_replace($fl_patern_in, "$fl_replace_in1", $fl_txt);
        }    
    }
    return $fl_txt;
}


function filtrehtml($pagehtml){
    if (eregi("< *body[^>]*>(.*)</body[^>]*>",$pagehtml,$regs)){
        $retour = $regs[1];
    }
    else {
        $retour = $pagehtml;
    }
    return $retour;
}



Et dans la boucle article de ton squelette tu met qqchose comme
[(#TEXTE|mon_filtre)]
et il suffit alors dans le texte de tes articles de mettre <inclure_fichier mon_fichier.php> ou <inclure_fichier /mon/chemin/mon_autre_fichier.html>

Ça marche bien pour des pages sans liens entre elles (car sinon les liens font sortir de ton site).


2ième solution: Une fonction qui insère, non pas un fichier, mais carrément une page web lu sur n'importe quelle adresse.
Là, j'ai la flemme de faire des commentaires, alors je livre en brut... Saches seulement que ça me permet de browser des
répertoires depuis mon site et même de faire apparaitre google dans mon site... C'est encore en version béta.


// Liste des sites autorisés à être affichés dans le site:
$GLOBALS['Authorized_sites']=array(  
                                    "http://www.google.fr",
                                    "http://www.planck-hfi.org");





/*
***************** VO ********************
GetUrl v1.1
Originally written by tahmer <at> free.fr
Modified by legrand <at> iap.fr
return:
    -1 cant connect
     0 protocol error
     1 ok
mandatory parameters
    $hostwebserver (ie: "www.web.com")
   
    $urlin        page beginning with "/"  (ie: "/index.html")
    $fl_param parameter which have to be passed to the requested page
    $cookie     list of cookie
      syntax:   [name=value [ ';' name=value]]
    ie:   cookie1=v1
       or
    cookie1=v1; cookie2=v2; ...

output parameters
    $page(out)   content of url
    $header(out) content of header
   
 optional  parameters
    $fl_login         (login and password for basic .htaccess
    $fl_password      authentification protected pages: "" if none )
    $fl_timeout        Timeout for connection
   
exemple:
login on a web server
the login process send a cookie "MagicNumber" witch is mandatory to
access a database result page
ps: cookie are sent by server in the header
Set-Cookie: name=value;....
$res=readurl("www.webserver.com","/login.cgi?user_name=me&password=mypass","",$page,$header);
if ($res!=1) exit;
$MagicNumber=0;
      if (preg_match("/Set-Cookie:\s+MagicNumber=(\d+)/i", $header, $parts))
     $MagicNumber=$parts[1];
if ($MagicNumber==0) exit;
$res=readurl("www.webserver.com","/result.cgi?query=my_query","MagicNumber=$MagicNumber",$page,$header);
*/
function GetUrl($host ,$urlin,$fl_param,$cookie,&$page,&$header,$fl_login="", $fl_password="", $fl_timeout="20",$reecriturl="true",$servport="80"){

if (site_autorise("http://".$host.$urlin)){
    if ($fl_param==""){$url = $urlin;} else {$url = $urlin."?".$fl_param;};
    $page="";
    $header="";
    $sock=fsockopen($host, $servport , $errno , $errstr, 30);
    if (!$sock) {echo "$errstr ($errno)<br />\n";  return -1;};
    //socket_set_timeout($sock, $fl_timeout); // this feature is not supported by our php built
    $msg="GET $url HTTP/1.1";
    //$msg="GET / HTTP/1.1";
    if ($cookie!="") $msg.="\r\nCookie: $cookie";
    $msg.="\r\n"."Host: $host\r\nConnection: Close"."\r\n"."User-Agent: ".$_SERVER['HTTP_USER_AGENT']."\r\n";
    //$msg.="\r\n"."Host: $url\r\nConnection: Keep-Alive"."\r\n"."User-Agent: ".$_SERVER["HTTP_USER_AGENT"]."\r\n";
    if ($fl_login) $msg.="Authorization: Basic ".base64_encode("$fl_login:$fl_password")."\r\n";
    $msg.="\r\n\r\nAccept: */* "; //, text/plain, image/*, */* ";
    $msg.="\r\n\r\n\r\n\r\n";
   
    fputs($sock,$msg);
    $chunked=0;
    // read header
    while ($buffer=fgets($sock,4096)) {
        if ($buffer=="\r\n") break;
        $header.=$buffer;
        if (preg_match("/Transfer-Encoding:\s+(.+)\r\n/U", $buffer, $parts))
            if (strtoupper($parts[1])=="CHUNKED") $chunked=1;
            else echo "**???".$parts[1]."??\r\n";
    }
   
    if ($chunked==0) {
        while ($buffer = fgets($sock, 4096)) {
            $buffer=fread($sock,4096);
            $page.=$buffer;
        }
    }
    else {
        while ($buffer = fgets($sock, 4096)) {
            if (!preg_match("/\s*([\dABCDEFabcdef]+)\s*\r\n/i", $buffer, $parts)) {
                echo "**chunk size not found : $buffer\r\n";
                return 0;
            }
            $size = (int)base_convert(strtoupper($parts[1]), 16, 10);
            if ($size==0) break;
            $buffer=fread($sock,$size);
            if (strlen($buffer)!=$size) {
                echo "**reading : $size\r\n";
                echo "**readed : ".strlen($buffer)."\r\n";
                return 0;
            }
            $page.=$buffer;
            //echo $buffer;
            $buffer=fgets($sock,4096);
            if ($buffer!="\r\n") {
                echo "**CRLF not found : $buffer\r\n";
                return 0;
            }
        }
    }
   
   
    if ($reecriturl=="true"){
          // On réecrit les URL en absolu
          // VOIR A UTILISER realpath ?
          // Les liens href = "bla bla" mais aussi <href = bli.bli >
          $page = preg_replace( "|href= *\"\.(?!http:)([^\"]*)\"|i", "href=\"http://".$host.dirname($urlin)."/\\1\"", $page);   
          $page = preg_replace( "|href= *\"/(?!http:)([^\"]*)\"|i", "href=\"http://".$host."/\\1\"", $page);
          $page = preg_replace( "|href= *\"(?!http:)([^\"]*)\"|i", "href=\"http://".$host.$urlin."\\1\"", $page);
     
          $page = preg_replace( "|href= *\.(?!\")(?!http:)([^>]*)>|i", "href=\"http://".$host.dirname($urlin)."/\\1\">", $page);   
          $page = preg_replace( "|href= *(?!\")/(?!http:)([^>]*)>|i", "href=\"http://".$host."/\\1\">", $page);
          $page = preg_replace( "|href= *(?!\")(?!http:)([^>]*)>|i", "href=\"http://".$host.$urlin."\\1\">", $page);
     
     
          // les images
          $page = preg_replace( "|src= *\"\.(?!http:)([^\"]*)\"|i", "src=\"http://".$host.dirname($urlin)."/\\1\"", $page);
          $page = preg_replace( "|src= *\"/(?!http:)([^\"]*)\"|i", "src=\"http://".$host."/\\1\"", $page);
          $page = preg_replace( "|src= *\"(?!http:)([^\"]*)\"|i", "src=\"http://".$host.dirname($urlin)."/\\1\"", $page);
     
          $page = preg_replace( "|src= *\.(?!\")(?!http:)([^>]*)>|i", "src=\"http://".$host.dirname($urlin)."/\\1\">", $page);   
          $page = preg_replace( "|src= *(?!\")/(?!http:)([^>]*)>|i", "src=\"http://".$host."/\\1\">", $page);
          $page = preg_replace( "|src= *(?!\")(?!http:)([^>]*)>|i", "src=\"http://".$host.dirname($urlin)."/\\1\">", $page);
     
          //    les formulaires (risky !!!)
          $page = preg_replace( "|form action= *\"\.(?!http:)([^\"]*)\"|i", "form action=\"http://".$host.dirname($urlin)."/\\1\"", $page);
          $page = preg_replace( "|form action= *\"/(?!http:)([^\"]*)\"|i", "form action=\"http://".$host."/\\1\"", $page);
          $page = preg_replace( "|form action= *\"(?!http:)([^\"]*)\"|i", "form action=\"http://".$host.dirname($urlin)."/\\1\"", $page);
     
          $page = preg_replace( "|form action= *\.(?!\")(?!http:)([^>]*)>|i", "form action=\"http://".$host.dirname($urlin)."/\\1\">", $page);   
          $page = preg_replace( "|form action= *(?!\")/(?!http:)([^>]*)>|i", "form action=\"http://".$host."/\\1\">", $page);
          $page = preg_replace( "|form action= *(?!\")(?!http:)([^>]*)>|i", "form action=\"http://".$host.dirname($urlin)."/\\1\">", $page);
         
       
    }
    fclose($sock);
    return 1;
}
else{
    $page="You cannot display the requested url.";
    $header="";
}
}

//fonction de calcul d'une url absolue
function absurl($urlaanalyser, $serveur, $pathurlbase){
    $newurl= parse_url($urlaanalyser);
    echo "path = ".$newurl[path]." original=".$urlaanalyser;
    if (isset($newurl[scheme])) {
        // c'est une url absolue car http ou ftp est défini
        return $urlaanalyser;
    }
    elseif (eregi("^/*",$urlaanalyser)){
        // Le chemin défini est absolu
        return "http://".$serveur.$newurl[path];
       
    }
    else {
        // c'est une url relative: on la transforme
        return "http://".$serveur.$pathurlbase.$newurl[path];
    }
}

// fonction de réécriture des liens d'une page html insérée
function rewritelinks($pagehtml, $pageappelante){
    //return eregi_replace( "^< *href=([^>]*)>$", "<href=\"$pageappelante&amp;requestedurl=\\1 \"", $pagehtml);
    return eregi_replace( "href= *\"", "href=\"$pageappelante&amp;requestedurl=", $pagehtml);

}

// Fonction renvoyant trou si l'url passée est autorisée pour l'affichage et faulse sinon
function site_autorise($url){
    $retour = false;
    foreach ($GLOBALS['Authorized_sites'] as $unsite){
        if (ereg($unsite, $url)){$retour=true;break;}
    }
    return $retour;
}



Et puis j'ai un squelette spécifique pour browser:
browse.php
<?
if (!isset($requestedurl)){$requestedurl="http://adresse.par.defaut.com";};
$url=parse_url($requestedurl);
GetUrl($url[host],$url[path],$url[query],"",$page,$tete,"", "");

$page= filtrehtml($page);
$page =  rewritelinks($page, $PHP_SELF."?".eregi_replace("\&requestedurl.*", "",$argv[0]));
?>
<div align="right"><a href="<? echo $requestedurl; ?>" title="open" target="_blank"><font size="-3">Open this page in a new frame</font> </a></div>
  <?
echo $page;
                           
?>


Dans mes articles je met:
<browse http://www.blablabla.fr >

et j'ai un filtre que j'applique systématiquement:
function fl_browse($fl_txt){
    global $requestedurl;
    $fl_patern_in="|<browse([^>]*?)>|i";
    $fl_replace_in1="";
     if (preg_match($fl_patern_in, $fl_txt, $matches) ) {
        if (trim($matches[1])<>""){
            if (!isset($requestedurl)){
                $requestedurl=trim($matches[1]);
            }
        }
        $fl_txt = preg_replace($fl_patern_in, "$fl_replace_in1", $fl_txt);
        //$rechercher="<browse>";
        //if (strstr($fl_txt,$rechercher)!==false){
        $GLOBALS['flbrowse']=true;
        //$fl_txt = str_replace($rechercher, "", $fl_txt);
    }
    return $fl_txt;
}



Et dans mes squelettes j'ai:
<?
      if ($flbrowse){
      include("squelettes/browse.php");
 }
 ?>

Ouf... C'est un peu long je me rends compte !!!!

En espérant que ça peut aider...
Good luck

Francois Bernier wrote:
Raphael a écrit le 18/05/04 14:41 :
Bonjour, j'aimerais transférer un site xeistant sur SPIP il est-il possible de conserver mes pages déja fignolées en html et de les faire apparaitre via un document de type html (document non joint mais inséré) ? cela reviendrai par exemple a afficher mon document dans un div de mon squellete article ? possible, pas possible, comment ? Merci de vos suggestions Raphaël
Ne sachant pas si ça répond directement à ton besoin... dans: espace privée > édition du site > articles Tu as l'option "redirection" qui offre la possibilité de créer un article virtuel pointant vers une page déjà existante (tes pages html). Cet article sera référencée comme un "vrai" article dans ton site. Tu n'aurais pas ainsi à imbriquer tout ton matériel existant dans des squelettes. Tes pages restent cependant "statiques", non-modifiables par spip, seulement par ftp. Elles ne seront pas non plus affichées selon le squelette "article". (Je ne sais pas si le moteur de recherche reconnait leur contenu? Quelqu'un le sait-il?) Francois _______________________________________________ liste spip spip <at> rezo.net - désabonnement : spip-off <at> rezo.net Infos et archives : http://listes.rezo.net/mailman/listinfo/spip Documentation de SPIP : http://www.spip.net/ irc://irc.freenode.net/spip
<div>
Bon, j'ai fait quelque filtres permettant de faire &ccedil;a. En gros, j'ai
d&eacute;velopp&eacute; deux approches.<br><br>
1i&egrave;re solution: Faire un include des fichiers &agrave; ins&eacute;rer dans ta page.
Pour pouvoir faire &ccedil;a dans un filtre, il faut faire un <br>
premier filtre qui va chercher une balise sp&eacute;cifiant la page &agrave; inclure
(par ex &lt;inclure_fichier le_nom_du_fichier&gt; et r&eacute;cup&eacute;rer<br>
le nom du fichier dans une variable. Ensuite tu peux remplacer ta
balise par le contenu du fichier &agrave; l'aide de la fonction suivante:<br><br>
// fonction ins&eacute;rant le r&eacute;sulat de l'ex&eacute;cution d'un fichier php<br>
function my_include($filename){<br>
&nbsp;&nbsp;&nbsp; ob_start();&nbsp;&nbsp; &nbsp;&nbsp; // On bufferise l'output<br>
&nbsp;&nbsp;&nbsp; include($filename)&nbsp; ; &nbsp; // ici l'include va pas sur l'output mais
dans le buffer <br>
&nbsp;&nbsp;&nbsp; $retour = ob_get_contents();&nbsp;&nbsp;&nbsp; // on r&eacute;cup&egrave;re le contenu du buffer
dans une variable<br>
&nbsp;&nbsp;&nbsp; ob_end_clean();&nbsp; //&nbsp; on ferme et flush le buffer<br>
&nbsp;&nbsp;&nbsp; return $retour; // on renvoi le contenu du fichier<br>
}<br><br>
&Ccedil;a s'appelle comme &ccedil;a<br>
function mon_filtre($fl_txt){<br>
&nbsp;&nbsp;&nbsp; // On initialise<br>
&nbsp;&nbsp;&nbsp; $le_fichier_a_inclure = "" ;<br>
&nbsp;&nbsp;&nbsp; $fl_replace_in="";<br>
&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; // On va utiliser une expression r&eacute;guli&egrave;re pour parser la balise et
r&eacute;cup&eacute;rer l'adresse de la page &agrave; inclure<br>
&nbsp;&nbsp;&nbsp; $fl_patern_in="|&lt;inclure_fichier([^&gt;]*?)&gt;|i";<br>
&nbsp;&nbsp;&nbsp; // On traite que si la balise est pr&eacute;sente<br>
&nbsp;&nbsp;&nbsp; if (preg_match($fl_patern_in, $fl_txt, $matches) ) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; // Et que si une adresse est sp&eacute;cifi&eacute;e<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if (trim($matches[1])&lt;&gt;""){&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $le_fichier_a_inclure=trim($matches[1]);&nbsp; <br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $fl_replace_in1=  <at> my_include($le_fichier_a_inclure);&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; // ici, pour &ecirc;tre propre, il faut ajouter une fonction
qui extrait que ce qui est compris<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; // entre les balises &lt;body&gt; et &lt;/body&gt; de
ton fichier include. C'est la fonction filtrehtml.<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; // Au d&eacute;part, je prenais aussi les styles, mais c'est
trop risqu&eacute; si certains s'appellent comme <br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; // dans ton site "hote".<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; $fl_txt =&nbsp; filtrehtml($fl_txt);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; $fl_txt = preg_replace($fl_patern_in,
"$fl_replace_in1", $fl_txt);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }&nbsp; &nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; return $fl_txt;<br>
}<br><br><br>
function filtrehtml($pagehtml){<br>
&nbsp;&nbsp;&nbsp; if (eregi("&lt;
*body[^&gt;]*&gt;(.*)&lt;/body[^&gt;]*&gt;",$pagehtml,$regs)){<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $retour = $regs[1];<br>
&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; else {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $retour = $pagehtml;<br>
&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; return $retour;<br>
}<br><br><br><br>
Et dans la boucle article de ton squelette tu met qqchose comme <br>
[(#TEXTE|mon_filtre)]<br>
et il suffit alors dans le texte de tes articles de mettre
&lt;inclure_fichier mon_fichier.php&gt; ou &lt;inclure_fichier
/mon/chemin/mon_autre_fichier.html&gt;<br><br>
&Ccedil;a marche bien pour des pages sans liens entre elles (car sinon les
liens font sortir de ton site).<br><br><br>
2i&egrave;me solution: Une fonction qui ins&egrave;re, non pas un fichier, mais
carr&eacute;ment une page web lu sur n'importe quelle adresse.<br>
L&agrave;, j'ai la flemme de faire des commentaires, alors je livre en brut...
Saches seulement que &ccedil;a me permet de browser des <br>
r&eacute;pertoires depuis mon site et m&ecirc;me de faire apparaitre google dans mon
site... C'est encore en version b&eacute;ta.<br><br><br>
// Liste des sites autoris&eacute;s &agrave; &ecirc;tre affich&eacute;s dans le site:<br>
$GLOBALS['Authorized_sites']=array(&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <a class="moz-txt-link-rfc2396E" href="http://www.google.fr">"http://www.google.fr"</a>,<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <a class="moz-txt-link-rfc2396E" href="http://www.planck-hfi.org">"http://www.planck-hfi.org"</a>);<br><br><br><br><br><br>
/*<br>
***************** VO ********************≤br>
GetUrl v1.1<br>
Originally written by <a class="moz-txt-link-abbreviated" href="mailto:tahmer <at> free.fr">tahmer <at> free.fr</a><br>
Modified by <a class="moz-txt-link-abbreviated" href="mailto:legrand <at> iap.fr">legrand <at> iap.fr</a><br>
return: <br>
&nbsp;&nbsp;&nbsp; -1 cant connect<br>
&nbsp;&nbsp;&nbsp;&nbsp; 0 protocol error<br>
&nbsp;&nbsp;&nbsp;&nbsp; 1 ok<br>
mandatory parameters<br>
&nbsp;&nbsp;&nbsp; $hostwebserver (ie: "<a class="moz-txt-link-abbreviated" href="http://www.web.com">www.web.com</a>")<br>
&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; $urlin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; page beginning with "/"&nbsp; (ie: "/index.html")<br>
&nbsp;&nbsp;&nbsp; $fl_param parameter which have to be passed to the requested page<br>
&nbsp;&nbsp;&nbsp; $cookie&nbsp;&nbsp;&nbsp;&nbsp; list of cookie<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; syntax:&nbsp;&nbsp; [name=value [ ';' name=value]]<br>
&nbsp;&nbsp;&nbsp; ie:&nbsp;&nbsp; cookie1=v1<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; or<br>
&nbsp;&nbsp;&nbsp; cookie1=v1; cookie2=v2; ...<br><br>
output parameters<br>
&nbsp;&nbsp;&nbsp; $page(out)&nbsp;&nbsp; content of url<br>
&nbsp;&nbsp;&nbsp; $header(out) content of header<br>
&nbsp;&nbsp;&nbsp; <br>
&nbsp;optional&nbsp; parameters<br>
&nbsp;&nbsp;&nbsp; $fl_login &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; (login and password for basic .htaccess <br>
&nbsp;&nbsp;&nbsp; $fl_password &nbsp;&nbsp;&nbsp; &nbsp;authentification protected pages: "" if none )<br>
&nbsp;&nbsp;&nbsp; $fl_timeout&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Timeout for connection<br>
&nbsp;&nbsp;&nbsp; <br>
exemple:<br>
login on a web server<br>
the login process send a cookie "MagicNumber" witch is mandatory to<br>
access a database result page<br>
ps: cookie are sent by server in the header <br>
Set-Cookie: name=value;....<br>
$res=readurl("<a class="moz-txt-link-abbreviated" href="http://www.webserver.com">www.webserver.com</a>","/login.cgi?user_name=me&amp;password=mypass","",$page,$header);<br>
if ($res!=1) exit;<br>
$MagicNumber=0;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (preg_match("/Set-Cookie:\s+MagicNumber=(\d+)/i", $header,
$parts))<br>
&nbsp;&nbsp;&nbsp;&nbsp; $MagicNumber=$parts[1];<br>
if ($MagicNumber==0) exit;<br>
$res=readurl("<a class="moz-txt-link-abbreviated" href="http://www.webserver.com">www.webserver.com</a>","/result.cgi?query=my_query","MagicNumber=$MagicNumber",$page,$header);<br>
*/<br>
function GetUrl($host
,$urlin,$fl_param,$cookie,&amp;$page,&amp;$header,$fl_login="",
$fl_password="", $fl_timeout="20",$reecriturl="true",$servport="80"){<br><br>
if (site_autorise(<a class="moz-txt-link-rfc2396E" href="http://">"http://"</a>.$host.$urlin)){<br>
&nbsp;&nbsp;&nbsp; if ($fl_param==""){$url = $urlin;} else {$url =
$urlin."?".$fl_param;};<br>
&nbsp;&nbsp;&nbsp; $page="";<br>
&nbsp;&nbsp;&nbsp; $header="";<br>
&nbsp;&nbsp;&nbsp; $sock=fsockopen($host, $servport , $errno , $errstr, 30);<br>
&nbsp;&nbsp;&nbsp; if (!$sock) {echo "$errstr ($errno)&lt;br /&gt;\n";&nbsp; return -1;};<br>
&nbsp;&nbsp;&nbsp; //socket_set_timeout($sock, $fl_timeout); // this feature is not
supported by our php built<br>
&nbsp;&nbsp;&nbsp; $msg="GET $url HTTP/1.1";<br>
&nbsp;&nbsp;&nbsp; //$msg="GET / HTTP/1.1";<br>
&nbsp;&nbsp;&nbsp; if ($cookie!="") $msg.="\r\nCookie: $cookie";<br>
&nbsp;&nbsp;&nbsp; $msg.="\r\n"."Host: $host\r\nConnection: Close"."\r\n"."User-Agent:
".$_SERVER['HTTP_USER_AGENT']."\r\n";<br>
&nbsp;&nbsp;&nbsp; //$msg.="\r\n"."Host: $url\r\nConnection:
Keep-Alive"."\r\n"."User-Agent: ".$_SERVER["HTTP_USER_AGENT"]."\r\n";<br>
&nbsp;&nbsp;&nbsp; if ($fl_login) $msg.="Authorization: Basic
".base64_encode("$fl_login:$fl_password")."\r\n";<br>
&nbsp;&nbsp;&nbsp; $msg.="\r\n\r\nAccept: */* "; //, text/plain, image/*, */* ";<br>
&nbsp;&nbsp;&nbsp; $msg.="\r\n\r\n\r\n\r\n";<br>
&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; fputs($sock,$msg);<br>
&nbsp;&nbsp;&nbsp; $chunked=0;<br>
&nbsp;&nbsp;&nbsp; // read header<br>
&nbsp;&nbsp;&nbsp; while ($buffer=fgets($sock,4096)) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ($buffer=="\r\n") break;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $header.=$buffer;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (preg_match("/Transfer-Encoding:\s+(.+)\r\n/U", $buffer,
$parts))<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (strtoupper($parts[1])=="CHUNKED") $chunked=1;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; else echo "**???".$parts[1]."??\r\n";<br>
&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; if ($chunked==0) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; while ($buffer = fgets($sock, 4096)) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $buffer=fread($sock,4096);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $page.=$buffer;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; else {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; while ($buffer = fgets($sock, 4096)) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (!preg_match("/\s*([\dABCDEFabcdef]+)\s*\r\n/i",
$buffer, $parts)) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; echo "**chunk size not found : $buffer\r\n";<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return 0;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $size = (int)base_convert(strtoupper($parts[1]), 16, 10);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ($size==0) break;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $buffer=fread($sock,$size);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (strlen($buffer)!=$size) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; echo "**reading : $size\r\n";<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; echo "**readed : ".strlen($buffer)."\r\n";<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return 0;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $page.=$buffer;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //echo $buffer;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $buffer=fgets($sock,4096);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ($buffer!="\r\n") {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; echo "**CRLF not found : $buffer\r\n";<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return 0;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; if ($reecriturl=="true"){<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // On r&eacute;ecrit les URL en absolu<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // VOIR A UTILISER realpath ?<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // Les liens href = "bla bla" mais aussi &lt;href = bli.bli
&gt;<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $page = preg_replace( "|href= *\"\.(?!http:)([^\"]*)\"|i",
"href=\<a class="moz-txt-link-rfc2396E" href="http://">"http://"</a>.$host.dirname($urlin)."/\\1\"", $page);&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $page = preg_replace( "|href= *\"/(?!http:)([^\"]*)\"|i",
"href=\<a class="moz-txt-link-rfc2396E" href="http://">"http://"</a>.$host."/\\1\"", $page);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $page = preg_replace( "|href= *\"(?!http:)([^\"]*)\"|i",
"href=\<a class="moz-txt-link-rfc2396E" href="http://">"http://"</a>.$host.$urlin."\\1\"", $page);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $page = preg_replace( "|href=
*\.(?!\")(?!http:)([^&gt;]*)&gt;|i",
"href=\<a class="moz-txt-link-rfc2396E" href="http://">"http://"</a>.$host.dirname($urlin)."/\\1\"&gt;", $page);&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $page = preg_replace( "|href=
*(?!\")/(?!http:)([^&gt;]*)&gt;|i",
"href=\<a class="moz-txt-link-rfc2396E" href="http://">"http://"</a>.$host."/\\1\"&gt;", $page);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $page = preg_replace( "|href=
*(?!\")(?!http:)([^&gt;]*)&gt;|i",
"href=\<a class="moz-txt-link-rfc2396E" href="http://">"http://"</a>.$host.$urlin."\\1\"&gt;", $page);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // les images<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $page = preg_replace( "|src= *\"\.(?!http:)([^\"]*)\"|i",
"src=\<a class="moz-txt-link-rfc2396E" href="http://">"http://"</a>.$host.dirname($urlin)."/\\1\"", $page);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $page = preg_replace( "|src= *\"/(?!http:)([^\"]*)\"|i",
"src=\<a class="moz-txt-link-rfc2396E" href="http://">"http://"</a>.$host."/\\1\"", $page);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $page = preg_replace( "|src= *\"(?!http:)([^\"]*)\"|i",
"src=\<a class="moz-txt-link-rfc2396E" href="http://">"http://"</a>.$host.dirname($urlin)."/\\1\"", $page);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $page = preg_replace( "|src=
*\.(?!\")(?!http:)([^&gt;]*)&gt;|i",
"src=\<a class="moz-txt-link-rfc2396E" href="http://">"http://"</a>.$host.dirname($urlin)."/\\1\"&gt;", $page);&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $page = preg_replace( "|src=
*(?!\")/(?!http:)([^&gt;]*)&gt;|i", "src=\<a class="moz-txt-link-rfc2396E" href="http://">"http://"</a>.$host."/\\1\"&gt;",
$page);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $page = preg_replace( "|src=
*(?!\")(?!http:)([^&gt;]*)&gt;|i",
"src=\<a class="moz-txt-link-rfc2396E" href="http://">"http://"</a>.$host.dirname($urlin)."/\\1\"&gt;", $page);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp; les formulaires (risky !!!)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $page = preg_replace( "|form action=
*\"\.(?!http:)([^\"]*)\"|i", "form
action=\<a class="moz-txt-link-rfc2396E" href="http://">"http://"</a>.$host.dirname($urlin)."/\\1\"", $page);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $page = preg_replace( "|form action=
*\"/(?!http:)([^\"]*)\"|i", "form action=\<a class="moz-txt-link-rfc2396E" href="http://">"http://"</a>.$host."/\\1\"",
$page);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $page = preg_replace( "|form action=
*\"(?!http:)([^\"]*)\"|i", "form
action=\<a class="moz-txt-link-rfc2396E" href="http://">"http://"</a>.$host.dirname($urlin)."/\\1\"", $page);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $page = preg_replace( "|form action=
*\.(?!\")(?!http:)([^&gt;]*)&gt;|i", "form
action=\<a class="moz-txt-link-rfc2396E" href="http://">"http://"</a>.$host.dirname($urlin)."/\\1\"&gt;", $page);&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $page = preg_replace( "|form action=
*(?!\")/(?!http:)([^&gt;]*)&gt;|i", "form
action=\<a class="moz-txt-link-rfc2396E" href="http://">"http://"</a>.$host."/\\1\"&gt;", $page);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $page = preg_replace( "|form action=
*(?!\")(?!http:)([^&gt;]*)&gt;|i", "form
action=\<a class="moz-txt-link-rfc2396E" href="http://">"http://"</a>.$host.dirname($urlin)."/\\1\"&gt;", $page);<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; fclose($sock);<br>
&nbsp;&nbsp;&nbsp; return 1;<br>
}<br>
else{<br>
&nbsp;&nbsp;&nbsp; $page="You cannot display the requested url.";<br>
&nbsp;&nbsp;&nbsp; $header="";<br>
}<br>
}<br><br>
//fonction de calcul d'une url absolue<br>
function absurl($urlaanalyser, $serveur, $pathurlbase){<br>
&nbsp;&nbsp;&nbsp; $newurl= parse_url($urlaanalyser);<br>
&nbsp;&nbsp;&nbsp; echo "path = ".$newurl[path]." original=".$urlaanalyser;<br>
&nbsp;&nbsp;&nbsp; if (isset($newurl[scheme])) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // c'est une url absolue car http ou ftp est d&eacute;fini <br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return $urlaanalyser;<br>
&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; elseif (eregi("^/*",$urlaanalyser)){<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // Le chemin d&eacute;fini est absolu<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return <a class="moz-txt-link-rfc2396E" href="http://">"http://"</a>.$serveur.$newurl[path];<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; else {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // c'est une url relative: on la transforme<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return <a class="moz-txt-link-rfc2396E" href="http://">"http://"</a>.$serveur.$pathurlbase.$newurl[path];<br>
&nbsp;&nbsp;&nbsp; }<br>
}<br><br>
// fonction de r&eacute;&eacute;criture des liens d'une page html ins&eacute;r&eacute;e <br>
function rewritelinks($pagehtml, $pageappelante){<br>
&nbsp;&nbsp;&nbsp; //return eregi_replace( "^&lt; *href=([^&gt;]*)&gt;$",
"&lt;href=\"$pageappelante&amp;amp;requestedurl=\\1 \"", $pagehtml);<br>
&nbsp;&nbsp;&nbsp; return eregi_replace( "href= *\"",
"href=\"$pageappelante&amp;amp;requestedurl=", $pagehtml);<br><br>
}<br><br>
// Fonction renvoyant trou si l'url pass&eacute;e est autoris&eacute;e pour
l'affichage et faulse sinon<br>
function site_autorise($url){<br>
&nbsp;&nbsp;&nbsp; $retour = false;<br>
&nbsp;&nbsp;&nbsp; foreach ($GLOBALS['Authorized_sites'] as $unsite){<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (ereg($unsite, $url)){$retour=true;break;}<br>
&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; return $retour;<br>
}<br><br><br><br>
Et puis j'ai un squelette sp&eacute;cifique pour browser:<br>
browse.php<br>
&lt;?<br>
if
(!isset($requestedurl)){$requestedurl=<a class="moz-txt-link-rfc2396E" href="http://adresse.par.defaut.com">"http://adresse.par.defaut.com"</a>;};<br>
$url=parse_url($requestedurl);<br>
GetUrl($url[host],$url[path],$url[query],"",$page,$tete,"", "");<br><br>
$page= filtrehtml($page);<br>
$page =&nbsp; rewritelinks($page,
$PHP_SELF."?".eregi_replace("\&amp;requestedurl.*", "",$argv[0]));<br>
?&gt;<br>
&lt;div align="right"&gt;&lt;a href="&lt;? echo $requestedurl; ?&gt;"
title="open" target="_blank"&gt;&lt;font size="-3"&gt;Open this page in
a new frame&lt;/font&gt; &lt;/a&gt;&lt;/div&gt;<br>
&nbsp; &lt;?<br>
echo $page;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>
?&gt; <br><br><br>
Dans mes articles je met:<br>
&lt;browse <a class="moz-txt-link-freetext" href="http://www.blablabla.fr">http://www.blablabla.fr</a> &gt;<br><br>
et j'ai un filtre que j'applique syst&eacute;matiquement:<br>
function fl_browse($fl_txt){<br>
&nbsp;&nbsp;&nbsp; global $requestedurl;<br>
&nbsp;&nbsp;&nbsp; $fl_patern_in="|&lt;browse([^&gt;]*?)&gt;|i";<br>
&nbsp;&nbsp;&nbsp; $fl_replace_in1="";<br>
&nbsp;&nbsp;&nbsp;&nbsp; if (preg_match($fl_patern_in, $fl_txt, $matches) ) {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (trim($matches[1])&lt;&gt;""){<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (!isset($requestedurl)){<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $requestedurl=trim($matches[1]);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $fl_txt = preg_replace($fl_patern_in, "$fl_replace_in1",
$fl_txt);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //$rechercher="&lt;browse&gt;";<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //if (strstr($fl_txt,$rechercher)!==false){<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $GLOBALS['flbrowse']=true;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //$fl_txt = str_replace($rechercher, "", $fl_txt);<br>
&nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; return $fl_txt;<br>
}<br><br><br><br>
Et dans mes squelettes j'ai:<br>
&lt;?<br>
&nbsp;&nbsp;&nbsp; &nbsp; if ($flbrowse){<br>
&nbsp;&nbsp;&nbsp; &nbsp; include("squelettes/browse.php");<br>
&nbsp;}<br>
&nbsp;?&gt; <br><br>
Ouf... C'est un peu long je me rends compte !!!!<br><br>
En esp&eacute;rant que &ccedil;a peut aider...<br>
Good luck<br><br>
Francois Bernier wrote:<br><blockquote type="cite" cite="midBCCFF248.AFE3%25frankybee <at> sympatico.ca">
  Raphael a &eacute;crit le 18/05/04 14:41&nbsp;:

  
  <blockquote type="cite">
    Bonjour,

j'aimerais transf&eacute;rer un site xeistant sur SPIP
il est-il possible de conserver mes pages d&eacute;ja fignol&eacute;es en html et de les
faire apparaitre via un document de type html  (document non joint mais
ins&eacute;r&eacute;) ?
cela reviendrai par exemple a afficher mon document dans un div de mon
squellete article ?
possible, pas possible, comment ?

Merci de vos suggestions

Rapha&euml;l

  </blockquote>

Ne sachant pas si &ccedil;a r&eacute;pond directement &agrave; ton besoin...

dans: espace priv&eacute;e &gt; &eacute;dition du site &gt; articles

Tu as l'option "redirection" qui offre la possibilit&eacute; de cr&eacute;er un article
virtuel pointant vers une page d&eacute;j&agrave; existante (tes pages html).  Cet article
sera r&eacute;f&eacute;renc&eacute;e comme un "vrai" article dans ton site.  Tu n'aurais pas
ainsi &agrave; imbriquer tout ton mat&eacute;riel existant dans des squelettes.

Tes pages restent cependant "statiques", non-modifiables par spip, seulement
par ftp.  Elles ne seront pas non plus affich&eacute;es selon le squelette
"article".

(Je ne sais pas si le moteur de recherche reconnait leur contenu?  Quelqu'un
le sait-il?)

Francois

_______________________________________________
liste spip
<a class="moz-txt-link-abbreviated" href="mailto:spip <at> rezo.net">spip <at> rezo.net</a> - d&eacute;sabonnement : <a class="moz-txt-link-abbreviated" href="mailto:spip-off <at> rezo.net">spip-off <at> rezo.net</a>
Infos et archives : <a class="moz-txt-link-freetext" href="http://listes.rezo.net/mailman/listinfo/spip">http://listes.rezo.net/mailman/listinfo/spip</a>
Documentation de SPIP : <a class="moz-txt-link-freetext" href="http://www.spip.net/">http://www.spip.net/</a>
irc://irc.freenode.net/spip

</blockquote>
</div>