Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // все объекты, кроме комментария
- $checkServerPattern = 'http[s]?://vk.com';
- $patternSEF= '#' . $checkServerPattern . '/(wall|video|audio|photo|note)[-]?[\d]+_[\d]+#i'; // Паттерн для проверки ссылок вида http://vk.com/wall167924452_1390
- $patternUserURL = '#' . $checkServerPattern . '/[\w\d_.]+\?(z|w)=(wall|photo|product)[-]?[\d]+_[\d]+#i'; // Паттерн для проверки ссылок вида http://vk.com/id163694357?z=photo163694357_327956819/album163694357_0/rev
- $patternMarket= '#' . $checkServerPattern . '/market[-]?[\d]+\?w=product[-]?[\d]+_[\d]+#i'; // Паттерн для проверки ссылок вида http://vk.com/market-122339259?w=product-122339259_212595
- if ((preg_match($patternSEF, $link) || preg_match($patternUserURL, urldecode($link)) || preg_match($patternMarket, urldecode($link))) && !preg_match('/(reply)/is', $link) && preg_match('/(wall|video|audio|photo|note|product)(\-?\d+)\_(\d+)/is', $link, $matches))
- {
- // парсим линк
- $vk_like_owner_id = $matches[2]; // владелец объекта
- $vk_like_item_id = $matches[3]; // ид объекта
- // тип объекта
- if ($matches[1] == 'wall')
- {
- $data_wall = VKAPI::call('wall.getById', ['posts' => $vk_like_owner_id.'_'.$vk_like_item_id, 'extended' => '1', 'v' => '5.63']);
- $vk_like_type = $data_wall->response->items[0]->post_type;
- }
- else if ($matches[1] == 'product') $vk_like_type = 'market';
- else $vk_like_type = $matches[1];
- }
- // объект "комментарий"
- else if (preg_match('/(wall)(\-?\d+)\_(\d+)\?reply\=(\d+)/is', $link, $matches))
- {
- // парсим линк
- $vk_like_type = 'comment'; // тип объекта
- $vk_like_owner_id = $matches[2]; // владелец объекта
- $vk_like_item_id = $matches[4]; // ид объекта
- // постоянная ссылка
- $direct_link = $link_replace;
- }
- // иначе
- else
- {
- $err[] = 'Указанная ссылка не соответствует типу задания';
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement