update composer

This commit is contained in:
JAE 2015-12-23 18:11:45 +08:00
parent b820f2bd53
commit e1058b8201
6 changed files with 21 additions and 190 deletions

View File

@ -45,7 +45,7 @@ $hj->setQuery(array('title'=>array('','text'),'url'=>array('a','href')),'#con_tw
echo $hj->getData(); echo $hj->getData();
*/ */
require 'phpQuery/phpQuery.php'; namespace QueryList;
class QueryList class QueryList
{ {
private $regArr; private $regArr;
@ -85,7 +85,7 @@ class QueryList
* @param $class * @param $class
* @param array $args * @param array $args
* @return mixed * @return mixed
* @throws QueryList_Exception * @throws Exception
*/ */
public static function run($class,$args = array()) public static function run($class,$args = array())
{ {
@ -96,19 +96,19 @@ class QueryList
/** /**
* 获取任意实例 * 获取任意实例
* @return mixed * @return mixed
* @throws QueryList_Exception * @throws Exception
*/ */
public static function getInstance() public static function getInstance()
{ {
$args = func_get_args(); $args = func_get_args();
count($args) || $args = array('QueryList'); count($args) || $args = array(self::class);
$key = md5(serialize($args)); $key = md5(serialize($args));
$className = array_shift($args); $className = array_shift($args);
if(!class_exists($className)) { if(!class_exists($className)) {
throw new QueryList_Exception("no class {$className}"); throw new \Exception("no class {$className}");
} }
if(!isset(self::$instances[$key])) { if(!isset(self::$instances[$key])) {
$rc = new ReflectionClass($className); $rc = new \ReflectionClass($className);
self::$instances[$key] = $rc->newInstanceArgs($args); self::$instances[$key] = $rc->newInstanceArgs($args);
} }
return self::$instances[$key]; return self::$instances[$key];
@ -173,8 +173,8 @@ class QueryList
private function _getList() private function _getList()
{ {
$this->inputEncoding && phpQuery::$defaultCharset = $this->inputEncoding; $this->inputEncoding && \phpQuery::$defaultCharset = $this->inputEncoding;
$document = phpQuery::newDocumentHTML($this->html); $document = \phpQuery::newDocumentHTML($this->html);
$this->qpHtml = $document->htmlOuter(); $this->qpHtml = $document->htmlOuter();
if (!empty($this->regRange)) { if (!empty($this->regRange)) {
$robj = pq($document)->find($this->regRange); $robj = pq($document)->find($this->regRange);
@ -210,7 +210,7 @@ class QueryList
} else { } else {
while (list($key, $reg_value) = each($this->regArr)) { while (list($key, $reg_value) = each($this->regArr)) {
if($key=='callback')continue; if($key=='callback')continue;
$document = phpQuery::newDocumentHTML($this->html); $document = \phpQuery::newDocumentHTML($this->html);
$tags = isset($reg_value[2])?$reg_value[2]:''; $tags = isset($reg_value[2])?$reg_value[2]:'';
$lobj = pq($document)->find($reg_value[0]); $lobj = pq($document)->find($reg_value[0]);
$i = 0; $i = 0;
@ -241,7 +241,7 @@ class QueryList
//编码转换 //编码转换
$this->data = $this->_arrayConvertEncoding($this->data, $this->outputEncoding, $this->htmlEncoding); $this->data = $this->_arrayConvertEncoding($this->data, $this->outputEncoding, $this->htmlEncoding);
} }
phpQuery::$documents = array(); \phpQuery::$documents = array();
} }
/** /**
@ -386,8 +386,8 @@ class QueryList
foreach ($tags as $tag) { foreach ($tags as $tag) {
$tag_str .= $tag_str?','.$tag:$tag; $tag_str .= $tag_str?','.$tag:$tag;
} }
phpQuery::$defaultCharset = $this->inputEncoding?$this->inputEncoding:$this->htmlEncoding; \phpQuery::$defaultCharset = $this->inputEncoding?$this->inputEncoding:$this->htmlEncoding;
$doc = phpQuery::newDocumentHTML($html); $doc = \phpQuery::newDocumentHTML($html);
pq($doc)->find($tag_str)->remove(); pq($doc)->find($tag_str)->remove();
$html = pq($doc)->htmlOuter(); $html = pq($doc)->htmlOuter();
$doc->unloadDocument(); $doc->unloadDocument();
@ -396,10 +396,7 @@ class QueryList
} }
} }
class QueryList_Exception extends Exception{ /*
}
class Autoload class Autoload
{ {
public static function load($className) public static function load($className)
@ -420,3 +417,4 @@ class Autoload
spl_autoload_register(array('Autoload','load')); spl_autoload_register(array('Autoload','load'));
*/

View File

@ -4,6 +4,7 @@
"require": { "require": {
"PHP":">=5.3.0", "PHP":">=5.3.0",
"jaeger/phpquery-single": "^0.9.5", "jaeger/phpquery-single": "^0.9.5",
"jaeger/querylist-ext-aquery":"*",
"jaeger/curlmulti":"^1.0", "jaeger/curlmulti":"^1.0",
"jaeger/http":"^0.1" "jaeger/http":"^0.1"
}, },
@ -13,5 +14,10 @@
"name": "Jaeger", "name": "Jaeger",
"email": "hj.q@qq.com" "email": "hj.q@qq.com"
} }
] ],
"autoload":{
"psr-4":{
"QueryList\\":""
}
}
} }

View File

@ -1,19 +0,0 @@
<?php
/**
* @Author: Jaeger <hj.q@qq.com>
* @Date: 2015-11-11 17:52:40
* @Last Modified by: Jaeger
* @Last Modified time: 2015-11-16 09:57:56
* @version 1.0
* 扩展基类
*/
abstract class AQuery
{
abstract function run(array $args);
public function getInstance($className = 'QueryList', $params = null)
{
return QueryList::getInstance($className,$params);
}
}

View File

@ -1,44 +0,0 @@
<?php
/**
* @Author: Jaeger <hj.q@qq.com>
* @Date: 2015-11-11 17:52:40
* @Last Modified by: Jaeger
* @Last Modified time: 2015-11-16 09:57:58
* @version 1.0
* 模拟登陆扩展
*/
class Login extends Request
{
private $http;
public $html;
public function run(array $args)
{
$this->http = $this->hq($args);
$this->html = $this->http->result;
return $this;
}
public function get($url,$callback = null,$args = null)
{
$result = $this->http->get($url);
return $this->getQL($result,$callback,$args);
}
public function post($url,$data=array(),$callback = null,$args = null)
{
$result = $this->http->post($url,$data);
return $this->getQL($result,$callback,$args);
}
private function getQL($html,$callback = null,$args = null)
{
if(is_callable($callback)){
$result = call_user_func($callback,$result,$args);
}
$ql = $this->getInstance();
$ql->html = $html;
return $ql;
}
}

View File

@ -1,73 +0,0 @@
<?php
/**
* @Author: Jaeger <hj.q@qq.com>
* @Date: 2015-11-11 17:52:40
* @Last Modified by: Jaeger
* @Last Modified time: 2015-11-16 09:57:14
* @version 1.0
* 多线程扩展
*/
class Multi extends AQuery
{
public $curl;
private $args;
public function run(array $args)
{
$default = array(
'curl' => array(
'opt' => array(
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_AUTOREFERER => true,
),
'maxThread' => 100,
'maxTry' => 3
),
'list' => array(),
'success' => function(){},
'error' => function(){},
'start' => true
);
$this->args = array_merge($default,$args);
$this->curl = $this->getInstance('CurlMulti');
if(isset($this->args['curl'])){
foreach ($this->args['curl'] as $k => $v) {
$this->curl->$k = $v;
}
}
$this->add($this->args['list']);
return $this->args['start']?$this->start():$this;
}
public function add($urls,$success = false,$error = false)
{
if(!is_array($urls)){
$urls = array($urls);
}
foreach ($urls as $url) {
$this->curl->add(
array(
'url' => $url,
'args' => $this,
'opt' => array(
CURLOPT_REFERER => $url
)
),
$success?$success:$this->args['success'],
$error?$error:$this->args['error']
);
}
return $this;
}
public function start()
{
$this->curl->start();
return $this;
}
}

View File

@ -1,37 +0,0 @@
<?php
/**
* @Author: Jaeger <hj.q@qq.com>
* @Date: 2015-07-15 23:27:52
* @Last Modified by: Jaeger
* @Last Modified time: 2015-11-16 11:01:19
* @version 1.0
* 网络操作扩展
*/
class Request extends AQuery
{
protected function hq(array $args)
{
$args = array(
'http' => isset($args['http'])?$args['http']:$args,
'callback' => isset($args['callback'])?$args['callback']:'',
'args' => isset($args['args'])?$args['args']:''
);
$http = $this->getInstance('Http');
$http->initialize($args['http']);
$http->execute();
if(!empty($args['callback'])){
$http->result = call_user_func($args['callback'],$http->result,$args['args']);
}
return $http;
}
public function run(array $args)
{
$http = $this->hq($args);
$ql = $this->getInstance();
$ql->html = $http->result;
return $ql;
}
}