PHP 文件名编号
PHP File name numbering
我觉得这个问题会很蠢,但是我找不到答案,而且我是PHP的新手。
问题是我正在使用 PHPWord,我试图跳过 MySQL 仅使用 PHP 和 PHPWord 来执行 delivery[ID].docx 文件,其中包含ID,即每创建一个文件就加+1 e.x.;
- delivery11.docx
- delivery12.docx
- delivery13.docx
我当前的代码 load/save 如下所示:
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 提交 函数触发。
你可以用不同的方式来做:
生成一些随机数并追加到文件中,如果文件存在则重新生成随机数并追加到文件中,一直重复这个过程直到没有找到重复的文件。
您可以添加日期和时间,使其具有唯一性和可读性。(例如:Delivery G 10-8-2015[15.12.99].doc)
生成哈希码,并追加。
PHP 变量仅在 PHP 为 运行ning 时有效 - 即生成对请求的响应所需的时间。如果您想引用在先前执行中创建或修改的值,则需要将其存储在某个地方。您可以只使用一个文件:
function getNextNumber()
{
$number=file_get_contents("/tmp/counter");
file_put_contents("/tmp/counter", ++$number);
return $number;
}
在容量非常小的服务器上,大多数情况下应该没问题。 但它不会扩展!迟早你会运行进入竞争。
这就是我们使用数据库的原因。
它不一定是 MySQL(您没有提供任何不能使用 MySQL 的原因,这可能会有所帮助)还有很多其他数据库可以合适(包括不需要数据库服务器的 SQLite 运行ning)。
我觉得这个问题会很蠢,但是我找不到答案,而且我是PHP的新手。
问题是我正在使用 PHPWord,我试图跳过 MySQL 仅使用 PHP 和 PHPWord 来执行 delivery[ID].docx 文件,其中包含ID,即每创建一个文件就加+1 e.x.;
- delivery11.docx
- delivery12.docx
- delivery13.docx
我当前的代码 load/save 如下所示:
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 提交 函数触发。
你可以用不同的方式来做:
生成一些随机数并追加到文件中,如果文件存在则重新生成随机数并追加到文件中,一直重复这个过程直到没有找到重复的文件。
您可以添加日期和时间,使其具有唯一性和可读性。(例如:Delivery G 10-8-2015[15.12.99].doc)
生成哈希码,并追加。
PHP 变量仅在 PHP 为 运行ning 时有效 - 即生成对请求的响应所需的时间。如果您想引用在先前执行中创建或修改的值,则需要将其存储在某个地方。您可以只使用一个文件:
function getNextNumber()
{
$number=file_get_contents("/tmp/counter");
file_put_contents("/tmp/counter", ++$number);
return $number;
}
在容量非常小的服务器上,大多数情况下应该没问题。 但它不会扩展!迟早你会运行进入竞争。
这就是我们使用数据库的原因。
它不一定是 MySQL(您没有提供任何不能使用 MySQL 的原因,这可能会有所帮助)还有很多其他数据库可以合适(包括不需要数据库服务器的 SQLite 运行ning)。