當前位置: 首頁>>代碼示例>>PHP>>正文


PHP DomXPath::evaluate方法代碼示例

本文整理匯總了PHP中DomXPath::evaluate方法的典型用法代碼示例。如果您正苦於以下問題:PHP DomXPath::evaluate方法的具體用法?PHP DomXPath::evaluate怎麽用?PHP DomXPath::evaluate使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在DomXPath的用法示例。


在下文中一共展示了DomXPath::evaluate方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: getAllURLFromHTML

 public function getAllURLFromHTML()
 {
     $output = array();
     $dom = new DOMDocument();
     @$dom->loadHTML($this->htmlCode);
     $xpath = new DomXPath($dom);
     $hrefs = $xpath->evaluate("/html/body//a");
     for ($i = 0; $i < $hrefs->length; $i++) {
         $h = $this->encodeURL($hrefs->item($i)->getAttribute('href'));
         $h = url_to_absolute($this->url, $h);
         array_push($output, $h);
     }
     return array_unique($output);
 }
開發者ID:lightbringer1991,項目名稱:Projects,代碼行數:14,代碼來源:Extractor.class.php

示例2: hookDisplayProductDeliveryTime

 public function hookDisplayProductDeliveryTime($params)
 {
     $product = $params['product'];
     $id_lang = Context::getContext()->language->id;
     $file = dirname(__FILE__) . '/content/' . $product->id . '_c.html';
     $fileu = dirname(__FILE__) . '/content/' . $product->id . '_u.html';
     $content = '';
     if (Tools::getValue("u", false) !== false) {
         $url = Tools::getValue('url');
         if (Tools::getValue('url', false) !== false) {
             if ($url != '') {
                 file_put_contents($fileu, $url);
             }
             $url = file_get_contents($fileu);
             if ($url != '') {
                 $content = $this->getProductContent($url);
                 file_put_contents($file, $content);
                 $messages[] = "load from url";
             } else {
                 $messages[] = "Error: url not found";
             }
         }
         if ($content == '') {
             $messages[] = "update content";
             $content = file_get_contents($file);
         }
         $query = "//select[@id='sku-variants']/option";
         $dom = new DomDocument();
         libxml_use_internal_errors(true);
         $dom->loadHTML($content);
         $xpath = new DomXPath($dom);
         $nodes = $xpath->query($query);
         if ($nodes->length == 0) {
             // update only base price
             $query = "string(//div[@id='price-container']/span/text())";
             $price = $xpath->evaluate($query);
             $query = "string(//div[@id='price-container']/del/text())";
             $oldprice = $xpath->evaluate($query);
             $price = preg_replace("/[^0-9]/", '', $price);
             $oldprice = preg_replace("/[^0-9]/", '', $oldprice);
             if ($price == "" && $oldprice == "") {
                 $tab[0] = array();
                 $combinations = 0;
                 $query = "string(//div[@id='complectData']/text())";
                 $node = $xpath->evaluate($query);
                 $product_data = json_decode($node);
                 $offers = $product_data->items[0]->OFFERS;
                 //array_multisort($offers['BASE_PRICE'], SORT_ASC);
                 foreach ($offers as $offer) {
                     $size = $offer->SHIRINA . '×' . $offer->DLINA;
                     $id_attr = egormprod::getAttributeId($size);
                     if ($id_attr) {
                         $tab[0][] = $id_attr;
                         $prices[] = $offer->BASE_PRICE;
                     } else {
                         $messages[] = "Error: size " . $size . " not found ";
                     }
                 }
                 array_multisort($prices, SORT_ASC, SORT_NUMERIC, $tab[0]);
                 $this->basePrice = $prices[0];
                 foreach ($prices as $key => $price_tmp) {
                     $prices[$key] = $price_tmp - $this->basePrice;
                 }
                 $this->updateProductBasePrice($product->id);
                 egormprod::setAttributesImpacts($product->id, $tab);
                 //AdminAttributeGeneratorController::setAttributesImpacts($product->id, $tab);
                 $combinations = $this->getCombination($tab);
                 $values = $this->getMap($product->id, $combinations, $prices);
                 //array_values(array_map(array($this, 'addAttribute'), $this->combinations));
                 SpecificPriceRule::disableAnyApplication();
                 $product->deleteProductAttributes();
                 $product->generateMultipleCombinations($values, $combinations);
                 SpecificPriceRule::enableAnyApplication();
                 SpecificPriceRule::applyAllRules(array((int) $product->id));
                 $messageTextErr = "";
                 foreach ($messages as $message) {
                     $messageTextErr .= $message . "\\r\\n";
                 }
             } else {
                 // pillows
                 $this->basePrice = $oldprice > 0 ? $oldprice : $price;
                 $this->updateProductBasePrice($product->id);
             }
         } else {
             $tab[0] = array();
             $combinations = 0;
             foreach ($nodes as $key => $node) {
                 $product_data = json_decode($node->getAttribute('data-price'));
                 if ($key == 0) {
                     $this->basePrice = $product_data->VALUE;
                 }
                 $f1 = json_decode($node->getAttribute('data-cases'));
                 $size = str_replace(' ', '', $node->getAttribute('value'));
                 $id_attr = egormprod::getAttributeId($size);
                 if ($id_attr) {
                     $tab[0][] = $id_attr;
                     $prices[] = $product_data->VALUE - $this->basePrice;
                 } else {
                     $messages[] = "Error: size " . $size . " not found ";
                 }
//.........這裏部分代碼省略.........
開發者ID:evgrishin,項目名稱:mh16014,代碼行數:101,代碼來源:egormprod.php

示例3: feed_import

function feed_import($xml, $importer, &$contact, &$hub)
{
    $a = get_app();
    logger("Import Atom/RSS feed", LOGGER_DEBUG);
    if ($xml == "") {
        return;
    }
    $doc = new DOMDocument();
    @$doc->loadXML($xml);
    $xpath = new DomXPath($doc);
    $xpath->registerNamespace('atom', "http://www.w3.org/2005/Atom");
    $xpath->registerNamespace('dc', "http://purl.org/dc/elements/1.1/");
    $xpath->registerNamespace('content', "http://purl.org/rss/1.0/modules/content/");
    $xpath->registerNamespace('rdf', "http://www.w3.org/1999/02/22-rdf-syntax-ns#");
    $xpath->registerNamespace('rss', "http://purl.org/rss/1.0/");
    $xpath->registerNamespace('media', "http://search.yahoo.com/mrss/");
    $author = array();
    // Is it RDF?
    if ($xpath->query('/rdf:RDF/rss:channel')->length > 0) {
        //$author["author-link"] = $xpath->evaluate('/rdf:RDF/rss:channel/rss:link/text()')->item(0)->nodeValue;
        $author["author-name"] = $xpath->evaluate('/rdf:RDF/rss:channel/rss:title/text()')->item(0)->nodeValue;
        if ($author["author-name"] == "") {
            $author["author-name"] = $xpath->evaluate('/rdf:RDF/rss:channel/rss:description/text()')->item(0)->nodeValue;
        }
        $entries = $xpath->query('/rdf:RDF/rss:item');
    }
    // Is it Atom?
    if ($xpath->query('/atom:feed/atom:entry')->length > 0) {
        //$self = $xpath->query("/atom:feed/atom:link[@rel='self']")->item(0)->attributes;
        //if (is_object($self))
        //	foreach($self AS $attributes)
        //		if ($attributes->name == "href")
        //			$author["author-link"] = $attributes->textContent;
        //if ($author["author-link"] == "") {
        //	$alternate = $xpath->query("/atom:feed/atom:link[@rel='alternate']")->item(0)->attributes;
        //	if (is_object($alternate))
        //		foreach($alternate AS $attributes)
        //			if ($attributes->name == "href")
        //				$author["author-link"] = $attributes->textContent;
        //}
        $author["author-name"] = $xpath->evaluate('/atom:feed/atom:title/text()')->item(0)->nodeValue;
        if ($author["author-name"] == "") {
            $author["author-name"] = $xpath->evaluate('/atom:feed/atom:subtitle/text()')->item(0)->nodeValue;
        }
        if ($author["author-name"] == "") {
            $author["author-name"] = $xpath->evaluate('/atom:feed/atom:author/atom:name/text()')->item(0)->nodeValue;
        }
        //$author["author-avatar"] = $xpath->evaluate('/atom:feed/atom:logo/text()')->item(0)->nodeValue;
        $author["edited"] = $author["created"] = $xpath->query('/atom:feed/atom:updated/text()')->item(0)->nodeValue;
        $author["app"] = $xpath->evaluate('/atom:feed/atom:generator/text()')->item(0)->nodeValue;
        $entries = $xpath->query('/atom:feed/atom:entry');
    }
    // Is it RSS?
    if ($xpath->query('/rss/channel')->length > 0) {
        //$author["author-link"] = $xpath->evaluate('/rss/channel/link/text()')->item(0)->nodeValue;
        $author["author-name"] = $xpath->evaluate('/rss/channel/title/text()')->item(0)->nodeValue;
        //$author["author-avatar"] = $xpath->evaluate('/rss/channel/image/url/text()')->item(0)->nodeValue;
        if ($author["author-name"] == "") {
            $author["author-name"] = $xpath->evaluate('/rss/channel/copyright/text()')->item(0)->nodeValue;
        }
        if ($author["author-name"] == "") {
            $author["author-name"] = $xpath->evaluate('/rss/channel/description/text()')->item(0)->nodeValue;
        }
        $author["edited"] = $author["created"] = $xpath->query('/rss/channel/pubDate/text()')->item(0)->nodeValue;
        $author["app"] = $xpath->evaluate('/rss/channel/generator/text()')->item(0)->nodeValue;
        $entries = $xpath->query('/rss/channel/item');
    }
    //if ($author["author-link"] == "")
    $author["author-link"] = $contact["url"];
    if ($author["author-name"] == "") {
        $author["author-name"] = $contact["name"];
    }
    //if ($author["author-avatar"] == "")
    $author["author-avatar"] = $contact["thumb"];
    $author["owner-link"] = $contact["url"];
    $author["owner-name"] = $contact["name"];
    $author["owner-avatar"] = $contact["thumb"];
    $header = array();
    $header["uid"] = $importer["uid"];
    $header["network"] = NETWORK_FEED;
    $header["type"] = "remote";
    $header["wall"] = 0;
    $header["origin"] = 0;
    $header["gravity"] = GRAVITY_PARENT;
    $header["private"] = 2;
    $header["verb"] = ACTIVITY_POST;
    $header["object-type"] = ACTIVITY_OBJ_NOTE;
    $header["contact-id"] = $contact["id"];
    if (!strlen($contact["notify"])) {
        // one way feed - no remote comment ability
        $header["last-child"] = 0;
    }
    if (!is_object($entries)) {
        return;
    }
    $entrylist = array();
    foreach ($entries as $entry) {
        $entrylist[] = $entry;
    }
    foreach (array_reverse($entrylist) as $entry) {
//.........這裏部分代碼省略.........
開發者ID:vinzv,項目名稱:friendica,代碼行數:101,代碼來源:feed.php

示例4: getHuffingtonPostArticle

function getHuffingtonPostArticle($link)
{
    date_default_timezone_set("America/Los_Angeles");
    $dom = new DOMDocument();
    libxml_use_internal_errors(true);
    //loads html via link
    @$dom->loadHTMLFile($link);
    $xpath = new DomXPath($dom);
    //get title
    $t = $dom->getElementsByTagName("h1");
    foreach ($t as $node) {
        $title = $node->nodeValue;
    }
    //check if article exist
    $classname = "mainentrycontent";
    if ($xpath->evaluate("boolean(//div[contains(@id, '{$classname}')])") == false) {
        return array('', '');
    }
    //check if node exist and if it exist get the img src
    $img_classname = "main-visual group embedded-image";
    if ($xpath->evaluate("boolean(//div[contains(@class, '{$img_classname}')]//img/@src)")) {
        $data = $xpath->evaluate("//div[contains(@class, '{$img_classname}')]//img/@src");
        $img_src = $dom->saveHTML($data->item(0));
        $coverImg = "<img {$img_src}></img>";
    } else {
        // finds first image in article to use as cover image
        $data = $xpath->query("//div[contains(@id, '{$classname}')]//img/@src");
        $img_src = $dom->saveHTML($data->item(0));
        $coverImg = "";
    }
    //removes scripts
    while (($r = $dom->getElementsByTagName("script")) && $r->length) {
        $r->item(0)->parentNode->removeChild($r->item(0));
    }
    //filter unwanted content
    $toBeRemoved = "slideshow";
    foreach ($xpath->query("//div[contains(@class,'{$toBeRemoved}')] ") as $r) {
        $r->parentNode->removeChild($r);
    }
    //gets the main article
    $data = $xpath->query("//div[contains(@id, '{$classname}')]");
    $htmlString = $dom->saveHTML($data->item(0));
    //adds HR tag to be used in joomla
    $htmlString = addHR($htmlString);
    //echo htmlspecialchars($htmlString);
    $string = "<p>" . date("m/d/y @ h:ia") . "</p>" . $coverImg . $htmlString . "<p> Original article: <a href='{$link}'> " . $link . "</a></p>";
    return array($title, $string);
}
開發者ID:ensctom,項目名稱:Github,代碼行數:48,代碼來源:test.php


注:本文中的DomXPath::evaluate方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。