アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在PHPを学習しておりますが、
以下で躓いております・・・ご教示ください。

PDFLib/PDIライブラリを使用して、PDFを作成を試みたのですが、

<?php
$objPdf=pdf_new();
pdf_begin_document($objPdf,"","");
 ・
 ・
 ・
なんですが、
Fatal error: Call to undefined function pdf_new() in"C//・・・・・・"on line 2
というエラーが表示されてしまいます。

c:/php/extにサンプルでついていたlibpdf_php.dllファイルを入れ、
Windowsフォルダのphp.iniファイルには
extension_dir = "c:/php/ext"
extension=libpdf_php.dll
という記述はしました。

ちなみに
extension=php_mbstring.dll
は問題なく動作しているようです。

A 回答 (3件)

PHPの場合は



$objPdf->begin_document("", "");

の方ですね。

同梱されている hello.php なども参考にするといいと思います。

参考URL:http://www.infotek.co.jp/pdflib/pdflib/pdflib_ny …
    • good
    • 0
この回答へのお礼

参考URL大変役に立ちました。
ありがとうございました。

お礼日時:2010/12/15 05:37

http://jp2.php.net/manual/ja/intro.pdf.php
を読むと、
$objPdf=pdf_new();
の書き方は PHP4 の書き方みたいですね。

extension が正しく認識してるかを確認するのなら

<?php
phpinfo();

とかを表示してみてはどうでしょうか?

ローカル環境などでWindowsでPHPのextenionを用意するときは、いつも大変だなぁ。面倒だなぁと思うのですが、PHP本体のコンパイル環境(VC6とかVC9とか,thread-safeとか Non-thread-safe とか)を意識して準備しなければならない事もあって、最初から用意されたもの(PHPのバイナリにバンドルされた物)以外を使おうとするとハマることがあります。

#本番環境や試験環境はLinuxだからいいやと、諦めたこともあります。
#僕は最近Macになったので、その辺は気にしなくなりました。

いずれにしても、dll のロードに失敗した場合は phpinfo(); に出てこないはずなので確認してみることをオススメします。

この回答への補足

PHPがVer5.2だったのでVer5.3にして、
そして設定ファイルを最初から設定し直し、
libpdf_php.dllもバージョンが古かったので8にしました。

勘違いしており、phpinfoでextensionという文字列を探していましたが、
PDFで探すと下記になっていましたので、有効になっているようです。
PHPのバージョンが関係しているのかは、今となっては不明ですが・・・・

PDF Support             enabled
PDFlib GmbH Binary-Version   8.0.1p8
PECL Version 2.2.0
Revision $Revision: 1.20.2.2 $

補足日時:2010/12/14 23:18
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

真っ先にphpinfoは確認したのですが、extensionが有効になっているかの
確認方法が分からず・・・・初心者で申し訳ございません。
PHPextensionを確認すればいいのでしょうか?
そこには、20060613と日付のようなものが記載されていました。

他にextensionという記載があるのは、
Zend Extension、extension_dirと
「mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1.」の計4つだけでした。

やはり有効になってextension=libpdf_php.dllが有効になっていないのでしょうか?

お礼日時:2010/12/14 21:10

ANo.1 です。



すみません。エラーは2行目ですね。

PHP の場合は通常クラスを使う場合と同様に、

$objPdf = new PDFlib();

とするようです。

また3行目については、ANo.1 の通りです。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

PHP5 だと $objPdf = new PDFlib();と書くのですね。・・・
それでもやはり
Fatal error: Class 'PDFlib' not found in”C://・・・・”
というエラーです。

libpdf.dllのバージョンとPHPのバージョンの問題でしょうか。
もしくはiniファイルが根本的に間違っているか・・・分からない

もう少し調べて見ます。

ちなみに教材にしているのは、「10日で覚えるphp5入門教室」
という2005-2007年に出版されていたものです。
会社の後輩から譲り受けました。

お礼日時:2010/12/14 21:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!