Support phpbb ! Remplacer les caractères dans les titres !

Bonjour,

bon désolé je sait que ce n'est pas trop l'endroit mais j'aurait besoin d'un service :-)


il me faudrait un script qui me permette de remplacer les caractères

áâàäéêèëíîìïóôòöúûùüýçñ

dans le titre de mes post PHBB

par

aaaaeeeeiiiioooouuuuycn




La personne qui saura me faire ça assé rapidemment aura droit à un lien dans le footer des archives d'adojeunz : http://www.adojeunz.com/index.php3

C'est à dire quelques milliers de backlinks google :oops:
 
Code:
function formaturl($url) {
$in = array('á', 'â', 'à', 'ä', 'é', 'ê', 'è', 'ë', 'í', 'î', 'ì', 'ï', 'ó', 'ô', 'ò', 'ö', 'ú', 'û', 'ù', 'ü', 'ý', 'ç', 'ñ');

$out = array('a', 'a', 'a', 'a', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i', 'o', 'o', 'o', 'o', 'u', 'u', 'u', 'u', 'y', 'c', 'n');

return str_replace($in, $out, $url); 
}

vu la simplicité de la chose, je me passerai des liens ;)
 
function supprime_accents ($chaine) {
$a = "àáâãäåòóôõöøèéêëçìíîïùúûüÿñABCDEFGHIJKLMNOPQRSTUVWXYZ";
$b = "aaaaaaooooooeeeeciiiiuuuuynabcdefghijklmnopqrstuvwxyz";
return (strtr($chaine, $a, $b));
}

edit : Pas assez rapide ;-) j'ecris nettement moins vite ;-)
 
Re: Support phpbb ! Remplacer les caractères dans les titres

Ohax a dit:
La personne qui saura me faire ça assé rapidemment aura droit à un lien dans le footer des archives d'adojeunz
C'est parce que la page marche pas que tu propose un lien sur celle ci :?: :wink:
 
Code:
$sql = "SELECT `identifiant`, `champ` FROM `table`;";
$query = mysql_query($sql) or die(mysql_error());

while ($fetch = mysql_fetch_array($query)) {
	$sql2 = "UPDATE `table`
	SET `champ` = '".formaturl($fetch['champ'])."'
	WHERE `identifiant` = '".$fetch['identifiant']."';";
	$query2 = mysql_query($sql2) or die(mysql_error());
	echo $fetch['champ'].' modifié<br />';
}
 
Je suis en train de tester des solutions pour résoudre mon problème

depuis la mise à jour de phpbb il y a des problèmes d'url rewriting que je n'ai su résoudre
 
KaZhaR a dit:
Code:
$sql = "SELECT `identifiant`, `champ` FROM `table`;";
$query = mysql_query($sql) or die(mysql_error());

while ($fetch = mysql_fetch_array($query)) {
	$sql2 = "UPDATE `table`
	SET `champ` = '".formaturl($fetch['champ'])."'
	WHERE `identifiant` = '".$fetch['identifiant']."';";
	$query2 = mysql_query($sql2) or die(mysql_error());
	echo $fetch['champ'].' modifié<br />';
}

Concrêtemment ça donne quoi ? :lol:

Je suis un gros noob en matière de base de donnée
 
Ohax a dit:
KaZhaR a dit:
Code:
$sql = "SELECT `identifiant`, `champ` FROM `table`;";
$query = mysql_query($sql) or die(mysql_error());

while ($fetch = mysql_fetch_array($query)) {
	$sql2 = "UPDATE `table`
	SET `champ` = '".formaturl($fetch['champ'])."'
	WHERE `identifiant` = '".$fetch['identifiant']."';";
	$query2 = mysql_query($sql2) or die(mysql_error());
	echo $fetch['champ'].' modifié<br />';
}

Concrêtemment ça donne quoi ? :lol:

Je suis un gros noob en matière de base de donnée

Si j'ai bien compris faut que tu utilise la fonction formaturl donné dans le premier message.

$fetch['champ'] est la valeur $url

C'est tout ce que je peux te dire.
 
concretement, il faut que tu modifie les noms des champs, je ne connais pas les noms des tiens

mais, ca va parcourir toute ta base de données, et pour chaque entrée, ca va modifier le champ de ton choix, en y applicant la fonction formaturl donnée plus haut.
 
Erfff ça n'a pas fonctionné


pourtant j'ai fait ceci :


Code:
<?

$hotebdd = "localhost"; $userbdd = "***"; $passbdd = "***"; $tablebdd = "***";
mysql_connect($hotebdd,$userbdd,$passbdd) or die("erreur de connexion au serveur ".$host.": ".mysql_error());
mysql_select_db($tablebdd) or die("erreur de connexion a la base de donnees: ".mysql_error());
$anciens = array('á', 'â', 'à', 'ä', 'é', 'ê', 'è', 'ë', 'í', 'î', 'ì', 'ï', 'ó', 'ô', 'ò', 'ö', 'ú', 'û', 'ù', 'ü', 'ý', 'ç', 'ñ');
$nouveau = array('a', 'a', 'a', 'a', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i', 'o', 'o', 'o', 'o', 'u', 'u', 'u', 'u', 'y', 'c', 'n');
$resq = "SELECT post_id, post_subject FROM `phpbb_posts_text`";
$effectuer = mysql_query($resq);
while ($liste = mysql_fetch_row($effectuer)) {
  $nouvtitre = str_replace($anciens, $nouveau, $liste[1]);
  $resqcorr = "UPDATE `phpbb_posts_text` SET post_subject = '".$nouvtitre."' WHERE post_id = ".$liste[0]." LIMIT 1";
  $correction = mysql_query($resqcorr);
}
mysql_close();

?>


Le script a pourtant bien tourné,

j'ai fait un top sur le serveur pour vérifier l'état des ressources pendant l'execution et mysql tournait bien autour de 60%


Personne n'a d'idée ?

merci d'avance :D
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut