У меня очень простой код, но последняя команда не может применить его к сгенерированному файлу, я не могу переименовать файл и не знаю почему. это не проблема переименования, потому что если я изменю переименование для $cmd ="cp '$textfile''$file'"
или же $cmd ="mv '$textfile''$file'"
, это тоже не работает. Я лучше объясню это с помощью кода:
<?php
// the original file to work with
$file = "COPYING.odt";
//change the extension of doc|pdf|docx|odt|rtf files to txt
$txtfile = preg_replace('"\.(doc|pdf|docx|odt|rtf)$"', '.txt', $file);
//convert the odt file into txt and name it with the original name but txt extension
$cmd = "/usr/bin/unoconv -f txt '$file' -o '$textfile'";
shell_exec($cmd);
//store the file in the originals files folder
rename("$file", "orig/$file");
//rename the generated txt file with the original name and extension "COPYING.odt"rename("$textfile", "$file");
echo "conversion of file <em>$file</em> done";
?>
Какие-либо предложения? Благодарю.
ОБНОВИТЬ Я забыл сказать, что я применяю этот скрипт к загруженному файлу, поэтому я не могу дать статическое имя $ file, но переменную $ file.
ОБНОВЛЕНИЕ 2 После предложения @AlanMachado я изменился милливольт команда для переименовать, и это переименование работает, но не следующее.
Извините, ребята, я был три дня с этим сценарием, поэтому я задаю вопрос в Stackoverflow, но только сейчас я понял, что это ошибка TYPO, да:
$txtfile = preg_replace('"\.(doc|pdf|docx|odt|rtf)$"', '.txt', $file);
txtfile без e в txt, в то время как
rename("$textfile", "$file");
текстовый файл с е в тексте, мне очень жаль.
В любом случае, я не знаю, почему результатом этой команды был файл с правильным именем:
$cmd = "/usr/bin/unoconv -f txt '$file' -o '$textfile'";
Других решений пока нет …