2015-07-28 5 views
0

Привет У меня есть проблема с этим кодом с кодом я могу изменить весь мой файл папки на номер, как 1.mp4 2.mp4 ЭСТ ...переименования файла не работает на PHP

я проверить код и я напечатать имя файла из него, и каждая вещь правильно но переименовывать функция не работает это мой код

$dir = opendir('.'); 

$i = 1; 

// loop through all the files in the directory 
while (false !== ($file = readdir($dir))) 
{ 


    // if the extension is '.mp4' 
    if (strtolower(pathinfo($file, PATHINFO_EXTENSION)) == 'mp4') 
    { 
echo $file ; 

     // do the rename based on the current iteration 
     $newName = $i . '.mp4'; 
     rename($file, $newName); 

     // increase for the next loop 
     $i++; 
    } 
} 

// close the directory handle 
closedir($dir); 

?> 

чем проблема сейчас?

NEW INfO

i tried the code inside my localhost and it's work but it's not working inside the server 
+0

'$ i' должен быть строкой. '$ i = '1';' – DinukaD

+0

yes i инициализировать его во второй строке –

+0

'$ i = 1;' не '$ i = '1';' – DinukaD

ответ

0

Это более эффективно использовать glob()

foreach(glob(__DIR__ . '/*.mp4') as $key => $file) { 
    if(!rename($file, __DIR__ . '/' . ($key + 1) . '.mp4')) { 
    throw new Exception('Unable to write to '. $file); 
    } 
} 

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

+0

да проблема в проблеме permesiion, я пробовал ваш код, но ничего не изменил , и я пробовал код и код внутри localhost, они работают100% –

+0

, но я не знаю, в чем проблема с разрешением –

+0

Работает локально, но не на сервере? Попробуйте открыть оболочку и запустить PHP из командной строки для выполнения этой операции. PHP работает с разрешениями веб-сервера daemon, если он не запущен как сценарий CLI, и в этом случае он будет иметь права пользователя, выполняющего скрипт. –

Смежные вопросы