2017-04-06 22 views
-1

我有我的用户与包括标签和行分隔键和值的部分将数据文件上传打破:导入用户数据作为PHP变量

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;} 

我不知道这是否是指定密钥值的最佳方式,如果有任何安全防范措施,我应该采取例如防止某些关键名称,以及是否有一种方法可以使关键字等于数组,如果该行具有多个选项卡。

+1

我的键/值(S)刚刚分配到一个数组,比如'$道具[$关键] = $ value' – Phil

+0

您可能希望看看[变量](http://php.net/manual/en/language.variables.variable.php)。 – PHPglue

+0

*“如果有任何安全防范措施,我应采取防止某些关键名称”的措施* - 反问题:您认为安全风险有哪些?如果你使用这个来存储敏感信息,那么你应该考虑使用数据库;或者将其放置在公共根区域外,并在需要时通过'.htaccess'来保护它。 –

回答

0

我认为你应该这样做:

<?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;" 
?>