@ernestby

Как исправить ошибку Notice: Undefined offset: 1?

Есть такой код:
list($type, $file) = @explode(':', $file);
				
				switch ($type)
				{
					case 'js':
						self::add_js(array('files' => $file, 'order' => $order));
						break;
					case 'css':
						self::ia_print_css(array('files' => $file, 'order' => $order));
						break;
					case 'text':
						self::add_js(array('text' => $file, 'order' => $order));
				}


Ошибка появляется здесь: list($type, $file) = @explode(':', $file);

Если распечатать $file до этой строки, выводит:

string 'text:Loading jQuery API...' (length=26)
string 'js:jquery/jquery' (length=16)
string 'text:Loading Subrion Awesome Stuff...' (length=37)
string 'js:intelli/intelli' (length=18)
string 'js:_IA_URL_tmp/cache/intelli.config' (length=35)
string 'js:intelli/intelli.minmax' (length=25)
string 'js:frontend/footer' (length=18)
string 'js:jquery/plugins/jquery.numeric' (length=32)
string 'js:_IA_URL_tmp/cache/intelli.lang.en' (length=36)
string 'js:bootstrap/js/bootstrap.min' (length=29)
string 'css:iabootstrap' (length=15)
string 'css:iabootstrap-responsive' (length=26)
string 'css:user-style' (length=14)
string 'css:_IA_URL_plugins/fancybox/js/jquery.fancybox' (length=47)
string 'js:_IA_URL_plugins/fancybox/js/jquery.fancybox.pack' (length=51)
  • Вопрос задан
  • 7108 просмотров
Пригласить эксперта
Ответы на вопрос 4
MintTea
@MintTea
Не знаю точно, что у вас там происходит за пределами этого блока, но попробуйте, во-первых, сменить имя переменной $file в левой части на что-нибудь другое, во-вторых - обернуть весь блок в
if (strlen($file)) {
}
Ответ написан
Комментировать
@Arik
А как вы так "распечатали" эту переменную? Это массив? его надо гонять по циклу тогда, если строка с переносом строки, то тогда разбивать по перенесу. И лучше везде использовать новые переменные, от этого и теряете место где переназначается и все ломается.

upd:
$fileExplode = explode(':', $file, 2);

if(count($fileExplode) == 2)
    {
    list($type, $file2) = $fileExplode;

    switch ($type)
        {
//...
        }
    }
Ответ написан
Комментировать
@ernestby Автор вопроса
Foreach есть
foreach ($resources as $file)
		{
			$file = trim($file);
			if (empty($file))
			{
				continue;
			}
			if (isset($smarty->resources[$file]))
			{
				self::ia_add_media(array('files' => $smarty->resources[$file], 'order' => $order), $smarty);
			}
			else
			{

				list($type, $file2) = @explode(':', $file);

				switch ($type)
				{
					case 'js':
						self::add_js(array('files' => $file2, 'order' => $order));
						break;
					case 'css':
						self::ia_print_css(array('files' => $file2, 'order' => $order));
						break;
					case 'text':
						self::add_js(array('text' => $file2, 'order' => $order));
				}
			}
		}
Ответ написан
Комментировать
@iSensetivity
бухгалтер, програміст-самоук
if (empty($file))
{
continue;
}


То есть, если переменная $file пустая, то explode ее всеравно разбирает?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы