各大公司的PHP面试题 各大公司面试题
update 表名 set Date = GETDATE() where UserName = (is_file($folder.isort()
12. 写5个不同的自己的函数,来截取一个全路径的文件的扩展名,允许封装php库中已有的函数。
13. 一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停 的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n, 输出最后那个大王的编号
7、优化MYSQL数据库的方法。
(1).数据库设计方面,这是DBA和Architect的责任,设计结构良好的数据库,必要的时候,去正规化(英文是这个:denormalize,中文翻译成啥我不知道),允许部分数据冗余,避免JOIN操作,以提高查询效率
(2).系统架构设计方面,表散列,把海量数据散列到几个不同的表里面.快慢表,快表只留最新数据,慢表是历史存档.集群,主服务器Read & write,从服务器read only,或者N台服务器,各机器互为Master
(3).(1)和(2)超越pHp programmer的要求了,会更好,不会没关系.检查有没有少加索引
(4).写高效的SQL语句,看看有没有写低效的SQL语句,比如生成笛卡尔积的全连接啊,大量的Group By和order by,没有limit等等.必要的时候,把数据库逻辑封装到DBMS端的存储过程里面.缓存查询结果,explain每一个sql语句
(5).所得皆必须,只从数据库取必需的数据,比如查询某篇文章的评论数,select count(*) … where article_id = ? 就可以了,不要先select * … where article_id = ?然后msql_num_rows.
只传送必须的SQL语句,比如修改文章的时候,如果用户只修改了标题,那就… set title = ? where article_id = ?不要set content = ?(大文本)
(6).必要的时候用不同的存储引擎.比如InnoDB可以减少死锁.HEAp可以提高一个数量级的查询速度
————————————————————————
$s = ‘abc’;
if ($s==0)
echo ‘is zero
’;
else
echo ‘is not zero
’;
?>
好多人答错了,认为答案是输出字符串“is not zero”。其实正确答案应该是输出字符串“is zero”。
原因其实简单,因为 pHp 是一门弱类型的语言,它对变量没有“必须先定义再使用”的强制要求,变量的类型也是根据赋值的类型来灵活变化的。这一“灵活性”看似灵活,实际上埋下了错 误的隐患。虽然 $s = ‘abc’; 语句定义了变量 $s 为字符串类型,但因为 if ($s==0)语句中,$s 是和数字型常量比较,所以 $s 这时被隐含的转换成了数字型变量,其值是 0,所以 $s==0 比较的结果就为真。
犯这一类型错误的人一般是从 Java、C 等语言转到 pHp 开发的程序员,因为 Java、C 等语言是强类型语言,是不允许不同类型的变量和常量相互比较的,在这种情况下会报告语法错误。
其实 pHp 语言的开发者并不是没有
注意到这类问题,在 pHp 语言里还有一个严格比较的运算符“===”,要求比较的双方必须类型一致,把上述 if ($s==0) 语句写为 if ($s===0) 就会避免前述错误的发生。
———————————————————————————–
$str=”cd”;
$$str=”hotdog”; //$cd
$$str.=”ok”;
echo $cd; //hotdogok
?>
————————————————————————————–
9、 apache+mysql+php实现最大负载的方法
主要是配置文件的优化了,另外用linux跑要比用windows跑效果好一点。
mkdir创建目录 touch创建文件夹 修改权限chmod之类
51、请写出pHp5权限控制修饰符(3分)
private protected public
13、对于大流量的网站,您采用什么样的方法来解决访问量问题?(4分)
首先,确认服务器硬件是否足够支持当前的流量
其次,优化数据库访问。
第三,禁止外部的盗链。
第四,控制大文件的下载。
第五,使用不同主机分流主要流量
第六,使用流量分析统计软件。
htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。
htmlentities() 函数把字符转换为 HTML 实体。(htmlentities( )的转义更为彻底。)
SQL注入是很容易避免的。正如第一章所提及的,你必须坚持 过滤输入和转义输出。———
microtime 返回当前时间戳, mktime()取得指定的时间戳
//本页地址,当前脚本的名称.
echo $_SERVER[\pHp_SELF\].”
”;
//链接到当前页面的前一页面的 URL 地址:
echo $_SERVER[\HTTp_REFERER\].”
”;
3.在HTTp 1.0中,状态码 401 的含义是(4);如果返回“找不到文件”的提示,则可用 header 函数,
其语句为(5)。
(4)未授权 (5) header(“HTTp/1.0 404 Not Found”);———找不到文件
header(“HTTp/1.1 403 Forbidden”);———不允许访问
7.以Apache模块的方式安装pHp,在文件http.conf中首先要用语句(10)动态装载pHp模块,
然后再用语句(11)使得Apache把所有扩展名为php的文件都作为pHp脚本处理。
(10) LoadModule php5_module “c:/php/php5apache2.dll”
(11) AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php .php5 .php4 .php3 .phtml
9.类的属性可以序列化后保存到 session 中,从而以后可以恢复整个类,这要用到的函数是(14)。
serialize() /unserialize()
10.一个函数的参数不能是对变量的引用,除非在php.ini中把(15)设为on.
allow_call_time_pass_reference