<?php
/* On part d'une chaine de caractère contenant des liens */
$lien_base = 'Les adresses <a href="tutoriaux/index.php">Tutoriaux PHP France</a> et <a href="forums/index.php">Les forums de PHPFrance</a> ont en apparence les mêmes formes, mais celle-ci, <a href="http://www.lumadis.be/regex/test_regex.php">une lien vers ailleurs</a>, a une forme différente et sa forme n\'est pas remplacée.';
$masque = '#(<a\shref=")(\w*/)#';
$ajout = 'http://www.phpfrance.com/';
$remplacement = '$1'.$ajout.'$2';
$nouvelle = preg_replace($masque, $remplacement, $lien_base);
echo("<p>". $nouvelle ."</p>\n");
?>
C'est incomplet, mais selon les formes que tu as indiquées, ça fonctionne très bien. Exécute ce code et affiche le dans une page: regarde ensuite le code source html généré.Code : Tout sélectionner
function pdf_propre($texte) {
$trans = get_html_translation_table(HTML_ENTITIES);
$trans = array_flip($trans);
$trans["<br />\n"] = "<BR>";
$trans["œ"] = "oe";
$trans["…"] = "...";
$trans["’"] = "'";
$trans["–"] = "-";
$trans["‘"] = "'";
$trans["“"] = "\"";
$trans["”"] = "\"";
$trans["û"] = "û";
$texte = strtr($texte, $trans);
$texte = ereg_replace("\"", "\\\"", $texte);
$texte = ereg_replace("( | )+", " ", $texte);
$masque = '#(<a\shref=")(\w*/)#';
$ajout = 'http://www.phpfrance.com/';
$remplacement = '$1'.$ajout.'$2';
$texte = preg_replace($masque, $remplacement, $texte);
return $texte;
}<?php
$trans = get_html_translation_table(HTML_ENTITIES);
?>
<pre>
<?php
var_dump($trans);
?>
</pre>Code : Tout sélectionner
function pdf_first_clean($texte) {
// $texte = ereg_replace("<p class[^>]*>", "<P>", $texte);
//Translation des codes iso
// PB avec l'utilisation de <code>
// $trans = get_html_translation_table(HTML_ENTITIES);
// $trans = array_flip($trans);
$trans = get_html_translation_table(HTML_ENTITIES);
$trans = array_flip($trans);
$trans["<br />\n"] = "<BR>";
$trans["œ"] = "oe";
$trans["…"] = "...";
$trans["’"] = "'";
$trans["–"] = "-";
$trans["‘"] = "'";
$trans["“"] = "\"";
$trans["”"] = "\"";
$trans["û"] = "û";
$texte = strtr($texte, $trans);
// Echappement des "
$texte = ereg_replace("\"", "\\\"", $texte);
// Traitement des Espaces
$texte = ereg_replace("( | )+", " ", $texte);
return $texte;
}Code : Tout sélectionner
<?php
/* On part d'une chaine de caractère contenant des liens */
$lien_base = '<a href="Systemes-financiers-decentralises.html">Lien interne ne fonctionnant pas</a><br><a href="tutoriaux/index.php">Tutoriaux PHP France</a><br><a href="forums/index.php">Les forums de PHPFrance</a><br><a href="http://www.lumadis.be/regex/test_regex.php">une lien vers ailleurs</a>';
$masque = '#(<a\shref=")(\w*/)#';
$ajout = 'http://peupleso.1formatik.com/CIDR/';
$remplacement = '$1'.$ajout.'$2';
$nouvelle = preg_replace($masque, $remplacement, $lien_base);
echo("<p>". $nouvelle ."</p>\n");
?><?php
/* On part d'une chaine de caractère contenant des liens */
$lien_base = '<a href="Systemes-financiers-decentralises.html">Lien interne ne fonctionnant pas</a><br>
<a href="tutoriaux/index.php">Tutoriaux PHP France</a><br>
<a href="forums/index.php">Les forums de PHPFrance</a><br>
<a href="www.phpfrance.com/forums/index.php">Les forums de PHPFrance</a><br>
<a href="http://www.lumadis.be/regex/test_regex.php">une lien vers ailleurs</a>';
$masque = '#(<a\shref=")(\w*/?[^(http:|www\.)])#i';
$ajout = 'http://www.phpfrance.com/';
$remplacement = '$1'.$ajout.'$2';
$nouvelle = preg_replace($masque, $remplacement, $lien_base);
echo("<p>". $nouvelle ."</p>\n");
?>
Tu noteras que j'ai même ajouté un autre lien de test.<?php
function pdf_propre($texte) {
$trans = get_html_translation_table(HTML_ENTITIES);
$trans = array_flip($trans);
$trans["<br />\n"] = "<BR>";
$trans["œ"] = "oe";
$trans["…"] = "...";
$trans["’"] = "'";
$trans["–"] = "-";
$trans["‘"] = "'";
$trans["“"] = "\"";
$trans["”"] = "\"";
$trans["û"] = "û";
$texte = strtr($texte, $trans);
$texte = ereg_replace("\"", "\\\"", $texte);
$texte = ereg_replace("( | )+", " ", $texte);
$masque = '#(<a\shref=")(\w*/?[^(http:|www\.)])#i';
$ajout = 'http://www.phpfrance.com/';
$remplacement = '$1'.$ajout.'$2';
$texte = preg_replace($masque, $remplacement, $texte);
return $texte;
}
$texte = '<a href="Systemes-financiers-decentralises.html">Lien interne ne fonctionnant pas</a><br>
<a href="tutoriaux/index.php">Tutoriaux PHP France</a><br>
<a href="forums/index.php">Les forums de PHPFrance</a><br>
<a href="www.phpfrance.com/forums/index.php">Les forums de PHPFrance</a><br>
<a href="http://www.lumadis.be/regex/test_regex.php">une lien vers ailleurs</a>';
$texte = pdf_propre($texte);
echo("<p>". $texte ."</p>\n");
?>
En fait c'est dans un fichier lorsque quelqu'un clique sur générer l'article au format pdf que les url doivent être absolues mais je dois aussi traiter le code html avant de générer le pdf, donc je voulais appliquer au texte une fonction qui fasse les deux.
Gni ?En fait c'est dans un fichier lorsque quelqu'un clique sur générer l'article au format pdf que les url doivent être absolues mais je dois aussi traiter le code html avant de générer le pdf, donc je voulais appliquer au texte une fonction qui fasse les deux.