CODE, ARCHITECTURE & AI

2009 年 10 月.

按时间重新翻阅,那些值得留下的文字。

14 篇记录保持好奇,慢慢积累

php.ini的open_basedir参数设置与PHP文件操作存在的安全隐患

【php.ini中的open_basedir参数】 如果设置了open_basedir参数为一组目录列表,则PHP只能操作此组目录列表下的所有文件(包括文件自身)。 当一个脚本试图打开一个指定目录树之外的文件时,将遭到拒绝。所有的符号连接都会被解析,所以不可能通过符号连接来避开此限制。 特殊值'.'指定了存放该脚本的目录将被当做基准目录,但这有些危险,因为脚…
继续阅读 ↗

PHP的生命周期

PHP的生命周期 php本身的生命周期是在命令行执行php test.php程序的生命周期(也就是cli) 整个过程如下: 执行php test.php 调用每个扩展的模块初始化程序 请求test.php程序 调用每个扩展的请求初始化程序 执行test.php程序 调用每个扩展的请求关闭程序 释放内存等清除工作 调用每个扩展的模块关闭程序 终止php 如果P…
继续阅读 ↗

PHP扩展之smart_str分析

php_smart_str_public.h 在php_smart_str_public.h文件中我们找到了如下定义: typedef struct { char *c; size_t len; size_t a; } smart_str; 其中,size_t的定义 为:typedef unsigned int size_t; char *c 表示整个字符串…
继续阅读 ↗

获取远程大文件部分内容的方法

获取远程大文件部分内容的方法 【需求】 取远程文件的一部分,文件是以换行隔开,并且这个文件可能比较大 【第一次的方案】 这是我的第一个方案,也是很傻很天真却正确的方案, 这个在当时没有考虑到文件会比较大,而且也没有考虑下载时间过长,导致程序出错! 解决方案是使用PHP中的file()函数,这样会得到一个以行为单位的数组,然后是对这个数组的处理 file函数也…
继续阅读 ↗

去掉fsockopen返回结果中的HTTP头信息的2种方法

去掉fsockopen返回结果中的HTTP头信息的两种方法 1、【使用split或substr,strpos截断】 在返回的内容中HTTP头信息与正文内容是以两个“换行回车”隔开的所以我们可以在此截断,取之后的内容。 2、【先取Content-Length,然后截取】 在HTTP协议中,Content-Length字段是一个比较重要的字段,它标明了服务器返回…
继续阅读 ↗

4-Hanoi-Tower

问题描述 【描述 Description】 “汉诺塔”,是一个众所周知的古老游戏。现在我们把问题稍微改变一下:如果一共有4根柱子, 而不是3根,那么至少需要移动盘子多少次,才能把所有的盘子从第1根柱子移动到第4根柱子上呢? 为了编程方便,您只需要输出这个结果mod 10000的值。 【输入格式 Input Format】 一个正整数n。(0 #include…
继续阅读 ↗

新年趣事之打牌

问题描述 【描述 Description】 过年的时候,大人们最喜欢的活动,就是打牌了。xiaomengxian不会打牌,只好坐在一边看着。 这天,正当一群人打牌打得起劲的时候,突然有人喊道:“这副牌少了几张!”众人一数,果然是少了。于是这副牌的主人得意地说:“这是一幅特制的牌,我知道整副牌每一张的重量。只要我们称一下剩下的牌的总重量,就能知道少了哪些牌了。…
继续阅读 ↗