PHP文件名编号

PHP文件名编号,php,numbers,phpword,Php,Numbers,Phpword,我认为这个问题很愚蠢,但我找不到答案,而且我是PHP的新手 问题是我使用的是PHPWord,我试图跳过仅使用PHP和PHPWord的MySQL来执行交付[ID].docx文件,该文件包含ID,即添加+1每个文件都创建e.x delivery11.docx delivery12.docx delivery13.docx 我当前的代码加载/保存如下所示: require_once 'PHPWord.php'; $PHPWord = new PHPWord(); $document = $PHPW

我认为这个问题很愚蠢,但我找不到答案,而且我是PHP的新手

问题是我使用的是PHPWord,我试图跳过仅使用PHP和PHPWord的MySQL来执行交付[ID].docx文件,该文件包含ID,即添加+1每个文件都创建e.x

  • delivery11.docx
  • delivery12.docx
  • delivery13.docx
我当前的代码加载/保存如下所示:

require_once 'PHPWord.php';
$PHPWord = new PHPWord();
$document = $PHPWord->loadTemplate('./dfiles/delivery_template.docx');

     $nm = $_POST['NAME_' . 1];
     $qt = $_POST['QUANTITY_' . 1];
     $iid = $_POST['ID_' . 1];
     $t = 1000;
     $wg = $qt * $t;
     $document->setValue('pn1', $nm);
     $document->setValue('kg1', $wg);

$numid = 1;
$document->save('Delivery G'.$numid++.'-'.date(m).'-'.date(Y).'.docx', './dfiles/');
我知道,$numid会将值设置为1,当代码再次触发此函数时,请帮助我,没有MySQL我怎么做


附加信息:此代码将由HTML提交功能触发。

您可以通过不同的方式执行:

  • 生成一些随机数并附加到文件中,若文件存在,则重新生成随机数并附加到文件中,继续执行此过程,直到找不到重复的文件

  • 您可以添加日期和时间,使其具有唯一性和可读性。(例如:交付G 10-8-2015[15.12.99].doc)

  • 生成哈希代码,并追加


  • PHP变量只在PHP运行时持续—即生成请求响应所需的时间。如果要引用在上一次执行中创建或修改的值,则需要将其存储在某个位置。您可以只使用一个文件:

    function getNextNumber() 
    {
       $number=file_get_contents("/tmp/counter");
       file_put_contents("/tmp/counter", ++$number);
       return $number;
    }
    
    在容量非常小的服务器上,大多数情况下这应该是正常的但它不可缩放迟早你会遇到竞争

    这就是我们使用数据库的原因


    它不一定是MySQL(你没有提供任何理由说明为什么你不能使用MySQL,这可能会有帮助)还有很多其他数据库(包括SQLite,它不需要数据库服务器来运行)。

    你可以使用
    文件\u exists
    检查文件是否准备就绪(即取名称),然后使用循环和if逻辑继续添加+1,直到您得到一个免费的名称。Works。谢谢您的回答。我不想使用MySQL,因为我对它不太熟悉,所以我正在搜索临时选项。我认为它可以工作大约一个月,没有任何问题。谢谢您的回答。是的,尝试了第一个选项,它可以工作。第二个一,对我来说不是一种方式,因为不管怎样,我需要知道每个月有多少次交付。谢谢你的回答。第二种交付方式G 10-8-2015[HH.MM.SS.miliSec].doc)。这将是简单和易于创建的。我想我比任何其他方法都快