PHP按键写新数组值或创建新行

时间:2015-03-22 14:06:55

标签: php arrays

我想用php读取单个数组值,并根据键保存它们。如果此键不存在,则应创建新条目。

这是我的语言文件要读写:

$LNG['name'] = array(
    1 => 'test',
    2 => 'test1',
    3 => 'test2',
    4 => 'test3',
    5 => 'test4',
);

以下是示例

<?php
$include("TECH.php");

$name = $LNG['name'][$_GET['id']];
?>
<html>
<head>
    <title>Editpage</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form action="<?= $_SERVER['PHP_SELF'] ?>" method="POST">
    <table>
<tr>
    <td>Name</td><td><input name="name" type="text" value="{$name}"/></td>
</tr>    
</table>
    <p><input type="submit" name="submit" value="Save"></p>
</form>
</body>
</html>

并通过提交所选键的更改值

实施例 通过将密钥1的更改值提交到

,密钥为1
$LNG['name'] = array(
    1 => 'i am edited',
    2 => 'test1',
    3 => 'test2',
    4 => 'test3',
    5 => 'test4',
);

对于保存,我已经使用此

进行了测试
$file = 'TECH.php';
// The new person to add to the file
$saveedit = $LNG['tech'][$_GET['id']] = $_POST['name_ger'];
// Write the contents to the file, 
file_put_contents($file, $saveedit, FILE_APPEND | LOCK_EX);

这就添加了编辑名称,无需添加新条目

$LNG['name'] = array(
    1 => 'test',
    2 => 'test1',
    3 => 'test2',
    4 => 'test3',
    5 => 'test4',
);editvalue

1 个答案:

答案 0 :(得分:0)

所以你想将数据存储在一个文件中,PHP可以通过简单地包含文件来“读取”这个数组吗?

然后,要修改该数据,您也可以简单地包含该文件,以便脚本中存在变量/数据结构$LNG['name']来处理提交的表单。

要修改值,只需覆盖它们:

$LNG['name'][$idfromform] = $valuefromform;

没有必要检查密钥是否存在,如果没有,PHP将自动创建它。

然后,要将修改后的数据结构写回文件,只需使用var_exportfile_put_contents

您可能想要考虑限制可以在某种程度上在阵列中创建的键。并保护该表单不被您网站的任何用户使用,否则您可能会产生不良副作用,甚至可能造成安全漏洞。但这在很大程度上取决于你之后对数据结构的处理方式。