php替换字符串类型参数=值
我有一个来自db的字符串:php替换字符串类型参数=值,php,string,replace,Php,String,Replace,我有一个来自db的字符串:$text= parameter1=value1 parameter2=value2 otherparemeter=othervalue 我需要一个函数来用新值替换一个参数,但如果参数不存在;必须添加到字符串中 示例:updatestring($text,“parameter1”,“newvalue”): 结果: parameter1=newvalue parameter2=value2 otherparemeter=othervalue parameter1=va
$text=
parameter1=value1
parameter2=value2
otherparemeter=othervalue
我需要一个函数来用新值替换一个参数,但如果参数不存在;必须添加到字符串中
示例:updatestring($text,“parameter1”,“newvalue”):
结果:
parameter1=newvalue
parameter2=value2
otherparemeter=othervalue
parameter1=value1
parameter2=value2
otherparemeter=othervalue
myparameter=myvalue
或者:updatestring($text,“myparameter”,“myvalue”):
结果:
parameter1=newvalue
parameter2=value2
otherparemeter=othervalue
parameter1=value1
parameter2=value2
otherparemeter=othervalue
myparameter=myvalue
谢谢 如果每个参数和值都在自己的行上,这可能会起作用
function updatestring($text, $param1, $param2)
{
if( stristr($text, $param1.'=') ) $text = preg_replace("`$param1=.*\n`iU", "$param1=$param2".PHP_EOL, $text);
else $text .= PHP_EOL.$param1.'='.$param2;
return $text;
}
给定输入的格式,您应该能够将数据解析成一个易于修改和重新格式化的结构 也许是这样的:
$a =<<<EOF
parameter1=value1
parameter2=value2
otherparemeter=othervalue
EOF;
function replacevalue($text, $k, $v){
$dat = parse_ini_string($text);
$ret = "";
if(isset($dat[$k])){
$dat[$k] = $v;
foreach($dat as $prop=>$val){
$ret.= $prop."=".$val."\n";
}
return $ret;
}
}
echo replacevalue($a, "parameter1", "Hello World");
$a=谢谢@Orangepill;我已经纠正了你的功能;现在它开始工作了
function replacevalue($text, $k, $v){
$dat = parse_ini_string($text);
$ret = "";
if(isset($dat[$k])){
$dat[$k] = $v;
} else {
$dat[$k] = $v;
}
foreach($dat as $prop=>$val){
$ret.= $prop."=".$val."\n";
}
return $ret;
}
不使用str_replace,因为我只需要替换值部分或添加新行;我想我需要正则表达式if(strpos($text,$yourParam)!==false){//str_replace()…}else{$text.=PHP_EOL.$yourParam.'='.$yourValue;}
hello它正在添加一个值字符串;它正在取代;谢谢你的帮助!结果:参数1=value1newvalue