CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[PHP] Réecrire une URL trop longue

Scorpio07
Scorpio07
Niveau 7
09 janvier 2006 à 21:59:19

Je me demandai comment je pourrai réecrire une url trop longue pour la rétrécir...

Dans le but de pouvoir éviter que des liens trop longs, insérer sur un forum par exemple, fassent des pages à rallonge au niveau horizontale...
(En fait comme c´est le cas sur ce forum par exemple ^^)

Je cherche sur google, mais je n´ai pas encore trouver de bon site qui explique comment faire.
Une piste serait le "Regex" ?

Si quelqu´un peu donner des indications, je l´en serait très reconnaissant :-)

alexx-038
alexx-038
Niveau 10
09 janvier 2006 à 22:06:53

Je crois que c´est du url writing

dr34m
dr34m
Niveau 5
09 janvier 2006 à 22:14:29

http://www.conceptik.com/phpxtrem/index_44_43.htm

:D

Scorpio07
Scorpio07
Niveau 7
09 janvier 2006 à 22:39:24

Oui j´étais tombé aussi sur l´url rewriting mais c´est pas exactement ce que je cherche.

Votre truc c´est pour par exemple réecrire une adresse "news.php?id=4" en "news_4.htm".

Moi ce que je souhaiterais pouvoir faire c´est réecrire une adresse par exemple http://www.aaaaaaaaaaaaaa.com en http://www.aaa[...] (et que le lien fonctionne toujours après évidemment :-)

Merci tout de même pour vos réponses, le lien cité me sera quand même utile ;- )

Yoda_Software
Yoda_Software
Niveau 30
09 janvier 2006 à 23:52:56

:gne:

Yoda_Software
Yoda_Software
Niveau 30
10 janvier 2006 à 00:50:52

Ah ! je crois que je viens de comprendre !

Ce que tu veux, c´est qu´à l´affichage, l´url apparaisse comme http://www.aaaaa[...].com, mais que si on clique dessus, ça renvoie vers http://www.aaaaaaaaaaaaaaa.com ! C´est ça ?

Si c´est le cas, c´est uniquement la partie qui se trouve entre <a href=....> et </a> qui doit être raccourcie.
Ce qu´il faut c´est utiliser la fonction substr_replace().
Essaye ça :
<?php
$url = "http://www.aaaaaaaaaaaaaaaaaaaa.com";
$longMax = 25;
echo "<a href=\"" . $url . "\">" . substr_replace($url, "[...]" . strrchr($url, "."), strlen($url) - ($longMax - 6)) . "</a>\n";
?>

MathieuN7
MathieuN7
Niveau 10
10 janvier 2006 à 13:02:30

personnellement je ferais ça avec des regex, mais jsuis fan des regex dont pas très objectif... :rire:

Yoda_Software
Yoda_Software
Niveau 30
10 janvier 2006 à 14:42:48

Je ne connais pas les regex, tu peux me donner ta méthode ?

MathieuN7
MathieuN7
Niveau 10
10 janvier 2006 à 17:04:45

Pfff c´est compliqué à expliquer Yoda ! :rire2:

Tiens, je te passe un lien qui explique beaucoup mieux que je ne le ferais:
[ http://www.siteduzero.com/tuto-3-168-1-les-expressions-regulieres-partie-1-2.html ]
:-)))

Yoda_Software
Yoda_Software
Niveau 30
10 janvier 2006 à 18:31:22

Ah ! Ok !
Effectivement je connais, mais je ne m´en suis pas encore servit, même si c´est prévu !

Par contre ce que je voudrais, c´est que tu me donne le code qui permette de faire la même chose, c´est à dire dans le cas présent, limiter à 25 caractères, en conservant l´extension et en remplaçant le texte en trop par [...].
C´est juste pour voir qu´elle est la méthode la plus simple ! :ok:

Yoda_Software
Yoda_Software
Niveau 30
10 janvier 2006 à 19:20:36

Par contre, je ne sais toujours pas si ce que j´ai donné correspond à ce que voulais Scorpio07 ! :question:

deepblue
deepblue
Niveau 16
10 janvier 2006 à 19:31:34

pour les regex, je conseille vivement http://www.expreg.com/

Yoda_Software
Yoda_Software
Niveau 30
10 janvier 2006 à 19:39:40

Je ne suis pas sûr que les regex soit la meilleure méthode dans le cas présent, car il ne s´agit pas seulement de remplacer certains caractères par d´autres, il faut aussi raccourcir la chaîne.

deepblue
deepblue
Niveau 16
10 janvier 2006 à 20:08:59

les regex ne font pas que remplacer ^^

Yoda_Software
Yoda_Software
Niveau 30
10 janvier 2006 à 20:16:46

J´avais suivi le cours du site du zér0 et je ne me souviens pas avoir lu quelque chose permettant de faire ce que voulais Scorpio07.

Je ne suis pas un spécialiste, loin de là, je ne demande qu´à voir, à apprendre, donne moi ta méthode, ça m´intéresse :ok:

Neo71
Neo71
Niveau 9
10 janvier 2006 à 20:26:24

Les expressions régulieres permettent de faire à peu près tout en ce qui concerne le traitement de chaines.

La ce qui lui faut c´est une qui extrait les différents éléments d´une balise A, pour pouvoir en réécrire une nouvelle avec un contenu plus court. Je pense qu´il doit pouvoir en trouver des toutes pretes sur le net

Scorpio07
Scorpio07
Niveau 7
10 janvier 2006 à 20:29:49

Lol que de réactions ^^

En effet dans le mille Yoda, c´est bien ce que je voulais faire (enfin tente de faire).

Je vais regarder ta méthode, faut juste que j´arrive à extraire cette chaîne "url" hors d´un texte plus grand.

Mais pour les regex, je ne savais pas non plus que ça permettait de faire ce genre de chose.

Yoda_Software
Yoda_Software
Niveau 30
10 janvier 2006 à 21:14:14

Petit correctif à ce que j´ai donné, ça ne fonctionnais pas avec des URL de longueur différente.
J´ai testé avec 2 ou 3 URL, ça a l´air de fonctionner, sauf s´il y´a des paramètres (enfin, ça fonctionne, mais ce qui est affiché est dégueulasse).

<?php
$url = "http://www.aaaaaaaaaaaaaaaaaaaa.com";
$longMax = 25;
echo <a href=\"" . $url . "\">" . substr_replace($url, "[...]" . strrchr($url, "."), ($longMax - (strlen($url) - strrpos($url, ".") + 5))) . "</a>";
?>

Il suffit de modifier la valeur de $longMax pour définir la longueur de l´URL à afficher.

Yoda_Software
Yoda_Software
Niveau 30
10 janvier 2006 à 21:18:39

En fait, JV doit utiliser plus ou moins la même méthode que moi, mis à part la longueur max qu´ils ont définie à 45 caractères, car ils obtiennent les même résultat que moi avec les URL que j´ai testé, y compris avec passage de paramètres.

MathieuN7
MathieuN7
Niveau 10
10 janvier 2006 à 22:21:10

Ah exact Yoda, excuse moi !

J´ai confondu avec le fait de chercher une URL pour la transformer en lien... :honte:

J´en ai tellement ch*é pour implanter ça sur la ptite tribune de mon site, ça m´a traumatisé ! :rire:

Je me rappelle avoir fait ce que veux faire Scorpio, quand on faisait un truc en commun avec freedix. Mais j´ai oublié la méthode...

Sorry !

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment