Posted 21 мая, 201311 yr comment_32317 Привет вам! Целый день понемногу мастырил по надобности парсинг галереи с ВК на форум. Все практически пахает, тока вот в тупик зашел.... Код: 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' не хотят начинать с __. Помогите пожалуйста добить, кому не в лом. Link to comment https://ipbmafia.ru/topic/4406-pars-galerei-s-vk-v-posty-ipb-pomogite-dodelat/ Share on other sites Больше вариантов
21 мая, 201311 yr comment_32328 Я вообще ничего не понял, начиная с задумки 'filename' и 'thumb' не хотят начинать с __. П Ну так подпиши в код '__' Edited 21 мая, 201311 yr by Fedya Link to comment https://ipbmafia.ru/topic/4406-pars-galerei-s-vk-v-posty-ipb-pomogite-dodelat/?&do=findComment&comment=32328 Share on other sites Больше вариантов
21 мая, 201311 yr comment_32337 Если хотите, чтобы нажимать можно было не только на текст но и на блок в котором он лежит, юзайте .css style{ display:block } Link to comment https://ipbmafia.ru/topic/4406-pars-galerei-s-vk-v-posty-ipb-pomogite-dodelat/?&do=findComment&comment=32337 Share on other sites Больше вариантов
21 мая, 201311 yr Author comment_32343 Не размножает фотки, если выше. Ниже, в области где нужно размножать, то выше переменные неизвестные. Link to comment https://ipbmafia.ru/topic/4406-pars-galerei-s-vk-v-posty-ipb-pomogite-dodelat/?&do=findComment&comment=32343 Share on other sites Больше вариантов
21 мая, 201311 yr Author comment_32353 На первых парах практически всё... <!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 с чем-то.... Видать подгрузка. Из планов, хотклось бы еще указать вверху надпись автора фоно, аватарку и может какую-то надпись. Помогайте, не стесняйтесь. Edited 26 мая, 201311 yr by Respected Link to comment https://ipbmafia.ru/topic/4406-pars-galerei-s-vk-v-posty-ipb-pomogite-dodelat/?&do=findComment&comment=32353 Share on other sites Больше вариантов
22 мая, 201311 yr Author comment_32369 Что, никто ничем не может помочь???? Link to comment https://ipbmafia.ru/topic/4406-pars-galerei-s-vk-v-posty-ipb-pomogite-dodelat/?&do=findComment&comment=32369 Share on other sites Больше вариантов
24 мая, 201311 yr Author comment_32583 Практически закончил... Через кУРЛ: $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 фоток, а ужно получить все из альбома. Как решить это дело? И как правильно составить РНР-файл для обработки ссылки на галерею? Чтобы это было ВВ-Кодом. Edited 26 мая, 201311 yr by Respected Link to comment https://ipbmafia.ru/topic/4406-pars-galerei-s-vk-v-posty-ipb-pomogite-dodelat/?&do=findComment&comment=32583 Share on other sites Больше вариантов
25 мая, 201311 yr Author comment_32746 Люди, подскажите, как все фотки с галереи ВК парсить??? Link to comment https://ipbmafia.ru/topic/4406-pars-galerei-s-vk-v-posty-ipb-pomogite-dodelat/?&do=findComment&comment=32746 Share on other sites Больше вариантов
26 мая, 201311 yr comment_32756 Ruskat, никому это не нужно, поэтому даже разбираться никто не хочет. Link to comment https://ipbmafia.ru/topic/4406-pars-galerei-s-vk-v-posty-ipb-pomogite-dodelat/?&do=findComment&comment=32756 Share on other sites Больше вариантов
26 мая, 201311 yr Author comment_32773 Respected, В том то и проблема, что практически все хотят готовых результатов... А вот помочь их добиться... Link to comment https://ipbmafia.ru/topic/4406-pars-galerei-s-vk-v-posty-ipb-pomogite-dodelat/?&do=findComment&comment=32773 Share on other sites Больше вариантов
30 мая, 201311 yr Author comment_33329 Заимев немного свободного времени, начал раскуривать методы получения всех изображений из альбома. Привлёк метод 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 альбома Теперь нуно снова переделывать листалку... Link to comment https://ipbmafia.ru/topic/4406-pars-galerei-s-vk-v-posty-ipb-pomogite-dodelat/?&do=findComment&comment=33329 Share on other sites Больше вариантов
31 мая, 201311 yr Author comment_33536 Сделал. Как можно реализовать, чтобы можно было фреймить ссылку вида сайт.ua/vkalbum?/vk.com/album-id-group_id-album , чтобы обрабатывалась ссылка на альбом и выводился результат - галерея. Как это сделать? Link to comment https://ipbmafia.ru/topic/4406-pars-galerei-s-vk-v-posty-ipb-pomogite-dodelat/?&do=findComment&comment=33536 Share on other sites Больше вариантов
31 мая, 201311 yr Author comment_33593 практически конец... Ещё только с условиями и фильтрами нужно разобраться... Поможет кто-то? Link to comment https://ipbmafia.ru/topic/4406-pars-galerei-s-vk-v-posty-ipb-pomogite-dodelat/?&do=findComment&comment=33593 Share on other sites Больше вариантов
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.