За последние 24 часа нас посетили 18448 программистов и 1630 роботов. Сейчас ищут 1842 программиста ...

Вывод данных в консоль PHP из файла на FTP

Тема в разделе "Сделайте за меня", создана пользователем pikazu, 4 июн 2016.

  1. pikazu

    pikazu Новичок

    С нами с:
    4 июн 2016
    Сообщения:
    15
    Симпатии:
    0
    Здравствуйте, недавно завелся такой идеей, как вывести на php страницу консоль игрового сервера. Задумка была очень простой, но в реализации у меня как всегда проблемы.

    Завожу консоль вот таким образом: screen -ALmdS myserver ./hlds_run -game cstrike +map de_dust2 +maxplayers 32 -port 27015 -debug -pidfile hlds.pid

    Так вот, сервер завелся, создался файлик: screenlog.0, вот думаю его спарсить через PHP и вывести, нашел вот такую статью. В ней реализована загрузка файла и его чтение, но не знаю, как его вывести в консоль
     
  2. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Этот момент не понятен.
    Нужно просто с помощью PHP вывести содержимое screenlog.0 или нет?
     
    pikazu нравится это.
  3. pikazu

    pikazu Новичок

    С нами с:
    4 июн 2016
    Сообщения:
    15
    Симпатии:
    0
    Да, нужно вывести его, и чтобы он не разползался на всю страницу, а был ползунок, чтобы его передвигать можно было. Короче говоря: сделать окошко с ползунком, и в его выводить данный файл
     
  4. denis01

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

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

    pikazu Новичок

    С нами с:
    4 июн 2016
    Сообщения:
    15
    Симпатии:
    0
    Переименовал его в .txt, так как у вас не грузится .0 файлы :) Но это обычный txt
    --- Добавлено ---
    Файл на FTP лежит, его нужно взять из FTP и вывести в рамку с ползунком
     

    Вложения:

    • screenlog.0.txt
      Размер файла:
      18,8 КБ
      Просмотров:
      1
  6. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Если файл обновляется например раз в 10 минут, то ты его через cron через этот промежуток бери, а то каждый раз лезть на FTP не оптимально.
     
    pikazu нравится это.
  7. pikazu

    pikazu Новичок

    С нами с:
    4 июн 2016
    Сообщения:
    15
    Симпатии:
    0
    Я не знаю как это сделать.
     
  8. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    У тебя хостинг? Там должен быть крон, или можно воспользоватся сервисом, например easycron.
    Как часто файл по FTP нужно скачивать?
     
    pikazu нравится это.
  9. pikazu

    pikazu Новичок

    С нами с:
    4 июн 2016
    Сообщения:
    15
    Симпатии:
    0
    Ну в ISP есть CRON, я знаю, как указать путь к скрипту, чтобы он данные обновлял, но не знаю, как вывести консоль эту с FTP: на FTP лежит файлик screenlog.0 его нужно взять например раз в 1 минуту, и выполнить, а он обновит на всех серверах консоль
     
  10. denis01

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

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

    Файл для cron
    PHP:
    1. <?php
    2.  
    3. // объявление переменных
    4. $local_file = 'screenlog.0';
    5. $server_file = 'screenlog.0'; // путь к файлу на сервер
    6.  
    7. // установка соединения
    8. $conn_id = ftp_connect('IP или домен FTP сервера');
    9.  
    10. // вход с именем пользователя и паролем
    11. $login_result = ftp_login($conn_id, 'логин FTP', 'пароль FTP');
    12.  
    13. // попытка скачать $server_file и сохранить в $local_file
    14. if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
    15.     echo "Произведена запись в $local_file\n";
    16. } else {
    17.     echo "Не удалось завершить операцию\n";
    18. }
    19.  
    20. // закрытие соединения
    21. ftp_close($conn_id);
    вывод файла, создай пустой screenlog.0
    PHP:
    1. <!DOCTYPE html>
    2. <html>
    3. <head>
    4.   <meta charset="utf-8">
    5.   <title>overflow</title>
    6.   <style>
    7.    .layer {
    8.     overflow: scroll; /* Добавляем полосы прокрутки */
    9.     width: 300px; /* Ширина блока */
    10.     height: 150px; /* Высота блока */
    11.     padding: 5px; /* Поля вокруг текста */
    12.     border: solid 1px black; /* Параметры рамки */
    13.    }
    14.   </style>
    15. </head>
    16. <body>
    17.    <div class="layer">
    18.    <pre>
    19.    <?=file_get_contents('screenlog.0')?>
    20.    </pre>
    21.   </div>
    22. </body>
    23. </html>
    не проверял, но возможно заработает
     
    pikazu нравится это.
  11. pikazu

    pikazu Новичок

    С нами с:
    4 июн 2016
    Сообщения:
    15
    Симпатии:
    0
    есть такой вот скрипт! Вставил html код, консоль показалась, настроил размеры, но не знаю, как тут вписать ftp, мне нужно сделать так, чтобы при обновлении этой страницы, файл качался так, без крона. FTP хост, юзер, пароль есть немного ниже, только я не знаю как это все вставить
     

    Вложения:

    • control.php.txt
      Размер файла:
      10,1 КБ
      Просмотров:
      2
  12. denis01

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

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