2015-07-18 2 views
1

У меня есть небольшая проблема с моим PHP-кодом. Пожалуйста, обратите внимание:PHP-скрипт для создания файла, если он не существует

<?php 
 
$urlud = $json['url']; 
 
$content = 'Content 1 if file no exist will generate'; 
 
$filename = $json['id'].".html"; 
 
if (file_exists($filename)) { 
 
    echo "File exists!"; 
 
} else { 
 
    file_put_contents('dir1/'. $filename, $content, FILE_APPEND | LOCK_EX); 
 
} 
 
?> 
 
<?php 
 
$urlud = $json['url']; 
 
$content = 'Content 2 if file no exist will generate'; 
 
$filename = $json['id'].".html"; 
 
if (file_exists($filename)) { 
 
    echo "File exists!"; 
 
} else { 
 
    file_put_contents('dir2/'. $filename, $content, FILE_APPEND | LOCK_EX); 
 
} 
 
?>

Этот код будет генерировать 2 файла в различных каталогах с различным содержанием. Моя проблема:

  1. Этот код продолжает заменять мои старые файлы. Любое решение для его создания, только если файл не существует?
  2. Любой другой вход, чтобы сделать этот код проще?

Спасибо.

+0

Простой, добавьте счетчик с именем файла – Shehary

+0

, возможно, с тех пор, как вы пишете на dir2, вы также должны проверить файл там – Orangepill

+0

другое решение, использовать функцию строки php randon и добавить его с именем файла, чтобы у вас было '$ filename $ string' и '$ string' будут уникальны каждый раз – Shehary

ответ

2
if (file_exists('dir1/'. $filename)) 

и

if (file_exists('dir2/'. $filename)) 

Вы должны проверить полный путь к файлу не только имя файла. Например. Представьте, что $ filename будет «readme.txt». Этот файл, вероятно, не существует в вашем пути к сценарию. И вы ожидаете, что это будет в dir1 или dir2.

+0

hi @Harald Doderer, спасибо за ваше решение. эта работа, как я хочу .. старый файл продолжать там и не заменять новым. – Lorenz