-
Notifications
You must be signed in to change notification settings - Fork 590
/
skycaiji.php
108 lines (107 loc) · 4 KB
/
skycaiji.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<?php
namespace plugin;
/**
* 方法整合,方便在插件中使用
* 使用:\plugin\skycaiji::方法名(参数)
*/
class skycaiji{
/**
* 调试输出内容
* @param mixed $data 任何数据
* @param bool $goOn 继续运行,默认终止
*/
public static function output($data,$goOn=false){
$data=print_r($data,true);
$data='<p>调试输出内容'.($goOn?'':'并终止运行').':</p><textarea style="width:100%;margin:5px 0;" rows="'.($goOn?5:20).'">'.htmlspecialchars($data).'</textarea>';
\util\Tools::collect_output($data,'black',$goOn?false:true);
}
/**
* 请求网址
* @param string $url 网址
* @param mixed $post (bool)post模式 或者 (array)post数据
* @param string $charset 网页编码,默认自动识别
* @param array $headers 头信息
* @param array $options 选项:timeout超时秒数,curlopts附加curl的选项值
* @return array 返回数组:(bool)success抓取成功,(int)code页面状态码,(string)header头信息,(string)content页面内容,(array)error错误,(array)info资源信息
*/
public static function curl($url,$post=null,$charset=null,$headers=array(),$options=array()){
$charset=$charset?$charset:'auto';//默认auto自动识别
$options=is_array($options)?$options:array();
$options['timeout']=$options['timeout']?:30;//超时时间(秒)
$options['return_info']=$options['return_info']?:1;//返回curl句柄信息
$options['return_body']=$options['return_body']?:1;//返回非成功状态的页面内容
$options['curlopts']=is_array($options['curlopts'])?$options['curlopts']:array();//curl的选项值列表,以CURLOPT_XXX为键名
$data=get_html($url,$headers,$options,$charset,$post,true);
$data=is_array($data)?$data:array();
$data=array(
'success'=>$data['ok']?true:false,
'code'=>intval($data['code']),
'header'=>$data['header']?:'',
'content'=>$data['html']?:'',
'error'=>$data['error']?:array(),
'info'=>$data['info']?:array(),
);
return $data;
}
/**
* 数据库对象
* @return \think\db\Query
*/
public static function db(){
return db();
}
/**
* 蓝天采集器的根目录
* @param string $filename 附加的文件名称
* @return string
*/
public static function root_path($filename=''){
$filename=isset($filename)?$filename:'';
return config('root_path').DIRECTORY_SEPARATOR.$filename;
}
/**
* 蓝天采集器根网址
* @param string $url 附加的网址
* @return string
*/
public static function root_url($url=''){
$url=isset($url)?$url:'';
return config('root_website').'/'.$url;
}
/**
* 数据文件目录
* @param string $filename 附加的文件名称
* @return string
*/
public static function data_path($filename=''){
$filename=isset($filename)?$filename:'';
return self::root_path('data'.DIRECTORY_SEPARATOR.$filename);
}
/**
* 应用程序目录
* @param string $filename 附加的文件名称
* @return string
*/
public static function app_path($filename=''){
$filename=isset($filename)?$filename:'';
return config('apps_path').DIRECTORY_SEPARATOR.$filename;
}
/**
* 插件文件目录
* @param string $filename 附加的文件名称
* @return string
*/
public static function plugin_path($filename=''){
$filename=isset($filename)?$filename:'';
return config('plugin_path').DIRECTORY_SEPARATOR.$filename;
}
/**
* 应用程序网址
* @param string $url 附加的网址
* @return string
*/
public static function app_url($url=''){
$url=isset($url)?$url:'';
return self::root_url('app/'.$url);
}
}