【问题标题】:If PHP text file line equals, then do something如果 PHP 文本文件行等于,则执行某些操作
【发布时间】:2013-02-12 05:31:58
【问题描述】:

我正在将复选框的状态保存到文本文件中,然后将其读回以显示选中或未选中的框。保存部分没有问题 - 取决于我是否选中或取消选中该框,值“已选中”或“未选中”写入文本文件。回显echo $lines[0]; 会产生预期的任一值。但是,当使用if ($lines[0] == "Checked") 时,如下面的代码所示,似乎未检测到该值,因此未执行随后的回显。这种情况的正确语法是什么?

      <?php
      $file = "textfile.txt";
      $lines = file($file); 
      ?>

      <input type="hidden" name="data1" value="Unchecked" />
      <input type="checkbox" name="data1" value="Checked" class="checkbox" 
        <?php
        if ($lines[0] == "Checked") {  
        echo 'checked="checked"';  
        }  
        ?>
      />

【问题讨论】:

  • 尝试将echo放入括号()
  • 可能是黑色空格造成的。

标签: php text checkbox flat-file


【解决方案1】:

值可能因行尾而异。 我建议您执行以下操作:

if (stristr($lines[0], "unchecked")) {  
  echo '';  
}else{
  echo 'checked="checked"';  
} 

【讨论】:

    【解决方案2】:

    您的 $lines[0] 变量中可能有换行符。

    你可以做的是:

    if (trim($lines[0]) == "Checked") {  
    

    但你应该做的是切换到数据库。

    【讨论】:

    • 或者更好的是,使用会话。因为保存复选框的状态是您逐页执行的操作,而不是您永久保存到文件或数据库中的操作。
    • @Husman 这将取决于 OP;一个文本文件建议永久保存。
    • 在迷你 CMS 网站中打开或关闭某个功能是必需的。不幸的是,我没有使用 MySQL 数据库的经验,但到目前为止,一个平面文件 PHP 数据库正在按我希望的那样工作。感谢您的帮助。
    • @Chris 这种东西我可能也会保存到配置文件中。您可能想查看例如 php.net/manual/en/function.ini-get.php 以了解如何轻松地从文件中检索键值对。
    • 谢谢 Jeroen,我去看看。还要感谢您的回答 - 尽管两者都运行良好,但此解决方案比以下解决方案更清洁。
    猜你喜欢
    • 1970-01-01
    • 2021-10-01
    • 2023-04-06
    • 1970-01-01
    • 2015-08-17
    • 2017-06-08
    • 2015-11-21
    • 2018-09-19
    • 1970-01-01
    相关资源
    最近更新 更多