Конвертировать php в html и перенести в другую папку. PHP
При попытке вывести имя файла из буфера, ничего не происходит, но сам файл существует. Я хочу взять файл из одной папки, сгенерировать html и вывести в другую папку уже с тем же именем, но расширением .html. В чем может быть ошибка?
$source_dir = "D:\openserver\domains\source.com";
$destination_dir = "D:\openserver\domains\destination.com";
if((!is_dir($source_dir.'/'.$file)) && (pathinfo($file, PATHINFO_EXTENSION) == 'php')){
ob_start();
include $source_dir.'/'.$file;
$file = ob_get_clean();
/// echo pathinfo($file, PATHINFO_BASENAME);/// Здесь пусто.
$new_name = rename(pathinfo($file, PATHINFO_BASENAME), pathinfo($file, PATHINFO_FILENAME).'.html');
file_put_contents($new_name, $file);
}
$destination_dir наверное даже лишнее, т.к. надо итоговый файл вывести в эту же папку, где находится этот скрипт.
А еще такую ошибку выдает :
Warning: rename(html>
,html>
.html): Синтаксическая ошибка в имени файла, имени папки или метке тома. (code: 123) in D:\OpenServer\domains\destination.com\copy.php on line 27
Warning: file_put_contents(): Filename cannot be empty in D:\OpenServer\domains\destination.com\copy.php on line 28
Файл почему то пустой пишет. Наверное что то с rename не то делаю.
Ответы (1 шт):
Автор решения: Hi_TecH
→ Ссылка
Я просто работал с самим содержимым. Самого файла не было. Поэтому в начале надо создать файл, поместить туда данные, а уже потом менять имя файла.
if((!is_dir($source_dir.'/'.$file)) && (pathinfo($file, PATHINFO_EXTENSION) == 'php')){
ob_start();
include $source_dir.'/'.$file;
$php_to_html = ob_get_clean();
$fp = fopen($file, "w");
fwrite($fp, $php_to_html);
fclose($fp);
rename(pathinfo($file, PATHINFO_BASENAME), pathinfo($file, PATHINFO_FILENAME).'.html');
}