PHPファイルの読み書きに関する問題

WBOY
リリース: 2016-06-13 13:37:01
オリジナル
1188 人が閲覧しました

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文をコードに追加し、実行後に結果を投稿します
------解決策---------

話し合う

引用:

@$fp = fopen($_FILES["file"]["tmp_name"],"r");
if($fp){
while (!feof($fp)) {
$count++;
$output = fgets($fp, 1024);
echobase64_encode($output);
exit;
$var = explode(",", $out……

------解決策---------
話し合う
さて、それは何の役に立つのでしょうか? 2 行目から始まる結果は正しいので、ファイルのエンコーディングは正しいはずです。 。 。

------解決策------------------
わかりました、理由を見てください
PHP コード
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>
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート