Пыха всегда с тобой

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Мы в твиттере!
Мы вконтакте!
Мы на яндексе!

Краснодарское время: 23 Май, 2012, 04:54:32

Страниц: [1] 2 3
Печать
Автор Тема: Пустые строки при чтении файла  (Прочитано 1816 раз)
0 Пользователей и 1 Гость смотрят эту тему.
vitalys    ↓ 
07 Март, 2009, 02:11:40
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 12
Сила слова: 0

Собственно, сначала мой скрипт, чтобы было понятнее:
PHP
<?php
$base="news/news.txt"; // Файл где находиться инфа
 
$general=file($base); //Заносим весь наш файл в массив
 
$lines_file=file($base); //Еще разочек занесем наш файли в массив :-)
 
$lines=count($lines_file); //Считаем общее количество записей в файле, ну т.е. строк.
 
$pmessages = file("$base");
 
$onlyg=5; //Сколько записей выводить на страницу
 
/*
 
Тут начинаеться самая главная часть нашего файла
Просчитываем странички :-)
 
 
*/

$page=($_GET['page']);
if (@$page == "" or $page < 0) //Если переменная $page равна пустоте, или она меньше 0
{
$page = "1"; //Тогда переменнная $page=1
}
 
$first = count($pmessages) - ($onlyg * ($page - 1));
$second = count($pmessages) - ($onlyg * $page) + 1;
 
if ($second < 1)
{
$second = 1;
}
 
$pages = (int) ((count($pmessages) + $onlyg) / $onlyg); //Считаем общее количество страниц
 
for ($onlyg = 1; $onlyg <= $pages; $onlyg++) //Загоняем все в цикл, т.е. присваемваем переменно $onlyg значение
//1 и пока она меньше или равна $pages увеличиваем ее на единичку.
{
if ($onlyg != $page) //Если $olyg не равняется $page
{
//То наши ссылки имеют такой вид
$zline .= "[ <a href=\"index.php?page=$onlyg\" class='forw'>$onlyg</a> ]";
}
if ($onlyg == $page) //А если равняеться
{
//То такой
$zline .= "[ <font class='forw'><u>$onlyg</u></font> ]"; //Ну т.е. в выводим не в виде ссылки ту страницу где сейчас находиться пользователь
}
}
 

/*
 
Теперь выводим саму информацию
 
*/

for ( $i = $first-1; $i >= $second-1; $i--)
{
$mess = explode("|",$general[$i]);  
 
$id = $i;
$id++;
//ну а дальше уже выводим наши данные
echo "<img src='img/mini/info.gif' border='0' width='14' height='14'>&#38;nbsp;<font class='newsdate'>$mess[0]</font> &#38;nbsp;&#38;nbsp;&#38;nbsp; <b>$mess[1]</b><br>$mess[2]<br><br>\n";
 

    }  
echo "<center>$zline<br>"; //Выводим ссылки
 
echo "<font class='txt'>Новостей: <b>$lines</b></font></center>"; //Выведем информацию пользователю о общем количестве записей
?>

А теперь насущный вопрос - как сделать так, чтобы считались (и выводились) только НЕпустые строки?
 
P.S. Заранее - огромнейшее спасибо. Мудохаюсь 3й час, не вижу выхода... (с php знаком очень издалека:()
« Последнее редактирование: 07 Март, 2009, 02:30:37 от Timur » Записан
Timur    ↓ 
07 Март, 2009, 02:34:43 , спустя 23 минуты 3 секунды
НЕ ХУЕТА! ХУЕТА!

NullPointerException
Группа: в ухо

Карма: 56
Сообщений: 1009
Сила слова: 5.55

сразу после того как считал файл в массив, пройдись по нему циклом и удали все пустые эдемеленты (http://ru.php.net/unset)
 
PHP
$general=file($base); //Заносим весь наш файл в массив
$lines_file=file($base); //Еще разочек занесем наш файли в массив :-)
$pmessages = file("$base");
— это, пардон, пиздец
Записан
aivee    ↓ 
07 Март, 2009, 11:51:19 , спустя 9 часов 16 минут 36 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Джедаи

Карма: 28
Сообщений: 1659
Сила слова: 1.69

такое чувство, что код по кускам был скопипастен.... код ваще пиздец
неудивительно что мудохаешся 3й час
Записан

21st century slave
CTAPbIu_MABP    ↓ 
07 Март, 2009, 12:14:03 , спустя 22 минуты 44 секунды
НЕ ХУЕТА! ХУЕТА!

мавр
Группа: в ухо

Карма: не нужна
Сообщений: 5187
Сила слова: 1.81


PHP
$general=file($base); //Заносим весь наш файл в массив
$lines_file=file($base); //Еще разочек занесем наш файли в массив :-)
$pmessages = file("$base");
— это, пардон, пиздец
поддерживаю
 
PHP
function blank_lines($var) {
    return !!$var;
}
 
$array = array ('', 2, '', 4, 5);
 
print_r(array_filter($array, "blank_lines"));
Записан

java.lang.OutOfMemoryError
vitalys    ↓ 
08 Март, 2009, 10:45:03 , спустя 1 день 10 часов 31 минуту
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 12
Сила слова: 0

PHP
<?php
$base="news/news.txt"; // Файл где находиться инфа
 
$gen=file($base); //Заносим весь наш файл в массив
 
function Clear_array_empty($gen)
{
$general = array();
foreach($gen as $val)
{
    if (!empty($val))
    {
        $general[] = trim($val);
    }
}
return $general;
}
 
Clear_array_empty($gen);
 
$lines_file=file($base); //Еще разочек занесем наш файли в массив :-)
 
$lines=count($lines_file); //Считаем общее количество записей в файле, ну т.е. строк.
 
$pmessages = file("$base");
 
$onlyg=5; //Сколько записей выводить на страницу
 
/*
 
Тут начинаеться самая главная часть нашего файла
Просчитываем странички :-)
 
 
*/

$page=($_GET['page']);
if (@$page == "" or $page < 0) //Если переменная $page равна пустоте, или она меньше 0
{
$page = "1"; //Тогда переменнная $page=1
}
 
$first = count($pmessages) - ($onlyg * ($page - 1));
$second = count($pmessages) - ($onlyg * $page) + 1;
 
if ($second < 1)
{
$second = 1;
}
 
$pages = (int) ((count($pmessages) + $onlyg) / $onlyg); //Считаем общее количество страниц
 
for ($onlyg = 1; $onlyg <= $pages; $onlyg++) //Загоняем все в цикл, т.е. присваемваем переменно $onlyg значение
//1 и пока она меньше или равна $pages увеличиваем ее на единичку.
{
if ($onlyg != $page) //Если $olyg не равняется $page
{
//То наши ссылки имеют такой вид
$zline .= "[ <a href=\"index.php?page=$onlyg\" class='forw'>$onlyg</a> ]";
}
if ($onlyg == $page) //А если равняеться
{
//То такой
$zline .= "[ <font class='forw'><u>$onlyg</u></font> ]"; //Ну т.е. в выводим не в виде ссылки ту страницу где сейчас находиться пользователь
}
}
 

/*
 
Теперь выводим саму информацию
 
*/

for ( $i = $first-1; $i >= $second-1; $i--)
{
$mess = explode("|",$general[$i])
 
$id = $i;
$id++;
//ну а дальше уже выводим наши данные
echo "<img src='img/mini/info.gif' border='0' width='14' height='14'>&nbsp;<font class='newsdate'>$mess[0]</font> &nbsp;&nbsp;&nbsp; <b>$mess[1]</b><br>$mess[2]<br><br>\n";
 

    } 
echo "<center>$zline<br>"; //Выводим ссылки
 
echo "<font class='txt'>Новостей: <b>$lines</b></font></center>"; //Выведем информацию пользователю о общем количестве записей
?>
 

Не работает :( А хотелось бы.
Знаю, что ошибаюсь, но не знаю, где...
 
P.S. Sorry, за дятлизм, но форум для новичков, всетаки...
Записан
phpdude    ↓ 
09 Март, 2009, 12:49:16 , спустя 2 часа 4 минуты 13 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 344
Сообщений: 20780
Сила слова: 1.66

да вы все тут пиздец.
 
PHP
$withoutblank = array_filter(array_map("trim",$lines));
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
vitalys    ↓ 
09 Март, 2009, 01:29:48 , спустя 40 минут 32 секунды
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 12
Сила слова: 0

Гррр... посл. вариант не работает. Trim... он же пробелы убирает. А не пустые строки. :(
Записан
phpdude    ↓ 
09 Март, 2009, 01:31:09 , спустя 1 минуту 21 секунду
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 344
Сообщений: д-о-х-у-я!
Сила слова: 1.66


Гррр... посл. вариант не работает. Trim... он же пробелы убирает. А не пустые строки. :(
привык считать строки с одними пробелами - пустыми.
 
тогда так
 
PHP
$withoutblank = array_filter($lines);
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
vitalys    ↓ 
09 Март, 2009, 01:40:53 , спустя 9 минут 44 секунды
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 12
Сила слова: 0

все равно считает (и выводит) несколько пустых новостей. :(
чтобы было понятнее, файл вида:
дата|заглавие|новость
Записан
vitalys    ↓ 
11 Март, 2009, 12:39:54 , спустя 1 день 22 часа 59 минут 1 секунду
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 12
Сила слова: 0

всё равно что то не то. Выводит пустые новости... :(
Записан
Убийца    ↓ 
11 Март, 2009, 12:58:02 , спустя 18 минут 8 секунд
НЕ ХУЕТА! ХУЕТА!

адский парень
Группа: Жмурики

Карма: 7
Сообщений: 530
Сила слова: 1.32

TC, код -- просто Полный пиздец
 
по делу:
 
PHP

$withoutblank = preg_grep("#^\s*$#",$lines,PREG_GREP_INVERT);
 
не сдавайсо :)
Записан
vitalys    ↓ 
11 Март, 2009, 08:50:17 , спустя 7 часов 52 минуты 15 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 12
Сила слова: 0

гррррр :( не воркает, все равно пустые выводит, сцобако
Записан
kirik    ↓ 
11 Март, 2009, 08:55:23 , спустя 5 минут 6 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 1
Сила слова: 0

Для кого флаг FILE_SKIP_EMPTY_LINES придумывали?
Записан
Убийца    ↓ 
11 Март, 2009, 09:07:05 , спустя 11 минут 42 секунды
НЕ ХУЕТА! ХУЕТА!

адский парень
Группа: Жмурики

Карма: 7
Сообщений: 530
Сила слова: 1.32


гррррр :( не воркает, все равно пустые выводит, сцобако
файл прикрепи сюда :)
Записан
vitalys    ↓ 
11 Март, 2009, 03:36:40 , спустя 6 часов 29 минут 35 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 12
Сила слова: 0

Text

Дата 6|Заголовок 6|Новость 6
Дата 5|Заголовок 5|Новость 5
 

 
Дата 4|Заголовок 4|Новость 4
 

 
Дата 3|Заголовок 3|Новость 3
 
Дата 2|Заголовок 2|Новость 2
Дата 1|Заголовок 1|Новость 1
 
А это не в идеале :D
« Последнее редактирование: 11 Март, 2009, 03:41:52 от vitalys » Записан
Страниц: [1] 2 3
Печать
 

Перейти в: