月度归档:2012年08月

最近犯了老毛病肠胃炎

最近犯了老毛病肠胃炎,吃上点东西都不消化,老难受了。

我得好好调理一下(找度娘):

1、从生活作息上做起,最起码一天三顿要定时定量,最好给自己设定一个时间表,然后严格遵守。这同时会对睡眠时间产生影响,因为一些晚睡晚起的人是早中餐一块吃的,这种习惯必须要改,并不是说晚上吃夜宵可以弥补过来的,因为人的生物钟虽然可以前后移动,但总是在一定范围内,不可能产生太大的差别。如果不相信的话,可以去查一下相关人体生物钟的资料。

2、一般,胃消化功能不好的人,症状是吃一点点就会饱,稍微多吃一点就会胃胀,特别在晚上多吃的话,还会因为胃部滞胀而影响入睡。硬的、纤维类的东西不好消化。因而建议少吃多餐,如果还没到正餐时间,可以补充一些食物,但不宜过多,一定要记住这不是正餐,正餐还是要按正常来吃。食物以软、松为主,一些比较韧性、爽口的东西不宜多吃,因为这些东西最难消化。汤最好饭前喝,饭后喝也会增加消化困难。入睡前两三个小时都最好不要吃东西,否则容易影响入睡,如果觉得肚子空可以多喝水。

3、胃病的人应该戒烟、酒、咖啡、浓茶、碳酸性饮品(汽水)、酸辣等刺激性食物,这些都是最伤胃的。胃的脾性喜燥恶寒,因而冷饮和雪糕也必须要戒,食物以热为好,这对于任何人都是一个考验,特别是酷暑时节。有两种饮料应该多喝,一是牛奶,二是热水。牛奶可以形成一层胃的保护膜,每天早上起床后先喝一杯牛奶,在吃东西,是再好不过的。多喝水,特别是热水,因为人在大部分情况下会把缺水误认为是饥饿。

4、豆奶虽好,但为寒性,不能取代牛奶。

5、馒头可以养胃,不妨试试作为主食。

6、其他蔬菜水果类的食物是人体不能缺乏的,所以应该足量。但最好煮得软一点再吃,这样胃会好受一点。菜和果皮的纤维比较多,可以适度食用,但不宜太多,不容易消化,因而瓜果可以相对多吃。

7、有胃病的人饭后不宜运动,最好休息一下等胃部的食物消化得差不多了再开始工作,或者慢步行走,也对消化比较好,总之,餐后不宜工作。

8、非急性情况下,不提倡吃药,因为长期吃药都有副作用,而胃病是一种慢性病,不可能在短期内治愈。如果需要,提倡去看中医,中医的良方对于养胃特别有效。

9、木瓜适合胃的脾性,可以当作养胃食物,不过对于胃酸较多的人,不要使用太多。而且,一定要记住,胃喜燥恶寒,除了冰的东西以外,其他寒凉的食物像绿豆沙等也都不宜多吃。

10、再提一次,胃病是一种慢性病,不可能在短期内治好。治病良方就是靠“养”,急不来,只能从生活习惯的改良中获得。我们都需要一个好的胃,这些习惯的改变都是必需的。

 

希望和我一样有此毛病的人要注意了。要不然以后的生活,看着别人吃肉,自己喝汤。

php中时间相关处理

关于 MySQL LEFT JOIN 你可能需要了解的三点

即使你认为自己已对 MySQL 的 LEFT JOIN 理解深刻,但我敢打赌,这篇文章肯定能让你学会点东西!

  • ON 子句与 WHERE 子句的不同
  • 一种更好地理解带有 WHERE … IS NULL 子句的复杂匹配条件的简单方法
  • Matching-Conditions 与 Where-conditions 的不同

关于 “A LEFT JOIN B ON 条件表达式” 的一点提醒

ON 条件(“A LEFT JOIN B ON 条件表达式”中的ON)用来决定如何从 B 表中检索数据行。

如果 B 表中没有任何一行数据匹配 ON 的条件,将会额外生成一行所有列为 NULL 的数据

在匹配阶段 WHERE 子句的条件都不会被使用。仅在匹配阶段完成以后,WHERE 子句条件才会被使用。它将从匹配阶段产生的数据中检索过滤。

让我们看一个 LFET JOIN 示例:

ON 子句和 WHERE 子句有什么不同?

一个问题:下面两个查询的结果集有什么不同么?

第一条查询使用 ON 条件决定了从 LEFT JOIN的 product_details表中检索符合的所有数据行。

第二条查询做了简单的LEFT JOIN,然后使用 WHERE 子句从 LEFT JOIN的数据中过滤掉不符合条件的数据行。

再来看一些示例:

所有来自product表的数据行都被检索到了,但没有在product_details表中匹配到记录(product.id = product_details.id AND product.amount=100 条件并没有匹配到任何数据)

同样,所有来自product表的数据行都被检索到了,有一条数据匹配到了。

使用 WHERE … IS NULL 子句的 LEFT JOIN

当你使用 WHERE … IS NULL 子句时会发生什么呢?

如前所述,WHERE 条件查询发生在 匹配阶段之后,这意味着 WHERE … IS NULL 子句将从匹配阶段后的数据中过滤掉不满足匹配条件的数据行。

纸面上看起来很清楚,但是当你在 ON 子句中使用多个条件时就会感到困惑了。

我总结了一种简单的方式来理解上述情况:

  • 将 IS NULL 作为否定匹配条件
  • 使用 !(A and B) == !A OR !B 逻辑判断

看看下面的示例:

让我们检查一下 ON 匹配子句:
(a.id=b.id) AND (b.weight!=44) AND (b.exist=0)
我们可以把 IS NULL 子句 看作是否定匹配条件。

这意味着我们将检索到以下行:

就像在C语言中的逻辑 AND 和 逻辑 OR表达式一样,其操作数是从左到右求值的。如果第一个参数做够判断操作结果,那么第二个参数便不会被计算求值(短路效果)

看看别的示例:

Matching-Conditions 与 Where-conditions 之战
如果你吧基本的查询条件放在 ON 子句中,把剩下的否定条件放在 WHERE 子句中,那么你会获得相同的结果。
例如,你可以不这样写:

你可以这样写:

你可以不这样写:


可以这样写:

这些查询真的效果一样?
如果你只需要第一个表中的数据的话,这些查询会返回相同的结果集。有一种情况就是,如果你从 LEFT JOIN的表中检索数据时,查询的结果就不同了。
如前所属,WHERE 子句是在匹配阶段之后用来过滤的。
例如:

总附注:
如果你使用 LEFT JOIN 来寻找在一些表中不存在的记录,你需要做下面的测试:WHERE 部分的col_name IS NULL(其中 col_name 列被定义为 NOT NULL),MYSQL 在查询到一条匹配 LEFT JOIN 条件后将停止搜索更多行(在一个特定的组合键下)。
原文链接 OSChina.NET原创翻译

LAMP网站架构方案分析

