【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】

Fatal error: Call to undefined function domxml_open_mem() in C:\xampp\information.php on line 51

というエラーが出てしまい、悩んでいます。

エラーの内容としては、関数が無いというエラーのようで
ただ、リファレンスを見るときちんと掲載されています。
PHP5を利用しているのですが、PHP4から記述方法が変更
されたりなど、しているものなのでしょうか?

ご存知の方いらっしゃいましたら
ご教授願いたいです。よろしくお願いします。

A 回答 (2件)

PHP5ならば、DOMXML関数ではなく、DOM関数を使用します。


DOM関数ならば、PHP5に入っていたと思います。

$doc = new DOMDocument();
$doc->loadXML($xml);

この回答への補足

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

実は、現在制作しているものの関係上
既存XMLのタグ内の文字列にある記号を
<br />タグに変換をさせて
XSLT変換をかけてHTMLにはきだしたと思っています。
なので、提案して頂いたものでは記号がそのまま表示
されて改行が行われないという事態が起きてしまい、
次のようなPHPを書いたのですが、open_memでエラーが
返ってきてしまい、今回ご質問をさせて頂きました。

$changedbr = "";
$open = fopen(XMLFILE, "r") or die("ファイルを読み込めません");
 while (($xml = fgets($open)))
 {
  $changedbr = str_replace("", "", $xml);
  //echo $changedbr;
 }
$openxml = domxml_open_mem($changedbr);
//※domxml_部分を省いても同じエラーが帰ってきました。

$xslt->load(XSLTFILE) or die("ファイルを読み込めません");
$pro = new XSLTProcessor();
$pro->importStylesheet($xslt);
$pro->transformToUri($doc, HTMLFILE);

もっと、最初に細かく説明すべきだったと反省しております。
やはり、DOMXML関数とDOM関数とは違うものなのでしょうか。
私自身、PHP自体ここ2、3ヶ月ほど前に勉強だしたという超初心者です。
よろしければ、教えて頂けると嬉しいです。
申し訳ありませんが、よろしくお願いします。

補足日時:2006/12/22 01:08
    • good
    • 0
この回答へのお礼

ごめんなさい!
load()ではなく、loadXML()と記述していただいていたのに
見落としてしまっていました。
loadXML()できちんと、文字列にしたXMLを受け取れました。
ありがとうございました。

お礼日時:2006/12/22 22:38

domxmlということですのでPHPにDOMXMLモジュールがインストールされていなければなりません。


DOMXMLモジュールは標準で組み込まれるモジュールではないので環境によってはインストールされていません。
確認してみてください。

この回答への補足

回答ありがとうございます。
infoで出力をしてみたのですが
下記のようにDOM拡張はしてあるのですが
DOMXMLモジュールはこれとは別のものなのでしょうか。

≪dom≫
DOM/XML enabled
DOM/XML API Version 20031129
libxml Version 2.6.22
HTML Support enabled
XPath Support enabled
XPointer Support enabled
Schema Support enabled
RelaxNG Support enabled

申し訳ありません、お返事お待ちしております。

補足日時:2006/12/22 01:05
    • good
    • 0
この回答へのお礼

open_mem関数というのは、PHP4で主に使われていた
関数のようでした。
ただ、XMLの拡張をしていなければ
動かないというのも事実なので、
解決策は別のものでしたが
回答をして頂けて本当に嬉しかったです。
ありがとうございました。

お礼日時:2006/12/22 22:45

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


おすすめ情報