0

このPHPスクリプトを編集するのに助けが必要です。現在、ローカルサーバーで最新のXMLファイルを検索しますが、別のサーバーから特定のXMLファイルをロードするようにしたいと思います。

    define('XML_LOCATION', "../"); //relative to this file

.....。

function load_xpath($dir=XML_LOCATION) {
    if ($_REQUEST[SORTORDER] == DEFAULTSORT) {
        //$dom = new DOMDocument;
        //$dom->load($this->latest_xml_file($dir));
        $dom = $this->load_xslt($this->latest_xml_file($dir), $this->xslprops[LENGTHDESC][XSL], $this->xslprops[LENGTHDESC][SORT]);
    }
    else {
        $dom = $this->load_xslt($this->latest_xml_file($dir), $this->xslprops[$_REQUEST[SORTORDER]][XSL], $this->xslprops[$_REQUEST[SORTORDER]][SORT]);
    }
    $xp = new DOMXPath($dom);
    $xp->registerNamespace(NS, "http://www.starstandard.org/STAR/5");
    return($xp);
}

function load_xslt($xml, $xsl="", $sort_order="ascending") {
    $domxml = new DOMDocument;
    $domxsl = new DOMDocument;
    if ($domxml->load($xml) && $domxsl->load($xsl)) {
    //if ($domxml->loadXML($xml) & $domxsl->loadXML($xsl)) {
        $proc = new XSLTProcessor();
        $proc->importStylesheet($domxsl);
        $proc->setParameter(NS, 'sortorder', $sort_order);
        return $proc->transformToDoc($domxml);
    }
    else {
        //TODO: decide on error out method
    }
}

function latest_xml_file ($dir=XML_LOCATION) {
    $xml_list = array();
    if (is_dir($dir)) {
        if ($dh = opendir($dir)) {
            while (($file = readdir($dh)) !== false) {
                if (preg_match('/.*\.xml$/i', $file)) {
                    array_push ($xml_list, $dir.$file);
                }
            }
            closedir($dh);
        }
    }

    rsort($xml_list);
    return $xml_list[0];
}

最新のファイルを処理するためにコードを必要としないので、そのコードの多くは必要ないと確信しています。外部ファイルをロードするだけです。
例: https ://services.boatwizard.com/bridge/events/ae0324ff-e1a5-4a77-9783-f41248bfa975/boats は外部XMLになります。

私は本当にphpやxmlを知りません...しかし誰かが私がコードを変更するのを手伝ってくれるならそれはすべてうまくいくでしょう!!

ありがとう

4

1 に答える 1

0

このようなもの:

$remoteFile = file_get_contents('https://services.boatwizard.com/bridge/events/ae0324ff-e1a5-4a77-9783-f41248bfa975/boats'); 

function load_xpath($remoteFile) {
    $dom = $this->load_xslt($remoteFile, $this->xslprops[LENGTHDESC][XSL], $this->xslprops[LENGTHDESC][SORT]);
    $xp = new DOMXPath($dom);
    $xp->registerNamespace(NS, "http://www.starstandard.org/STAR/5");
    return($xp);

}

于 2012-11-01T04:17:16.940 に答える