2019年11月24日 | 标签:

 

php周期运转在liunux很简略 可是在windows就不轻易了 首要经由过程打算使命 可是打算使命只能设置牢固的运转距离时辰 比方我想设置每隔3天运转  过段时辰我又想改成每隔2天运转  如许就要去点窜打算使命

能不能只点窜php代码 就实现自界说的运转距离时辰呢 谜底是能够的

交接道理

在php文件目次下建立一个txt文件 而后设置这个php是天天运转, 在txt文件中的第一行设置一个1/3如许的数 每次运转一次份子就加一变成2/3 每次运转份子加一 而后求余数 若是余数为0 就许可 那末分母便是要每个n天运转的距离

经由过程php能够点窜这里的分母 每次许可能够点窜份子为5

 

$contents=file_get_contents(“db.txt”);
$firstline=explode(“*”,$contents,3);//1/3
$firstline1=explode(“/”,$firstline[1]);//$firstline[1]=1/3
$f0=(int)$firstline1[0];//已运转的天数$firstline1[0]
$f1=(int)$firstline1[1]; //已运转的运转距离天数 $firstline1[1]
$firstline1[0]++;
$new=$firstline1[0].”/”.$firstline1[1];
$old=$firstline[1];
$contents=str_replace($old,$new,$contents);
file_put_contents(“db.txt”,$contents);
if ($f0%$f1!==0) echo “还能够再偷懒”.($f1-$f0%$f1).”天”;
else
echo “起头干活了”;

php周期运转在liunux很简略 可是在windows就不轻易了 首要经由过程打算使命 可是打算使命只能设置牢固的运转距离时辰 比方我想设置每隔3天运转  过段时辰我又想改成每隔2天运转  如许就要去点窜打算使命

能不能只点窜php代码 就实现自界说的运转距离时辰呢 谜底是能够的

交接道理

在php文件目次下建立一个txt文件 而后设置这个php是天天运转, 在txt文件中的第一行设置一个1/3如许的数 每次运转一次份子就加一变成2/3 每次运转份子加一 而后求余数 若是余数为0 就许可 那末分母便是要每个n天运转的距离

经由过程php能够点窜这里的分母 每次许可能够点窜份子为5

 

$contents=file_get_contents(“db.txt”);
$firstline=explode(“*”,$contents,3);//1/3
$firstline1=explode(“/”,$firstline[1]);//$firstline[1]=1/3
$f0=(int)$firstline1[0];//已运转的天数$firstline1[0]
$f1=(int)$firstline1[1]; //已运转的运转距离天数 $firstline1[1]
$firstline1[0]++;
$new=$firstline1[0].”/”.$firstline1[1];
$old=$firstline[1];
$contents=str_replace($old,$new,$contents);
file_put_contents(“db.txt”,$contents);
if ($f0%$f1!==0) echo “还能够再偷懒”.($f1-$f0%$f1).”天”;
else
echo “起头干活了”;

不批评 (265 views)
2019年11月23日 | 标签:

先看成果

www.xcar.com.cn
www.pcauto.com.cn
www.jimi168.com
www.feelcars.com
www.chinaunix.net
www.cheshi.com
www.app111.com
auto.sohu.com
auto.sina.com.cn
auto.people.com.cn
auto.msn.com.cn
auto.china.com
auto.163.com
抓取这13个网站
我操纵了curl 单线程抓取 一切内容而后放入变量中
耗时是33秒
而后我操纵curl的多线程抓取 而后安排内容到函数中 用事是8秒 速率快了4倍以上 均匀1秒能够阐发2个网页
这仍是在网速很卡的环境下
以是能够预估的是
若是是我多线程 设置好参数 查问13个交际平台的数据停止阐发 是能够在3秒以内实现成果的
咱们先停止打基数
间接看代码
先是单线程代码
<?php
$curl = curl_init();// 初始化一个 cURL 东西
curl_setopt($curl, CURLOPT_URL, ‘http://www.163.com’);// 设置你须要抓取的URL
curl_setopt($curl, CURLOPT_HEADER, 0);// 设置header
curl_setopt($curl, CURLOPT_USERAGENT, “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36”);   //间接用chrome的开辟东西翻开网页而后抄下你的发送的request中agent参数
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);// 设置cURL 参数,要求成果保管到字符串中若是是0便是间接打印在频幕上 若是不设置就间接打印在屏幕上 这里咱们须要保管在字符串以是是true。
$data = curl_exec($curl);// 运转cURL,要求网页
curl_close($curl);// 封闭URL要求 开释内存
echo $data;// 显现取得的数据
?>
下面便是最简略的例子 取得网页 而后复制到变量 再显现网页上
须要首要便是returntransfer要设置为1 确保前往给变量 而后便是agent数据要用chrome外面查问到的
对于更多的setopt 能够这里查问
http://php.net/manual/zh/function.curl-setopt.php
而后咱们做一个轮回 查问13个网站
<?php
$urls = array(
‘www.xcar.com.cn’,
‘www.pcauto.com.cn’,
‘www.jimi168.com’,
‘www.feelcars.com’,
‘www.chinaunix.net’,
‘www.cheshi.com’,
‘www.app111.com’,
‘auto.sohu.com’,
‘auto.sina.com.cn’,
‘auto.people.com.cn’,
‘auto.msn.com.cn’,
‘auto.china.com’,
‘auto.163.com’
);
$curl = curl_init();
//起头计时,放在头部
$pagestartime=microtime();
foreach($urls as $url){
// 初始化一个 cURL 东西
// 设置你须要抓取的URL
curl_setopt($curl, CURLOPT_URL, $url);
// 设置header
curl_setopt($curl, CURLOPT_HEADER, 0);
// 设置cURL 参数,要求成果保管到字符串中仍是输入到屏幕上。
curl_setopt($curl, CURLOPT_USERAGENT, “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36”);
// 设置cURL 参数,要求成果保管到字符串中仍是输入到屏幕上。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
// 运转cURL,要求网页
$data = curl_exec($curl);
 @$totaldata=$totaldata.$data;
}
// 封闭URL要求
curl_close($curl);
//竣事计时,放在最底部
$pageendtime = microtime();
$starttime = explode(” “,$pagestartime);
$endtime = explode(” “,$pageendtime);
$totaltime = $endtime[0]-$starttime[0]+$endtime[1]-$starttime[1];
$timecost = sprintf(“%s”,$totaltime);
echo “页面运转时辰: $timecost seconds”;
echo $totaldata;
?>
这里咱们操纵了计时器 检查查问这些网址并且赋值给变量要多久
须要注重的是先输入时辰 再输入html源代码 不然源代码这么长 显现出来要等好久
再看看操纵curl的多线程的方式
<html>
 <meta  charset=”gb2312″>
 <?php
 set_time_limit(0);
//起头计时,放在头部
$pagestartime=microtime();
$urls = array(
‘www.xcar.com.cn’,
‘www.pcauto.com.cn’,
‘www.jimi168.com’,
‘www.feelcars.com’,
‘www.chinaunix.net’,
‘www.cheshi.com’,
‘www.app111.com’,
‘auto.sohu.com’,
‘auto.sina.com.cn’,
‘auto.people.com.cn’,
‘auto.msn.com.cn’,
‘auto.china.com’,
‘auto.163.com’
);
$mh = curl_multi_init();
foreach ($urls as $i => $url) {
  $conn[$i] = curl_init($url);
  curl_setopt($conn[$i], CURLOPT_USERAGENT, “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36”);
  curl_setopt($conn[$i], CURLOPT_HEADER ,0);
  curl_setopt($conn[$i], CURLOPT_CONNECTTIMEOUT,60);
  curl_setopt($conn[$i],CURLOPT_RETURNTRANSFER,1);  // 设置不将爬代替码写到阅读器,而是转化为字符串
  curl_multi_add_handle ($mh,$conn[$i]);
}
do {
  curl_multi_exec($mh,$active);
} while ($active);
foreach ($urls as $i => $url) {
  $data = curl_multi_getcontent($conn[$i]); // 取得爬取的代码字符串
  @$totaldata=$totaldata.$data;
} // 取得数据变量,并写入文件
foreach ($urls as $i => $url) {
  curl_multi_remove_handle($mh,$conn[$i]);
  curl_close($conn[$i]);
}
curl_multi_close($mh);
//竣事计时,放在最底部
$pageendtime = microtime();
$starttime = explode(” “,$pagestartime);
$endtime = explode(” “,$pageendtime);
$totaltime = $endtime[0]-$starttime[0]+$endtime[1]-$starttime[1];
$timecost = sprintf(“%s”,$totaltime);
echo “页面运转时辰: $timecost seconds”;
echo $totaldata;
?>
</html>

先看成果

