MYSQL-master-slave实践

2010年5月24日 3 条评论

前两天在一台电脑上安装了两个mysql,一个端口是3306,一个是3307。

然后配置这两个mysql数据库,测试 master 和 slave 。

我的测试环境是 windows下,所以需要修改 mysql 安装目录下的 my.ini文件

首先,配置master。

在3306那个mysql的my.ini文件末尾,添加如下代码即可。

server-id = 1
log-bin=c:mysqllog/panlogs
binlog-do-db=panpan
binlog-ignore-db=

server-id = 1 是master的id号。slave的id我们设置为2.

log-bin=c:mysqllog/panlogs   是master的日志文件,存放地址和名称。

binlog-do-db=panpan   是说需要同步的数据库文件。 在这里 要同步的数据库名称为  panpan。如果备份多个数据库,重复设置这个选项即可。

binlog-ignore-db=    是不需要备份的数据库。

再设置 slave。同上,打开另外一个mysql的ini文件,在末尾添加:

server-id=2               #(配置多个从服务器时依次设置id号)
master-host=127.0.0.1   #主服务器IP地址(因为这里我是本机测试,所以填写的是127.0.0.1)
master-user=pan         #主服务器授权的用户名
master-password=123456     #主服务器授权的密码
master-port=3306          #主服务器的端口
replicate-do-db=panpan  #需要备份的数据库名,如果备份多个数据库,重复设置这个选项即可

在这里,基本已经大功告成。

但需要有几个地方注意

1、一般,我们会针对不同的数据库,添加不用的用户名,有不同的权限。所以,在配置slave的时候,主服务器(master)的用户,必须得有相应的权限。通过这个语句设置:grant file,select,replication slave on *.* to ‘pan’@’127.0.0.1′ identified by ’123456′;

2、查看master和slave状态。

在命令行下,进入myslq,通过 show master status; 查看 master的状态。 通过 show slave status; 查看slave的状态。

mysql> show master status;
+———————–+———-+————–+——————+
| File                      | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+———————–+———-+————–+——————+
|panlogs .000001 |       98 |  panpan    |                  |
+———————–+———-+————–+——————+

show slave status;
若看到:
Slave_IO_Running 和 Slave_SQL_Running 两列的值都为 “Yes”,这表明 Slave 的 I/O 和 SQL 线程都在正常运行.

3、在配置成功后,需要重启 两个 mysql,建议先重启 master,再重启 slave。

4、在slave的Data目录下,会生成master.info文件。建议在重启前,将这个文件删除掉。这是保存的 master的信息。重启的时候并不会更新这个。所以需要删除,重新生成。

5、其他问题还没遇到,如果你遇到了,欢迎留言。。。。

分类: MySQL 标签: ,

php获得服务器端IP和客户端IP

2010年5月24日 没有评论

php获得服务器端IP和客户端IP这在很多面试题中都会出现。

貌似方法也很多。其中涉及到了$_SERVER 的用法。

也有另外一种方法,也很简单,如下:

PHP获得客户端IP:

$ip=$_SERVER['REMOTE_ADDR'];

直接采用$_SERVER即可。

PHP获得服务器端IP:

$domain =  $_SERVER['HTTP_HOST'];
$ip=gethostbyname($domain);

这在PHP3 4 5都通用。

其中,与gethostbyname相似的还有 gethostbynamel() 这个函数。只不过gethostbynamel() 这个返回的是一个数组。

具体不同,去查阅手册。

php遍历一个文件夹下的所有文件和子文件夹

2010年5月20日 1 条评论

在面试中我们经常遇到这个题目:php遍历一个文件夹下的所有文件和子文件夹。

这个题目有好多种解决方法。但大致思路都一样。采用递归。

 $path = './curl';
 function getfiles($path)
 {
	 if(!is_dir($path)) return;
	$handle  = opendir($path);
	while( false !== ($file = readdir($handle)))
	{
		if($file != '.'  &&  $file!='..')
		{
			$path2= $path.'/'.$file;
			if(is_dir($path2))
			{
				echo '
';
				echo $file;
		       getfiles($path2);
			}else
			{
			   echo '
';
			 	echo $file;
			}
		}
	}
}

  print_r( getfiles($path));

echo '

