我在PHP中输入以下代码来阅读文本" yusuf123"来自外部文本文件" sample.txt"并计算和打印总位数。令人惊讶的是,代码计算的是4位而不是3位数。
$file = fopen("sample.txt", "r");
$count = 0 ;
while(!feof($file))
{
$ch = fgetc($file);
if($ch >= '0' && $ch <= '9')
$count++;
}
echo $count ;
fclose($file);
?>
上述代码的输出为4而不是3。 请帮我解决这个问题。提前致谢
答案 0 :(得分:1)
您可以使用file_get_contents并将整个文件作为一个字符串读取,并使用preg_match_all获取所有数字。
//$str = file_get_contents("sample.txt");
$str = "yusuf123";
preg_match_all("/\d/", $str, $digits);
echo count($digits[0]); // 3
不确定它会解决您的问题,因为我无法测试您的文件,但它可以在这里工作
$digits[0]
因为它是一个匹配数字的数组。
答案 1 :(得分:0)
感谢您的及时帮助。我找到了答案。我发现变量在达到EOF时保留最后一个值并计算两次。这就是我所做的,我找到了答案。
Sub CalculateInterest()
Static i As Long
Dim j As Integer
Dim PD(1 To 2) As Integer
For j = 1 To 2
i = Application.WorksheetFunction.IPmt(0.18 / 2, PD(j), 2, 108434)
Next j
MsgBox i
ActiveCell.Value = i
End Sub