【总结】PHP常见面试题汇总(一)
[php] view
plain copy
print?
- /**
- * 第1题:用PHP打印出上周的时间格式,如:"2015-01-22 14:42:09"
- */
- echo date("Y-m-d H:i:s",strtotime("-1 day"))."<br/>";
- /**
- * 第2题:用PHP打印出上周的时间格式,如:"2015-01-15 14:42:09"
- */
- echo date("Y-m-d H:i:s",strtotime("-1 week"))."<br/>";
- /**
- * 第3题:用PHP打印出上个月的时间格式,如:"2014-12-22 14:42:09"
- */
- echo date("Y-m-d H:i:s",strtotime("-1 month"))."<br/>";
- /**
- * 第4题:简述一下echo、print、print_r 区别
- * print_r()主要用来输出数组的结构;echo 和 print 主要用来输出字符串,只不过echo 可同时输出多个字符串,print 只能输出一个字符串;
- * echo 和 print 区别:
- (1)使用命令方式来输出字符串,此时不需要小括号;看个人习惯,个人习惯使用命令方式来输出字符串
- (2)使用函数方式来输出字符串,echo无返回值,print有返回值,成功返回 1,失败返回 0
- */
- print_r(array("hello world"))."<br/>";
- echo (print "ddd")."<br/>";
- /**
- * 第5题:如何实现字符串反转,如:"abcdefg" 反转成 "gfedcba";两种方式:(1)调用php自带的strrev()函数 (2)自定义函数 strrevv
- */
- echo strrev("abcdefg")."<br/>";
- $str = "abcdefg";
- function strrevv($str){
- $len=strlen($str);
- $newstr = "";
- for($i=$len-1;$i>=0;$i--){
- $newstr .= $str{$i};
- }
- return $newstr;
- }
- $showstr = strrevv($str);
- echo $showstr."<br>";
- //array_reverse():将原数组中的元素顺序反转,创建新的数组并返回;如果第二个参数指定为true,则元素的键名保持不变,如下:
- $a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse");
- print_r(array_reverse($a));
- //输出结果:
- Array ( [c] => Horse [b] => Cat [a] => Dog )
- /**
- * 第6题:如何实现中文字符串截取无乱码的方法(mb_*系列函数),首先:需要开启 extension=php_mbstring.dll 扩展 ,结果:"你"
- */
- echo mb_substr("你好",0,1,"gb2312")."<br/>";
- /**
- * 第7题:用PHP写出显示客户端和服务器端IP的代码
- */
- echo $_SERVER["REMOTE_ADDR"];//客户端IP
- echo $_SERVER["SERVER_ADDR"];//服务器端IP
- echo $_SERVER["PHP_SELF"];//结果:"/index.php" 当前脚本的名称(不包括路径和查询字符串)
- echo $_SERVER["HTTP_REFERER"];//链接到当前页面的来源url
- echo gethostbyname("www.v1pin.com");//获取指定域名的IP地址
- echo getenv("REMOTE_ADDR");//获取客户端IP地址
- echo getenv("SERVER_ADDR");//获取服务器端IP地址
- /**
- * 第8题:mysql中 IFNULL 控制流函数;IFNULL()
- * IFNULL():
- * (1)它有两个参数,并且对第一个参数进行判断。
- * (2)如果第一个参数不是NULL,函数就会向调用者返回第一个参数;如果是NULL,将返回第二个参数;
- * 例如:
- * SELECT IFNULL(1,2), IFNULL(NULL,10), IFNULL(4*NULL,"false");//结果:"1 10 false"
- */
- /**
- * 第9题:简述include与require的区别?
- * 相同点:
- * (1)include与require都能把另外一个文件包含到当前文件中
- * 异同点:
- * (1)使用include时,当包含的文件不存在时系统会报出警告级别的错误,但并不影响程序的后续执行.
- * (2)使用require时,当包含的文件不存在时系统会先报出警告级别的错误,接着又报出一个致命性的错误,将终止程序的后续执行.
- * (3)require只会解释包含的文件一次,不会再解释第二次,因而效率相对较高;而include则会重复的解释包含的文件
- * (4)载入时机不同:require在运行前载入包含文件,include在运行时载入包含文件
- */
- /**
- * 第10题:如何获取一个字符串中指定的字符?
- */
- $str="abcdefg";
- echo $str{2}."<br/>";
[php] view plain copy print?
- /**
- * 第11题:如何批量替换字符串中的特定字符?如:"批量替换$content内容字符串中的所有双引号为单引号"
- */
- $content = str_replace($searchs=array("""), $replaces=array("""), $content);
[php] view plain copy print?
- /**
- * 第12题:如何将UEditor或FCkeditor编辑器中的内容转化为JSON串?
- *
- * (1)第一种情况,内容中只有双引号的情况:
- * $content="<img alt="" src="../image/20121025/20121025105514_1093.jpg" />";
- * // {"content":"<img alt="" src="../image/20121025/20121025105514_1093.jpg" />"}
- * echo json_encode(array("content"=>$content));
- * (2)第二种情况,内容中只有单引号的情况:
- * $content="<img alt="" src="../image/20121025/20121025105514_1093.jpg" />";
- * // {"content":"<img alt="" src="../image/20121025/20121025105514_1093.jpg" />"}
- * echo json_encode(array("content"=>$content));
- * (3)第三种情况,内容中既有双引号,又有单引号的情况:
- * $content=htmlspecialchars($content);//把一些预定义的字符转换为HTML实体
- * $json_arr = json_encode(array("content"=>$content));//将数组json化为字符串
- * $arr = json_decode($json_arr,true);//将json串反json化为数组
- * $arr["content"]=htmlspecialchars_decode($arr["content"]);//把一些预定义的HTML实体转换为字符显示到网页中
- *
- */
[php] view plain copy print?
- /**
- * 第13题:addslashes()与 htmlspecialchars() 区别
- *
- * 区别:
- * (1)addslashes()函数主要在指定的预定义字符前添加反斜杠,这些预定义字符主要包括:
- *
- * 单引号 (")
- * 双引号 (")
- * 反斜杠 ()
- * NULL
- *
- * addslashes()函数的主要作用是保证这些预定义字符能够正确入库,仅此而已
- *
- *
- * (2)htmlspecialchars()函数把一些预定义的字符转换为HTML实体,这些预定义字符主要包括:
- *
- *
- * & (和号) 成为 &
- * " (双引号) 成为 "
- * " (单引号) 成为 '
- * < (小于) 成为 <
- * > (大于) 成为 >
- *
- * echo htmlspecialchars($str, ENT_COMPAT); //默认,仅编码双引号
- * echo htmlspecialchars($str, ENT_QUOTES); //编码双引号和单引号
- * echo htmlspecialchars($str, ENT_NOQUOTES);//不编码任何引号
- *
- */
- /**
- * 第14题:如何去除数组中重复的值?使用数组函数 array_unique() 可以做到
- * 案例结果:
- * Array(
- * [0] => 8535455928182811
- * [1] => 1558999140182811
- * [3] => 5795844841182811
- * )
- */
- $arr=array(
- "8535455928182811",
- "1558999140182811",
- "1558999140182811",
- "5795844841182811",
- "5795844841182811",
- );
- $ordersn_arr=array_unique($arr);
- echo "<pre>";print_r($ordersn_arr);exit;
- /*
- * 第15题:说一说自己对$GLOBALS全局变量和global关键字的理解?
- *
- * (1)、输出$GLOBALS全局变量:
- *
- * echo "<pre>";print_r($GLOBALS);
- *
- * 结果:
- * Array
- * (
- * [GLOBALS] => Array
- * *RECURSION*
- * [_POST] => Array
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。