月度存档: 7 月 2015 - 第2页

Yii2_study3_form

1.yii\basic\models\下新建一个UserForm.php
[code]
<?php
namespace app\models;
use yii\base\Model;
class UserForm extends Model
{
public $name;
public $email;
public function rules()
{
return [
[[‘name’,’email’],’required’],
[’email’,’email’],
];
}
}
?>
[/code]

2.yii\basic\controllers\SiteController.php里面增加一个function
[code]
public function actionUser()
{
$model= new UserForm;
if($model->load(yii::$app->request->post()) && $model->validate())
{
echo "<div class=’alert-success’>".Yii::$app->session->setFlash(‘success’,’ok,it is right!’)."</div>";

}
// else
// {
return $this ->render(‘userForm’,[‘model’=>$model]);
// }
}
[/code]

3.yii\basic\views\site\下新建userForm.php
[code]
<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
?>

<?php
if(yii::$app->session->hasFlash(‘success’))
{
echo yii::$app->session->getFlash(‘success’);
}
?>

<?php $form=ActiveForm::begin();?>
<?= $form->field($model,’name’);?>
<?= $form->field($model,’email’);?>
<?= Html::submitButton(‘Submit’,[‘class’=>’btn btn-success’])?>
[/code]

yii2_study1&2_install&routing

install:
1.从yiiframework.com下载最新版本的yii-basic-app-2.0.5.tgz,放到网站根目录,mac上composer安装各种坑,弃用
2.localhost/basic/web 报错说没有key
3.去basic/config/web.php,修改 cookieValidationKey=>’abc’
4.重启apache,刷localhost/basic/web,搞定!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
routing:
1.basic/controllers/SiteController.php
add a function actionTest(){
$ttt=”aha68.com”;
$this->rend(‘newpage’,array(‘params’=>$ttt));
}

2.basic/views/site,add a newpage.php
//相当于

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
controller:
1.basic/controllers/目录下新增一个UsersController.php
[code]
<?php
namespace app\controllers;
use yii\web\Controller;
//use app\models\Users;
class UsersController extends Controller
{
public function actionIndex()
{
echo "test";
}
}
?>
[/code]
2.访问 localhost/yii/basic/web/index.php?r=users/index
看到 test
这个可以用来输出api,yeah!

Javascript获取页面来源(referer)

[code]
var getReferrer=function() {
var referrer = ”;

try {
referrer = window.top.document.referrer;
} catch(e) {
if(window.parent) {
try {
referrer = window.parent.document.referrer;
} catch(e2) {
referrer = ”;
}
}
}
if(referrer === ”) {
referrer = document.referrer;
}
return referrer;
};[/code]

SEO学习

从搜索推广的过程来看,推广信息先要展现在搜索结果页被潜在受众注意到,才有可能被点击,推广信息的点击给网站带来访问者,有一部分访问者会对网站提供的信息和产品有比较强的需求,进行了线上注册或购买,形成了转化。这个过程会涉及的数据有:展现量,点击量,平均点击价格,点击率,转化次数,转化率,平均转化价格。

这些数据之间的关系请见下图:
假设展现量为1000,其中产生了50个点击,点击率就是50/1000*100%=5%,而其中到达网站并且能够完全打开网页的访问数有40个,在网站上完成转化行为的有2个,那么转化率就是2/50*100%=4%。若平均点击价格(CPC)为1元,那么平均转化价格(CPA)就是1*50/2=25元

各种浏览器的userAgent收集

window.navigator.userAgent

1) Chrome
Win7:
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1

2) Firefox
Win7:
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0

3) Safari
Win7:
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50

4) Opera
Win7:
Opera/9.80 (Windows NT 6.1; U; zh-cn) Presto/2.9.168 Version/11.50

5) IE
Win7+ie9:
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; Tablet PC 2.0; .NET4.0E)

Win7+ie8:
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; InfoPath.3)

WinXP+ie8:
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB7.0)

WinXP+ie7:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)

WinXP+ie6:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)

6) 傲游
傲游3.1.7在Win7+ie9,高速模式:
Mozilla/5.0 (Windows; U; Windows NT 6.1; ) AppleWebKit/534.12 (KHTML, like Gecko) Maxthon/3.0 Safari/534.12

傲游3.1.7在Win7+ie9,IE内核兼容模式:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)

7) 搜狗
搜狗3.0在Win7+ie9,IE内核兼容模式:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E; SE 2.X MetaSr 1.0)

搜狗3.0在Win7+ie9,高速模式:
Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.3 (KHTML, like Gecko) Chrome/6.0.472.33 Safari/534.3 SE 2.X MetaSr 1.0

8) 360
360浏览器3.0在Win7+ie9:
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)

9) QQ浏览器
QQ浏览器6.9(11079)在Win7+ie9,极速模式:
Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.41 Safari/535.1 QQBrowser/6.9.11079.201

QQ浏览器6.9(11079)在Win7+ie9,IE内核兼容模式:
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E) QQBrowser/6.9.11079.201

10) 阿云浏览器
阿云浏览器1.3.0.1724 Beta(编译日期2011-12-05)在Win7+ie9:
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)[喝小酒的网摘]http://blog.const.net.cn/a/9283.htm
原文:http://rongjih.blog.163.com/blog/static/335744612011821111612884/[喝小酒的网摘]http://blog.const.net.cn/a/9283.htm

Google Analytics:为链接点击设定事件追踪的方法

http://www.renfei.org/blog/google-analytics-event-tracking-for-links.html

网站统计中的数据收集原理及实现

原文链接地址: http://www.chinaz.com/web/2012/1102/280696.shtml
网站数据统计分析工具是网站站长和运营人员经常使用的一种工具,比较常用的有谷歌分析、百度统计和腾讯分析等等。所有这些统计分析工具的第一步都是网站访问数据的收集。目前主流的数据收集方式基本都是基于javascript的。本文将简要分析这种数据收集的原理,并一步一步实际搭建一个实际的数据收集系统。

数据收集原理分析

简单来说,网站统计分析工具需要收集到用户浏览目标网站的行为(如打开某网页、点击某按钮、将商品加入购物车等)及行为附加数据(如某下单行为产生的订单金额等)。早期的网站统计往往只收集一种用户行为:页面的打开。而后用户在页面中的行为均无法收集。这种收集策略能满足基本的流量分析、来源分析、内容分析及访客属性等常用分析视角,但是,随着ajax技术的广泛使用及电子商务网站对于电子商务目标的统计分析的需求越来越强烈,这种传统的收集策略已经显得力不能及。

后来,Google在其产品谷歌分析中创新性的引入了可定制的数据收集脚本,用户通过谷歌分析定义好的可扩展接口,只需编写少量的javascript代码就可以实现自定义事件和自定义指标的跟踪和分析。目前百度统计、搜狗分析等产品均照搬了谷歌分析的模式。

其实说起来两种数据收集模式的基本原理和流程是一致的,只是后一种通过javascript收集到了更多的信息。下面看一下现在各种网站统计工具的数据收集基本原理。

网站统计IP PV UV实现原理

网站流量统计可以帮助我们分析网站的访问和广告来访等数据,里面包含很多数据的,比如访问试用的系统,浏览器,ip归属地,访问时间,搜索引擎来源,广告效果等。原来是一样的,这次先实现了PV,UV,IP三个重要指标的统计。
PV(访问量):Page View, 即页面浏览量或点击量,用户每次刷新即被计算一次。

  UV(独立访客):Unique Visitor,一般使用cookie标记,访问您网站的一台电脑客户端(比如一台电脑开多个浏览器访问则为多个UV)为一个访客,00:00-24:00内相同的客户端只会被计算一次。

  IP(独立IP):指独立IP数。00:00-24:00内相同IP地址之被计算一次(多台电脑可能共用一个ip)。

ip、pv、uv的区别:

IP(独立IP):某IP地址的计算机访问网站的次数。这种统计方式很容易实现,具有真实性。所以是衡量网站流量的重要指标。

PV(访问量):PV反映的是浏览某网站的页面数,所以每刷新一次也算一次。就是说PV与来访者的数量成正比,但PV并不是页面的来访者数量,而是网站被访问的页面数量。

UV(独立访客):可以理解成访问某网站的电脑的数量。网站判断来访电脑的身份是通过来访电脑的cookies实现的。如果更换了IP后但不清除cookies,再访问相同网站,该网站的统计中UV数是不变的。

工作流程:

S1:编写监控javascript和提供接口。这个接口返回的是监控网站对应的javascript文件,这个文件可以再客户端可以标记和采集访客的信息。

S2:网站调用接口。只需将引入javascript到要监控的站点即可,访客访问该站点时,javascript文件就会被加载。

S3:标记和采集数据。监控js被加载后就会往浏览器写入cookie标记访客,比如新访客生产一个新cookie和标记访问次数,若是老用户则,读取 cookie信息,计算访问次数和最后访问时间等,这些客户端的信息处理完后,则向指定的服务器发送数据。

S4:最后服务器接收javascript提交过来的数据处理入库和后续的数据处理了

Mac OS X中配置Apache

我使用的Mac OS X版本是10.8.2,Mac自带了Apache环境。

启动Apache
设置虚拟主机

启动Apache

打开“终端(terminal)”,输入 sudo apachectl -v,(可能需要输入机器秘密)。如下显示Apache的版本

接着输入 sudo apachectl start,这样Apache就启动了。打开Safari浏览器地址栏输入 “http://https://https://amyflash.com”,可以看到内容为“It works!”的页面。其位于“/Library(资源库)/WebServer/Documents/”下,这就是Apache的默认根目录。

Apache的安装目录在:/etc/apache2/,etc默认是隐藏的。有三种方式查看:

dock下右键Finder,选择”前往文件夹”,输入”/etc”
在finder下----》前往---》前往文件夹,然后输入/etc
可以在terminal 输入 “open /etc”

设置虚拟主机

在终端运行“sudo vi /etc/apache2/httpd.conf”,打开Apche的配置文件
在httpd.conf中找到“#Include /private/etc/apache2/extra/httpd-vhosts.conf”,去掉前面的“#”,保存并退出。
运行“sudo apachectl restart”,重启Apache后就开启了虚拟主机配置功能。
运行“sudo vi /etc/apache2/extra/httpd-vhosts.conf”,就打开了配置虚拟主机文件httpd-vhost.conf,配置虚拟主机了。需要注意的是该文件默认开启了两个作为例子的虚拟主机:
[code]
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/docs/dummy-host.example.com"
ServerName dummy-host.example.com
ErrorLog "/private/var/log/apache2/dummy-host.example.com-error_log"
CustomLog "/private/var/log/apache2/dummy-host.example.com-access_log" common
</VirtualHost>

<VirtualHost *:80>
ServerAdmin webmaster@dummy-host2.example.com
DocumentRoot "/usr/docs/dummy-host2.example.com"
ServerName dummy-host2.example.com
ErrorLog "/private/var/log/apache2/dummy-host2.example.com-error_log"
CustomLog "/private/var/log/apache2/dummy-host2.example.com-access_log" common
</VirtualHost>
[/code]
而实际上,这两个虚拟主机是不存在的,在没有配置任何其他虚拟主机时,可能会导致访问localhost时出现如下提示:

Forbidden
You don’t have permission to access /index.php on this server
最简单的办法就是在它们每行前面加上#,注释掉就好了,这样既能参考又不导致其他问题。

增加如下配置
[code]
<VirtualHost *:80>
DocumentRoot "/Library/WebServer/Documents"
ServerName localhost
ErrorLog "/private/var/log/apache2/localhost-error_log"
CustomLog "/private/var/log/apache2/localhost-access_log" common
</VirtualHost>

<VirtualHost *:80>
DocumentRoot "/Users/snandy/work"
ServerName mysites
ErrorLog "/private/var/log/apache2/sites-error_log"
CustomLog "/private/var/log/apache2/sites-access_log" common
<Directory />
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
[/code]
保存退出,并重启Apache。
如果需要配置不同的端口号,记得在httpd.conf里的Listen new port
运行“sudo vi /etc/hosts”,打开hosts配置文件,加入”127.0.0.1 mysites”,这样就可以配置完成sites虚拟主机了,可以访问“http://mysites”了,在10.8之前Mac OS X版本其内容和“http://https://https://amyflash.com/~[用户名]”完全一致。
注意,记录log的“ErrorLog “/private/var/log/apache2/sites-error_log””也可以删掉,但记录日志其实是一个好习惯,在出现问题时可以帮助我们判断。如果保留这些log代码,一定log文件路径都是存在的,如果随便修改一个不存在的,会导致Apache无法服务而没有错误提示,这个比较恶心。

PR值的计算

Google关于网页PR值的算法:PR(A) = (1-d)+ d(PR(t1)/C(t1)+ … + PR(tn)/C(tn))。PR(A)为要计算Pr值的A页面,d为阻尼系数,一般为0.85,PR(t1)…PR(tn)分别是各个链接到你的网站的PR值,C(t1)…C(tn)分别是各个链接到你的网站的外部链接数量,由此可以看出对方给你做链接时,并不只是对方网站的PR越高越好,对方网站链出的外部链接数量也很重要。   
PR值最高为10,一般PR值达到4,就算是一个不错的网站了。
现在让我们来看看这个PR分值的计算公式:PR(A)=(1-d)+d(PR(t1)/C(t1)+…+PR(tn)/C(tn))公式解释:其中PR(A)表示的是从一个外部链接站点t1上,依据Pagerank系统给你的网站所增加的PR分值;PR(t1)表示该外部链接网站本身的PR分值;C(t1)则表示该外部链接站点所拥有的外部链接数量。大家要谨记:一个网站的投票权值只有该网站PR分值的0.85, 那么,是不是说对一个网站而言,它所拥有的较高网站质量和较高PR分值的外部链接数量越多就越好呢?错,因为-Google的Pagerank系统不单考虑一个网站的外部链接质量,也会考虑其数量.比方说,对一个有一定PR值的网站X来说,如果你的网站Y是它的唯一一个外部链接,那么Google就相信网站X将你的网站Y视做它最好的一个外部链接,从而会给你的网站Y更多的分值。可是,如果网站X上已经有49个外部链接,那么Google就相信网站X只是将你的网站视做它第50个好的网站。因而你的外部链接站点上的外部链接数越多,你所能够得到的PR分值反而会越低,它们呈反比关系。 说它对是因为-一般情况下,一个PR分值大于等于6的外部链接站点,可显著提升你的PR分值。但如果这个外部链接站点已经有100个其它的外部链接时,那你能够得到的PR分值就几乎为零了。同样,如果一个外部链接站点的PR值仅为2,但你却是它的唯一一个外部链接,那么你所获得的PR值要远远大于那个PR值为6,外部链接数为100的网站。 而且这个0.85的权值平均分配给其链接的每个外部网站。