如何在特定位置将文本插入文件?

时间:2015-03-31 20:44:10

标签: php

我的文件看起来像这样。我需要通过file_put_contents附加一些新的数组键。

<?php
    $translation = array(
        'Wyposażenie' => 'Equipment',
    );
?>

我不知道该怎么做。我所知道的只是我必须使用file_put_contents($file, "'test' => 'new value',", FILE_APPEND | LOCK_EX);,但它会在文件末尾添加新信息。如何在最后一个数组键之后追加我的新信息。为了得到这个:

<?php
    $translation = array(
        'Wyposażenie' => 'Equipment',
        'test' => 'new value',
    );
?>

3 个答案:

答案 0 :(得分:2)

正如其他人在评论中所提到的,这可以通过更好的方式使用json来完成,但就这种情况而言,这里是你可以做到的:

<?php
$read = file_get_contents("i.txt");

$delete = strrpos($read,");",-1);

$read = substr($read,0,$delete);

$new_value = "'test' => 'new value',";

$read .= "\r\n\$new_value \r\n);\r\n ?>";

file_put_contents('i.txt',$read);

?>

答案 1 :(得分:1)

我很无聊。这不会覆盖存在的密钥。要覆盖,请反转array_merge()

中的数组
function add_to_trans($file, $array) {
    include($file);
    $result = array_merge($translation, $array);
    file_put_contents($file, '$translation = ' . var_export($result, true));
}

$new_trans = array('test' => 'new value');
add_to_trans('path/to/file.php', $new_trans);

但是你应该重新考虑这个并在文件中保存一个json_encode()数组并将其读回来。

答案 2 :(得分:0)

我是自己写的。这是我的代码:

<div>
  <canvas id="canvas_bar" height="250", width = "300" ></canvas>
</div>

<script>
    var barChartData = {
        labels : [56, 60, 78, 90],
        datasets : [
        {   fillColor : "rgba(139,0,0,0.5)",
            strokeColor : "rgba(220,220,220,0.8)",
            data : [20.0, 0, 0, 50]  },

        {   fillColor : "rgba(1,187,205,0.5)",
            strokeColor : "rgba(151,187,205,0.8)",
            data : [0, 0.0, 40.0, 10]  }
        ]
    }
    window.onload = function(){
        var ctx = document.getElementById("canvas_bar").getContext("2d");
        window.myBar = new Chart(ctx).Bar(barChartData, {
            animation: false,
            responsive : false,
            barValueSpacing : 15,
            scaleShowVerticalLines: false,
        });
    }
</script>