закачка файла и проверка на "слово"

a1exey

Новичок
закачка файла и проверка на "слово"

Люди, помогите пожалуйста, не силён я в пхп, нужно чтобы при закачке файла осуществлялся поиск в самом файле на слово private (оно в самом конце файла должно быть, примерно в 20 последних символах) закачку я осуществил, а вот как проерить на слово в файле не знаю :(

$f = $_FILES["file"];
$fname = unesc($f["name"]);
$tmpname = $f["tmp_name"];
$whattoread = fopen($tmpname, "r") or die("Файл не найден.");
$file_contents = fread($whattoread, filesize($tmpname));
fclose($whattoread);
if (!ereg ("private", "$file_contents"))
bark("ошибка трали-вали....");

bark - функция вывода ошибки.

но этот код не работает :( точнее если вывести $file_contents то там только первые 265 символов, а сам файл может весить от 10кб до 1 МБ.
и может как нибудь можно сделать просмотр не по всему файлу а именно по последним 20-30 символам.
 

Фанат

oncle terrible
Команда форума
если вывести $file_contents то там только первые 265 символов
а что выдаёт filesize($tmpname)?
может как нибудь можно сделать просмотр не по всему файлу а именно по последним 20-30 символам.
можно.
см [m]fseek[/m]
 

a1exey

Новичок
а что выдаёт filesize($tmpname)?
________________
вот:
filesize(C:\WINNT\TEMP\php196.tmp)
 

SiMM

Новичок
> интересно, а как можно добиться такого эффекта?
PHP:
echo "filesize($tmpname)";
;)
 

a1exey

Новичок
Автор оригинала: Фанат
интересно, а как можно добиться такого эффекта?
чтобы переменная пропарсилась, а функция - нет?
это я ступил :( в print запихнул функцию :)
я помню что то делал мне выводилось всё сожержимое файла, а что делал щас уже вспомнить не могу...:(...щас почитаю freed и fseek может как то получится сделать ...эхх...
 

a1exey

Новичок
$whattoread = fopen($tmpname, "rb") or die("Файл не найден.");
$file_contents = fread($whattoread, filesize($tmpname));
fclose($whattoread);
if (!ereg ("private", "$file_contents"))
bark("$file_contents ");
вот так читается весь файл, а как сделать чтобы только последние 100 байт например, не пойму ;(
 

a1exey

Новичок
я прочитал всё что по русски, и уже много способов перепробовал.
делаю вот так, но всё равно выводится весь файл :(
$file_contents = fread($whattoread, filesize($tmpname));
fseek($whattoread, -100, SEEK_END);
fclose($whattoread);
if (!ereg ("private", "$file_contents"))
bark("$file_contents");
помогите если знаете...:(
 

a1exey

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

Tor

Новичок
продолжая вопрос

после первой приведенной строчки
и что делается во второй строчке?
 

a1exey

Новичок
я просто прочитал инструкцию по этой fseek и сделал как там было показано, в надежде получить ПОСЛЕДНИЕ 100 БАЙТ с конца файла.
 
Сверху