Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Przerabianie linków z youtube na film
Forum PHP.pl > Forum > Przedszkole
Andrzej225
Na internecie znalazłem taki skrypt:
  1. <?php
  2.  
  3. function youtube_thumb($url)
  4. {
  5. $pattern = '{[\\?&]v=([^&#]*)}';
  6. $results = preg_match($pattern,$url,$meches);
  7. $idVideo = $meches[1];
  8. return $idVideo;
  9. }
  10.  
  11. function create_link($text){
  12.  
  13. //tworzymy wzorzec pobierający wszystko o konstrukcji <a href="http://cokolwiek.com/coklwiek" target="_blank">http://cokolwiek.com/coklwiek</a> itd
  14. $wzorzec = '{(http:\/\/[\w\.\-_]+\.[a-z0-9.][^\n\s]*)}';
  15.  
  16. //sprawdzenie czy zostało odnalezione chodź jedno dopasowanie
  17. if(preg_match_all($wzorzec,$text,$zwrot)){
  18.  
  19. //pozbywamy sie z tablicy powtarzających się rokordów
  20. $zwrot = array_unique($zwrot);
  21.  
  22. //Przepisujemy dane do nowej tablicy
  23. $tablica_linkow = $zwrot[0];
  24.  
  25. //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>
  26. $wzor = '(jpg|gif|png)';
  27. $tablica_linkow_z_obrazkami = preg_grep( $wzor, $tablica_linkow );
  28.  
  29. //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
  30. $tablica_kluczy_linkow_z_obrazkami = array_keys($tablica_linkow_z_obrazkami);
  31. //aby to zrobic tworzymy pentle usuwajaca wybrane klucze z tablicy glownej
  32. $ile_tmp = count($tablica_kluczy_linkow_z_obrazkami);
  33. for ($i=0; $i <$ile_tmp; $i++){
  34. $klucz_do_usuniecia = $tablica_kluczy_linkow_z_obrazkami[$i];
  35. unset($tablica_linkow[$klucz_do_usuniecia]);
  36. }
  37. //zwalniamy zmienną
  38. unset($ile_tmp);
  39.  
  40.  
  41.  
  42.  
  43. //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>
  44. $wzor = '(http://www.youtube.com)';
  45. $tablica_linkow_z_youtube = preg_grep( $wzor, $tablica_linkow );
  46.  
  47. //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
  48. $tablica_kluczy_linkow_z_youtube = array_keys($tablica_linkow_z_youtube);
  49. //aby to zrobic tworzymy pentle usuwajaca wybrane klucze z tablicy glownej
  50. $ile_tmp = count($tablica_kluczy_linkow_z_youtube);
  51. for ($i=0; $i <$ile_tmp; $i++){
  52. $klucz_do_usuniecia = $tablica_kluczy_linkow_z_youtube[$i];
  53. unset($tablica_linkow[$klucz_do_usuniecia]);
  54. }
  55. //zwalniamy zmienną
  56. unset($ile_tmp);
  57.  
  58.  
  59. //Teraz mamy 2 tablice jedna z linkami druga z linkami do obrazków
  60.  
  61.  
  62. unset($ile_tmp);
  63.  
  64.  
  65. //teraz zmienimy linki do youtube na HTML <object
  66. $ile_tmp = count($tablica_linkow_z_youtube);
  67. for ($i=0; $i <$ile_tmp; $i++){
  68. $klucz_do_zamiany = $tablica_kluczy_linkow_z_youtube[$i];
  69. $tablica_linkow_z_youtube[$klucz_do_zamiany] = $tablica_linkow_z_youtube[$klucz_do_zamiany].' ';
  70.  
  71.  
  72. $idVideo = youtube_thumb($tablica_linkow_z_youtube[$klucz_do_zamiany]);
  73. $youtubeVideo = '
  74. <object width="431" height="323">
  75. <param name="movie" value="http://www.youtube.com/v/'.$idVideo.'&hl=pl_PL&fs=1&"></param>
  76. <param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param>
  77. <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">
  78. </embed>
  79. </object>';
  80.  
  81.  
  82. $text = str_replace($tablica_linkow_z_youtube[$klucz_do_zamiany],$youtubeVideo,$text);
  83. }
  84.  
  85. return $text;
  86. }
  87. }
  88.  
  89.  
  90. //---------------------UŻYCIE -----------------------
  91.  
  92.  
  93. $text = 'Nasz przykładowy test zawiera <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 :)';
  94.  
  95.  
  96. echo create_link($text);
  97.  
  98. ?>


Chodzi mi o to aby zamiast przerabiać linki z $text skanowało wybraną strone np. news.php i przerabiało na niej.
jarmiar
file_get_contents
uzyj tej funkcji do pobrania strony, tresc strony bediesz mial w zmiennej
Andrzej225
Mógłbyś dać gotowy przykład bo nie zbyt umiem php.
jarmiar
  1. $out = create_link( file_get_contents ( 'http://adres' ) );
  2. echo $out;
Andrzej225
<?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


unset($ile_tmp);


//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 -----------------------


$out = create_link( file_get_contents ( 'http://strona.pl/news.php' ) );
echo $out;

?>
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-2024 Invision Power Services, Inc.