質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

4671閲覧

phpでエクセルを開きたい

YamamotoHiroki

総合スコア57

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2016/12/09 06:25

phpでエクセルを開きたいのですが以下のエラーが出ます

php.iniのtimezonをTokyoあたりにすれば解決すると思うのですが、php.iniのファイルがどれなのかわかりません

エラー
Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are required to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /Users/#####/Desktop/sample/PHPExcel/Reader/Excel2007.php on line 413

Warning: strtotime(): It is not safe to rely on the system's timezone settings. You are required to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /Users/#####/Desktop/sample/PHPExcel/Reader/Excel2007.php on line 414

以下実行コードです

sample.php

1<?php 2// PHPExcelライブラリ読み込み 3inclede_once 'PHPExcel.php'; 4inclede_once 'PHPExcel/IOFactory.php'; 5 6// ファイルを開く 7$obj = PHPExcel_IOFactory::createReader('Excel2007'); 8$file = $obj->load('sample.xlsx'); 9 10foreach ($file->getSheetNames() as $i => $sheet_name) { 11 // シート名を表示 12 echo mb_convert_encoding($sheet_name, "SJIS", "UTF-8") . "\n"; 13 14 // セルの値を表示 15 $file->setActiveSheetIndex(0); 16 $sheet = $file->getActiveSheet(); 17 foreach ($sheet->getRowIterator() as $row) { 18 foreach ($row->getCellIterator() as $cell) { 19 echo mb_convert_encoding($cell->getCalculatedValue(), "SJIS", "UTF-8") . " "; 20 } 21 echo "\n"; 22 } 23 echo "\n"; 24} 25

phpのversionです。

$php -v
PHP 5.5.31 (cli) (built: Jan 11 2016 23:27:33)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies

Macを使用しています。

$locate php.ini
/Applications/MAMP/bin/php/php5.1.6/conf/php.ini
/Applications/MAMP/bin/php/php5.1.6/conf/php.ini.temp
/Applications/MAMP/bin/php/php5.2.17/conf/php.ini
/Applications/MAMP/bin/php/php5.2.17/conf/php.ini.temp
/Applications/MAMP/bin/php/php5.3.29/conf/php.ini
/Applications/MAMP/bin/php/php5.3.29/conf/php.ini.temp
/Applications/MAMP/bin/php/php5.4.34/conf/php.ini
/Applications/MAMP/bin/php/php5.4.34/conf/php.ini.temp
/Applications/MAMP/bin/php/php5.5.18/conf/php.ini
/Applications/MAMP/bin/php/php5.5.18/conf/php.ini.temp
/Applications/MAMP/bin/php/php5.6.2/conf/php.ini
/Applications/MAMP/bin/php/php5.6.2/conf/php.ini.temp
/Applications/MAMP/conf/php5.1.6/php.ini
/Applications/MAMP/conf/php5.2.17/php.ini
/Applications/MAMP/conf/php5.3.10/php.ini
/Applications/MAMP/conf/php5.3.13/php.ini
/Applications/MAMP/conf/php5.3.14/php.ini
/Applications/MAMP/conf/php5.3.20/php.ini
/Applications/MAMP/conf/php5.3.27/php.ini
/Applications/MAMP/conf/php5.3.28/php.ini
/Applications/MAMP/conf/php5.3.29/php.ini
/Applications/MAMP/conf/php5.3.5/php.ini
/Applications/MAMP/conf/php5.3.6/php.ini
/Applications/MAMP/conf/php5.4.10/php.ini
/Applications/MAMP/conf/php5.4.19/php.ini
/Applications/MAMP/conf/php5.4.20/php.ini
/Applications/MAMP/conf/php5.4.21/php.ini
/Applications/MAMP/conf/php5.4.23/php.ini
/Applications/MAMP/conf/php5.4.25/php.ini
/Applications/MAMP/conf/php5.4.26/php.ini
/Applications/MAMP/conf/php5.4.3/php.ini
/Applications/MAMP/conf/php5.4.30/php.ini
/Applications/MAMP/conf/php5.4.32/php.ini
/Applications/MAMP/conf/php5.4.33/php.ini
/Applications/MAMP/conf/php5.4.34/php.ini
/Applications/MAMP/conf/php5.4.4/php.ini
/Applications/MAMP/conf/php5.5.10/php.ini
/Applications/MAMP/conf/php5.5.14/php.ini
/Applications/MAMP/conf/php5.5.17/php.ini
/Applications/MAMP/conf/php5.5.18/php.ini
/Applications/MAMP/conf/php5.5.3/php.ini
/Applications/MAMP/conf/php5.5.5/php.ini
/Applications/MAMP/conf/php5.5.7/php.ini
/Applications/MAMP/conf/php5.5.9/php.ini
/Applications/MAMP/conf/php5.6.0/php.ini
/Applications/MAMP/conf/php5.6.1/php.ini
/Applications/MAMP/conf/php5.6.2/php.ini
/Applications/XAMPP/xamppfiles/etc/php.ini
/Applications/XAMPP/xamppfiles/etc/php.ini-pre1.7.2
/private/etc/php.ini.default
/private/etc/php.ini.default-5.2-previous

