Loading:


Zamiana adresów na linki, adresów z jpg, png, gif na obrazki,a z youtube na video

Funkcja pobiera tekst i zamienia adresy URL na linki, adresy url z jpg, png lub gif na obrazki a linki z youtube na video.



Napisz Artyku³

Listing

<?php

function  youtube_thumb($url)
{
 $pattern = '{[\\?&]v=([^&#]*)}';
 $results = preg_match($pattern,$url,$meches);
 $idVideo = $meches[1];
 return $idVideo;
}

function create_link($text){

//tworzymy wzorzec pobierający wszystko o konstrukcji http://cokolwiek.com/coklwiek itd
$wzorzec = '{(http:\/\/[\w\.\-_]+\.[a-z0-9.][^\n\s]*)}';
       
        //sprawdzenie czy zostało odnalezione chodź jedno dopasowanie
        if(preg_match_all($wzorzec,$text,$zwrot)){
               
                //pozbywamy sie z tablicy powtarzających się rokordów
                $zwrot = array_unique($zwrot);
               
                //Przepisujemy dane do nowej tablicy
                $tablica_linkow = $zwrot[0];
               
                //Treaz przefiltrujemy nową tablice i pobierzemy z niej wszystkie linki z jpg gif lub png np http://cokolwiek.com/coklwiek.jpg
                $wzor = '(jpg|gif|png)';
                $tablica_linkow_z_obrazkami = preg_grep( $wzor, $tablica_linkow );
               
                //pobieramy pod którymi kluczami w tablicy głównej $tablica_linkow są linki do obrazków i je usuwamy bo chcemy 2 tablice jedną z normalnymi linkami drugą z linkami do obrazków
                $tablica_kluczy_linkow_z_obrazkami = array_keys($tablica_linkow_z_obrazkami);
                        //aby to zrobic tworzymy pentle usuwajaca wybrane klucze z tablicy glownej
                        $ile_tmp = count($tablica_kluczy_linkow_z_obrazkami);   
                        for ($i=0; $i <$ile_tmp; $i++){
                                $klucz_do_usuniecia = $tablica_kluczy_linkow_z_obrazkami[$i];
                                unset($tablica_linkow[$klucz_do_usuniecia]);
                        }
                        //zwalniamy zmienną
                        unset($ile_tmp);
                       
                       
                       
                       
                //Treaz przefiltrujemy nową tablice i pobierzemy z niej wszystkie linki z jpg gif lub png np http://cokolwiek.com/coklwiek.jpg
                $wzor = '(http://www.youtube.com)';
                $tablica_linkow_z_youtube = preg_grep( $wzor, $tablica_linkow );
               
                //pobieramy pod którymi kluczami w tablicy głównej $tablica_linkow są linki do obrazków i je usuwamy bo chcemy 2 tablice jedną z normalnymi linkami drugą z linkami do obrazków
                $tablica_kluczy_linkow_z_youtube = array_keys($tablica_linkow_z_youtube);
                        //aby to zrobic tworzymy pentle usuwajaca wybrane klucze z tablicy glownej
                        $ile_tmp = count($tablica_kluczy_linkow_z_youtube);     
                        for ($i=0; $i <$ile_tmp; $i++){
                                $klucz_do_usuniecia = $tablica_kluczy_linkow_z_youtube[$i];
                                unset($tablica_linkow[$klucz_do_usuniecia]);
                        }
                        //zwalniamy zmienną
                        unset($ile_tmp);       
                       
                       
        //Teraz mamy 2 tablice jedna z linkami druga z linkami do obrazków
       
        //Teraz modyfikacja tekstu wejściowego zaczynami od zamiany linkó z http na adres HTML <a href="adres itd...
        $tablica_kluczy_linkow = array_keys($tablica_linkow);
        $ile_tmp = count($tablica_linkow);
        for ($i=0; $i <$ile_tmp; $i++){
                $klucz_do_zamiany = $tablica_kluczy_linkow[$i];
                $tablica_linkow[$klucz_do_zamiany] = $tablica_linkow[$klucz_do_zamiany].' ';
               
                $text = str_replace($tablica_linkow[$klucz_do_zamiany],'<a href="'.$tablica_linkow[$klucz_do_zamiany].'">'.$tablica_linkow[$klucz_do_zamiany].'</a>',$text);
        }
        unset($ile_tmp);
        //teraz zmienimy linki do obrazkó na HTML <img
        $ile_tmp = count($tablica_linkow_z_obrazkami);
        for ($i=0; $i <$ile_tmp; $i++){
                $klucz_do_zamiany = $tablica_kluczy_linkow_z_obrazkami[$i];
                $tablica_linkow_z_obrazkami[$klucz_do_zamiany] = $tablica_linkow_z_obrazkami[$klucz_do_zamiany].' ';
               
                $text = str_replace($tablica_linkow_z_obrazkami[$klucz_do_zamiany],'<img src="'.$tablica_linkow_z_obrazkami[$klucz_do_zamiany].'" border="0" />',$text);
        }
       
        //teraz zmienimy linki do youtube na HTML <object
        $ile_tmp = count($tablica_linkow_z_youtube);
        for ($i=0; $i <$ile_tmp; $i++){
                $klucz_do_zamiany = $tablica_kluczy_linkow_z_youtube[$i];
                $tablica_linkow_z_youtube[$klucz_do_zamiany] = $tablica_linkow_z_youtube[$klucz_do_zamiany].' ';
               
               
                $idVideo = youtube_thumb($tablica_linkow_z_youtube[$klucz_do_zamiany]);
                $youtubeVideo = '
                <object width="431" height="323">
                <param name="movie" value="http://www.youtube.com/v/'
.$idVideo.'&hl=pl_PL&fs=1&"></param>
                <param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param>
                <embed src="http://www.youtube.com/v/'
.$idVideo.'&hl=pl_PL&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344">
                </embed>
                </object>'
;
               
               
                $text = str_replace($tablica_linkow_z_youtube[$klucz_do_zamiany],$youtubeVideo,$text);
        }
       
        return $text;
        }
}


//---------------------UŻYCIE -----------------------


$text = 'Nasz przykładowy test zawiera link do zdjęcia http://www.funkcje.net/obraz.png albo http://www.funkcje.net/obraz.jpg ten tekst ma też linki http://www.funkcje.net/index.php oraz http://www.funkcje.net no i tez bardziej skomplikowane http://www.youtube.com/watch?v=7nJTt5tdKYM&feature=rec-HM-fresh+div działa :)';


echo create_link($text);

?>




Dodano przez: igor
Ranga: Administrator serwisu Punktów: 28716
Komentarze użytkowników
    • Tre¶æ komentarza
      Kod do komentarza (opcjonalnie)
      PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
      Autor
      Token
      token

       

       








funkcje.net
Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2020 v.1.5 | design: diviXdesign & rainbowcolors