Уникальные и временные имена файлов в PHP?

ОК, я думаю, что в этом случае вы должны использовать jQuery или написать свои собственные методы в чистом javascript, мое предпочтение заключается в добавлении моих собственных методов вместо того, чтобы вводить все jQuery в мое приложение, если мне это не нужно по другим причинам.

Я хотел бы сделать что-то вроде ниже в качестве методов для моей инфраструктуры javascript, чтобы добавить несколько функций, которые обрабатывают добавление классов, удаление классов и т. д., аналогичные jQuery, это полностью поддерживается в IE9 +, также мой код написан в ES6, поэтому вам нужно убедиться, что ваш браузер поддерживает его или вы используете что-то вроде babel, иначе вам нужно использовать синтаксис ES5 в вашем коде, также таким образом мы находим элемент через идентификатор, что означает, что элемент должен иметь идентификатор для выбора:

//simple javascript utils for class management in ES6
var classUtil = {

  addClass: (id, cl) => {
    document.getElementById(id).classList.add(cl);
  },

  removeClass: (id, cl) => {
    document.getElementById(id).classList.remove(cl);
  },

  hasClass: (id, cl) => {
    return document.getElementById(id).classList.contains(cl);
  },

  toggleClass: (id, cl) => {
    document.getElementById(id).classList.toggle(cl);
  }

}

, и вы можете просто вызвать их использование, как показано ниже, представьте, что ваш элемент имеет идентификатор «id» и класс «class», убедитесь, что вы передаете их как строку, вы может использовать утилиту, как показано ниже:

classUtil.addClass('myId', 'myClass');
classUtil.removeClass('myId', 'myClass');
classUtil.hasClass('myId', 'myClass');
classUtil.toggleClass('myId', 'myClass');
53
задан cletus 20 January 2009 в 04:55
поделиться

3 ответа

Я использовал uniqid () в прошлом, чтобы генерировать уникальное имя файла, но не на самом деле создать файл.

$filename = uniqid(rand(), true) . '.pdf';

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

$filename = uniqid('MyApp', true) . '.pdf';

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

while (true) {
 $filename = uniqid('MyApp', true) . '.pdf';
 if (!file_exists(sys_get_temp_dir() . $filename)) break;
}
142
ответ дан Lusid 7 November 2019 в 18:18
поделиться

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

3
ответ дан barfoon 7 November 2019 в 18:18
поделиться

Рассмотрите использование uuid для имени файла. Рассмотрите функцию uniqid. http://php.net/uniqid

2
ответ дан Michael MacDonald 7 November 2019 в 18:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: