За последние 24 часа нас посетили 17505 программистов и 1686 роботов. Сейчас ищут 849 программистов ...

Не копируется файл

Тема в разделе "PHP для новичков", создана пользователем arbit, 20 июл 2012.

  1. arbit

    arbit Активный пользователь

    С нами с:
    20 июл 2012
    Сообщения:
    13
    Симпатии:
    0
    Здравствуйте!
    Помогите понять где собака порылась?

    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']

    Заранее благодарен!
     
  2. VampiR_WAR

    VampiR_WAR Активный пользователь

    С нами с:
    19 авг 2009
    Сообщения:
    409
    Симпатии:
    1
    Адрес:
    Нижний Новгород
    Я тоже новичок, но... выложи весь код, посмотрю =)

    Добавлено спустя 1 минуту 1 секунду:
    Папка arhive существует?
     
  3. arbit

    arbit Активный пользователь

    С нами с:
    20 июл 2012
    Сообщения:
    13
    Симпатии:
    0
    $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 - существует
     
  4. VampiR_WAR

    VampiR_WAR Активный пользователь

    С нами с:
    19 авг 2009
    Сообщения:
    409
    Симпатии:
    1
    Адрес:
    Нижний Новгород
    Наверное я что то не так понимаю?!
    Код (PHP):
    1. $file_dest = substr($_SERVER['SCRIPT_FILENAME'], 0, strrpos($_SERVER['SCRIPT_FILENAME'],'/'))."/arhive/index.php.bak";
    2.  
    Либо тут '/' лишняя ?

    Добавлено спустя 35 секунд:
    /home/s/site/public_html/folder//arhive/index.php.bak получается

    Добавлено спустя 3 минуты 33 секунды:
    Может права поставить на папку arhive?
     
  5. arbit

    arbit Активный пользователь

    С нами с:
    20 июл 2012
    Сообщения:
    13
    Симпатии:
    0
    права на папку стоят, я в первом посте писал.
    что касается строки
    $file_dest = substr($_SERVER['SCRIPT_FILENAME'], 0, strrpos($_SERVER['SCRIPT_FILENAME'],'/'))."/archive/index.php.bak";
    то со слэшами там все в порядке. у меня лишнего нет.
    В функции strrpos($_SERVER['SCRIPT_FILENAME'],'/')удаляется последний слэш, поэтому - /archive/index.php.bak
    Тут другой момент появился.
    В если заменить все слэши на обратные, то в винде на Денвере все в порядке. А на хостинге это тоже не прокатывает.
    Мозги уже дымятся.
     
  6. VampiR_WAR

    VampiR_WAR Активный пользователь

    С нами с:
    19 авг 2009
    Сообщения:
    409
    Симпатии:
    1
    Адрес:
    Нижний Новгород
    Ахтунг какой то
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    попробуй работать с относительными путями.