Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > file_exists


Автор: ekodrive 18.8.2006, 10:17
Вот написал маленький скрипт чтоб создал папку но выдает ошибку.

Код

if(file_exists("test")){
    echo"Нелзя";
    break;
}else{
mkdir("../test",'0666');
}


ошбка:
Warning: mkdir(../test): File exists in z:\home\127.0.0.1\www\reg\set.php on line 6


должен же он вывести слова "Нелзя
 pls hlp

Автор: ZlojEzh 18.8.2006, 10:38
Код

file_exists("../test")

Автор: Illuminaty 18.8.2006, 10:40
Ты проверяешь на существование один файл (директорию), а создаешь другой файл (директорию).
test = ./test != ../test
Ты проверяешь в текущей директории, а пытвешься создать в родительской

Автор: ekodrive 18.8.2006, 10:48
da vse poluchilos sposibo bolshoe no tam kak to ne rabotaet break;
vidaet oshibku chto 
Fatal error: Cannot break/continue 1 level in z:\home\127.0.0.1\www\fuad\index.php on line 4

Автор: ZlojEzh 18.8.2006, 11:11
а что тебе прервать надо?
я так понимаю эта конструкция не находится в цикле
если надо завершить весь скрипт используй die()
а если надо прервать выполнение какого-то участка кода - запихни его в конструкцию do {...} while (false) и используй break

Автор: vasac 18.8.2006, 11:16
<не успел>

Автор: ekodrive 18.8.2006, 12:18
vse sposibo bolshoe.die() mne ochen pomoq sposibo!!!

Автор: ekodrive 18.8.2006, 12:45
Ne xotel otkrit novuyu temu nu vot chto mne nujen chtob script sozdal papki avtomaticheski 
nu user1,user2,user3, daleee dalee dalee vse avtomaticheski kak eto delat xelp pls./

Автор: Vaulter 18.8.2006, 12:51
ekodrive, tipa vot tak:
Код

for($i = 1; $i <= 10; $i++ )
{
  $dirname = 'user'.$i;//will be user1, user2...
  if( !file_exists($dirname) ) mkdir($dirname, '0666');
}

Автор: szz 18.8.2006, 12:52
Код

$total_users=100;
for($i=0;$i<$total_users;++$i){
  $folder_name = 'users'.$i;
  if(file_exists("test")){
    die('Нелзя создать папку '.$folder_name);
  }else{
     mkdir($folder_name,'0666');
  }
}


Добавлено @ 12:52 
Опа! На секунду опоздал  smile 

Автор: ekodrive 18.8.2006, 13:18
sposibo bolshoe mne ochen pomoqli no problema v tom chto ya ne xochu chtob ano sozdala papki srazu nu xochu chtob koqda ya kajdiy raz obrashayus k skriptu on sozdal po odnoy papke po imenam user1,user2,user3 dale..

Автор: szz 18.8.2006, 15:53
Делаешь такой файл:

create_user.php
Код

  $folder_name = 'users'.$_REQUEST['num'];
  if(file_exists("test")){
    die('Нелзя создать папку '.$folder_name);
  }else{
     mkdir($folder_name,'0666');
     echo('Создали '.$folder_name);
  }

  потом запускаешь скрипт
create_user.php?num=1
create_user.php?num=2
create_user.php?num=3
 и тд

Автор: ekodrive 18.8.2006, 16:59
Vse poluchilos sposibo bolshoe!

Автор: AtaL 18.8.2006, 19:44
Раз уж тут вопрос по поводу file_exists, то и мои пять копеек:

вызов
file_exists('http://[путь]*.jpg'); - выдает false вне зависимости от существования файла.

почему?

Автор: szz 19.8.2006, 02:00
Цитата
почему?

   А с его ты взял, что эта функция работает с файлами из http?  Нигде такого не сказано, так что это твоя личная фантазия.

Автор: Guedda 19.8.2006, 09:16
file_exists работает на стороне сервера, поэтому полный путь не поддерживается (то бишь с http).
Корнем сайта будет ../

Удачи... 

Автор: beowulf 23.8.2006, 13:36
Цитата(szz @ 19.8.2006,  02:00)
Цитата
почему?

   А с его ты взял, что эта функция работает с файлами из http?  Нигде такого не сказано, так что это твоя личная фантазия.

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

Автор: -=Ustas=- 23.8.2006, 15:27
По http урлы на сущестование нужно пробивать сокетами, и в возвращенном ответе (в заголовках) смотреть и анализировать результат.

Автор: Vaulter 23.8.2006, 16:22
beowulf, 
-=Ustas=-, 
а просто fopen не катит?

Автор: vasac 23.8.2006, 16:32
Цитата(Vaulter @  23.8.2006,  16:22 Найти цитируемый пост)
а просто fopen не катит?

Неа. Если нет — получишь страницу с описанием 404-й ошибки скорей всего.

Автор: -=Ustas=- 23.8.2006, 16:44
Vaulter, покатит, если fopen-оболочка в php.ini включена. Но на большинстве хостингов ее отрубают. Поэтому только сокеты.

Автор: Vaulter 23.8.2006, 17:20
vasac, бр! после fopen я должен получить file handler 
и ничего более.

-=Ustas=-, ну... на большинство мне с высокой колокольни smile

Автор: -=Ustas=- 25.8.2006, 09:41
Цитата(Vaulter @  23.8.2006,  17:20 Найти цитируемый пост)
-=Ustas=-, ну... на большинство мне с высокой колокольни 

Зря!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)