PHP脚本修改文件位置的文本
问题描述:
我该如何着手编写一个php脚本,该脚本从文本文件中特定位置的6位数减去10。例如,我有“030.00”在一个文件中的位置105-110,我想减去010,使它“020.00”PHP脚本修改文件位置的文本
答
作为一个标准的格式,我建议是这样的:
$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);
我希望我已经计算出正确的位置,因为我无法测试它。但你得到了ideea。
答
$val = (float) substr($str, 105, 5);
$val = number_format($val - 10, 2);
$str = substr_replace($str, $val, 105, 5);
这应该做你在找什么。另一种选择是正则表达式,但可能会有错误的余地。如果你知道确切的位置,每次你可以这样做。
--edited--
固定在SUBSTR
答
打开方式的fopen文件()的位置。做一个foreach循环来遍历每一行。
foreach ($lines as $line_num => $line) {
然后用就行SUBSTR()的问题得到你想要的数据,你就会有数据为字符串。将它转换为一个int,你可以从它中减去。
希望有帮助!
这是一个标准格式,例如。 DDD.DD? – CristiC 2011-05-16 13:55:40
是的,这是如何格式请求 – Technupe 2011-05-16 13:57:19