www.xcar.com.cn
www.pcauto.com.cn
www.jimi168.com
www.feelcars.com
www.chinaunix.net
www.cheshi.com
www.app111.com
auto.sohu.com
auto.sina.com.cn
auto.people.com.cn
auto.msn.com.cn
auto.china.com
auto.163.com
抓取这13个网站
我操纵了curl 单线程抓取 一切内容而后放入变量中
耗时是33秒
而后我操纵curl的多线程抓取 而后安排内容到函数中 用事是8秒 速率快了4倍以上 均匀1秒能够阐发2个网页
这仍是在网速很卡的环境下
以是能够预估的是
若是是我多线程 设置好参数 查问13个交际平台的数据停止阐发 是能够在3秒以内实现成果的
咱们先停止打基数
间接看代码
先是单线程代码
<?php
$curl = curl_init();// 初始化一个 cURL 东西
curl_setopt($curl, CURLOPT_URL, ‘http://www.163.com’);// 设置你须要抓取的URL
curl_setopt($curl, CURLOPT_HEADER, 0);// 设置header
curl_setopt($curl, CURLOPT_USERAGENT, “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36”);   //间接用chrome的开辟东西翻开网页而后抄下你的发送的request中agent参数
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);// 设置cURL 参数,要求成果保管到字符串中若是是0便是间接打印在频幕上 若是不设置就间接打印在屏幕上 这里咱们须要保管在字符串以是是true。
$data = curl_exec($curl);// 运转cURL,要求网页
curl_close($curl);// 封闭URL要求 开释内存
echo $data;// 显现取得的数据
?>
下面便是最简略的例子 取得网页 而后复制到变量 再显现网页上
须要首要便是returntransfer要设置为1 确保前往给变量 而后便是agent数据要用chrome外面查问到的
对于更多的setopt 能够这里查问
http://php.net/manual/zh/function.curl-setopt.php
而后咱们做一个轮回 查问13个网站
<?php
$urls = array(
‘www.xcar.com.cn’,
‘www.pcauto.com.cn’,
‘www.jimi168.com’,
‘www.feelcars.com’,
‘www.chinaunix.net’,
‘www.cheshi.com’,
‘www.app111.com’,
‘auto.sohu.com’,
‘auto.sina.com.cn’,
‘auto.people.com.cn’,
‘auto.msn.com.cn’,
‘auto.china.com’,
‘auto.163.com’
);
$curl = curl_init();
//起头计时,放在头部
$pagestartime=microtime();
foreach($urls as $url){
// 初始化一个 cURL 东西
// 设置你须要抓取的URL
curl_setopt($curl, CURLOPT_URL, $url);
// 设置header
curl_setopt($curl, CURLOPT_HEADER, 0);
// 设置cURL 参数,要求成果保管到字符串中仍是输入到屏幕上。
curl_setopt($curl, CURLOPT_USERAGENT, “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36”);
// 设置cURL 参数,要求成果保管到字符串中仍是输入到屏幕上。
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
// 运转cURL,要求网页
$data = curl_exec($curl);
 @$totaldata=$totaldata.$data;
}
// 封闭URL要求
curl_close($curl);
//竣事计时,放在最底部
$pageendtime = microtime();
$starttime = explode(” “,$pagestartime);
$endtime = explode(” “,$pageendtime);
$totaltime = $endtime[0]-$starttime[0]+$endtime[1]-$starttime[1];
$timecost = sprintf(“%s”,$totaltime);
echo “页面运转时辰: $timecost seconds”;
echo $totaldata;
?>
这里咱们操纵了计时器 检查查问这些网址并且赋值给变量要多久
须要注重的是先输入时辰 再输入html源代码 不然源代码这么长 显现出来要等好久
再看看操纵curl的多线程的方式
<html>
 <meta  charset=”gb2312″>
 <?php
 set_time_limit(0);