どのファイルなんでしょうか?
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/12/09 08:23

phpをどういう手順でインストールしたのか思い出してみてください。その際、参考になる情報として何を頼りにしたのか、どこかのページだとしたらそのurlもください。
YamamotoHiroki

2016/12/09 21:54

すいません、1年以上前のことなのでよく覚えていません・・・結構試行錯誤して色々なサイトを参考にしたと思います。
guest

回答2

0

php.ini ファイルの場所は php --ini をご利用されると探しやすいかと思われます。

Loaded Configuration File を見ると良いのではないかと思われます。

例です:

$ php --ini Configuration File (php.ini) Path: /etc Loaded Configuration File: /etc/php.ini : :

投稿2016/12/09 07:08

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YamamotoHiroki

2016/12/09 21:50

$php --ini Configuration File (php.ini) Path: /etc Loaded Configuration File: (none) Scan for additional .ini files in: /Library/Server/Web/Config/php Additional .ini files parsed: (none) こうなった場合m6uさんがおっしゃる通りphp.iniが正しく読み込めていない状況なのでしょうか? 1年くらい何の問題もなく使えていたのですが・・・何かのはずみで消去してしまったのでしょうか・・・
guest

0

ベストアンサー

<? phpinfo(); ?>とだけ書いたphpファイルを実行してみて、php.iniがどこにあるファイルなのかを調べてみてください。
あるいは、シェル上でコマンドラインphp -iとするとわかるかもしれません。

あと、もしかしたら、ini_set('date.timezone', 'Asia/Tokyo');ってのを、実行するphpの冒頭に加えるだけで回避できるかもしれませんよ。

投稿2016/12/09 06:29

編集2016/12/09 06:36
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YamamotoHiroki

2016/12/09 07:11

<? phpinfo(); ?>の実行結果の一部抜粋です。 Configuration File (php.ini) Path => /etc Loaded Configuration File => (none) Scan this dir for additional .ini files => /Library/Server/Web/Config/php Additional .ini files parsed => (none) これは/Library/Server/Web/Config/phpにあるということでしょうか? ini_set('date.timezone', 'Asia/Tokyo');を冒頭にかいても同じエラーが出ました。
退会済みユーザー

退会済みユーザー

2016/12/09 08:39 編集

おそらく、適切にphp.iniファイルを読み込めていない状態だと思われます。読もうと思った場所(/etc)にphp.iniファイルがなく、追加(/Library/Server/Web/Config/php)で読もうとしたもののなかった→デフォルトの定義でphpが起動している状態、かと。 ありがちなのが、php.iniのサンプルファイルしかおいてなくて本番用はインストール時に自分でサンプルファイルからコピーしてカスタマイズするパターンだったりします。そのため、phpをインストールしたときの経緯を思い出してみてください。 php.iniファイルを読み込まない動作だと、主だった標準モジュール類も読み込まれずまともに開発できないと思うので、間違った手順でインストールしているならphpの再インストールもご検討ください。
YamamotoHiroki

2016/12/09 22:05

エラーコードの /Users/#####/Desktop/sample/PHPExcel/Reader/Excel2007.php on line 413 /Users/#####/Desktop/sample/PHPExcel/Reader/Excel2007.php on line 414 の部分を参照すると Excel2007.php $docProps->setCreated(strtotime(self::array_item($xmlCore->xpath("dcterms:created")))); //! respect xsi:type $docProps->setModified(strtotime(self::array_item($xmlCore->xpath("dcterms:modified")))); //! respect xsi:type とかいてありましたので、ここ2行をコメントアウトするとエラーが消え、正常に動き出すようになりました。 コードの意味は全く分かっていませんのでなんの機能が無効になったのかわかりませんが・・・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問