Thinkphp3.2中添加phpfetcher(php爬虫插件)的问题

我想把phpfetcher插件添加到自己的项目当中,但是phpfetcher文件有点复杂,不知道用什么方式才能添加到自己的项目中,请大神们帮忙指点下吧,谢谢了。
截图:图片说明

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
php、thinkphp3.2分页实现
基于thinkphp3.2的分页,复制可直接使用。若是其他php框架或者原生php复制,修改sql的查询即可。
php(thinkphp3.2)实现定时任务
实现思路 利用Linux crontab计划任务调用sh脚本,在脚本里调用php
PHP微信支付Thinkphp3.2版本
PHP微信支付Thinkphp3.2版本
ThinkPhP3.2中图片添加,并生成缩略图
1:视图层:       人气值                       商品名称                       商品分类                   请选择        $value){ ?>           ">                            商
php基于thinkphp3.2导出excel
基于thinkphp3.2导出excel下载即用
php thinkphp3.2 框架的详细excel导出
只需要这两个放到Org下的Util里面,把PHPExcel.php改成PHPExcel.class.php,然后在前段写一个可以传表名到后端的标签 a也行 input也行; //导出 public function table_export(){ $t_name = I('get.C_cate'); $obj = M("t_数据库总结构2"); $tName = $...
ThinkPHP3.2
官方下载的ThinkPHP2.0,搜到就下吧,鄙视下载要分的,拿别人的opensource好意思吗
thinkPHP3.2
PHPExcel批量导入功能,批量add返回数组,数组长度就是行数
php爬虫问题
用curl怎么获取手机店铺首页的hmtl代码rnhttp://shop.m.taobao.com/shop/shopIndex.htm?shop_id=60156258
thinkphp3.2
最近新推了thinkphp3.2版本的.是thinkphp3.1.2的改进版.主要增加了模块化、驱动化和云平台.
ThinkPHP3.2中关联查询
[code=sql]CREATE TABLE `test_avatar` (rn `uid` int(11) unsigned NOT NULL DEFAULT '0',rn `avatar` varchar(255) NOT NULL DEFAULT '',rn PRIMARY KEY (`uid`)rn) ENGINE=MyISAM DEFAULT CHARSET=utf8;rnINSERT INTO `test_avatar` VALUES (1,'./Uploads/admin.jpg');rnrnCREATE TABLE `test_pro` (rn `id` int(11) unsigned NOT NULL AUTO_INCREMENT,rn `uid` int(11) unsigned NOT NULL DEFAULT '0',rn `name` varchar(255) NOT NULL DEFAULT '',rn PRIMARY KEY (`id`)rn) ENGINE=MyISAM DEFAULT CHARSET=utf8;rnINSERT INTO `test_pro` VALUES (1,1,'产品1'),(2,1,'产品2');rnrnCREATE TABLE `test_user` (rn `id` int(11) unsigned NOT NULL AUTO_INCREMENT,rn `username` varchar(50) NOT NULL DEFAULT '',rn `tel` int(11) unsigned NOT NULL DEFAULT '0',rn PRIMARY KEY (`id`)rn) ENGINE=MyISAM DEFAULT CHARSET=utf8;rnINSERT INTO `test_user` VALUES (1,'admin',110);[/code]rn如上三个表:用户头像表、产品表、用户表rn怎样在模型中建立关联?rn[code=php]class ProModel extends RelationModelrnrn protected $_link=array(rn 'Avatar'=>array(rn 'mapping_type'=>self::HAS_ONE,rn 'class_name'=>'Avatar',rn 'foreign_key'=>'uid',rn 'mapping_fields'=>'avatar',rn 'as_fields'=>'avatar',rn ),rn )rn[/code]rn试过用HAS_ONE、BELONGS_TO、HAS_MANY、MANY_TO_MANY都不行,求大神指点
php爬虫
首先需要手动登陆获取cookie,代码登陆有验证码 public function actionIndex() { $cookie ="XXX"; header("Content-type:text/html;charset=utf-8"); //$data=‘XXX'; $curlobj = curl_init(); ...
【爬虫】Chrome 浏览器爬虫插件
插件地址:https://www.pullywood.com/publish/archive/imageassistant_a_powerful_tool_for_extracting_web_images.html
php 爬虫
http://202.114.18.218/Main.aspx 这是一个电费查询网站,但老是想不到怎么抓取(其中的宿舍楼什么的随便输入),求大神帮助[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/onion/3.gif][/img]
简单的php中的curl爬虫
$ch = curl_init(); // 2. 设置选项,包括URL curl_setopt($ch,CURLOPT_URL,"http://www.kugou.com/");//要抓取的网址 == curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_HEADER,0); // 3. 执行并获取HTML文档内容 $...
ThinkPHP3.2版本命名空间问题
在IndexController类调用一个方法,而这个方法里面需要初始化一个Model对象,而这个Model对象我是在Model类下定义,需要添加命名空间。可是一个类又不能两个命名空间啊,初学ThinkPHP,不太懂命名空间。rn[code=php]1),"html",false,"localhost"); rn rn rn rn public function user()rn //1.实例化基础模型modelrn //$user=new Model('user');//表名,表前缀,数据库连接信息rn /* $user=M('user');rn $data=$user->select();rn dump($data); */rn //2.实例化用户自定义模型\rn rn //!!!!!!就是这儿rn $user=new \Home\Model\UserModel;rn echo $user->getinfo();rn //3.实例化公共模型rn //4.实例化空模型rn rn rn[/code]
ThinkPHP3.2 使用 PHPExce插件 实现 数据导出 功能
步骤一:下载PHPExcel插件,并将PHPExcel核心文件引入TP项目中:步骤二:在html页面写个超链接<a></a> 来访问后台控制器中导出Excel的方法步骤三:在后台创建ExcelController.class.php控制器        1.引入PHPExcel                2.在ExcelController控制中编写export_exc...
Thinkphp3.2使用问题
在控制器中调用common下的function.php方法,直接$a=functionname();
thinkphp3.2 include标签遇到的问题
使用include标签时,遇到效果显示不出来,特查阅了手册: 使用完整文件名包含 格式: 例子: 这种方式,指的是服务器端包含(服务器端路径),而不是包含一个 URL 地址。如果使用相对路径的话,是基于项目入口文件位置而言。 注意:该种方式模板文件名必须包含后缀。
thinkphp3.2 mvc模式问题
文件:IndexController.classs.php rnrnget_one();rn dump($sql_db);rnrn rnrnrn文件:UserModel.class.phprn
Thinkphp3.2 如何添加图片水印 、生成二维码推广图
核心代码及其解释:   $image = new \Think\Image(); $image->open('./1.jpg'); //将图片裁剪为440x440并保存为corp.jpg $image->crop(440, 440)->save('./crop.jpg'); // 给裁剪后的图片添加图片水印(水印文件位于./logo.png),位置为右下角,保存为w...
ThinkPHP3.2 图片添加水印流程代码
代码:function water_test(){ //1.实例化Image类 $img = new \Think\Image(); //2.调用open方法,载入图片 $img->open('./Uploads/kebi.jpg'); //3.调用water方法添加水印 //参数1:水印图片路径 //参数2:水印位置 ...
MAMP下 添加插件问题例如 pcntl & php升级问题
1.make时候遇到 php.h not found,这种情况只要 xcode --select 即可 2.make时候遇到 error: unknown type name 'zend_long';或者 error: unknown type name 'zend_string';是因为MAMP用的7.0,而Mac系统本身是5.6,所以要保持两者的统一,此时就需要升级 Mac系统本身的
PHP编写爬虫遇到的问题
编写了一个爬取豆瓣图书信息到数据库的爬虫,编写过程中遇到许多问题。 写出来作为学习笔记,以及对全部所用到的知识点的总结。 一、PHP脚本最大执行时间 和 最大执行内存 二、PHP缓存机制 缓冲区buffer ob_flush 和 flush的区别 三、PHP curl代理模式设置与使用 HTTP请求头信息设置 代理ip设置 四、Apache工作模式和最大并发请求数设置 工作模式分别有:be...
eclipse3.1 的PHP插件问题
昨天下载了eclipse3.1想 把PHP整合进去试试,GOOGLE了一下,发现所有文章都一个样,我的PHP、MYSQL是分开装的,我想用那个杂七杂八都放一起的安装包,然后按照上面所说把PHP的插件解压到eclipse的plugins目录里文件夹为:net.sourceforge.phpeclipse.debug.ui、net.sourceforge.phpeclipse.launching、net.sourceforge.phpeclipse.nl1、net.sourceforge.phpeclipse.phphelp、net.sourceforge.phpeclipse.phphelp.nl1、net.sourceforge.phpeclipse.sql、net.sourceforge.phpeclipse213、net.sourceforge.phpeclipse.debug.corern但是我启动时却没有找到有PHP的项目栏,那些文章里说很容易的,我不知道是不是这么做就完了,其他还要做什么吗?
mac 上给php添加php-pcntl插件
git clone https://github.com/lixuancn/MeepoPS.git 2 启动服务 sudo php demo-telnet.php start 出现以下提示,已经创建了目录但是这个目录需要root权限 No log handling enabled - using stderr logging Created directory: /var
关于在word中添加插件的问题
我在word中添加一个菜单"Sunpro",并在该菜单下添加一菜单项rn以上都成功了,可是问题出现了rn打开第一个word,一切正常.打开第二个word时,发现它没有重新执行OnConnectionrn就是说菜单项的事件没有驱动rn出现这种情况的原因是什么不是很清楚,不知道大家是否有解决的办法rn还望指教
PHP添加时候的问题
程序如下rn$a=$database->DataQuery("Insert Into ks_rolerightstype (Number,Title,Smod) VALUES ('$Ipt_Number','$Ipt_Title','S')");rn echo "Insert Into ks_rolerightstype (Number,Title,Smod) VALUES ('$Ipt_Number','$Ipt_Title','S') ";rn if($a)rn rn echo "添加成功";rn rn elsern rn echo "添加失败";rn rnrnrn输出为:rnInsert Into ks_rolerightstype (Number,Title,Smod) VALUES ('04','dsaf','S')rn添加成功 rnrn但是数据并没有加入到数据库中,请问下是什么原因啊rn如果直接在$Ipt_Number这个变量这里直接使用“04”的值,就能添加到数据库中
php的图库添加问题?
我想在php 中的 加入图库在phpv.ini中将php_gb.dll打开了并且添加了php_gb.dllrn但显示Call to undefined function: imagecreate() 我的php Version 4.0.5rn是否php_gb.dll不配套呢?
PHP添加域名的问题?
首先我改host文件rn127.0.0.1 localhostrn127.0.0.1 spxrn这样的话,在输入入栏中输入spx也是进入到localhost下rn我现在想输入localhost进入到APACHE设置的www目录下rn输入spx就进入到F:/spx下,我在网站找了好多资料都不行rn谢谢大家了。。。。
php 添加数据库的问题
我用的是fck编辑器,当在内容中有单引号时,添加就会出错,应该怎么办呢
ThinkPHP3.2 集成 php-resque: PHP Resque Worker
ThinkPHP3.2 集成 php-resque: PHP Resque Worker =========================================== php-resque是php环境中一个轻量级的队列服务。具体队列服务是做什么用的,请自行百度! ## 运行环境 ## * PHP 5.2+ * Redis 2.2+ ## 集成方法 ## ### 将源码放到ThinkPHP的Vendor目录中 ### 将源码更新到 ThinkPHP/Library/Vendor/php-resque/ 目录中 <font color=red>注意要定义应用目录,之前发的内容没定义应用目录导致部分小伙伴引发了找不到Queue类的异常</font> ### 在项目根目录中创建resque入口脚本 ### #!/usr/bin/env php &lt;?php ini_set('display_errors', true); error_reporting(E_ERROR); set_time_limit(0); // 定义应用目录 define('APP_PATH','./Application/'); define('MODE_NAME', 'cli'); // 自定义cli模式 define('BIND_MODULE', 'Home'); // 绑定到Home模块 define('BIND_CONTROLLER', 'Queue'); // 绑定到Queue控制器 define('BIND_ACTION', 'index'); // 绑定到index方法 // 处理自定义参数 $act = isset($argv[1]) ? $argv[1] : 'start'; putenv("Q_ACTION={$act}"); putenv("Q_ARGV=" . json_encode($argv)); require './ThinkPHP/ThinkPHP.php'; ### 创建Queue控制器 ### 在`Home`模块的`Controller`中创建`Queue`控制器 &lt;?php namespace Home\\Controller; if (!IS_CLI) die('The file can only be run in cli mode!'); use Exception; use Resque; /*** * queue入口 * Class Worker * @package Common\\Controller */ class QueueController { protected $vendor; protected $args = []; protected $keys = []; protected $queues = '*'; public function __construct() { vendor('php-resque.autoload'); $argv = json_decode(getenv('Q_ARGV')); foreach ($argv as $item) { if (strpos($item, '=')) { list($key, $val) = explode('=', $item); } else { $key = $val = $item; } $this-&gt;keys[] = $key; $this-&gt;args[$key] = $val; } $this-&gt;init(); } /** * 执行队列 * 环境变量参数值: * --queue|QUEUE: 需要执行的队列的名字 * --interval|INTERVAL:在队列中循环的间隔时间,即完成一个任务后的等待时间,默认是5秒 * --app|APP_INCLUDE:需要自动载入PHP文件路径,Worker需要知道你的Job的位置并载入Job * --count|COUNT:需要创建的Worker的数量。所有的Worker都具有相同的属性。默认是创建1个Worker * --debug|VVERBOSE:设置“1”启用更啰嗦模式,会输出详细的调试信息 * --pid|PIDFILE:手动指定PID文件的位置,适用于单Worker运行方式 */ private function init() { $is_sington = false; //是否单例运行,单例运行会在tmp目录下建立一个唯一的PID // 根据参数设置QUEUE环境变量 $QUEUE = in_array('--queue', $this-&gt;keys) ? $this-&gt;args['--queue'] : '*'; if (empty($QUEUE)) { die("Set QUEUE env var containing the list of queues to work.\n"); } $this->queues = explode(',', $QUEUE); // 根据参数设置INTERVAL环境变量 $interval = in_array('--interval', $this->keys) ? $this->args['--interval'] : 5; putenv("INTERVAL={$interval}"); // 根据参数设置COUNT环境变量 $count = in_array('--count', $this->keys) ? $this->args['--count'] : 1; putenv("COUNT={$count}"); // 根据参数设置APP_INCLUDE环境变量 $app = in_array('--app', $this->keys) ? $this->args['--app'] : ''; putenv("APP_INCLUDE={$app}"); // 根据参数设置PIDFILE环境变量 $pid = in_array('--pid', $this->keys) ? $this->args['--pid'] : ''; putenv("PIDFILE={$pid}"); // 根据参数设置VVERBOSE环境变量 $debug = in_array('--debug', $this->keys) ? $this->args['--debug'] : ''; putenv("VVERBOSE={$debug}"); } public function index() { $act = getenv('Q_ACTION'); switch ($act) { case 'stop': $this->stop(); break; case 'status': $this->status(); break; default: $this->start(); } } /** * 开始队列 */ public function start() { // 载入任务类 $path = COMMON_PATH . "Job"; $flag = \FilesystemIterator::KEY_AS_FILENAME; $glob = new \FilesystemIterator($path, $flag); foreach ($glob as $file) { if('php' === pathinfo($file, PATHINFO_EXTENSION)) require realpath($file); } $logLevel = 0; $LOGGING = getenv('LOGGING'); $VERBOSE = getenv('VERBOSE'); $VVERBOSE = getenv('VVERBOSE'); if (!empty($LOGGING) || !empty($VERBOSE)) { $logLevel = Resque\Worker::LOG_NORMAL; } else { if (!empty($VVERBOSE)) { $logLevel = Resque\Worker::LOG_VERBOSE; } } $APP_INCLUDE = getenv('APP_INCLUDE'); if ($APP_INCLUDE) { if (!file_exists($APP_INCLUDE)) { die('APP_INCLUDE (' . $APP_INCLUDE . ") does not exist.\n"); } require_once $APP_INCLUDE; } $interval = 5; $INTERVAL = getenv('INTERVAL'); if (!empty($INTERVAL)) { $interval = $INTERVAL; } $count = 1; $COUNT = getenv('COUNT'); if (!empty($COUNT) && $COUNT > 1) { $count = $COUNT; } if ($count > 1) { for ($i = 0; $i < $count; ++$i) { $pid = pcntl_fork(); if ($pid == -1) { die("Could not fork worker " . $i . "\n"); } // Child, start the worker else { if (!$pid) { $worker = new Resque\Worker($this->queues); $worker->logLevel = $logLevel; fwrite(STDOUT, '*** Starting worker ' . $worker . "\n"); $worker->work($interval); break; } } } } // Start a single worker else { $worker = new Resque\Worker($this->queues); $worker->logLevel = $logLevel; $PIDFILE = getenv('PIDFILE'); if ($PIDFILE) { file_put_contents($PIDFILE, getmypid()) or die('Could not write PID information to ' . $PIDFILE); } fwrite(STDOUT, '*** Starting worker ' . $worker . "\n"); $worker->work($interval); } } /** * 停止队列 */ public function stop() { $worker = new Resque\Worker($this->queues); $worker->shutdown(); } /** * 查看某个任务状态 */ public function status() { $id = in_array('--id', $this->keys) ? $this->args['--id'] : ''; $status = new \Resque\Job\Status($id); if (!$status->isTracking()) { die("Resque is not tracking the status of this job.\n"); } echo "Tracking status of " . $id . ". Press [break] to stop.\n\n"; while (true) { fwrite(STDOUT, "Status of " . $id . " is: " . $status->get() . "\n"); sleep(1); } } } ### 新增队列配置 ### 在公共`config.php`中新增队列配置,如下 /* 消息队列配置 */ 'QUEUE' => array( 'type' => 'redis', 'host' => '127.0.0.1', 'port' => '6379', 'persistent' => false, //是否启用 'prefix' => 'queue', 'password' => '', // 密码 ), ### 新增队列初始化行为 ### 在`app_init`行为中新增队列初始化的行为,`run`内容为 public function run() { // 处理队列配置 $config = C('QUEUE'); if ($config) { vendor('php-resque.autoload'); // 初始化队列服务 $select = isset($config['select']) ? $config['select'] : 0; $password = isset($config['password']) ? $config['password'] : null; $persistent = isset($config['persistent']) ? $config['persistent'] : false; $timeout = isset($config['timeout']) ? $config['timeout'] : 30; $server = $config['host'] . ":" . $config['port']; \Resque::setBackend($server, $select, $password, $persistent, $timeout); // 初始化缓存前缀 if(isset($config['prefix']) && !empty($config['prefix'])){ \Resque\Redis::prefix($config['prefix']); } } } 到此,整个队列服务基本已配置完成。 接下来就要创建队列执行的任务了 ## Jobs ## ### 创建 Jobs ### 目前任务类固定在`Common`模块的`Job`中,命名格式为`XxxxJob.class.php` &lt;?php namespace Common\Job; class XxxxJob { public function perform() { $args = $this->args; fwrite(STDOUT, json_encode($args) . PHP_EOL); } } 要获取队列中传入的参数值请使用`$this->args` 任务perform方法中抛出的任何异常都会导致任务失败,所以在写任务业务时要小心,并且处理异常情况。 任务也有`setUp`和`tearDown`方法,如果定义了一个`setUp`方法,那么它将在`perform`方法之前调用,如果定义了一个`tearDown`方法,那么它将会在`perform`方法之后调用。 &lt;?php namespace Common\Job; class XxxxJob { public function setUp() { // ... Set up environment for this job } public function perform() { // .. Run job } public function tearDown() { // ... Remove environment for this job } } ### 添加任务到队列中 ### 在程序控制器的任意方法中引入队列类库时,使用`Resque::enqueue`方法执行入栈,`Resque::enqueue`方法有四个参数,第一个是当前的队列名称,第二个参数为任务类,第三个是传入的参数,第四个表示是否返回工作状态的令牌 vendor('php-resque.autoload'); // 引入队列类库 $job = '\\Common\\Job\\XxxxJob'; // 定义任务类 // 定义参数 $args = array( 'time' => time(), 'array' => array( 'test' => 'test', ), ); // 入栈 $jobId = \Resque::enqueue('default', $job, $args, true); echo "Queued job ".$jobId."\n\n"; 如果要查看当前任务的工作状态可以使用如下方法: $status = new \Resque\Job\Status($jobId); echo $status->get(); // Outputs the status 任务的工作状态值有专门的常量``\Resque\Job\Status``对应类。 具体的对应关系如下: * `Resque\Job\Status::STATUS_WAITING` - 任务在队列中 * `Resque\Job\Status::STATUS_RUNNING` - 任务正在运行 * `Resque\Job\Status::STATUS_FAILED` - 任务执行失败 * `Resque\Job\Status::STATUS_COMPLETE` - 任务执行完成 * `false` - 无法获取状态 - 检查令牌是否有效? 任务的过期时间为任务完成后的24小时后,也可以定义过期类的`stop()`方法 ## 队列任务启动 ## 在命令行中转到项目根目录,执行 $ php resque start 即可启动服务 启动时也可以加入部分参数: * `--queue` - 需要执行的队列的名字,可以为空,也可以多个以`,`分割 * `--interval` -在队列中循环的间隔时间,即完成一个任务后的等待时间,默认是5秒 * `--count` - 需要创建的Worker的数量。所有的Worker都具有相同的属性。默认是创建1个Worker * `--debug` - 设置“1”启用更啰嗦模式,会输出详细的调试信息 * `--pid` - 手动指定PID文件的位置,适用于单Worker运行方式 如: $ php resque start --queue=default --pid=/tmp/resque.pid --debug=1 如果要使用守护进程方式启动则需要在最后加入`&`即可 如: $ php resque start --queue=default --pid=/tmp/resque.pid --debug=1 & 也可以配合supervisord实现进程长驻 更多的操作请参考php-resque官方文档。
Thinkphp3.2中解决插入相同数据的问题
解决插入相同数据的问题;ON DUPLICATE KEY UPDATE;`REPLACE INTO `;`ON DUPLICATE KEY UPDATE`与`REPLACE INTO `区别;Thinkphp3.2中解决插入相同数据问题;
ThinkPHP3.2中预定义常量解析
在HOME模块下的Controller文件下直接创建TravelController.class.php文件。代码如下:<?php namespace Home\Controller; use Think\Controller; class TravelController extends Controller{ public function index()
Eclipse中添加SVN插件
在进入公司后基本上都会使用SVN这类的中间件,使用这些中间件的好处我就不多说了,本章主要介绍如何在Eclipse中快速安装SVN; Eclipse中添加SVN插件 只要按着图中的点点点,很快就会安装成功哦~ 此步骤中Name栏的值可以任意填写,知识用于存放下载的SVN文件的,Location则是填写卸载SVN插件的地址,其地址是:http://subclipse.tigris.org/upda...
在IntelliJ中添加MarkDown编辑插件
本地安装 1) 版本选择,下载Zip包; 2) 安装: File → Plugins → Install plugin from desktop →选择Zip包→Apply; 3) 重启InstalliJ 4) 添加文件类型:File → Editor → FileTypes →在Recognized File Type中选择Markdown Language →在...
前端动效插件。。。。添加中
snabbt.js
在Eclipse中添加插件的方法
eclipse3.2.1插件rnhelp->software updates->find and installrnrnadd new remote siternrnName: Subclipse 1.2.x (Eclipse 3.2或更高)rnURL: http://subclipse.tigris.org/update_1.2.x
eclipse中添加pydev插件
不想安装太多的IDE软件,想在已有的eclipse软件中编写python代码,只要在eclipse中添加pydev插件就可以了(虽然这个过程不是那么的顺利)。 1.下载pydev插件 在eclipse中在线下载添加每次都不成功,所以直接放弃。选择手动下载,链接https://sourceforge.net/projects/pydev/files/pydev/,选择适合已安装的eclipse和...
在sublime中添加rainmeter插件
在网站http://merlinthered.github.io/sublime-rainmeter/下载Rainmeter.sublime-package文件,放到sublime安装路径下的Data\Installed Packages文件夹中即可。
相关热词 c# 线程结束时执行 c# kb mb 图片 c# 替换第几位字符 c#项目决定成败 c# 与matlab c# xml缩进 c#传感器基础 c#操作wps c# md5使用方法 c# 引用父窗口的组件