Dicton du 22 Novembre:
Pour Sainte-Cécile, chaque haricot en fait mille.

Télécharger
Noter:

Ajouté le 28/10/2015
Visionné 3475 fois

Convertir une chaine PHP pour l'url rewriting

Description

Cette fonction retourne n'importe quel chaine de caractère sans accent et sans caractère autre que des chiffre,lettres et -, elle vous permet de convertir une chaine en titre de sujet pour L'URL de votre site blog ou forum.

Sont utilisation est simple, voici un exemple:

Code source (PHP)

$MaChaine="À bientôt!";
$MaChaine=titre_url_rewrite($MaChaine);
echo $MaChaine;// a-bientot


Fonction titre_url_rewrite();


Code source (PHP)

function remplacerAccent($chaine) {//Fonctionne avec l'encodage ISO
$tofind = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ";
$replac = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn";
return(strtr($chaine,$tofind,$replac));
}
/* Si vous uitilisez l'encode UTF-8 pour votre site, utilisez la fonction de remplacement ci-dessous:
function remplacerAccent($chaine) {
$tofind = utf8_decode("ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ");
$replac = utf8_decode("AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn");
return(strtr(utf8_decode($chaine),$tofind,$replac));
}*/
function titre_url_rewrite($titre) {
$c = remplacerAccent($titre);//on commence par enlever les accents
$retour = "";//notre retour est pour le moment vide car on vérifier tous les caractères un par un
for($i=0;$i<=strlen($c)-1;$i++) {//on vérifie les caractères de la chaine
$caractere = strtolower(substr($c,$i,1));//on met le caractère en minuscule
$retour .= preg_match("#^[a-z0-9]+$#",$caractere) ? $caractere : "-";//si c'est un chiffre ou une lettre, on ajoute le caractère au retour, sinon on le converti en -
}
for($i=0;$i<=strlen($c)-1;$i++) {
$retour = str_replace("--","-",$retour); // on enlève les tiret successifs
}
$d = substr($retour,-1) == "-" ? substr($retour,0,-1) : $retour; // si le dernier caractère est un tiret, on le retire
$e = substr($d,0,1) == "-" ? substr($d,1) : $d; // si le premier caractère est un tiret, on le retire
return $e;//en fin, on retourne la chaine converti, prêt à être utiliser pour l'url rewriting !
}

Commentaires

slt bontuto maisb dans le .htaccess ont mais what?

Bonjour, merci, vous trouverez plein de tuto htaccess sur le net. En règle générale, on dit dans le htaccess:

RewriteEngine on
#et ensuite on écrit nos règles de réécriture, par exemple:
RewriteRule ^ma-page-php-en-html.html$ ma-page-php.php [L]

quand vous irez sur ma-page-php-en-html.html, en réalité ce sera la page ma-page-php.php qui sera affichée.

Si vous voulez que les paramètres dans l'URL soit pris en comptes, mettez les drapeaux suivant: QSA (pour "Query String Append"):
RewriteRule ^ma-page-php-en-html.html$ ma-page-php.php [L,QSA]

ok mais dans votre cas on fait jouez la fonction qui change un titre en caractere url mais comment le titre de la page peut etre apeler a la place d'un ID du titre dommage que votre tuto ne soit pas fini car la on peut apeler ca juste fonction de reecriture seulement.

Mon "tuto" est bel et bien fini, d'ailleurs si vous lisez le titre: "Convertir une chaine PHP pour l'url rewriting" il est nulle part dit que vous allez apprendre comment gérer un fichier htaccess
Comme dit dans le précédent message, QSA permet de prendre en compte les paramètres dans une URL. Exemple qui fonctionnera:

ma-page-php-en-html.html?param=variable

ok mais dans votre cas on fait jouez la fonction qui change un titre en caractere url mais comment le titre de la page peut etre apeler a la place d'un ID du titre dommage que votre tuto ne soit pas fini car la on peut apeler ca juste fonction de reecriture seulement.

Je vous le redit ce n'est pas le sujet de cet article, je paris qu'avec une bonne recherche sur internet vous trouverez aisément ce que vous cherchez.

Ajouter un commentaire

Pseudo/Nom *
Email *
Message *
La balise [code]Votre code...[/code] peut être utilisée


ATTENTION! Ce formulaire est exclusivement réservé aux commentaires
Pour toutes demandes d'aide, veuillez ajouter votre demande sur le forum svp

Captcha * huit + = 17

Les champs marqués d'un * sont obligatoires.

Retour à la liste des scripts

Flag Counter