화면에 표시하려고하는 숫자로 가득 찬 9x9 스도쿠 행렬이 있습니다. 첫 번째 부분은 쉽게 작동하지만 파일에 행렬을 저장하려고하면 무작위로 빈 행이 생기고 이유 또는 방법을 알 수 없습니다. 이것은 9 열 그들 사이에 공간이 나에게 9 개 행을 제공하도록되어PHP fwrite()는 무작위로 빈 행을 추가합니다.
$file = fopen($fileName, "w");
for ($row = 0; $row < 9; $row++)
{
for ($col = 0; $col < 9; $col++)
{
fwrite($file, $this->grid[$row][$col] . " ");
}
fwrite($file, PHP_EOL);
}
fclose($file);
그러나 나는 다른 무언가 그리드의 숫자에 따라 각 시간을 얻을 : 여기 내가 가지고있는 코드입니다. 예를 들면 다음과 같습니다.
1 5 9 7 2 3 4 6 8
2 3 6 4 8 5 9 7 1
8 4 7 6 9 1 2 3 5
3 6 8 9 4 7 1 5 2
9 1 2 8 5 6 3 4 7
4 7 5 1 3 2 6 8 9
5 8 3 2 6 9 7 1 4
7 2 4 3 1 8 5 9 6
6 9 1 5 7 4 8 2 3
해당 숫자의 빈 줄은 항상 같은 위치에 있습니다. 여기에 또 다른 거기에 다른 번호 하나 : 때때로
5 1 6 9 7 3 2 8 4
2 7 3 4 8 5 9 6 1
8 4 9 1 2 6 7 5 3
9 5 7 6 3 1 4 2 8
3 8 1 2 4 7 6 9 5
6 2 4 8 5 9 1 3 7
7 3 2 5 6 4 8 1 9
1 6 5 7 9 8 3 4 2
4 9 8 3 1 2 5 7 6
그리고 다음 사실 이것처럼 좋아 보이는 하나 얻을 수 있습니다, 동일
6 4 3 7 8 9 2 5 1
9 1 8 2 3 5 4 6 7
5 7 2 6 1 4 8 3 9
1 3 4 8 9 6 5 7 2
7 9 5 3 4 2 1 8 6
8 2 6 1 5 7 9 4 3
2 8 7 4 6 1 3 9 5
3 5 1 9 7 8 6 2 4
4 6 9 5 2 3 7 1 8
코드 만 일을하는 변경 사항은 그리드의 숫자입니다. fwrite를 echos로 바꾸면 브라우저에서 제대로 작동하고 모든 것을 올바르게 표시하지만 파일을 보내면 지저분 해집니다. 나는 어떤 일이 일어나고 있는지 전혀 모른다.
편집 : 파일의 출력은 확실히보기 시작
fwrite($file, intval($this->grid[$row][$col]) . " ");
: 는 나는이에 라인 변경으로 그리드의 값이 너무 빨리 문자열로 저장 한 것을 발견했다. 그러나 문자열이 때때로 문제를 일으키는 이유는 아직 불확실합니다.
먼저 디버깅을 수행하십시오. 출력을 보여주는 것이 좋지만, 거기에 들어가는 공백의 종류를 정확하게 표시하는 것이 좋습니다. 그 빈 줄은 여분의'\ n's입니까? '\ r \ n's? 다른 것? – Jon
@ 존 그가'PHP_EOL'을 사용하고있는 코드에서 볼 수 있습니다 –
어떻게 확인할 수 있습니까? 나는 PHP_EOL을 목적에 맞게 사용하고 있으므로 \ n 또는 \ r \ n을 다루지 않아도됩니다. – mmvsbg