За последние 24 часа нас посетили 15880 программистов и 1641 робот. Сейчас ищут 1028 программистов ...

Сохранение текста в файл

Тема в разделе "PHP для новичков", создана пользователем guestphp, 13 апр 2015.

  1. guestphp

    guestphp Новичок

    С нами с:
    11 апр 2015
    Сообщения:
    86
    Симпатии:
    0
    Здравствуйте.

    Скажите, каким функциями php следует воспользоваться, для сохранения id пользователей в текстовый файл, которые отображаются в результатах поиска вк?
     
  2. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    Re: Сохранение

    fopen(), fwrite(), fclose()..
    file_put_contents()
     
  3. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Re: Сохранение

    Деятельность автора все больше и больше походит на сборку спам-машины...
     
  4. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    Re: Сохранение

    ТС, я хочу тебя огорчить. Это и правда капец как похоже на спам-машину. Но вот беда - у тебя есть access_token, без которого работать ничего не будет. И при запуске этого бота парочки удалённых за спам сообщений хватит для того, чтобы забанить ключ, а может и всю страницу.
     
  5. guestphp

    guestphp Новичок

    С нами с:
    11 апр 2015
    Сообщения:
    86
    Симпатии:
    0
    Re: Сохранение

    Спасибо за отклик. Воспользовался file_put_contents(). Удалось сохранить в файл people.txt всё содержимое страницы, которое отображается во время поиска.

    Код (Text):
    1.  
    2. <?php
    3. $file = 'people.txt';
    4.  
    5. $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');
    6.  
    7. file_put_contents($file, $current);
    8. ?>
    Каким образом, можно задать параметры для выборки со страницы, а именно сохранять только номера id?
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  7. guestphp

    guestphp Новичок

    С нами с:
    11 апр 2015
    Сообщения:
    86
    Симпатии:
    0
    Re: Сохранение

    Спасибо за отклик. С помощью vk.com/dev/users.search, успешно сформировал запрос к api. Удаётся отобразить на странице результат в виде полученного в ответ массива:
    Код (Text):
    1.  
    2. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    3. <?php
    4. $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');
    5. echo $people;
    6. ?>
    Каким способом можно преобразовать полученный в ответ массив вида:

    в построчный результат с номерами id?
     
  8. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  9. guestphp

    guestphp Новичок

    С нами с:
    11 апр 2015
    Сообщения:
    86
    Симпатии:
    0
    Re: Сохранение

    Объясните пожалуйста. При обращение к api, мы получаем не готовый массив, а только json строку, которую с помощью json_decode декодируем в массив. Потом этот полученный массив записываем в переменную $list.

    Почему если в переменной $list находится массив, то при попытке отобразить его в виде строки путём преобразования с помощью implode ():

    Код (Text):
    1.  
    2. <?php
    3.  
    4. $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');
    5.  
    6. $list = json_decode ($people, true); // декодируем json строку $people, получем массив в переменной $list
    7.  
    8. $a = implode (" ", $list); // преобразовуем массив в строку
    9.  
    10. echo $a; // выводим на страницу преобразованный массив в строку
    11.  
    12. ?>
    на странице отображается только:

     
  10. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    implode заменяет примерно такую конструкцию:

    Код (PHP):
    1. foreach($list as $value)
    2. {
    3.   echo $value;
    4. }
    массив может быть многомерный и тогда в $value попадает массив, а echo его выводит как Array.

    так что используй foreach и зная структуру массива выводи нужные данные.
    https://php.net/manual/ru/language.types.array.php#language ... .accessing
     
  11. guestphp

    guestphp Новичок

    С нами с:
    11 апр 2015
    Сообщения:
    86
    Симпатии:
    0
    Re: Сохранение

    Если в массиве данные указаны:

    Код (Text):
    1. ["first_name"]=> string(10) "ИМЯ"
    то есть в скобках ещё кавычки, то при выводе, так же указывать?:

    Код (Text):
    1.  echo $value [' "first_name" '];
     
  12. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Re: Сохранение

    нет
     
  13. guestphp

    guestphp Новичок

    С нами с:
    11 апр 2015
    Сообщения:
    86
    Симпатии:
    0
    Re: Сохранение

    Спасибо за отклик. Номера id успешно отображаются. Задача частично решена:

    Код (Text):
    1. foreach ($list as &$item)
    2.     {
    3.         echo $item[1]["id"];
    4.         echo '<br>';
    5.         echo $item[2]["id"];
    6.     }
    Скажите, где ознакомиться с информацией о том, чтобы установить необходимое количество номеров, к примеру от [1] до [5], а не проставлять вручную? На странице foreach не нашёл информации об этом.
     
  14. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    Re: Сохранение

    for()
     
  15. guestphp

    guestphp Новичок

    С нами с:
    11 апр 2015
    Сообщения:
    86
    Симпатии:
    0
    Re: Сохранение

    Спасибо за отклик. Задача частично решена.

    Код (Text):
    1. foreach ($list as &$item)
    2.     {
    3.  
    4. for($i=1; $i<5; $i++)
    5. echo $item[$i]["id"]."<br>";
    6.  
    7.     }
     
  16. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Re: Сохранение

    Безумные отступы. Почитай до кучи про форматирование кода.
     
  17. guestphp

    guestphp Новичок

    С нами с:
    11 апр 2015
    Сообщения:
    86
    Симпатии:
    0
    не актуально
     
  18. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    guestphp спроси на форуме тех поддержки vk