Call to undefined function domxml_new_doc() エラーの修正方法について

このQ&Aのポイント
  • 初心者がPHPでエラー「Call to undefined function domxml_new_doc()」が発生しました。エラーの対処方法を教えてください。
  • ブラウザでPHPを実行すると「Call to undefined function domxml_new_doc()」のエラーが表示されます。このエラーの修正方法を教えてください。
  • PHPのエラー「Call to undefined function domxml_new_doc()」についての対処方法を教えてください。初心者ですので、具体的な手順を教えていただけると助かります。
回答を見る
  • ベストアンサー

以下エラーの修正方法についてCall to undefined function domxml_new_doc() in

PHPを全く扱ったことのない初心者です。 技術者向けカテゴリーに投稿してしまい、誠に恐縮ですが、 エラーの対処方法について私の知識では到底及びませんので どなたかご教授頂けますでしょうか。 以下phpをブラウザでみると、Call to undefined function domxml_new_doc() in とのエラーがでてしまいます。 修正方法を教えて頂けますでしょうか。 どうかよろしくお願い致します。 <?php require("sql-info.php"); $doc = domxml_new_doc("1.0"); $node = $doc->create_element("MLB"); $parnode = $doc->append_child($node); $connection=mysql_connect ($hostname, $username, $password); if (!$connection) { die('Not connected : ' . mysql_error()); } $db_selected = mysql_select_db($database, $connection); if (!$db_selected) { die ('Can\'t use db : ' . mysql_error()); } $query = "SELECT * FROM MLB WHERE 1"; $result = mysql_query($query); if (!$result) { die('Invalid query: ' . mysql_error()); } header("Content-type: text/xml"); while ($row = @mysql_fetch_assoc($result)){ $node = $doc->create_element("marker"); $newnode = $parnode->append_child($node); $newnode->set_attribute("stadium", $row['stadium']); $newnode->set_attribute("lat", $row['lat']); $newnode->set_attribute("lng", $row['lng']); $xmlfile = $doc->dump_mem(); echo $xmlfile; ?>

  • PHP
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • tany180sx
  • ベストアンサー率63% (239/379)
回答No.2

具体的には動作するように環境を調整するか http://us3.php.net/manual/ja/domxml.installation.php 動作するように書き直す必要があるでしょう。 http://us3.php.net/manual/ja/book.dom.php $doc = new DOMDocument("1.0"); $node = $doc->createElement("MLB"); $parnode = $doc->appendChild($node); $node = $doc->createElement("marker"); $newnode = $parnode->appendChild($node); $newnode->setAttribute("lat", $row['lat']); $xmlfile = $doc->saveXML();

okyanty
質問者

お礼

ご丁寧にご返答ありがとうございました。 ご参考にさせて頂きます。

その他の回答 (1)

  • ts3m-ickw
  • ベストアンサー率43% (1248/2897)
回答No.1

修正方法もなにも、3行目で呼び出しているdomxml_new_doc()関数が定義されてないってエラーではないですか。 domxml_new_doc()関数はPHPのバージョン4.2.0以降で実装されています。 お使いのPHPのバージョンが4.2.0より古ければ、新しいのを入れてもらいましょう。 4.2.0以降のであればPHPを再コンパイルしてもらいましょう。

okyanty
質問者

お礼

早速のご回答、どうもありがとうございました。 domxml_new_doc()関数が定義されてないことに関しては理解できました。 使用のPHPバージョンはPHP5.0なのですが、 具体的ににどのような作業をすればよろしいのでしょうか。 大変お手数ですが、教えて頂けますでしょうか。 よろしくお願い致します。

関連するQ&A

  • PHPでMySQLへの接続

    お世話になります。 phpを用いてMySQLへ接続したのですが、データが空で戻ってきました。lowは件数表示されましたし、行数もその分返ってきています。何か原因は考えられるでしょうか? <html> <head> <title>PHP TEST</title> </head> <body> <?php $link = mysql_connect('localhost', 'XXXX', 'XXXX'); if (!$link) { die('接続失敗です。'.mysql_error()); } print('<p>接続に成功しました。</p>'); $db_selected = mysql_select_db('XXXX', $link); if (!$db_selected){ die('データベース選択失敗です。'.mysql_error()); } print('<p>uriageデータベースを選択しました。</p>'); //mysql_set_charset('utf-8'); $result = mysql_query('SELECT * FROM sample'); if (!$result) { die('クエリーが失敗しました。'.mysql_error()); } while ($row = mysql_fetch_assoc($result)) { print('<p>'); print('id='.$row['str']); print(',name='.$row['etc']); print('</p>'); } $close_flag = mysql_close($link); if ($close_flag){ print('<p>切断に成功しました。</p>'); } ?> </body> </html>

    • ベストアンサー
    • PHP
  • クエリ検索でのWHERE句 HAVING句併用

    (1)元ソースコードに「WHERE category = '%s'」を追加しましたが、クエリ検索でのWHERE句 HAVING句の併用がうまくいきません。 firefoxの要素調査では、ソース改造前には出なかった「HTML ドキュメントの文字エンコーディングが宣言されていません。」のエラーメッセージが出ます。(phpのソースなのにHTMLのエラー?) 原因が分かりましたらお教え願いたく宜しくお願い致します。 元ソースコードに「WHERE category = '%s'」を追加した状態。 // Search the rows in the markers table $query = sprintf("SELECT address, name, lat, lng, category, ( 6371 * acos( cos( radians('%s') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians('%s') ) + sin( radians('%s') ) * sin( radians( lat ) ) ) ) AS distance FROM markers WHERE category = '%s' GROUP BY distance HAVING distance < '%s' ORDER BY distance LIMIT 0 , 200", mysql_real_escape_string($center_lat), mysql_real_escape_string($center_lng), mysql_real_escape_string($center_lat), mysql_real_escape_string($category)), mysql_real_escape_string($radius)); $result = mysql_query($query); ※ ( 6371 * acos( cos( radians('%s') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians('%s') ) + sin( radians('%s') ) * sin( radians( lat ) ) ) ) ・・・は入力された住所の緯度経度($center_lat $center_lng)から店(複数任意登録)までの距離を計算する公式 <質問の背景> https://developers.google.com/maps/articles/phpsqlsearch_v3?hl=ja#createmap でselect要素にcategory(店の種類:小売店・食事など)を追加しようと思っています。 上記質問は上記サイトでの「phpsqlsearch_genxml.php」の$query の部分です。 なお、「phpsqlsearch_genxml.php」のソースは下記のとおりです。 <?php require("phpsqlsearch_dbinfo.php"); // Get parameters from URL $center_lat = $_GET["lat"]; $center_lng = $_GET["lng"]; $radius = $_GET["radius"]; // Start XML file, create parent node $dom = new DOMDocument("1.0"); $node = $dom->createElement("markers"); $parnode = $dom->appendChild($node); // Opens a connection to a mySQL server $connection=mysql_connect (localhost, $username, $password); if (!$connection) { die("Not connected : " . mysql_error()); } // Set the active mySQL database $db_selected = mysql_select_db($database, $connection); if (!$db_selected) { die ("Can\'t use db : " . mysql_error()); } // Search the rows in the markers table $query = sprintf("SELECT address, name, lat, lng, ( 3959 * acos( cos( radians('%s') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians('%s') ) + sin( radians('%s') ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < '%s' ORDER BY distance LIMIT 0 , 20", mysql_real_escape_string($center_lat), mysql_real_escape_string($center_lng), mysql_real_escape_string($center_lat), mysql_real_escape_string($radius)); $result = mysql_query($query); if (!$result) { die("Invalid query: " . mysql_error()); } header("Content-type: text/xml"); // Iterate through the rows, adding XML nodes for each while ($row = @mysql_fetch_assoc($result)){ $node = $dom->createElement("marker"); $newnode = $parnode->appendChild($node); $newnode->setAttribute("name", $row['name']); $newnode->setAttribute("address", $row['address']); $newnode->setAttribute("lat", $row['lat']); $newnode->setAttribute("lng", $row['lng']); $newnode->setAttribute("distance", $row['distance']); } echo $dom->saveXML(); ?> (2)上記のエラー原因探すために、都度、プログラム途中での変数の値を表示できれば(javascriptの変数var  PHPの変数$の値など)と思いますが、何か方法はあるものでしょうか。 (phpのflushなどがあるみたいですがHTML全体のどこにどのように記述すればいいのでしょうか。 もしできるなら、私の提示した具体的な上記ソースを例にとっていただければ助かります。)

  • phpとmysqlが連携できない

    問題のコードです。 何度やっても失敗と表示されます。 接続は問題ないと思います。 お願いします。 $db = mysql_connect("localhost", "user", "user_パスワード", "db1") or die("Connection error"); $query = "select * from menbers"; $result = mysql_query($query, $db); if($result){ echo "成功"; }else{ echo "失敗"; }

  • XMLでこんなの作りたい。

    [ 環境 ] OS:WindowsXP Pro PHP:5.3.1 Apache:2.2.14 DBServer:SQLServer2005 EXPRESS [ 質問 ] DB側データ row,level,level_name 0,level1,root 1,level2,admin という様なデータをXMLにて以下の様な表示にしたい。 <?xml version="1.0" encoding="UTF-8" ?> <result> <row row="0"> <level>level1</level> <level_name>root</level_name> </row> <row row="1"> <level>level2</level> <level_name>admin</level_name> </row> </result> この場合、以下のソースをどの様に変更したら良いか アドバイスを頂けたらと思います。 <?php // SQLServerとの接続 require("connect-sqlserver.php"); // XML 生成 $dom = new DOMDocument("1.0"); $node = $dom->createElement("result"); $parnode = $dom->appendChild($node); // MSSQLSERVR への接続セット $db = mssql_connect($server, $userid, $passwd); mssql_select_db($dbName, $db); // [SYSW_LEVEL]テーブルからフィールド情報取得 $query = "SELECT * FROM SYSW_LEVEL"; $res = mssql_query($query, $db); header("Content-type: text/xml"); // XMLへフィールドの値を渡す while ($row = mssql_fetch_assoc($res)) { $node = $dom->createElement("row"); $newnode = $parnode->appendChild($node); $newnode->setAttribute("level", $row['LVL_LEVEL']); $newnode->setAttribute("level_name", mb_convert_encoding($row['LVL_LEVELNAME'],'UTF-8','CP932')); } $dom->encoding="UTF-8"; echo $dom->saveXML(); ?> 以上、よろしくお願い致します。

    • 締切済み
    • PHP
  • GoogleMapsAPIについて

    いろいろと調査をして、試みたのですがうまくいかないため質問させていただきます。 今回、MySQLの位置情報のデータをPHPに渡し、XMLファイルを生成し、GoogleMap上にマーカーを作成しようと考えています。 そこで以下のURLを参考に作成してみたのですが、GoogleMap上にマーカーが表示されません。 http://developers.google.com/maps/articles/phpsqlajax_v3?hl=ja XMLファイルを読み込んでGoogleMap上にマーカーを表示させることができたのですが、phpファイルですとどうもうまくいきません。 アドバイスをいただければ幸いです。 [map.html] <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title>Google Maps AJAX + mySQL/PHP Example</title> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>   <script type="text/javascript"> function load() { var map = new google.maps.Map(document.getElementById("map"), { center: new google.maps.LatLng(47.6145, -122.3418), zoom: 13, mapTypeId:google.maps.MapTypeId.ROADMAP }); var infoWindow = new google.maps.InfoWindow; downloadUrl("phpsqlajax_genxml.php", function(data) { var xml = parseXml(data); var markers = xml.documentElement.getElementsByTagName("marker"); for (var i = 0; i < markers.length; i++) { var name = markers[i].getAttribute("name"); var address = markers[i].getAttribute("address"); var type = markers[i].getAttribute("type"); var point = new google.maps.LatLng( parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng"))); var html = "<b>" + name + "</b> <br/>" + address; var marker = new google.maps.Marker({ map: map, position: point, }); bindInfoWindow(marker, map, infoWindow, html); } }); } function bindInfoWindow(marker, map, infoWindow, html) { google.maps.event.addListener(marker, 'click', function() { infoWindow.setContent(html); infoWindow.open(map, marker); }); } function downloadUrl(url,callback){ var request=window.ActiveXObject? new ActiveXObject('Microsoft.XMLHTTP'): new XMLHttpRequest; request.onreadystatechange=function(){ if(request.readyState==4){ request.onreadystatechange=doNothing; callback(request.responseText,request.status); } }; request.open('GET',url,true); request.send(null); } function parseXml(str){ if(window.ActiveXObject){ var doc=new ActiveXObject('Msxml2.DOMDocument.3.0'); doc.loadXML(str); return doc; }else if(window.DOMParser){ return(new DOMParser).parseFromString(str,'text/xml'); } } function doNothing(){} </script> </head> <body onload="load()"> <div id="map" style="width: 600px; height: 600px"></div> </body> </html> [phpsqlajax_genxml.php] <?php require("sql-info.php"); //スタートXMLファイル、親ノード作成 $dom = new DOMDocument("1.0"); $node = $dom -> createElement("markers"); $parnode = $dom -> appendChild($node); //MySQLサーバへの接続 $connection = mysql_connect('localhost',$username,$password); if(!$connection){ die('Not connected :' . mysql_error()); } //MySQLデータサーバのセット $db_selected=mysql_select_db($database,$connection); if(!$db_selected){ die ('Can\'t use db : ' . mysql_error()); } // テーブルデータの全行列を選択 $query = "SELECT * FROM markers WHERE 1"; $result = mysql_query($query); if (!$result) { die('Invalid query: '. mysql_error()); } header("Content-Type:text/xml; charset=utf-8"); // 各XMLノードへのデータ追加を繰り返す while ($row = @mysql_fetch_assoc($result)){ //XMLドキュメントノードに追加する $node = $dom->createElement("marker"); $newnode = $parnode->appendchild($node); $newnode->setattribute("name", $row['name']); $newnode->setattribute("address", $row['address']); $newnode->setattribute("lat", $row['lat']); $newnode->setattribute("lng", $row['lng']); $newnode->setattribute("type", $row['type']); } echo $dom->saveXML(); ?>

  • Fatal error: Call to undefined function mb_language

    XOOPS Cube Legacy をインストール中下記エラーでつまずき解決できません。 Fatal error: Call to undefined function mb_language() in C:\Inetpub\wwwroot\install\language\ja_utf8\install.php on line 190 ----------------------------- line 190からの中身は 190:mb_language( 'Japanese' ) ; 191:mb_internal_encoding( 'UTF-8' ) ; 192:mb_http_output( 'UTF-8' ) ; 193:@ini_set('default_charset', _INSTALL_CHARSET); 194:?> となっており190をコメントにすると191-193でもエラーになってしまいます。 解決方法ご存知でしたらご伝授ください。 環境 Windows XP SP2 IIS PHP5,Mysql インストール、初期動作確認済

    • ベストアンサー
    • PHP
  • PHP ログインシステムについて

    お世話になります 現在ローカルで下記PHPのテストを行っています PHP初心者の為、セキュリティ面並びに不具合が心配で書き込みさせて頂きました 恐れ入りますがおかしな点がないかチェックして頂けませんでしょうか 宜しくお願いいたします データベースのバージョンはMySQL 5.5です ***************************************** <?php session_start(); $error_message = ""; if (isset($_POST["login"])) { $id = htmlspecialchars($_POST['id']); $password = htmlspecialchars(base64_encode(pack('H*', sha1($_POST['password'])))); $_SESSION['id'] = $_POST['id']; $_SESSION['password'] = $_POST['password']; $db = mysql_connect("***","***","***"); if (!$db) { die('接続失敗です。'.mysql_error()); } mysql_set_charset("utf8"); $db_selected = mysql_select_db("***", $db); if (!$db_selected){ die('データベース選択失敗です。'.mysql_error()); } $result = mysql_query("SELECT * FROM ***"); if (!$result) { die('クエリーが失敗しました。'.mysql_error()); } function x($result) { return mysql_real_escape_string($result); } while ($row = mysql_fetch_assoc($result)) { if($id == $row['id'] && $password == $row['password']){ header("Location:./instance.php"); } } $_SESSION = array(); if (isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time()-42000, '/'); } session_destroy(); $error_message = "ユーザ名もしくはパスワードが違っています。"; } ?> <html> <head><title>ログイン</title> <meta http-equiv=Content-Type content="text/html; charset=utf-8"> <link rel="stylesheet" type="text/css" href="style.css" media="screen" /> </head> <body> <?php if ($error_message) { print '<font color="red">'.$error_message.'</font>'; } ?> <form action="login.php" method="post"> ID:<input type="text" name="id"><br /> PASS:<input type="password" name="password"><br /> <input type="submit" name=login value="認証"> </form> </body> </html>

    • 締切済み
    • PHP
  • PHP+MySQLでCall to undefined function mysql_connect()

    PHP5.0.14 MySQL5.0.22 http://allabout.co.jp/computer/database/closeup/CU20060414A/index.htm 上記のサイトを見て $dbHandle = mysql_connect("localhost","root","root") or die("can not connect db\n"); を実行したところ、タイトルのようなエラーが出ました。 php.iniでextension=php_mysql.dllも書かれていて、 php_mysql.dllもphp/extに入っています。 phpinfo()で見ると、MySQLらしき部分がありません。 どうすれば実行できるのでしょうか?

    • ベストアンサー
    • MySQL
  • PHP5 DB問い合わせ時のエラーについて

    PHP5について質問です。 よろしくお願いします!! 下記のソースでDBへ問い合わせするとエラーがでます。 $this->dbConn=DB::connect("mysql://root:@localhost/a_db"); $this->link=mysql_connect("localhost","root","") or die("MSQLの接続に失敗"); $this->mysql=mysql_select_db(a_db) or die("データベースとの接続に失敗"); $this->query= "select * from customer_table01"; var_dump($this->query); $this->result=mysql_query($this->query) or die("クエリーを実行できず"); $this->rows=mysql_num_rows($this->result); $this->if($rows == 0 ){ print ("該当するデータがなし"); }else{ } エラー内容 Parse error: syntax error, unexpected '{' in C:\xampp\htdocs\y\baseClass.php on line 56 56行目とは、$this->if($rows == 0 ){ の部分です

    • ベストアンサー
    • PHP
  • テーブルのデータをarray (array (***, ***)) の形式で取得したい

    id、氏名、年月日(date)、点数(tensu)の列を持つテーブルseiseki があります。 <?php $conn_id = mysql_connect("localhost","root","*****") or die('Error connecting to MySQL'); mysql_select_db('******',$conn_id); $query ="SELECT date,tensu from seiseki; $result = mysql_query($query,$conn_id) or die($query.'failed('.mysql_error().')'); $date = array(); $tensu = array(); while($row = mysql_fetch_array($result)){ $date[] = $row['date']; $tensu = $row['tensu']; } print_r($date); echo "<br/>\n";      ←15行目 print_r($tensu); echo "<br/>\n";      ←16行目 ?> これをブラウザで見ると、 Array ( [0] => 2009-05-01 [1] => 2009-06-07 [2] => 2009-07-24 ・・・・・・ ) Array ( [0] => 80 [1] => 75 [2] => 90 ・・・・・・・ ) となります。 15,16行目をコメントアウトして print_r($row[“date”],[“$tensu”]); とするとエラーになります。 array (array (2009-05-01, 80), array (2009-06-07, 75 ), array (2009-07-24 , 90)・・・・・・・ ); の形式でデータを取得するにはどのようにすれば良いでしょうか?

    • ベストアンサー
    • MySQL