Advertisement
Guest User

Untitled

a guest
May 28th, 2017
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.04 KB | None | 0 0
  1. // все объекты, кроме комментария
  2.   $checkServerPattern = 'http[s]?://vk.com';
  3.   $patternSEF= '#' . $checkServerPattern . '/(wall|video|audio|photo|note)[-]?[\d]+_[\d]+#i'; // Паттерн для проверки ссылок вида http://vk.com/wall167924452_1390
  4.   $patternUserURL  = '#' . $checkServerPattern . '/[\w\d_.]+\?(z|w)=(wall|photo|product)[-]?[\d]+_[\d]+#i'; // Паттерн для проверки ссылок вида http://vk.com/id163694357?z=photo163694357_327956819/album163694357_0/rev
  5.   $patternMarket= '#' . $checkServerPattern . '/market[-]?[\d]+\?w=product[-]?[\d]+_[\d]+#i'; // Паттерн для проверки ссылок вида http://vk.com/market-122339259?w=product-122339259_212595
  6.   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))
  7.   {
  8. // парсим линк
  9. $vk_like_owner_id = $matches[2]; // владелец объекта
  10. $vk_like_item_id = $matches[3]; // ид объекта
  11.  
  12. // тип объекта
  13. if ($matches[1] == 'wall')
  14. {
  15. $data_wall = VKAPI::call('wall.getById', ['posts' => $vk_like_owner_id.'_'.$vk_like_item_id, 'extended' => '1', 'v' => '5.63']);
  16. $vk_like_type = $data_wall->response->items[0]->post_type;
  17. }
  18. else if ($matches[1] == 'product') $vk_like_type = 'market';
  19. else $vk_like_type = $matches[1];
  20.   }
  21.   // объект "комментарий"
  22.   else if (preg_match('/(wall)(\-?\d+)\_(\d+)\?reply\=(\d+)/is', $link, $matches))
  23.   {
  24. // парсим линк
  25. $vk_like_type = 'comment'; // тип объекта
  26. $vk_like_owner_id = $matches[2]; // владелец объекта
  27. $vk_like_item_id = $matches[4]; // ид объекта
  28.  
  29. // постоянная ссылка
  30. $direct_link = $link_replace;
  31.   }
  32.   // иначе
  33.   else
  34.   {
  35. $err[] = 'Указанная ссылка не соответствует типу задания';
  36.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement