PHP preg_始终替换&x27;s覆盖我的读取文件

PHP preg_始终替换&x27;s覆盖我的读取文件,php,Php,我有一个文本文件bla.txt 地区名称='bla_2' 你好 嗨 再见 我的剧本## 如果您读取代码,您将覆盖$file\u contents的初始值,而不是替换$file\u contents中的数据。您需要做的是:$file\u contents=preg\u replace(“/(REGION\u NAME=)(“”)/”,“$1'us-east-A'”,$file\u contents)。作为免责声明,我并没有实际运行您的代码,但您没有根据我看到的内容为函数传递正确的主题 我认为你想要

我有一个文本文件bla.txt

地区名称='bla_2'

你好

再见

我的剧本##


如果您读取代码,您将覆盖
$file\u contents
的初始值,而不是替换
$file\u contents
中的数据。您需要做的是:
$file\u contents=preg\u replace(“/(REGION\u NAME=)(“”)/”,“$1'us-east-A'”,$file\u contents)。作为免责声明,我并没有实际运行您的代码,但您没有根据我看到的内容为函数传递正确的主题


我认为你想要的正则表达式是类似于
preg\u replace(“REGION\u NAME='(.*),'us-east-A',$file\u contents)

的东西,如果你阅读代码,你会覆盖
$file\u contents
的初始值,而不是替换
$file\u contents
中的数据。您需要做的是:
$file\u contents=preg\u replace(“/(REGION\u NAME=)(“”)/”,“$1'us-east-A'”,$file\u contents)。作为免责声明,我并没有实际运行您的代码,但您没有根据我看到的内容为函数传递正确的主题


我认为你想要的正则表达式是类似于
preg\u replace(“REGION\u NAME='(.*),'us-east-A',$file\u contents)

fopen($file,'w')在文件开头打开文件进行写入。fopen($file,'a')在文件末尾打开文件进行写入,因此它不应覆盖您的文件。请参阅fopen手册。fopen($file,'w')在文件开头打开文件进行写入。fopen($file,'a')在文件末尾打开文件进行写入,因此它不应覆盖您的文件。请参阅fopen手册。因此,现在文件没有被重写,但行中的文本没有得到更改。您打算如何处理正则表达式?我问这个问题是因为我在正则表达式方面不是最棒的,但这对我来说并不合适。这是我的实际文件,我正试图打开并保存import boto.vpc import boto.ec2 import vpc connection import time 35; boto.set#stream#u('logger boto')#Connect with AWS region region region region#NAME='bla#u 2'#Connect with your region conn=boto.vpc.Connect to#region(region#NAME)vpc=conn.create_vpc('10.10.0.0/16')打印vpcI我正在尝试替换REGION_NAME='bla_2'后面的文本“那么。。。仅更改文件中的“bla_2”,然后在区域名称=”之后再次运行脚本以替换,因此str_替换将不起作用,因为bla_2在下次打开文件时总是不同的。因此,现在文件不会被重写,但行中的文本不会得到更改。您试图对正则表达式做什么?我问这个问题是因为我在正则表达式方面不是最棒的,但这对我来说并不合适。这是我的实际文件,我正试图打开并保存import boto.vpc import boto.ec2 import vpc connection import time 35; boto.set#stream#u('logger boto')#Connect with AWS region region region region#NAME='bla#u 2'#Connect with your region conn=boto.vpc.Connect to#region(region#NAME)vpc=conn.create_vpc('10.10.0.0/16')打印vpcI我正在尝试替换区域_NAME='bla_2'后的文本,因此…只更改文件中的'bla_2',然后再次运行脚本以替换区域_NAME=''后的文本,这样str_replace将不会起作用,因为下次打开文件时,bla_2总是不同的。
<?php
   $file = 'bla.txt';
   $file_contents = file_get_contents($file);
   $fh = fopen($file, "w");
   $file_contents = preg_replace("/(REGION_NAME =) ('')/", "$1 'us-east-A'", "REGION_NAME = ''");
   fwrite($fh, $file_contents);
   fclose($fh);
?>
$file_contents = str_replace('bla_2','bar',$file_contents);