如何离线执行php任务

 更新时间:2017年7月6日 23:49  点击:1713
本文介绍了如何离线执行php任务,非常实用,有兴趣的同学快看看吧

直接上代码,主要函数

ignore_user_abort(true);

这个函数忽略了终端被关闭(打开的网页被关闭),后面

getfiles()这函数是执行采集任务的自定义函数,后面又配置了下路径

打开写好的页面,关闭,后面发现任务都能执行完成,有兴趣的可以试试。

 代码如下 复制代码

<?php

//设置忽略是否关闭终端窗口

ignore_user_abort(true);

ini_set('max_execution_time','0');

//采集页面函数,看不懂执行百度curl php

functiongetfiles($url,$name){

  $name=$name.".txt";

  $ch= curl_init("$url");

  $fp=fopen("$name","w");

  curl_setopt($ch, CURLOPT_FILE,$fp);

  curl_setopt($ch, CURLOPT_HEADER, 0);

  curl_exec($ch);

  curl_close($ch);

  fclose($fp);

  sleep(5);

  echo'<script>window.close();</script>';

}

//配置需要采集的页面路径数组

$urls=array(

  'http://www.cnblogs.com/jianqingwang/p/6373168.html',

  'http://www.cnblogs.com/jianqingwang/p/6148644.html',

  'http://www.61916.com/news_view_2423.html',

  'http://blog.sina.com.cn/s/blog_8e326c350102w1ah.html',

  'http://www.w3school.com.cn/php/func_misc_ignore_user_abort.asp',

  'http://xinwen.eastday.com/a/170219205305597.html',

  'http://society.huanqiu.com/article/2017-02/10162630.html?from=bdwz',

  'http://www.cankaoxiaoxi.com/roll10/bd/20170220/1699670.shtml',

  'http://news.china.com/socialgd/10000169/20170220/30266284.html',

  'http://news.k618.cn/society/201702/t20170220_10368740.html',

  'http://fj.qq.com/a/20170218/029521.htm'

);

//遍历数组

foreach($urlsas$key=>$val){

  getfiles($val,$key);

}

?>

本文给大家推荐的这篇文章介绍了thinkphp项目如何自定义微信分享描述内容,非常实用,有兴趣的同学可以看看。

本文主要讲述:在thinkphp框架中,如何获取微信分享接口权限、如何设置安全域名、如何修改微信分享标题、修改微信分享描述、修改微信分享图片、如何定制微信分享内容。

修改后的示例:http://games.zixuephp.cn

下面是修改微信分享标题、微信分享描述、微信分享图片和不修改的效果对比图:

没有修改的微信分享效果图:其中分享内容是分享的页面的url路径。

修改过微信分享内容的效果如下图:分享内容为自己定制的内容。

1、必要条件:认证过的公众号。

2、在微信公众号管理后台中,点击公众号设置,进入功能设置,选择JS接口安全域名,下载txt格式的认证文件放在网站根目录中,然后回到公众号后台管理页面,确定认证,填写有分享的站点的域名,保存即可。

3、下载微信jssdk接口文件包。下载地址:链接:http://pan.baidu.com/s/1eStCSXc 密码:1p8k

4、将微信jssdk接口文件包配置到thinkphp扩展目录中,即配置到thinkphp/Extend/Vendor/目录下。

5、从微信公众号后台获取微信公众号的appid和appsecret,并配置到thinkphp的配置文件中。

6、在thinkphp的common.php文件中定义好微信初始化函数:(下图案例中的参数应该是从配置文件中获取)

7、在需要使用到自定义微信分享内容的类文件中,定义好微信分享内容,然后传递到模板页面:

其中: 是自定义标题,brief是自定义的微信分享描述内容,picture是自定义微信分享图片路径, 是自定义分享内容被点击后指向的链接地址。

8、然后是在页面中引入js文件及使用配置参数:

小编推荐的这篇文章介绍了phpstudy默认不支持64位php的解决方法,非常实用,有兴趣的同学快来看看吧。

备忘一下:

windows上用phpstudy比较简便,但是其默认的php所有版本都是32位的,有坑,比如int最大值。

所以从php官网 点击打开链接http://windows.php.net/download#php-7.0-nts-VC14-x64 , 下载一个64位的php7丢到phpstudy的php目录下面去(和其他版本一起的那个目录);

丢进去之后,把名字改短一点,停掉并重启phpstudy,会自动加载刚丢进去的php版本,切换过来即可。

我用的是nginx+php,其他类型如APACHE, IIS 等 未尝试

注意:PHP官网指出来了,只有7以上才支持64位,以前的都是32位的

x86_64 Builds

The x64 builds of PHP 5 for Windows are experimental, and do not provide 64-bit integer or large file support.

PHP 7 provides full 64-bit support. The x64 builds of PHP 7 support  native 64-bit integers, LFS, 64-bit memory_limit and much more.

本文简单谈了php文件锁,对初学php的同学来说非常有用,大家可以看看

锁机制之所以存在是因为并发导致的资源竞争,为了确保操作的有效性和完整性,可以通过锁机制将并发状态转换成串行状态。作为锁机制中的一种,PHP的文件锁也是为了应对资源竞争。假设一个应用场景,在存在较大并发的情况下,通过fwrite向文件尾部多次有序的写入数据,不加锁的情况下会发生什么?多次有序的写入操作相当于一个事务,我们此时需要保证这个事务的完整性。

