如何编写一个php脚本,从文本文件中特定位置的6位数字中减去10。例如,我在文件中的位置105-110处有“030.00”,我想减去010使其成为“020.00”
答案 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);
我希望我已经计算出正确的位置,因为我无法测试它。但是你得到了想法。