PHP中常见的面试题4(附答案)
2018-06-22 05:24:55来源:未知 阅读 ()
1. echo count(“abcd”);输出多少?
答案:1
2. 运行以下代码后$a $b $c 分别是?
<?php $a=$b=$c=0; $a=$b && $c;
答案:false、0、0
4. 请用php的heredoc语法格式输出:hello world!
<?php $v=”hello world”; $str=<<<EOT $v EOT; echo $str;
5. $string = "abcdefg",那么$string{4}的值是?
答案:e
6. 简述echo(),print(),print_r()的区别。
答案:echo()可以一次输出多个值,多个值之间用逗号分隔。echo是语言结构,而不是真正的函数,因此不能作为表达式的一部分使用。
print()是一个函数,用来打印一个值,如果字符串成功显示则返回true,否则返回false
print_r()是一个函数,用来打印一个值,值为字符串或数字进行简单打印,而数组则以括起来的键和值列表形式显示,并以Array开头。
拓展:var_dump()是一个函数,用来显示关于一个或多个表达式的结果信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
7.用PHP写出显示客户端IP与服务器IP的代码。
客户端IP:echo $_SERVER[‘REMOTE_ADDR’];
或者echo getenv(‘REMOTE_ADDR’);
服务器IP:echo $_SERVER[‘SERVER_ADDR’];
或者echo getenv(‘SERVER_ADDR’);
8、用正则表达式判断$a是否是一个以半角逗号分隔的多个手机号码组成的字符串,是输出yes
<?php $math=“/((\d){11},)+/”; $str=”12345678901,12345678901”; if(preg_match($match,$str)){ echo ‘yes’; } ?>
9. 请定义一个名为MyClass的类,这个类只有一个静态方法justDoIt。
class MyClass { public static function justDoIt() { } }
11. 写出你知道的几种设计模式,并用php代码实现其中一种。
答案:单态模式、工厂模式、生成器模式、代理模式、迭代模式 单态模式举例: class test{ private static $obj=null; private function __construct(){ echo ‘第一次连接数据库’; } public static function getInstance(){ if(is_null(self::$obj)){ self::$obj=new self(); return self::$obj; } } }
12. 打开php.ini中的Safe_mode,会影响哪些函数?
答案: chown()、chgrp()、chdir()、fopen()、rmdir()、copy()、link()、exec()
13. 请描述如下URL重写规则的用意。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteBase /
RewriteRule . /index.php [L]
</IfModule>
答案:将URL地址强制解析为./index.php
14. 你会用哪个函数设置当前内容的Content-Type?
header函数
//定义编码
header(“Content-type:text/html;charset=utf-8”);
//CSS
header(“Content-type:text/css”);
//JavaScript
header(“Content-type:text/javascript”);
//JPEG Image
header(“Content-type:image/jpeg”);
//GIF Image
header(“Content-type:image/gif”);
//PNG Image
header(“Content-type:image/png”);
//JSON
header(“Content-type:application/json”);
header(“Content-type:application/pdf”);
//XML
header(“Content-type:text/xml”);
//ok
header(“HTTP/1.1 200 OK”);
//404头
header(‘HTTP/1.1 404 Not Found’);
//设置地址被永久的重定向
header(‘HTTP/1.1 301 Moved Permanently’);
//转到一个新地址
header(‘Location:http://www.example.org/’);
//文件延迟转向
header(‘Refresh:10;url=http://www.example.org/’);
print ‘You will be redirected in 10 seconds’;
//纯文本格式
header(‘Content-type:text/plain’);
15. Warning: Cannot modify header information - headers already sent by (output started at D:\src\init.php:7) in D:\src\init.php on line 10 通常什么情况下php会报该警告信息?
答案:header(‘Content-type:text/html;charset=utf-8’)头之前有任何输出均会出现如下错误。
16. A通过页面输入用户名abc和密码123登录到www.10086.cn,请写出该次请求的HTTP协议报文(包括请求行、消息报头、请求正文)。
答案:
Post /login HTTP/1.1
============
host: www.10086.cn
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0(Windows;U;Windows NT 5.1;en-US;rv:1.7.6)
Content-length: 25
Refer: www.10086.cn
============
Username=abc&password=123
17. 写一段php代码遍历某个目录下的所有文件和子文件夹。
<?php function scandir($path){ $files = array(); $handle = opendir($path); if ($filename=@readdir($handle)) { if ($filename==’.’ || $filename==’..’) { continue; } if (is_dir($filename)){ $files[$filename] = scandir($path.’/’.$filename); } else { $files[$filename] = $filename; } } return $files; } ?>
18. 查看磁盘空间使用率的linux命令是什么?查看有哪些系统进程正在运行命令是什么?监测linux性能(cpu,磁盘io,内存,网络等)都用到哪些命令?
答案:df、ps、top
19. linux下终止一个进程用什么命令?打包压缩和解包用什么命令?建立软连接的命令是?
答案:
pkill -9 进程名或kill 进程号、
tar zcvf和tar zxvf
ln
20. 如果要求每隔5分钟执行一次脚本five.php,如何实现?
答案:crontab –e
*/5 * * * * php five.php
21. mysql中varchar的最大长度是多少?用什么类型的字段存储大文本?date和datetime和timestamp什么区别?怎么看数据库中有哪些sql正在执行?
答案:
65535、
text、
区别:
1. 存储空间不同
a) TIMESTAMP占用4个字节
b) DATETIME占用8个字节
2. 受时区影响
a) TIMESTAMP实际记录的是1970-01-01 00:00:01到现在的数,受时区影响
b) DATETIME不受时区影响
3. 时间范围不同
a) TIMESTAMP的时间范围是:'1970-01-01 00:00:01' UTC ~ '2038-01-19 03:14:07' UTC
b) DATETIME的时间范围是:'1000-01-01 00:00:00' ~ '9999-12-31 23:59:59'
4. 自动更新
TIMESTAMP类型在默认情况下,insert、update 数据时,TIMESTAMP列会自动以当前时间(CURRENT_TIMESTAMP)填充/更新。
show processlist;
22. MySQL数据库的一个表:User
Name Tel Content Date
张三 13333663366 大专毕业 2006-10-11
张三 13612312331 本科毕业 2006-10-15
张四 021-55665566 中专毕业 2006-10-15
写出如下操作的SQL语句:
(a) 有一新记录(小王 13254748547 高中毕业 2007-05-06)请用SQL语句新增至表中
(b) 请用sql语句把张三的时间更新成为当前系统时间
(c) 请写出删除名为张四的全部记录
答案:
(a)inser into User(Name,Tel,Content,Date) values(“小王”,12354748547,”高中毕业”,”2007-05-06”);
(b)update User set Date=date(now()) where User=”张三”;
(c)delete from User where User=”张三”;
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:PHP腾讯与百度坐标转换
下一篇:laravel5.4生成验证码
- PHP写UltraEdit插件脚本实现方法 2020-03-29
- php 带逗号千位符数字的处理方法 2020-03-28
- PHP三元运算符的结合性介绍 2020-03-28
- PHP静态延迟绑定和普通静态效率的对比 2020-03-28
- 基于php流程控制语句和循环控制语句 2020-03-28
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash