Как определить размер указанного файла и подсчитать в нем количество строк

Adobe

Новичок
Как определить размер указанного файла и подсчитать в нем количество строк

Привет всем!
Подскажите как узнать размер файла, если например он лежит в папке uploads/file.txt
Пробовал функцией filesize - нифига не работает
Приблизительный код:
PHP:
 $file = ROOT_DIR.'/uploads/pass.dat';
$size = filesize($file);
echo $size;
Содержимое файла типа:
Nackname | 21.12.2007 | 03:30\n
Nackname | 20.12.2007 | 23:30\n
Nackname | 22.12.2007 | 13:40\n
Nackname | 23.12.2007 | 07:20\n

как узнать количество строк в этом файле?
Пробовал функцией count - она возвращает 0
 

TutanXamoN

Новичок
Ладно я чёт добрый так что в дебаг ты сам сходишь а пока:
1. запости реальный(!!!) код открытия файла + взятие и вывод сайза
2. существует ли файл и непуст ли он?
3. ты серьезно полагал что count выведет кол-во строк?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Adobe
Давай ты подумаешь 50 раз и перепишешь свой вопрос предварительно прочитав правила форума ок?
Мы подождем
 

Adobe

Новичок
Mr_Max
Правила читал, есдибы не читал, то вообще бы был ужас :)

-~{}~ 21.12.07 00:35:

ты серьезно полагал что count выведет кол-во строк?
Ну я php всего недели 3 изучаю :) А то, что подсчет строк - count это я в книге вычитал
 

Фанат

oncle terrible
Команда форума
Adobe, ты, главное, не обращай внимания на ворчание некоторых отвечающих. Народ тут малость грубоват, но зато с верного пути не дадут сбиться.

Самый тупой способ посчитать строки - это загрузить файл в массив, и посчитать размер этого массива.
file() отебе нужна

можно ещё как-нибудь поинтеллектуальнее - способов можно придумать сотню. Но пока, наверное, этого хватит.
 

TutanXamoN

Новичок
Приблизительный код:
Тебя [skipped] попросили выложить [skipped] [skipped] реальный код а не [skipped] набросанную за секунду в редактировании топика.

Если хочешь чтоб тебе помогли соблюдай правила. Если нет - у тебя есть книжка.

ЗЫ Пардон за грубость но у меня возникло непреодолимое желание помочь человеку в решении конкретной достаточно простой задачи а он сопротивляется...
 

Adobe

Новичок
TutanXamoN
Я вытащил только то, что конкретно мне нужно узнать, ну если Вам нужен весь код, то пожалуйста:
PHP:
if(!defined('DATALIFEENGINE'))
{
  die("Hacking attempt!");
}

if($member_db[1] != 1){ msg("error", $lang['addnews_denied'], $lang['db_denied']); }

require_once (ROOT_DIR.'/engine/inc/pass_function.php');
require_once (ROOT_DIR.'/engine/data/config_pass.php');

