javascript微博内容字数统计

Javascriptlinyu520 发表了文章 • 0 个评论 • 181 次浏览 • 2016-10-17 21:18 • 来自相关话题

  下面是计算微博内容字数的自定义函数。计算规则为URL算11,中文汉字长度为1,英文、数字、标点符号等单字节字符算0.5:function strlen(str) {
var value = str.replace(/(^\s*)|(\s*$)/g, "");
var reg = new RegExp('((news|telnet|nttp|file|http|ftp|https)://){1}(([-A-Za-z0-9]+(\\.[-A-Za-z0-9]+)*(\\.[-A-Za-z]{2,5}))|([0-9]{1,3}(\\.[0-9]{1,3}){3}))(:[0-9]*)?(/[-A-Za-z0-9_\\$\\.\\+\\!\\*\\(\\),;:@&=\\?/~\\#\\%]*)*', 'gi');
value = value.replace(reg, '**********************');
return Math.ceil(value.replace(/[^\x00-\xff]/ig, "**").length / 2);
}
alert(strlen('爱E族网址为: http://aiezu.com')); //弹出18 查看全部
  下面是计算微博内容字数的自定义函数。计算规则为URL算11,中文汉字长度为1,英文、数字、标点符号等单字节字符算0.5:
function strlen(str) {
var value = str.replace(/(^\s*)|(\s*$)/g, "");
var reg = new RegExp('((news|telnet|nttp|file|http|ftp|https)://){1}(([-A-Za-z0-9]+(\\.[-A-Za-z0-9]+)*(\\.[-A-Za-z]{2,5}))|([0-9]{1,3}(\\.[0-9]{1,3}){3}))(:[0-9]*)?(/[-A-Za-z0-9_\\$\\.\\+\\!\\*\\(\\),;:@&=\\?/~\\#\\%]*)*', 'gi');
value = value.replace(reg, '**********************');
return Math.ceil(value.replace(/[^\x00-\xff]/ig, "**").length / 2);
}
alert(strlen('爱E族网址为: http://aiezu.com')); //弹出18

apache将搜索引擎抓取日志记录到独立的日志文件

Linuxlinyu520 发表了文章 • 0 个评论 • 137 次浏览 • 2016-10-17 21:13 • 来自相关话题

  我们做SEO的时候,常常希望知道搜索引擎爬虫什么时候光顾了我们的网站,这时我们就可以同下面的方法,将搜索引擎的抓取日志单独放在一个日志文件中。

1、 识别搜索引擎:
在“/etc/httpd/conf/httpd.conf”文件“LogFormat”前面添加如下内容,用来判断是蜘蛛抓取还是真实用户访问:SetEnvIfNoCase User-Agent "(Googlebot|Mediapartners-Google|Baiduspider|MSNBot|sogou spider|Sosospider|YodaoBot|Yahoo|Yahoo)" robot
2、 定义日志格式:
在“httpd.conf”文件“LogFormat”下面添加一行,设置一个新的日志格式:LogFormat "%{%Y-%m-%d %H:%M:%S}t %>s %V %h %b %r \"%{User-agent}i\" \"%{Referer}i\"" big
3、 记录搜索引擎日志:
如果服务器上面架了多个站点,就在"VirtualHost"中新增下面一行,否则就在httpd.conf中“CustomLog”下面新增下面一行:CustomLog logs/aiezu.com-robot big env=robot上面的big是第二步定义的日志格式,robot是第一步的判断是否为搜索引擎的变量。

4、测试配置文件并重新加载配置文件:httpd -t
service httpd reload 查看全部
  我们做SEO的时候,常常希望知道搜索引擎爬虫什么时候光顾了我们的网站,这时我们就可以同下面的方法,将搜索引擎的抓取日志单独放在一个日志文件中。

1、 识别搜索引擎:
在“/etc/httpd/conf/httpd.conf”文件“LogFormat”前面添加如下内容,用来判断是蜘蛛抓取还是真实用户访问:
SetEnvIfNoCase User-Agent "(Googlebot|Mediapartners-Google|Baiduspider|MSNBot|sogou spider|Sosospider|YodaoBot|Yahoo|Yahoo)" robot

2、 定义日志格式:
在“httpd.conf”文件“LogFormat”下面添加一行,设置一个新的日志格式:
LogFormat "%{%Y-%m-%d %H:%M:%S}t %>s %V %h %b %r \"%{User-agent}i\" \"%{Referer}i\"" big

3、 记录搜索引擎日志:
如果服务器上面架了多个站点,就在"VirtualHost"中新增下面一行,否则就在httpd.conf中“CustomLog”下面新增下面一行:
CustomLog logs/aiezu.com-robot big env=robot
上面的big是第二步定义的日志格式,robot是第一步的判断是否为搜索引擎的变量。

4、测试配置文件并重新加载配置文件:
httpd -t
service httpd reload

linux进程资源占用高原因分析命令

Linuxlinyu520 发表了文章 • 0 个评论 • 86 次浏览 • 2016-10-17 18:46 • 来自相关话题

