Итак, есть задача, на сайте выводятся Youtube роликивот в таком формате:
<iframe title=»YouTube video player» width=»480″ height=»390″ src=»http://www.youtube.com/embed/ajNC3W-Dlqk» frameborder=»0″ allowfullscreen></iframe>
Роликов на одной странице много, и что бы не нагружать пользователей их загрузкой, было принято решение подменять их ссылками в виде тумбнейлов, при клике на которые Lytebox будет выводить ролик в отдельном div-е. При этом формат размещения данных никто менять не хотел, вот что получилось:
<? // $post_new - сообщение которое мы будем обрабатывать $post_new= 'Ролик №1:<br> <iframe title="YouTube video player" width="480" height="390" src="http://www.youtube.com/embed/ajNC3W-Dlqk" frameborder="0" allowfullscreen></iframe><br> Ролик №2:<br> <iframe title="YouTube video player" width="480" height="390" src="http://www.youtube.com/embed/c4XPVvMm4j4" frameborder="0" allowfullscreen></iframe>'; // Папка для тумбнейлов $folder = 'cache'; preg_match_all('/src=[\'"]?([^\'" >]+)[\'" >]/', $post_new, $img); foreach($img[1] as $key => $link){ $tmp_link = explode('/',$link); $file = explode('.',array_pop($tmp_link)); if($tmp_link[2] == 'www.youtube.com'){ $name = &$file[0]; $new_link = 'src="'.$folder.'/'.$name.'_tumb.jpg"'; if (!file_exists($folder.'/'.$name.'_tumb.jpg')) { $homepage = file_get_contents('http://img.youtube.com/vi/'.$name.'/0.jpg'); file_put_contents($folder.'/'.$name.'_tumb.jpg' , $homepage); $homepage = @imagecreatefromjpeg($folder.'/'.$name.'_tumb.jpg'); $im = @imagecreatefrompng('images/play.png'); $watermark_width = imagesx($homepage); $watermark_height = imagesy($im); $alpha_level = 60; //Добавляем вотермарк imagecopymerge($homepage, $im, 0, 0, 0, 0, 480, 360, $alpha_level); imagejpeg($homepage,$folder.'/'.$name.'_tumb.jpg',75); } $replace = '<iframe title="YouTube video player" width="480" height="390" src="'.$link.'" frameborder="0" allowfullscreen></iframe>'; //echo $replace; $post_new = str_replace($replace,'<a href="'.$link.'" class="lytebox" data-lyte-options="width:560 height:349"><img '.$new_link.'/></a>',$post_new); } } ?>
Используемый мною вотермарк
Демонстрация работы скрипта