)(.*)(<\/body>)/iUs',$ascruter, $recherche);
$contenu = $recherche [2];
return $contenu;
}
function cree_article($titre,$texte,$adresse,$id_rub,$auteur,$id_mot)
//Insère un nouvel article dans Spip.
{
$url_site = $adresse;
$nom_site = $titre;
//article
$sql = "INSERT INTO spip_articles (titre, texte, id_rubrique , nom_site, url_site, statut, date, chapo)
VALUES ('".addslashes($titre)."','".addslashes($texte)."','$id_rub','".addslashes($nom_site)."','".addslashes($url_site)."', 'prepa',NOW())";
$result = spip_query($sql);
$id_article=spip_insert_id();
// auteur
$sql = "INSERT INTO spip_auteurs_articles (id_auteur, id_article) VALUES (" . $auteur . ", " . $id_article . ")";
$result = spip_query($sql);
// mot-clé
$sql = "INSERT INTO spip_mots_articles (id_mot, id_article) VALUES (" . $id_mot . ", " . $id_article . ")";
$result = spip_query($sql);
echo("L'article n°".$id_article." (titre : ".$titre." ) est dans la base de Spip !
");
return true;
}
function modifie_texte ($texte,$url)
//modifie le texte de l'article afin qu'il soit mieux lisible
//en remplaçant du HTML par des raccourcis Spip, et en remplaçant les
//url relatives en url absolues (permet aux liens de fonctionner et aux
//images de s'afficher
{
$texte=preg_replace('/src=\"(.*?)\"/ie',"url_absolues('\$1','".$url."', 'src=\"')",$texte);
$texte=preg_replace('/href=\"(.*?)\"/ie',"url_absolues('\$1','".$url."','href=\"')",$texte);
$texte=preg_replace('/href=\".*\" onClick=\".*\(\'(http:\/\/.*)\'.*\"/iUs',"href=\"\$1\"",$texte); //pour les pages pénibles dans lesquelles il y a du jscript pour ouvrir des liens (en plus c'est idiot...)
$texte=html_entity_decode($texte); //plus lisble avec les caractères accentués et ligaturés normaux, non ?
$texte=html_to_spip($texte);
$texte=preg_replace('/(.*)<\/a>/iUs',"[\$2->\$1]",$texte);
return $texte;
}
function url_absolues($rel,$url,$rajout)
//transforme des URL relatives en absolues
//trouvée ici: http://www.web-max.ca/PHP/misc_24.php
// et nulle part ailleurs, licence ???
{
$com = InternetCombineURL($url,$rel);
$com= $rajout.$com.'"';
return $com;
}
function InternetCombineURL($absolute,$relative)
{
$p = parse_url($relative);
if($p["scheme"])return $relative;
extract(parse_url($absolute));
$path = dirname($path);
if($relative{0} == '/') {
$cparts = array_filter(explode("/", $relative));
}
else {
$aparts = array_filter(explode("/", $path));
$rparts = array_filter(explode("/", $relative));
$cparts = array_merge($aparts, $rparts);
foreach($cparts as $i => $part) {
if($part == '.') {
$cparts[$i] = null;
}
if($part == '..') {
$cparts[$i - 1] = null;
$cparts[$i] = null;
}
}
$cparts = array_filter($cparts);
}
$path = implode("/", $cparts);
$url = "";
if($scheme) {
$url = "$scheme://";
}
if($user) {
$url .= "$user";
if($pass) {
$url .= ":$pass";
}
$url .= "@";
}
if($host) {
$url .= "$host/";
}
$url .= $path;
return $url;
}
function html_to_spip ($pagehtml)
//remplace du HTML par des raccourcis Spip
{
//définition des correspondances entre HTML et raccourcis typo de Spip
$balisetypo = array (
"b\b" => "{{",
"/b" => "}}",
"i\b" => "{",
"/i" => "}",
"strong" => "{{",
"/strong" => "}}",
"em" => "{",
"/em" => "}",
"h\d" => "\n{{{",
"/h\d" => "}}}\n",
"p" => " ",
"/p" => "\n\n",
);
//
// sélectionne les couplets balise-raccourci typo pour la fonction remplacebalise
// puis les envoie à la fonction
//
$texte=$pagehtml;
$texte = preg_replace ('/
/i', "\n_ ", $texte);
$texte = preg_replace ('/ /i', " ", $texte);
do
{
$nombalise=key($balisetypo);
$raccourcitypoouvert=current($balisetypo);
next ($balisetypo);
$raccourcitypoferme=current($balisetypo);
$texte=remplacebalise ($nombalise, $raccourcitypoouvert, $raccourcitypoferme, $texte);
}
while (next ($balisetypo));
return $texte;
}
function remplacebalise ($nombalise, $raccourcitypoouvert, $raccourcitypoferme, $ascruter)
{
$pattern = "/<".$nombalise.".*?>(.*?)<\/".$nombalise.">/si";
$replace = $raccourcitypoouvert."\$1".$raccourcitypoferme;
$textemodifie = preg_replace ($pattern, $replace, $ascruter);
return $textemodifie;
}
function nettoiehtml ($anetoyer)
//nettoie une page web avec Tidy: désactivé car non fonctionnel chez moi
{
$tidy = tidy_parse_string($anetoyer);
tidy_clean_repair($tidy);
return $tidy;
}
?>