【问题标题】:Importing user data as PHP variables将用户数据作为 PHP 变量导入
【发布时间】:2017-04-06 09:26:45
【问题描述】:

我的用户上传了一个数据文件,其中包含由制表符和换行符分隔的键和值组成的部分:

key     value
city    London
year    1984

我将它导入到一个脚本中,然后为 PHP 变量分配与值相同的名称:

$key = 'value';
$city = 'London';
$year = 1984;

这用于populate templates 他们也上传了。

这是我分配给键和值的脚本:

$userdata = explode("\n", $file);
foreach($userdata as &$line){
    list($key, $value) = explode("\t", $line);
    $$key = $value;}

我想知道这是否是将键分配给值的最佳方法,是否应该采取任何安全预防措施,例如防止某些键名,以及是否有办法使键等于数组如果该行有多个选项卡。

【问题讨论】:

  • 我只是将键/值分配给一个数组,例如$props[$key] = $value
  • 你可能想看看variable variables
  • “如果我应该采取任何安全预防措施,例如阻止某些密钥名称” - 反问:您认为什么是安全风险?如果您使用它来存储敏感信息,那么您应该考虑使用数据库;或将其放置在公共根区域之外,并根据需要通过.htaccess 保护它。
  • 另外,在管理文本文件时需要做很多工作。
  • 安全风险在于将该文本文件提供给公众。

标签: php


【解决方案1】:

我认为你应该这样做:

<?php
$filePointer = @fopen($file, 'r');
while($line = fgets($filePointer)){
  $a = preg_split('/\b\s+\b/', $line);
  ${$a[0]} = $a[1];
}
echo "key:$key; city:$city; year:$year;"
?>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-03
    • 2018-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-12
    相关资源
    最近更新 更多