Convertir texte pour URL en PHP [Résolu]

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par michel.leonard, 8 Mai 2012.

  1. michel.leonard
    michel.leonard WRInaute occasionnel
    Inscrit:
    1 Juin 2010
    Messages:
    366
    J'aime reçus:
    0
    Salut, je partage avec vous une petite fonction qui prend en charge l'intégralité des caractères ASCII et les convertis en un texte sans accent, en supprimant les mots d'une taille inférieure à $TAILLE_MINI, les mots d'une taille supérieure à $TAILLE_MAXI, en tronquant le texte à $NOMBRE_MOTS mots et en prenant pour séparateur $SEPARATEUR.

    PS: même le signe € est transformé en euro :p

    Voici le code :

    PHP:
    <span class="syntaxdefault">function texte_pour_url</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$a</span><span class="syntaxkeyword">)<br />{<br /></span><span class="syntaxdefault">$TAILLE_MINI</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">$TAILLE_MAXI</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">26</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">$NOMBRE_MOTS</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">15</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">$SEPARATEUR</span><span class="syntaxkeyword">=</span><span class="syntaxstring">'-'</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">$c</span><span class="syntaxkeyword">=</span><span class="syntaxstring">'AAAAAAAAAEEAAEAAAAAAAAAAAAAAAAAAEEEEEEEEEEEEEEEE0123456789EEEEEEEabcdefghijklmnopqrstuvwxyzEEEEEEabcdefghijklmnopqrstuvwxyzEEEEEBEEEEEEEEEsECEEEEEEEEEEEEEsECEzyEiEEEEEEEEEEEEEEEE23EEEEEEEEEEEEaaaaaaDceeeeiiiidnoooooxouuuuypEaaaaaaDceeeeiiiionoooooEouuuuyEyE'</span><span class="syntaxkeyword">;</span><span class="syntaxdefault">$d</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">strlen</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$a</span><span class="syntaxkeyword">);</span><span class="syntaxdefault">for </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$i </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> 0</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> $i </span><span class="syntaxkeyword"><</span><span class="syntaxdefault"> $d</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> $i</span><span class="syntaxkeyword">++)</span><span class="syntaxdefault"> $e</span><span class="syntaxkeyword">.=</span><span class="syntaxdefault">$c</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">ord</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$a</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">$i</span><span class="syntaxkeyword">])];</span><span class="syntaxdefault">$e</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">str_replace</span><span class="syntaxkeyword">(array(</span><span class="syntaxstring">'A'</span><span class="syntaxkeyword">,</span><span class="syntaxstring">'B'</span><span class="syntaxkeyword">,</span><span class="syntaxstring">'C'</span><span class="syntaxkeyword">,</span><span class="syntaxstring">'D'</span><span class="syntaxkeyword">,</span><span class="syntaxstring">'E'</span><span class="syntaxkeyword">),array(</span><span class="syntaxstring">''</span><span class="syntaxkeyword">,</span><span class="syntaxstring">' euro '</span><span class="syntaxkeyword">,</span><span class="syntaxstring">'oe'</span><span class="syntaxkeyword">,</span><span class="syntaxstring">'ae'</span><span class="syntaxkeyword">,</span><span class="syntaxstring">' '</span><span class="syntaxkeyword">),</span><span class="syntaxdefault">$e</span><span class="syntaxkeyword">);</span><span class="syntaxdefault">$e</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">preg_replace</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'#\s+#'</span><span class="syntaxkeyword">,</span><span class="syntaxstring">' '</span><span class="syntaxkeyword">,</span><span class="syntaxstring">$e "</span><span class="syntaxkeyword">);</span><span class="syntaxdefault">$e</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">preg_replace</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'#\s[a-z]{1,'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$TAILLE_MINI</span><span class="syntaxkeyword">.</span><span class="syntaxstring">'}\s([a-z]{1,'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$TAILLE_MINI</span><span class="syntaxkeyword">.</span><span class="syntaxstring">'}\s)*#'</span><span class="syntaxkeyword">,</span><span class="syntaxstring">' '</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">$e</span><span class="syntaxkeyword">);</span><span class="syntaxdefault">$e</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">preg_replace</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'#\s[a-z0-9]{'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$TAILLE_MAXI</span><span class="syntaxkeyword">.</span><span class="syntaxstring">',}\s([a-z0-9]{'</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">$TAILLE_MAXI</span><span class="syntaxkeyword">.</span><span class="syntaxstring">',}\s)*#'</span><span class="syntaxkeyword">,</span><span class="syntaxstring">' '</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">$e</span><span class="syntaxkeyword">);</span><span class="syntaxdefault">$e</span><span class="syntaxkeyword">=</span><span class="syntaxdefault">str_word_count</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$e</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> 1</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">'0123456789'</span><span class="syntaxkeyword">);</span><span class="syntaxdefault">return implode</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$SEPARATEUR</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">array_slice</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$e</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">0</span><span class="syntaxkeyword">,</span><span class="syntaxdefault">$NOMBRE_MOTS</span><span class="syntaxkeyword">));}</span><span class="syntaxdefault"> </span>
    Pour l'utiliser :

    PHP:
    <span class="syntaxdefault">echo texte_pour_url</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'La conversion est lancée dès que vous nous soumettez l’adresse de la vidéo, ensuite il vous suffira de télécharger le mp3 que nous aurons créé. A la différence d’autres services, l’intégralité du processus de conversion est effectué au sein de notre infrastructure, vous n’avez qu’à télécharger le fichier audio alors stocké sur nos serveurs.'</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxcomment">//retourne : conversion-est-lancee-des-que-vous-nous-soumettez-adresse-video-ensuite-vous-suffira-telecharger-mp3   &nbsp;</span><span class="syntaxdefault"></span>
     
  2. iLuc
    iLuc WRInaute discret
    Inscrit:
    14 Avril 2009
    Messages:
    114
    J'aime reçus:
    0
    Merci pour le partage, ta fonction est intéressante. ;-)

    Ça tombe pile-poil que je dois mettre au point le rewrite de mon annuaire. ;-)
    Je pense qu'il y a moyen de la simplifier un peu.

    Luc
     
  3. michel.leonard
    michel.leonard WRInaute occasionnel
    Inscrit:
    1 Juin 2010
    Messages:
    366
    J'aime reçus:
    0
    si tu peux la simplifier, tiens moi au courant, car il n'y a aucun extras...
     
  4. michel.leonard
    michel.leonard WRInaute occasionnel
    Inscrit:
    1 Juin 2010
    Messages:
    366
    J'aime reçus:
    0
    tu peux remplacer les variables par leurs valeurs directement dans la fonction, c'est une simplification possible. La seule à mon sens...

    Encore un exemple

    PHP:
    <span class="syntaxdefault"></span><span class="syntaxkeyword">echo&nbsp;</span><span class="syntaxdefault">texte_pour_url</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'#~&nbsp;Le&nbsp;Curriculum&nbsp;vitæ&nbsp;du&nbsp;cœur&nbsp;à&nbsp;1€&nbsp;?!'</span><span class="syntaxkeyword">);<br /><br /></span><span class="syntaxcomment">//&nbsp;retourne&nbsp;curriculum-vitae-coeur-1-euro&nbsp;</span><span class="syntaxdefault"></span>
     
Chargement...
Similar Threads - Convertir PHP [Résolu] Forum Date
Convertire Punbb 1.2 en PHPBB Développement d'un site Web ou d'une appli mobile 26 Mars 2009
Qqun a til déjà réussi a convertir son phpbb2 vers phpbb3 si oui comment Débuter en référencement 20 Janvier 2009
Convertir forum fluxBB en phpBB Développement d'un site Web ou d'une appli mobile 4 Novembre 2008
Astuce RewriteMap : convertir un .dbm.pag en txt ? Débuter en référencement 8 Juillet 2019
Lien rompu pour convertir un profil en page Facebook ? Facebook 28 Décembre 2015
[Aide] convertir balise <iframe> en <object> Développement d'un site Web ou d'une appli mobile 10 Septembre 2015
Convertir ses pages web en pdf pour traduction ou correction Développement d'un site Web ou d'une appli mobile 12 Juillet 2015
convertir chaine en date Développement d'un site Web ou d'une appli mobile 16 Avril 2014
HTML5 convertir page web ISO en UTF-8 Développement d'un site Web ou d'une appli mobile 25 Juillet 2013
img src=blob: comment convertir en fichier? Développement d'un site Web ou d'une appli mobile 26 Juin 2013
  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice