Example #1
0
 public function find($string)
 {
     $xpath = new DOMXPath($this->element->ownerDocument);
     $nodes = new ArrayList(DOMNode::class);
     foreach ($xpath->query($string) as $node) {
         if ($node instanceof DOMNode) {
             $nodes->add(new Element($node));
         }
     }
     return $nodes;
 }
Example #2
0
 /**
  * Execute all the created handles
  * @return ArrayList
  */
 public function exec()
 {
     $responses = new ArrayList(HttpResult::class);
     if ($this->handles > 0) {
         $mh = curl_multi_init();
         foreach ($this->handles as $ch) {
             curl_multi_add_handle($mh, $ch);
         }
         $running = null;
         do {
             curl_multi_exec($mh, $running);
             curl_multi_select($mh);
         } while ($running > 0);
         foreach ($this->handles as $ch) {
             $body = curl_multi_getcontent($ch);
             $info = curl_getinfo($ch);
             $result = new HttpResult();
             $result->body = $body;
             $result->url = isset($info['url']) ? $info['url'] : '';
             $result->contentType = isset($info['content_type']) ? $info['content_type'] : '';
             $result->httpCode = isset($info['http_code']) ? (int) $info['http_code'] : 0;
             $result->headerSize = isset($info['header_size']) ? $info['header_size'] : '';
             $result->requestSize = isset($info['request_size']) ? $info['request_size'] : '';
             $result->filetime = isset($info['filetime']) ? $info['filetime'] : '';
             $result->sslVerifyResult = isset($info['ssl_verify_result']) ? $info['ssl_verify_result'] : '';
             $result->redirectCount = isset($info['redirect_count']) ? $info['redirect_count'] : '';
             $result->totalTime = isset($info['total_time']) ? $info['total_time'] : '';
             $result->namelookupTime = isset($info['namelookup_time']) ? $info['namelookup_time'] : '';
             $result->connectTime = isset($info['connect_time']) ? $info['connect_time'] : '';
             $result->pretransferTime = isset($info['pretransfer_time']) ? $info['pretransfer_time'] : '';
             $result->sizeUpload = isset($info['size_upload']) ? $info['size_upload'] : '';
             $result->sizeDownload = isset($info['size_download']) ? $info['size_download'] : '';
             $result->speedDownload = isset($info['speed_download']) ? $info['speed_download'] : '';
             $result->speedUpload = isset($info['speed_upload']) ? $info['speed_upload'] : '';
             $result->downloadContentLength = isset($info['download_content_length']) ? $info['download_content_length'] : '';
             $result->uploadContentLength = isset($info['upload_content_length']) ? $info['upload_content_length'] : '';
             $result->starttransferTime = isset($info['starttransfer_time']) ? $info['starttransfer_time'] : '';
             $result->redirectTime = isset($info['redirect_time']) ? $info['redirect_time'] : '';
             $result->certinfo = isset($info['certinfo']) ? $info['certinfo'] : '';
             $result->primaryIp = isset($info['primary_ip']) ? $info['primary_ip'] : '';
             $result->primaryPort = isset($info['primary_port']) ? $info['primary_port'] : '';
             $result->localIp = isset($info['local_ip']) ? $info['local_ip'] : '';
             $result->localPort = isset($info['local_port']) ? $info['local_port'] : '';
             $result->redirectUrl = isset($info['redirect_url']) ? $info['redirect_url'] : '';
             $result->requestHeader = isset($info['request_header']) ? $info['request_header'] : '';
             $responses->add($result);
             curl_multi_remove_handle($mh, $ch);
         }
         curl_multi_close($mh);
     }
     return $responses;
 }