请帮助我,因为我是PHP的新手。我正在从文件读取并将内容加载到数组中。现在,我只想显示一条记录,但结果是空白页。当我显示整个数组时,它可以正常工作,但我将if语句放入特定记录中,但它不起作用。请参见下面的代码。
<?php
$strreturn = "H123458";
$customerRec = array();
$destination_url ="./users/patient.txt";
$myfile = fopen($destination_url, "r") or die("Unable to open file!");
$c=0;
while(!feof($myfile)) {
$customerRec[$c++] = fgets($myfile);
}
fclose($myfile);
for($i=0;$i<count($customerRec);$i=$i+6){
if($customerRec[$i] == $strreturn){
for($t=$i;$t<6+$i;$t++){
echo "$customerRec[$t]"."<br/>";
}
}
}
?>
-patient.txt ----
H123456
Hemede
1234567896541
2018-09-01
2018-09-30
CPT805
H123457
Mario
9876543214569
2018-09-02
2018-09-29
CPT280
H123458
Michael
3698521478965
2018-09-03
2018-09-28
PML209
H123521
Laurant
7532159852365
2018-09-04
2018-09-24
FRS965
H123954
Theos
9658741258632
2018-09-05
2018-09-19
OTH77
答案 0 :(得分:1)
只需将您的行 if($ customerRec [$ i] == $ strreturn){替换为下面的行
focusSearch(FOCUS_DOWN).requestFocus();
希望这会有所帮助
答案 1 :(得分:0)
这是一个非常具体的问题,但是这里提供了一个解决方案,该解决方案可能会为您提供一些优化提示,并且无需担心探索PHP手册
// Load the file contents into an array, trimming away any whitespace
$customerRec = array_map('trim', file(__DIR__ . '/users/patient.txt'));
// Split the array into groups of 6
$groups = array_chunk($customRec, 6);
// Find the groups with the first record equal to "H123458"
$search = "H123458";
$found = array_filter($groups, function($group) use ($search) {
return reset($group) === $search;
});
// Loop over the found groups and display them
foreach ($found as $group) {
echo implode('<br/>', $group);
}
参考文献:
__DIR__
〜http://php.net/manual/language.constants.predefined.php file()
〜http://php.net/manual/function.file.php trim()
〜http://php.net/manual/function.trim.php array_map()
〜http://www.php.net/manual/function.array-map.php array_chunk()
〜http://www.php.net/manual/function.array-chunk.php array_filter()
〜http://www.php.net/manual/function.array-filter.php reset()
〜http://www.php.net/manual/function.reset.php implode()
〜http://www.php.net/manual/en/function.implode.php 答案 2 :(得分:0)
您的代码确定。 但是数组元素最后可能会有一个额外的换行符。
这就是为什么if语句中的比较不起作用的原因。 在if语句之前尝试以下行:
echo urlencode($customerRec[$i])."<br/>";
您可能会看到以下内容:H123458%0A
对此的一种解决方案是在fget周围使用trim函数。
答案 3 :(得分:-3)
我建议您使用file_get_contents函数。它很容易解决您的问题。
替换为文件abc.txt
$file = file_get_contents('abc.txt');
$arr = explode("\n", $file);
print_r($arr);