Перейти к содержимому

Сервис обмена электронных валют


Вывод заданного количества строк содержимого переменной

#1 Kismedia

Kismedia
  • Пользователь
  • 315 сообщений
  • Репутация: 0
0

Отправлено 20 Январь 2011 - 17:50

Всем привет! ;)
Надеюсь эта тема не разрастется как моя предидущая и вопрос понятен ;)

Собственно такая задача:

Есть переменная $out, допустим ее содержимое такое:

$out = "Бла-бла
Бла-бла
Бла-бла
Бла-бла
Бла-бла
Бла-бла"


Что нужно? просто вывести заданное количество строк, заданное в переменной ,скажем $max

То есть, если $max=3 ,то
$out = "Бла-бла
Бла-бла
Бла-бла"


Вот есть пример такой же обрезки, но только по количеству символов:

if ( iconv_strlen($out, 'utf-8') > $max ){
$out = iconv_substr( $out, 0, $max, 'utf-8' );
$out = preg_replace('@(.*)\s[^\s]*$@s', '\\1', $out); //убираем последнее слово, ибо оно в 99% случаев неполное
}


Как посчитать количество строк и вывести не нашел.

Спасибо!

 

 

  • 0

#2 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 20 Январь 2011 - 18:38

Разбиваем строку переменной по разделителю на составляющие и из полученного массива выводим нужное количество элементов:
<?php
$max = 3;
$out = "Бла-бла
Бла-бла
Бла-бла
Бла-бла
Бла-бла
Бла-бла";

$res = explode("\n", $out);

for($i = 0; $i < $max; $i++){
echo $res[$i]. "<br />";
}

?>

Лучше, мне кажется, использовать другой разделитель, типа ||, тогда 2 строки кода будут такими:
$out = "Бла-бла||Бла-бла||Бла-бла||Бла-бла||Бла-бла||Бла-бла";
$res = explode("||", $out);

  • 0

#3 matroskin8

matroskin8
  • Пользователь PRO
  • 767 сообщений
  • Репутация: 143

Отправлено 20 Январь 2011 - 21:23

Да, если надо просто получить $out с содержимым:
$out = "Бла-бла
Бла-бла
Бла-бла";

то код можно немного изменить:
<?php
$max = 3;
$out = "Бла-бла
Бла-бла
Бла-бла
Бла-бла
Бла-бла
Бла-бла";

$res = explode("\n", $out);

for($i = 0; $i < $max; $i++){
$result[] = trim($res[$i]);
}
$out = null;
$out = implode("<br />", $result);
echo $out;
?>

  • 0


#4 Kismedia

Kismedia
    Topic Starter
  • Пользователь
  • 315 сообщений
  • Репутация: 0

Отправлено 20 Январь 2011 - 22:47

Да, если надо просто получить $out с содержимым


Да, с содержимым нужно было, записать все в итоге в $out

Все работае, спасибо! ;)

Изменил только "<br />" на "\n" на выходе:

$out = implode("\n", $result);

  • 0

#5 Alman

Alman
  • Пользователь
  • 1 сообщений
  • Репутация: 0

Отправлено 01 Февраль 2011 - 03:42

Здравствуйте.

Может не в тему, но вдруг пригодится :)

Вывод некоего числа последних строк из файла (массива) можно сделать таким образом

<?php
$view_cnt = 20; # Количество строк для вывода

$file = file("file.txt"); # Чтение данных из файла
$count = count($file); # Подсчет количества строк в файле

$view = $count - $view_cnt; # С какой строки вести счет для вывода (не знаю, как еще обозвать эту переменную ) :)

for ($i = $view; $i < $count; $i++) { # Собственно тут и происходит священнодействие :)
echo $file[$i]. "<br>";
}
?>

  • 0


Оформление форума – IPBSkins.ru