【发布时间】:2015-04-16 01:24:35
【问题描述】:
所以我有这个 PHP 脚本,它链接到我的一个客户网站上的联系表格。 PHP 脚本所做的基本上是获取所有字段和值,并使用表单中给出的信息生成一个 .txt 文件。之后,脚本会根据您在字段 'forefternamn' 中添加的信息来决定文件的名称。
我的问题很直接。我如何不以字段命名文件,而是用序列号命名?
我希望序列号在第一次提交时以 1000 开头,然后我希望它继续使用 1001、1002、1003、1004 等。
所以文件看起来像这样:
1000.txt 1001.txt 1002.txt 1003.txt 1004.txt 等等……
这是我正在使用的 PHP 脚本:
<?php
$nyckel = array(
'privatforetag',
'forefternamn',
'foretagsnamn',
'gatuadress',
'mobil',
'telefon',
'e-post',
'epost',
'kalender-tidig',
'kalender-senast',
'flyttar-fran-gatuadress',
'flyttar-fran-portkod',
'flyttar-fran-postadress',
'boendetyp',
'meter',
'hiss',
'flyttar-till-gatuadress',
'flyttar-till-postnummer',
'flyttar-till-portkod',
'boendetyp2',
'meter2',
'hiss2',
'rum',
'personer',
'kontor',
'moblerat',
'boyta',
'biyta',
'inventarielista',
'packning',
'uppackning',
'inventarie',
'antalflyttlador',
'flyttlada',
'miljostation',
'flyttstad',
'magasinering',
'student',
'ovriginfo',
'rekommenderad',
'hurhittade'
);
foreach ($nyckel as $key) {
if ($_POST[$key]) {
$input .= $_POST[$key]. "\t";
} else {
$input .= "-\t";
}
$thekey .= $key. "\t";
}
$index = 1;
$name = str_replace(" " , "" , $_POST["forefternamn"]);
$filename = $name . $index . ".txt";
while (file_exists($filename)) {
$index++;
$filename = $name .$index. ".txt";
}
$handle = fopen($filename, 'w') or die('Cannot open file: '.$filename);
fwrite($handle, $thekey);
fwrite($handle, PHP_EOL);
fwrite($handle, $input);
fclose($handle);
if (file_exists($filename)) {
echo "<script>window.location = 'www.domain.com'</script>";
}?>
【问题讨论】:
-
您是否完全依赖这种方法?因为 IMO 更好的方法是使用散列,即当前时间戳的 md5 散列。但除非你愿意接受,否则我不想提出不同的方法……
-
或者甚至只使用时间戳(如果您打算使用顺序时间戳,我假设您不需要隐藏 ID)。如果您需要这样做,那么排序等仍然非常容易。
标签: php