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

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

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

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

Q&A

解決済

2回答

1112閲覧

TCPDFのライブラリ、Eclipse上でエラーにならないように採用するには

saya24

総合スコア221

PHP

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

0グッド

0クリップ

投稿2019/02/12 06:01

編集2019/02/12 09:47

TCPDF導入のうえで参考
を拝見して、早速自分の開発環境のインクルードパスとかいう場所に配置してみました。

「インクルードパス」という言葉自体、当方にとっては不明でしたので、
PHPINFO()で調べたパスを ソレと信じて 一先ずのところ配置致しました。
イメージ説明

この上で記事に紹介されたコードそのままを採用してみると、型を認識できないというエラーを招いてしまいました。
イメージ説明

どのようにして、自分の開発環境で試すことができるのでしょうか?
エラーがなくなったら、http://localhost/サイト名/tcpdf_test.phpへアクセスすれば どうにかページを表示できるはずなのでしょうか?

ご存知の方おりましたらご教示をよろしくお願い致します。

追記
イメージ説明

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

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

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

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

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

m.ts10806

2019/02/12 06:26

できればコード、エラーは画像ではなくテキストベースで<code>機能を使ってご提示ください。再現確認したいときに画像では正しく再現できませんので。 (※あと侍エンジニア塾は検索するとよく出てきますが講座の方は結構いわくつきだったりするので避けた方が良いケースもあるようです)
guest

回答2

0

自己解決

Eclipse上で当該ライブラリの採用のためINCLUDE(パス)を正しく記述しようと、CLASS生成部分で
「TCPDF を型に解決できません」というエラーが出続けていました。
当然この状態では当該機能が実行を失敗すると信じていましたが、実行できることがわかりました。
引き続いてEclipse上で上記のエラー表示が出続けることに違和感を感じ対策を検討してきましたが、当方は以下でこの問題を克服しました。
イメージ説明

投稿2019/02/12 09:55

saya24

総合スコア221

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

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

0

エラーはnewで指定したクラスが参照できない(読み込める位置にない)というものだと思います。

ファイル一式をinclude_path配下に置いたのでしたらget_include_path()で取得した上で、そこからの相対パスを記述する必要があります。

ちなみにですが、

配置場所が分かりません。

プログラムから参照できる場所であればどこでもいいというのが実際のところです。
実際は、直接アクセスできないようにDOCUMENT_ROOT配下には置かないのが通例でしょうし、昨今ではcomposerによるパッケージのインストールが通例なので直接include/requireを書く機会はあまりないです。


追記

Webページと同じ階層にtcpdfのフォルダを配置

例えば下記だとどうでしょうか。

php

1$tcpdf_path = __DIR__."/tcpdf/tcpdf.php"; 2if((file_exists($tcpdf_path)){ 3 include $tcpdf_path; 4}else{ 5 die("not exist tcpdf"); 6}

投稿2019/02/12 06:08

編集2019/02/12 07:59
m.ts10806

総合スコア80765

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

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

saya24

2019/02/12 07:28

ご見解ありがとうございます。 「プログラムから参照できる場所であればどこでもいい」ということで、今回記事をもとに作成したWebページと同じ階層にtcpdfのフォルダを配置、コードの先頭にinclude "tcpdf/tcpdf.php";と記述してみましたが相変わらずEclipse上で型を認識できないエラーになっております。 絶対パス:c:\xampp\htdocs\YEN\tcpdf\tcpdf.phpでincludeしても、状況は変わりませんでした。 このフルパスを エクスプローラ(Windows7)でアクセスすると当該phpのソースが開いてきます。 社内でインターネット利用の上でProxyServerを使用しているのでCOMPOSERを介したセットアップが期待できません。以前CAKEPHPの際にこりました。 さて、話しは戻りますが、何か状況を進展させるための確認事項などございませんでしょうか
m.ts10806

2019/02/12 07:31

パスが違う以外は基本考えられないですが、includeで使っているパスをそのまま file_exists()で確認すると何が出ますか? あと「型を認識できないというエラー」ではなく、正確なエラーメッセージをそのまま質問本文にご提示ください。 PHPを実行してエラー確認されたほうがもう少し分かりやすくなるかもしれませんが。
saya24

2019/02/12 07:53

ご支援ありがとうございます、恥ずかしながら var_dump(file_exists("C:\xampp\htdocs\YEN\tcpdf\tcpdf.php")); ⇒ C:\xampp\htdocs\YEN\tcpdf_test.php:4:boolean false となりました。これはとおっていないということですよね? var_dump();の使い方 間違っていたらもともこもないので それと、Eclipse上で表示された正確なエラー内容は「TCPDF を型に解決できません」です。 ちなみに絶対パスをエクスプローラで叩くと 当該WEBページのコードが現れてくるのです...
m.ts10806

2019/02/12 07:57

そうですね。falseということは存在しないということになります。 そもそも file_exists("C:\xampp\htdocs\YEN\tcpdf\tcpdf.php") だと\がエスケープストリングの役割をしてエラーになりそうですけど・・。 試して欲しい読み込み方を回答に追記します。
saya24

2019/02/12 08:01

var_dump(file_exists("C:/xampp/htdocs/YEN/tcpdf/tcpdf.php")); ⇒ C:\xampp\htdocs\YEN\tcpdf_test.php:4:boolean true になりました。円マークをバックスラッシュに置き換えてみました。
saya24

2019/02/12 08:10

trueになったパスを、下記のようにINCLUDEしたら、同じエラーがでてます。 もはやincludeの仕方?? include "C:/xampp/htdocs/YEN/tcpdf/tcpdf.php"; var_dump(file_exists("C:/xampp/htdocs/YEN/tcpdf/tcpdf.php")); 追記していただいたコードをこれから試したいと思います。
m.ts10806

2019/02/12 08:13

あと、あるとしたら「アクセス権限」ですかね。 Windowsっぽいのであまり関係ないとは思いますが。 ちなみにincludeそのままでtcpdf.phpの冒頭にecho 1; とか書くとその1は出力されますか?
saya24

2019/02/12 08:31

追記頂いたコードを貼り付けたら、include $tcpdf_path;の部分で unexpected 'EOF'と表示されています。それはさておき... 申し訳ございません、現象が伝わり易いよう再度画像を貼り付けさせて頂きました、ご容赦ください。 なんと例の「TCPDF を型に解決できません」のエラーがある状態のまま、当該Webページを実行させることができてしまいました。Eclispeの現況とWebページの実行結果(PDF出力)を画像に収めました。 コーディング上でエラーが出続けている状態を残しておきたくないのですが... ちなみに仰られるようにecho 1をコードに追記したら 「1」が結果としてページに現れました。
saya24

2019/02/12 08:57

Eclipse上、参照できているはずのライブラリが参照できていないかの如く、エラー表示を招いているのはこのサイトに記載されていることと同じことでしょうか?https://freebsd.sing.ne.jp/tool/07/06/99/01.html
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問