Retrouvée sur mon disque dur :
<?php
/* *******************************************************************
SPIPLIB -- ensemble de fonctions pratiques pour SPIP/PHP
Ecrire à <spip@atlas.bok.net> ; cette version = 0.0.2 30/05/2000
***************************************************************** */
// si on a déjà été chargé, on ne fait rien
if ( ! $spip_lib ) {
$spip_lib = 1;
/* *******************************************************************
On déclare ici les variables globales qui devront ensuite passer
dans un fichier spip_config.inc */
$spip_table_ouvre = "<P align='center'><TABLE CELLPADDING=4><TR><TD ALIGN='center' BGCOLOR='#DDDDDD'>";
$spip_table_ferme = "</TABLE><P>";
$spip_table_element = "<TR><TD ALIGN='center' BGCOLOR='#DDDDDD'>";
$spip_table_fin_element = "</TR>";
$spip_table_case = "<TD ALIGN='center' BGCOLOR='#DDDDDD'>";
$spip_li = '<BR><IMG SRC="/img/triangle.gif" ALT=">" WIDTH=8 HEIGHT=7 ALIGN=bottom> ';
/* *******************************************************************
PROPRE : cette fonction est destinée à prendre un texte simple
dans un formulaire web et de le nettoyer, tout en assurant un
minimum de formatage avec des règles simples */
function propre($letexte){
global
$spip_table_ouvre,
$spip_table_ferme,
$spip_table_element,
$spip_table_fin_element,
$spip_table_case,
$spip_li ;
// sauts de ligne
$letexte=ereg_replace("\r","\n",$letexte);
// tirets long
$letexte = ereg_replace("-","-",$letexte);
$letexte = ereg_replace("&emdash;","-",$letexte);
$letexte = ereg_replace("&endash;","-",$letexte);
// espace dur (a revoir | ici un espace "dur"
// V à coder en ascii
$letexte = ereg_replace(" ","~",$letexte);
$letexte = ereg_replace(" ","~",$letexte);
// guillemets
$letexte = ereg_replace("«","«",$letexte);
$letexte = ereg_replace("»","»",$letexte);
$letexte = ereg_replace(""","\"",$letexte);
$letexte = ereg_replace(""","\"",$letexte);
// caracteres non-ISO ou échappés (PAS CLAIR les guillemets)
$letexte = ereg_replace("…","...",$letexte);
$letexte = ereg_replace("œ","oe",$letexte);
$letexte = ereg_replace("\'","'",$letexte); // ?
$letexte = ereg_replace("\'","'",$letexte); // ?
$letexte = ereg_replace('\\\"',"\"",$letexte); // ?
$letexte = ereg_replace('\\\\\'',"'",$letexte); // ?
// tableau
if (ereg("\n\n\|",$letexte)){
$letexte = ereg_replace("\n\n\n\|",$spip_table_ouvre,$letexte);
$letexte = ereg_replace("\|\n\n\n","|".$spip_table_ferme,$letexte);
$letexte = ereg_replace("\n\|",$spip_table_element,$letexte);
$letexte = ereg_replace("\|\n",$spip_table_fin_element,$letexte);
$letexte = ereg_replace("\|",$spip_table_case,$letexte);
}
// paragraphe
$letexte = ereg_replace("(\n( *)){3,}","<P>\n",$letexte);
// les sauts de ligne inutiles en fin de texte
/* Arno : explique-moi comment il peut rester du \r dans la variable ? */
$letexte = ereg_replace("([\r]*[\n]*)*$","",$letexte);
// liste d'items
$letexte = ereg_replace("--",$spip_li,$letexte);
$letexte = ereg_replace("^-",$spip_li,$letexte);
$letexte = ereg_replace("\n-",$spip_li,$letexte);
// typo
$letexte = ereg_replace("\n\{(.{1,2})\}","\n<B><font size=6>\\1</font></B>",$letexte);
$letexte = ereg_replace("\{\{\{","<H4>",$letexte);
$letexte = ereg_replace("\}\}\}","</H4>",$letexte);
$letexte = ereg_replace("\{\{","<B>",$letexte);
$letexte = ereg_replace("\}\}","</B>",$letexte);
$letexte = ereg_replace("\{","<I>",$letexte);
$letexte = ereg_replace("\}","</I>",$letexte);
/* attention il peut y avoir des ~ dans les URLS */
$letexte = ereg_replace("[ ~]*([:;!?»%])","~\\1",$letexte);
$letexte = ereg_replace("([«])[ ~]*","\\1~",$letexte);
$letexte = ereg_replace("(~+)"," ",$letexte);
// **** bizarrerie ? ****
$letexte = ereg_replace("¥([^¥]*)¥","<B>\\1</B>",$letexte);
// lien sans URL apparente [ Mot -> http://... ]
$letexte = ereg_replace("\[([^\[]*)->([^\[]*)\]","<A HREF='\\2' target='new'>\\1</A>",$letexte);
// lien sur URL
$letexte = ereg_replace("(http|ftp|mailto) ://","\\1://",$letexte);
$letexte = ereg_replace("(<BR>){2,}","<P>",$letexte);
$letexte = ereg_replace("<P>(<BR>){1,}","<P>",$letexte);
return $letexte;
}
/* *******************************************************************
SUPGUILL : supprime les guillemets ajoutes par Excel(tm)
et contourne le probleme des <A href> interpretes par Excel (tm)
en utilisant { et } comme caractères de rechange ; très utile
lorsqu'on utilise des tableaux texte/tabulation en guise de
petites bases de données */
function supguill ($reg)
{
$reg = ereg_replace( "(\"\t|\t\"|\"\t\")","\t",$reg);
$reg = ereg_replace( "\"$","",$reg);
$reg = ereg_replace( "\"\n","\n",$reg);
$reg = ereg_replace( "^\"","",$reg);
$reg = ereg_replace( "\"\"","\"",$reg);
$reg = ereg_replace( "\{","<",$reg);
$reg = ereg_replace( "\}",">",$reg);
$reg = ereg_replace( "\'","'",$reg);
$reg = ereg_replace(""","“",$reg);
$reg = ereg_replace(""","”",$reg);
$reg = ereg_replace("…","...",$reg);
return $reg;
}
/* *******************************************************************
FUSIONURL : prend un URL de base et un lien, et les mixe.
Exemple : si $url = "http://serveur/dossier/ ;
$lien = "http://autre-serveur" -> inchangé
$lien = "/autredossier" -> "http://serveur/autredossier
$lien = "sousdossier" -> "http://serveur/dossier/soudossier" */
function fusionurl($url, $lien) {
if (eregi("^mailto:",$lien,$regs)){
return $lien;
}else{
$liene = parse_url($lien);
if ($liene[host]) return($lien);
$ure = parse_url($url);
if ($ure[port]) $ure[port]=":".$ure[port];
if (substr($liene[path],0,1)=="/") { return($ure[scheme]."://".$ure[host].$ure[port].$liene[path].$liene[query].$liene[fragment]); } else
{ return($ure[scheme]."://".$ure[host].$ure[port].$ure[path]."/".$liene[path].$liene[query]); };
}
}
/* *******************************************************************
AFFDATE : prend une date sous un des formats suivants et retourne
sa valeur en français (ou anglais si deuxieme para="en").
19/01/72 ; 1972-01-19 ; 2000-07
peut affecter $spip_date_de : pour faire, par exemple,
$date_francais = affdate ($date);
print "les données ".$spip_date_de.$date_francais ;
> les données d'août 2000 / les données de juillet 2000 */
function affdate($numdate,$lang="fr") {
global
$spip_date_de;
if (ereg("([0-9]{1,2})\/([0-9]{1,2})\/([0-9]{1,2})",$numdate,$regs)){
$mois = $regs[2];
$jour = $regs[1];
$annee = $regs[3];
// si Excel (tm) se mêle des dates, il faut les démêler
if ($annee < 90){
$annee = 2000 +$annee;
} else {
$annee = 1900+$annee ;
}
$datevue = 3;
} elseif (ereg("([0-9]{4})-([0-9]{2})-([0-9]{2})",$numdate,$regs)){
$mois=$regs[2];
$jour=$regs[3];
$annee=$regs[1];
$datevue = 3;
} elseif (ereg("([0-9]{4})-([0-9]{2})",$numdate,$regs)){
$mois=$regs[2];
$annee=$regs[1];
$datevue = 2;
}
if (substr($jour,0,1)=="0") $jour=substr($jour,1,1);
if (($lang == "") || ($lang =="fr")){
if (strcmp($jour,"1")==0) $jour="1er";
if ($jour) $jour .= " ";
if ($mois==1) {$mois="janvier"; $spip_date_de="de ";}
if ($mois==2) {$mois="février"; $spip_date_de="de ";}
if ($mois==3) {$mois="mars"; $spip_date_de="de ";}
if ($mois==4) {$mois="avril"; $spip_date_de="d'";}
if ($mois==5) {$mois="mai"; $spip_date_de="de ";}
if ($mois==6) {$mois="juin"; $spip_date_de="de ";}
if ($mois==7) {$mois="juillet"; $spip_date_de="de ";}
if ($mois==8) {$mois="août"; $spip_date_de="d'";}
if ($mois==9) {$mois="septembre"; $spip_date_de="de ";}
if ($mois==10){$mois="octobre"; $spip_date_de="d'";}
if ($mois==11){$mois="novembre"; $spip_date_de="de ";}
if ($mois==12){$mois="décembre"; $spip_date_de="de ";}
} elseif ($lang == "en"){
if (strcmp($jour,"1")==0) $jour="1st";
if ($jour) $jour .= " ";
if ($mois==1) {$mois="January";}
if ($mois==2) {$mois="February";}
if ($mois==3) {$mois="March";}
if ($mois==4) {$mois="April";}
if ($mois==5) {$mois="May";}
if ($mois==6) {$mois="June";}
if ($mois==7) {$mois="July";}
if ($mois==8) {$mois="August";}
if ($mois==9) {$mois="September";}
if ($mois==10){$mois="October";}
if ($mois==11){$mois="November";}
if ($mois==12){$mois="December";}
}
if ($datevue){
$res=sprintf("%s%s %s",$jour,$mois,$annee);
return $res;
}
}
/* *******************************************************************
MAJUSCULES : passe un texte en majuscules y compris les accents */
function majuscules($texte){
$texte=htmlentities($texte);
$texte=strtoupper($texte);
$texte=eregi_replace("\&","&",$texte);
$texte=eregi_replace("\&(.)acute;","&\\1acute;",$texte);
$texte=eregi_replace("\&(.)circ;","&\\1circ;",$texte);
$texte=eregi_replace("\&(.)grave;","&\\1grave;",$texte);
$texte=eregi_replace("\&(.)uml;","&\\1uml;",$texte);
return $texte;
}
// fin de la librairie
}
/* ******************************************************************* */
?>
Messages
11 octobre 2008, 19:38, par BoOz
Héhé, super cette embryon de SPIP.
Depuis on a quelques fichiers de plus pour tout ca...
4 novembre 2008, 11:20, par LPG
Tu continues à faire le ménage à ce que je vois ;)