大市场,前景行业,无非是能源、通信、金融行业。小市场,比较有前景的,是大众所需,消费忠识度比较高的行业,比如饮食,零售、生产。无论是工作,还是创业!你需要选择自己兴趣,找准自己的优势,发现你的特长.
1:考虑你的兴趣,做你最喜欢做的,只有让工作成为乐趣。你才能更好的在这个行业发展。
2:分析你拥有经验,做你最擅长的。内行的身份,会让你在很多事情上得心应手。
3:这里强调一下关系渠道,这个靠社会生活中的积累。多一个渠道等于多一个机会。往往发财靠关系。这话也不是没有道理的。.我的看法和我的做法是:
1、复利挣钱。也就是本生利,利滚利。相当于把钱放高利,拿到了利就去当本。2、复式挣钱。一个人有三头六臂,也挣不多,要做到许多人为你工作,许多条路为你挣钱,许多地方为你生钱。3、利用别人为你挣钱,解放自己,自己人才有时间去学习如何快速挣钱。
4、会运用资本的力量。
5、会运用人脉的力量。
6、会运用杆杠的力量:比如借用他人的力量,借用资本的力量……合作伙伴,共同创业……
7、开源节流!
8、寄生法,也就是借用大企业,也可以是合股!
9、付出比别人更多的努力!
1:考虑你的兴趣,做你最喜欢做的,只有让工作成为乐趣。你才能更好的在这个行业发展。
2:分析你拥有经验,做你最擅长的。内行的身份,会让你在很多事情上得心应手。
3:这里强调一下关系渠道,这个靠社会生活中的积累。多一个渠道等于多一个机会。往往发财靠关系。这话也不是没有道理的。.我的看法和我的做法是:
1、复利挣钱。也就是本生利,利滚利。相当于把钱放高利,拿到了利就去当本。2、复式挣钱。一个人有三头六臂,也挣不多,要做到许多人为你工作,许多条路为你挣钱,许多地方为你生钱。3、利用别人为你挣钱,解放自己,自己人才有时间去学习如何快速挣钱。
4、会运用资本的力量。
5、会运用人脉的力量。
6、会运用杆杠的力量:比如借用他人的力量,借用资本的力量……合作伙伴,共同创业……
7、开源节流!
8、寄生法,也就是借用大企业,也可以是合股!
9、付出比别人更多的努力!
背景:外包写图片抓取时出现404内容,但就把nginx里的输出给保存在了jpg里,再读取时导致出现:图片没法显示,里面内容是404。
用curl抓取页面时,一般根据curl_exec的返回内容判断是否抓取成功了。但我发现,访问有些站点本来是返回404错误,但页面有内容时,curl把page not found的内容也抓回来了。如果以curl_exec的结果判断是否正确抓取就被误导了。如下面的代码:
查了下手册,发现curl里还有个curl_getinfo函数。应该判断http状态:
新加网上找了一个:
Add Time:2014-01-15
用curl抓取页面时,一般根据curl_exec的返回内容判断是否抓取成功了。但我发现,访问有些站点本来是返回404错误,但页面有内容时,curl把page not found的内容也抓回来了。如果以curl_exec的结果判断是否正确抓取就被误导了。如下面的代码:
$url = 'http://www.cq.xinhuanet.com/house/2008-11/24/content_14996426.htm-';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_ENCODING, "gzip, deflate");
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; CIBA; InfoPath.1; .NET CLR 2.0.50727)");
curl_setopt($ch, CURLOPT_MAXREDIRS, 5);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); //自动跟踪location
curl_setopt($ch, CURLOPT_TIMEOUT, 10); //Timeout
curl_setopt($ch, CURLOPT_HEADER, 1);
//curl_setopt($ch, CURLOPT_NOBODY, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$contents = curl_exec($ch);
curl_close($ch);
if (false == $contents || empty($contents)) {
echo $contents;
} else {
echo “抓取页面失败!”;
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_ENCODING, "gzip, deflate");
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; CIBA; InfoPath.1; .NET CLR 2.0.50727)");
curl_setopt($ch, CURLOPT_MAXREDIRS, 5);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); //自动跟踪location
curl_setopt($ch, CURLOPT_TIMEOUT, 10); //Timeout
curl_setopt($ch, CURLOPT_HEADER, 1);
//curl_setopt($ch, CURLOPT_NOBODY, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$contents = curl_exec($ch);
curl_close($ch);
if (false == $contents || empty($contents)) {
echo $contents;
} else {
echo “抓取页面失败!”;
}
查了下手册,发现curl里还有个curl_getinfo函数。应该判断http状态:
$contents = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($http_code >= 400) { //400 - 600都是服务器错误
echo "访问失败!";
exit;
} else {
echo $contents;
}
curl_close($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($http_code >= 400) { //400 - 600都是服务器错误
echo "访问失败!";
exit;
} else {
echo $contents;
}
curl_close($ch);
新加网上找了一个:
Add Time:2014-01-15
http://linuxtoy.org/archives/centos-53.html
http://www.linux23.com/torrent/centos-5-3-i386-bin-1to6-cd:e11c32aaec2ebfe97bea26b043bf4ac6f1fe2200
http://www.srui.cn/soft/11686.htm
据最新linuxworld 消息,Oracle 收购Red hat 进入专利审核阶段,Red hat 董事局原则上已同意被Oracle 收购,oracle 官方发言人表示Oracle 将来可能禁止centos 社区继续发布其centos 产品,centos 社区也表示5.3 有可能是其最后一个合法的版本
颇富戏剧性的结局:致力于商业化的KDE反而失去了重量级商业企业的支持,尽管一些中小规模的Linux企业因技术能力问题将继续支持KDE,但它的商业前途有限。而遵循GPL、完全不以商业化为目的的GNOME反而在该领域大获成功。许多Linux发烧友都不明白为什么优秀的KDE会受到如此待遇,其实道理非常简单—没有哪一家重量级企业喜欢受制于人,也许KDE的Qt不需要很多授权费,但谁知道TrollTech公司以后会不会漫天要价?既然有免费的 GNOME可以选择,那为什么不呢?基于此种理由,RedHat、Novell两家最大的Linux企业和SUN都采用GNOME
http://www.linux23.com/torrent/centos-5-3-i386-bin-1to6-cd:e11c32aaec2ebfe97bea26b043bf4ac6f1fe2200
http://www.srui.cn/soft/11686.htm
据最新linuxworld 消息,Oracle 收购Red hat 进入专利审核阶段,Red hat 董事局原则上已同意被Oracle 收购,oracle 官方发言人表示Oracle 将来可能禁止centos 社区继续发布其centos 产品,centos 社区也表示5.3 有可能是其最后一个合法的版本
颇富戏剧性的结局:致力于商业化的KDE反而失去了重量级商业企业的支持,尽管一些中小规模的Linux企业因技术能力问题将继续支持KDE,但它的商业前途有限。而遵循GPL、完全不以商业化为目的的GNOME反而在该领域大获成功。许多Linux发烧友都不明白为什么优秀的KDE会受到如此待遇,其实道理非常简单—没有哪一家重量级企业喜欢受制于人,也许KDE的Qt不需要很多授权费,但谁知道TrollTech公司以后会不会漫天要价?既然有免费的 GNOME可以选择,那为什么不呢?基于此种理由,RedHat、Novell两家最大的Linux企业和SUN都采用GNOME
至少要保留一种健康的爱好,如:游泳,足球,健身,蓝球等。
不要非等到情人节,才肯花个三头五百去买花,平时的一块巧克力,她也会笑逐颜开
有剩余资金,可以考虑买房了。哪怕只够付个首期。
万事随缘,但不要放弃努力。
不要给自己太大压力,不要学做李嘉成,李嘉成当初也不知他会是今日的李嘉成
不要再认为你在玩别人的感情,对手可能比你道行要高。
有钱买块好表,比在自己有脖子上加条一指来粗的金链子让人看着有品味。
不要才开始相处就提结婚,也不要处了一年还不提结婚。
常关心一下你的女友,但关心不等于磨几。
衣服不用一天一换,但也不要一周也不换一次。
除非真有必要,一般人通常没必要去买8888那样的四联号。
永远不要夸你女友的女友,那会是她最忌讳的事情,最好是不要评价。
吃饭7成饱最舒服.对待女友最多也请你保持在7成.
事业远比爱情重要.如果说事业都不能永恒,那么爱情只能算是昙花一现.
请你相信,能用钱解决的问题,都不是问题.如果你认为钱索王道,有钱有女人,没钱没女人,那么.女人不是问题.
如果你和你前女友能做朋友,那么你要问自己:为什么?如果分手后还是朋友,那么只有2个可能:.你们当初都只是玩玩而已,没付出彼此最真的感情.或者:必定有个人是在默默的付出无怨无悔!
爱情永远不可能是天平.你想在爱情里幸福就要舍得伤心.
正确看待金钱的重要性,但是绝不认为金钱是一切。
接触新的观念和事物,保持年轻的心态。
不要非等到情人节,才肯花个三头五百去买花,平时的一块巧克力,她也会笑逐颜开
有剩余资金,可以考虑买房了。哪怕只够付个首期。
万事随缘,但不要放弃努力。
不要给自己太大压力,不要学做李嘉成,李嘉成当初也不知他会是今日的李嘉成
不要再认为你在玩别人的感情,对手可能比你道行要高。
有钱买块好表,比在自己有脖子上加条一指来粗的金链子让人看着有品味。
不要才开始相处就提结婚,也不要处了一年还不提结婚。
常关心一下你的女友,但关心不等于磨几。
衣服不用一天一换,但也不要一周也不换一次。
除非真有必要,一般人通常没必要去买8888那样的四联号。
永远不要夸你女友的女友,那会是她最忌讳的事情,最好是不要评价。
吃饭7成饱最舒服.对待女友最多也请你保持在7成.
事业远比爱情重要.如果说事业都不能永恒,那么爱情只能算是昙花一现.
请你相信,能用钱解决的问题,都不是问题.如果你认为钱索王道,有钱有女人,没钱没女人,那么.女人不是问题.
如果你和你前女友能做朋友,那么你要问自己:为什么?如果分手后还是朋友,那么只有2个可能:.你们当初都只是玩玩而已,没付出彼此最真的感情.或者:必定有个人是在默默的付出无怨无悔!
爱情永远不可能是天平.你想在爱情里幸福就要舍得伤心.
正确看待金钱的重要性,但是绝不认为金钱是一切。
接触新的观念和事物,保持年轻的心态。
插入→引用→索引和目录→目录
即可生成目录
但是你在编辑文档内容的时候要注意定义好章、节、条。
试图→文档结构图,只是个视图,方便生成后的目录和对应内容的删改。
也可修改目录:
在目录上右键,更新域,即可!
即可生成目录
但是你在编辑文档内容的时候要注意定义好章、节、条。
试图→文档结构图,只是个视图,方便生成后的目录和对应内容的删改。
也可修改目录:
在目录上右键,更新域,即可!
1、global属性,建议用对象来读取。
2、获取post或get传递的数据,建议用一个对象来处理,检测时同时需要考虑不同的处理情况。
3、ubb代码存入数据库时要转为标准html代码存入数据库,因为读的几率更高。
4、 对类中的方法,要尽量保证原子性,这样对于单元测试和后期维护都有利。
5、置顶和帖子属性是两个不同的内容,应该用不同的字段表示。也就是存储时尽量不要交叉。
6、继承方式不利于扩展性,组合方式更方便使用。
7、page、pagesize对每个分页程序都是必须的,所以应该把分页的逻辑也并入分页类中。
8、命名规则:需要规范的命名规则。
9、ajax传递时,如果需要html代码,也需要用模版。
10、程序上线前要检查,清理var_dump。
11、对于smarty模版,建议将需要的跳转定义在页头,这样可以对本页可能产生的业务逻辑更清楚。
12、header跳转后需要exit或return,否则后续代码会继续执行。
2、获取post或get传递的数据,建议用一个对象来处理,检测时同时需要考虑不同的处理情况。
3、ubb代码存入数据库时要转为标准html代码存入数据库,因为读的几率更高。
4、 对类中的方法,要尽量保证原子性,这样对于单元测试和后期维护都有利。
5、置顶和帖子属性是两个不同的内容,应该用不同的字段表示。也就是存储时尽量不要交叉。
6、继承方式不利于扩展性,组合方式更方便使用。
7、page、pagesize对每个分页程序都是必须的,所以应该把分页的逻辑也并入分页类中。
8、命名规则:需要规范的命名规则。
9、ajax传递时,如果需要html代码,也需要用模版。
10、程序上线前要检查,清理var_dump。
11、对于smarty模版,建议将需要的跳转定义在页头,这样可以对本页可能产生的业务逻辑更清楚。
12、header跳转后需要exit或return,否则后续代码会继续执行。
<?php
$a = array(
0=>array("uid"=>1,"score"=>22),
1=>array("uid"=>2,"score"=>33),
2=>array("uid"=>3,"score"=>55),
3=>array("uid"=>3,"score"=>55),
7=>array("uid"=>1,"score"=>39),
8=>array("uid"=>2,"score"=>33),
);
foreach($a as $key=> $values)
{
$sum[$values['uid']] += $values['score'];
}
print_r($sum);
?>
$a = array(
0=>array("uid"=>1,"score"=>22),
1=>array("uid"=>2,"score"=>33),
2=>array("uid"=>3,"score"=>55),
3=>array("uid"=>3,"score"=>55),
7=>array("uid"=>1,"score"=>39),
8=>array("uid"=>2,"score"=>33),
);
foreach($a as $key=> $values)
{
$sum[$values['uid']] += $values['score'];
}
print_r($sum);
?>
手册上写着:
Returns the amount of memory, in bytes
round(memory_get_usage()/1024/1024, 2).'MB';
http://www.aicaic.cn/wybc/sort0105/20306_3.html
Returns the amount of memory, in bytes
round(memory_get_usage()/1024/1024, 2).'MB';
http://www.aicaic.cn/wybc/sort0105/20306_3.html
向东(L)xiangdong.org 说:
姜宇:框架这个东西,从设计到使用,都需要相对较高的软件工程功底,也意味着更高的学习
成本……君不见java和.net的框架搞得红红火火,惨不忍睹的程序照样比比皆是。
至于ZF那玩意,呃…就个人而言,我到目前为止,仍然只承认那是一个极富有智慧的代
码包…
另外还有一个,在我个人认知里,框架与PHP的本身特性是存在一点抵触的,这个极点
是效率。所以,针对大型系统就来批评框架,貌似有些以偏概全。
向东(L)xiangdong.org 说:
:D牛不?
加密助手 说:
--- 系统提示: 以下会话未被加密 ---
王哲宾 说:
说得有道理
向东(L)xiangdong.org 说:
ZF那玩意,呃…就个人而言,我到目前为止,仍然只承认那是一个极富有智慧的代
码包
王哲宾 说:
他在哪写得?
向东(L)xiangdong.org 说:
他给我发的邮件。
王哲宾 说:
php确实是不适合于使用重量级的框架
向东(L)xiangdong.org 说:
层次清就OK,我觉得。。
王哲宾 说:
它的执行方式决定了它的这个特点
向东(L)xiangdong.org 说:
执行方式?什么方式
王哲宾 说:
php每一个脚本先全部载入所有资源,执行完毕后全部放弃,所以使用太重的框架,会极耗内存和计算资源
王哲宾 说:
也就是形成调用栈太深的现象
向东(L)xiangdong.org 说:
呵呵,就是经常出站入站。JAVA为何能?
王哲宾 说:
轻量框架和简单的分层还是一定要采用的。
王哲宾 说:
java的执行方式不一样,对于内存管理也不一样,有很多都是一次装入,之道jvm重启才被释放的
王哲宾 说:
完全不一样的执行原理
向东(L)xiangdong.org 说:
嗯,那样做为何还效率低下?
王哲宾 说:
java?
向东(L)xiangdong.org 说:
对呀。
王哲宾 说:
解析速度的问题
向东(L)xiangdong.org 说:
放内存了嘛。。
王哲宾 说:
另外,很多东西需要调入内存
王哲宾 说:
事务性,安全性等等很多基础性的服务,需要预先装入
王哲宾 说:
象php太简单了,压根不考虑这些
向东(L)xiangdong.org 说:
为此它也就快于Java的原因?就是一个简单。
王哲宾 说:
差不多
王哲宾 说:
啥都不考虑,能不快?
向东(L)xiangdong.org 说:
呵呵,也是,PHP 要是做得像java我想它也会慢上来的。
王哲宾 说:
象c也是全都不考虑,比php还快
王哲宾 说:
呵呵
王哲宾 说:
那当然
王哲宾 说:
出发点就不一样
王哲宾 说:
java是基于工业级应用产生的,php只是个人网站开发才出现的
王哲宾 说:
能一样吗
向东(L)xiangdong.org 说:
呵呵,也是。。java
定位和出生就不凡
向东(L)xiangdong.org 说:
我在想搞4年PHP后搞嘛去。。
哈哈。。。
向东(L)xiangdong.org 说:
先搞着,我昨天买了本Linux 下的c++,最近在学gtk.
姜宇:框架这个东西,从设计到使用,都需要相对较高的软件工程功底,也意味着更高的学习
成本……君不见java和.net的框架搞得红红火火,惨不忍睹的程序照样比比皆是。
至于ZF那玩意,呃…就个人而言,我到目前为止,仍然只承认那是一个极富有智慧的代
码包…
另外还有一个,在我个人认知里,框架与PHP的本身特性是存在一点抵触的,这个极点
是效率。所以,针对大型系统就来批评框架,貌似有些以偏概全。
向东(L)xiangdong.org 说:
:D牛不?
加密助手 说:
--- 系统提示: 以下会话未被加密 ---
王哲宾 说:
说得有道理
向东(L)xiangdong.org 说:
ZF那玩意,呃…就个人而言,我到目前为止,仍然只承认那是一个极富有智慧的代
码包
王哲宾 说:
他在哪写得?
向东(L)xiangdong.org 说:
他给我发的邮件。
王哲宾 说:
php确实是不适合于使用重量级的框架
向东(L)xiangdong.org 说:
层次清就OK,我觉得。。
王哲宾 说:
它的执行方式决定了它的这个特点
向东(L)xiangdong.org 说:
执行方式?什么方式
王哲宾 说:
php每一个脚本先全部载入所有资源,执行完毕后全部放弃,所以使用太重的框架,会极耗内存和计算资源
王哲宾 说:
也就是形成调用栈太深的现象
向东(L)xiangdong.org 说:
呵呵,就是经常出站入站。JAVA为何能?
王哲宾 说:
轻量框架和简单的分层还是一定要采用的。
王哲宾 说:
java的执行方式不一样,对于内存管理也不一样,有很多都是一次装入,之道jvm重启才被释放的
王哲宾 说:
完全不一样的执行原理
向东(L)xiangdong.org 说:
嗯,那样做为何还效率低下?
王哲宾 说:
java?
向东(L)xiangdong.org 说:
对呀。
王哲宾 说:
解析速度的问题
向东(L)xiangdong.org 说:
放内存了嘛。。
王哲宾 说:
另外,很多东西需要调入内存
王哲宾 说:
事务性,安全性等等很多基础性的服务,需要预先装入
王哲宾 说:
象php太简单了,压根不考虑这些
向东(L)xiangdong.org 说:
为此它也就快于Java的原因?就是一个简单。
王哲宾 说:
差不多
王哲宾 说:
啥都不考虑,能不快?
向东(L)xiangdong.org 说:
呵呵,也是,PHP 要是做得像java我想它也会慢上来的。
王哲宾 说:
象c也是全都不考虑,比php还快
王哲宾 说:
呵呵
王哲宾 说:
那当然
王哲宾 说:
出发点就不一样
王哲宾 说:
java是基于工业级应用产生的,php只是个人网站开发才出现的
王哲宾 说:
能一样吗
向东(L)xiangdong.org 说:
呵呵,也是。。java
定位和出生就不凡
向东(L)xiangdong.org 说:
我在想搞4年PHP后搞嘛去。。
哈哈。。。
向东(L)xiangdong.org 说:
先搞着,我昨天买了本Linux 下的c++,最近在学gtk.
profiling 基础
http://www.xaprb.com/blog/2006/10/12/how-to-profile-a-query-in-mysql/
http://www.xaprb.com/blog/2006/10/15/a-case-study-in-profiling-queries-in-mysql/
http://www.xaprb.com/blog/2006/10/17/mysql-profiling-case-study-part-2/
profiling 进阶
http://www.mysqlperformanceblog.com/2009/01/19/profiling-mysql-stored-routines/
http://www.mysqlperformanceblog.com/2008/05/18/wanted-better-memory-profiling-for-mysql/
maatkit--perldoc mk-query-profiler
profiling高级
http://dev.mysql.com/tech-resources/articles/pro-mysql-ch6.html
http://dev.mysql.com/tech-resources/articles/using-new-query-profiler.html
profiling骨灰级
http://www.scribd.com/doc/2669413/DTrace-and-MySQL-Presentation
http://forge.mysql.com/wiki/Using_DTrace_with_MySQL
http://wikis.sun.com/display/BluePrints/Optimizing+MySQL+Database+Application+Performance+with+Solaris+Dynamic+Tracing
http://www.xaprb.com/blog/2006/10/12/how-to-profile-a-query-in-mysql/
http://www.xaprb.com/blog/2006/10/15/a-case-study-in-profiling-queries-in-mysql/
http://www.xaprb.com/blog/2006/10/17/mysql-profiling-case-study-part-2/
profiling 进阶
http://www.mysqlperformanceblog.com/2009/01/19/profiling-mysql-stored-routines/
http://www.mysqlperformanceblog.com/2008/05/18/wanted-better-memory-profiling-for-mysql/
maatkit--perldoc mk-query-profiler
profiling高级
http://dev.mysql.com/tech-resources/articles/pro-mysql-ch6.html
http://dev.mysql.com/tech-resources/articles/using-new-query-profiler.html
profiling骨灰级
http://www.scribd.com/doc/2669413/DTrace-and-MySQL-Presentation
http://forge.mysql.com/wiki/Using_DTrace_with_MySQL
http://wikis.sun.com/display/BluePrints/Optimizing+MySQL+Database+Application+Performance+with+Solaris+Dynamic+Tracing
第一步,模拟登录界面,向https://reg.163.com/logins.jsp发送请求
注意curl函数一定要设置cookie的目录,以便日后读取.
可以这样设置curl_setopt( $ch, CURLOPT_COOKIEJAR, COOKIEJAR );
COOKIEJAR为自己定义的保存COOKIE的常量, 注意这个文件一定要可写
第二步, 获取cookie,向http://fm163.163.com/coremail/fc ... ifycookie=1&lightweight=1发送请求
curl_setopt( $ch, CURLOPT_COOKIEFILE, COOKIEJAR );
curl_setopt( $ch, CURLOPT_COOKIEJAR, COOKIEJAR );
这两块设置很关键
第三步,读取cookie
文件读写,从 COOKIEJAR 中读取.
获取cookieid.
第四步,发送请求http://g1a126.mail.163.com/a/s?sid=".$cookieid."&func=global:sequential
curl_setopt( $ch, CURLOPT_HTTPHEADER, array( "Content-Type: application/xml" ) );
$str = "user:getSignatures pab:getAllGroups ";
xml为发送请求的串.
注意curl函数一定要设置cookie的目录,以便日后读取.
可以这样设置curl_setopt( $ch, CURLOPT_COOKIEJAR, COOKIEJAR );
COOKIEJAR为自己定义的保存COOKIE的常量, 注意这个文件一定要可写
第二步, 获取cookie,向http://fm163.163.com/coremail/fc ... ifycookie=1&lightweight=1发送请求
curl_setopt( $ch, CURLOPT_COOKIEFILE, COOKIEJAR );
curl_setopt( $ch, CURLOPT_COOKIEJAR, COOKIEJAR );
这两块设置很关键
第三步,读取cookie
文件读写,从 COOKIEJAR 中读取.
获取cookieid.
第四步,发送请求http://g1a126.mail.163.com/a/s?sid=".$cookieid."&func=global:sequential
curl_setopt( $ch, CURLOPT_HTTPHEADER, array( "Content-Type: application/xml" ) );
$str = "
xml为发送请求的串.
config.php
url拼合代码:
define('BLOGBINDURL',"http://in-o.xianguo.com/sina/blogbind?email=%s&puid=%s&blogurl=%s&action=%s&apikey=%s&time=%s&securitykey=%s"); //测试
url拼合代码:
/**
* 绑定博客
*
* @param string $email 用户邮箱
* @param int $uid 用户uid
* @param string $blogurl 博客url
* @param int $action 操作类型 0 绑定 1 删除
* @return boolean
* 0:失败/1:成功
*/
public function bindblog($email,$uid,$blogurl,$action)
{
$time = time();
$securitykey = md5($uid . BIND_BLOG_APIKEY . $time . BIND_BLOG_PRIKEY);
$url = sprintf(BLOGBINDURL, urlencode($email), urlencode($uid), urlencode($blogurl), urlencode($action), urlencode($apikey), urlencode($time), urlencode($securitykey));
$flag = Check::request($url,$result);
if(1 == $flag) {
$resultReturn = json_decode($result,True);
if(0 === $resultReturn['status'])
return 1;
if(1 === $resultReturn['status'])
return 0;
} else {
return 0;
}
}
* 绑定博客
*
* @param string $email 用户邮箱
* @param int $uid 用户uid
* @param string $blogurl 博客url
* @param int $action 操作类型 0 绑定 1 删除
* @return boolean
* 0:失败/1:成功
*/
public function bindblog($email,$uid,$blogurl,$action)
{
$time = time();
$securitykey = md5($uid . BIND_BLOG_APIKEY . $time . BIND_BLOG_PRIKEY);
$url = sprintf(BLOGBINDURL, urlencode($email), urlencode($uid), urlencode($blogurl), urlencode($action), urlencode($apikey), urlencode($time), urlencode($securitykey));
$flag = Check::request($url,$result);
if(1 == $flag) {
$resultReturn = json_decode($result,True);
if(0 === $resultReturn['status'])
return 1;
if(1 === $resultReturn['status'])
return 0;
} else {
return 0;
}
}
首先我们看一下php手册中关于删除cookie的说明
------以下引用php手册内容--------------
要删除 cookie 需要确保它的失效期是在过去,才能触发浏览器的删除机制。
下面的例子说明了如何删除刚才设置的 cookie: 例子 2. setcookie() 删除
例子
// 将过期时间设为一小时前
删除一个cookie的方法就是把这个cookie的有效期设置为当前时间以前,这
也是几乎所有php程序员都会这么做。
后来一个初接触php的朋友告诉我,他在程序中本想把一个cookie的值设置为
空,结果导致这个cookie直接被删除。我当时的第一反应是不相信,于是测试
了一下
空.于是用winsock抓包,观察返回的http头,发现http头竟然是
这说明setcookie("testcookie", '');的的确确是将testcookie这个cookie直
接删除.而关于这种情况在php手册中完全没有说明.
最后阅读php源码,终于发现真相(这就是开源的好处了,有什么不清楚的内幕
直接查源码)
以下代码可以在php5.20的linux源码包中ext/standard/head.c第99行附近找到.
源码中清清楚楚的显示,if (value && value_len == 0) ,当value_len为0
时
sprintf(cookie, "Set-Cookie: %s=deleted; expires=%s", name, dt);
会发送删除cookie的http头给浏览器.
最后我们可以得出结论,在php中使用
setcookie($cookiename, '');或者 setcookie($cookiename, NULL);
都会删除cookie,当然这些手册中并没有。
------以下引用php手册内容--------------
bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure]]]]] )
要删除 cookie 需要确保它的失效期是在过去,才能触发浏览器的删除机制。
下面的例子说明了如何删除刚才设置的 cookie: 例子 2. setcookie() 删除
例子
// 将过期时间设为一小时前
setcookie("TestCookie", "", time() - 3600);
setcookie("TestCookie", "", time() - 3600, "/~rasmus/", ".utoronto.ca", 1);
----------------引用结束--------------------------setcookie("TestCookie", "", time() - 3600, "/~rasmus/", ".utoronto.ca", 1);
删除一个cookie的方法就是把这个cookie的有效期设置为当前时间以前,这
也是几乎所有php程序员都会这么做。
后来一个初接触php的朋友告诉我,他在程序中本想把一个cookie的值设置为
空,结果导致这个cookie直接被删除。我当时的第一反应是不相信,于是测试
了一下
setcookie("testcookie", '');
print_r($_COOKIE);
结果果然是整个$_COOKIE数组都是空的,而非仅仅$_COOKIE['testcookie']为print_r($_COOKIE);
空.于是用winsock抓包,观察返回的http头,发现http头竟然是
Set-Cookie: testcookie=deleted; expires=Mon, 18-Jun-2007 02:42:33 GMT
这说明setcookie("testcookie", '');的的确确是将testcookie这个cookie直
接删除.而关于这种情况在php手册中完全没有说明.
最后阅读php源码,终于发现真相(这就是开源的好处了,有什么不清楚的内幕
直接查源码)
以下代码可以在php5.20的linux源码包中ext/standard/head.c第99行附近找到.
if (value && value_len == 0) {
/*
* MSIE doesn't delete a cookie when you set it to a null value
* so in order to force cookies to be deleted, even on MSIE, we
* pick an expiry date 1 year and 1 second in the past
*/
time_t t = time(NULL) - 31536001;
dt = php_format_date("D, d-M-Y H:i:s T", sizeof("D, d-M-Y H:i:s T")-1, t, 0 TSRMLS_CC);
sprintf(cookie, "Set-Cookie: %s=deleted; expires=%s", name, dt);
efree(dt);
} else {
sprintf(cookie, "Set-Cookie: %s=%s", name, value ? encoded_value : "");
if (expires > 0) {
strcat(cookie, "; expires=");
dt = php_format_date("D, d-M-Y H:i:s T", sizeof("D, d-M-Y H:i:s T")-1, expires, 0 TSRMLS_CC);
strcat(cookie, dt);
efree(dt);
}
}
/*
* MSIE doesn't delete a cookie when you set it to a null value
* so in order to force cookies to be deleted, even on MSIE, we
* pick an expiry date 1 year and 1 second in the past
*/
time_t t = time(NULL) - 31536001;
dt = php_format_date("D, d-M-Y H:i:s T", sizeof("D, d-M-Y H:i:s T")-1, t, 0 TSRMLS_CC);
sprintf(cookie, "Set-Cookie: %s=deleted; expires=%s", name, dt);
efree(dt);
} else {
sprintf(cookie, "Set-Cookie: %s=%s", name, value ? encoded_value : "");
if (expires > 0) {
strcat(cookie, "; expires=");
dt = php_format_date("D, d-M-Y H:i:s T", sizeof("D, d-M-Y H:i:s T")-1, expires, 0 TSRMLS_CC);
strcat(cookie, dt);
efree(dt);
}
}
源码中清清楚楚的显示,if (value && value_len == 0) ,当value_len为0
时
sprintf(cookie, "Set-Cookie: %s=deleted; expires=%s", name, dt);
会发送删除cookie的http头给浏览器.
最后我们可以得出结论,在php中使用
setcookie($cookiename, '');或者 setcookie($cookiename, NULL);
都会删除cookie,当然这些手册中并没有。
做ROR有一年了, 感觉非常好.配合敏捷实践(除了pair, 由于是和美国工程师远程合作.)开发速度的确快.一共三个人写代码,短短半年, 项目就基本结束了....
现在新项目即将到来, 客户在php和rails之间难以取舍. 我也打算趁此机会了解一下php.
由于项目定制性还是比较高,想通过成熟的CMS等系统来改改估计是没戏。
从头开发又觉得太慢。于是想从开源框架入手。
经过了解才发现, php新兴的一些框架基本上清一色的学习(或者叫抄袭,特别是cakePHP, 那简直抄得太厉害了.)rails。而且这些框架还发展的很好,越来越受到php社区的欢迎。 比如国外cakePHP,国内的Fleaphp, QeePHP等等,就不一一列举了.
昨天用cakePHP做了个简单的demo, 确实抄rails那是抄的相当直白。 甚至连rake都还有相应的东西代替。除了migration和filter我没找到对应的东西。让我一个不懂php的人,都还是可以很快地上手了.
一方面感叹php抄rails这种彻底,另一方面也感叹这些抄袭之作的确也带来了php开发效率的提升。虽然由于php本身的原因,框架的引入对性能的影响是比较大的。但是这些框架的出现大有重整php社区的意思。(至少客户就告诉我们,用rails不如用cakePHP,这样他们也不会引入更多风险。他们还介绍他们美国几个团队都又从rails转回cakePHP了.)
我就纳闷儿了,当时还觉得rails就是冲着php的市场去的。。。现在反而觉得rails的思想拯救了php...
大家觉得是应该继续说服客户呢? 还是就用山寨rails了呢?
PHP和Python/Ruby的运行机制有一个本质区别:PHP是每次HTTP请求过来以后,初始化全部资源(例如创建数据库链接、加载系统类库,创建缓存等等),处理完毕,释放全部资源,这不像Python/Ruby之类带有GC的脚本语言,Python/Ruby是初次启动的时候初始化资源,随后的请求就不必再次初始化资源了。
这种机制的差异带来的区别就是:
1、PHP极难出现严重的内存泄露问题,随便你代码写的多烂,反正每个请求一执行完毕,所有资源统统释放光。而Python/Ruby则需要依赖GC来回收内存,因此稍有不慎,还是会出现GC无法释放的内存泄露问题。
2、PHP每次请求都要初始化资源,这个开销非常大。所以尽管PHP解析器本身的运行速度是极快的,但是一旦使用复杂的PHP框架,那么由于需要每次请求的时候初始化整个框架,性能的下降非常厉害,你用一个很复杂的PHP框架的结果就是整体性能被Ruby远远甩开。这也是为什么PHP社区这么多年来,并不怎么倾向于使用框架的原因之一。
3、由于PHP这种每请求初始化资源的机制,也造成了PHP添加跨请求的高级特性相当困难,这是PHP本身一个很大的限制,但是反过来说,正是这种限制使得PHP始终保持在一个比较简单的web语言上面,而正是这一点才是PHP得以成为互联网第一Web编程语言的原因,因此也未必就不好。
总之,PHP和Ruby的差异还是很大的,不适合放在一起比较,其实应该比较的是Ruby和Python才对。
所以我觉得Rails这种框架性做法被PHP跟风以后,其实是把PHP带上了邪路,所以不如说是Rails在误导PHP的发展。顺便多说一句:DHH在编写basecamp之前,一直是用PHP的,并且自己还写了一个PHP的快速开发框架,他改用ruby以后,把当初自己写的PHP框架也移植过来了,这个框架实际上是Rails最初的原型。那么为什么DHH当初不直接基于PHP做Rails呢?非要改用ruby以后,才发表rails呢?你看看PHP这种运行机制就知道了,PHP做复杂的web开发框架并不是一条光明的道路。
PHP做复杂框架肯定是一个慢。
但做前端处理简直是简单,随意这么整都行,非常适用于容易变化的前端开发。而后端可以用各种高级的东西。
貌似很多高访问量的大网站就是这么搞的。
可以考虑一下 symfony php framework,有一些自己的特点, cakephp 太模仿 rails 了。
现在新项目即将到来, 客户在php和rails之间难以取舍. 我也打算趁此机会了解一下php.
由于项目定制性还是比较高,想通过成熟的CMS等系统来改改估计是没戏。
从头开发又觉得太慢。于是想从开源框架入手。
经过了解才发现, php新兴的一些框架基本上清一色的学习(或者叫抄袭,特别是cakePHP, 那简直抄得太厉害了.)rails。而且这些框架还发展的很好,越来越受到php社区的欢迎。 比如国外cakePHP,国内的Fleaphp, QeePHP等等,就不一一列举了.
昨天用cakePHP做了个简单的demo, 确实抄rails那是抄的相当直白。 甚至连rake都还有相应的东西代替。除了migration和filter我没找到对应的东西。让我一个不懂php的人,都还是可以很快地上手了.
一方面感叹php抄rails这种彻底,另一方面也感叹这些抄袭之作的确也带来了php开发效率的提升。虽然由于php本身的原因,框架的引入对性能的影响是比较大的。但是这些框架的出现大有重整php社区的意思。(至少客户就告诉我们,用rails不如用cakePHP,这样他们也不会引入更多风险。他们还介绍他们美国几个团队都又从rails转回cakePHP了.)
我就纳闷儿了,当时还觉得rails就是冲着php的市场去的。。。现在反而觉得rails的思想拯救了php...
大家觉得是应该继续说服客户呢? 还是就用山寨rails了呢?
PHP和Python/Ruby的运行机制有一个本质区别:PHP是每次HTTP请求过来以后,初始化全部资源(例如创建数据库链接、加载系统类库,创建缓存等等),处理完毕,释放全部资源,这不像Python/Ruby之类带有GC的脚本语言,Python/Ruby是初次启动的时候初始化资源,随后的请求就不必再次初始化资源了。
这种机制的差异带来的区别就是:
1、PHP极难出现严重的内存泄露问题,随便你代码写的多烂,反正每个请求一执行完毕,所有资源统统释放光。而Python/Ruby则需要依赖GC来回收内存,因此稍有不慎,还是会出现GC无法释放的内存泄露问题。
2、PHP每次请求都要初始化资源,这个开销非常大。所以尽管PHP解析器本身的运行速度是极快的,但是一旦使用复杂的PHP框架,那么由于需要每次请求的时候初始化整个框架,性能的下降非常厉害,你用一个很复杂的PHP框架的结果就是整体性能被Ruby远远甩开。这也是为什么PHP社区这么多年来,并不怎么倾向于使用框架的原因之一。
3、由于PHP这种每请求初始化资源的机制,也造成了PHP添加跨请求的高级特性相当困难,这是PHP本身一个很大的限制,但是反过来说,正是这种限制使得PHP始终保持在一个比较简单的web语言上面,而正是这一点才是PHP得以成为互联网第一Web编程语言的原因,因此也未必就不好。
总之,PHP和Ruby的差异还是很大的,不适合放在一起比较,其实应该比较的是Ruby和Python才对。
所以我觉得Rails这种框架性做法被PHP跟风以后,其实是把PHP带上了邪路,所以不如说是Rails在误导PHP的发展。顺便多说一句:DHH在编写basecamp之前,一直是用PHP的,并且自己还写了一个PHP的快速开发框架,他改用ruby以后,把当初自己写的PHP框架也移植过来了,这个框架实际上是Rails最初的原型。那么为什么DHH当初不直接基于PHP做Rails呢?非要改用ruby以后,才发表rails呢?你看看PHP这种运行机制就知道了,PHP做复杂的web开发框架并不是一条光明的道路。
PHP做复杂框架肯定是一个慢。
但做前端处理简直是简单,随意这么整都行,非常适用于容易变化的前端开发。而后端可以用各种高级的东西。
貌似很多高访问量的大网站就是这么搞的。
可以考虑一下 symfony php framework,有一些自己的特点, cakephp 太模仿 rails 了。
在中央民族大学光学毕业的我,回过头一看,我们学校还准备开设光学研究生,呵呵:
光学专业硕士研究生培养方案.doc
光学专业硕士研究生培养方案.doc
拷贝如下代码,保存为clean.bat,(后缀为bat),双击即可开始清理:
@echo off
echo 正在清除系统垃圾文件,请稍等......
del /f /s /q %systemdrive%\*.tmp
del /f /s /q %systemdrive%\*._mp
del /f /s /q %systemdrive%\*.log
del /f /s /q %systemdrive%\*.gid
del /f /s /q %systemdrive%\*.chk
del /f /s /q %systemdrive%\*.old
del /f /s /q %systemdrive%\recycled\*.*
del /f /s /q %windir%\*.bak
del /f /s /q %windir%\prefetch\*.*
rd /s /q %windir%\temp & md %windir%\temp
del /f /q %userprofile%\cookies\*.*
del /f /q %userprofile%\recent\*.*
del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*"
del /f /s /q "%userprofile%\Local Settings\Temp\*.*"
del /f /s /q "%userprofile%\recent\*.*"
echo 清除系统LJ完成!
echo. & pause
echo 正在清除系统垃圾文件,请稍等......
del /f /s /q %systemdrive%\*.tmp
del /f /s /q %systemdrive%\*._mp
del /f /s /q %systemdrive%\*.log
del /f /s /q %systemdrive%\*.gid
del /f /s /q %systemdrive%\*.chk
del /f /s /q %systemdrive%\*.old
del /f /s /q %systemdrive%\recycled\*.*
del /f /s /q %windir%\*.bak
del /f /s /q %windir%\prefetch\*.*
rd /s /q %windir%\temp & md %windir%\temp
del /f /q %userprofile%\cookies\*.*
del /f /q %userprofile%\recent\*.*
del /f /s /q "%userprofile%\Local Settings\Temporary Internet Files\*.*"
del /f /s /q "%userprofile%\Local Settings\Temp\*.*"
del /f /s /q "%userprofile%\recent\*.*"
echo 清除系统LJ完成!
echo. & pause
尽职尽责升级版本:躬身主动、一专多能、不等不靠、互相补台。
我们后方配备的先进设备、优质资源,应该在前线一发现目标和机会时就能及时发挥作用,提供有效的支持,而不是拥有资源的人来指挥战争、拥兵自重。谁来呼唤炮火,应该让听得见炮声的人来决策。
阅读全文
我们后方配备的先进设备、优质资源,应该在前线一发现目标和机会时就能及时发挥作用,提供有效的支持,而不是拥有资源的人来指挥战争、拥兵自重。谁来呼唤炮火,应该让听得见炮声的人来决策。
