Ruskat Опубликовано 21 мая, 2013 Поделиться Опубликовано 21 мая, 2013 Привет вам! Целый день понемногу мастырил по надобности парсинг галереи с ВК на форум. Все практически пахает, тока вот в тупик зашел.... Код: PHP <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "__www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xml:lang="en" lang="en" xmlns="__www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> <title>СЛАЙД-ШОУ - Dzhulia & Alexander - Галерея - Rustenerife.com</title> <script type="text/javascript"> //<![CDATA[ window.__CF=window.__CF||{};window.__CF.AJS={"clky":{"sid":"100596475","uid":"0"},"abetterbrowser":{"ie":"8"}}; //]]> </script> <script type="text/javascript"> //<![CDATA[ try{if (!window.CloudFlare) { var CloudFlare=[{verbose:0,p:1368992593,byc:0,owlid:"cf",mirage:{responsive:0,lazy:0},oracle:0,paths:{cloudflare:"/cdn-cgi/nexp/abv=378448694/"},atok:"8562156d03a5455df599913ab3fc70d2",zone:"rustenerife.com",rocket:"0",apps:{"clky":{"sid":"100596475","uid":"0"},"abetterbrowser":{"ie":"8"}}}];var a=document.createElement("script"),b=document.getElementsByTagName("script")[0];a.async=!0;a.src="//ajax.cloudflare.com/cdn-cgi/nexp/abv=4035706501/cloudflare.min.js";b.parentNode.insertBefore(a,b);}}catch(e){}; //]]> </script> <link rel="shortcut icon" href="favicon.ico"/> <link rel="stylesheet" type="text/css" href="__rustenerife.com/public/style_css/css_6/ipgallery_slideshow.css?ipbv=bb345fbe6aaf1eb0cf080b3a5460203c"/> <!--[if lte IE 7]> <link rel="stylesheet" type="text/css" title='Main' media="screen" href="__rustenerife.com/public/style_css/css_6/ipb_ie.css" /> <![endif]--> <script type='text/javascript'> jsDebug = 0; /* Must come before JS includes */ USE_RTE = 1; var inACP = false; var isRTL = false; var rtlIe = ''; var rtlFull = ''; </script> <script type='text/javascript' src='__rustenerife.com/public/js/3rd_party/prototype.js'></script> <script type='text/javascript' src='__rustenerife.com/public/js/ipb.js?load=quickpm,slideshow,rating,gallery'></script> <script type='text/javascript' src='__rustenerife.com/public/js/3rd_party/scriptaculous/scriptaculous-cache.js'></script> <script type="text/javascript" src='__rustenerife.com/cache/lang_cache/2/ipb.lang.js'></script> <script type='text/javascript'> //<![CDATA[ /* ---- URLs ---- */ ipb.vars['base_url'] = '__rustenerife.com/index.php?'; ipb.vars['board_url'] = '__rustenerife.com'; ipb.vars['loading_img'] = '__rustenerife.com/public/style_images/rustenerife/loading.gif'; ipb.vars['active_app'] = 'gallery'; ipb.vars['upload_url'] = '__rustenerife.com/uploads'; /* ---- Member ---- */ ipb.vars['member_id'] = parseInt( 0 ), ipb.vars['is_supmod'] = parseInt( 0 ), ipb.vars['is_admin'] = parseInt( 0 ), ipb.vars['secure_hash'] = '880ea6a14ea49e853634fbdc5015a024'; ipb.vars['session_id'] = '5f86e518d9e00d51ba3e0617927dba48'; ipb.vars['can_befriend'] = true; ipb.vars['auto_dst'] = parseInt( 0 ); ipb.vars['dst_in_use'] = parseInt( ); ipb.vars['is_touch'] = false; ipb.vars['member_group'] = {"g_mem_info":"0"} /* ---- cookies ----- */ ipb.vars['cookie_id'] = ''; ipb.vars['cookie_domain'] = '.rustenerife.com'; ipb.vars['cookie_path'] = '/'; /* ---- Rate imgs ---- */ ipb.vars['rate_img_on'] = '__rustenerife.com/public/style_images/rustenerife/bullet_star.png'; ipb.vars['rate_img_off'] = '__rustenerife.com/public/style_images/rustenerife/bullet_star_off.png'; ipb.vars['rate_img_rated'] = '__rustenerife.com/public/style_images/rustenerife/bullet_star_rated.png'; /* ---- Uploads ---- */ ipb.vars['swfupload_swf'] = '__rustenerife.com/public/js/3rd_party/swfupload/swfupload.swf'; ipb.vars['swfupload_enabled'] = true; ipb.vars['use_swf_upload'] = ( '' == 'flash' ) ? true : false; ipb.vars['swfupload_debug'] = false; /* ---- other ---- */ ipb.vars['highlight_color'] = "#ade57a"; ipb.vars['charset'] = "UTF-8"; ipb.vars['use_rte'] = 1; ipb.vars['image_resize_force'] = 0; ipb.vars['seo_enabled'] = 1; ipb.vars['seo_params'] = {"start":"-","end":"/","varBlock":"?","varPage":"page-","varSep":"&","varJoin":"="}; /* Templates/Language */ ipb.templates['ajax_loading'] = "<div id='ajax_loading'>" + ipb.lang['loading'] + "</div>"; ipb.templates['close_popup'] = "<img src='__rustenerife.com/public/style_images/rustenerife/close_popup.png' alt='x' />"; ipb.templates['rss_shell'] = new Template("<ul id='rss_menu'>#{items}</ul>"); ipb.templates['rss_item'] = new Template("<li><a href='#{url}' title='#{title}'>#{title}</a></li>"); ipb.templates['resized_img'] = new Template("<span>Уменьшено до #{percent}% (было #{width} x #{height}) - нажмите для увеличения</span>"); ipb.templates['autocomplete_wrap'] = new Template("<ul id='#{id}' class='ipb_autocomplete' style='width: 250px;'></ul>"); ipb.templates['autocomplete_item'] = new Template("<li id='#{id}' data-url='#{url}'><img src='#{img}' alt='' width='#{img_w}' height='#{img_h}' /> #{itemvalue}</li>"); ipb.templates['page_jump'] = new Template("<div id='#{id}_wrap' class='ipbmenu_content'><h3 class='bar'>Перейти на страницу</h3><input type='text' class='input_text' id='#{id}_input' size='8' /> <input type='submit' value='Далее...' class='input_submit add_folder' id='#{id}_submit' /></div>"); Loader.boot(); //]]> </script> </head> <body id='ipboard_body' style='padding: 20px'> <div id='ipbwrapper'> <?php $url = "__vk.com/album-40908627_173637685"; //Адресс с которого будут парсится картинки $str=file_get_contents($url); // echo "---------------Вариант 1---------------"; preg_match_all("#<img.*?src="(.*?)".+?data-id="-(.*?)".+?data-src_big="(.*?)|(.*?)|(.*?)"#",$str,$ok); $str = preg_replace ("#<h1(.*)</h1>#Us", "", $str); //$str = preg_replace ('#class(.*)="-#Us', '', $str); //$str = str_replace ("class="", "", $str); for ($i=0; $i<count($ok[1]); $i++) { $path_parts = pathinfo($ok[1][$i]); //echo $path_parts['dirname'], "<br>"; //echo $path_parts['basename'], "<br>"; echo "<br>".$path_parts['dirname']."/".$path_parts['basename']." =1 ".$ok[2][$i]."=2 ".$ok[3][$i]."=3 ".$ok[4][$i]."=4 ".$ok[5][$i]."=5"; $host = $path_parts['dirname']; $path = $path_parts['basename']; } ?> <script type='text/javascript'> /* URL to full-size images */ ipb.slideshow.imageURL = "__cs403527.vk.me/"; /* The image ID's in order to be displayed */ var IMAGES = [ 193 ]; /* Array of image data, order doesn't matter. Key is image ID to match above array */ var IMAGE_DATA = $H({ 193: { 'title': '0001', 'filename': 'v403527622/7c5c/D2sH_BjFo4k.jpg', 'thumb': 'v403527622/7c5d/ZB1bA3K5RPI.jpg', 'author': { 'id': 24, 'name': 'Eugenia Biryukova', 'photo': '__rustenerife.com/uploads/profile/photo-thumb-24.jpg?_r=1369008243', 'width': '50', 'height': '50' } }, }); /* URL to where user photos will be */ ipb.slideshow.userPhotoURL = ""; /* Just templates */ ipb.slideshow.userInfo = new Template("<div id='info_#{id}' class='info' style='display: none'><img src='#{photo}' width='#{width}' height='#{height}' class='photo' /><div class='info_body'><h1>#{title}</h1><h2>От #{name}</h2></div>"); ipb.slideshow.thumbnail = new Template("<div id='thumb_#{id}' class='thumb'></div>"); </script> <div id='slideshow'> <div id='image_info'></div> <div id='thumbnail_bar'> <div id='thumbnails'> <div id='thumbnail_wrap'></div> </div> <div id='button_left'></div> <div id='button_right'></div> </div> <div id='image_holder'></div> <div id='slideshow_controls'> <div id='controls'><a href='#' id='c_PREV' class='control' title='Предыдущее изображение'>&nsbp;</a><a href='#' id='c_PAUSE_PLAY' class='control' title='СтартСтоп слайдшоу'>&nsbp;</a><a href='#' id='c_NEXT' class='control' title='Следующий'>&nsbp;</a></div> <div id='loading'></div> </div> <a href='__rustenerife.com/gallery/album/8-dzhulia-alexander/' id='close_slideshow'>Go back</a> </div> <div style='display: none'> <img src='__rustenerife.com/public/style_images/rustenerife/gallery/slideshow/next.png'/> <img src='__rustenerife.com/public/style_images/rustenerife/gallery/slideshow/next_hover.png'/> <img src='__rustenerife.com/public/style_images/rustenerife/gallery/slideshow/prev.png'/> <img src='__rustenerife.com/public/style_images/rustenerife/gallery/slideshow/prev_hover.png'/> <img src='__rustenerife.com/public/style_images/rustenerife/gallery/slideshow/pause.png'/> <img src='__rustenerife.com/public/style_images/rustenerife/gallery/slideshow/play.png'/> <img src='__rustenerife.com/public/style_images/rustenerife/gallery/slideshow/pause_hover.png'/> <img src='__rustenerife.com/public/style_images/rustenerife/gallery/slideshow/play_hover.png'/> </div> </div> </body> </html> одолжил у них. IPB-шный скрипт <![CDATA[{parse js_module="slideshow"} <script type='text/javascript'> /* URL to full-size images */ <if test="$this->settings['gallery_images_url']"> ipb.slideshow.imageURL = "{$this->settings['gallery_images_url']}/"; <else /> ipb.slideshow.imageURL = ipb.vars['base_url'] + "app=gallery&module=images§ion=img_ctrl"; </if> /* The image ID's in order to be displayed */ var IMAGES = [ {$imageIds} ]; /* Array of image data, order doesn't matter. Key is image ID to match above array */ var IMAGE_DATA = $H({ <foreach loop="$imageData as $r"> {$r['image_id']}: { 'title': '{$r['image_caption']}', <if test="$this->settings['gallery_images_url']"> 'filename': '{$r['image_directory']}/{$r['image_masked_file_name']}', 'thumb': '{$r['image_directory']}/tn_{$r['image_masked_file_name']}', <else /> 'filename': '&img={$r['image_id']}', 'thumb': '&img={$r['image_id']}&tn=1', </if> 'author': { 'id': {$r['image_member_id']}, 'name': '{$r['members_display_name']}', 'photo': '{$r['_photo']['pp_small_photo']}', 'width': '{$r['_photo']['pp_small_width']}', 'height': '{$r['_photo']['pp_small_height']}' } }<if test="$lastID != $r['image_id']">,</if> </foreach> }); /* URL to where user photos will be */ ipb.slideshow.userPhotoURL = ""; /* Just templates */ ipb.slideshow.userInfo = new Template("<div id='info_#{id}' class='info' style='display: none'><img src='#{photo}' width='#{width}' height='#{height}' class='photo' /><div class='info_body'><h1>#{title}</h1><h2>{$this->lang->words['by_ucfirst']} #{name}</h2></div>"); ipb.slideshow.thumbnail = new Template("<div id='thumb_#{id}' class='thumb'></div>"); </script> <div id='slideshow'> <div id='image_info'></div> <div id='thumbnail_bar'> <div id='thumbnails'> <div id='thumbnail_wrap'></div> </div> <div id='button_left'></div> <div id='button_right'></div> </div> <div id='image_holder'></div> <div id='slideshow_controls'> <div id='controls'><a href='#' id='c_PREV' class='control' title='{$this->lang->words['previous_image']}'>&nsbp;</a><a href='#' id='c_PAUSE_PLAY' class='control' title='{$this->lang->words['ss_playpause']}'>&nsbp;</a><a href='#' id='c_NEXT' class='control' title='{$this->lang->words['ss_next_img']}'>&nsbp;</a></div> <div id='loading'></div> </div> <a href='{$containerUrl}' id='close_slideshow'>{$this->lang->words['ss_back']}</a> </div> <div style='display: none'> <img src='{$this->settings['img_url']}/gallery/slideshow/next.png' /> <img src='{$this->settings['img_url']}/gallery/slideshow/next_hover.png' /> <img src='{$this->settings['img_url']}/gallery/slideshow/prev.png' /> <img src='{$this->settings['img_url']}/gallery/slideshow/prev_hover.png' /> <img src='{$this->settings['img_url']}/gallery/slideshow/pause.png' /> <img src='{$this->settings['img_url']}/gallery/slideshow/play.png' /> <img src='{$this->settings['img_url']}/gallery/slideshow/pause_hover.png' /> <img src='{$this->settings['img_url']}/gallery/slideshow/play_hover.png' /> </div>]]> В тупике потому, что разные адреса серверов - не могу адекватно загнать в переменную потому. и еще потому, что переменная ipb.slideshow.imageURL в скрипте хочет держать в себе сервер а 'filename' и 'thumb' не хотят начинать с __. Помогите пожалуйста добить, кому не в лом. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Fedya Опубликовано 21 мая, 2013 Поделиться Опубликовано 21 мая, 2013 (изменено) Я вообще ничего не понял, начиная с задумки 'filename' и 'thumb' не хотят начинать с __. П Ну так подпиши в код '__' Изменено 21 мая, 2013 пользователем Fedya Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
KEVINm Опубликовано 21 мая, 2013 Поделиться Опубликовано 21 мая, 2013 Если хотите, чтобы нажимать можно было не только на текст но и на блок в котором он лежит, юзайте .css style{ display:block } Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ruskat Опубликовано 21 мая, 2013 Автор Поделиться Опубликовано 21 мая, 2013 Не размножает фотки, если выше. Ниже, в области где нужно размножать, то выше переменные неизвестные. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ruskat Опубликовано 21 мая, 2013 Автор Поделиться Опубликовано 21 мая, 2013 (изменено) На первых парах практически всё... <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "__www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xml:lang="en" lang="en" xmlns="__www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> <title>СЛАЙД-ШОУ - Dzhulia & Alexander - Галерея - Rustenerife.com</title> <link rel="shortcut icon" href="favicon.ico"/> <link rel="stylesheet" type="text/css" href="__rustenerife.com/public/style_css/css_6/ipgallery_slideshow.css?ipbv=bb345fbe6aaf1eb0cf080b3a5460203c"/> <!--[if lte IE 7]> <link rel="stylesheet" type="text/css" title='Main' media="screen" href="__rustenerife.com/public/style_css/css_6/ipb_ie.css" /> <![endif]--> <script type='text/javascript'> jsDebug = 0; /* Must come before JS includes */ USE_RTE = 1; var inACP = false; var isRTL = false; var rtlIe = ''; var rtlFull = ''; </script> <script type='text/javascript' src='__rustenerife.com/public/js/3rd_party/prototype.js'></script> <script type='text/javascript' src='__rustenerife.com/public/js/ipb.js?load=quickpm,slideshow,rating,gallery'></script> <script type='text/javascript' src='__rustenerife.com/public/js/3rd_party/scriptaculous/scriptaculous-cache.js'></script> <script type='text/javascript'> //<![CDATA[ /* ---- URLs ---- */ ipb.vars['base_url'] = '__rustenerife.com/index.php?'; ipb.vars['board_url'] = '__rustenerife.com'; ipb.vars['loading_img'] = '__rustenerife.com/public/style_images/rustenerife/loading.gif'; ipb.vars['active_app'] = 'gallery'; ipb.vars['upload_url'] = '__rustenerife.com/uploads'; /* ---- Member ---- */ ipb.vars['member_id'] = parseInt( 0 ), ipb.vars['is_supmod'] = parseInt( 0 ), ipb.vars['is_admin'] = parseInt( 0 ), ipb.vars['secure_hash'] = '880ea6a14ea49e853634fbdc5015a024'; ipb.vars['session_id'] = '5f86e518d9e00d51ba3e0617927dba48'; ipb.vars['can_befriend'] = true; ipb.vars['auto_dst'] = parseInt( 0 ); ipb.vars['dst_in_use'] = parseInt( ); ipb.vars['is_touch'] = false; ipb.vars['member_group'] = {"g_mem_info":"0"} /* ---- cookies ----- */ ipb.vars['cookie_id'] = ''; ipb.vars['cookie_domain'] = '.rustenerife.com'; ipb.vars['cookie_path'] = '/'; /* ---- Rate imgs ---- */ ipb.vars['rate_img_on'] = '__rustenerife.com/public/style_images/rustenerife/bullet_star.png'; ipb.vars['rate_img_off'] = '__rustenerife.com/public/style_images/rustenerife/bullet_star_off.png'; ipb.vars['rate_img_rated'] = '__rustenerife.com/public/style_images/rustenerife/bullet_star_rated.png'; /* ---- Uploads ---- */ ipb.vars['swfupload_swf'] = '__rustenerife.com/public/js/3rd_party/swfupload/swfupload.swf'; ipb.vars['swfupload_enabled'] = true; ipb.vars['use_swf_upload'] = ( '' == 'flash' ) ? true : false; ipb.vars['swfupload_debug'] = false; /* ---- other ---- */ ipb.vars['highlight_color'] = "#ade57a"; ipb.vars['charset'] = "UTF-8"; ipb.vars['use_rte'] = 1; ipb.vars['image_resize_force'] = 0; ipb.vars['seo_enabled'] = 1; ipb.vars['seo_params'] = {"start":"-","end":"/","varBlock":"?","varPage":"page-","varSep":"&","varJoin":"="}; /* Templates/Language */ ipb.templates['ajax_loading'] = "<div id='ajax_loading'>" + ipb.lang['loading'] + "</div>"; ipb.templates['close_popup'] = "<img src='__rustenerife.com/public/style_images/rustenerife/close_popup.png' alt='x' />"; ipb.templates['rss_shell'] = new Template("<ul id='rss_menu'>#{items}</ul>"); ipb.templates['rss_item'] = new Template("<li><a href='#{url}' title='#{title}'>#{title}</a></li>"); ipb.templates['resized_img'] = new Template("<span>Уменьшено до #{percent}% (было #{width} x #{height}) - нажмите для увеличения</span>"); ipb.templates['autocomplete_wrap'] = new Template("<ul id='#{id}' class='ipb_autocomplete' style='width: 250px;'></ul>"); ipb.templates['autocomplete_item'] = new Template("<li id='#{id}' data-url='#{url}'><img src='#{img}' alt='' width='#{img_w}' height='#{img_h}' /> #{itemvalue}</li>"); ipb.templates['page_jump'] = new Template("<div id='#{id}_wrap' class='ipbmenu_content'><h3 class='bar'>Перейти на страницу</h3><input type='text' class='input_text' id='#{id}_input' size='8' /> <input type='submit' value='Далее...' class='input_submit add_folder' id='#{id}_submit' /></div>"); Loader.boot(); //]]> </script> </head> <body id='ipboard_body' style='padding: 20px'> <div id='ipbwrapper'> <?php ?> <script type='text/javascript'> /* URL to full-size images */ ipb.slideshow.imageURL = "__"; /* The image ID's in order to be displayed */ var IMAGES = [<?PHP $url = "__vk.com/album-40908627_173637685"; //Адресс с которого будут парсится картинки $str=file_get_contents($url); preg_match_all("#<img.*?src="(.*?)".+?data-id="-(.*?)".+?data-src_big="(.*?)|(.*?)|(.*?)"#",$str,$ok); $str = preg_replace ("#<h1(.*)</h1>#Us", "", $str); for ($i=0; $i<count($ok[1]); $i++){ $id_img = substr($ok[2][$i], -9); // возвращает "cde" Ідентифікатор echo $id_img.","; };?>]; /* Array of image data, order doesn't matter. Key is image ID to match above array */ var IMAGE_DATA = $H({ <?php $str=file_get_contents($url); preg_match_all("#<img.*?src="(.*?)".+?data-id="-(.*?)".+?data-src_big="(.*?)|(.*?)|(.*?)"#",$str,$ok); $str = preg_replace ("#<h1(.*)</h1>#Us", "", $str); for ($i=0; $i<count($ok[1]); $i++){ $path_parts_thumb = array_values(array_filter(explode('//',$ok[1][$i]))); $path_parts_file = array_values(array_filter(explode('//',$ok[3][$i]))); // echo "<br>".$path_parts_file['1']." =1 ".$ok[2][$i]."=2 ".$path_parts_thumb['1']."=3 ".$ok[4][$i]."=4 ".$ok[5][$i]."=5"; $path_parts_file['1']; // Оригінальний файл $id_img = substr($ok[2][$i], -9); // возвращает "cde" Ідентифікатор $path_parts_thumb['1']; //Мініатюрка $ok[4][$i]; //Висота $ok[5][$i]; //Ширина echo " {$id_img}: { 'title': '0001', 'filename': '{$path_parts_file['1']}', 'thumb': '{$path_parts_thumb['1']}', 'author': { 'id': 24, 'name': 'Eugenia Biryukova', 'photo': '__rustenerife.com/uploads/profile/photo-thumb-24.jpg?_r=1369008243', 'width': '50', 'height': '50' } }, "; } echo "});"; ?> /* URL to where user photos will be */ ipb.slideshow.userPhotoURL = ""; /* Just templates */ ipb.slideshow.userInfo = new Template("<div id='info_#{id}' class='info' style='display: none'><img src='#{photo}' width='#{width}' height='#{height}' class='photo' /><div class='info_body'><h1>#{title}</h1><h2>От #{name}</h2></div>"); ipb.slideshow.thumbnail = new Template("<div id='thumb_#{id}' class='thumb'></div>"); </script> <div id='slideshow'> <div id='image_info'></div> <div id='thumbnail_bar'> <div id='thumbnails'> <div id='thumbnail_wrap'></div> </div> <div id='button_left'></div> <div id='button_right'></div> </div> <div id='image_holder'></div> <div id='slideshow_controls'> <div id='controls'><a href='#' id='c_PREV' class='control' title='Предыдущее изображение'>&nsbp;</a><a href='#' id='c_PAUSE_PLAY' class='control' title='СтартСтоп слайдшоу'>&nsbp;</a><a href='#' id='c_NEXT' class='control' title='Следующий'>&nsbp;</a></div> <div id='loading'></div> </div> <a href='__' id='close_slideshow'>Go back</a> </div> <div style='display: none'> <img src='__rustenerife.com/public/style_images/rustenerife/gallery/slideshow/next.png'/> <img src='__rustenerife.com/public/style_images/rustenerife/gallery/slideshow/next_hover.png'/> <img src='__rustenerife.com/public/style_images/rustenerife/gallery/slideshow/prev.png'/> <img src='__rustenerife.com/public/style_images/rustenerife/gallery/slideshow/prev_hover.png'/> <img src='__rustenerife.com/public/style_images/rustenerife/gallery/slideshow/pause.png'/> <img src='__rustenerife.com/public/style_images/rustenerife/gallery/slideshow/play.png'/> <img src='__rustenerife.com/public/style_images/rustenerife/gallery/slideshow/pause_hover.png'/> <img src='__rustenerife.com/public/style_images/rustenerife/gallery/slideshow/play_hover.png'/> </div> </div> </body> </html> Из нюансов:Фотки берутся только из групп, Колличество фоток - не больше 20 с чем-то.... Видать подгрузка. Из планов, хотклось бы еще указать вверху надпись автора фоно, аватарку и может какую-то надпись. Помогайте, не стесняйтесь. Изменено 26 мая, 2013 пользователем Respected Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ruskat Опубликовано 22 мая, 2013 Автор Поделиться Опубликовано 22 мая, 2013 Что, никто ничем не может помочь???? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ruskat Опубликовано 24 мая, 2013 Автор Поделиться Опубликовано 24 мая, 2013 (изменено) Практически закончил... Через кУРЛ: $lta = "__vk.com/photos-40908627"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $lta); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); $url = curl_exec($ch); curl_close($ch); $str = $url; $host = parse_url($lta); $hst = $host['host'] ; $resultat = $str ; $string = explode('offset:',$resultat); $resultat = $string[1] ; $string = explode(',',$resultat); $repl_substr = substr($string[1],-2); $str = preg_replace ("#offset: 40,#", "offset: 33,", $str); echo "Показано ".$string[0]." фоток з ". $repl_substr; preg_match_all("!<a[^>]+href="?'?([^ "'>]+)"?'?[^>]*>(.*?)</a>!is",$str,$ok); $str = preg_replace ("#<h1(.*)</h1>#Us", "", $str); for ($i=0; $i<count($ok[1]); $i++) echo $hst,$ok[1][$i]." = ".$ok[2][$i]."<br>"; И как хотел... <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "__www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xml:lang="en" lang="en" xmlns="__www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> <title>СЛАЙД-ШОУ</title> <link rel="shortcut icon" href="favicon.ico"/> <link rel="stylesheet" type="text/css" href="__rustenerife.com/public/style_css/css_6/ipgallery_slideshow.css?ipbv=bb345fbe6aaf1eb0cf080b3a5460203c"/> <!--[if lte IE 7]> <link rel="stylesheet" type="text/css" title='Main' media="screen" href="__rustenerife.com/public/style_css/css_6/ipb_ie.css" /> <![endif]--> <script type='text/javascript'> jsDebug = 0; /* Must come before JS includes */ USE_RTE = 1; var inACP = false; var isRTL = false; var rtlIe = ''; var rtlFull = ''; </script> <script type='text/javascript' src='__rustenerife.com/public/js/3rd_party/prototype.js'></script> <script type='text/javascript' src='__rustenerife.com/public/js/ipb.js?load=quickpm,slideshow,rating,gallery'></script> <script type='text/javascript' src='__rustenerife.com/public/js/3rd_party/scriptaculous/scriptaculous-cache.js'></script> <script type='text/javascript'> //<![CDATA[ /* ---- URLs ---- */ ipb.vars['base_url'] = '__rustenerife.com/index.php?'; ipb.vars['board_url'] = '__rustenerife.com'; ipb.vars['loading_img'] = '__rustenerife.com/public/style_images/rustenerife/loading.gif'; ipb.vars['active_app'] = 'gallery'; ipb.vars['upload_url'] = '__rustenerife.com/uploads'; /* ---- Member ---- */ ipb.vars['member_id'] = parseInt( 0 ), ipb.vars['is_supmod'] = parseInt( 0 ), ipb.vars['is_admin'] = parseInt( 0 ), ipb.vars['secure_hash'] = '880ea6a14ea49e853634fbdc5015a024'; ipb.vars['session_id'] = '5f86e518d9e00d51ba3e0617927dba48'; ipb.vars['can_befriend'] = true; ipb.vars['auto_dst'] = parseInt( 0 ); ipb.vars['dst_in_use'] = parseInt( ); ipb.vars['is_touch'] = false; ipb.vars['member_group'] = {"g_mem_info":"0"} /* ---- cookies ----- */ ipb.vars['cookie_id'] = ''; ipb.vars['cookie_domain'] = '.rustenerife.com'; ipb.vars['cookie_path'] = '/'; /* ---- Rate imgs ---- */ ipb.vars['rate_img_on'] = '__rustenerife.com/public/style_images/rustenerife/bullet_star.png'; ipb.vars['rate_img_off'] = '__rustenerife.com/public/style_images/rustenerife/bullet_star_off.png'; ipb.vars['rate_img_rated'] = '__rustenerife.com/public/style_images/rustenerife/bullet_star_rated.png'; /* ---- Uploads ---- */ ipb.vars['swfupload_swf'] = '__rustenerife.com/public/js/3rd_party/swfupload/swfupload.swf'; ipb.vars['swfupload_enabled'] = true; ipb.vars['use_swf_upload'] = ( '' == 'flash' ) ? true : false; ipb.vars['swfupload_debug'] = false; /* ---- other ---- */ ipb.vars['highlight_color'] = "#ade57a"; ipb.vars['charset'] = "UTF-8"; ipb.vars['use_rte'] = 1; ipb.vars['image_resize_force'] = 0; ipb.vars['seo_enabled'] = 1; ipb.vars['seo_params'] = {"start":"-","end":"/","varBlock":"?","varPage":"page-","varSep":"&","varJoin":"="}; /* Templates/Language */ ipb.templates['ajax_loading'] = "<div id='ajax_loading'>" + ipb.lang['loading'] + "</div>"; ipb.templates['close_popup'] = "<img src='__rustenerife.com/public/style_images/rustenerife/close_popup.png' alt='x' />"; ipb.templates['rss_shell'] = new Template("<ul id='rss_menu'>#{items}</ul>"); ipb.templates['rss_item'] = new Template("<li><a href='#{url}' title='#{title}'>#{title}</a></li>"); ipb.templates['resized_img'] = new Template("<span>Уменьшено до #{percent}% (было #{width} x #{height}) - нажмите для увеличения</span>"); ipb.templates['autocomplete_wrap'] = new Template("<ul id='#{id}' class='ipb_autocomplete' style='width: 250px;'></ul>"); ipb.templates['autocomplete_item'] = new Template("<li id='#{id}' data-url='#{url}'><img src='#{img}' alt='' width='#{img_w}' height='#{img_h}' /> #{itemvalue}</li>"); ipb.templates['page_jump'] = new Template("<div id='#{id}_wrap' class='ipbmenu_content'><h3 class='bar'>Перейти на страницу</h3><input type='text' class='input_text' id='#{id}_input' size='8' /> <input type='submit' value='Далее...' class='input_submit add_folder' id='#{id}_submit' /></div>"); Loader.boot(); //]]> </script> </head> <body id='ipboard_body' style='padding: 20px'> <div id='ipbwrapper'> <?php ?> <script type='text/javascript'> /* URL to full-size images */ ipb.slideshow.imageURL = "__"; /* The image ID's in order to be displayed */ var IMAGES = [<?PHP $url = "__vk.com/photos-40908627"; //Адресс с которого будут парсится фотки $str=file_get_contents($url); preg_match_all("#<img.*?src="(.*?)".+?data-id="-(.*?)".+?data-src_big="(.*?)|(.*?)|(.*?)"#",$str,$ok); $str = preg_replace ("#<h1(.*)</h1>#Us", "", $str); for ($i=0; $i<count($ok[1]); $i++){ $id_img = substr($ok[2][$i], -9); // Ідентифікатор echo $id_img.","; };?>]; var IMAGE_DATA = $H({ <?php $str=file_get_contents($url); preg_match_all("#<img.*?src="(.*?)".+?data-id="-(.*?)".+?data-src_big="(.*?)|(.*?)|(.*?)"#",$str,$ok); $str = preg_replace ("#<h1(.*)</h1>#Us", "", $str); for ($i=0; $i<count($ok[1]); $i++){ $path_parts_thumb = array_values(array_filter(explode('//',$ok[1][$i]))); $path_parts_file = array_values(array_filter(explode('//',$ok[3][$i]))); $path_parts_file['1']; // Оригінальний файл $id_img = substr($ok[2][$i], -9); // Обрізання для присвоєння ID $path_parts_thumb['1']; //Мініатюрка $ok[4][$i]; //Висота $ok[5][$i]; //Ширина //Підключення через CURL $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); $vk_alb = curl_exec($ch); $vk_alb= iconv('WINDOWS-1251', 'UTF-8', $vk_alb); //Парс назви групи та к-ті фото $rs2 = explode('<title>',$vk_alb); $vk_alb = $rs2[1] ; $rs2 = explode('</title>',$vk_alb); $gr_header = array_values(array_filter(explode('|',$rs2[0]))); echo " {$id_img}: { 'title': '{$gr_header[1]}', 'filename': '{$path_parts_file['1']}', 'thumb': '{$path_parts_thumb['1']}', 'author': { 'id': 24, 'name': '{$gr_header[0]}', 'photo': '__cs301103.vk.me/g40908627/a_3a13c216.jpg', 'width': '50', 'height': '50' }}, "; } echo "});"; ?> /* то для юзера ИПБ */ ipb.slideshow.userPhotoURL = ""; /* шаблонка */ ipb.slideshow.userInfo = new Template("<div id='info_#{id}' class='info' style='display: none'><img src='#{photo}' width='#{width}' height='#{height}' class='photo' /><div class='info_body'><h1>#{title}</h1><h2> #{name}</h2></div>"); ipb.slideshow.thumbnail = new Template("<div id='thumb_#{id}' class='thumb'></div>"); </script> <div id='slideshow'> <div id='image_info'></div> <div id='thumbnail_bar'> <div id='thumbnails'> <div id='thumbnail_wrap'></div> </div> <div id='button_left'></div> <div id='button_right'></div> </div> <div id='image_holder'></div> <div id='slideshow_controls'> <div id='controls'><a href='#' id='c_PREV' class='control' title='Предыдущее изображение'>&nsbp;</a><a href='#' id='c_PAUSE_PLAY' class='control' title='СтартСтоп слайдшоу'>&nsbp;</a><a href='#' id='c_NEXT' class='control' title='Следующий'>&nsbp;</a></div> <div id='loading'></div> </div> <a href='' id='close_slideshow'>Go back</a> </div> <div style='display: none'> <img src='__rustenerife.com/public/style_images/rustenerife/gallery/slideshow/next.png'/> <img src='__rustenerife.com/public/style_images/rustenerife/gallery/slideshow/next_hover.png'/> <img src='__rustenerife.com/public/style_images/rustenerife/gallery/slideshow/prev.png'/> <img src='__rustenerife.com/public/style_images/rustenerife/gallery/slideshow/prev_hover.png'/> <img src='__rustenerife.com/public/style_images/rustenerife/gallery/slideshow/pause.png'/> <img src='__rustenerife.com/public/style_images/rustenerife/gallery/slideshow/play.png'/> <img src='__rustenerife.com/public/style_images/rustenerife/gallery/slideshow/pause_hover.png'/> <img src='__rustenerife.com/public/style_images/rustenerife/gallery/slideshow/play_hover.png'/> </div> </div> </body> </html> Но парсит только первые 24 или 40 фоток, а ужно получить все из альбома. Как решить это дело? И как правильно составить РНР-файл для обработки ссылки на галерею? Чтобы это было ВВ-Кодом. Изменено 26 мая, 2013 пользователем Respected Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ruskat Опубликовано 25 мая, 2013 Автор Поделиться Опубликовано 25 мая, 2013 Люди, подскажите, как все фотки с галереи ВК парсить??? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Respected Опубликовано 26 мая, 2013 Поделиться Опубликовано 26 мая, 2013 Ruskat, никому это не нужно, поэтому даже разбираться никто не хочет. Sanshalay 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ruskat Опубликовано 26 мая, 2013 Автор Поделиться Опубликовано 26 мая, 2013 Respected, В том то и проблема, что практически все хотят готовых результатов... А вот помочь их добиться... Spray 1 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ruskat Опубликовано 30 мая, 2013 Автор Поделиться Опубликовано 30 мая, 2013 Заимев немного свободного времени, начал раскуривать методы получения всех изображений из альбома. Привлёк метод photos.get. Но так, как я далёк от ихних обЪяснений, то с трудом я понял, как же самому получать списки... Все это делается ссылкой. Например: https://api.vk.com/method/photos.get.xml?oid=-40908627&aid=174693629&rev=1&extend=1&photo_sizes=1 Где: photos.get.xml - получение данных в виде *.xml файла а просто photos.get вернёт файл со списком того же содержимого, но в файлике. Вроде JSON. oid=-40908627 - группа / клуб aid=174693629 - id альбома Теперь нуно снова переделывать листалку... Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ruskat Опубликовано 31 мая, 2013 Автор Поделиться Опубликовано 31 мая, 2013 Сделал. Как можно реализовать, чтобы можно было фреймить ссылку вида сайт.ua/vkalbum?/vk.com/album-id-group_id-album , чтобы обрабатывалась ссылка на альбом и выводился результат - галерея. Как это сделать? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ruskat Опубликовано 31 мая, 2013 Автор Поделиться Опубликовано 31 мая, 2013 практически конец... Ещё только с условиями и фильтрами нужно разобраться... Поможет кто-то? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.