【问题标题】:How to separate sets of numbers onto separate lines如何将一组数字分隔到单独的行上
【发布时间】:2012-06-06 04:54:09
【问题描述】:

关于脚本:

下面的脚本将创建 300 个随机字符。

目前正在发生的是,它创建了它们,但将它们全部显示在一行,一大块中。

我为实现这一目标所做的所有搜索和测试都没有成功。

我想知道哪个代码以及将它放在哪里,以便每个 15 个字符长的 SET (300) 将显示并保存到文件中。

这是我的脚本:

<?php

function GetID($x){

$characters = array_merge(range('A','Z'),range('a','z'),range(2,9));
shuffle($characters);


for($x=0;$x<=299;$x++){

}

for (; strlen($ReqID)<$x;){
$ReqID .= $characters[mt_rand(0, count($characters))];
}


return $ReqID;
}     

$ReqID .= GetID(5);
$ReqID .= "-";
$ReqID .= GetID(5);
$ReqID .= "-";
$ReqID .= GetID(5);


echo $ReqID;


$fh = fopen("file.txt","a+");
fwrite($fh, ("$ReqID")."\n");
fclose($fh);

?>

【问题讨论】:

    标签: php newline


    【解决方案1】:

    修改 GetID 函数,在每 15 个字符处插入一个新行:

    function GetID($x){
       $characters = array_merge(range('A','Z'),range('a','z'),range(2,9));
       shuffle($characters);
       $ReqID='';
       for ($i=0; strlen($ReqID)<300; $i++){
          $ReqID .= $characters[mt_rand(0, count($characters))];
          if ($i>0 && $i%15 == 0)
             $ReqID .= "\n";
       }
       return $ReqID;
    }
    

    【讨论】:

      【解决方案2】:

      模运算符 (%) 可让您检查定期间隔。

      for ($x = 0; $x <= 299; $x++) {
          echo $characters[$x];
          if ($x % 15 == 14) {
              echo "\n";
          }
      }
      

      【讨论】:

      • 谢谢大卫。通过在它们之间放置一个空格,它在一定程度上适用于一定数量的 15 个字符序列,但随后会停止并在最后产生一个非常长的字符串。它不会在自己的单独行中回显/写入文件。
      • @Fred - 您只将 60 个字符放入数组中,因此 299 应该是 59 或者更好的是 $x &lt; count($characters)
      • 试过了,也没用。我可能会尝试在每个“x 位置”处插入一个回车,然后写回文件。今晚这个时候已经太晚了。
      • 我最初的目标是,创建一个包含大约 300 组随机字符(数字字母)的列表。 15 chars.long 并将它们放在自己的行上,一个在另一个之下,将其回显到屏幕并将其写入文件。
      • 循环任意数量的随机行。在其中,打乱字符并使用substr 后跟换行符打印出前 15 个字符。
      猜你喜欢
      • 2012-04-12
      • 1970-01-01
      • 1970-01-01
      • 2014-08-22
      • 1970-01-01
      • 1970-01-01
      • 2021-07-23
      • 2022-08-14
      • 2017-04-14
      相关资源
      最近更新 更多