Link rövidítése
Sziasztok!
Van egy n hosszúságú karakterláncom (kommentek), amit egy saját függvénnyel le rövidítek 80 karakter hosszúra. Tekintettel arra, hogy a rövidített szöveg egy oldalsó oszlopban van elhelyezve (legutolsó kommentek), nem engedhető meg, hogy értelmetlenül hosszú (szándékosan elnyújtott) szavak kerüljenek bele, egy
$comment_message = preg_replace('/(\w{20})/','\1 ',$comment_message);
sorral megspékeltem a kódot, így már minden megahosszú szóban a 20. karakter után beszúr egy szóközt. Ezzel meg is lenne oldva a probléma, viszont ha valaki egy hosszú webcímet ír a kommentbe, ez a megoldás nem a legmegfelelőbb. Ugyanis a egy hosszú url esetén - ami tele van / karakterekkel - külön szónak tekinti a két / jel közötti részeket is.
Például:
http://webcim.hu/000/00000/0000000000000000000000/0000/00000
Ebben az esetben csak a leghosszabb 0 sorba fogja beszúrni a szőközt, ugyanis a / jeleket úgy kezeli, mintha szóközök lennének, tehát az 5db 0 sor egyenként külön szavak, így a számolást nem a h betűtől kezdi, hanem a / jelek után mindig újrakezdve. Ez természetesen nem jó, mert a böngésző a / jelet nem szóköznek tekinti ezért nem is töri, így az oldal eléggé szét tud csúszni.
Tehát arra keresnék megoldást, hogy az egész webcímet egy szónak kezelje.
A segítségeteket előre is köszönöm!
■ Van egy n hosszúságú karakterláncom (kommentek), amit egy saját függvénnyel le rövidítek 80 karakter hosszúra. Tekintettel arra, hogy a rövidített szöveg egy oldalsó oszlopban van elhelyezve (legutolsó kommentek), nem engedhető meg, hogy értelmetlenül hosszú (szándékosan elnyújtott) szavak kerüljenek bele, egy
$comment_message = preg_replace('/(\w{20})/','\1 ',$comment_message);
sorral megspékeltem a kódot, így már minden megahosszú szóban a 20. karakter után beszúr egy szóközt. Ezzel meg is lenne oldva a probléma, viszont ha valaki egy hosszú webcímet ír a kommentbe, ez a megoldás nem a legmegfelelőbb. Ugyanis a egy hosszú url esetén - ami tele van / karakterekkel - külön szónak tekinti a két / jel közötti részeket is.
Például:
http://webcim.hu/000/00000/0000000000000000000000/0000/00000
Ebben az esetben csak a leghosszabb 0 sorba fogja beszúrni a szőközt, ugyanis a / jeleket úgy kezeli, mintha szóközök lennének, tehát az 5db 0 sor egyenként külön szavak, így a számolást nem a h betűtől kezdi, hanem a / jelek után mindig újrakezdve. Ez természetesen nem jó, mert a böngésző a / jelet nem szóköznek tekinti ezért nem is töri, így az oldal eléggé szét tud csúszni.
Tehát arra keresnék megoldást, hogy az egész webcímet egy szónak kezelje.
A segítségeteket előre is köszönöm!
Reguláris kifejezés
[^ \-]{20}
esetén minden 20 karakterre illeszkedik, ami nem szóköz vagy kötőjel.