A
A
Anton2020-05-07 12:15:29
PHP
Anton, 2020-05-07 12:15:29

How to make a normal conclusion that now on the air?

I made this algorithm.
The program generates the same file every 15 minutes, inside of which there are 2 lines: in the first line, the name of the artist and the name of the song of the current track, in the second, respectively, what will happen next.

The whole thing, through the xStarter utility, is loaded every 10 seconds to ftp, where it is already processed by a php script.

If the name of the current song from the database does not match the name of the song from the text file, then the name from the database is written to the previous song.

The file itself is run by Cron'om every minute.

Check out the script, can anyone have other examples of output implementation?

<?php
// Запрет на кеширование
nocache_headers();
// Устанавливаем время раьоты скрипта в 1 минуту
ini_set("max_execution_time", 60);
// Устанавливаем счетчик на 0
$x = 0;
// Запускаем цикл в 19 раз
while ($x < 19) {
    clearstatcache();
//укажем путь к файлу с нащваниями песен и артистов
    $streamfile = '/var/www/****/public_html/***/stream/stream.txt';
    if (file_exists($streamfile)) {
        echo "Файл существует";

        $last_update = filemtime($streamfile);

// Время отлично подходит в качестве параметра для функции date()
        $date_last_update = date('Y-m-d H:i:s', $last_update); // 2011-10-09 23:39:27

// получим файл по адресу
        $streamfile = file_get_contents($streamfile);
// конвертируем колировку в ютф8
        $streamfile = mb_convert_encoding($streamfile, "utf-8", "windows-1251");
// разбиваем текст на две строки
        $stream_parts = explode(PHP_EOL, $streamfile);
// разбиваем вторую строку на артиста и название трека
        $current_parts = explode(' - ', $stream_parts[1]);

// разбиваем первую строку
        $next_parts = explode(' - ', $stream_parts[0]);

        echo '<h3>текущий трек</h3><br>';
        echo 'имя исполнителя:<br>';
        echo $current_parts[0];
        echo '<br>название трека:<br>';
        echo $current_parts[1];


        echo '<br><h3>следующий трек</h3><br>';
        echo 'имя исполнителя:<br>';
        echo $next_parts[0];
        echo '<br>название трека:<br>';
        echo $next_parts[1];

        $get_current_song = get_field('current_song', 1613);
        $get_current_artist = get_field('current_artist', 1613);

        echo '<br><h3>текущий трек из базы</h3><br>';
        echo 'имя исполнителя:<br>';
        echo $get_current_artist;
        echo '<br>название трека:<br>';
        echo $get_current_song;

        if ((string)$current_parts[0] == (string)$get_current_artist) {
// если название артиста из файла(играет сейчас) совпадает с запрошенным из базы данных
            echo '<p style="color:red;">имя артиста совпадает с именем из базы текущего трека.</p>';
        } elseif ((string)$current_parts[0] == 'Джингл') {
            echo '<p style="color:black;">джинг в настоящем обнаружен</p>';
        } elseif ((string)$next_parts[0] == 'Джингл') {
            echo '<p style="color:black;">джинг в новом обнаружен</p>';
        } else {
            //
            echo '<p style="color:green;">имя артиста не совпадает с именем из базы текущего трека.</p>';
            $get_current_song = get_field('current_song', 1613);
            $get_current_artist = get_field('current_artist', 1613);

            $get_logs = get_field('logs', 1613);
            $write = $current_parts[0] . " - " . $current_parts[1] . "\r\n";
            $uplogs = $get_logs . $write;
            update_field('logs', $uplogs, 1613);

            // обновляем артиста раньше
            update_field('prev_artist', $get_current_artist, 1613);
            // обновляем название трека раньше
            update_field('prev_song', $get_current_song, 1613);

            // обновляем артиста сейчас
            update_field('current_artist', $current_parts[0], 1613);
            // обновляем название трека сейчас
            update_field('current_song', $current_parts[1], 1613);


            // обновляем артиста следующий
            update_field('next_artist', $next_parts[0], 1613);
            // обновляем название трека следующий
            update_field('next_song', $next_parts[1], 1613);

        }


// получаем счетчик
        $count = get_field('count', 1613);
        // добавляем 1 к счетчику
        $count++;
        // обновляем счетчик
        update_field('count', $count, 1613);

    } else {
        echo "ошибка открытия файла";
    }


    $x++; // Увеличение счетчика
// спим 3 секунды
    sleep(3);
}

Answer the question

In order to leave comments, you need to log in

1 answer(s)
A
Anton, 2020-05-07
Veida @aveyda7

Completely rewrote the script, now tied to api radioboss

<?php
nocache_headers();
// Устанавливаем время раьоты скрипта в 1 минуту

ini_set("max_execution_time", 60);
// Устанавливаем счетчик на 0
$x = 0;
// Запускаем цикл в 19 раз
while ($x < 30) {
    clearstatcache();
// Укажем путь к файлу
    $streamfile = '/var/www/*******/public_html/****.online/stream/stream.txt';
// Получим время последнего изменения файла
    $last_update = filemtime($streamfile);
// Конвертируем время
    $date_last_update = date('Y-m-d H:i:s', $last_update); // 2011-10-09 23:39:27
// получим файл по адресу
    $streamfile = file_get_contents($streamfile);
// конвертируем кодировку в ютф8
    $streamfile = mb_convert_encoding($streamfile, "utf-8", "windows-1251");
// разбиваем текст на две строки
    $stream_parts = explode(PHP_EOL, $streamfile);
// разбиваем первую строку, детали будущей песни
    $next_parts = explode(' - ', $stream_parts[0]);


// обновляем артиста следующий
    update_field('next_artist', $next_parts[0], 1613);
// обновляем название трека следующий
    update_field('next_song', $next_parts[1], 1613);

// Запросим документ
    $recentwidgeturl = 'https://c28.radioboss.fm/w/recenttrackslist?u=47&*****';
    $recentfile = file_get_contents($recentwidgeturl);


    $recentdata = json_decode($recentfile);
    $recent_raw = $recentdata[1]->title;

    $recent_parts = explode(' - ', $recent_raw);

// обновляем артиста раньше
    update_field('prev_artist', $recent_parts[0], 1613);
// обновляем название трека раньше
    update_field('prev_song', $recent_parts[1], 1613);


    $now_raw = $recentdata[0]->title;

    $now_parts = explode(' - ', $now_raw);
// обновляем артиста сейчас
    update_field('current_artist', $now_parts[0], 1613);
// обновляем название трека сейчас
    update_field('current_song', $now_parts[1], 1613);


// получаем счетчик
    $count = get_field('count', 1613);
// добавляем 1 к счетчику
    $count++;
// обновляем счетчик
    update_field('count', $count, 1613);


    $x++; // Увеличение счетчика
// спим 3 секунды
    sleep(2);
}

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question