<?php
function youtube_thumb($url)
{
$pattern = '{[\\?&]v=([^&#]*)}';
$idVideo = $meches[1];
return $idVideo;
}
function create_link($text){
//tworzymy wzorzec pobierający wszystko o konstrukcji <a href="http://cokolwiek.com/coklwiek" target="_blank">http://cokolwiek.com/coklwiek</a> itd
$wzorzec = '{(http:\/\/[\w\.\-_]+\.[a-z0-9.][^\n\s]*)}';
//sprawdzenie czy zostało odnalezione chodź jedno dopasowanie
//pozbywamy sie z tablicy powtarzających się rokordów
//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 <a href="http://cokolwiek.com/coklwiek.jpg" target="_blank">http://cokolwiek.com/coklwiek.jpg</a>
$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ą
//Treaz przefiltrujemy nową tablice i pobierzemy z niej wszystkie linki z jpg gif lub png np <a href="http://cokolwiek.com/coklwiek.jpg" target="_blank">http://cokolwiek.com/coklwiek.jpg</a>
$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ą
//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); }
//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 <a href="http://www.strona.pl/obraz.png" target="_blank">http://www.strona.pl/obraz.png</a> albo <a href="http://www.strona.pl/obraz.jpg" target="_blank">http://www.strona.pl/obraz.jpg</a> ten tekst ma też linki <a href="http://www.strona.pl/index.php" target="_blank">http://www.strona.pl/index.php</a> oraz <a href="http://www.strona.pl" target="_blank">http://www.strona.pl</a> no i tez bardziej skomplikowane <a href="http://www.youtube.com/watch?v=7nJTt5tdKYM&feature=rec-HM-fresh+div" target="_blank">http://www.youtube.com/watch?v=7nJTt5tdKYM...ec-HM-fresh+div</a> działa :)';
?>