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


PHP script to modify text at position in file

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

作为一种标准格式,我会推荐这样的东西:

$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);

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

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

这应该可以满足您的需求。另一种选择是正则表达式,但可能存在出错的余地。如果你每次都知道确切的位置,你可以这样做。

--编辑--

固定了子条上的位置

使用 fopen() 打开文件。执行 foreach 循环以遍历每行。

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

然后在有问题的行上使用 substr() 来获取你想要的数据,你将以字符串形式获得数据。将其转换为 int,您可以从中减去。

希望对您有所帮助!