首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP文件名编号

问PHP文件名编号
EN

Stack Overflow用户
提问于 2015-10-08 10:16:38
回答 2查看 488关注 0票数 1

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

问题是,我使用的是PHPWord,我试图跳过PHPWord和PHPWord来执行一个包含ID的MySQL文件,即添加+1每个文件都创建了e.x。

  • delivery11.docx
  • delivery12.docx
  • delivery13.docx

我当前的代码加载/保存如下所示:

代码语言:javascript
复制
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 函数触发。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-10-08 13:13:16

PHP变量只在PHP运行时持续--也就是说,生成对请求的响应所需的时间。如果要引用在上一次执行中创建或修改的值,则需要将其存储在某个地方。你只需要一个文件:

代码语言:javascript
复制
function getNextNumber() 
{
   $number=file_get_contents("/tmp/counter");
   file_put_contents("/tmp/counter", ++$number);
   return $number;
}

大多数情况下,在非常低的卷服务器上,这应该是可以的。,但它不缩放!迟早会遇到争用。

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

它不一定是MySQL (您没有提供任何理由说明为什么不能使用可能有用的MySQL )还有许多其他的数据库是合适的(包括不需要运行数据库服务器的SQLite )。

票数 1
EN

Stack Overflow用户

发布于 2015-10-08 12:44:04

你可以用不同的方式做:

  1. 生成一些随机数并附加到文件中,如果文件存在,则重新生成随机数并追加到文件中,请继续执行此过程,直到没有找到重复的文件。
  2. 您可以添加日期和时间,以便它也是唯一的和可读的。(例如:交付G10-8-201515.12.99.doc)
  3. 生成哈希代码,并追加。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33012892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档