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


Ohax
WRInaute accro
WRInaute accro
 
Messages: 6406
Inscription: 5 Juil 2004

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

Message le Dim Nov 13, 2005 16:05

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:

dmathieu
Modérateur
Modérateur
 
Messages: 7244
Inscription: 9 Jan 2004

Message le Dim Nov 13, 2005 16:09

Code: Tout sélectionner
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 ;)

rtb
WRInaute passionné
WRInaute passionné
 
Messages: 1065
Inscription: 14 Nov 2004

Message le Dim Nov 13, 2005 16:14

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

edit : Pas assez rapide ;-) j'ecris nettement moins vite ;-)


Ohax
WRInaute accro
WRInaute accro
 
Messages: 6406
Inscription: 5 Juil 2004

Message le Dim Nov 13, 2005 16:16

Désolé je n'ai pas été assè précis

je voudrait faire ça directemment dans la base de donnée


Borower
WRInaute passionné
WRInaute passionné
 
Messages: 2151
Inscription: 18 Avr 2005

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

Message le Dim Nov 13, 2005 16:21

Ohax a écrit: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:

dmathieu
Modérateur
Modérateur
 
Messages: 7244
Inscription: 9 Jan 2004

Message le Dim Nov 13, 2005 16:22

Code: Tout sélectionner
$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 />';
}


Ohax
WRInaute accro
WRInaute accro
 
Messages: 6406
Inscription: 5 Juil 2004

Message le Dim Nov 13, 2005 16:23

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


Ohax
WRInaute accro
WRInaute accro
 
Messages: 6406
Inscription: 5 Juil 2004

Message le Dim Nov 13, 2005 16:24

KaZhaR a écrit:
Code: Tout sélectionner
$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


Borower
WRInaute passionné
WRInaute passionné
 
Messages: 2151
Inscription: 18 Avr 2005

Message le Dim Nov 13, 2005 16:30

Ohax a écrit:
KaZhaR a écrit:
Code: Tout sélectionner
$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.

dmathieu
Modérateur
Modérateur
 
Messages: 7244
Inscription: 9 Jan 2004

Message le Dim Nov 13, 2005 16:31

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.


Ohax
WRInaute accro
WRInaute accro
 
Messages: 6406
Inscription: 5 Juil 2004

Message le Dim Nov 13, 2005 16:31

Je croit que quelqu'un vous a devancé lol

http://www.fire-soft-board.com/fsb/suje ... 9275#39275


Ohax
WRInaute accro
WRInaute accro
 
Messages: 6406
Inscription: 5 Juil 2004

Message le Dim Nov 13, 2005 18:46

Erfff ça n'a pas fonctionné


pourtant j'ai fait ceci :


Code: Tout sélectionner
<?

$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


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités