【问题标题】:detect Linebreaks, Tabs and other special characters inputed by the user with php检测用户使用php输入的换行符、制表符和其他特殊字符
【发布时间】:2014-08-11 10:02:47
【问题描述】:

我有一些功能需要用户提供一些参数。

参数多为字符。我遇到的问题是,在 PHP 中,通过键入 "\n""\t" 创建换行符和制表符非常容易。

我希望用户能够进行相同的输入。 (输入 "\n" 换行...)

我遇到的问题是,如果我有这样的代码:

$character1 = "\n";
$character2 = $_POST["line_break"]; // the user input is "\n"

var_dump($character1);
var_dump($character2);

输出将如下所示:

string(1) "
"
string(2) "\n"

第一个是我想要的。

我能想到的唯一解决方案是检查所有可能输入的字符并像这样替换它:

if ($character2 == "\\n") $character2 = "\n";
elseif ($character2 == "\\t") $character2 = "\t";
elseif ...

这似乎是一个非常肮脏的解决方案。 有没有其他更简单或更清洁的方法来获得我想要的结果?


如果它是唯一的方法,该解决方案也可以是 JavaScript 解决方案,因为用户界面无论如何都会处理 Ajax 请求。

【问题讨论】:

    标签: javascript php special-characters newline control-characters


    【解决方案1】:

    你可以使用eval function of PHP with care:

    $character2 = eval('return "' . $_REQUEST["line_break"] . '";');
    

    请注意,由于我们返回的引用值取自 $_REQUEST["line_break"],因此可以避免使用 eval 的一些明显风险。

    【讨论】:

      猜你喜欢
      • 2022-11-22
      • 2012-09-02
      • 1970-01-01
      • 2019-12-03
      • 2012-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多