Здравствуйте. Скажите, каким функциями php следует воспользоваться, для сохранения id пользователей в текстовый файл, которые отображаются в результатах поиска вк?
Re: Сохранение ТС, я хочу тебя огорчить. Это и правда капец как похоже на спам-машину. Но вот беда - у тебя есть access_token, без которого работать ничего не будет. И при запуске этого бота парочки удалённых за спам сообщений хватит для того, чтобы забанить ключ, а может и всю страницу.
Re: Сохранение Спасибо за отклик. Воспользовался file_put_contents(). Удалось сохранить в файл people.txt всё содержимое страницы, которое отображается во время поиска. Код (Text): <?php $file = 'people.txt'; $current .= file_get_contents('http://vk.com/search?c[bday]=1&c[bmonth]=1&c[byear]=1997&c[city]=61&c[country]=1&c[name]=1&c[photo]=1&c[section]=people'); file_put_contents($file, $current); ?> Каким образом, можно задать параметры для выборки со страницы, а именно сохранять только номера id?
Re: Сохранение Есть API https://vk.com/dev/users.search , через него получаем массив https://php.net/manual/ru/language.types.array.php
Re: Сохранение Спасибо за отклик. С помощью vk.com/dev/users.search, успешно сформировал запрос к api. Удаётся отобразить на странице результат в виде полученного в ответ массива: Код (Text): <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <?php $people = file_get_contents ('https://api.vk.com/method/users.search?access_token=ТУТ_ТОКЕН&sort=0&count=20&country=1&city=61&birth_day=1&birth_month=1&birth_year=1997&has_photo=1'); echo $people; ?> Каким способом можно преобразовать полученный в ответ массив вида: в построчный результат с номерами id?
https://php.net/manual/ru/function.json-decode.php + foreach для обхода массива Код (PHP): $list = json_decode($people, true); echo '<pre>'; var_dump($list); // чтобы посмотреть структуру массива echo '</pre>';
Re: Сохранение Объясните пожалуйста. При обращение к api, мы получаем не готовый массив, а только json строку, которую с помощью json_decode декодируем в массив. Потом этот полученный массив записываем в переменную $list. Почему если в переменной $list находится массив, то при попытке отобразить его в виде строки путём преобразования с помощью implode (): Код (Text): <?php $people = file_get_contents ('https://api.vk.com/method/users.search?access_token=ТУТ_ТОКЕН&sort=0&count=20&country=1&city=61&birth_day=1&birth_month=1&birth_year=1997&has_photo=1'); $list = json_decode ($people, true); // декодируем json строку $people, получем массив в переменной $list $a = implode (" ", $list); // преобразовуем массив в строку echo $a; // выводим на страницу преобразованный массив в строку ?> на странице отображается только:
implode заменяет примерно такую конструкцию: Код (PHP): foreach($list as $value) { echo $value; } массив может быть многомерный и тогда в $value попадает массив, а echo его выводит как Array. так что используй foreach и зная структуру массива выводи нужные данные. https://php.net/manual/ru/language.types.array.php#language ... .accessing
Re: Сохранение Если в массиве данные указаны: Код (Text): ["first_name"]=> string(10) "ИМЯ" то есть в скобках ещё кавычки, то при выводе, так же указывать?: Код (Text): echo $value [' "first_name" '];
Re: Сохранение Спасибо за отклик. Номера id успешно отображаются. Задача частично решена: Код (Text): foreach ($list as &$item) { echo $item[1]["id"]; echo '<br>'; echo $item[2]["id"]; } Скажите, где ознакомиться с информацией о том, чтобы установить необходимое количество номеров, к примеру от [1] до [5], а не проставлять вручную? На странице foreach не нашёл информации об этом.
Re: Сохранение Спасибо за отклик. Задача частично решена. Код (Text): foreach ($list as &$item) { for($i=1; $i<5; $i++) echo $item[$i]["id"]."<br>"; }