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

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

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

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

PEAR

PEAR (PHP Extension and Application Repository)はPHPで利用する事ができるライブラリです。

Q&A

解決済

1回答

3135閲覧

PEAR_Error::addTranslationFile()を解決するにはどうしたら良いでしょうか?

mvc_php

総合スコア19

PHP

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

PEAR

PEAR (PHP Extension and Application Repository)はPHPで利用する事ができるライブラリです。

0グッド

0クリップ

投稿2019/01/28 11:26

編集2019/01/28 11:34

前提・実現したいこと

サンプルコードを参考にPHPで六曜を含むカレンダーを作成したいと思っていますが以下のエラーメッセージが発生しました。
PHPのバージョンを5.4や7.2へ変更しましたが7.2へ変更すると異なるエラーになりました。
解決策が見つからずご教授いただけないでしょうか。
何卒宜しくお願い致します。

発生している問題・エラーメッセージ・49行目

Fatal error: Call to undefined method PEAR_Error::addTranslationFile() in
$dh->addTranslationFile($ja, "ja_JP");

該当のソースコード

<?php //パッケージ等の読み込み require_once("Calendar/Month/Weekdays.php"); require_once("Date/Holidays.php"); require_once("./lib/qreki.php"); define ('CALENDAR_FIRST_DAY_OF_WEEK',0); //六曜を配列にいれる $rokuyo = array('大安','赤口','先勝','友引','先負','仏滅'); //カレンダーを表示する時の年を取得 if(!$_GET[year2]){ $year = date("Y"); }else { if(is_numeric($_GET[year2])){ $year = $_GET[year2]; }else{ $year = date("Y"); echo <<<EOM <script type="text/javascript">alert("半角英数で入力して下さい");</script> EOM; } } //カレンダーを表示する時の月を取得 if(!$_GET[month2]){ $month = date("m") + 0; }else{ $month = $_GET[month2]; } $calMonth = new Calendar_Month_Weekdays($year, $month,0); $calMonth->build(); $prev = $calMonth->prevMonth('object'); $p_year = $prev->thisYear(); $p_month = $prev->thisMonth(); $next = $calMonth->nextMonth('object'); $n_year = $next->thisYear(); $n_month = $next->thisMonth(); //祝日判定 // 「Date_Holidays_Japan」インストール先のパスを指定 $ja = "data/Date_Holidays_Japan/lang/Japan/ja_JP.xml"; //ja_JP.xmlのインストール先 $dh = &Date_Holidays::factory("Japan", $year, "ja_JP"); $dh->addTranslationFile($ja, "ja_JP"); $holidays = array(); //祝日の月日をキーに祝日名を配列に格納 foreach ($dh->getHolidays() as $value) { $holidays[$value->getDate()->format("%m%d")] = $value->getTitle(); } //フォーム部分 echo '<h1 style="font-size:25px;">'.$year.'年'.$month.'月<span style="font-size:16px;">のカレンダー</span><span style="font-size:14px;">[六曜、祝日あり!]</span></h1> <div id="cal_hyouji"> <div id="pre_next"> <a href="?year2='.$p_year.'&month2='.$p_month.'"><<前月</a> <a href="http://サイトurl.com">今月</a> <a href="?year2='.$n_year.'&month2='.$n_month.'">次月>></a><br /> </div> <form action="" method="get"> <input type="text" name="year2" value='.$year.' size="5"> <select id="month_search" name="month2"> <option value="1">1月</option><option value="2">2月</option><option value="3">3月</option><option value="4">4月</option><option value="5">5月</option><option value="6">6月</option><option value="7">7月</option><option value="8">8月</option><option value="9">9月</option><option value="10">10月</option><option value="11">11月</option><option value="12">12月</option> </select> <input type="submit" value="の「かれんだー」を見る" class="btn btn btn-large"/> </form> <table id="top_ca"> <thead id="day_line"> <tr> <th class="sun">日</th><th>月</th><th>火</th><th>水</th><th>木</th><th>金</th><th class="sat">土</th> </tr> </thead> <tbody>'; while ($day = $calMonth->fetch()) { if ($day->isFirst()) { echo '<tr>'; } if ($day->isEmpty()) { echo "<td class=\"empty_d\"> </td>"; }else { $date = sprintf("%02d",$day->thisMonth()).sprintf("%02d",$day->thisDay()); if (array_key_exists($date, $holidays)) { echo "<td class=\"holiday\">";//祝日のとき(cssで色を付けるため) }else if(date("m") == $day->thisMonth() && date("d") == $day->thisDay()) { // 今日の色分けとリンク echo "<td class=\"today\">"; } else if ($day->isFirst()) { echo "<td class=\"sun\">";//週の最初(日曜)のとき(cssで色を付けるため) } else if ($day->isLast()) { echo "<td class=\"sat\">";//週の最後(土曜)のとき(cssで色を付けるため) } else { echo "<td>"; } echo $day->thisDay() //祝日に該当する月日の場合、祝日名を出力 if (array_key_exists($date, $holidays)) { echo "<div class=\"holiday_td\">".$holidays[$date]."</div>"; } //六曜を表示 echo "<div class=\"rokuyou_font\">[".$rokuyo[get_rokuyou($year,$month,$day->thisDay())]."]</div>"; echo "</td>"; } if ($day->isLast()) { echo "</tr>\n"; } } echo '</tbody></table> </div>'; ?>

用意したライブラリ

https://github.com/pear/Date
https://github.com/pear/Calendar
https://github.com/pear/Date_Holidays
https://github.com/pear/Date_Holidays/blob/trunk/lang/Japan/ja_JP.xml

### その他[./lib/qreki.php]
http://jun.2chan.net/script/qreki.php.txt

開発環境

・Windows10 Pro 64bit
・XAMPP 3.2.2
・PHP Version 5.6.40
・PEAR
・Google Chrome 71.0.3578.98

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

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

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

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

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

guest

回答1

0

ベストアンサー

PEARとかもはや誰も使ってないのでこういうの使ったほうがいいのでは。
https://qiita.com/suzunone/items/949e71ea7ea86630524f

投稿2019/01/28 11:56

kawax

総合スコア10377

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

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

mvc_php

2019/01/29 06:33

ご回答有難う御座います。 Composerという素晴らしいライブラリ管理ツールがあったのですね。 それも結構前からあったとは・・・お恥ずかしいです。 頑張って挑戦したいと思います!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問