带有计数器的php id并保存文件

我想在它前面做一个带有标准前缀的计数器:202000,然后计算 2020001、2020002、2020003 等。并且这些数据必须保存在我服务器上的文件或数据库或 txt 文件中,但不会事情。我尝试了很多,但我可以做到。我对 PHP 很陌生。

我现在有了这段代码,但我有一些问题,所以只保存了最后一个数字,并且前缀是否被计数器替换,如果你超过 10,你会得到 2020010,我想要 20200010。无论如何,这是我的代码:

  <!DOCTYPE html>

<html dir="ltr">

  <head>

    <meta charset="utf-8">

    <title></title>

  </head>

  <body>


    <?php

    $file = 'counter.txt';


    // default the counter value to 1

    $before = uniqid('202000');

    $counter = 1;



    // add the previous counter value if the file exists

    if (file_exists($file)) {

        $counter += file_get_contents($file);

    }


    // write the new counter value to the file

    file_put_contents($file, $counter);

    echo $before + $counter;

    ?>



</body>

</html>

有人可以帮我吗?



湖上湖
浏览 101回答 2
2回答

汪汪一只猫

您不必在文件中保存实际前缀 (202000)。只需保存计数器(1、2、3、4、5 等)<?php$file = 'counter.txt';$prefix = '202000';//If file exists then grab content of file(nr) and add it with one else set counter=1file_exists($file) ? $counter = file_get_contents($file)+1 : $counter = 1;//This is the number you would like to use (2020001, 2020002 ... 20200010 etc)$use_number = $prefix .&nbsp; $counter;&nbsp;&nbsp;//Save counter value to file (1,2,3,4 etc...)file_put_contents($file, $counter);&nbsp;&nbsp;?>

收到一只叮咚

您可以计算所有文件行,将它们用作计数器的基数$file = 'someFiel.txt';$counter = 0; // the file lines$handle = fopen($file, "r");while(!feof($handle)){&nbsp; $line = fgets($handle);&nbsp; $counter++;}fclose($handle); //close the file reader$next_line_no = $counter + 1; // this will add 1 to your counter然后只需添加您的前缀和下一行$next_line = '202000' . $next_line_no;您可以通过计算行数来对 MySQL 执行相同的操作,然后使用 counter + 1 再次添加前缀;
打开App,查看更多内容
随时随地看视频慕课网APP