IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Couper un lien trop long


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 43
    Par défaut Couper un lien trop long
    Salut,
    J'aimerai savoir comment faire pour couper un lien quand celui-ci est trop long ?

    Par exemple, mon code est <a href="http://mon-lien-trop-long/">mon-lien-trop-long</a>.
    Comme il est trop long, je voudrais le transformer en <a href="http://mon-lien-trop-long/">mon(...)op-long</a>

    Bon ceci est un exemple mais vous vous comprenez ce que je cherche à faire.
    J'imagine qu'il faut utiliser les fonctions substr, etc ?
    Si vous pouviez me dire comment faire ?

  2. #2
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    tu testes avec strlen si le lien est suprieur à une taille donnée
    puis tu assemble partie gauche + partie droite de ton lien avec substr
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $nb_gauche = 20;
    $nb_droite  = 10;
    $substitut = "(...)";
     
    if (strlen($lien_trop_long) > (strlen($substitut) + $nb_gauche + $nb_droit)) {
       $lien_raccourcis = substr($lien_trop_long, 0, $nb_gauche) . $substitut . substr($lien_trop_long, (0-$nb_droite));
    }
    ...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 43
    Par défaut
    Je me réponds à moi-même pour dire que j'ai trouvé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $lien = '<a href="http://mon-lien-trop-long/">mon-lien-trop-long</a>' ;
     
    $affich = substr($lien,strpos($lien,">")+1,strrpos($lien,"<")) ;
     
    // si le lien a plus de 30 caractères, on le coupe
    if(strlen($affich) > "30") { $affich = substr_replace($affich,'(...)',5,10) ; $lien = substr_replace($lien,$affich,strpos($lien,">")+1,strrpos($lien,"<")) ; } else {}
     
    echo $lien ;

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 43
    Par défaut
    Ah, par-contre y'avait un truc que j'avais pas prévu...

    Mes liens sont dans une table avec un Mediumtext. Ce qui fait qu'ils sont les uns à la suite des autres et que par conséquent, je ne peux pas modifier chaque lien un par un...

  5. #5
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    utilise les expressions regulières http://www.expreg.com

  6. #6
    Membre éprouvé
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Par défaut
    He bein tu récupères tous les liens dans une variable $var grace à explode() (Donc il faut un même caractères les séparent, comme une virgule). Et dans une bouche tu executes ce script pour le nombre de liens count($var)

Discussions similaires

  1. [AC-2010] Liens trop long dans ma base.
    Par fab.85 dans le forum Access
    Réponses: 2
    Dernier message: 22/01/2012, 16h01
  2. Comment couper les mots trop longs
    Par marcello2 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 0
    Dernier message: 09/06/2009, 09h00
  3. Couper un texte trop long
    Par cirano dans le forum Contribuez / Téléchargez Sources et Outils
    Réponses: 1
    Dernier message: 10/01/2008, 14h06
  4. [Conversion]Comment faire pour couper un Double trop long?
    Par dessinateurttuyen dans le forum Général Java
    Réponses: 1
    Dernier message: 13/11/2005, 03h22
  5. Erreur de lien un peu trop long...
    Par babemagus dans le forum MFC
    Réponses: 2
    Dernier message: 14/06/2005, 11h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo