예제 #1
2
파일: Status.php 프로젝트: recipe/scalr
 public function getContent($params = array())
 {
     $awsCachePath = CACHEPATH . "/aws.status.cxml";
     $data = array();
     $neededLocations = array();
     $services = array('Amazon Elastic Compute Cloud', 'Amazon Relational Database Service', 'Amazon Simple Storage Service');
     $compliance = array('us-east-1' => array('name' => 'NA_block', 'filter' => array('N. Virginia', 'US Standard')), 'us-west-1' => array('name' => 'NA_block', 'filter' => 'N. California'), 'us-west-2' => array('name' => 'NA_block', 'filter' => 'Oregon'), 'sa-east-1' => array('name' => 'SA_block', 'filter' => ''), 'eu-west-1' => array('name' => 'EU_block', 'filter' => ''), 'ap-southeast-1' => array('name' => 'AP_block', 'filter' => 'Singapore'), 'ap-southeast-2' => array('name' => 'AP_block', 'filter' => 'Sydney'), 'ap-northeast-1' => array('name' => 'AP_block', 'filter' => 'Tokyo'));
     if (empty($params['locations'])) {
         $neededLocations = $this->getUsedLocations();
         $params['locations'] = $neededLocations;
     } else {
         $neededLocations = $params['locations'];
     }
     if (file_exists($awsCachePath) && time() - filemtime($awsCachePath) < 3600) {
         clearstatcache();
         $time = filemtime($awsCachePath);
         $data = (array) json_decode(file_get_contents($awsCachePath));
     } else {
         $html = @file_get_contents('http://status.aws.amazon.com');
         if ($html) {
             $dom = new domDocument();
             $dom->validateOnParse = false;
             @$dom->loadHTML($html);
             $dom->preserveWhiteSpace = false;
             foreach ($compliance as $compKey => $compValue) {
                 $div = $dom->getElementById($compValue['name']);
                 $tables = $div->getElementsByTagName('table');
                 $rows = $tables->item(0)->getElementsByTagName('tr');
                 foreach ($rows as $row) {
                     $cols = $row->getElementsByTagName('td');
                     if (preg_match('/(.*)(' . implode('|', $services) . ')(.*)/', $cols->item(1)->nodeValue)) {
                         $regionFilter = $compValue['filter'];
                         if (is_array($compValue['filter'])) {
                             $regionFilter = implode('|', $compValue['filter']);
                         }
                         if (preg_match('/(.*)(' . $regionFilter . ')(.*)/', $cols->item(1)->nodeValue)) {
                             $img = '';
                             $message = '';
                             if ($cols->item(0)->getElementsByTagName('img')->item(0)->getAttribute('src') == 'images/status0.gif') {
                                 $img = 'normal.png';
                             } else {
                                 $img = 'disruption.png';
                                 $message = $cols->item(2)->nodeValue;
                             }
                             $data[$compKey][substr(str_replace($services, array('EC2', 'RDS', 'S3'), $cols->item(1)->nodeValue), 0, strpos(str_replace($services, array('EC2', 'RDS', 'S3'), $cols->item(1)->nodeValue), ' ('))] = array('img' => $img, 'status' => $cols->item(2)->nodeValue, 'message' => $message);
                             $data[$compKey]['locations'] = $compKey;
                         }
                     }
                 }
             }
             file_put_contents($awsCachePath, json_encode($data));
         }
     }
     $retval = array('locations' => json_encode($neededLocations));
     foreach ($neededLocations as $value) {
         $retval['data'][] = $data[$value];
     }
     return $retval;
 }
 /**
  * parseLicenseTbl
  * \brief given a fossology license histogram, parse it into license
  * names and Show links.
  *
  * @returns an array of associative arrays  with keys of:
  * count, showLink, textOrLink. the values will be the license count
  * the url of the Show link and whatever is in the next column.  This
  * can be text or a link or ?
  *
  * Sets property noRows.
  *
  * An empty array if no license histogram on that page,
  *
  */
 function parseLicenseTbl()
 {
     /*
      * Each table row has 3 td's in it. First is the license count, second
      * is the show link and third is the license name.
      */
     $dom = new domDocument();
     @$dom->loadHTML($this->page);
     /*** discard white space ***/
     $dom->preserveWhiteSpace = false;
     $table = $dom->getElementById($this->tableId);
     if (empty($table)) {
         $this->emptyTable = TRUE;
         //print "DPLTDB: table is empty, can't find table! with table id of:$this->tableId\n";
         return $this->hList = array();
     }
     foreach ($table->childNodes as $tblChildNode) {
         $histogram = array();
         foreach ($tblChildNode->childNodes as $childNode) {
             if ($childNode->nodeName == 'td') {
                 if (is_numeric($childNode->nodeValue)) {
                     $histogram['count'] = trim($childNode->nodeValue);
                 }
                 if ($childNode->nodeValue == 'Show') {
                     $anchorList = $childNode->getElementsByTagName('a');
                     foreach ($anchorList as $anchorEle) {
                         $histogram['showLink'] = $anchorEle->getAttribute('href');
                     }
                 }
                 if (is_string($childNode->nodeValue)) {
                     $histogram['textOrLink'] = trim($childNode->nodeValue);
                 }
             }
         }
         // foreach($tblChildNode
         $this->hList[] = $histogram;
         $histogram = array();
     }
     // foreach
     // for tables with titles, the first row is empty as no childNodes match
     // what we are looking for, remove the first row.
     if ($this->title) {
         // remove empty 1st entry
         unset($this->hList[0]);
     }
     if (empty($this->hList)) {
         $this->noRows = TRUE;
     }
 }
예제 #3
0
 function apply_change($cadre, &$cache_cadre_object)
 {
     global $charset, $opac_parse_html;
     if (substr($cadre->build_obj, 0, strlen("cms_module_")) == "cms_module_") {
         $id_cadre = substr($cadre->build_obj, strrpos($cadre->build_obj, "_") + 1);
         if ($cache_cadre_object[$cadre->build_obj]) {
             $obj = $cache_cadre_object[$cadre->build_obj];
         } else {
             $obj = cms_modules_parser::get_module_class_by_id($id_cadre);
             $cache_cadre_object[$cadre->build_obj] = $obj;
         }
         if ($obj) {
             //on va chercher ses entetes...
             $this->headers = array_merge($this->headers, $obj->get_headers());
             $this->headers = array_unique($this->headers);
             //on s'occupe du cadre en lui-même
             //on récupère le contenu du cadre
             $res = $this->manage_cache_cadres("select", $cadre->build_obj, "html");
             if ($res["select"]) {
                 $html = $res["value"];
             } else {
                 $html = $obj->show_cadre();
                 if ($opac_parse_html) {
                     $html = parseHTML($html);
                 }
                 //on regarde si une condition n'empeche pas la mise en cache !
                 if ($obj->check_for_cache()) {
                     $this->manage_cache_cadres("insert", $cadre->build_obj, "html", $html);
                 }
             }
             //ca a peut-être l'air complexe, mais c'est logique...
             $tmp_dom = new domDocument();
             if ($charset == "utf-8") {
                 @$tmp_dom->loadHTML("<?xml version='1.0' encoding='{$charset}'>" . $html);
             } else {
                 @$tmp_dom->loadHTML($html);
             }
             if (!$tmp_dom->getElementById($obj->get_dom_id())) {
                 $this->setAllId($tmp_dom);
             }
             if ($this->dom->getElementById($cadre->build_parent)) {
                 $this->dom->getElementById($cadre->build_parent)->appendChild($this->dom->importNode($tmp_dom->getElementById($obj->get_dom_id()), true));
             }
             $dom_id = $obj->get_dom_id();
             //on rappelle le tout histoire de récupérer les CSS and co...
             $this->apply_dom_change($obj->get_dom_id(), $cadre);
         }
     } else {
         $this->apply_dom_change($cadre->build_obj, $cadre);
     }
 }
예제 #4
0
<?php

$xmlstring = '<?xml version="1.0" ?>
<!DOCTYPE books [
<!ATTLIST book id ID #IMPLIED>
]>
<books>
	<book id="1">
        	<title>Book 1</title>
	</book>
        <book id="2">
        	<title>Book 2</title>
	</book>
</books>';
$dom = new domDocument();
/* load XML from string */
$dom->loadXML($xmlstring);
/* get the node identified by id #2 */
$node = $dom->getElementById("2");
print trim($node->nodeValue);
예제 #5
0
 /**
  * MANGAREADER VERSION
  * Eg. $obj->download('http://www.mangareader.net/202-13447-1/hatsukoi-limited/chapter-1.html');
  * @param string $manga_url
  */
 function download($manga_url)
 {
     $html = file_get_contents($manga_url);
     $dom = new domDocument();
     @$dom->loadHTML($html);
     $dom->preserveWhiteSpace = false;
     /* PRIMERO BUSCAMOS EL NOMBRE DEL CAPITULO Y CREAMOS EL NOMBRE DE LA CARPETA */
     $headings = $dom->getElementsByTagName('h1');
     foreach ($headings as $h1) {
         echo "<br>File detected: " . ($dir = str_replace(" ", "-", $h1->nodeValue));
     }
     /* LUEGO BUSCAMOS LAS PAGINAS */
     $div = $dom->getElementById("selectpage");
     $pages = $div->nodeValue;
     /* FILTRAMOS */
     echo "<br>Total pages detected: " . ($pos = substr($pages, -(strlen($pages) - 1 - strrpos($pages, "f"))));
     /* BUSCAMOS LA URL DE LA IMAGEN */
     $img = $dom->getElementsByTagName('img');
     $i = 0;
     foreach ($img as $element) {
         if ($i == 0) {
             //guardamos la url de la imagen
             echo "<br>Image detected: " . ($imageurl = $element->getAttribute('src'));
             break;
         }
         $i++;
     }
     /* AHORA TENEMOS QUE EXTRAER EL NUMERO DE LA PRIMERA IMAGEN, dandole la vuelta, extrayendo valores etc...*/
     $img_name = strrev(substr(strrev($img_name = urlParameters(5, $imageurl)), 0, strpos(strrev($img_name = urlParameters(5, $imageurl)), "-")));
     echo "<br>Id filtered: " . ($id = substr($img_name, 0, strpos($img_name, ".")));
     //le quitamos la extension
     /*OWNED :)*/
     for ($i = 0; $i < $pos; $i++) {
         //http://i14.mangareader.net/hatsukoi-limited/1/hatsukoi-limited-312443.jpg
         $url = urlParameters(0, $imageurl) . "/" . urlParameters(1, $imageurl) . "/" . urlParameters(2, $imageurl) . "/" . urlParameters(3, $imageurl) . "/" . urlParameters(4, $imageurl) . "/" . urlParameters(3, $imageurl) . "-" . $id . ".jpg";
         $id++;
         if (saveImg($url, $i . ".jpg", $dir) == 0) {
             $error = 1;
         }
         set_time_limit(20);
     }
 }
예제 #6
0
 function apply_change($cadre, &$cache_cadre_object)
 {
     global $charset, $opac_parse_html;
     if (substr($cadre->build_obj, 0, strlen("cms_module_")) == "cms_module_") {
         if ($cadre->empty && $_SESSION["cms_build_activate"]) {
             $id_cadre = substr($cadre->build_obj, strrpos($cadre->build_obj, "_") + 1);
             $obj = cms_modules_parser::get_module_class_by_id($id_cadre);
             if ($obj) {
                 $query = "select cadre_name from cms_cadres where id_cadre = " . $id_cadre;
                 $result = pmb_mysql_query($query);
                 $row = pmb_mysql_fetch_object($result);
                 $html = "<span id='" . $cadre->build_obj . "' class='cmsNoStyles' type='cms_module_hidden' cadre_style='" . $cadre->build_css . "'><div id='" . $cadre->build_obj . "_conteneur' class='cms_module_hidden' style='display:none'>" . $row->cadre_name . "<div style='" . $cadre->build_css . "'></div></div></pan>";
                 $tmp_dom = new domDocument();
                 if ($charset == "utf-8") {
                     @$tmp_dom->loadHTML("<?xml version='1.0' encoding='{$charset}'>" . $html);
                 } else {
                     @$tmp_dom->loadHTML($html);
                 }
                 if (!$tmp_dom->getElementById($obj->get_dom_id())) {
                     $this->setAllId($tmp_dom);
                 }
                 if ($this->dom->getElementById($cadre->build_parent)) {
                     $this->dom->getElementById($cadre->build_parent)->appendChild($this->dom->importNode($tmp_dom->getElementById($obj->get_dom_id()), true));
                 }
                 $dom_id = $obj->get_dom_id();
                 //on rappelle le tout histoire de récupérer les CSS and co...
                 $this->apply_dom_change($obj->get_dom_id(), $cadre);
             }
         } else {
             if (!$cadre->empty) {
                 $id_cadre = substr($cadre->build_obj, strrpos($cadre->build_obj, "_") + 1);
                 if ($cache_cadre_object[$cadre->build_obj]) {
                     $obj = $cache_cadre_object[$cadre->build_obj];
                 } else {
                     $obj = cms_modules_parser::get_module_class_by_id($id_cadre);
                     $cache_cadre_object[$cadre->build_obj] = $obj;
                 }
                 if ($obj) {
                     //on va chercher ses entetes...
                     $headers = $obj->get_headers();
                     $this->headers['add'] = array_merge($this->headers['add'], $headers['add']);
                     $this->headers['replace'] = array_merge($this->headers['replace'], $headers['replace']);
                     $this->headers['add'] = array_unique($this->headers['add']);
                     $this->headers['replace'] = array_unique($this->headers['replace']);
                     //on s'occupe du cadre en lui-même
                     //on récupère le contenu du cadre
                     $res = $this->manage_cache_cadres("select", $cadre->build_obj, "html");
                     if ($res["select"]) {
                         $html = $res["value"];
                     } else {
                         $html = $obj->show_cadre();
                         if ($opac_parse_html) {
                             $html = parseHTML($html);
                         }
                         //on regarde si une condition n'empeche pas la mise en cache !
                         if ($obj->check_for_cache()) {
                             $this->manage_cache_cadres("insert", $cadre->build_obj, "html", $html);
                         }
                     }
                     //ca a peut-être l'air complexe, mais c'est logique...
                     $tmp_dom = new domDocument();
                     if ($charset == "utf-8") {
                         @$tmp_dom->loadHTML("<?xml version='1.0' encoding='{$charset}'>" . $html);
                     } else {
                         @$tmp_dom->loadHTML($html);
                     }
                     if (!$tmp_dom->getElementById($obj->get_dom_id())) {
                         $this->setAllId($tmp_dom);
                     }
                     if ($this->dom->getElementById($cadre->build_parent)) {
                         $this->dom->getElementById($cadre->build_parent)->appendChild($this->dom->importNode($tmp_dom->getElementById($obj->get_dom_id()), true));
                     }
                     $dom_id = $obj->get_dom_id();
                     //on rappelle le tout histoire de récupérer les CSS and co...
                     $this->apply_dom_change($obj->get_dom_id(), $cadre);
                 }
             }
         }
     } else {
         if ($cadre->build_type == "cadre" && $cadre->empty == 1 && $_SESSION["cms_build_activate"]) {
             $html = "<span id='" . $cadre->build_obj . "' class='cmsNoStyles' type='cms_module_hidden' cadre_style='" . $cadre->build_css . "'><div id='" . $cadre->build_obj . "_conteneur' class='cms_module_hidden' style='display:none'>" . $cadre->build_obj . "<div style='" . $cadre->build_css . "'></div></div></pan>";
             $tmp_dom = new domDocument();
             if ($charset == "utf-8") {
                 @$tmp_dom->loadHTML("<?xml version='1.0' encoding='{$charset}'>" . $html);
             } else {
                 @$tmp_dom->loadHTML($html);
             }
             if (!$tmp_dom->getElementById($cadre->build_obj)) {
                 $this->setAllId($tmp_dom);
             }
             if ($this->dom->getElementById($cadre->build_parent)) {
                 $this->dom->getElementById($cadre->build_parent)->appendChild($this->dom->importNode($tmp_dom->getElementById($cadre->build_obj), true));
             }
         }
         $this->apply_dom_change($cadre->build_obj, $cadre);
     }
 }
예제 #7
0
************************************************************************************************************************************/
/**
* Usage example: find synonym for a word
*/
define("BASE_URL", "http://encarta.msn.com/encnet/features/dictionary/DictionaryResults.aspx");
echo $_REQUEST["key_word"];
$request_url = BASE_URL . "?lextype=2&search=" . $_REQUEST["key_word"];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $request_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
$output = str_replace("class=\"ResultBody\"", "id=\"ResultBody\"", $output);
/*** a new dom object ***/
$dom = new domDocument();
/*** load the output html into the object ***/
$dom->loadHTML($output);
/*** discard white space ***/
$dom->preserveWhiteSpace = false;
$html = $dom->saveXML($dom->getElementById("ResultBody"));
$xml = simplexml_load_string($html);
//print_r($html);
$synonyms = str_replace(":", "", simplexml_import_dom($xml));
$result = $xml->xpath('/span/a/b');
$synonyms .= ", ";
while (list(, $node) = each($result)) {
    $synonyms .= $node->asXML() . ", ";
}
echo str_replace("</b>", "", str_replace("<b>", "", $synonyms));
예제 #8
0
function generateTestReport($run_id, $view)
{
    $result = mysql_queryf("SELECT job_id,runs.name,jobs.name,jobs.created FROM runs,jobs WHERE runs.job_id=jobs.id AND runs.id=%s LIMIT 1", $run_id);
    if ($row = mysql_fetch_array($result)) {
        $job_id = $row[0];
        $test_suite = $row[1];
        $job_name = $row[2];
        $creation_time = $row[3];
    }
    $dtd_string = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n" . "\t\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n";
    $dom_implementation = new DOMImplementation();
    $dtd = $dom_implementation->createDocumentType('html', '-//W3C//DTD XHTML 1.0 Strict//EN', 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd');
    libxml_use_internal_errors(TRUE);
    $report = $dom_implementation->createDocument('', '', $dtd);
    $html = $report->createElement('html');
    $html = $report->appendChild($html);
    $head = $report->createElement('head');
    $head = $html->appendChild($head);
    $title = $report->createElement('title');
    $title->nodeValue = "{$job_name}";
    $title = $head->appendChild($title);
    $resource_path = "";
    if ($view) {
        $resource_path = "../";
    }
    $qunit_css = $report->createElement('link');
    $qunit_css->setAttribute('rel', 'stylesheet');
    $qunit_css->setAttribute('href', $resource_path . 'css/qunit.css');
    $qunit_css->setAttribute('type', 'text/css');
    $qunit_css->setAttribute('media', 'screen');
    $qunit_css = $head->appendChild($qunit_css);
    $site_css = $report->createElement('link');
    $site_css->setAttribute('rel', 'stylesheet');
    $site_css->setAttribute('href', $resource_path . 'css/site.css');
    $site_css->setAttribute('type', 'text/css');
    $site_css->setAttribute('media', 'screen');
    $site_css = $head->appendChild($site_css);
    $jquery_js = $report->createElement('script');
    $jquery_js->setAttribute('type', 'text/javascript');
    $jquery_js->setAttribute('src', $resource_path . 'js/jquery.js');
    $jquery_js = $head->appendChild($jquery_js);
    $report_js = $report->createElement('script');
    $report_js->setAttribute('type', 'text/javascript');
    $report_js->setAttribute('src', $resource_path . 'js/report.js');
    $report_js = $head->appendChild($report_js);
    $ready_js = $report->createElement('script');
    $ready_js->setAttribute('type', 'text/javascript');
    $ready_js->nodeValue = "\$(document).ready(function(){initQunitReport();});";
    $ready_js = $head->appendChild($ready_js);
    $body = $report->createElement('body');
    $body = $html->appendChild($body);
    $body->setAttribute('style', 'padding: 10px;');
    $report_qunit_header = $report->createElement('h1');
    $report_qunit_header->setAttribute('id', 'qunit-header');
    $report_qunit_header_span = $report->createElement('span');
    $report_qunit_header_span->setAttribute('id', 'report_top');
    $report_qunit_header_span->nodeValue = "QUnit Test Report: {$job_name}";
    $report_qunit_header->appendChild($report_qunit_header_span);
    $report_qunit_header = $body->appendChild($report_qunit_header);
    $results_table_html = '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" dir="ltr">' . '<head></head><body><div id="main">' . get_results_table($browsers, $runs, $job_id) . '</div></body></html>';
    $results = new domDocument();
    $results->loadHTML($results_table_html);
    $results->preserveWhiteSpace = false;
    $results_table = "";
    $results_div = $results->getElementsByTagName('div');
    foreach ($results_div as $div) {
        $div_class = $div->getAttribute('class');
        if ($div_class == "result-table") {
            $results_table = $div;
        }
    }
    $report_results_table = $report->importNode($results_table, true);
    $report_results_table->setAttribute('style', 'padding: 20px;' . 'background-color: #0D3349; ' . 'border-bottom-left-radius: 15px; ' . 'border-bottom-right-radius: 15px; ');
    $result_table = "";
    $tables = $report_results_table->getElementsByTagName('table');
    foreach ($tables as $table) {
        $table_class = $table->getAttribute('class');
        if ($table_class == "results") {
            $result_table = $table;
        }
    }
    $result_table->setAttribute('style', 'padding: 20px;' . 'background-color: #D2E0E6; ' . 'border-top-left-radius: 15px; ' . 'border-top-right-radius: 15px; ' . 'border-bottom-left-radius: 15px; ' . 'border-bottom-right-radius: 15px; ');
    if ($view < 1) {
        $icons = $result_table->getElementsByTagName('img');
        foreach ($icons as $icon) {
            $icon_src = $icon->getAttribute('src');
            $icon_src = preg_replace('/(.*images\\/)(.*)/', $resource_path . 'images/$2', $icon_src);
            $icon->setAttribute('src', $icon_src);
        }
    }
    $table_headers = $result_table->getElementsByTagName('th');
    foreach ($table_headers as $table_header) {
        $table_headers_a = $table_header->getElementsByTagName('a');
        foreach ($table_headers_a as $table_header_a) {
            $table_header_a_href = $table_header_a->getAttribute('href');
            $table_header_a_href = preg_replace('/(.*\\/)(.*)\\.(.*)/', '#$2', $table_header_a_href);
            $table_header_a->setAttribute('href', $table_header_a_href);
        }
    }
    $table_cells = $result_table->getElementsByTagName('td');
    foreach ($table_cells as $table_cell) {
        $table_cells_a = $table_cell->getElementsByTagName('a');
        foreach ($table_cells_a as $table_cell_a) {
            $table_cell_a_href = $table_cell_a->getAttribute('href');
            $table_cell_a_href = preg_replace('/.*run_id=(\\d+)&client_id=(\\d+)/', '#r$1c$2', $table_cell_a_href);
            $table_cell_a->setAttribute('href', $table_cell_a_href);
        }
    }
    $report_results_table = $body->appendChild($report_results_table);
    $os_name = array();
    $os_name['linux'] = "Linux";
    $os_name['win7'] = "Windows 7";
    $os_name['xp'] = "Windows XP";
    $os_name['osx'] = "Mac OS X";
    $os_name['osx10.5'] = "Mac OS X 10.5";
    $os_name['iphone'] = "iPhone 0S";
    $os_name['android'] = "Android";
    $last_run_name = "";
    $result_runs = mysql_queryf("SELECT id,name FROM runs WHERE job_id=%s", $job_id);
    while ($row_runs = mysql_fetch_array($result_runs)) {
        $run_id = $row_runs[0];
        $run_name = $row_runs[1];
        $result = mysql_queryf("SELECT results,useragents.engine,os,useragents.name,url,runs.id,clients.id FROM run_client,clients,useragents,runs,jobs WHERE (run_client.client_id=clients.id AND clients.useragent_id=useragents.id AND run_client.run_id=runs.id AND runs.job_id=jobs.id AND runs.id=%s)", $run_id);
        while ($row = mysql_fetch_array($result)) {
            /* prepend a correct DTD otherwise the PHP DOM parser won't work correctly */
            $report_html = $dtd_string . gzdecode($row[0]);
            $report_html = preg_replace('/<html>/', '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" dir="ltr">', $report_html);
            $client_id = $row[6];
            $run_id = $row[5];
            $test_url = $row[4];
            $browser_name = $row[3];
            $os = $os_name[$row[2]];
            $os_shortname = $row[2];
            $engine = $row[1];
            if (strlen($os) < 1) {
                $os = $row[2];
            }
            $dom = new domDocument();
            $dom->loadHTML($report_html);
            $dom->preserveWhiteSpace = false;
            $qunit_header = $dom->getElementById('qunit-header');
            $qunit_banner = $dom->getElementById('qunit-banner');
            $qunit_useragent = $dom->getElementById('qunit-userAgent');
            $qunit_tests = $dom->getElementById('qunit-tests');
            $qunit_testresult = $dom->getElementById('qunit-testresult');
            if ($qunit_testresult == NULL) {
                /* happens when test timed out */
                continue;
            }
            $testresults = $qunit_testresult->getElementsByTagName('span');
            foreach ($testresults as $testresult) {
                $testresult_class = $testresult->getAttribute('class');
                if ($testresult_class == "passed") {
                    $qunit_passed = $testresult->nodeValue;
                } else {
                    if ($testresult_class == "failed") {
                        $qunit_failed = $testresult->nodeValue;
                    } else {
                        if ($testresult_class == "total") {
                            $qunit_total = $testresult->nodeValue;
                        }
                    }
                }
            }
            if ($run_name != $last_run_name) {
                $body->appendChild($report->createElement('br'));
                $report_qunit_header = $report->importNode($qunit_header, true);
                $report_qunit_header_text = $report_qunit_header->nodeValue;
                $report_qunit_header->nodeValue = "";
                $report_qunit_header_a = $report->createElement('a');
                $report_qunit_header_a_anchor = preg_replace('/(.*\\/)(.*)\\.(.*)/', '$2', $test_url);
                $report_qunit_header_a->setAttribute('name', $report_qunit_header_a_anchor);
                $report_qunit_header_a->setAttribute('href', "#report_top");
                $report_qunit_header_a->setAttribute('title', "go back to top");
                $report_qunit_header_a->nodeValue = $report_qunit_header_text;
                $report_qunit_header->appendChild($report_qunit_header_a);
                $report_qunit_header = $body->appendChild($report_qunit_header);
                $last_run_name = $run_name;
            }
            $report_qunit_banner = $report->importNode($qunit_banner, true);
            $report_qunit_banner = $body->appendChild($report_qunit_banner);
            $report_qunit_useragent = $report->importNode($qunit_useragent, true);
            $report_qunit_useragent_browser_icon = $report->createElement('img');
            $report_qunit_useragent_browser_icon->setAttribute('style', 'width: 16px; height: 16px;' . 'padding-top: 0px; padding-bottom: 0px;' . 'padding-left: 0px; padding-right: 6px;');
            $report_qunit_useragent_browser_icon->setAttribute('src', $resource_path . 'images/' . $engine . '.sm.png');
            $report_qunit_useragent_os_icon = $report->createElement('img');
            $report_qunit_useragent_os_icon->setAttribute('style', 'width: 16px; height: 16px;' . 'padding-top: 0px; padding-bottom: 0px;' . 'padding-left: 0px; padding-right: 6px;');
            $report_qunit_useragent_os_icon->setAttribute('src', $resource_path . 'images/os/' . $os_shortname . '.sm.png');
            $report_qunit_useragent_span = $report->createElement('span');
            $report_qunit_useragent_span->nodeValue = "{$browser_name} / {$os} - useragent: " . $report_qunit_useragent->nodeValue;
            $report_qunit_useragent_span->setAttribute('id', "r" . $run_id . "c" . $client_id);
            $report_qunit_useragent_span->setAttribute('title', 'click to expand / collapse');
            $report_qunit_useragent->nodeValue = "";
            $report_qunit_useragent->appendChild($report_qunit_useragent_browser_icon);
            $report_qunit_useragent->appendChild($report_qunit_useragent_os_icon);
            $report_qunit_useragent->appendChild($report_qunit_useragent_span);
            $report_qunit_useragent = $body->appendChild($report_qunit_useragent);
            $report_qunit_tests = $report->importNode($qunit_tests, true);
            $report_qunit_tests = $body->appendChild($report_qunit_tests);
            $report_qunit_testresult = $report->importNode($qunit_testresult, true);
            $report_qunit_testresult = $body->appendChild($report_qunit_testresult);
        }
    }
    return $report;
}
예제 #9
0
// URL of project list
$url_module_usage_base_url = "http://drupal.org";
$url_module_usage = $url_module_usage_base_url . "/project/usage";
// get the list of all project names
echo "\nLoading project list ... ";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url_module_usage);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$html = curl_exec($ch);
curl_close($ch);
// Parsing the list in order to get more informations
$projects = array();
$dom = new domDocument();
@$dom->loadHtml($html);
$table = $dom->getElementById("project-usage-all-projects");
$rows = $table->getElementsByTagName("tr");
$cpt = 0;
foreach ($rows as $row) {
    $project = $row->getElementsByTagName('a')->item(0);
    $project_name = $project->nodeValue;
    $url = $url_module_usage_base_url . $project->getAttribute('href');
    $pos_slash = strrpos($url, "/");
    $project_id = substr($url, $pos_slash + 1);
    $projects[] = array("id" => $project_id, "name" => $project_name);
    if ($nb_modules_to_scan != 0 && count($projects) == $nb_modules_to_scan) {
        break;
    }
}
$nb_projects = count($projects);
echo $nb_projects . " projects\n\n";
예제 #10
0
파일: .model.php 프로젝트: Vatia13/funtime
 if ($_POST['cbr'] == 1) {
     $url = "http://www.cbr.ru/currency_base/D_print.aspx?date_req=" . date('d.m.Y', time());
 }
 $html = file_get_contents($url);
 //read the file
 if ($_POST['cbr'] == 1) {
     $pos = utf8_strpos($html, '<div class="header2"');
     $html = utf8_substr($html, $pos, utf8_strlen($html));
     $message[0] = 'valid';
     $message[1] = 'Котировки успешно обновлены';
 }
 $dom = new domDocument();
 @$dom->loadHTML($html);
 $dom->preserveWhiteSpace = false;
 if ($_POST['market'] == 1) {
     $block = $dom->getElementById('markets');
     $sql_table = '#__parser_market';
 }
 if ($_POST['currencies'] == 1) {
     $block = $dom->getElementById('currencies');
     $sql_table = '#__parser_curr';
 }
 if ($_POST['cbr'] == 1) {
     $sql_table = '#__parser_cbr';
 }
 if ($_POST['market'] == 1 or $_POST['currencies'] == 1) {
     $tables = $block->getElementsByTagName('table');
 }
 if ($_POST['cbr'] == 1) {
     $tables = $dom->getElementsByTagName('table');
 }
