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.
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);
?>
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
Ranga: Administrator serwisu Punktów: 0
Komentarze użytkowników
:: Losowe artykuły
![](http://funkcje.net/admin/images/kreska.jpg)
:: Wymiana linków
![](http://funkcje.net/images/kreska.jpg)
Modowe inspiracje |
Android Gry i Aplikacje |
ZaplanujTransport.pl: Przeprowadzki, transport, aukcje |
Logo dla firmy |
Change Tires - Car Weather Forecast Reminder |
Laminas: MVC Framework for PHP |
IT Books Reviews and Programming: JS, JAVA, PHP, ANDROID, CSS |
Katalog roślin |
Programming articles: JAVA, PHP, C++, Python, JavaScript |
Kancelaria Adwokacka Łukasz Huszno