使用PHP在.txt文件中将变量的正值更改为负值并反转
我有一个.txt文件,其中包含变量X、Y、Z。它们由空格或新行分隔。它看起来像:使用PHP在.txt文件中将变量的正值更改为负值并反转,php,Php,我有一个.txt文件,其中包含变量X、Y、Z。它们由空格或新行分隔。它看起来像: Y-3.165 X-25.221 M8 Z32.054 Z26.57 F500 Y0.0 F1000 Y160.8 X-20.254 我需要的是将X的正值转换为负值,并将其反转(从负值转换为正值)。问题在于,变量并不总是一条直线上的单个变量,它可能是其中的2个或3个(比如:Y-3.165 X-25.221 M8) 我认为算法是: 如果(找到X)->继续,直到下一个空格字符或行尾,记录X和空格或下线之间的
Y-3.165 X-25.221 M8
Z32.054
Z26.57 F500
Y0.0 F1000
Y160.8
X-20.254
我需要的是将X的正值转换为负值,并将其反转(从负值转换为正值)。问题在于,变量并不总是一条直线上的单个变量,它可能是其中的2个或3个(比如:Y-3.165 X-25.221 M8)
我认为算法是:
但我不确定自己是否走上了正确的道路,甚至不知道如何做到这一点。你能指导我吗?可以分三步完成:
$content = file_get_contents('/path/to/your/file');
$content = str_replace('X-', 'X+', $content);
$content = preg_replace('/X(\d)/', 'X-$1', $content);
$content = str_replace('X+', 'X', $content);
file_put_contents('/path/to/your/file', $content);
所以你把X-变成X+,然后把所有的X,后面跟一个数字变成X-,然后把X+去掉。您必须使用X+执行该步骤,因为如果您立即将X-更改为X,则在将X更改为X-时,它将被替换。@Dave然后您将只得到负片,因为如果您将X-更改为X,则在反转正片时,所有内容都将被视为正片。但是你可以把X-变成X+,然后把所有的X[\d]都变成X-[\d],然后把X+@Gordon-上的+去掉,听起来不错