2009-12-30 8 views
0

Привет, ребята, у меня есть переменная $Date, которая автоматически обновляется каждый день. Я хотел бы создать новый текстовый файл каждый раз, когда есть новая запись. Так что в основном каждый день. Я хотел бы использовать fopen для создания нового текстового файла каждый раз, когда пользователь отправляет значение, но только на этот день. Если пользователь создает другой счет на следующий день, это будет новый текстовый файл с этой датой для имени ...Именование текстового файла как переменной

У меня есть только три переменных, $date, $Name и $number

это возможно создайте это следующим образом?

$textmember = "$date.txt" 

благодарит за слово!

ответ

3

Да, вы можете легко создать новый текстовый файл каждый день.

$filename = "$date.txt"; 
if (! file_exists($filename)) { 
    $fp = fopen($filename,'w'); 
    //write stuff to file 
    fclose($fp); 
} 

Если вы добавления данных в файл, вы даже не нужно делать file_exists() чек, вы можете просто использовать «а» вариант fopen():

$filename = "$date.txt"; 
$fp = fopen($filename,'a'); 
//write stuff and close 

В этом case, файл будет создан, если он не существует, и если да, то данные, которые вы пишете, будут просто добавлены в конец.

+0

жаль быть нобом, но я не могу заставить его работать со вторым предложением, вот мой код, я думаю, его просто синтаксические ошибки, но он не создаст новый файл, он просто говорит «no directory found " $ filename =" data/textmembers/date/$ Date.txt "; $ fp = fopen ($ filename, 'a'); fwrite ($ fp, $ Name); fwrite ($ fp, $ Number); fclose ($ fp); – Ryan

+0

Похоже, что каталог, который вы пытаетесь написать, не существует. Убедитесь, что путь правильный. Если вы используете относительный путь, он будет относиться к сценарию, который выполняется. – zombat

+0

Убедитесь, что вы используете правильный формат даты - если у вас есть специальный символ типа '/' или ':' в дате 'mm/dd/yyyy' или' hh: mm: ss' соответственно, это может создать проблемы. Используйте формат даты, например 'yyyy-mm-dd-hh-mm-ss' или' yyyymmdd-hhmmss' или 'yyyymmdd', а затем добавьте' $ name' и '$ number' или что-то еще. Руководство по PHP должно дать вам простой способ указать формат даты. – namespaceform

0

Для этого вы можете создать файл в определенном формате каждый день и проверить, не существует ли файл, если он его не создает. Я бы использовал формат $ username- $ date, поэтому файл для имени пользователя ryudice будет выглядеть как «ryudice-22-2-2009.txt», тогда вы можете проверить, существует ли файл каждый раз, когда пользователь отправляет значение, если он не существует, а затем создайте его, чтобы проверить, существует ли файл, вы можете использовать функцию file_exists.

1

Это должно быть так же просто, как

file_put_contents($filename, $text, FILE_APPEND); 

где $ Имя файла должно быть сочетание $ имени и $ дате и $ тексту данные, которые вы хотите записать. Вам нужно только комбинировать $ data и $ name, если вы хотите, чтобы файл за имя и дату, например.

$filename = sprintf('%s-%s.txt', $date, $name); 

Так, с $ Дата быть 2009-12-30 и $ имя Гордон быть вы получите 2009-12-30-Gordon.txt. Этот файл будет создан, если он еще не существует, и в него будет записано $ text. Если он уже существует, в него будет добавлен текст.

$filename = sprintf('%s-%s.txt', date('Y-m-d'), 'Gordon'); // create filename 
file_put_contents($filename, 'foo', FILE_APPEND); // create file and write to it 

// later that day  
file_put_contents($filename, 'bar', FILE_APPEND); // append to existing file 

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

Для получения дополнительной информации обратитесь к PHP manual.

0

Если вы используете PHP 5 + ...

$filename = 'data/textmembers/date/' . $Date . '.txt'; 
file_put_contents($filename, $Name, FILE_APPEND); 
file_put_contents($filename, $Number, FILE_APPEND); 

Если ваш сценарий находится в /var/www/html/my_script.php, то файл будет сохранен в/вар/WWW/html/data/textmembers/date/$ Date.txt. Вам нужно будет убедиться, что в каталоге (/ path/to/date) есть права на запись для пользователя, которому работает PHP.

+0

Спасибо, ребята, это был формат даты, мне просто пришлось изменить его на 12-30-2009, а не на 30.12.2009 – Ryan

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