예제 #11
0
 function parseBrowseMenuFiles()
 {
     $dom = new domDocument();
     @$dom->loadHTML($this->page);
     /*** discard white space ***/
     $dom->preserveWhiteSpace = false;
     $table = $dom->getElementById($this->tableId);
     if (empty($table)) {
         $this->emptyTable = TRUE;
         print "DPLTDB: table is empty, can't find table! with table id of:{$this->tableId}\n";
         return $this->browseList = array();
     }
     foreach ($table->childNodes as $tblChildNode) {
         if ($tblChildNode->nodeName == 'tr') {
             $childNodes = $tblChildNode->childNodes;
             $clen = $childNodes->length;
             for ($i = 0; $i < $clen; $i++) {
                 $node = $childNodes->item($i);
                 $nn = $node->nodeName;
                 if ($node->nodeName == 'td') {
                     $fileName = $node->nodeValue;
                     $childNodes = $node->childNodes;
                     $tdclen = $childNodes->length;
                     for ($i = 0; $i < $tdclen; $i++) {
                         $tdnode = $childNodes->item($i);
                         $tdnn = $tdnode->nodeName;
                         //print "\tname of td-node is:$tdnn\n";
                         if ($tdnn == '#text') {
                             $tdNodeValue = $tdnode->nodeValue;
                             //print "\tDB-td: #text node value is:$tdNodeValue\n";
                             $fromFS = 'Added from filesystem:';
                             $fromFile = 'Added by file upload:';
                             $fromURL = 'Added by URL:';
                             $matches = 0;
                             if ($matches = preg_match("/{$fromFile}/", $tdNodeValue, $ffMatch)) {
                                 $fileUploadName = $this->fromFile($tdNodeValue);
                                 $this->getAnchors($node, $fileUploadName);
                             } else {
                                 if ($matches = preg_match("/{$fromFS}/", $tdNodeValue, $fsMatch)) {
                                     $fsUploadName = $this->fromFS($tdNodeValue);
                                     $this->getAnchors($node, $fsUploadName);
                                 } else {
                                     if ($matches = preg_match("/{$fromURL}/", $tdNodeValue, $urlMatch)) {
                                         $urlUploadName = $this->fromURL($tdNodeValue);
                                         $this->getAnchors($node, $urlUploadName);
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
         if (!empty($this->anchors)) {
             $this->browseList = array_merge($this->browseList, $this->anchors);
             $this->anchors = array();
         }
     }
     // foreach
     if (empty($this->browseList)) {
         $this->noRows = TRUE;
     }
     //print "at the end of parse, browseList is:\n";print_r($this->browseList) . "\n";
 }
 public function setDefaultValuesOnAutoUpdateSettings()
 {
     $this->initAdminCurlConnection();
     curl_setopt($this->curl_connection, CURLOPT_URL, $this->app->getAppUrl() . '/admin/index.php');
     $result = curl_exec($this->curl_connection);
     /*** a new dom object ***/
     $dom = new domDocument();
     /*** load the html into the object ***/
     $dom->loadHTML($result);
     $postdata = null;
     // Attempt to get the form on page which saves settings data. If it is not found, this means
     // that the current page just needs a simple "Continue"
     $adminForm = $dom->getElementById('adminsettings');
     if ($adminForm) {
         // If we have a setting form to complete, copy all form fields so we
         // can issue a post request with the default values
         $inputTags = $adminForm->getElementsByTagName('input');
         $selectTags = $adminForm->getElementsByTagName('select');
         $textareaTags = $adminForm->getElementsByTagName('textarea');
     }
     $postString = "";
     // This loop scrapes all of the input tag values
     foreach ($inputTags as $tag) {
         if ($tag->hasAttribute('name')) {
             $postdata[$tag->getAttribute('name')] = $tag->getAttribute('value');
         }
     }
     foreach ($textareaTags as $tag) {
         if ($tag->hasAttribute('name')) {
             $value = $tag->getAttribute('value');
             if (empty($value)) {
                 $value = $this->get_inner_html($tag);
             }
             $postdata[$tag->getAttribute('name')] = $value;
         }
     }
     // This loop scrapes the default selected value in a select tag
     foreach ($selectTags as $tag) {
         $optionTags = $tag->getElementsByTagName('option');
         foreach ($optionTags as $oTag) {
             // pick the first option
             if (!$postdata[$tag->getAttribute('name')]) {
                 $postdata[$tag->getAttribute('name')] = $oTag->getAttribute('value');
             }
             // overwrite the first option if a selected attribute is listed
             if ($oTag->hasAttribute('selected')) {
                 $postdata[$tag->getAttribute('name')] = $oTag->getAttribute('value');
             }
         }
     }
     // This loop converts the scraped data into a formatted postdata string
     foreach ($postdata as $key => $value) {
         $postString .= $seperator . $key . '=' . $value;
         $seperator = '&';
     }
     // Set the post fields and execute the curl request
     curl_setopt($this->curl_connection, CURLOPT_POSTFIELDS, $postString);
     //set data to be posted
     $result = curl_exec($this->curl_connection);
     /*** a new dom object ***/
     $dom = new domDocument();
     /*** load the html into the object ***/
     $dom->loadHTML($result);
     $formTags = $dom->getElementsByTagName('div');
     foreach ($formTags as $tag) {
         if ($tag->getAttribute('class') == 'box copyright') {
             return true;
         }
     }
     return false;
 }