PHP文件名编号
我认为这个问题很愚蠢,但我找不到答案,而且我是PHP的新手 问题是我使用的是PHPWord,我试图跳过仅使用PHP和PHPWord的MySQL来执行交付[ID].docx文件,该文件包含ID,即添加+1每个文件都创建e.xPHP文件名编号,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
- 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提交功能触发。您可以通过不同的方式执行:
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)。这将是简单和易于创建的。我想我比任何其他方法都快