//起头计时,放在头部
$pagestartime=microtime();
$urls = array(
‘www.xcar.com.cn’,
‘www.pcauto.com.cn’,
‘www.jimi168.com’,
‘www.feelcars.com’,
‘www.chinaunix.net’,
‘www.cheshi.com’,
‘www.app111.com’,
‘auto.sohu.com’,
‘auto.sina.com.cn’,
‘auto.people.com.cn’,
‘auto.msn.com.cn’,
‘auto.china.com’,
‘auto.163.com’
);
$mh = curl_multi_init();
foreach ($urls as $i => $url) {
  $conn[$i] = curl_init($url);
  curl_setopt($conn[$i], CURLOPT_USERAGENT, “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36”);
  curl_setopt($conn[$i], CURLOPT_HEADER ,0);
  curl_setopt($conn[$i], CURLOPT_CONNECTTIMEOUT,60);
  curl_setopt($conn[$i],CURLOPT_RETURNTRANSFER,1);  // 设置不将爬代替码写到阅读器,而是转化为字符串
  curl_multi_add_handle ($mh,$conn[$i]);
}
do {
  curl_multi_exec($mh,$active);
} while ($active);
foreach ($urls as $i => $url) {
  $data = curl_multi_getcontent($conn[$i]); // 取得爬取的代码字符串
  @$totaldata=$totaldata.$data;
} // 取得数据变量,并写入文件
foreach ($urls as $i => $url) {
  curl_multi_remove_handle($mh,$conn[$i]);
  curl_close($conn[$i]);
}
curl_multi_close($mh);
//竣事计时,放在最底部
$pageendtime = microtime();
$starttime = explode(” “,$pagestartime);
$endtime = explode(” “,$pageendtime);
$totaltime = $endtime[0]-$starttime[0]+$endtime[1]-$starttime[1];
$timecost = sprintf(“%s”,$totaltime);
echo “页面运转时辰: $timecost seconds”;
echo $totaldata;
?>
</html>
不批评 (186 views)
2019年11月22日 | 标签:

 

明天用div css 仿照公司的网站 总结下心得

起首要有大局观 看看网站从上到下 能够横着切成几个局部 比方我的例子中他就分 head main more info footer
这个4个局部 而后要用一个大的div 叫container的把这4个都包起来 便利全部页面的居中定位和今后增添背风景
而后这个4个局部都能够担当这个container的宽度
这里有个常识点 若是div外面没内容的话 div的背风景是不实际
只用增添一个高度属性就能够  每个局部咱们能够增添一个4边的图片的边框 边框的建造也是有技能 咱们也是横着
切3次 顶部边框一个长的,中心边框实在便是左柱 和右柱 向下添补用的是background:url() repeat-y,这里注重下比方说这个head 外面内嵌3个 本身的背景就用边框的摆布 外面内嵌的第一个是边框顶部 第2个是边框底部;就能够把这4个
局部加标致的外边框(有暗影 有反光的 切3刀就能够)
有了全体定位今后 另有外部的定位题目 若是一个大的div外面嵌套小的div 你要定位的话记得小div用position:relative 这养能够定位 父子干系,兄弟干系的div 及同级别的 是能够用margin定位的
另有ul li的题目li和ul都是内敛元素 能够用display:block来处理 界说凹凸 同时加上float:left 就能够横着了摆列
css精灵 这个技能很主要 便利把小的icon或大的点图片归并在一个图外面 再经由过程background:url和background:postion来显现 如许5个图片整合在一个图片外面 别离显现的时辰 经由过程postion挪动实际就能够共同li操纵 成果加倍
另有一些小的图表也能够的

明天用div css 仿照公司的网站 总结下心得

起首要有大局观 看看网站从上到下 能够横着切成几个局部 比方我的例子中他就分 head main more info footer
这个4个局部 而后要用一个大的div 叫container的把这4个都包起来 便利全部页面的居中定位和今后增添背风景
而后这个4个局部都能够担当这个container的宽度
这里有个常识点 若是div外面没内容的话 div的背风景是不实际
只用增添一个高度属性就能够  每个局部咱们能够增添一个4边的图片的边框 边框的建造也是有技能 咱们也是横着
切3次 顶部边框一个长的,中心边框实在便是左柱 和右柱 向下添补用的是background:url() repeat-y,这里注重下比方说这个head 外面内嵌3个 本身的背景就用边框的摆布 外面内嵌的第一个是边框顶部 第2个是边框底部;就能够把这4个
局部加标致的外边框(有暗影 有反光的 切3刀就能够)
有了全体定位今后 另有外部的定位题目 若是一个大的div外面嵌套小的div 你要定位的话记得小div用position:relative 这养能够定位 父子干系,兄弟干系的div 及同级别的 是能够用margin定位的
另有ul li的题目li和ul都是内敛元素 能够用display:block来处理 界说凹凸 同时加上float:left 就能够横着了摆列
css精灵 这个技能很主要 便利把小的icon或大的点图片归并在一个图外面 再经由过程background:url和background:postion来显现 如许5个图片整合在一个图片外面 别离显现的时辰 经由过程postion挪动实际就能够共同li操纵 成果加倍
另有一些小的图表也能够的
不批评 (232 views)