Php 预更换问题

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,我的问题只是preg_replace的第一个字段,我不熟悉常规表达式。我不知道如何确切地告诉preg_replace,我需要为其他文本更改字符串
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);