Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Łatwe wstawianie filmiku z youtube na strone
Forum PHP.pl > Forum > Przedszkole
-ceski23-
Czy dałoby się zrobić coś takiego jak tu tylko żeby było <youtube>link</youtube> i nie było na forum tylko na strone www?
croc
Da się. Musisz się pobawić funkcją preg_replace. Jako wzorzec zamiany będziesz miał '<youtube>(.+)<\/youtube>' i link zostanie przekazany do tego na co ma zostać zamieniony, czyli embed/object/iframe czy co tam teraz YouTube proponuje.
-ceski23-
Znalazłem taki skrypt na internecie:

  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. //Teraz modyfikacja tekstu wejściowego zaczynami od zamiany linkó z http na adres HTML <a href="adres itd...
  62. $tablica_kluczy_linkow = array_keys($tablica_linkow);
  63. $ile_tmp = count($tablica_linkow);
  64. for ($i=0; $i <$ile_tmp; $i++){
  65. $klucz_do_zamiany = $tablica_kluczy_linkow[$i];
  66. $tablica_linkow[$klucz_do_zamiany] = $tablica_linkow[$klucz_do_zamiany].' ';
  67.  
  68. $text = str_replace($tablica_linkow[$klucz_do_zamiany],'<a href="'.$tablica_linkow[$klucz_do_zamiany].'">'.$tablica_linkow[$klucz_do_zamiany].'</a>',$text);
  69. }
  70. unset($ile_tmp);
  71. //teraz zmienimy linki do obrazkó na HTML <img
  72. $ile_tmp = count($tablica_linkow_z_obrazkami);
  73. for ($i=0; $i <$ile_tmp; $i++){
  74. $klucz_do_zamiany = $tablica_kluczy_linkow_z_obrazkami[$i];
  75. $tablica_linkow_z_obrazkami[$klucz_do_zamiany] = $tablica_linkow_z_obrazkami[$klucz_do_zamiany].' ';
  76.  
  77. $text = str_replace($tablica_linkow_z_obrazkami[$klucz_do_zamiany],'<img src="'.$tablica_linkow_z_obrazkami[$klucz_do_zamiany].'" border="0" />',$text);
  78. }
  79.  
  80. //teraz zmienimy linki do youtube na HTML <object
  81. $ile_tmp = count($tablica_linkow_z_youtube);
  82. for ($i=0; $i <$ile_tmp; $i++){
  83. $klucz_do_zamiany = $tablica_kluczy_linkow_z_youtube[$i];
  84. $tablica_linkow_z_youtube[$klucz_do_zamiany] = $tablica_linkow_z_youtube[$klucz_do_zamiany].' ';
  85.  
  86.  
  87. $idVideo = youtube_thumb($tablica_linkow_z_youtube[$klucz_do_zamiany]);
  88. $youtubeVideo = '
  89. <object width="431" height="323">
  90. <param name="movie" value="http://www.youtube.com/v/'.$idVideo.'&hl=pl_PL&fs=1&"></param>
  91. <param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param>
  92. <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">
  93. </embed>
  94. </object>';
  95.  
  96.  
  97. $text = str_replace($tablica_linkow_z_youtube[$klucz_do_zamiany],$youtubeVideo,$text);
  98. }
  99.  
  100. return $text;
  101. }
  102. }
  103.  
  104.  
  105. //---------------------UŻYCIE -----------------------
  106.  
  107.  
  108. $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 :)';
  109.  
  110.  
  111. echo create_link($text);
  112.  
  113. ?>






I chciałbym aby ten kod umieścić w pliku np. skaner.php i żeby skanował i zamieniał tak pliki z wszystkich stron, a nie tylko ten tekst
Cytat
$text = 'Nasz przykładowy test zawiera link do zdjęcia http://www.strona.pl/obraz.png albo http://www.strona.pl/obraz.jpg ten tekst ma też linki http://www.strona.pl/index.php oraz http://www.strona.pl no i tez bardziej skomplikowane http://www.youtube.com/watch?v=7nJTt5tdKYM...ec-HM-fresh+div działa smile.gif';
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-2025 Invision Power Services, Inc.