/** * @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; }
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; }
/** * @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]); }