Здравствуйте! Помогите понять где собака порылась? 1. Запускаемый скрипт лежит в директории: /home/s/site/public_html/folder/scrypt.php 2. Копируемый файл index.php находится в той же папке: /home/s/site/public_html/folder/index.php 3. Права доступа папок и файла 777 Вариант 1 copy("index.php", "index.php.bak"); - работает copy("index.php", "arhive/index.php.bak"); - не работает copy("/home/s/site/public_html/folder/index.php", "/home/site/public_html/folder/index.php.bak"); - работает copy("/home/s/site/public_html/folder/index.php", "/home/s/site/public_html/folder/arhive/index.php.bak"); - не работает Вариант 2 Запускаемый скрипт лежит в папке: /home/s/site/public_html/folder/scrypt.php Копируемый файл index.php находитсяв папке: /home/s/site/public_html/index.php copy("/home/s/site/public_html/index.php", "/home/s/site/public_html/folder/arhive/index.php.bak"); - не работает Никаких сообщений об ошибках при запуске на хостинге нет При запуске в Денвере Warning: copy(arhive/index.php.bak) [function.copy]: failed to open stream: No such file or directory in Z:\home\localhost\www\site\public_html\folder\scrypt.php on line 36 Я понимаю, что что-то в путях к файлам, но понять не могу что именно. Прописываю полный путь. Для точности смотрю путь к копируемому файлу в переменной $_SERVER['SCRIPT_FILENAME'] Заранее благодарен!
Я тоже новичок, но... выложи весь код, посмотрю =) Добавлено спустя 1 минуту 1 секунду: Папка arhive существует?
$file_source = substr($_SERVER['SCRIPT_FILENAME'], 0, strrpos($_SERVER['SCRIPT_FILENAME'],'/'))."/index.php"; $file_dest = substr($_SERVER['SCRIPT_FILENAME'], 0, strrpos($_SERVER['SCRIPT_FILENAME'],'/'))."/arсhive/index.php.bak"; copy($file_source, $file_dest); Добавлено спустя 2 минуты 32 секунды: Забыл сказать, что папка arhive - существует
Наверное я что то не так понимаю?! Код (PHP): $file_dest = substr($_SERVER['SCRIPT_FILENAME'], 0, strrpos($_SERVER['SCRIPT_FILENAME'],'/'))."/arhive/index.php.bak"; Либо тут '/' лишняя ? Добавлено спустя 35 секунд: /home/s/site/public_html/folder//arhive/index.php.bak получается Добавлено спустя 3 минуты 33 секунды: Может права поставить на папку arhive?
права на папку стоят, я в первом посте писал. что касается строки $file_dest = substr($_SERVER['SCRIPT_FILENAME'], 0, strrpos($_SERVER['SCRIPT_FILENAME'],'/'))."/archive/index.php.bak"; то со слэшами там все в порядке. у меня лишнего нет. В функции strrpos($_SERVER['SCRIPT_FILENAME'],'/')удаляется последний слэш, поэтому - /archive/index.php.bak Тут другой момент появился. В если заменить все слэши на обратные, то в винде на Денвере все в порядке. А на хостинге это тоже не прокатывает. Мозги уже дымятся.