PHPファイルの読み書き問題
T,T
ソースコードはこんな感じです。 。 。 。
@$fp = fopen($_FILES["file"]["tmp_name"],"r");
if($fp){
while (!feof($fp)) {
$count++;
$output = fgets($fp, 1024);
$var =explode(",", $output);
。 。 。 。 。 。
}
奇妙なことに、最初の行の情報が常に欠落しています。
ファイルの内容は次のとおりです。71222237、コンピュータ、JAVA データベース プログラミング、清華大学出版局、2003 年、Sun Lin、39。 , 7
それを読み上げてください、$var[0] = 7122223
これはなぜですか? 。 。 。 。 。
-----解決策--------------------------------
完全な var_dump とは何ですか?
------解決策---------
@$fp = fopen($_FILES[" ファイル"]["tmp_name"],"r");
if($fp){
while (!feof($fp)) {
$count++;
$output = fgets( $ fp, 1024);
echobase64_encode($output);
exit;
$var =explode(",", $output);
。 。 。 。 。 。
}
赤字の2文をコードに追加し、実行後に結果を投稿します
------解決策---------
echo $output =base64_decode("77u/NzgyMjExMjIsIOiuoeeul+acuiwgSkFWQeaVsOaNruW6k+e8lueoiywg5riF5Y2O5aSn5a2m5Ye654mI56S+LCAyMDAzLCDlrZnmnpcsIDM5LCA3DQo="); $var =explode(",", $output); print_r($var); <br><font color="#e78608">------解決策----------------------</font><br>次に、BOM を考慮する必要があります<br>データ ファイルは utf-8 で、BOM ヘッダー <br>print_r(unpack('H*', $output));<br><br>Array<br>(<br> [1] => efbbbf3738323231 ...<br>)<br><br>最初の行の処理時に BOM を削除してみてください<br>$var =explode(",", substr($output, 3));<br> <br> <br><font color="#e78608">------解決策---------</font><br>BOM ヘッダーが指定された文字セットにありません。 for 文字セット的には不正な文字であり、当然通常のデータにも影響します<br><br>例えば、iconvをエンコード変換に使用する場合、不正な文字があった場合に切り詰められてしまうのではないか? <br> <div class="clear"></div>