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

WRInaute accro
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:
 
WRInaute accro
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 ;)
 
WRInaute impliqué
function supprime_accents ($chaine) {
$a = "àáâãäåòóôõöøèéêëçìíîïùúûüÿñABCDEFGHIJKLMNOPQRSTUVWXYZ";
$b = "aaaaaaooooooeeeeciiiiuuuuynabcdefghijklmnopqrstuvwxyz";
return (strtr($chaine, $a, $b));
}

edit : Pas assez rapide ;-) j'ecris nettement moins vite ;-)
 
WRInaute passionné
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:
 
WRInaute accro
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 />';
}
 
WRInaute accro
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
 
WRInaute accro
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
 
WRInaute passionné
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.
 
WRInaute accro
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.
 
WRInaute accro
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
 
Discussions similaires
Haut