Skip to content

Instantly share code, notes, and snippets.

@Elengar
Last active August 29, 2015 14:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Elengar/d46713f556c882558938 to your computer and use it in GitHub Desktop.
Save Elengar/d46713f556c882558938 to your computer and use it in GitHub Desktop.
<font face="Courier New">
<?php
ini_set('max_execution_time', 0);
// Group domain here. Example: "elengar" from https://vk.com/elengar
$GROUP1 = "";
$GROUP2 = "";
function vk_request($str) {
return file_get_contents($str . "&v=5.34");
}
function getID($name) {
$res = vk_request("http://api.vk.com/method/utils.resolveScreenName?screen_name=$name");
return json_decode($res)->response->object_id;
}
function getMembers($group_id, $offset, $count) {
$res = vk_request("http://api.vk.com/method/groups.getMembers?group_id=$group_id&offset=$offset&count=$count");
return json_decode($res)->response;
}
function getUsersInfo($user_ids, $fields) {
$res = vk_request( "http://api.vk.com/method/users.get?user_ids=$user_ids"
. (($fields && $fields != "") ? "&fields=$fields" : "") );
return json_decode($res)->response;
}
function getUserSubs($user_id, $offset, $count) {
$res = vk_request("http://api.vk.com/method/users.getSubscriptions?user_id=$user_id&offset=$offset&count=$count&extended=1");
return json_decode($res)->response;
}
function getAllMembers($object_id) {
$getAllMembers = array();
$offset = 0;
$count = 1000;
$membersNumber = 0;
do {
$res = getMembers($object_id, $offset, $count);
$membersNumber = $res->count;
$getAllMembers = array_merge($getAllMembers, $res->items);
$offset += $count;
} while ( $offset < $membersNumber );
return $getAllMembers;
}
function getSubsCount($user_id) {
$res = getUserSubs($user_id, 0, 0);
return $res->count;
}
function utf8_len($str) {
return mb_strlen($str, "UTF-8");
}
function my_str_pad($str, $len, $pad_substr) {
$str_len = utf8_len($str);
for ($i = $str_len; $i < $len; $i++ ) {
$str = $str . $pad_substr;
}
return $str;
}
function main() {
global $GROUP1, $GROUP2;
echo("-- $GROUP1 WITH $GROUP2");
echo("<br>");
$members1 = getAllMembers(getID($GROUP1));
$members2 = getAllMembers(getID($GROUP2));
$total = array_intersect($members1, $members2);
if (sizeof($total) == 0) {
echo "NO INTERACTION";
return;
}
$usersInfo = getUsersInfo(implode(",", $total), "domain");
$output_array = array();
$output_offsets = array();
foreach ($usersInfo as $user) {
$data = array();
$domain = ($user->domain ? $user->domain : "id".$user->id);
$link = "https://vk.com/" . $domain;
$data[] = "$user->first_name $user->last_name";
$data[] = "$link";
$subsCount = getSubsCount($user->id);
$data[] = "| $subsCount";
foreach ($data as $i => $el) {
if (!$output_offsets[$i] || ($output_offsets[$i] < utf8_len($el))) {
$output_offsets[$i] = utf8_len($el);
}
}
$output_array[] = $data;
}
foreach ($output_array as $data) {
foreach ($data as $i => $el) {
$tabstr = my_str_pad("", $output_offsets[$i] - utf8_len($el), "&nbsp;");
if (strpos($el, "http") !== false) {
$el = "<a href='$el'>$el</a>";
}
echo($el . $tabstr . " ");
}
echo("<br>");
}
}
main();
?>
</font>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment