PHP中的数组消失
这是我的密码:PHP中的数组消失,php,arrays,codeigniter,static,Php,Arrays,Codeigniter,Static,这是我的密码: public function pgn_oku() { $n=-1; $x=-1; $detay=""; $hamle=""; $file = fopen("D:\satranc\bielcki\kaleli_roklu_vezirli.pgn","r"); while(! feof($file)) { $n=$n+1; $detay[$n]= fgets($file); $de
public function pgn_oku() {
$n=-1;
$x=-1;
$detay="";
$hamle="";
$file = fopen("D:\satranc\bielcki\kaleli_roklu_vezirli.pgn","r");
while(! feof($file)) {
$n=$n+1;
$detay[$n]= fgets($file);
$detay[$n]=trim($detay[$n]);
if (empty($detay[$n])) {
$x=$x+1;
$hamle1[$x]= fgets($file);
$hamle = explode(' ', $hamle1[$x]);
print_r(array_values($hamle))."<br>";
} else {
echo $detay[$n]."<br>";
echo $n."<br>";
}
}
print_r(array_values($detay))."<br><br>";
echo "<br><br>";
print_r(array_values($hamle))."<br>";
echo "<br><br>";
fclose($file);
}
问题是数组$hamle
打印在上面,而不是下面。我玩弄了一个静态声明,但没有用。任何帮助都将不胜感激
注意:我使用的是CodeIgniter框架
我正在阅读的文件是:
[Event "?"] [Site "?"] [Date "????.??.??"] [Round "?"] [White "?"] [Black "?"] [Result "*"] 1.b4 c5 2.bxc5 d6 3.cxd6 Qxd6 4.e3 Nf6 5.c4 b5 6.cxb5 e5 7.b6 Be7 8.bxa7 O-O 9.axb8=Q Bd7 10.Qbb3 Rab8 11.Qbc2 Rfd8 12.Qe2 Rdc8 13.Qcd3 Qe6 14.Qf3 Qd5 15.Qfxd5 Nxd5 16.Qxd5 Rxc1+ 17.Ke2 Rbxb1 18.Qxd7 Rxa1 19.Nf3 Rxa2 20.Qxe7 Rcc2 21.h4 Rcb2 22.h5 Rb8 23.h6 Rba8 24.Rh5 R2a7 25.Qxe5 *
我找到的答案如下=>代码可以工作,它一直到要读取的文件的末尾,在最后一刻读取最后一行,该行没有出现在“复制和粘贴”中(我想它只是一个字符)
如下所示的中断会产生效果=>
$hamle = explode(' ', $hamle1[$x]);
$GLOBALS['hamleg'] = $hamle;
break;
在我看来,if(empty($detay[$n]))
从来都不是true
,因此$hamle
永远不会得到新值。
$hamle = explode(' ', $hamle1[$x]);
$GLOBALS['hamleg'] = $hamle;
break;