• ベストアンサー

domxml_open_mem 関数 について

Fatal error: Call to undefined function domxml_open_mem() in C:\xampp\information.php on line 51 というエラーが出てしまい、悩んでいます。 エラーの内容としては、関数が無いというエラーのようで ただ、リファレンスを見るときちんと掲載されています。 PHP5を利用しているのですが、PHP4から記述方法が変更 されたりなど、しているものなのでしょうか? ご存知の方いらっしゃいましたら ご教授願いたいです。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

PHP5ならば、DOMXML関数ではなく、DOM関数を使用します。 DOM関数ならば、PHP5に入っていたと思います。 $doc = new DOMDocument(); $doc->loadXML($xml);

kanan86
質問者

お礼

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

kanan86
質問者

補足

回答ありがとうございます。 実は、現在制作しているものの関係上 既存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ヶ月ほど前に勉強だしたという超初心者です。 よろしければ、教えて頂けると嬉しいです。 申し訳ありませんが、よろしくお願いします。

その他の回答 (1)

回答No.1

domxmlということですのでPHPにDOMXMLモジュールがインストールされていなければなりません。 DOMXMLモジュールは標準で組み込まれるモジュールではないので環境によってはインストールされていません。 確認してみてください。

kanan86
質問者

お礼

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

kanan86
質問者

補足

回答ありがとうございます。 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 申し訳ありません、お返事お待ちしております。

関連するQ&A