'; function getdir($path) { if(!is_dir($path)) return; $handle = dir($path); while($file=$handle->read()) { if($file!='.' && $file!='..') { $path2 = $path.'/'.$file; if(is_dir($path2)) { echo $file."\t"; getdir($path2); }else { echo $file.' '; } } } } getdir($path); echo '
'; function get_dir_scandir($path){ $tree = array(); foreach(scandir($path) as $single){ if($single!='.' && $single!='..') { $path2 = $path.'/'.$single; if(is_dir($path2)) { echo $single." \r\n"; get_dir_scandir($path2); }else { echo $single." \r\n"; } } } } get_dir_scandir($path); echo '
'; function get_dir_glob(){ $tree = array(); foreach(glob('./curl/*') as $single){ echo $single." \r\n"; } } get_dir_glob(); echo '
'; function myscandir($path) { if(!is_dir($path)) return; foreach(scandir($path) as $file) { if($file!='.' && $file!='..') { $path2= $path.'/'.$file; if(is_dir($path2)) { echo $file; myscandir($path2); }else { echo $file.' '; } } } } myscandir($path); echo '
'; function myglob($path) { $path_pattern = $path.'/*'; foreach(glob($path_pattern) as $file) { if(is_dir($file)) { echo $file; myscandir($file); }else { echo $file.' '; } } } myglob($path);
分类: PHP开发 标签:

PHP常见的两个面试题,你答对了吗?

2010年5月18日 5 条评论

php面试中,有两个题目,很常见。但却很容易错。

第一题:

$a = 2;
$b = &$a;
uset($a);
echo $b;

问这道题,会输出什么? 答案是 2 .

由此,可以衍生出来以下几种情况:

$a = 2;
$b = &$a;
uset($b);
echo $a;

如果是这样呢? 答案还是 2

$a = 2;
$b = &$a;
$a = 3;
echo $b;

此时的$b变成了 3

$a = 2;
$b = &$a;
$b = 3;
echo $a;

此时的输出的答案是: 3

现在来解释下为什么 上面的神奇现象。

& 在这里是“引用”的意思。这和C语言的指针引用是不一样的。在PHP里面只是 某个value对应的不同的名称而已。

举个不恰当的例子:比如你的宠物狗有个中文名 叫 “小强” ,“小强”就是你的宠物狗的 代号或者姓名。

有一天,当你的心血来潮,再给它起了个英文名叫“jack” 。OK,now,jack (这个可以看做是 小强的引用 ) 也是宠物狗了。

过了一段时间,你发现中国的狗狗嘛,干嘛要搞些洋名呢。于是,就把它的英文名给拿掉了(unset())。以后只叫他小强了。

也就是说,无论你把哪个名字拿掉了,这个狗狗都是存在的。都是你的宠物。你拿掉的(unset()的),只是名字而已。你并没有把你狗狗拿掉。

在PHP手册中,unset() 是指:销毁指定的变量。仅是变量而已。

但为什么当$a的值改变的时候,$b的值也会发生改变呢?因为这时,改变的是 “” ,而不是 狗的姓名了。

比如说 小强 有一天出车祸了,腿断了。那jack呢?jack当然也是同样的。因为 实体 “狗狗” 发生了变化。所以,jack和小强都会发生变化。

再来看第二题。

$a = 2;
$b = 3;
$c = &$a;
$c = 2;
 if(  ($a=5)>0   ||  ($b=$a)>0 )
 {
	$a++;
	$b++;
 }
echo $a.'-'.$b.'-'.$c;

这道题 a b c的值会是多少呢?
答案是: 6-4-6

这个第二题,延续了第一题,对于引用的测试。另外一个就是 关于 逻辑运算符” || ”

在这里,if(  ($a=5)>0   ||  ($b=$a)>0 )   当($a=5)>0  是真后,($b=$a)>0是不会执行到的。所以 $b的值没有发生变化。

只是在后面 $b++的时候,变化了而已。

分类: PHP开发 标签:

mysql explain 笔记整理

2010年5月17日 1 条评论

explain是用来分析sql语句,帮助优化的一个命令。

explain的语法如下:

explain [extended] select … from … where …

如果使用了extended,那么在执行完explain语句后,可以使用show warnings语句查询相应的优化信息。

比如我们执行  select uid from user where uname=’scofield’ order by uid  执行结果会有

+—-+————-+——-+——-+——————-+———+———+——-+——+——-+
| id | select_type | table | type  | possible_keys     | key     | key_len | ref   | rows | Extra |
+—-+————-+——-+——-+——————-+———+———+——-+——+——-+

这些东西。

其中 table 表示是哪个表的数据。

type比较重要。表示链接的类型。链接类型由好到坏的,依次是    system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL

一般情况,至少要达到 range 级别,最好是 ref 级别。否则可能会有性能问题。

possible_keys 是指可以应用到该表的索引,如果为NULL则没有。

key 是指用到的索引。

key_len 是索引的长度,在不影响查询精度的情况下,值越小越好。

ref 是指索引的那一列被使用了。一般会是个常数。

rows 是指有多少行。

extra 是指额外的信息。也是比较重要的。如果值为 distinct ,说明mysql 找到了域行联合匹配的行,就不再查找了。

如果值为 not exits  :  mysql优化了 left join ,一旦找到了 left join 匹配的行,便不再进行搜索了。

如果值为 rang checked for each :  没有找到理想的索引。

如果为 using filesort ,则需要改进sql了。这说明 mysql执行 需要 文件排序。这是比较影响效率的。

如果为  using  temporary , 这是使用了 临时表。 这种情况也比较影响效率,sql需要改进。或者从应用层进行改进。

如果为 where used 说明使用了where语句。如果 type为 all 或者 index ,一般会出现这样的结果。这样的问题,一般是查询需要改进。

在一般稍大的系统中,基本尽可能的减少 join ,子查询 等等。mysql就使用最简单的查询,这样效率最高。至于 join 等,可以放在应用层去解决。

分类: MySQL 标签: , ,

凡客诚品(vancl)最新招聘信息

2010年5月14日 没有评论

凡客诚品(vancl)最新招聘信息

No.1 技术项目经理

岗 位职责:
1、负责电子商务网站和业务系统的技 术项目的业务需求控制、项目生命周期管理和总体技术规划;
2、参与需求分析和框架设计,负责与 业务部门进行沟通协调,制定可行的技术实现目标,管理控制项目的需求变更;
3、协调安排技术资源,管理项目进 度,解决项目疑难问题;
4、指导技术团队学习、交流,并不断 提升整体团队技术水平。
任职要求:
1、大型网站三年以上工作经验,熟悉 电子商务企业的业务模式和行业的发展方向;
2、至少一年以上项目管理或需求分析 工作经验;
3、精通面向对象领域建模,熟悉Java或.Net等主流技术架构体系,熟悉SOA,敏捷开发等理念;
4、有Oracle或SQL Server大型数据库使用经验;
5、能够从客户和业务的角度来进行技 术实现,并能及时掌握业务领域知识和发展动态;
6、具备良好的团队合作精神和项目管 理经验,优秀的业务沟通能力,熟悉电子商务业务术语,责任心强,敬业,有很强的开拓精神。

No.2 .NET高级开发工程师

岗 位职责:
1. 电子商务网站、综合运营平台、ERP、供应链系统的开发。
任职要求:
1、本科及以上学历,计算机软件、通 信、电子及相关专业,有扎实的软件基础知识;
2、三年以上.NET软件开发经验,具有独立软件开发工作的能力;
3、对多层架构、OOAD 、C#、ADO、.net有较深入的了解;熟悉JavaScript,HTML,XML,CSS等web开 发技术;
4、精通SQL语言,熟练掌握SQL Server;
5、具备良好的职业素养及团队合作精 神。

6、具电子商务或ERP、供应链系统经验者优先考虑;

No.3 开发经理

岗位职责:

1、负责应用系统程序及项目的构架、设计和核心开发;

2、负责和业务部门沟通,指导业务需求,系统规范,项目计划,软件和用户文件以及策略和操作步骤的制订;

3、和项目经理配合,在规定时间和预算下,完成高质量的功能正确的软件;

4、对进行中的项目及有待解决的问题定期提交进展报告;

5、领导IT团队 成员,指导和培养团队成员提高技能,规划成员的职业发展;

6.积极主动地管理解决项目开发中的问题;

7.保持专业的态度和行为,有计划性的规划和完成日常任务。

任 职要求:

1、计算机科学、信息系统管理或相关专业学士学位以上;

2、要求对Microsoft SQL Server和.Net 环境有技术规划层次的理解;

3、有用.NET, ASP和SQL Server进行网页开发设计的相关 经验,近期从事此类工作者优先;

4、熟练运用MS Office办公软件,必须会MS Project和MS Visio;

5、有应用软件开发方法学、优秀软件设计原则的经验,必须熟悉数据 库架构;

6、有电子商务,订单流程,客户服务,仓储物流等其他相关职能的经 验;

7、IT领域至少5年工作 经验,3年以上管理经验;

8、良好的沟通能力和团队协作精神。

No.4 开发测试工程师

工 作职责:

1、与其他部门密切配合,共同保证电子商务平台的产品质量;
2、根据产品的需求设计文档,制定测试 计划与开发测试用例;
3、按照测试流程,高效地执行相关的测 试脚本和测试用例;
4、依据测试思路,通过自动化脚本的编 写和测试工具开发来实现;
5、参与开发自动化测试平台和一系列质 量保证工具的开发(运行于多种平台)。

任 职要求:

1、本科及以上学历,计算机软件、通信、电子及相关专业;

2、三年以上软件开发测试相关工作经验,其中一年以上互联网相关产品 编码经验;

3、具有web开发经验,熟练掌握JavaScript/Html/Ajax的开发语言;

4、具有web自动化测试经验,精通以下所述多项测试工具:软件缺陷跟踪工具,自动测试工具,负载测试;

5、精通软件测试理论、方法,精通软件测试技术,具备独立编写测试方 案、设计测试用例和编写测试报告的能力;

6、熟悉SQLServer/MySql及相关数据库技术等主流数据库;

7、热爱软件测试工作,拥有较强沟通技巧及团队合作精神,良好的口头 与书面的交流能力,擅长逻辑思考和主动学习,思维缜密,有责任心与时间观念,对发现、分析和解决问题有浓厚的兴趣。

优 先条件

1、能熟练地应用一门或几门以下的技术者优先C#/C/C++/Java/ (Linux or Unix) Shell/Perl/Python/PHP;

2、具有搭建自动化测试框架和研发测试工具经验;

3、具有QC平台经验,熟悉QTP 自 动化测试工具者优先。

可以将简历发到 piaorui@vancl.cn

面试技巧让你与面试官从容而谈

2010年5月12日 1 条评论

1、请你自我介绍一下你自己,

回答提示:一般人回答这个问题过于平常,只说姓名、年龄、爱好、工作经验,这些在简历上都有,其实,企业最希望知道的是求职者能否胜任工作,包括:最强的 技能、最深入研究的知识领域、个性中最积极的部分、做过的最成功的事,主要的成就等,这些都可以和学习无关,也可以和学习有关,但要突出积极的个性和做事 的能力,说得合情合理企业才会相信。企业很重视一个人的礼貌,求职者要尊重考官,在回答每个问题之后都说一句“谢谢”。企业喜欢有礼貌的求职者。
2、你觉得你个性上最大的优点是什么?

回答提示:沉着冷静、条理清楚、立场坚定、顽强向上。
乐于助人和关心他人、适应能力和幽默感、乐观和友爱。我在北大青鸟经过一到两年的培训及项目实战,加上实习工作,使我适合这份工作。我相信我能成功。
3、说说你最大的缺点?

回答提示:这个问题企业问的概率很大,通常不希望听到直接回答的缺点是什么等,如果求职者说自己小心眼、爱忌妒人、非常懒、脾气大、工作效率低,企业肯定 不会录用你。绝对不要自作聪明地回答“我最大的缺点是过于追求完美”,有的人以为这样回答会显得自己比较出色,但事实上,他已经岌芨可危了。企业喜欢求职 者从自己的优点说起,中间加一些小缺点,最后再把问题转回到优点上,突出优点的部分。企业喜欢聪明的求职者。
4、你对加班的看法?

回答提示:实际上好多公司问这个问题,并不证明一定要加班。 只是想测试你是否愿意为公司奉献。
回答样本:如果是工作需要我会义不容辞加班。我现在单身,没有任何家庭负担,可以全身心的投入工作。但同时,我也会提高工作效率,减少不必要的加班
5、你对薪资的要求?

回 答提示:如果你对薪酬的要求太低,那显然贬低自己的能力;如果你对薪酬的要求太高,那又会显得你分量过重,公司受用不起。一些雇主通常都事先对求聘的职位 定下开支预算,因而他们第一次提出的价钱往往是他们所能给予的最高价钱。他们问你只不过想证实一下这笔钱是否足以引起你对该工作的兴趣。
回答样本一:“我对工资没有硬性要求。我相信贵公司在处理我的问题上会友善合理。我注重的是找对工作机会,所以只要条件公平,我则不会计较太多
回答样本二:我受过系统的软件编程的训练,不需要进行大量的培训。而且我本人也对编程特别感兴趣。因此,我希望公司能根据我的情况和市场标准的水平,给我 合理的薪水。
回答样本三:如果你必须自己说出具体数目,请不要说一个宽泛的范围,那样你将只能得到最低限度的数字。最好给出一个具体的数字,这样表明你已经对当今的人 才市场作了调查,知道像自己这样学历的雇员有什么样的价值。
6、在五年的时间内,你的职业规划?

回答提示:这是每一个应聘者都不希望被问到的问题,但是几乎每个人都会被问到。比较多的答案是“管理者”。但是近几年来,许多公司都已经建立了专门的技术 途径。这些工作地位往往被称作“顾问”、“参议技师”或“高级软件工程师”等等。当然,说出其他一些你感兴趣的职位也是可以的,比如产品销售部经理,生产 部经理等一些与你的专业有相关背景的工作。要知道,考官总是喜欢有进取心的应聘者,此时如果说“不知道”,或许就会使你丧失一个好机会。最普通的回答应该 是“我准备在技术领域有所作为”或“我希望能按照公司的管理思路发展”。
7、你朋友对你的评价?

回答提示: 想从侧面了解一下你的性格及与人相处的问题。
回答样本:“我的朋友都说我是一个可以信赖的人。因为,我一旦答应别人的事情,就一定会做到。如果我做不到,我就不会轻易许诺。
回答样本:”我觉的我是一个比较随和的人,与不同的人都可以友好相处。在我与人相处时,我总是能站在别人的角度考虑问题“
8、你还有什么问题要问吗?

回答提示:企业的这个问题看上去可有可无,其实很关键,企业不喜欢说“没有问题”的人,因为其很注重员工的个性和创新能力。企业不喜欢求职者问个人福利之 类的问题,如果有人这样问:贵公司对新入公司的员工有没有什么培训项目,我可以参加吗?或者说贵公司的晋升机制是什么样的?企业将很欢迎,因为体现出你对 学习的热情和对公司的忠诚度以及你的上进心。
9、如果通过这次面试我们单位录用了你,但工作一段时间却发现你根本不适合这个职位,你怎么办?

回答提示:一段时间发现工作不适合我,有两种情况:

1、如果你确实热爱这个职业,那你就要不断学习,虚心向领导和同事学习业务知识和处事经验,了解这个职业的精神内涵和职业要求,力争减少差距;

2、你觉得这个职业可有可无,那还是趁早换个职业,去发现适合你的,你热爱的职业,那样你的发展前途也会大点,对单位和个人都有好处。
10、在完成某项工作时,你认为领导要求的方式不是最好的,自己还有更好的方法,你应该怎么做?

回答提示:①.原则上我会尊重和服从领导的工作安排;同时私底下找机会以请教的口吻,婉转地表达自己的想法,看看领导是否能改变想法;
②如果领导没有采纳我的建议,我也同样会按领导的要求认真地去完成这项工作;
③.还有一种情况,假如领导要求的方式违背原则,我会坚决提出反对意见;如领导仍固执己见,我会毫不犹豫地再向上级领导反映。
11、如果你的工作出现失误,给本公司造成经济损失,你认为该怎么办?

回答提示:
①我本意是为公司努力工作,如果造成经济损失,我认为首要的问题是想方设法去弥补或挽回经济损失。如果我无能力负责,希望单位帮助解决;
②是责任问题。分清责任,各负其责,如果是我的责任,我甘愿受罚;如果是一个我负责的团队中别人的失误,也不能幸灾乐祸,作为一个团队,需要互相提携共同 完成工作,安慰同事并且帮助同事查找原因总结经验。
③总结经验教训,一个人的一生不可能不犯错误,重要的是能从自己的或者是别人的错误中吸取经验教训,并在今后的工作中避免发生同类的错误。检讨自己的工作 方法、分析问题的深度和力度是否不够,以致出现了本可以避免的错误。
12、如果你在这次考试中没有被录用,你怎么打算?

回答提示:现在的社会是一个竞争的社会,从这次面试中也可看出这一点,有竞争就必然有优劣,有成功必定就会有失败.往往成功的背后有许多的困难和挫折,如 果这次失败了也仅仅是一次而已,只有经过经验经历的积累才能塑造出一个完全的成功者。我会从以下几个方面来正确看待这次失败.
第一、要敢于面对,面对这次失败不气馁,接受已经失去了这次机会就不会回头这个现实,从心理意志和精神上体现出对这次失败的抵抗力。要有自信,相信自己经 历了这次之后经过努力一定能行.能够超越自我.
第二、善于反思,对于这次面试经验要认真总结,思考剖析,能够从自身的角度找差距。正确对待自己,实事求是地评价自己,辩证的看待自己的长短得失,做一个 明白人.
第三、走出阴影,要克服这一次失败带给自己的心理压力,时刻牢记自己弱点,防患于未然,加强学习,提高自身素质.
第四、认真工作,回到原单位岗位上后,要实实在在、踏踏实实地工作,三十六行,行行出状元,争取在本岗位上做出一定的成绩.
第五、再接再厉,成为软件工程师或网络工程师一直是我的梦想,以后如果有机会我仍然后再次参加竞争.
13、如果你做的一项工作受到上级领导的表扬,但你主管领导却说是他做的,你该怎样?

回答提示:我首先不会找那位上级领导说明这件事,我会主动找我的主管领导来沟通,因为沟通是解决人际关系的最好办法,但结果会有两种:1.我的主管领导认 识到自己的错误,我想我会视具体情况决定是否原谅他;2.他更加变本加厉的来威胁我,那我会毫不犹豫地找我的上级领导反映此事,因为他这样做会造成负面影 响,对今后的工作不利。
14、谈谈你对跳槽的看法?

回答提示:(1)正常的”跳槽”能促进人才合理流动,应该支持;
(2)频繁的跳槽对单位和个人双方都不利,应该反对。
15、工作中你难以和同事、上司相处,你该怎么办?

回答提示:
①我会服从领导的指挥,配合同事的工作。
②我会从自身找原因,仔细分析是不是自己工作做得不好让领导不满意,同事看不惯。还要看看是不是为人处世方面做得不好。如果是这样的话 我会努力改正。
③如果我找不到原因,我会找机会跟他们沟通,请他们指出我的不足。有问题就及时改正。
④作为优秀的员工,应该时刻以大局为重,即使在一段时间内,领导和同事对我不理解,我也会做好本职工作,虚心向他们学习,我相信,他们会看见我在努力,总 有一天会对我微笑的!
16、假设你在某单位工作,成绩比较突出,得到领导的肯定。但同时你发现同事们越来越孤立你,你怎么看这个问题?你准备怎么办?

回答提示:
①成绩比较突出,得到领导的肯定是件好事情,以后更加努力
②检讨一下自己是不是对工作的热心度超过同事间交往的热心了,加强同事间的交往及共同的兴趣爱好。
③工作中,切勿伤害别人的自尊心
④不再领导前拨弄是非
⑤乐于助人对面
17、你最近是否参加了培训课程?谈谈培训课程的内容。是公司资助还是自费参加?

回答提示:是自费参加,就是北大青鸟的培训课程(可以多谈谈自己学的技术)。
18、你对于我们公司了解多少?

回答提示:在去公司面试前上网查一下该公司主营业务。如回答:贵公司有意改变策略,加强与国外大厂的OEM合作,自有品牌的部分则透过海外经销商。
19、请说出你选择这份工作的动机?

回答提示:这是想知道面试者对这份工作的热忱及理解度,并筛选因一时兴起而来应试的人,如果是无经验者,可以强调“就算职种不同,也希望有机会发挥之前的 经验”。
20、你最擅长的技术方向是什么?

回答提示:说和你要应聘的职位相关的课程,表现一下自己的热诚没有什么坏处。
21、你能为我们公司带来什么呢?

回答提示:
①假如你可以的话,试着告诉他们你可以减低他们的费用——“我已经接受过北大青鸟近两年专业的培训,立刻就可以上岗工作”。
② 企业很想知道未来的员工能为企业做什么,求职者应再次重复自己的优势,然后说:“就我的能力,我可以做一个优秀的员工在组织中发挥能力,给组织带来高效率 和更多的收益”。企业喜欢求职者就申请的职位表明自己的能力,比如申请营销之类的职位,可以说:“我可以开发大量的新客户,同时,对老客户做更全面周到的 服务,开发老客户的新需求和消费。”等等。
22、最能概括你自己的三个词是什么?

回答提示:
我经常用的三个词是:适应能力强,有责任心和做事有始终,结合具体例子向主考官解释,
23、你的业余爱好是什么?

回答提示:找一些富于团体合作精神的,这里有一个真实的故事:有人被否决掉,因为他的爱好是深海潜水。主考官说:因为这是一项单人活动,我不敢肯定他能否 适应团体工作。
24、作为被面试者给我打一下分

回答提示:试着列出四个优点和一个非常非常非常小的缺点,(可以抱怨一下设施,没有明确责任人的缺点是不会有人介意的)。
25、你怎么理解你应聘的职位?

回答提示:把岗位职责和任务及工作态度阐述一下
26、喜欢这份工作的哪一点?

回 答提示:相信其实大家心中一定都有答案了吧!每个人的价值观不同,自然评断的标准也会不同,但是,在回答面试官这个问题时可不能太直接就把自己心理的话说 出来,尤其是薪资方面的问题,不过一些无伤大雅的回答是不错的考虑,如交通方便,工作性质及内容颇能符合自己的兴趣等等都是不错的答案,不过如果这时自己 能仔细思考出这份工作的与众不同之处,相信在面试上会大大加分。
27、为什么要离职?

回答提示:
①回答这个问题时一定要小心,就算在前一个工作受到再大的委屈,对公司有多少的怨言,都千万不要表现出来,尤其要避免对公司本身主管的批评,避免面试官的 负面情绪及印象;建议此时最好的回答方式是将问题归咎在自己身上,例如觉得工作没有学习发展的空间,自己想在面试工作的相关产业中多加学习,或是前一份工 作与自己的生涯规划不合等等,回答的答案最好是积极正面的。
②我希望能获得一份更好的工作,如果机会来临,我会抓住;我觉得目前的工作,已经达到顶峰,即沒有升迁机会。
28、说说你对行业、技术发展趋势的看法?

回答提示:企业对这个问题很感兴趣,只有有备而来的求职者能够过关。求职者可以直接在网上查找对你所申请的行业部门的信息,只有深入了解才能产生独特的见 解。企业认为最聪明的求职者是对所面试的公司预先了解很多,包括公司各个部门,发展情况,在面试回答问题的时候可以提到所了解的情况,企业欢迎进入企业的 人是“知己”,而不是“盲人”。
29、对工作的期望与目标何在?

回答提示:这是面试者用来评断求职者是否对自己有一定程度的期望、对这份工作是否了解的问题。对于工作有确实学习目标的人通常学习较快,对于新工作自然较 容易进入状况,这时建议你,最好针对工作的性质找出一个确实的答案,如业务员的工作可以这样回答:“我的目标是能成为一个超级业务员,将公司的产品广泛的 推销出去,达到最好的业绩成效;为了达到这个目标,我一定会努力学习,而我相信以我认真负责的态度,一定可以达到这个目标。”其他类的工作也可以比照这个 方式来回答,只要在目标方面稍微修改一下就可以了。
30、说说你的家庭。

回答提示:企业面试时询问家庭问题不是非要知道求职者家庭的情况,探究隐私,企业不喜欢探究个人隐私,而是要了解家庭背景对求职者的塑造和影响。企业希望 听到的重点也在于家庭对求职者的积极影响。企业最喜欢听到的是:我很爱我的家庭!我的家庭一向很和睦,虽然我的父亲和母亲都是普通人,但是从小,我就看到 我父亲起早贪黑,每天工作特别勤劳,他的行动无形中培养了我认真负责的态度和勤劳的精神。我母亲为人善良,对人热情,特别乐于助人,所以在单位人缘很好, 她的一言一行也一直在教导我做人的道理。企业相信,和睦的家庭关系对一个人的成长有潜移默化的影响。
31、就你申请的这个职位,你认为你还欠缺什么?

回答提示:企业喜欢问求职者弱点,但精明的求职者一般不直接回答。他们希望看到这样的求职者:继续重复自己的优势,然后说:“对于这个职位和我的能力来 说,我相信自己是可以胜任的,只是缺乏经验,这个问题我想我可以进入公司以后以最短的时间来解决,我的学习能力很强,我相信可以很快融入公司的企业文化, 进入工作状态。”企业喜欢能够巧妙地躲过难题的求职者。
32、你欣赏哪种性格的人?

回答提示:诚实、不死板而且容易相处的人、有”实际行动”的人。
33、你通常如何处理別人的批评?

回答提示:①沈默是金。不必说什么,否则情况更糟,不过我会接受建设性的批评;②我会等大家冷靜下来再讨论。
34、你怎样对待自己的失敗?

回答提示:我们大家生来都不是十全十美的,我相信我有第二个机会改正我的错误。
35、什么会让你有成就感?

回答提示:为贵公司竭力效劳;尽我所能,完成一个项目
36、眼下你生活中最重要的是什么?

回答提示:对我来说,能在这个领域找到工作是最重要的;望能在贵公司任职对我说最重要。
37、你为什么愿意到我们公司来工作?

回答提示:对于这个问题,你要格外小心,如果你已经对该单位作了研究,你可以回答一些详细的原因,像“公司本身的高技术开发环境很吸引我。”,“我同公司 出生在同样的时代,我希望能够进入一家与我共同成长的公司。”“你们公司一直都稳定发展,在近几年来在市场上很有竞争力。”或者“我认为贵公司能够给我提 供一个与众不同的发展道路。”这都显示出你已经做了一些调查,也说明你对自己的未来有了较为具体的远景规划。
38、你和别人发生过争执吗?你是怎样解决的?

回答提示:这是面试中最险恶的问题。其实是考官布下的一个陷阱。千万不要说任何人的过错。应知成功解决矛盾是一个协作团体中成员所必备的能力。假如你工作 在一个服务行业,这个问题简直成了最重要的一个环节。你是否能获得这份工作,将取决于这个问题的回答。考官希望看到你是成熟且乐于奉献的。他们通过这个问 题了解你的成熟度和处世能力。在没有外界干涉的情况下,通过妥协的方式来解决才是正确答案。
39、问题:你做过的哪件事最令自己感到骄傲?

回答提示:这是考官给你的一个机会,让你展示自己把握命运的能力。这会体现你潜在的领导能力以及你被提升的可能性。假如你应聘于一个服务性质的单位,你很 可能会被邀请去午餐。记住:你的前途取决于你的知识、你的社交能力和综合表现。
40、你新到一个部门,一天一个客户来找你解决问题,你努力想让他满意,可是始终达不到群众得满意,他投诉你们部门工作效率低,你这个时候怎么作?

回 答提示:(1)首先,我会保持冷静。作为一名工作人员,在工作中遇到各种各样的问题是正常的,关键是如何认识它,积极应对,妥善处理。 (2)其次,我会反思一下客户不满意的原因。一是看是否是自己在解决问题上的确有考虑的不周到的地方,二是看是否是客户不太了解相关的服务规定而提出超出 规定的要求,三是看是否是客户了解相关的规定,但是提出的要求不合理。 (3)再次,根据原因采取相对的对策。如果是自己确有不周到的地方,按照服务规定作出合理的安排,并向客户作出解释;如果是客户不太了解政策规定而造成的 误解,我会向他作出进一步的解释,消除他的误会;如果是客户提出的要求不符合政策规定,我会明确地向他指出。 (4)再次,我会把整个事情的处理情况向领导作出说明,希望得到他的理解和支持。(5)我不会因为客户投诉了我而丧失工作的热情和积极性,而会一如既往地 牢记为客户服务的宗旨,争取早日做一名领导信任、公司放心、客户满意的职员。
41、对这项工作,你有哪些可预见的困难?”

回答提示::①不宜直接说出具体的困难,否则可能令对方怀疑应聘者不行;②可以尝试迂回战术,说出应聘者对困难所持有的态度——“工作中出现一些困难是正 常的,也是难免的,但是只要有坚忍不拔的毅力、良好的合作精神以及事前周密而充分的准备,任何困难都是可以克服。”
分析:一般问这个问题,面试者的希望就比较大了,因为已经在谈工作细节。但常规思路中的回答,又被面试官“骗”了。当面试官询问这个问题的时候,有两个目 的。第一,看看应聘者是不是在行,说出的困难是不是在这个职位中一般都不可避免的问题。第二,是想看一下应聘者解决困难的手法对不对,及公司能否提供这样 的资源。而不是想了解应聘者对困难的态度。
42、如果我录用你,你将怎样开展工作?”

回答提示: ①如果应聘者对于应聘的职位缺乏足够的了解,最好不要直接说出自己开展工作的具体办法;②可以尝试采用迂回战术来回答,如“首先听取领导的指示和要求,然 后就有关情况进行了解和熟悉,接下来制定一份近期的工作计划并报领导批准,最后根据计划开展工作。”
分析:这个问题的主要目的也是了解应聘者的工作能力和计划性、条理性,而且重点想要知道细节。如果向思路中所讲的迂回战术,面试官会认为回避问题,如果引 导了几次仍然是回避的话。此人绝对不会录用了。
43、“你希望与什么样的上级共事?”

回答提示:①通过应聘者对上级的“希望”可以判断出应聘者对自我要求的意识,这既上一个陷阱,又是一次机会;②最好回避对上级具体的希望,多谈对自己的要 求;③如“做为刚步入社会的新人,我应该多要求自己尽快熟悉环境、适应环境,而不应该对环境提出什么要求,只要能发挥我的专长就可以了
分析:这个问题比较好的回答是,希望我的上级能够在工作中对我多指导,对我工作中的错误能够立即指出。总之,从上级指导这个方面谈,不会有大的纰漏。
44、在完成某项工作时,你认为领导要求的方式不是最好的,自己还有更好的方法,你应该怎么做?

回答提示:
①.原则上我会尊重和服从领导的工作安排;同时私底下找机会以请教的口吻,婉转地表达自己的想法,看看领导是否能改变想法;
②如果领导没有采纳我的建议,我也同样会按领导的要求认真地去完成这项工作;
③.还有一种情况,假如领导要求的方式违背原则,我会坚决提出反对意见;如领导仍固执己见,我会毫不犹豫地再向上级领导反映。
45、与上级意见不一是,你将怎么办?”

回答提示:①一般可以这样回答“我会给上级以必要的解释和提醒,在这种情况下,我会服从上级的意见。”②如果面试你的是总经理,而你所应聘的职位另有一位 经理,且这位经理当时不在场,可以这样回答:“对于非原则性问题,我会服从上级的意见,对于涉及公司利益的重大问题,我希望能向更高层领导反映。”
分析:这个问题的标准答案是思路1,如果用2的回答,必死无疑。你没有摸清楚改公司的内部情况,先想打小报告,这样的人没有人敢要。
46、“你工作经验欠缺,如何能胜任这项工作?”

常规思路:①如果招聘单位对应届毕业生的应聘者提出这个问题,说明招聘公司并不真正在乎“经验”,关键看应聘者怎样回答;②对这个问题的回答最好要体现出 应聘者的诚恳、机智、果敢及敬业;③如“作为应届毕业生,在工作经验方面的确会有所欠缺,因此在读书期间我一直利用各种机会在这个行业里做兼职。我也发 现,实际工作远比书本知识丰富、复杂。但我有较强的责任心、适应能力和学习能力,而且比较勤奋,所以在兼职中均能圆满完成各项工作,从中获取的经验也令我 受益非浅。请贵公司放心,学校所学及兼职的工作经验使我一定能胜任这个职位。” 点评:这个问题思路中的答案尚可。突出自己的吃苦能力和适应性以及学习能力(不是学习成绩)为好。
47、您在前一家公司的离职原因是什么?”

回答提示:①最重要的是:应聘者要使找招聘单位相信,应聘者在过往的单位的“离职原因”在此家招聘单位里不存在;②避免把“离职原因”说得太详细、太具 体;③不能掺杂主观的负面感受,如“太辛苦”、“人际关系复杂”、“管理太混乱”、“公司不重视人才”、“公司排斥我们某某的员工”等;④但也不能躲闪、 回避,如“想换换环境”、“个人原因”等;⑤不能涉及自己负面的人格特征,如不诚实、懒惰、缺乏责任感、不随和等;⑥尽量使解释的理由为应聘者个人形象添 彩;⑦相关例子:如“我离职是因为这家公司倒闭;我在公司工作了三年多,有较深的感情;从去年始,由于市场形势突变,公司的局面急转直下;到眼下这一步我 觉得很遗憾,但还要面对显示,重新寻找能发挥我能力的舞台。”同一个面试问题并非只有一个答案,而同一个答案并不是在任何面试场合都有效,关键在应聘者掌 握了规律后,对面试的具体情况进行把握,有意识地揣摩面试官提出问题的心理背景,然后投其所好。
分析:除非是薪资太低,或者是最初的工作,否则不要用薪资作为理由。“求发展”也被考官听得太多,离职理由要根据每个人的真实离职理由来设计,但是在回答 时一定要表现得真诚。实在想不出来的时候,家在外地可以说是因为家中有事,须请假几个月,公司又不可能准假,所以辞职。这个答案一般面试官还能接受。
48、“你工作经验欠缺,如何能胜任这项工作?”

回答提示:①如果招聘单位对应届毕业生的应聘者提出这个问题,说明招聘公司并不真正在乎“经验”,关键看应聘者怎样回答;②对这个问题的回答最好要体现出 应聘者的诚恳、机智、果敢及敬业;③如“作为应届毕业生,在工作经验方面的确会有所欠缺,因此在读书期间我一直利用各种机会在这个行业里做兼职。我也发 现,实际工作远比书本知识丰富、复杂。但我有较强的责任心、适应能力和学习能力,而且比较勤奋,所以在兼职中均能圆满完成各项工作,从中获取的经验也令我 受益非浅。请贵公司放心,学校所学及兼职的工作经验使我一定能胜任这个职位。”
分析:这个问题思路中的答案尚可。突出自己的吃苦能力和适应性以及学习能力(不是学习成绩)为好。
49、为了做好你工作份外之事,你该怎样获得他人的支持和帮助?

回答提示:每个公司都在不断变化发展的过程中;你当然希望你的员工也是这样。你希望得到那些希望并欢迎变化的人,因为这些人明白,为了公司的发展,变化是 公司日常生活中重要组成部分。这样的员工往往很容易适应公司的变化,并会对变化做出积极的响应。此外,他们遇到矛盾和问题时,也能泰然处之。下面的问题能 够考核应聘者这方面的能力。
据说有人能从容避免正面冲突。请讲一下你在这方面的经验和技巧。
有些时候,我们得和我们不喜欢的人在一起共事。说说你曾经克服了性格方面的冲突而取得预期工作效果的经历。
50、如果你在这次面试中没有被录用,你怎么打算?

回答提示:现在的社会是一个竞争的社会,从这次面试中也可看出这一点,有竞争就必然有优劣,有成功必定就会有失败.往往成功的背后有许多的困难和挫折,如 果这次失败了也仅仅是一次而已,只有经过经验经历的积累才能塑造出一个完全的成功者。我会从以下几个方面来正确看待这次失败.
第一、要敢于面对,面对这次失败不气馁,接受已经失去了这次机会就不会回头这个现实,从心理意志和精神上体现出对这次失败的抵抗力。要有自信,相信自己经 历了这次之后经过努力一定能行.能够超越自我.
第二、善于反思,对于这次面试经验要认真总结,思考剖析,能够从自身的角度找差距。正确对待自己,实事求是地评价自己,辩证的看待自己的长短得失,做一个 明白人.
第三、走出阴影,要克服这一次失败带给自己的心理压力,时刻牢记自己弱点,防患于未然,加强学习,提高自身素质.
第四、认真工作,回到原单位岗位上后,要实实在在、踏踏实实地工作,三十六行,行行出状元,争取在本岗位上做出一定的成绩.
第五、再接再厉,成为国家公务员一直是我的梦想,以后如果有机会我仍然后再次参加竞争.
51、假如你晚上要去送一个出国的同学去机场,可单位临时有事非你办不可,你怎么办?

回答提示:我觉得工作是第一位的,但朋友间的情谊也是不能偏废的。这个问题我觉得要按照当时具体的情况来决定。
(1)、如果我的朋友晚上9点中的飞机,而我的 加班八点就能够完成的话,那就最理想了,干完工作去机场,皆大欢喜。
(2)、如果说工作不是很紧急,加班仅仅是为了明天上班的时候能把报告交到办公室,那完全可以跟领导打声招呼,先去机场然后回来加班,晚点睡就是了。
(3)、如果工作很紧急,两者不可能兼顾的情况下,我觉得可以由两种选择。1)如果不是全单位都加班的话,是不是可以要其他同事来代替以下工作,自己去机 场,哪怕就是代替你离开的那一会儿。2)如果连这一点都做不到的话,
那只好忠义不能两全了,打电话给朋友解释一下,小心他会理解,毕竟工作做完了就完了,朋友还是可以再见面的。
52、如果通过这次面试我们单位录用了你,但工作一段时间却发现你根本不适合这个职位,你怎么办?

回答提示:一段时间发现工作不适合我,有两种情况:

1、如果你确实热爱这个职业,那你就要不断学习,虚心向领导和同事学习业务知识和处事经验,了解这个职业的精神内涵和职业要求,力争减少差距;

2、你觉得这个职业可有可无,那还是趁早换个职业,去发现适合你的,你热爱的职业,那样你的发展前途也会大点,对单位和个人都有好处。
53、你做过的哪件事最令自己感到骄傲?

回答提示:这是考官给你的一个机会,让你展示自己把握命运的能力。这会体现你潜在的领导能力以及你被提升的可能性。假如你应聘于一个服务性质的单位,你很 可能会被邀请去午餐。记住:你的前途取决于你的知识、你的社交能力和综合表现。
54、谈谈你过去做过的成功案例

回答提示:举一个你最有把握的例子,把来龙去脉说清楚,而不要说了很多却没有重点。切忌夸大其词,把别人的功劳到说成自己的,很多主管为了确保要用的人是 最适合的,会打电话向你的前一个主管征询对你的看法及意见,所以如果说谎,是很容易穿梆的。
55、谈谈你过去的工作经验中,最令你挫折的事情

回答提示:曾经接触过一个客户,原本就有耳闻他们以挑剔出名,所以事前的准备功夫做得十分充分,也投入了相当多的时间与精力,最后客户虽然并没有照单全 收,但是接受的程度已经出乎我们意料之外了。原以为从此可以合作愉快,却得知客户最后因为预算关系选择了另一家代理商,之前的努力因而付诸流水。尽管如 此,我还是从这次的经验学到很多,如对该产业的了解,整个team的默契也更好了。
分析:借此了解你对挫折的容忍度及调解方式。
56、如何安排自己的时间?会不会排斥加班?

回答提示:基本上,如果上班工作有效率,工作量合理的话,应该不太需要加班。可是我也知道有时候很难避免加班,加上现在工作都采用责任制,所以我会调配自 己的时间,全力配合。
分析:虽然不会有人心甘情愿的加班,但依旧要表现出高配合度的诚意。
57、为什么我们要在众多的面试者中选择你?

回答提示:根据我对贵公司的了解,以及我在这份工作上所累积的专业、经验及人脉,相信正是贵公司所找寻的人才。而我在工作态度、EQ上,也有圆融、成熟的 一面,和主管、同事都能合作愉快。
分析:别过度吹嘘自己的能力,或信口开河地乱开支票,例如一定会为该公司带来多少钱的业务等,这样很容易给人一种爱说大话、不切实际的感觉。
58、对这个职务的期许?

回答提示:希望能借此发挥我的所学及专长,同时也吸收贵公司在这方面的经验,就公司、我个人而言,缔造“双赢”的局面。
分析:回答前不妨先询问该公司对这项职务的责任认定及归属,因为每一家公司的状况不尽相同。以免说了一堆理想抱负却发现牛头不对马嘴。
59、为什么选择这个职务?

回答提示::这一直是我的兴趣和专长,经过这几年的磨练,也累积了一定的经验及人脉,相信我一定能胜任这个职务的。
分析:适时举出过去的“丰功伟业”,表现出你对这份职务的熟稔度,但避免过于夸张的形容或流于炫耀。
60、为什么选择我们这家公司?

回答提示:曾经在报章杂志看过关于贵公司的报道,与自己所追求的理念有志一同。而贵公司在业界的成绩也是有目共睹的,而且对员工的教育训练、升迁等也都很 有制度。
分析:去面试前先做功课,了解一下该公司的背景,让对方觉得你真的很有心想得到这份工作,而不只是探探路。
61、你认为你在学校属于好学生吗?

回答提示:企业的招聘者很精明,问这个问题可以试探出很多问题:如果求职者学习成绩好,就会说:“是的,我的成绩很好,所有的成绩都很优异。当然,判断一 个学生是不是好学生有很多标准,在学校期间我认为成绩是重要的,其他方面包括思想道德、实践经验、团队精神、沟通能力也都是很重要的,我在这些方面也做得 很好,应该说我是一个全面发展的学生。”如果求职者成绩不尽理想,便会说:“我认为是不是一个好学生的标准是多元化的,我的学习成绩还可以,在其他方面我 的表现也很突出,比如我去很多地方实习过,我很喜欢在快节奏和压力下工作,我在学生会组织过 ××活动,锻炼了我的团队合作精神和组织能力。” 有经验的招聘者一听就会明白,企业喜欢诚实的求职者。
62、请谈谈如何适应办公室工作的新环境?

回答提示①办公室里每个人有各自的岗位与职责,不得擅离岗位。
②根据领导指示和工作安排,制定工作计划,提前预备,并按计划完成。
③多请示并及时汇报,遇到不明白的要虚心请教。
④抓间隙时间,多学习,努力提高自己的政治素质和业务水平。
63、在工作中学习到了些什么?

回答提示:这是针对转职者提出的问题,建议此时可以配合面试工作的特点作为主要依据来回答,如业务工作需要与人沟通,便可举出之前工作与人沟通的例子,经 历了哪些困难,学习到哪些经验,把握这些要点做陈述,就可以轻易过关了
64、有想过创业吗?

回答提示:这个问题可以显示你的冲劲,但如果你的回答是“有”的话,千万小心,下一个问题可能就是“那么为什么你不这样做呢?”
65、最能概括你自己的三个词是什么?

回答提示:我经常用的三个词是:适应能力强,有责任心和做事有始终,结合具体例子向主考官解释,使他们觉得你具有发展潜力
66、你认为你在学校属于好学生吗?

回答提示:企业的招聘者很精明,问这个问题可以试探出很多问题:如果求职者学习成绩好,就会说:“是的,我的成绩很好,所有的成绩都很优异。当然,判断一 个学生是不是好学生有很多标准,在学校期间我认为成绩是重要的,其他方面包括思想道德、实践经验、团队精神、沟通能力也都是很重要的,我在这些方面也做得 很好,应该说我是一个全面发展的学生。”如果求职者成绩不尽理想,便会说:“我认为是不是一个好学生的标准是多元化的,我的学习成绩还可以,在其他方面我 的表现也很突出,比如我去很多地方实习过,我很喜欢在快节奏和压力下工作,我在学生会组织过 ××活动,锻炼了我的团队合作精神和组织能力。” 有经验的招聘者一听就会明白,企业喜欢诚实的求职者。
67、除了本公司外,还应聘了哪些公司?

回答提示:很奇怪,这是相当多公司会问的问题,其用意是要概略知道应徵者的求职志向,所以这并非绝对是负面答案,就算不便说出公司名称,也应回答“销售同 种产品的公司”,如果应聘的其他公司是不同业界,容易让人产生无法信任的感觉。
68、何时可以到职?

回答提示:大多数企业会关心就职时间,最好是回答\’如果被录用的话,到职日可按公司规定上班”,但如果还未辞去上一个工作、上班时间又太近,似乎有些强 人所难,因为交接至少要一个月的时间,应进一步说明原因,录取公司应该会通融的
69、你并非毕业于名牌院校?

回答提示:是否毕业于名牌院校不重要,重要的是有能力完成您交给我的工作,我接受了北大青鸟的职业培训,掌握的技能完全可以胜任贵公司现在工作,而且我比 一些名牌院校的应届毕业生的动手能力还要强,我想我更适合贵公司这个职位。
70、你怎样看待学历和能力?

回答提示:学历我想只要是大学专科的学历,就表明觉得我具备了根本的学习能力。剩下的,你是学士也好,还是博士也好,对于这一点的讨论,不是看你学了多少 知识,而是看你在这个领域上发挥了什么,也就是所说的能力问题。一个人工作能力的高低直接决定其职场命运,而学历的高低只是进入一个企业的敲门砖,如果贵 公司把学历卡在博士上,我就无法进入贵公司,当然这不一定只是我个人的损失,如果一个专科生都能完成的工作,您又何必非要招聘一位博士生呢?

分类: 杂七杂八 标签:

php面试题和答案整理

2010年5月12日 1 条评论

1.以下哪一句不会把 John 新增到 users 阵列?
$users[] = ‘john’;
成功把 John 新增到阵列 users。
array_add($users,’john’);
函式 array_add() 无定义。
array_push($users,‘john’);
成功把 John 新增到阵列 users。
$users ||= ‘john’;
语法错误。

2.sort()、assort()、和 ksort() 有什么分别?它们分别在什么情况下使用?

sort()
根据阵列中元素的值,以英文字母顺序排序,索引键会由 0 到 n-1 重新编号。主要是当阵列索引键的值无关疼痒时用来把阵列排序。
assort()
PHP 没有 assort() 函式,所以可能是 asort() 的笔误。
asort()
与 sort() 一样把阵列的元素按英文字母顺序来排列,不同的是所有索引键都获得保留,特别适合替联想阵列排序。
ksort()
根据阵列中索引键的值, 以英文字母顺序排序,特别适合用于希望把索引键排序的联想阵列。

3.以下的代码会产生什么?为什么?

$num =10;
function multiply(){
$num =$num *10;
}
multiply();
echo $num;

由 于函式 multiply() 没有指定 $num 为全域变量(例如 global $num 或者 $_GLOBALS['num']),所以 $num 的值是 10。

4. reference 跟一个正规的变量有什么分别?如何 pass by reference?在什么情况下我们需要这样做?
Reference 传送的是变量的地址而非它的值,所以在函式中改变一个变量的值时,整个应用都见到这个变量的新值。
一个正规变量传送给函式的是它的值,当函式改变 这个变量的值时,只有这个函式才见到新值,应用的其他部分仍然见到旧值。

$myVariable = “its’ value”;Myfunction(&$myVariable); // 以 reference 传送参数
以 reference 传送参数给函式,可以使函式改变了的变量,即使在函式结束后仍然保留新值。

5.些函式可以用来在现正执行的脚本中插入函式库?
对 这道题目不同的理解会有不同的答案,我的第一个想法是插入 PHP 函式库不外乎 include()、include_once()、require()、require_once(),但细心再想,“函式库”也应该包括 com 物件和 .net 函式库,所以我们的答案也要分别包括 com_load 和 dotnet_load,下次有人提起“函式库”的时候,别忘记这两个函式。

6.foo() 与 @foo() 有什么分别?
foo() 会执行这个函式,任何解译错误、语法错误、执行错误都会在页面上显示出来。
@foo() 在执行这个函式时,会隐藏所有上述的错误讯息。
很 多应用程式都使用 @mysql_connect() 和 @mysql_query 来隐藏 mysql 的错误讯息,我认为这是很严重的失误,因为错误不该被隐藏,你必须妥善处理它们,可能的话解决它们。

7.你如何替 PHP 的应用程式侦错?
我并不常这样做,我曾经试过很多不同的侦错工具,在 Linux 系统中设定这些工具一点也不容易。不过以下我会介绍一个近来颇受注目的侦错工具。
PHP – Advanced PHP Debugger 或称 PHP – APD,第一步是执行以下的指令安装:

pear install apd安装后在你的脚本的开头位置加入以下的语句开始进行侦错:

apd_set_pprof_trace();执行完毕,打开以下档案来 查阅执行日志:
apd.dumpdir
你也可以使用 pprofp 来格式化日志。
详细的资料可以参阅 http://us.php.net/manual/en/ref.apd.php

8.“===” 是什么?试举一个“==”是真但“===”是假的例子。
“===”是给既可以送回布尔值“假”,也可以送回一个不是布尔值但却可以赋与“假”值的 函式,strpos() 和 strrpos() 便是其中两个例子。
问题的第二部份有点困难,想一个“==”是假,但是“===”是真的例子却 很容易,相反的例子却很少。但我终于找到以下的例子:

if (strpos(“abc”, “a”) == true){    // 这部分永不会被执行,因为 “a” 的位置是 0,换算成布尔值“假”}if (strpos(“abc”, “a”) === true){    // 这部份会被执行,因为“===”保证函式 strpos() 的送回值不会换算成布尔值.}

9.你会如何定义 一个没有成员函式或特性的类别 myclass?

class myclass{}

10.你如何产生一个 myclass 的物件?

$obj = new myclass();

11.在一个类别内如何存取这个类别的特性及变改它的值?
使 用语句:$this->propertyName,例如:

class myclass{ private $propertyName; public function __construct() {   $this->propertyName = “value”; }}

12.include 和 include_once 有什么分别?require 又如何?
三者都是 用来在脚本中插入其他档案,视乎 url_allow_fopen 是否核准,这个档案可以从系统内部或外部取得。但他们之间也有微细的分别:
include(): 这个函式容许你在脚本中把同一个档案插入多次,若果档案不存在,它会发出系统警告并继续执行脚本。
include_once():它跟 include() 的功能相似,正如它的名字所示,在脚本的执行期间,有关档案只会被插入一次。
require():跟 include() 差不多,它也是用来在脚本中插入其他档案,但若果档案不存在,它会发出系统警告,这个警告会引致致命错误令脚本中止执行

13.以下哪一个 函式可以把浏览器转向到另一个页面?
redir()
这不是一个 PHP 函式,会引致执行错误。
header()
这个是 正确答案,header() 用来插入卷头资料,可以用来使浏览器转向到另一个页面,例如:
header(“Location: http://www.gosoa.com.cn/”);
location()
这 不是一个 PHP 函式,会引致执行错误。
redirect()
这不是一个 PHP 函式,会引致执行错误。

14. 以下哪一个函式可以用来开启档案以便读/写?
fget()
这不是一个 PHP 函式,会引致执行错误。
file_open()
这 不是一个 PHP 函式,会引致执行错误。
fopen()
这是正确答案,fopen() 可以用来开启档案以便读/写,事实上这个函式还有很多选项,详细资料请参阅 php.net。
open_file()
这不是一个 PHP 函式,会引致执行错误。
15.mysql_fetch_row() 和 mysql_fetch_array() 有什么分别?
mysql_fetch_row() 把数据库的一列储存在一个以零为基数的阵列中,第一栏在阵列的索引 0,第二栏在索引 1,如此类推。mysql_fetch_assoc() 把数据库的一列储存在一个关联阵列中,阵列的索引就是栏位名称,例如我的数据库查询送回“first_name”、“last_name”、 “email”三个栏位,阵列的索引便是“first_name”、“last_name”和“email”。mysql_fetch_array() 可以同时送回 mysql_fetch_row() 和 mysql_fetch_assoc() 的值。
16.下面的代码用来做什么?请解释。

$date=’08/26/2003′;print ereg_replace(“([0-9]+)/([0-9]+)/([0-9]+)”,”\\2/\\1/\\3″,$date);

这 是把一个日期从 MM/DD/YYYY 的格式转为 DD/MM/YYYY 格式。我的一个好朋友告诉我可以把这个正规表达式拆解为以下的语句,对于如此简单的表示是来说其实无须拆解,纯粹为了解说的方便:

// 对应一个或更多 0-9,后面紧随一个斜号$regExpression = “([0-9]+)/”;// 应一个或更多 0-9,后面紧随另一个斜号$regExpression .= “([0-9]+)/”;// 再次对应一个或更多 0-9$regExpression .= “([0-9]+)”;至于 \\2/\\1/\\3 则是用来对应括号,第一个括号对的是月份,第二个括号对应的是日期,第三个括号对应的是年份。

17.给你一行文字 $string,你会如何编写一个正规表达式,把 $string 内的 HTML 标签除去?
首先,PHP 有内建函式 strip_tags() 除去 HTML 标签,为何要自行编写正规表达式?好了,便当作是面试的一道考题吧,我会这样回答:

$stringOfText = “<p>This is a test</p>”;$expression_r = “/<(.*?)>(.*?)<\/(.*?)>/”;echo preg_replace($expression_r, “\\2″, $stringOfText);// 有人说也可以使用 /(<[^>]*>)/ $expression_r = “/(<[^>]*>)/”;echo preg_replace($expression_r, “”, $stringOfText);

18.PHP 和 Perl 分辨阵列和散列表的方法有什么差异?
这正是为何我老是告诉别人选择 适当的编程语言,若果你只用一种语言的话你怎么能回答这道问题?这道问题很简单,Perl 所有阵列变量都是以 @ 开头,例如 @myArray,PHP 则沿用 $ 作为所有变量的开头,例如 $myArray。
至于 Perl 表示散列表则用 %,例如 %myHash,PHP 则没有分别,仍是使用 $,例如 $myHash。
19.你如何利用 PHP 解决 HTTP 的无状态本质?
最 主要的俩各选择是 session 和 cookie。使用 session 的方法是在每一页的开始加上 session_start(),然后利用 $_SESSION 散列表来储存 session 变量。至于 cookie 你只需记着一个原则:在输出任何文字之前调用 set_cookie() 函式,此外只需使用 $_COOKIE 散列表便可以存取所有 cookie 变量。
还有一个不那么可靠的方法,就是利用访客的 IP 地址,这个方法有特定的危险性。
20.GD 函式库用来做什么?
这个可能是我最喜欢的函式库,自从 PHP 4.3.0 版本后 GD 便内建在 PHP 系统中。这个函式库让你处理和显示各式格式的图档,它的另一个常见用途是制作所图档。GD 以外的另一个选择是 ImageMagick,但这个函式库并不内建于 PHP 之中,必须由系统管理员安装在伺服器上。
21.试写出几个输出一段 HTML 代码的方法。
嗯,你可以使用 PHP 中任何一种输出语句,包括 echo、print、printf,大部分人都使用如下例的 echo:

echo “My string $variable”;你也可以使用这种方法:

echo <<<ENDThis text is written to the screen as output and this $variable is parsed too. If you wanted you can have <span> HTML tags in here as well.</span> The END; remarks must be on a line of its own, and can’t contain any extra white space.END;

22.PHP 比 Perl 好吗?请讨论。
我 们不要为一个简单的问题引发一场舌战,正如我经常说的:“为工作选择适合的语言,不要把工作迁就语言。”我个人认为 Perl 十分适合用作命令行工具,虽然它在网页应用上也有不错的表现,但是它的真正实力在命令行上才能充分发挥。同样地,PHP 虽然可以在控制台的环境中使用,但是个人认为它在网页应用上有更好的表现,PHP 有大量专门为网页应用而设计的函式,Perl 则似乎以命令行为设计之本。
个人来说两种语言我都喜欢,在大学期间我经常使用 Perl、PHP 和 Java,可惜工作上我使用 C#,但在家里我花不少时间操练 PHP、Perl、Ruby(现正学习)和 Java,保持我的技能知识在最新状态。很多人问我 C 和 C++ 怎么样,它们是否仍有机会在我的应用中占一席位,我的答案基本上是“否”,我近来的工作主要集中在网页开发,虽然 C 和 C++ 也可以用来写网页,但它们到底不是为这种工作而设计的,“为工作选择适合的语言”,若果我需要编写一个控制台应用,用来展示 bubble sort、quick sort 和 merge sort 的效能比较,我一定会使用 C / C++。若果我需要编写一个相片簿系统,我会使用 PHP 或者 C#(我认为制作用户介面方面 .NET 语言比网页更加)。

6.以Apache模块的方式安装PHP,在文件http.conf中首先要用语句____动态装载PHP模块,
然 后再用语句____使得Apache把所有扩展名为php的文件都作为PHP脚本处理。
答:LoadModule php5_module “c:/php/php5apache2.dll”;AddType application/x-httpd-php .php

见参考 手册》目录》II. 安装与配置》6. Windows 系统下的安装》Microsoft Windows 下的 Apache 2.0.x

7. 语句 include 和 require 都能把另外一个文件包含到当前文件中,它们的区别是____;为了避免多次包含同一文件,可以用语句____来代替它们。
答:在如何处理失败 时,include() 产生一个警告而 require() 则导致一个致命错误;require_once()/include_once()

8. 一个函数的参数不能是对变量的引用,除非在php.ini中把____设为on.
答:allow_call_time_pass_reference boolean :是否启用在函数调用时强制参数被按照引用传递, 见参考手册》附录G

9.SQL 中LEFT JOIN的含义是__,如果 tbl_user记录了学生的姓名(name)和学号(ID),
tbl_score记录了学生(有的学生考试以后被 开除了,没有其记录)的学号(ID)和考试成绩(score)以及考试科目(subject),要想打印出各个学生姓名及对应的的各科总成绩,则可以用 SQL语句____.

答:自然左外连接

create database phpinterview;
use phpinterview
create table tbl_user
(
ID                             int                            not null,
name                           varchar(50)                    not null,
primary key (ID)
);
create table tbl_score
(
ID                             int                            not null,
score                          dec(6,2)                       not null,
subject                        varchar(20)                    not null
);

insert into tbl_user (ID, name) values (1, ’beimu’);
insert into tbl_user (ID, name) values (2, ’aihui’);
insert into tbl_score (ID, score, subject) values (1, 90, ’语文’);
insert into tbl_score (ID, score, subject) values (1, 80, ’数学’);
insert into tbl_score (ID, score, subject) values (2, 86, ’数学’);
insert into tbl_score (ID, score, subject) values (2, 96, ’语文’);

select A.id,sum(B.score) as sumscore
from tbl_user A left join tbl_score B
on A.ID=B.ID
group by A.id

10. 在PHP中,heredoc是一种特殊的字符串,它的结束标志必须____
答:结束标识符所 在的行不能包含任何其它字符除”;”

11.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。

function my_scandir($dir)
{
    $files=array();
    if(is_dir($dir))
     {
        if($handle=opendir($dir))
         {
            while(($file=readdir($handle))!==false)
             {
                if($file!="." && $file!="..")
                 {
                    if(is_dir($dir."/".$file))
                     {
                        $files[$file]=my_scandir($dir."/".$file);
                     }
                    else
                     {
                        $files[]=$dir."/".$file;
                     }
                 }
             }
            closedir($handle);
            return $files;
         }
     }
}
print_r(my_scandir("D:Program FilesInternet ExplorerMUI"));

1.在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量(1)中;而链接到当前页面的的前一页面URL记录在预定义变量(2)中 <?php
//本页地址,SCRIPT_NAME也可以:php/test.php
echo $_SERVER['PHP_SELF'].”<br />”;
//链接到当前页面的前一页面的 URL 地址:
echo $_SERVER['HTTP_REFERER'].”<br />”;

//其它的见参考手册:语言参考》变量》预定义变量
// 前执行脚本的绝对路径名:D:Inetpubwwwrootphp est.php
echo $_SERVER["SCRIPT_FILENAME"].”<br />”;
//正在浏览当前页面用户的 IP 地址:127.0.0.1
echo $_SERVER["REMOTE_ADDR"].”<br />”;
//查询 (query)的字符串(URL 中第一个问号 ? 之后的内容):id=1&bi=2
echo $_SERVER["QUERY_STRING"].”<br />”;
//当前运行脚本所在的文档根目 录:d:inetpubwwwroot
echo $_SERVER["DOCUMENT_ROOT"].”<br />”;
?>

2. 执行程序段<?php echo 8%(-2) ?>将输出__。

<?php
//参考手册》语言参考》运算 符》算术运算符》%为取模运算,输出0
echo 8%(-2).”<br />”;
//取模 $a % $b 在 $a 为负值时的结果也是负值。输出-2
echo ((-8)%3).”<br />”;
//输出2
echo (8%(-3)).”<br />”;
?>
3.在HTTP 1.0中,状态码 401 的含义是____;如果返回“找不到文件”的提示,则可用 header 函数,其语句为____。

答:401表示未授 权;header(“HTTP/1.0 404 Not Found”);[见参考手册》函数参考》HTTP函数》header]

4.数 组函数 arsort 的作用是____;语句 error_reporting(2047)的作用是____。

答:arsort:对数 组进行逆向排序并保持索引关系 error_reporting(2047)的作用是:report All errors and warnings

5. 写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把script标记及其内容都去掉):

<?php
$script=” 以下内容不显示:<script language=’javascript’>alert(‘cc’);</script>”;
echo preg_replace(“/<script[^>].*?>.*?</script>/si”, “替换内容”, $script);

8、谈谈事务处理

A给B的账户转账50美元的例子

10. 实现中文字串截取无乱码的方法。

mb_substr()

11.

<?php
$empty = ”;
$null = NULL;
$bool = FALSE;
$notSet;
$array = array();
// 以下是问题
$a = “hello”;
$b = &$a;
unset($b);
$b = “world”;
// 答案为:hello
echo $a;
?>
12.

<?php
$empty = ”;
$null = NULL;
$bool = FALSE;
$notSet;
$array = array();
//以下是问题
$a = 1;
$x = &$a;
$b = $a++;

//以下为答案:1
echo $b;
?>
13

<?php
$empty = ”;
$null = NULL;
$bool = FALSE;
$notSet;
$array = array();
//以下是问题
$x = empty($array);

//以下为答案:true
echo $x?”true”:”false”;
?>
14、用PHP写出显示客户端IP与服务器IP的代码:

<?php
$ip=gethostbyname (“”);
echo $ip;
?>

1、用PHP打印出前一天的时间,格式是2006-5-10 22:21:21

<?php
//echo date(‘Y-m-d H:i:s’,time()-60*60*24
echo date(“Y:m:d H:i:s”,strtotime(“-1 day”));
?>
2、echo(),print(),print_r()的区别

echo 是语言结构,无返回值;print功能和echo基本相同,不同的是print是函数,有返回值;print_r是递归打印,用于输出数组对象

3、 能够使HTML和PHP分离开使用的模板

so much,其实PHP本身就是一种模版引擎,我用过的是smarty,常见的还有PHPLib,FastTemplate,Savant这里有个模板引擎 列表:http://www.sitepoint.com/forums/showthread.php?t=123769

4. 如何实现PHP、JSP交互?

题目有点含糊不清,SOAP,XML_RPC,Socket function,CURL都可以实现这些,如果是考PHP和Java的整合,PHP内置了这种机制(如果考PHP和.NET的整合,也可以这么回答), 例如$foo = new Java(‘java.lang.System’);
5.使用哪些工具进行版本控制?
CVS和SVN,SVN 号称下一代CVS,功能强大,不过CVS是老牌,市占率很高.我一直用SVN,题目是问用什么工具,呃,这个可能需要这么回答:CVS Server on Apache作服务端,WinCVS作客户端;Subversion on Apache/DAV 做服务端,TortoiseSVN做客户端,或者Subclipse做客户端

6.如何实现字符串翻转?

<?php
function reverse($var)
{
$res=”";
for($i=0,$j=strlen($var);$i<$j;$i++)
{
$res=$var[$i].$res;
}
return $res;
}
$tmpvar=”wofang”;
$res=reverse($tmpvar);
echo $res;
?>

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语 句,比如修改文章的时候,如果用户只修改了标题,那就update … set title = ? where article_id = ?不要set content = ?(大文本)
(6).必要的时候用不同的存储引擎.比如InnoDB可以减少死锁.HEAP可以提高一个数量 级的查询速度

分类: PHP开发 标签:

高性能WEB开发系列【转】

2010年5月12日 没有评论
分类: PHP开发 标签:

服务器header信息查询的一个工具

2010年4月30日 没有评论

在研究服务器端架构的时候,想查询下百度、网易、sina等公司的服务器都用的什么。于是就简单些了个小工具。

工具地址:http://www.gosoa.com.cn/doc/curl/

下面是查到的百度 sina  163  sohu  服务器的简要信息:

http://www.baidu.com 服务器信息如下:

HTTP/1.1 200 OK
Date: Fri, 30 Apr 2010 08:13:32 GMT
Server: BWS/1.0
Content-Length: 1828
Content-Type: text/html;charset=gb2312
Cache-Control: private
Expires: Fri, 30 Apr 2010 08:13:32 GMT
Content-Encoding: gzip
Set-Cookie: BAIDUID=4EBA2A48B85FC5E52EEE699D0A3A20DF:FG=1; expires=Fri, 30-Apr-40 08:13:32 GMT; path=/; domain=.baidu.com
P3P: CP=” OTI DSP COR IVA OUR IND COM ”

http://www.sohu.com 服务器信息如下:

HTTP/1.0 200 OK
Date: Fri, 30 Apr 2010 08:13:19 GMT
Server: Apache/1.3.39 (Unix) mod_gzip/1.3.26.1a
Vary: Accept-Encoding,X-Up-Calling-Line-id,X-Source-ID,X-Up-Bearer-Type
Cache-Control: max-age=70
Expires: Fri, 30 Apr 2010 08:14:29 GMT
Last-Modified: Fri, 30 Apr 2010 08:09:46 GMT
Content-Type: text/html
X-Cache: MISS from 19409316.22686337.34879013.sohu.com
Via: 1.0 19409316.22686337.34879013.sohu.com:80 (squid)
Connection: close

http://www.sina.com 服务器信息如下:

HTTP/1.0 301 Moved Permanently
Date: Fri, 30 Apr 2010 07:17:08 GMT
Server: Apache/2.0.63 (Unix)
Location: http://www.sina.com.cn/
Cache-Control: max-age=3600
Expires: Fri, 30 Apr 2010 08:17:08 GMT
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 191
Content-Type: text/html; charset=iso-8859-1
Age: 3388
X-Cache: HIT from xa66-68.sina.com.cn
Connection: close

http://www.qq.com 服务器信息如下:

HTTP/1.0 200 OK
Server: nginx/0.6.39
Date: Fri, 30 Apr 2010 08:07:55 GMT
Content-Type: text/html; charset=GB2312
Vary: Accept-Encoding
Expires: Fri, 30 Apr 2010 08:22:55 GMT
Cache-Control: max-age=900
Vary: Accept-Encoding
Content-Encoding: gzip
Age: 337
X-Cache: HIT from rainny.qq.com
Via: 1.0 rainny.qq.com:80 (squid/2.6.STABLE5)
Connection: close

http://www.163.com 服务器信息如下:

HTTP/1.0 200 OK
Server: nginx
Date: Fri, 30 Apr 2010 08:13:32 GMT
Content-Type: text/html; charset=GBK
Vary: Accept-Encoding
Expires: Fri, 30 Apr 2010 08:14:52 GMT
Cache-Control: max-age=80
Vary: User-Agent
Vary: Accept
Content-Encoding: gzip
X-Cache: MISS from cache.163.com
Connection: close

分类: PHP开发 标签: ,