Skocz do zawartości

ucina zbyt długie linki :/


michal1986

Rekomendowane odpowiedzi

mam pytanie odnośnie kody php znajdującego się w systemie newsów PS News

jest problem, gdy dodaje w newsie za długi link, wtedy po kliknięciu w link otwiera sie w nowym oknie pusta strona bo w adresie jest dodatkowa spacja, która wszystko komplikuje.

znalazłem w pliku "functions.php" takie coś:

<?php
function pscode($string){
//formatowanie
$string = preg_replace("'[b](.*)[/b]'si","<b>1</b>", $string);
$string = preg_replace("'[i](.*)[/i]'si","<i>1</i>", $string);
$string = preg_replace("'[u](.*)[/u]'si","<u>1</u>", $string);
$string = preg_replace("'[center](.*)[/center]'si","<center>1</center>", $string);
$string = preg_replace("'[color=([a-zA-Z1-9#(),]*)](.*)[/color]'si", "<font color=\"1\">2</font>",$string);
//obrazek 
$string = preg_replace("'[img=([0-9a-zA-Z~`!@#$%^&-_=+|/:;]*)]'si","<img src=\"1\" border=0>", $string);
//url'e
$string = preg_replace("'[url]([a-zA-Z0-9-_.]*)[/url]'si","<a href=\"https://1\" target=\"_blank\">1</a>", $string);
$string = preg_replace("'[url]([a-zA-Z]*://[a-zA-Z0-9._-]*)
												[/url]'si","<a href=\"1\" target=\"_blank\">1</a>", $string);
$string = preg_replace("'[url]([a-zA-Z._-]*[@]{1}[a-zA-Z0-9.-_]*){1}
												[/url]'si","<a href=\"mailto:1\">1</a>", $string);
$string = preg_replace("'[url=([a-zA-Z._-]*[@]{1}[a-zA-Z0-9.-_]*)]([a-zA-Z0-9.]*)
												[/url]'si", "<a href=\"mailto:1\">2</a>", $string);
$string = preg_replace("'[url=([a-zA-Z0-9-_.]*)]([a-zA-Z0-9.]*)
												[/url]'si", "<a href=\"https://1\" target=\"_blank\">2</a>", $string);
$string = preg_replace("'[url=([a-zA-Z]*://[a-zA-Z0-9.]*)]([a-zA-Z0-9.]*)
												[/url]'si", "<a href=\"1\" target=\"_blank\">2</a>", $string);

//na wypadek, gdyby za wcześnie ucięło string'a
$string = preg_replace("'[b](.*)'si","<b>1</b>", $string);
$string = preg_replace("'[i](.*)'si","<i>1</i>", $string);
$string = preg_replace("'[u](.*)'si","<u>1</u>", $string);
$string = preg_replace("'[center](.*)'si","<center>1</center>", $string);
$string = preg_replace("'[img]([0-9a-zA-Z~`!@#$%^&-_=+|/:;]*)'si","<img src=\"1\" border=0>", $string);
$string = preg_replace("'[color=([a-zA-Z1-9#(),]*)](.*)'si", "<font color=\"1\">2</font>",$string);
?>

nie znam sie na php, ale moim zdaniem pod komentarzem "na wypadek, gdyby za wcześnie ucięło string'a" powinien być jeszcze kod dotyczący URL-a... niestety nie mam pojęcia jak on powinien wyglądać.

to samo dotyczy linków w komentarzach, jak ktoś wklei http-jakis-link-do-strony.html to ten tekst nie jest linkiem, a w środku jest spacja, której nie powinno być, mi już nie zależy na tych komentarzach, ale żeby w newsach można było dać normalnie działającego linka...

Proszę o pomoc.

Odnośnik do komentarza
Udostępnij na innych stronach

Siema.

Odpuść sobie plik functions.php

Otwórz plik show.php i znajdź takie linie:

$news[1] = wordwrap($news[1], 50, " ", 1);
$news[2] = wordwrap($news[2], 50, " ", 1);

Występują dwa razy - raz do wyświetlania newsa, drugi raz do newsa z komentarzem.

Teraz masz do wyboru - albo je zakomentuj, albo wartość 50 zmień na większą.

Linki Ci teraz nie działają, bo po 50 znakach system wstawia w nie spację :P

Po tej modyfikacji problem zniknie.

Pozdrawiam.

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności