ホームページ > バックエンド開発 > PHPチュートリアル > phpExcel エクスポートの解決策。ローカルでは正常に動作しますが、サーバーでは文字化けします。

phpExcel エクスポートの解決策。ローカルでは正常に動作しますが、サーバーでは文字化けします。

WBOY
リリース: 2016-06-13 12:25:44
オリジナル
1253 人が閲覧しました

phpExcel のエクスポートはローカルでは正常ですが、サーバーでは文字化けします
タイトルにあるように、サーバーが実行されているときは....

繰り返しますが、ローカルで実行すると正常です。サービスを入れるとこんな感じ コードは以下の通りです。 。 。

<br />            $excel=new \PHPExcel();<br />            do{<br />               $url='http://www.哪个好人来答下.com';<br />               <br />                $content='';<br />                $content=file_get_contents($url); <br />                if($content['status']==0){  <br />                    $data=$content['results'];<br />                  <br />                        $head=array();<br />                        <br />                        //获取表头值<br />                        for($i=0;$i<10;$i++){<br />                        $tmp=array_keys($data[$i]);<br />                        foreach($tmp as $t){<br />                            if(!in_array($t,$head)){<br />                                array_push($head,$t);<br />                            }<br />                        }<br />                        }<br />                      <br />                        $A=65; //A的ASCII值<br />                        $col=array();<br />                        for($i=0;$i<count($head);$i++){   //制作列值<br />                            array_push($col,chr($A++));<br />                        }<br />                        for($i=0;$i<count($head);$i++){  //制作表头<br />                            $excel->getActiveSheet()->setCellValue($col[$i].'1',$head[$i]);<br />                        }<br />                    }         <br />                    foreach($data as $key=>$val){         <br />                        for($i=0;$i<count($head);$i++){<br /><br />                            $excel->getActiveSheet()->setCellValue($col[$i].$i,$row[$head[$i]]);<br />            <br />                        }<br />                    }<br />            <br />                }<br />                $page++;<br />            }while($pageCount>=$page);<br />            $excel->getActiveSheet()->setTitle($title);<br />           $excel->setActiveSheetIndex(0);<br />            <br />            $writer = \PHPExcel_IOFactory::createWriter($excel, 'Excel5');<br />            header('Content-Type: application/vnd.ms-excel');<br />            header('Content-Disposition: attachment;filename="'.$fileName.'.xls"');<br />            header('Cache-Control: max-age=0');<br />          <br />            $writer->save('php://output');<br />            <br />        }<br />
ログイン後にコピー

-----ソリューションのアイデア----------------------

xls ファイルを開くと、ファイルのロゴが上部のボックスに表示されますが、スクリーンショットではそうではありません
BOM ヘッダーまたはその他の出力があるかどうかを確認してください
また、白抜きの四角形の英単語が続くものは含めてはいけません。関連するプログラム ファイルが完全にアップロードされているかどうかを確認してください
-----解決策のアイデア---------- -------- ----
ヘッダーの前のキャッシュの内容をクリアします
<br />ob_end_clean();// 就是加这句<br /><br />header('Content-Type: application/vnd.ms-excel');<br />header('Content-Disposition: attachment;filename="'.$fileName.'.xls"');<br />header('Cache-Control: max-age=0');<br />
ログイン後にコピー

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