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: 0
    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-2025 v.1.5 | design: diviXdesign & rainbowcolors