skycaiji.php 4.0 KB

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