Исправьте ошибку PHP - обратите внимание на неопределенный индекс: url - PullRequest
0 голосов
/ 09 мая 2020

Я получаю предупреждение: использование неопределенной константы 'url' - предполагаемый "url" для строк 6 и 7 ниже из основного. php для плагина mp3j-player (монитор запросов обнаруживает еще 480 ошибок, я думаю на основе этих двух?). Я абсолютный новичок PHP, но пробовал различные коды, читая похожие проблемы, которые задавали другие. Это ни к чему не привело, либо плагин сломался. Насколько я понимаю, на данный момент это всего лишь уведомление, но оно может выйти из строя в будущих версиях PHP, поэтому, если возможно, я пытаюсь исправить это.

function removeRemoteTracks ( $playlist )
{
    $filtered = array();
    foreach ( $playlist as $track )
    {   
        if ( strpos($track['url'], $this->Rooturl) !== false 
            || ( strpos($track['url'], 'http://') === false && strpos($track['url'], 'https://') === false )
            || ( strpos($this->theSettings['mp3_dir'], "http://") !== false && strpos($track['url'], $this->theSettings['mp3_dir']) !== false ) )
        {
            $filtered[] = $track;           
        }
    }
    return $filtered;
}

Ура

Изменить: Итак .... после долгих проб и ошибок и после предложений Тиграна я обнаружил, что изменение 'url' на 'sr c' удалило PHP Уведомление. Я также попробовал «имя файла», которое сработало. Я нашел их в том же файле main. php, что и выше, и я полагаю, что все они будут работать? Кажется, все еще работает, как я использую плагин. Но ... это уловка? Могу ли я лучше "указать" url в списке ниже?

//###############
function newTrack ()
{
    return array(
        'src'           => '',
        'filename'      => '',
        'formats'       => array(),
        'counterpart'   => '',
        'title'         => '',
        'caption'       => '',
        'image'         => '',
        'link'          => ''
    );
}

Спасибо.

1 Ответ

0 голосов
/ 09 мая 2020

Это означает, что некоторые из ваших треков не имеют индекса URL. Отлаживайте их с помощью var_dump.

function removeRemoteTracks($playlist) {
    $filtered = [];

    foreach ($playlist as $track) {   
        // Debug
        if (!isset($track['url'])) {
            var_dump($track); // Look what's wrong with tracks without URL
        }

        if (strpos($track['url'], $this->Rooturl) !== false 
            || (strpos($track['url'], 'http://') === false && strpos($track['url'], 'https://') === false)
            || (strpos($this->theSettings['mp3_dir'], "http://") !== false && strpos($track['url'], $this->theSettings['mp3_dir']) !== false )) {
            $filtered[] = $track;           
        }
    }

    return $filtered;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...