if ($action == "dosave") {
    $find[]     = "'\r'";
    $replace[]  = "";
    $find[]     = "'\n'";
    $replace[]  = "";

$handler = @fopen(ENGINE_DIR.'/data/config_pass.php', "wb");
fwrite ($handler, "<?php \n\n//Test configurations
                         \n\n\$config_pass = array(
                         \n\n'version_id' => \"v 1.3\",\n\n");

foreach ($save_con as $name => $value) {
    $value = trim(stripslashes ($value));
    $value = htmlspecialchars  ($value, ENT_QUOTES);
    $value = preg_replace($find, $replace, $value);
    fwrite($handler, "'{$name}' => \"{$value}\",\n\n");
}

fwrite($handler, ");\n\n?>");
fclose($handler);

msg ("info", "Настройки паролей",
     "{$lang['opt_sysok_1']}<br /><br />
      <a href=\"{$PHP_SELF}?mod=passadm\">{$lang['db_prev']}</a>");
}

  //Очистка лога

 if (isset($_POST['clean'])) {
 $file = ROOT_DIR.'/uploads/pass.dat';

 unlink($file);

 $arr = array("login" => "ЛОГИН",
				 "decs"  => " | ",
				 "pass"  => "ПАРОЛЬ",
				 "date"  => "ДАТА",
				 "time"  => "ВРЕМЯ\n");

 $starttext= "".$arr['login']."".$arr['decs']."".$arr['pass']."".$arr['decs']."".$arr['date']."".$arr['decs']."".$arr['time']."";


	if ((@fopen ($file, "r"))==false) {
 		$fd = fopen ($file, "a+");
 		fwrite ($fd, "$starttext");
 		fclose($fd);
 		chmod ($file, 0777);
	   }

msg ("info", "Очистка лога паролей",
     "{$lang['clean_log']}<br /><br />
      <a href=\"{$PHP_SELF}?mod=passadm\">{$lang['db_prev']}</a>");
}
 $file = ROOT_DIR.'/uploads/pass.dat';
 $size = filesize($file);
echoheader("Pass", "Настройки пользовательских паролей");

opentable();
tableheader('Настройки пользовательских паролей');
echo<<<HTML
<form action="" method="POST">
<table width="100%">
HTML;

  showRow($lang['address_head'], $lang['address_body'], "<input class=edit type=text style=\"text-align: center;\" name='save_con[address]' value='{$config_pass['address']}' size=40>");

  showRow($lang['send_email_head'], $lang['send_email_body'], makeDropDown(array("yes"=>$lang['opt_sys_yes'],"no"=>$lang['opt_sys_no']), "save_con[sendemail]", "{$config_pass['sendemail']}"));

  showRow($lang['write_file_head'], $lang['write_file_body'], makeDropDown(array("yes"=>$lang['opt_sys_yes'],"no"=>$lang['opt_sys_no']), "save_con[writefile]", "{$config_pass['writefile']}"));

  showRow($lang['opt_sys_at'], $lang['opt_sys_atd'], "<input class=edit type=text style=\"text-align: center;\" name='save_con[quantityhour]' value='{$config_pass['quantityhour']}' size=10>");

echo<<<HTML
<table border="0" width="100%">
	<tr>
	<td class="option" style="padding-bottom:10px; padding-top:10px; padding-left:10px;" width="10%">

  	<form action="" method="POST">
      <input class="buttons" type="submit" name="do" value="Сохранить">
      <input class="buttons" type="hidden" name="action" value="dosave">
      </form>

    </td>

	<td class="option" style="padding-bottom:10px; padding-top:10px; padding-left:10px;" width="90%">

	<form action="" method="POST">
    <input class="buttons" type="submit" name="clean" value="Очистить">
    </form>

    </td>
	</tr>
<td>&nbsp;&nbsp;<a target="_blank" href="/uploads/pass.dat">Просмотреть лог</a> Файл pass.dat весит $size</td>
</table>
HTML;

closetable();


echofooter();
Это Вам что то дало?
 

TutanXamoN

Новичок
Покажи в данном коде попытку взятия размера файла uploads/file.txt . Его вывод открытие и подсчёт строк.

Нет ето мне ничего не дало ибо ето не есть код в котором ты открываешь свой файл не можешь получить размер и кол-во строк.

Я вижу здесь только кусок достаточно интересной с позволения сказать "админки" и человека который вместо чтения конкретной справочной информации и методов решения проблем пытаеться не выдавая реальной ситуации и кода получить решение.

ЗЫ а насчёт прочтённых правил - постить весь код запрещено
 

Adobe

Новичок
...
$file = ROOT_DIR.'/uploads/pass.dat';
$size = filesize($file);
...
Файл pass.dat весит $size

P.S. Еслив что, то ctrl+f
 

TutanXamoN

Новичок
P.S. Еслив что, то ctrl+f
Я про ето знаю.


Теперь уже етот файл. Так его размер не выводится или таки uploads/file.txt ?

Давай ты напишешь САМ код взятия размера САМ создашь файл проверяемый етим кодом поставишь максимальный уровень обработки ошибок и запостишь сюда результаты.
 

Adobe

Новичок
Теперь уже етот файл.
Да какая разница pass.dat или file.txt, че, не файлы что ли?
создашь файл проверяемый етим кодом
Если ты внимательно смотрел код, то этот файл там создается. Код работает, я только хочу узнать как размер обычного, подчеркиваю обычного файла в котором несколько строк записано
 

TutanXamoN

Новичок
я только хочу узнать как размер обычного, подчеркиваю обычного файла в котором несколько строк записано
Вот с етого вопроса и стоило создавать топик.

1. способ с использованием filesize() абсолютно верен единственное что возможно ты неверно указываешь путь к файлу - положи рядом со скриптом любой файл и скорми его filesize() и я готов поспорить размер оно выведет.
2. кол-во строк - file() + count() опять таки выведет кол-во строк.
 
Сверху