Exemplo n.º 1
2
 /**
  * @param $numero
  * @return array
  * @throws \Exception
  */
 public function consulta($numero)
 {
     $numero = str_replace(['-', '(', ')', '*', ' '], '', $numero);
     $curl = new Curl();
     $data = ['numero' => $numero];
     $html = $curl->simple('https://www.qual-operadora.net/', $data);
     #dd($html);
     phpQuery::newDocumentHTML($html, $charset = 'utf-8');
     $pesquisa = [];
     foreach (phpQuery::pq('#modulo-consulta-operadora #consulta_num') as $pqDiv) {
         $dados = [];
         $dados['operadoraTipo'] = explode('-', str_replace([' ', ':'], '', trim(phpQuery::pq('table span.verde:first', $pqDiv)->text())));
         if (isset($dados['operadoraTipo'][0])) {
             $dados['operadora'] = $dados['operadoraTipo'][0];
         }
         if (isset($dados['operadoraTipo'][1])) {
             $dados['tipo'] = $dados['operadoraTipo'][1];
             unset($dados['operadoraTipo']);
         }
         $dados['portabilidade'] = preg_replace('/[áàãâä]/ui', 'a', str_replace([' ', ':'], '', trim(phpQuery::pq('table span.verde:last', $pqDiv)->text())));
         $dados['dataPortabilidade'] = preg_replace('/[áàãâä]/ui', 'a', str_replace([' ', ':'], '', trim(phpQuery::pq('h2 span.verde:last', $pqDiv)->text())));
         $dados['numero'] = trim(phpQuery::pq('input:[name="numero"]', $pqDiv)->val());
         $pesquisa = $dados;
     }
     return $pesquisa;
 }
Exemplo n.º 2
0
    protected function doRemoveNamespacedNodes(&$pq)
    {
        $xsl = <<<____EOF
      <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" exclude-result-prefixes="xsl">
          <xsl:template match="*[local-name()=name()]">
              <xsl:element name="{local-name()}">
                  <xsl:apply-templates select="@* | node()"/>
              </xsl:element>
          </xsl:template>
          <xsl:template match="@* | text()">
              <xsl:copy/>
          </xsl:template>
      </xsl:stylesheet>
____EOF;
        $xsl = \DOMDocument::loadXml($xsl);
        $proc = new \XSLTProcessor();
        $proc->importStyleSheet($xsl);
        $pq->document = $proc->transformToDoc($pq->document);
        for ($i = $pq->document->documentElement->attributes->length; $i >= 0; --$i) {
            $attr = $pq->document->documentElement->attributes->item($i);
            if (substr($attr->name, 0, 6) === 'xmlns:') {
                $pq->document->documentElement->removeAttributeNode($attr);
            }
        }
        $pq = PhpQuery::newDocumentHTML($pq->document->saveHTML());
        return $this;
    }
 public function rastrear($codigo)
 {
     $curl = new Curl();
     $html = $curl->simple('http://websro.correios.com.br/sro_bin/txect01$.QueryList?P_LINGUA=001&P_TIPO=001&P_COD_UNI=' . $codigo);
     phpQuery::newDocumentHTML($html, $charset = 'utf-8');
     $rastreamento = array();
     $c = 0;
     foreach (phpQuery::pq('tr') as $tr) {
         $c++;
         if (count(phpQuery::pq($tr)->find('td')) == 3 && $c > 1) {
             $rastreamento[] = array('data' => phpQuery::pq($tr)->find('td:eq(0)')->text(), 'local' => phpQuery::pq($tr)->find('td:eq(1)')->text(), 'status' => phpQuery::pq($tr)->find('td:eq(2)')->text());
         }
         if (count(phpQuery::pq($tr)->find('td')) == 1 && $c > 1) {
             $rastreamento[count($rastreamento) - 1]['encaminhado'] = phpQuery::pq($tr)->find('td:eq(0)')->text();
         }
     }
     if (!count($rastreamento)) {
         return false;
     }
     return $rastreamento;
 }
Exemplo n.º 4
0
 /**
  * @param PhpQueryObject $pq
  * @dataProvider provider
  * @return void
  */
 public function testCssParser()
 {
     PhpQuery::$enableCssShorthand = FALSE;
     $expected_html = '<div style="color:red;display:none;margin:20px;padding:10px"><span>Hello World!</span></div>';
     $expected_pq = PhpQuery::newDocumentHTML($expected_html);
     $test_pq = PhpQuery::newDocumentHTML('<div style="margin:10px; padding:10px">');
     $test = pq('div');
     $test->append('<span>Hello World!</span>');
     $test->hide();
     $test->css('color', 'red');
     $test->css('margin', '20px');
     $this->assertEqualXMLStructure($expected_pq->find('div')->elements[0], $test->elements[0]);
 }