cannot redeclare same fonction avec url rewriting....

  • Auteur de la discussion Auteur de la discussion bibiyanki
  • Date de début Date de début
WRInaute occasionnel
bonjour:

j'ai un gros soucis avec mes news et l'url rewriting.

je veux afficher une liste de news avec pour chacune l'url rewriting toto-va_à_la_plage.html

j'utilise un code qui marche quand on a une news mais si on en a deux, c'est la catastrophe!

le voici
Code:
         <?php
function pomme($chaine)
{    
   $chaine=strtolower($chaine);
   
   $accents = Array("/é/", "/è/", "/ê/","/ë/", "/ç/", "/à/", "/â/","/á/","/ä/","/ã/","/å/", "/î/", "/ï/", "/í/", "/ì/", "/ù/", "/ô/", "/ò/", "/ó/", "/ö/");
   $sans = Array("e", "e", "e", "e", "c", "a", "a","a", "a","a", "a", "i", "i", "i", "i", "u", "o", "o", "o", "o");
   
   $chaine = preg_replace($accents, $sans,$chaine);  
   $chaine = preg_replace('#[^A-Za-z0-9]#','-',$chaine);

   // Remplace les tirets multiples par un tiret unique
   $chaine = ereg_replace( "\-+", '-', $chaine );
   // Supprime le dernier caractère si c'est un tiret
   $chaine = rtrim( $chaine, '-' );

   while (strpos($chaine,'--') !== false) $chaine = str_replace('--','-',$chaine);
   
   return $chaine; 
}
?>
<table style="width:100%;">
<tr>
  <td bgcolor="<?php echo(($i++ % 2 == 0) ? '#fcde14' : '#802625' ); ?>">
   <h4 align="center"><a href="./news-<?php echo pomme($donnees['titre']);?>-<?php echo $donnees['id'];?>.php"><?php echo $donnees['titre'];?></a></h4>
  </td>
</tr>
</table>

j'ai utilisé dans mon titre un point d'interrogation, peut être est cela le problème ?

merci d'avance pour vos réponses
 
WRInaute passionné
C'est surement pas lié au '?' car il est remplacé par un '-'.

si ton code contient deux fois la déclaration d'une même fonction c'est normal que tu aies l'erreur 'cannot redeclare same fonction'.
 
WRInaute impliqué
Te fatigues pas et essaye cette fonction :
Code:
// Fonction mise en forme URL
function Mise_en_forme_URL($URL, $type)
	{
		$URL = strtr($URL,"ÀÁÄÂÃÅÇÉÈËÊÌÍÎÏÑÒÓÖÔÕØÙÛÚÜÛÝŸàáäâãåçéèêëìíîïñòóöôõøùúûüýÿ","AAAAAACEEEEIIIINOOOOOOUUUUUYYaaaaaaceeeeiiiinoooooouuuuyy");
		$URL = strtolower($URL));// On met en minuscule
		if ($type == "1")
			{
				//On supprime les mots de liaison
				$liste_mots = "l|le|la|les|un|une|des|de|du|d|c|s|m|et|en|au|aux|ou|son|sa|ses|ces|ce|ca|ci|si|a";
				$replace = "-";
				$URL = preg_replace('`\b('.$liste_mots.')[sx]?\b`si',$replace, $URL);
			}
		$URL = preg_replace('#[^a-z0-9-]|[…,!?.;:“’”\’\'"&+@_]#','-',$URL);// On remplace par un tiret les caractères non alphanumerique
		$URL = preg_replace('#[-]+#','-',$URL);// Supprime tirets multiples
		$URL = preg_replace('#^[-]|[-]$#','',$URL);// Supprime tiret début et fin de phrase
		$URL = preg_replace('#[\s]+#', ' ', $URL);// Supprime espaces multiples
		$URL = preg_replace('#^[\s]|[\s]$#','',$URL); // Supprime espace début et fin de phrase
		return $URL;
	}
 
WRInaute occasionnel
c'est gentil les gars :)

j'ai trouvé comment faire comme un grand
en faite j'ai foutu ma fonction (pomme) dans un fichier php (config.php) et je l'appelle une fois <?php include_once ('config.php') ;?>


par contre j'ai un souci de conversion des caractères et je sais pas trop quel fichier changer...
 
Haut