本文目录一览:
- PHP 定时获取网页内容放到某变量中并显示出来
- phpcms网站建设中采集的方法,怎么样做采集
- PHP实现定时任务的几种方式
- php高手,dedecms(织梦)系统怎么弄才能做到(定时自动采集)求指导……谢谢……
- php采集大数据的方案
PHP 定时获取网页内容放到某变量中并显示出来
那你可以用 jQuery 的 ajax 方法,然后 PHP 负责读取的内容,然后返回结果,或者获取到此内容之后,通过 JS 来进行字符串分析。用 JS 做分析的例子是:
index.php
内容为:
<?php
$str = file_get_contents("");
echo $str;
?>
<script>
setInterval(function() {
$.getScript("index.php", function(){
var str = hq_str_hf_XAG;
var array = str.split(",");
var t = array[0];
$("#abc").val(t);
});
}, 1000 * 60);
</script>
<div id="abc"></div>
phpcms网站建设中采集的方法,怎么样做采集
工具/原料
- PHPCMS
- 文章采集器
方法/步骤
- 首先我们需要下载并安装 GBK 格式的 PHPCMS 系统。
- 下载 PHPCMS 和文章采集器的接口文件。
- 将
jiekou.php
文件复制到网站的根目录下,并用记事本打开该文件,修改“密码验证”栏目password
处的密码。 - 启动文章采集器,先点击【第三步发布内容设置】中的 "web发布管理配置"。
- 在弹出的【web发布配置管理】窗口中单击右侧的【更多】按钮,导入
phpcms9.wpm
配置模块,并选择该模块。 - 设置【web发布配置管理】中的编码设置、登录操作、获取分类栏目等选项。
- 单击【测试】按钮,在弹出的【发布配置测试】对话框中设置标签和内容的值,此项为必须设置,否则发布测试文章会失败。至此 PHPCMS 已经与文章采集器连接成功。
PHP 实现定时任务的几种方式
一、简单
<?php
ignore_user_abort(); // 关掉浏览器,PHP脚本也可以继续执行
set_time_limit(0); // 通过 set_time_limit(0) 可以让程序无限制的执行下去
ini_set('memory_limit','512M'); // 设置内存限制
$interval = 60 * 30; // 每隔半小时运行
do {
// ToDo
sleep($interval); // 等待5分钟
} while(true);
二、简单 可控型
config.php
:
<?php
return 1;
?>
cron.php
:
<?php
ignore_user_abort(); // 关掉浏览器,PHP脚本也可以继续执行
set_time_limit(0); // 通过 set_time_limit(0) 可以让程序无限制的执行下去
$interval = 60 * 30; // 每隔半小时运行
do {
$run = include 'config.php';
if(!$run) die('process abort');
// ToDo
sleep($interval); // 等待5分钟
} while(true);
三、简单 改进型
<?php
$time = 15;
$url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
sleep($time);
file_get_contents($url);
?>
php高手,dedecms(织梦)系统怎么弄才能做到(定时自动采集)求指导……谢谢……
这个系统是 PHP 写的,虽然 PHP 可以写计划任务的程序,但是他需要有人访问站点进行触发执行,否则他自己不会执行。
php采集大数据的方案
- 建议你读写数据和下载图片分开,各用不同的进程完成。
比如说,取数据用
get-data.php
,下载图片用get-image.php
。 - 多进程的话,PHP 可以简单的用
pcntl_fork()
。这样可以并发多个子进程。 但是我不建议你用fork
,我建议你安装一个gearman worker
。这样你要并发几个,就启几个 worker,写代码简单,根本不用在代码里考虑 thread 或 process 等等。 - 综上,解决方案如下:
- (1)安装 gearman worker。
- (2)写一个
get-data.php
,在 crontab 里设置它每 5 分钟执行一次,只负责读数据,然后把读回来的数据一条一条的扔到 gearman worker 的队列里; 再写一个处理数据的脚本作为 worker,例如叫process-data.php
,这个脚本常驻内存。它作为 worker 从 gearman 队列里读出一条一条的数据,然后跟你的数据库老数据比较,进行你的业务逻辑。如果你要 10 个并发,那就启动 10 个process-data.php
好了。处理完后,如果图片地址有变动需要下载图片,就把图片地址扔到 gearman worker 的另一个队列里。 - (3)再写一个
download-data.php
,作为下载图片的 worker,同样,你启动 10 个或 20 个并发随便你。这个进程也常驻内存运行,从 gearman worker 的图片数据队列里取数据出来,下载图片。
- 常驻进程的话,就是在代码里写个
while(true)
死循环,让它一直运行好了。如果怕内存泄露啥的,你可以每循环 10 万次退出一下。然后在 crontab 里设置,每分钟检查一下进程有没有启动,比如说这样启动 3 个process-data
worker 进程:
* * * * * flock -xn /tmp/process-data.1.lock -c '/usr/bin/php /process-data.php /dev/null 2>&1'
* * * * * flock -xn /tmp/process-data.2.lock -c '/usr/bin/php /process-data.php /dev/null 2>&1'
* * * * * flock -xn /tmp/process-data.3.lock -c '/usr/bin/php /process-data.php /dev/null 2>&1'
不知道你明白了没有。