Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Automatyczna zmiana linku + wykreślanie klikniętego
Forum PHP.pl > Forum > Przedszkole
gunner294
Witam, nie znam się za dobrze na PHP a potrzebny mi jest taki skrypt, który zamieni mi w pliku adresy z http:// na linki (klikalne), oraz potrzebowałbym jeszcze takiego który by je przekreślał / usuwał jak się na nie kliknie .

Z góry bardzo dziękuje za pomoc .

Pozdrawiam
erix
Cytat
http:// na linki (klikalne)

preg_replace" title="Zobacz w manualu PHP" target="_manual, w komentarzach masz gotowca.

Cytat
potrzebowałbym jeszcze takiego który by je przekreślał / usuwał jak się na nie kliknie .

Tzn...? Może:
Kod
a:visited{
text-decoration: line-through
}
gunner294
Co do tego pierwszego skryptu, to chodzi o ten :

Kod
<code><span class="html">    // Cuts off long URLs at $url_length, and appends "..."
       function reduceurl($url, $url_length) {
           $reduced_url = substr($url, 0, $url_length);
           if (strlen($url) > $url_length) $reduced_url .= '...';
          
           return $reduced_url;
       }
  
       // Makes URLs with brackets into links
       // The regex searches for "<a target="_blank" rel="nofollow" href="http:///">http://</a>"  or equivalent, then various character possibilities (I don't know if it  might be possible to exploit this if more characters were allowed). The  "e" after the regex allows the reduceurl() to be evaluated.
  
       function url2link($linktext) {
           $linktext =  preg_replace("#\[(([a-zA-Z]+://)([a-zA-Z0-9?&%.;:/=+_-]*))\]#e",  "'<a href=\"$1\" target=\"_blank\">' . reduceurl(\"$3\", 30) .  '</a>'", $linktext);
                  
           return $linktext;
       }</span></code>


?

Próbowałem go użyć, ale za bardzo nie wiem jak :/ Tak jak mówiłem niewiele wiem o php sad.gif
erix
No zwyczajnie smile.gif
  1. <?php
  2. $nowaTresc = url2link($tresc);
  3. ?>
gunner294
Zrobiłem to tak :

Kod
<?php
   // Cuts off long URLs at $url_length, and appends "..."
       function reduceurl($url, $url_length) {
           $reduced_url = substr($url, 0, $url_length);
           if (strlen($url) > $url_length) $reduced_url .= '...';
          
           return $reduced_url;
       }
  
       // Makes URLs with brackets into links
       // The regex searches for "<a target="_blank" rel="nofollow" href="http:///">http://</a>"  or equivalent, then various character possibilities (I don't know if it  might be

possible to exploit this if more characters were allowed). The  "e" after the regex allows the reduceurl() to be evaluated.
  
       function url2link($linktext) {
           $linktext =  preg_replace("#\[(([a-zA-Z]+://)([a-zA-Z0-9?&%.;:/=+_-]*))\]#e",  "'<a href=\"$1\" target=\"_blank\">' . reduceurl(\"$3\", 30) .  '</a>'", $linktext);
                  
           return $linktext;
       }
$nowaTresc = url2link(Tekst + http://przykladowylink.pl);

echo $nowaTresc

?>


I jeśli w miejsce zmiennej $tekst wstawię sam tekst bez linków które mają być zamienione to jest ok, ale jak wstawię już jakiś link do zamienienia to następujący błąd :

Kod
[b]Parse error[/b]:  syntax error, unexpected '<', expecting ')' in [b]/home/test/domains/test.pl/public_html/zamiana.php[/b] on line [b]18[/b]


Pozdrawiam i z góry dziękuje za pomoc .
erix
Masz błędy w skłądni. Sprawdź średniki, cudzysłowy, klamry.

Najlepiej użyj jakiegoś IDE, które wyłapie Ci błędy.
gunner294
Sprawdziłem wszystko, ale nadal nic sad.gif Pomoże ktoś ? sadsmiley02.gif Może ktoś źle napisał skrypt ?

Pozdrawiam
gcdreak
Odnośnie drugiej części to wydaje mi się, że jQuery będzie miało u Ciebie zastosowanie.
gunner294
I jak pomoże ktoś ? Potrzebuje tego skryptu na dzisiaj .

Pozdrawiam,
Moli
  1. <?php
  2. $nowaTresc = url2link(Tekst + <a href=&#092;"http://przykladowylink.pl);\" target=\"_blank\">http://przykladowylink.pl);</a>
  3. ?>

Co to jest ?
gunner294
Jak to osiągnąłeś ?

Nikt nie pomoże ? sadsmiley02.gif
gcdreak
Odnośnie przegleślania linków to nadaj im klase "cross_out".
Do tego taki skrypt wykorzystujący jQuery:
Kod
$(document).ready(function(){
    $(".cross_out").css("text-decoration","line-through");
    $(".cross_out").click(function(){
    $(this).remove();
    });
})
erix
A o pseudoklasie visited, to nikt nie słyszał...? ohmy.gif

Cytat
Nikt nie pomoże ?

Cytat
Potrzebuje tego skryptu na dzisiaj .

W ten sposób na pewno nie...
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.