1、查看进程的线程:ps -eLf|egrep 'httpd'
 2、跟踪线程调用:strace -p 15530
3、统计线程中函数的调用小号CPU时间:strace -p 16334 -c
strace -p 15530 -o out.file #输出到out.file文件
4、只显示recv函数的调用:strace -p 5314 -f -F -e recv
5、gdb调试线程:gdb -p pid
6、查看线程打开的文件描述符:lsof -p pid  查看全部
1、查看进程的线程:
ps -eLf|egrep 'httpd'

 2、跟踪线程调用:
strace -p 15530

3、统计线程中函数的调用小号CPU时间:
strace  -p 16334 -c
strace -p 15530 -o out.file #输出到out.file文件

4、只显示recv函数的调用:
strace  -p 5314 -f -F -e recv

5、gdb调试线程:
gdb -p pid

6、查看线程打开的文件描述符:
lsof -p pid
 

Mysql错误Too many connections的解决方法

Mysqllinyu520 发表了文章 • 0 个评论 • 81 次浏览 • 2016-10-17 17:21 • 来自相关话题

  连接mysql时报too many connections错误,是因为同时打开连接太多、超过设置文件限制所致。通过show processlist你会发现有很多sleep连接,这是因为使用了长连接(mysql_pconnect)或者短连接(mysql_connect)未正常关闭导致的。

  这时你需要检查程序代码,看是否有未正常关闭mysql连接,同时优化执行过慢的SQL语句。确定程序没问题时,修改mysql配置文件,加大mysqld的最大连接数,同时设置一个短的超时时间,让短连接尽快的自动关闭即可解决次问题:

修改/etc/my.cnf,添加下面内容,并重启mysqld服务即可:max_connections = 500 #由默认的150改成500个连接
wait_timeout=600 #由默认的2880改为600秒
interactive_timeout = 600 #由默认的2880改为600秒当然,加大连接数需要谨慎,设置够大,当同时打开的连接数太多时,有可能导致服务器内存不够而当机。
  查看全部
  连接mysql时报too many connections错误,是因为同时打开连接太多、超过设置文件限制所致。通过show processlist你会发现有很多sleep连接,这是因为使用了长连接(mysql_pconnect)或者短连接(mysql_connect)未正常关闭导致的。

  这时你需要检查程序代码,看是否有未正常关闭mysql连接,同时优化执行过慢的SQL语句。确定程序没问题时,修改mysql配置文件,加大mysqld的最大连接数,同时设置一个短的超时时间,让短连接尽快的自动关闭即可解决次问题:

修改/etc/my.cnf,添加下面内容,并重启mysqld服务即可:
max_connections = 500 #由默认的150改成500个连接
wait_timeout=600 #由默认的2880改为600秒
interactive_timeout = 600 #由默认的2880改为600秒
当然,加大连接数需要谨慎,设置够大,当同时打开的连接数太多时,有可能导致服务器内存不够而当机。
 

php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法

PHPliuliangsong 发表了文章 • 0 个评论 • 212 次浏览 • 2016-10-17 16:14 • 来自相关话题

  php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法,主要使用到了 php 的时间函数 mktime。下面是使用 mktime 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法:<?php
date_default_timezone_set('PRC');
//php获取今日开始时间戳和结束时间戳
$beginToday=mktime(0,0,0,date('m'),date('d'),date('Y'));
$endToday=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1;

//php获取昨日起始时间戳和结束时间戳
$beginYesterday=mktime(0,0,0,date('m'),date('d')-1,date('Y'));
$endYesterday=mktime(0,0,0,date('m'),date('d'),date('Y'))-1;

//php获取上周起始时间戳和结束时间戳
$beginLastweek=mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y'));
$endLastweek=mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y'));

//php获取本月起始时间戳和结束时间戳
$beginThismonth=mktime(0,0,0,date('m'),1,date('Y'));
$endThismonth=mktime(23,59,59,date('m'),date('t'),date('Y'));

// 输出
echo sprintf("今日: %s -> %s\n", $beginToday, $endToday);
echo sprintf("   %s -> %s\n", date("Y-m-d H:i:s", $beginToday), date("Y-m-d H:i:s", $endToday));
echo sprintf("昨日: %s -> %s\n", $beginYesterday, $endYesterday);
echo sprintf("   %s -> %s\n", date("Y-m-d H:i:s", $beginYesterday), date("Y-m-d H:i:s", $endYesterday));
echo sprintf("上周: %s -> %s\n", $beginLastweek, $endLastweek);
echo sprintf("   %s -> %s\n", date("Y-m-d H:i:s", $beginLastweek), date("Y-m-d H:i:s", $endLastweek));
echo sprintf("本月: %s -> %s\n", $beginThismonth, $endThismonth);
echo sprintf("   %s -> %s\n", date("Y-m-d H:i:s", $beginThismonth), date("Y-m-d H:i:s", $endThismonth));输出结果:今日: 1476633600 -> 1476719999
   2016-10-17 00:00:00 -> 2016-10-17 23:59:59
