前公司吃饭是需要在钉钉报餐的,对于不挑剔的我每天都在公司吃饭,有时忘记报餐导致吃不了饭还是很麻烦的。看了下报餐系统需要的是json数据包含我的工号即可。于是编写如下代码,放在360网址监控,1小时执行1次
<?php /*自动报餐类*/ class AutoBaocan{ private $url; private $data; //构造方法初始化 function __construct($url,$data){ $this->url=$url; $this->data=$data; } //(1).创建会话,返回会话 public function newcurl(){ $ch=curl_init();//初始会话 curl_setopt($ch,CURLOPT_POST,1);/*Post模式*/ curl_setopt($ch,CURLOPT_URL,$this->url);/*URl设置*/ curl_setopt($ch,CURLOPT_POSTFIELDS,$this->data);/*Json数据*/ curl_setopt($ch,CURLOPT_HTTPHEADER,array( 'Content-Type: application/json; charset=gb2312', 'Content-Length: ' . strlen($this->data) )); return $ch; } //(2).利用会话句柄,发送Json,返回状态和文本 public function postjson($ch){ //开启缓存区 ob_start(); //执行CURL会话 curl_exec($ch); //获取缓冲区的内容 $return_content=ob_get_contents(); //关闭缓冲区 ob_end_clean(); //获取资源句柄的信息 $return_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); return array($return_code, $return_content); } } /*类结束*/ //设置参数 $url = "http://weixin.xajlnkyjy.com/lswyjishu/renshi.php/Bcdingding/baocan"; /*目标URL*/ $info = array ( shangwu=>'吃', xiawu=>'吃', jobnumber=>'0209060334387389791', ename=>'高久峰', deptname=>'安康项目组' ); $data = json_encode($info);/*Json数据*/ //实例化 $Baocan=new AutoBaocan($url,$data); //执行发送json $result=$Baocan->postjson($Baocan->newcurl()); //生成日志 file_put_contents('log.txt',$result[0]."--".$result[1]."\r\n",FILE_APPEND); ?>
项目中使用服务来执行webservice,由于对方系统api不稳定,经常导致服务崩溃,只能重启,一个月差不多要重启一次。初期的解决办法是捕获异常,然后continue掉。<?php try { $url = 'http...
【一】.介绍session由于HTTP是无状态的请求,创建一个会话需要保持必须需要身份标识。当用户第一次访问,PHP会为用户创建一个唯一的sessionid,并将sessionid通过cookie发送给浏览器,并在服务器的临时文件创建一个以sessionid为名的文件用来保存这个sessionid保...
(1).学习的目标:学会创建父子进程,并且能够区分当前进程是父还是子;了解父进程执行过程,子进程执行过程;能够用多进程执行任务(2).相关函数学习: (2.1)pcntl_fork()执行时: &nbs...
参数中包含gb2312的字符串,返回结果是false或者null(不同PHP版本具有差异性)代码:<?php $dbms = 'mysql'; $host = '192.168.8.8'; $dbName =&n...
php7新增的特性(1).强制限制只能返回一种类型<?php class task { } //must return an integer function add(): int { &nb...
有时候我们需要爬一个接口,但是这个接口需要很多参数,包括header和cookie要去编写,使用php curl模拟实在太慢。我们可以通过浏览器的network来复制请求为curl命令。例如我需要模拟请求接口地址:https://www.xkmz.cc/Ajax/Debug/delly,我们只需要在...