如果我们有两个程序同时向某个文件中写入数据,为了保证数据的完整性,可以加一个文件锁,先让程序1执行,程序1执行完后,解锁,再让程序2执行。实现代码如下:

 

 代码如下复制代码

$fp=fopen('test.txt',"a");

$count= 10;

if(flock($fp, LOCK_EX)) {

for($i=1;$i<$count;$i++){

fwrite($fp,'text2_'.$i."rn");

echo"test2".date('h:i:s') . "

";

sleep(1);

echo"test2".date('h:i:s');

}

flock($fp, LOCK_UN);

}else{

echo"Couldn't lock the file !";

}

fclose($fp);

 

[!--infotagslink--]

相关文章

  • 源码分析系列之json_encode()如何转化一个对象

    这篇文章主要介绍了源码分析系列之json_encode()如何转化一个对象,对json_encode()感兴趣的同学,可以参考下...2021-04-22
  • php中去除文字内容中所有html代码

    PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了 经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。...2013-08-02
  • For循环中分号隔开的3部分的执行顺序探讨

    引发这个问题思考的是一段js程序的运行结果: 复制代码 代码如下: var i = 0; function a(){ for(i=0;i<20;i++){ } } function b(){ for(i=0;i<3;i++){ a(); } return i; } var Result = b(); 这段程序的运行结果是Re...2014-05-31
  • index.php怎么打开?如何打开index.php?

    index.php怎么打开?初学者可能不知道如何打开index.php,不会的同学可以参考一下本篇教程 打开编辑:右键->打开方式->经文本方式打开打开运行:首先你要有个支持运行PH...2017-07-06
  • Java使用ScriptEngine动态执行代码(附Java几种动态执行代码比较)

    这篇文章主要介绍了Java使用ScriptEngine动态执行代码,并且分享Java几种动态执行代码比较,需要的朋友可以参考下...2021-04-15
  • PHP中func_get_args(),func_get_arg(),func_num_args()的区别

    复制代码 代码如下:<?php function jb51(){ print_r(func_get_args()); echo "<br>"; echo func_get_arg(1); echo "<br>"; echo func_num_args(); } jb51("www","j...2013-10-04
  • Vue.js中轻松解决v-for执行出错的三个方案

    v-for标签可以用来遍历数组,将数组的每一个值绑定到相应的视图元素中去,下面这篇文章主要给大家介绍了关于在Vue.js中轻松解决v-for执行出错的三个方案,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。...2017-06-15
  • PHP编程 SSO详细介绍及简单实例

    这篇文章主要介绍了PHP编程 SSO详细介绍及简单实例的相关资料,这里介绍了三种模式跨子域单点登陆、完全跨单点域登陆、站群共享身份认证,需要的朋友可以参考下...2017-01-25
  • PHP实现创建以太坊钱包转账等功能

    这篇文章主要介绍了PHP实现创建以太坊钱包转账等功能,对以太坊感兴趣的同学,可以参考下...2021-04-20
  • c#源码的执行过程详解

    在本篇文章中给大家详细讲述了c#源码的执行过程,对此有需要的朋友们可以学习下。...2020-06-25
  • php微信公众账号开发之五个坑(二)

    这篇文章主要为大家详细介绍了php微信公众账号开发之五个坑,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-10-02
  • PHP如何通过date() 函数格式化显示时间

    这篇文章主要介绍了PHP如何通过date() 函数格式化显示时间,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-11-13
  • ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单

    首先是数据库的设计。分类表叫cate.我做的是分类数据的二级联动,数据需要的字段有:id,name(中文名),pid(父id). 父id的设置: 若数据没有上一级,则父id为0,若有上级,则父id为上一级的id。数据库有内容后,就可以开始写代码,进...2014-05-31
  • golang与php实现计算两个经纬度之间距离的方法

    这篇文章主要介绍了golang与php实现计算两个经纬度之间距离的方法,结合实例形式对比分析了Go语言与php进行经纬度计算的相关数学运算技巧,需要的朋友可以参考下...2016-07-29
  • Unity延时执行的多种方法小结

    本文主要介绍了4种延时执行的方法,主要包括Update计时器,Invoke,协程,DoTween,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-07-07
  • C#利用ScriptControl动态执行JS和VBS脚本

    C#中利用ScriptControl动态执行JS和VBS脚本的实现方法,需要的朋友可以参考下...2020-06-25
  • PHP正则表达式过滤html标签属性(DEMO)

    这篇文章主要介绍了PHP正则表达式过滤html标签属性的相关内容,实用性非常,感兴趣的朋友参考下吧...2016-05-06
  • php构造方法中析构方法在继承中的表现

    这篇文章主要为大家详细介绍了php构造方法中析构方法在继承中的表现,感兴趣的小伙伴们可以参考一下...2016-04-15
  • thinkPHP中多维数组的遍历方法

    这篇文章主要介绍了thinkPHP中多维数组的遍历方法,以简单实例形式分析了thinkPHP中foreach语句的使用技巧,需要的朋友可以参考下...2016-01-12
  • PHP如何使用cURL实现Get和Post请求

    这篇文章主要介绍了PHP如何使用cURL实现Get和Post请求,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-07-11