У меня есть PHP-скрипт для управления загрузкой (только VIP-пользователи могут загружать) Сценарий работает с распространенными менеджерами загрузки и браузерами (такими как Firefox, IE, IDM и Edge), но я получаю эту ошибку, когда хочу использовать хром для загрузки файла:
Неопределенное смещение: 1 в /home/username/public_html/index.php в строке 103.
Строка № 103: список($range, $extra_ranges) = взорвать(',', $range_orig, 2);
//check if http_range is sent by browser (or download manager)
if ($is_resume && isset($_SERVER['HTTP_RANGE']))
{
list($size_unit, $range_orig) = explode('=', $_SERVER['HTTP_RANGE'], 2);
if ($size_unit == 'bytes')
{
//multiple ranges could be specified at the same time, but for simplicity only serve the first range
//http://tools.ietf.org/id/draft-ietf-http-range-retrieval-00.txt
list($range, $extra_ranges) = explode(',', $range_orig, 2);
}
else
{
$range = '';
}
}
Я пробовал некоторые коды, которые я нашел здесь, в темах stackoverflow, но они не работают!
list($range, $extra_ranges) = explode(',', $range_orig);
list($range, $extra_ranges) = array_pad(explode(',', $range_orig, 2), -2, null);
list($range, $extra_ranges) = explode(',', $range_orig. ',');
Дополнительные диапазоны являются необязательными.
По сути, explode(',', $range_orig, 2)
дает вам либо массив из одного значения (когда есть только один диапазон), либо массив из 2 значений (когда их как минимум 2).
Вы можете использовать array_pad
перед explode
, чтобы добавить null
к вашему массиву во второй индекс. Вы пробовали это, но использовали отрицательный индекс, что делает ваш массив [null, <first_range>]
вместо [<first_range>, null]
.
Итак, измените свой код на этот:
list($range, $extra_ranges) = array_pad(explode(',', $range_orig, 2), 2, null);
@RezaFH Тогда это другая проблема, вы должны опубликовать еще один вопрос и быть как можно более конкретным в том, что вы пытались сделать.
Большое спасибо, ошибка исчезла с вашим кодом, но загрузка с хромом по-прежнему не удалась, и в файле журнала ошибок нет! Помогите, как найти проблему?