XML DBだからできること:HTMLをDBにそのまま保存
鵜飼寛太(サイバーテック)
2008-03-19 18:30:00
今回は、HTMLデータをDBにそのまま保存するというXML DBだからできる芸当をみていきます。
<?php
/**
*
*
* @package
* @subpackage
* @author Kanta Ukai <ukai@cybertech.co.jp>
* @version
*/
/**
* cURL
* @param String HTTP Method GET|POST
* @param String neoCore Command neoadmin|neoquery
* @param String Data
* @param String neoCore Session ID
* @return String result
*/
function cURL ($method, $query, $data = null, $sid = null) {
// cURLの初期化
$ch = curl_init();
//
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
// セッションIDが設定されている場合、HTTPヘッダに設定する
if ($sid) {
//
curl_setopt($ch, CURLOPT_HTTPHEADER, array('sid: ' . $sid));
//
}
//
$url = "http://localhost:7700/" . $query;
// メソッド判定
if ($method == 'GET') {
// GETの場合、URLと連結
$url .= '?' . $data;
//
} else {
// POSTの場合、ポストフィールドに設定
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
//
}
// 接続先の設定
curl_setopt($ch, CURLOPT_URL, $url);
// 実接続
$result = curl_exec($ch);
// cURLの終了
curl_close($ch);
//
return $result;
//
}
/**
* getsession
* @param String neoCore User Name
* @param String neoCore Password
* @return String neoCore Session ID
*/
function getsession ($user = '', $password = '') {
//
$result = cURL('POST', "neoadmin", "cmd=GETSESSION&user={$user}&passwd={$password}");
// <sid>SESSION ID</sid>で返却されるのでDOM化して取り出す
$doc = DOMDocument::loadXML($result);
$sid = $doc->documentElement->nodeValue;
//
return $sid;
}
/**
* endsession
* @param String neoCore Session ID
* @return String Result XML
*/
function endsession ($sid) {
//
$result = cURL('GET', "neoadmin", "cmd=ENDSESSION", $sid);
//
return $result;
//
}
/**
* transaction_start
* @param String neoCore Session ID
* @return String Result XML
*/
function transaction_start ($sid) {
//
$result = cURL('GET', "neoquery", "cmd=TRANSACTION_START", $sid);
//
return $result;
//
}
/**
* transaction_commit
* @param String neoCore Session ID
* @return String Result XML
*/
function transaction_commit ($sid) {
//
$result = cURL('GET', "neoquery", "cmd=TRANSACTION_COMMIT", $sid);
//
return $result;
//
}
/**
* transaction_rollback
* @param String neoCore Session ID
* @return String Result XML
*/
function transaction_rollback ($sid) {
//
$result = cURL('GET', "neoquery", "cmd=TRANSACTION_ROLLBACK", $sid);
//
return $result;
//
}
/**
*
*/
function store ($sid , $xml, $prefix = "", $schema = "") {
//
if ($schema) {
//
$data['schemafile'] = $schema;
//
}
//
if ($prefix) {
//
$data['prefixfile'] = $prefix;
//
}
//
$data['xmlsourcefile'] = $xml;
//
$result = cURL('POST', "neoquery?cmd=STORE", $data, $sid);
//
return $result;
//
}
/**
*
*/
function query ($sid, $input) {
//
$result = cURL('GET', "neoquery", "cmd=QUERY&input={$input}", $sid);
//
return $result;
//
}
- ホワイトペーパー