LAMP(Linux-Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框 架包括:Linux操作系统,Apache网络服务器,MySQL数据库,Perl、PHP或者Python编程语言,所有组成产品均是开源软件,是国际 上成熟的架构框架,很多流行的商业应用都是采取这个架构,和Java/J2EE架构相比,LAMP具有Web资源丰富、轻量、快速开发等特点,微软 的.NET架构相比,LAMP具有通用、跨平台、高性能、低价格的优势,因此LAMP无论是性能、质量还是价格都是企业搭建网站的首选平台。

对于大流量、大并发量的网站系统架构来说,除了硬件上使用高性能的服务器、负载均衡、CDN等之外,在软件架构上需要重点关注下面几个环节:使用高性能 的操作系统(OS)、高性能的网页服务器(Web Server)、高性能的数据库(Databse)、高效率的编程语言等。下面我将从这几点对其一一讨论。

操作系统

Linux操作系统有很多个不同的发行版,如Red Hat Enterprise Linux、SUSE Linux Enterprice、Debian、Ubuntu、CentOS等,每一个发行版都有自己的特色,比如RHEL的稳定,Ubuntu的易用,基于稳定性 和性能的考虑,操作系统选择CentOS(Community ENTerprise Operating System)是一个理想的方案。

CentOS(Community ENTerprise Operating System)是Linux发行版之一,是RHEL/Red Hat Enterprise Linux的精简免费版,和RHEL为同样的源代码,不过,RHEL和SUSE LE等企业版,提供的升级服务均是收费升级,无法免费在线升级,因此要求免费的高度稳定性的服务器可以用CentOS替代Red Hat Enterprise Linux使用。

LAMP网站架构图

  Web服务器、缓存和PHP加速

Apache是LAMP架构最核心的Web Server,开源、稳定、模块丰富是Apache的优势。但Apache的缺点是有些臃肿,内存和CPU开销大,性能上有损耗,不如一些轻量级的Web 服务器(例如nginx)高效,轻量级的Web服务器对于静态文件的响应能力来说远高于Apache服务器。

Apache做为Web Server是负载PHP的最佳选择,如果流量很大的话,可以采用nginx来负载非PHP的Web请求。nginx是一个高性能的HTTP和反向代理服 务器,Nginx以它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。Nginx不支持PHP和CGI等动态语言,但支持负载均衡和容 错,可和Apache配合使用,是轻量级的HTTP服务器的首选。

Web服务器的缓存也有多种方案,Apache提供了自己的缓存模 块,也可以使用外加的Squid模块进行缓存,这两种方式均可以有效的提高Apache的访问响应能力。Squid Cache是一个Web缓存服务器,支持高效的缓存,可以作为网页服务器的前置cache服务器缓存相关请求来提高Web服务器的速度,把Squid放在 Apache的前端来缓存Web服务器生成的动态内容,而Web应用程序只需要适当地设置页面实效时间即可。如访问量巨大则可考虑使用memcache作 为分布式缓存。

PHP的加速使用eAccelerator加速器,eAccelerator是一个自由开放源码PHP加速器,优化和动 态内容缓存,提高了性能PHP脚本的缓存性能,使得PHP脚本在编译的状态下,对服务器的开销几乎完全消除。它还有对脚本起优化作用,以加快其执行效率。 使PHP程序代码执效率能提高1-10倍。

具体的解决方案有以下几种:

1、squid + Apache + PHP + eAccelerator

使用Apache负载PHP,使用squid进行缓存,html或图片的请求可以直接由squid返回给用户。很多大型网站都采用这种架构。

2、nginx/Apache + PHP(fastcgi) + eAccelerator

使用nginx或Apache负载PHP,PHP使用fastcgi方式运行,效率较高。

3、nginx + Apache + PHP + eAccelerator

此方案综合了nginx和Apache的优点,使用Apache负载PHP,nginx负责解析其他Web请求,使用nginx的rewrite模块,Apache端口不对外开放。

数据库

开源的数据库中,MySQL在性能、稳定性和功能上是首选,可以达到百万级别的数据存储,网站初期可以将MySQL和Web服务器放在一起,但是当访问 量达到一定规模后,应该将MySQL数据库从Web Server上独立出来,在单独的服务器上运行,同时保持Web Server和MySQL服务器的稳定连接。

当数据库访问量达到更大的级别,可以考虑使用MySQL Cluster等数据库集群或者库表散列等解决方案。

总的来说,LAMP架构的网站性能会远远优于Windows IIS + ASP + Access(例如月光博客)这样的网站,可以负载的访问量也非常大,国内的大量个人网站如果想要支撑大访问量,采用LAMP架构是一个不错的方案。

综上所述,基于LAMP架构设计具有成本低廉、部署灵活、快速开发、安全稳定等特点,是Web网络应用和环境的优秀组合。

本文地址:http://www.williamlong.info/archives/1908.html

php中将二维数组转换成一维数组

//将二维数组转换成为一维数组
//如下为二维数组
Array
(
[0] => Array
(
[card_id] => 24
)

[1] => Array
(
[card_id] => 23
)

[2] => Array
(
[card_id] => 22
)

[3] => Array
(
[card_id] => 21
)

)

//转换成为
array(4) {
[0]=>
int(24)
[1]=>
int(23)
[2]=>
int(22)
[3]=>
int(21)
}
//方法:
$re=array();
foreach ($result1 as $key=>$value) {

$re[$key] = $value[‘card_id’];

smarty页面中使用javascript要注意的{literal}

smarty页面中使用javascript要注意的{literal}

Smarty将所有大括号{}里的东西都视为自己的逻辑程序,于是我们在网页中想插入javascript函数就需要literal的帮忙了,literal的功能就是忽略大括号{}。

Literal 标签区域内的数据将被当作文本处理,此时模板将忽略其内部的所有字符信息. 该特性用于显示有可能包含大括号等字符信息的 javascript 脚本. 当这些信息处于 {literal}{/literal} 标签中时,模板引擎将不分析它们,而直接显示.

例:

{literal}
<script language=javascript>

<!–
function isblank(field) {
if (field.value == ”)
{ return false; }
else
{
document.loginform.submit();
return true;
}
}
// –>

</script>
{/literal}

php使用while each数组遍历

 

输出结果:

football: good

swimming: very well

running: not good