Файловые вопросы к директориям

Quest

Guest
Файловые вопросы к директориям

Проблема возникла следующего порядка.
Есть запрос GET вариант index.php?dir=one&file=two

Dir - директория, file - файл соответсвенно

а теперь пытаюсь добраться до фаил в этой директории прочитать из него первую строчку и выкинуть на экран - не получается... Вобще как правильно проверить наличие файла в дочерней директории и открыть его оттуда ???

Зараннее спасибо.
 

Линк

Guest
не передавай имена файлов гетом. или не забывай резать косые

[m]file_exists[/m] - проверить наличие
открыть:
[m]file[/m]
[m]fopen[/m]
[m]fpassthru[/m]



PS: вообще почему так много людей кодят на php, даже не почитав ни одной книги? как можно писать на языке, не зная как он работает с файлами
 

GD

Guest
Re: Файловые вопросы к директориям

Автор оригинала: Quest
Проблема возникла следующего порядка.
Есть запрос GET вариант index.php?dir=one&file=two

Dir - директория, file - файл соответсвенно

а теперь пытаюсь добраться до фаил в этой директории прочитать из него первую строчку и выкинуть на экран - не получается...
file()
array_shift()

Вобще как правильно проверить наличие файла в дочерней директории и открыть его оттуда ???
file_exists()
 

Quest

Guest
проблема в следующем... да .. нашли директорию... что дальше нужно ли ее открывать ??? если нет.... как проверить наличие в ней файла ??? как правильно задавать путь ???
имя файла дается до расширения ... то есть - info -соответсвует info.html
 

desperado

Новичок
file_exists($base."/".$dir."/".$file)

может стоит почитать?
только не надо спрашивать, что такое $base
 

Линк

Guest
проверить наличие в ней файла
Ты (извини) тупой ?
[m]file_exists[/m]

PHP:
/*
Это супер ф-яя получает название файла и возваращет true если он есть в папке /idiots/
*/
function tupoi($file)
{
   return file_exists("/idiots/".$file);
}

правильно задавать путь
а как ты в оси у себя пути задаешь?
вот тебе задание: расскажи мне путь к файлу c:\Мои документы\doc1.doc

а потом к файлу /docs/doc1.doc

пока не расскажешь - никто не поможет
 

Quest

Guest
Линк, зачем же так грубо ??? на грубость нарываетесь, молодой человек.

Проблема в том что файл находится одной функцией, а открывется и читается другой. как это можно совместить ???

вот в таком формате -
PHP:
   if (file_exists("/".$dir."/".$a."html"))
система не дает мне ответа..даже на котрольную распечатку на экране.
 

Линк

Guest
что дает такой скрипт:
if (file_exists("/".$dir."/".$a."html")) {echo "A"} else {echo "B"}



система не дает мне ответа
какого ответа? что она должна давать? что выводиться на экран?
 

Quest

Guest
PHP:
if (file_exists("/".$dir."/".$a."html"))
{call_user_func("OpenFile",$a,$dir); return $buffer;}
молчок.. ставлю

PHP:
if (file_exists("/".$dir."/".$a."html"))  
{
 echo "Something";

call_user_func("OpenFile",$a,$dir); return $buffer;}
тоже самое. Слово "Something" не выводится.. то есть машина не нашла файл
 

Линк

Guest
Квест угадай чего?
там НЕТ ЭТОГО ФАЙЛА
или у тебя кривой путь

например точку забыл
на file_exists("/".$dir."/".$a."html"))
а file_exists("/".$dir."/".$a.".html"))


сделай echo "/".$dir."/".$a.".html"
 

XtremallyPurpur

Новичок
file_exists("/".$dir."/".$a.".html")

вот тут должна быть точка, если мне память не ошибает( hint: расширение файла пишется через точку)
 

Quest

Guest
PHP:
function Title($a,$dir){
 if (is_dir($dir)) {echo "1111";}
 if (file_exists("/".$dir."/".$a.".html")){ echo "!!!!";}}
Директорию находит - файл в этой директории нет .... пишет

Missing argument 2 for title() in c:\apache group\apache\htdocs\main\index.php on line 10
 

Линк

Guest
Missing argument 2 for title() in c:\apache group\apache\htdocs\main\index.php on line 10
мля)))))))))))) держите меня))))))))) ща сдохну))) :D :D :D

Квест, тебе перевести сообщение, или сам переведешь?
 

Quest

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

Линк

Guest
Квест слушай внимательно:
Missing argument 2 for title() означает: "не задан аргумент 2 для ф-ии titile"

это (в свою очередь) означает что ты вызывая ф-юю title не передал ей второй аргумент

это (опять же) означает что ты не умеешь вызывать ф-юю
это означает что ты не владеешь основами програмирования на php
это значит что тебе нужно читать книги про PHP (например большую красную библию)


PS: могу так же добавить, что если бы у Квеста были мозги, Он бы понял что file_exists не отрабатывает ибо у нее кривой путь. путь кривой ибо переменная dir не определена. Но Квест на столько туп, что даже не вывел путь на экран (как я предлагал)

все
я умолкаю. такого случая я еще не видал
 

Quest

Guest
Линк, тебе лекци прочесть по поводу возможных варинтов вызова функций ???функция была вызвана правильно

поскольку контрольная распечатка переменных вывела оба параметра при условии

PHP:
if(is_dir($dir)) {echo $dir $a;}

А вы, Линк - к сожалению мало чего соображаете - извините, но все что вы предложили - не работает, поскольку я этоуже испробывал.
 

гоша

Guest
Quest
все очень просто. Смотри:

PHP:
// включаем обработку всех ошибок
error_reporting(E_ALL);

// будем открывать файл
// c:\apache group\apache\htdocs\main\testdir\testfile.html
// убедись, что такой файл у тебя есть

$dir ="testdir";
$file="testfile";

// должно напечататься полное имя файла
$fname=realpath("$dir/$file.html");
print($fname);

// проверяем, что файл существует 
// и мы имеем право его читать
if(is_readable($fname))
{
   // да! открываем файл
   $fp=fopen($fname,"r");
   // читаем первую строчку
   $line=fgets($fp);
   // закрываем
   fclose($fp);
   // печатаем эту строчку
   var_dump($line);
} else {
   // нет, не удалось прочесть файл...
   echo "$fname not found";
}

Линк
а ты крутой парень, оказывается. Здорово ты его!
 

Линк

Guest
гоша, не говорите с ним. Он невменяемый.
 

Quest

Guest
гоша...

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