用于修改文件中位置的文本的PHP脚本

时间:2011-05-16 13:53:48

标签: php

如何编写一个php脚本,从文本文件中特定位置的6位数字中减去10。例如,我在文件中的位置105-110处有“030.00”,我想减去010使其成为“020.00”

3 个答案:

答案 0 :(得分:0)

$val = (float) substr($str, 105, 5);
$val = number_format($val - 10, 2);
$str = substr_replace($str, $val, 105, 5);

这应该做你想要的。另一种选择是正则表达式,但可能存在错误的余地。如果你每次都这样做就知道确切的位置。

- 编辑 -

修正了substr

上的位置

答案 1 :(得分:0)

使用fopen()打开文件。做一个foreach循环遍历每一行。

foreach ($lines as $line_num => $line) {

然后在相关行上使用substr()来获取所需的数据,并将数据作为字符串。将其转换为int,您可以从中减去。

希望有所帮助!

答案 2 :(得分:0)

作为标准格式,我建议这样的事情:

$myFile = "yourFile.txt";
$fh = fopen($myFile, 'r');
$fileContent = fread($fh, filesize($myFile));

$toBeReplaced = (float) substr($fileContents, 105, 6);
$newString = str_pad( ($toBeReplaced - 10), 6, "0", STR_PAD_LEFT );

$finalString = substr($fileContents, 0, 104) . $newString . substr($fileContents, 111, strlen ($fileContents) - 117);
fclose($fh);

$myFile = "newFile.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
fwrite($fh, $finalString);
fclose($fh);

我希望我已经计算出正确的位置,因为我无法测试它。但是你得到了想法。