Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Automatyczne Skracanie Linku, http://ww...stam/
oomaster
post 17.07.2008, 14:28:37
Post #1





Grupa: Zarejestrowani
Postów: 305
Pomógł: 3
Dołączył: 4.08.2006
Skąd: GDA

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
qba10
post 17.07.2008, 15:53:48
Post #2





Grupa: Zarejestrowani
Postów: 264
Pomógł: 20
Dołączył: 19.08.2007
Skąd: Bryńsk k. Lidzbarka Welskiego (nie mylić z Warmińskim)

Ostrzeżenie: (0%)
-----


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. ?>


--------------------
Qbix Media Project - Prosty Multiplatformowy Odtwarzacz Muzyki
Go to the top of the page
+Quote Post
legorek
post 17.07.2008, 16:30:37
Post #3





Grupa: Zarejestrowani
Postów: 411
Pomógł: 35
Dołączył: 27.06.2004
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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. ?>


Ten post edytował legorek 17.07.2008, 16:31:18


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.04.2024 - 09:01