Примечание: неопределенное смещение: 1 при возврате числа меньше тысячи

Я получил этот код онлайн и реализовал его в функции, которая извлекает данные из URL фидов. вот код:

function subs_count() {
$x = esc_attr( subs_count_ret() );
$x_number_format = number_format($x);
$x_array = explode(',', $x_number_format);
$x_parts = array('k', 'm', 'b', 't');
$x_count_parts = count($x_array) - 1;
$x_display = $x_array[0] . ((int) $x_array[1][0] !== 0 ? '.' . $x_array[1][0] : '');
$x_display .= $x_parts[$x_count_parts - 1];
return $x_display;
}

Код работает нормально, если число выше 1k, но когда найденный номер < 1k он возвращает это число в дополнение к ошибке ниже:

Notice: Undefined offset: 1 in C:\wamp\www\preview\wp-content\plugins\xx\xx.php on line 7

а также

Notice: Undefined offset: -1 in C:\wamp\www\preview\wp-content\plugins\xx\xx.php on line 8

Есть идеи ?

Спасибо!

0

Решение

Я понял. Я поместил весь код внутри subs_count_ret() функция, и она работала нормально, плюс, мне нужно это условие:

if(empty($num) || $num < 1000) return $num;

полный код:

function subs_count_ret() {
$xmlData = file_get_contents( 'http://gdata.youtube.com/feeds/api/users/user' );
$xmlData = str_replace('yt:', 'yt', $xmlData);
$xml = new SimpleXMLElement($xmlData);
$ytio_subs = $xml->ytstatistics['subscriberCount'];
$num = $ytio_subs;
if(empty($num) || $num < 1000) return $num;
$x = round($num);
$x_number_format = number_format($x);
$x_array = explode(',', $x_number_format);
$x_parts = array('k', 'm', 'b', 't');
$x_count_parts = count($x_array) - 1;
$x_display = $x;
$x_display = $x_array[0] . ((int) $x_array[1][0] !== 0 ? '.' . $x_array[1][0] : '');
$x_display .= $x_parts[$x_count_parts - 1];
return  $x_display;
}

Всем спасибо! Хорошего дня !

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]