昨日: 1476547200 -> 1476633599
   2016-10-16 00:00:00 -> 2016-10-16 23:59:59
上周: 1476028800 -> 1476633599
   2016-10-10 00:00:00 -> 2016-10-16 23:59:59
本月: 1475251200 -> 1477929599
   2016-10-01 00:00:00 -> 2016-10-31 23:59:59
mktime用法:
mktime(hour, minute, second, month, day, year, is_dst)
 
参数介绍:
hour - 可选。规定小时。minute - 可选。规定分钟。second - 可选。规定秒。month - 可选。规定用数字表示的月。day - 可选。规定天。year - 可选。规定年。在某些系统上,合法值介于 1901 - 2038 之间。不过在 PHP 5 中已经不存在这个限制了。is_dst - 如果时间在日光节约时间(DST)期间,则设置为1,否则设置为0,若未知,则设置为-1,自 PHP 5.1.0 起,is_dst 参数被废弃。 查看全部
  php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法,主要使用到了 php 的时间函数 mktime。下面是使用 mktime 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法:
<?php
date_default_timezone_set('PRC');
//php获取今日开始时间戳和结束时间戳
$beginToday=mktime(0,0,0,date('m'),date('d'),date('Y'));
$endToday=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1;

//php获取昨日起始时间戳和结束时间戳
$beginYesterday=mktime(0,0,0,date('m'),date('d')-1,date('Y'));
$endYesterday=mktime(0,0,0,date('m'),date('d'),date('Y'))-1;

//php获取上周起始时间戳和结束时间戳
$beginLastweek=mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y'));
$endLastweek=mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y'));

//php获取本月起始时间戳和结束时间戳
$beginThismonth=mktime(0,0,0,date('m'),1,date('Y'));
$endThismonth=mktime(23,59,59,date('m'),date('t'),date('Y'));

// 输出
echo sprintf("今日: %s -> %s\n", $beginToday, $endToday);
echo sprintf("   %s -> %s\n", date("Y-m-d H:i:s", $beginToday), date("Y-m-d H:i:s", $endToday));
echo sprintf("昨日: %s -> %s\n", $beginYesterday, $endYesterday);
echo sprintf("   %s -> %s\n", date("Y-m-d H:i:s", $beginYesterday), date("Y-m-d H:i:s", $endYesterday));
echo sprintf("上周: %s -> %s\n", $beginLastweek, $endLastweek);
echo sprintf("   %s -> %s\n", date("Y-m-d H:i:s", $beginLastweek), date("Y-m-d H:i:s", $endLastweek));
echo sprintf("本月: %s -> %s\n", $beginThismonth, $endThismonth);
echo sprintf("   %s -> %s\n", date("Y-m-d H:i:s", $beginThismonth), date("Y-m-d H:i:s", $endThismonth));
输出结果:
今日: 1476633600 -> 1476719999
   2016-10-17 00:00:00 -> 2016-10-17 23:59:59
昨日: 1476547200 -> 1476633599
   2016-10-16 00:00:00 -> 2016-10-16 23:59:59
上周: 1476028800 -> 1476633599
   2016-10-10 00:00:00 -> 2016-10-16 23:59:59
本月: 1475251200 -> 1477929599
   2016-10-01 00:00:00 -> 2016-10-31 23:59:59

mktime用法:
mktime(hour, minute, second, month, day, year, is_dst)
 
参数介绍:
  • hour - 可选。规定小时。
  • minute - 可选。规定分钟。
  • second - 可选。规定秒。
  • month - 可选。规定用数字表示的月。
  • day - 可选。规定天。
  • year - 可选。规定年。在某些系统上,合法值介于 1901 - 2038 之间。不过在 PHP 5 中已经不存在这个限制了。
  • is_dst - 如果时间在日光节约时间(DST)期间,则设置为1,否则设置为0,若未知,则设置为-1,自 PHP 5.1.0 起,is_dst 参数被废弃。

PHP int整形取值范围的最大值和最小值

回复

PHP匿名用户 回复了问题 • 1 人关注 • 1 个回复 • 221 次浏览 • 2016-10-17 16:02 • 来自相关话题

PHP 24小时制转12小时制

回复

PHP匿名用户 回复了问题 • 1 人关注 • 1 个回复 • 179 次浏览 • 2016-10-17 15:50 • 来自相关话题

PHP 12小时制转24小时制

回复

PHPliuliangsong 回复了问题 • 1 人关注 • 1 个回复 • 206 次浏览 • 2016-10-17 15:48 • 来自相关话题

PHP date 输出12小时制

回复

PHPliuliangsong 回复了问题 • 2 人关注 • 1 个回复 • 141 次浏览 • 2016-10-17 15:38 • 来自相关话题

PHP 获取毫秒级别的时间戳

PHPdave 回复了问题 • 3 人关注 • 1 个回复 • 365 次浏览 • 2016-10-17 11:45 • 来自相关话题