Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么str_replace函数用文件中的错误值替换该值?_Php_Laravel - Fatal编程技术网

Php 为什么str_replace函数用文件中的错误值替换该值?

Php 为什么str_replace函数用文件中的错误值替换该值?,php,laravel,Php,Laravel,我正在使用str_replace()编辑一个文件,该文件被正确编辑,除了最后两个值 PHP代码: 公共函数makeLyer(){ $current_session=session::getId(); $value[]=Input::get('variable'); $value[]=Input::get('scenario'); $value[]=Input::get('component'); $search[]=“MYVARIABLE”; $search[]=“ID\u场景”; $searc

我正在使用
str_replace()
编辑一个文件,该文件被正确编辑,除了最后两个值

PHP代码:

公共函数makeLyer(){
$current_session=session::getId();
$value[]=Input::get('variable');
$value[]=Input::get('scenario');
$value[]=Input::get('component');
$search[]=“MYVARIABLE”;
$search[]=“ID\u场景”;
$search[]=“ID\u组件”;
对于($i=1;$i!=11;$i++){
$search[]=“更低”。$i;
$search[]=“上限”。$i;
}
$qgs_layer=file_get_contents(“/carbone/carbone_test.qgs”);
$getMinMax=//sql\U查询;
$getMinMax=get_object_vars($getMinMax[0]);
$min=$getMinMax['min'];
$max=$getMinMax['max'];
$range=($max-$min)/10;
$lower[0]=$min;
$upper[0]=$range+$lower[0];
对于($i=1;$i!=10;$i++){
$lower[$i]=$lower[$i-1];
$upper[$i]=$upper[$i-1]+$range;
}
对于($i=0;$i<10;$i++){
$value[]=$lower[$i];
$value[]=$upper[$i];
}
$file_name=“/carbone/”$current_session。”_layer.qgs”;
$new_qgs_layer=str_replace($search,$value,$qgs_layer);
文件内容($file\u name,$new\u qgs\u layer);
返回响应::json($file_name,200);
}
$value
包含正确的值,但当它们被替换时,写入文件的不是
$value

$Value
$search
的值:

$value = Array (
    [0] => flux_balance
    [1] => 1
    [2] => 3
    [3] => -2151
    [4] => -1941
    [5] => -1941
    [6] => -1731
    [7] => -1731
    [8] => -1521
    [9] => -1521
    [10] => -1311
    [11] => -1311
    [12] => -1101
    [13] => -1101
    [14] => -891
    [15] => -891
    [16] => -681
    [17] => -681
    [18] => -471
    [19] => -471
    [20] => -261
    [21] => -261
    [22] => -51 
)

$search =Array(
    [0] => MYVARIABLE
    [1] => ID_SCENARIO
    [2] => ID_COMPONENT
    [3] => lower1
    [4] => upper1
    [5] => lower2
    [6] => upper2
    [7] => lower3
    [8] => upper3
    [9] => lower4
    [10] => upper4
    [11] => lower5
    [12] => upper5
    [13] => lower6
    [14] => upper6
    [15] => lower7
    [16] => upper7
    [17] => lower8
    [18] => upper8
    [19] => lower9
    [20] => upper9
    [21] => lower10
    [22] => upper10 
)

下面是
lower10
upper10
被坏值替换。值分别替换为“-21510”和“-19410”,此时它们应为“-261”和“-51”。

这是因为代码将
lower1
替换为
-2151
,因此
lower10
lower1
0
,因此
lower10
成为
-21510
。(对
upper 10
的解释相同

解决方案:如果您可以更改文件中的占位符,我建议您使用
[]
格式化要搜索的字符串,例如:
[lower1]
,…
[lower10]