Php 预更换问题
我想放一个文本而不是字符串VERSION=20101203,我的问题只是preg_replace的第一个字段,我不熟悉常规表达式。我不知道如何确切地告诉preg_replace,我需要为其他文本更改字符串Php 预更换问题,php,regex,preg-replace,Php,Regex,Preg Replace,我想放一个文本而不是字符串VERSION=20101203,我的问题只是preg_replace的第一个字段,我不熟悉常规表达式。我不知道如何确切地告诉preg_replace,我需要为其他文本更改字符串VERSION=20101203 因此字符串的格式为:VERSION=YEARMONTHDAY 我试着: $new_content = preg_replace('/^VERSION\=[0-9]{8}/', $replacement, $content); 其中: $replacement是
VERSION=20101203
因此字符串的格式为:VERSION=YEARMONTHDAY
我试着:
$new_content = preg_replace('/^VERSION\=[0-9]{8}/', $replacement, $content);
其中:
$replacement是我想要的新字符串
$content是一个文件的内容,它在这里并不重要
我相信这不太难。如果您对此问题有任何疑问,请询问我,我会尽快回答
非常感谢您
^
正在将正则表达式锚定到行首。我想这是问题的一部分
$new_content = preg_replace('/VERSION\=[0-9]{8}/', $replacement, $content);
此外,您还需要确保
$replacement
包含替换与VERSION\=[0-9]{8}
匹配的字符串的完整字符串^
仅将正则表达式锚定到行的开头。我想这是问题的一部分
$new_content = preg_replace('/VERSION\=[0-9]{8}/', $replacement, $content);
此外,您还需要确保$replacement
包含替换与版本\=[0-9]{8}
匹配的字符串的完整字符串,请尝试此代码(在正则表达式开头不使用^
):
输出
尝试此代码(在正则表达式开头不带^
):
输出
杰森·麦克里的建议解决了这个问题。它在没有^的情况下工作,其余代码与我之前的代码相同 我试图更改字符串VERSION=YEARMONTHDAY(在$ks文件的一行中)。我的意思是,该文件的一行中包含以下内容: 版本=20101203(或任何其他日期,但每次使用相同格式) 该字符串将被一个新字符串更改,该字符串与存储在变量$ks中的文件的最后一次修改相匹配。($ks是文件名) 因此,最终结果将是:名为$ks的文件将有一行VERSION=20110622,而不是VERSION=20101203(或任何其他较早的日期)字符串 代码以这种方式对我来说运行良好。再次感谢大家,我不知道我是否必须结束这个问题,因为它已经解决了
PD:对不起,我的英语好吧,这是杰森·麦克里的建议解决的。它在没有^的情况下工作,其余代码与我之前的代码相同 我试图更改字符串VERSION=YEARMONTHDAY(在$ks文件的一行中)。我的意思是,该文件的一行中包含以下内容: 版本=20101203(或任何其他日期,但每次使用相同格式) 该字符串将被一个新字符串更改,该字符串与存储在变量$ks中的文件的最后一次修改相匹配。($ks是文件名) 因此,最终结果将是:名为$ks的文件将有一行VERSION=20110622,而不是VERSION=20101203(或任何其他较早的日期)字符串 代码以这种方式对我来说运行良好。再次感谢大家,我不知道我是否必须结束这个问题,因为它已经解决了
对不起,我的英语不太懂你的问题。是否也要更换版本部件?或者你只是想替换数字部分?我不明白你的问题。是否也要更换版本部件?或者你只是想替换数字部分?是的,那都是xD抱歉,因为我没有注意,我有点累是的,那都是xD抱歉,因为我没有注意,我有点累
string(23) "foo replacement foo bar"
$last_modification = filemtime($ks);
$last_modification = date("Ymd", $last_modification);
// $last_modification (for instance suppose it is VERSION=20110622)
$last_modification="VERSION=" . $last_modification;
// Open the file in order to change the string
$file = $ks;
$fh = fopen($ks, 'r+');
$content = fread($fh, filesize($ks));
$new_content = preg_replace('/VERSION\=[0-9]{8}/', $last_modification, $content);
fclose($fh);
// Open the file in order to write inside it
$fh = fopen($ks, 'r+');
fwrite($fh, $new_content);
fclose($fh);