【问题标题】:What is the cleanest way to define variables like this?定义这样的变量的最干净的方法是什么?
【发布时间】:2013-02-15 04:10:39
【问题描述】:

我有一个变量:

$FolderName = date('c', time()); // I know time() is optional.. not the point.

由于我可能正在使用我在 Windows 机器上编写的这个脚本,并且输出中有冒号,所以我需要这样做:

$FolderName = str_replace(':', '-', date('c', time()));

我觉得函数中的函数太多是草率的。解决这个问题的最佳方法是什么?

【问题讨论】:

  • 你的方法是正确的。 :)。以同样的方式进行。
  • 为什么在函数参数中使用函数是草率的?您现在所做的不仅易于阅读……而且是常见的做法!在简单的情况下,它远远超过必须设置和取消设置临时变量或编写不会再次使用的利基函数。
  • 或者。创建一个函数,如:makeFolder(param),在该函数中,您可以拥有上述逻辑。至少当您制作文件夹时,您的代码会更容易阅读,并且只有您的一个功能会“混乱”。然后它可以是$FolderName = makeFolder(time()) 或您可能想要传递的任何内容来定义文件夹。如果我必须一遍又一遍地编写代码,我几乎总是把它扔进一个函数中。

标签: php variables coding-style


【解决方案1】:

要使您的文件夹名称在 Windows 机器上完全安全,您应该执行以下操作

$match = preg_match('/[\/|\\\|\?|"|\<|\>|\||\:|\*|%|\#]/is', $FolderName);
if($match)
{
  echo "Invalid filename. A filename can't contain any of the following characters: \ / : * ? \" < > | % # ";
}
else
{
  // do stuff..
}

以上所有字符在windows文件名中都是无效的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-19
    • 2014-05-03
    • 1970-01-01
    • 2017-02-20
    • 2021-04-14
    • 1970-01-01
    相关资源
    最近更新 更多