Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Automatyczne Skracanie Linku
Forum PHP.pl > Forum > Przedszkole
oomaster
Witam,

Czytałem troszkę na forum o tym temacie i wydobyłem ciekawy skrypt niestety lekko jest wadliwy i postanowiłem go naprawić ale nie mogę jakoś.

  1. <?
  2. $link= $_GET["id"];
  3. if (strlen($link)<20) {
  4. echo ((!$link) ? '' : '<a href="'.$link.'">'.$link.'</a><br/>');
  5. } else {
  6. $transform = '<a href="'.$link.'">'.substr($link, 0, (strpos($link, "?")+10)).'...'.substr($link, strlen($link/3), (strpos($link, "?")-1)).'</a>';
  7. echo $transform;
  8. }
  9. ?>


Na początek skrypt sprawdza ile znaków ma link jeśli mniej niż 20 to wyświetla link normalnie jeśli ma więcej niż 20 to skrypt obrabia link. Skrypt zostawia pierwsze 10 znaków i tu działa dobrze potem są ... (kropki) i na koniec postanowiłem zastosować mały algorytm ale nie działa otóż skrypt ucina na końcu 1 znak i w środku ucina tyle znaków:
LICZNA ZNAKÓW / 3 = liczba uciętych znaków" title="Zobacz w manualu PHP" target="_manual i tu skrypt nie działa bo ucina 1 znak w środku dlaczego ?

Czy ktoś może pomóc a tu jest przykład:
Link Normalnie: http://www.onetooo.pl/fff/ffff/fff
Link po obróbce w skrypcie: http://www...ttp://www.onetooo.pl/fff/ffff/ff
qba10
może ten skrypt ci pomoże:

  1. <?php
  2. function autolink($str){
  3. $lnk=$str[3];
  4. if(strlen($lnk)>30){
  5. if(substr($lnk,0,3)=='www'){$l=9;}else{$l=5;}
  6. $lnk=substr($lnk,0,$l).'(...)'.substr($lnk,strlen($lnk)-8);}
  7. return ' <a href="'.$str[2].'://'.$str[3].'" target="_blank">'.$str[2].'://'.$lnk.'</a>';}
  8. ?>
legorek
Hej, nie wiem czy dobrze zrozumiałem ale zobacz sobie funkcję substr_replace" title="Zobacz w manualu PHP" target="_manual
  1. <?php
  2. $strona = 'www.bardzo-dlugi-adres-ktorego-nie-chcesz-wyswietlac/piwo.php';
  3. echo substr_replace($strona, '[...]', 10, -8); // Da w efekcie: www.bardzo[...]piwo.php
  4. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.