【问题标题】:unable to write echo output to a text file无法将回显输出写入文本文件
【发布时间】:2019-09-09 03:17:14
【问题描述】:

我想生成随机数两次说用户名和密码,然后想将它保存在一个文本文件中。我的脚本成功生成数字,但我无法在两个变量之间放置单个空格,也无法在文本文档中写入文件。请在下面找到我的 php 脚本:

 /**
////generatePassword
**/
function generatePassword ($length = 7) 
{ 
  // start with a blank password 
  $genpassword = ""; 
  // define possible characters 
  $possible = "0123456789";  
  // set up a counter 
  $i = 0;  
  // add random characters to $password until $length is reached 
  while ($i < $length) {  
    // pick a random character from the possible ones 
    $char = substr($possible, mt_rand(0, strlen($possible)-1), 1); 
    // we don't want this character if it's already in the password 
    if (!strstr($genpassword, $char)) {  
      $genpassword .= $char; 
      $i++; 
    } 
  } 
  // done! 
  return $genpassword;}  



echo generatePassword().generatePassword();
$cfgclines='';
addFlinetoConfig($cfgclines);
writetoLog("cfgclines");
function addFlinetoConfig($cfgclines)
{$handle = fopen("/var/etc/user.cfg",'a');
fwrite($handle, $genpassword);
fclose($handle);
}

?>

当我在浏览器中打开此文件时,我得到如下随机数:
83215063912640
第 7 个字符后应该有一个空格,如下所示:
8321506 3912640 此外,我无法调用 echo 函数将其写入名为 user.cfg 的文本文件

【问题讨论】:

    标签: php echo whitespace fwrite


    【解决方案1】:

    调用echo generatePassword().generatePassword()的地方需要手动加个空格:

    echo generatePassword() . " " . generatePassword();
    

    至于您无法写入文件,代码是正确的,因此可能存在权限问题。确保您授予脚本写入权限(chmod() 的中间字符):

    chmod("/var/etc/user.cfg", 0755);
    

    【讨论】:

    • 您的回答解决了我关于空间的第一个问题,但我仍然无法将其写入文本文件,权限已更正,但是我检查了错误日志并在日志文件中找到了该条目:@ 987654325@ 我想我们必须先在 php 中定义变量 $genpassword 然后在 fwrite 中调用它,但我不知道如何将它分配为 $ 变量。
    猜你喜欢
    • 1970-01-01
    • 2019-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-25
    • 2016-09-10
    • 2016-07-13
    • 1970-01-01
    相关资源
    最近更新 更多