目錄
PHP经典面试题集锦,php经典试题集锦
首頁 php教程 php手册 PHP经典面试题集锦,php经典试题集锦

PHP经典面试题集锦,php经典试题集锦

Jun 13, 2016 am 09:11 AM
php php程式設計師 經典 面試題

PHP经典面试题集锦,php经典试题集锦

本文较为详细的分析了PHP经典面试题。分享给大家供大家参考。具体如下:

做了一下网络上的php题目,不知不觉做到现在.....把答案贴出来,供参考之用。

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

$a = date("Y-m-d H:i:s", strtotime("-1 day"));
print_r($a);
登入後複製

2、echo(),print(),print_r()的区别(3分)
echo 和print不是一个函数,是一个语言结构
int print(string $arg), 只有一个参数
echo arg1,arg2; 可以输出多个参数,返回void
echo和print只能打印出string,不能打印出结构
print_r能打印出结构
比如

$arr = array("key"=>"value");
print_r($arr);
登入後複製

3、能够使HTML和PHP分离开使用的模板(1分)
smarty,phplib

4、使用哪些工具进行版本控制?(1分)
svn,git,cvs

5、如何实现字符串翻转?(3分)
英文:
strrev($a)
中文或其他文字:
中文:GB2312, 代码是使用GB2312编码

<&#63;php 
function reverse($str)
{
 $ret = ""; 
 len=mbstrwidth(str,"GB2312");
 for(i=0;i< len;i++)
 {
 arr[]=mbsubstr(str, $i, 1, "GB2312");
 }
 return implode("", array_reverse($arr));
}
print_r(reverse("你好"));
登入後複製

6、优化MYSQL数据库的方法。(4分,多写多得)
语句方面:
1 使用索引,增加查询效率
2 优化查询语句,提高索引命中率
数据库涉及方面:
1 构造分库分表,提高数据库的存储和扩展能力
2 根据需要使用不同的存储引擎

7、PHP的意思(送1分)
超级文本预处理语言
Hypertext PreProcessor

8、MYSQL取得当前时间的函数是?,格式化日期的函数是(2分)

CURRENT_TIMESTAMP()
DATE_FORMAT()
select DATE_FORMAT("2011-11-21 10:10:10", "%Y-%m-%d");
登入後複製

9、实现中文字串截取无乱码的方法。(3分)

mb_substr($str, 1, 1, "GB2312");
登入後複製

10、您是否用过版本控制软件? 如果有您用的版本控制软件的名字是?(1分)
svn
git

11、您是否用过模板引擎? 如果有您用的模板引擎的名字是?(1分)
smarty

12、请简单阐述您最得意的开发之作(4分)
XXX

13、对于大流量的网站,您采用什么样的方法来解决访问量问题?(4分)
1 有效使用缓存,增加缓存命中率
2 使用负载均衡
3 对静态文件使用CDN进行存储和加速
4 想法减少数据库的使用
5 查看出现统计的瓶颈在哪里

14、用PHP写出显示客户端IP与服务器IP的代码1分)
$_SERVER["REMOTE_ADDR"]
$_SERVER["SERVER_ADDR"]

15、语句include和require的区别是什么?为避免多次包含同一文件,可用(?)语句代替它们? (2分)
在失败的时候:
include产生一个warning,而require产生直接产生错误中断
require在运行前载入
include在运行时载入
require_once
include_once

16、如何修改SESSION的生存时间(1分).
session_set_cookie_params

17、有一个网页地址, 比如PHP研究室主页: http://www.bkjia.com/index.html,如何得到它的内容?($1分)
file_get_contents
curl

18、在HTTP 1.0中,状态码401的含义是(?);如果返回“找不到文件”的提示,则可用 header 函数,其语句为(?);(2分)
未授权

header("HTTP/1.0 404 Not Found");
登入後複製

fast CGI中:

header("Status: 404 Not Found");
登入後複製

19、在PHP中,heredoc是一种特殊的字符串,它的结束标志必须?(1分)
成对出现

$a = <<EOD
good test
EOD;
登入後複製

20、谈谈asp,php,jsp的优缺点(1分)
asp是需要依赖IIS,是微软开发的语言
php和jsp可以依赖apache或者 nginx等其他服务器

21、谈谈对mvc的认识(1分)
model : 数据结构层
view :展现
control : 接收和判断处理输入

22、写出发贴数最多的十个人名字的SQL,利用下表:members(id,username,posts,pass,email)(2分)
select top 10 id,username from members order by posts desc

23. 请说明php中传值与传引用的区别。什么时候传值什么时候传引用?(2分)
&表示传引用
函数中参数传引用会将参数进行改变
一般在输出参数有多个的时候可以考虑使用引用

24. 在PHP中error_reporting这个函数有什么作用? (1分)
设定error的展示级别

25. 请写一个函数验证电子邮件的格式是否正确 (2分)

$str = "jianfeng@126.com";
regex="([a&#8722;z0&#8722;9\.&#8722;]+)@([\da&#8722;z\.&#8722;]+)\.([a&#8722;z\.]2,6)" ; //正则
return preg_match(regex,str)
登入後複製

26. 简述如何得到当前执行脚本路径,包括所得到参数。(2分)
$argc --获取参数数量
$argv --获取参数列表

27.如何修改SESSION的生存时间. (1分)
session_set_cookie_params

28、JS表单弹出对话框函数是?获得输入焦点函数是? (2分)

alert()
confirm()
promopt()
focus()

29、JS的转向函数是?怎么引入一个外部JS文件?(2分)

window.location.href="#"
<script src="#"></script>
登入後複製

30、foo()和@foo()之间有什么区别?(1分)
@代表所有warning忽略

31、如何声明一个名为”myclass”的没有方法和属性的类? (1分)

class myclass
{
}
登入後複製

32、如何实例化一个名为”myclass”的对象?(1分)

$myclass = new myclass();
登入後複製

33、你如何访问和设置一个类的属性? (2分)

<&#63;php
class A
{
 public $name = "A";
}
$a = new A();
n=a->name;
print_r($n);
登入後複製

34、mysql_fetch_row() 和mysql_fetch_array之间有什么区别? (1分)
mysql_fetch_array() 是 mysql_fetch_row() 的扩展版本。除了将数据以数字索引方式储存在数组中之外,还可以将数据作为关联索引储存,用字段名作为键名。

<&#63;php
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysql_error());
mysql_select_db("mydb");
$result = mysql_query("SELECT id, name FROM mytable");
while (row=mysqlfetcharray(result, MYSQL_ASSOC)) {
printf ("ID: %s Name: %s", row["id"],row["name"]);
}
mysql_free_result($result);
登入後複製

35、GD库是做什么用的? (1分)

动态的开放的图片处理库

36、指出一些在PHP输入一段HTML代码的办法。(1分)

echo "{html}"
echo <<EOD
{html}
EOD;
登入後複製

37、下面哪个函数可以打开一个文件,以对文件进行读和写操作?(1分) c
(a) fget() (b) file_open() (c) fopen() (d) open_file()

38、下面哪个选项没有将 john 添加到users 数组中? (1分) b
(a) $users[] = ‘john';
(b) array_add($users,'john');
(c) array_push($users,‘john');
(d) $users ||= ‘john';

39、下面的程序会输入是否?(1分) 10

$num = 10;
function multiply(){
num=num * 10;
}
multiply();
echo $num;
&#63;>
登入後複製

40、使用php写一段简单查询,查出所有姓名为“张三”的内容并打印出来 (2分)
表名 UserName Tel Content Date
 张三 13333663366 大专毕业 2006-10-11
 张三 13612312331 本科毕业 2006-10-15
 张四 021-55665566 中专毕业 2006-10-15
请根据上面的题目完成代码:

$mysql_db=mysql_connect("local","root","pass");
@mysql_select_db("DB",$mysql_db);
$sql = sprintf("select * from %s where UserName = '%s'", 
 "表名", 
 "张三");
values=mysqlquery(sql);
while(item=mysqlfetchqueryarray(values))
{
 echo sprintf("用户名:%s, 电话 %s, 学历: %s, 毕业日期: %s", 
 item['UserName'],item['Tel'], item['Content'],item['Date']
 );
}
登入後複製

41、如何使用下面的类,并解释下面什么意思?(3)

class test{
function Get_test($num){
num=md5(md5(num)."En");
return $num;
}
}
$test = new test();
ret=test->Get_test(11);
print_r($ret);exit;
登入後複製

将num进行MD5编码之后生成的32位字符串a1和"En"联系起来之后再进行一次MD5编码

42、写出 SQL语句的格式 : 插入 ,更新 ,删除 (4分)
表名 UserName Tel Content Date
   张三 13333663366 大专毕业 2006-10-11
   张三 13612312331 本科毕业 2006-10-15
   张四 021-55665566 中专毕业 2006-10-15
(a) 有一新记录(小王 13254748547 高中毕业 2007-05-06)请用SQL语句新增至表中
insert into 表名 values('小王', '13254748547', '高中毕业', '2007-05-06')
(b) 请用sql语句把张三的时间更新成为当前系统时间
update 表名 set Date = GETDATE() where UserName = "张三"
(c) 请写出删除名为张四的全部记录
delete from 表明 where UserName = "张四"

43、请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么区别(2分)
int 整型
char 存储定长
varchar 存储变长
datetime 时间
text 存储变长的
varchar是变长
char(20) 定长

44、MySQ自增类型(通常为表ID字段)必需将其设为(?)字段(1分)
auto_increment
45、写出以下程序的输出结果 (1分)

$b=201;
$c=40;
a=b>$c&#63;4:5;
echo $a;
登入後複製

46、检测一个变量是否有设置的函数是否?是否为空的函数是?(2分)
isset()
empty()

47、取得查询结果集总数的函数是?(1分)

mysql_num_rows()
登入後複製

48、$arr = array('james', 'tom', 'symfony'); 请打印出第一个元素的值 (1分)

print_r($arr[0]);
reset($arr);
print_r(current($arr));
print_r(array_shift($arr));
登入後複製

49、请将41题的数组的值用','号分隔并合并成字串输出(1分)
implode

50、a='abcdef';请取出a的值并打印出第一个字母(1分)

$a[0];
substr($a, 0, 1);
登入後複製

51、PHP可以和sql server/oracle等数据库连接吗?(1分)
可以
有现成的库

52、请写出PHP5权限控制修饰符(3分)
public
private
protected

53、请写出php5的构造函数和析构函数(2分)

public function __construct()
{
}
public function __destruct()
{
}
登入後複製

编程题:

1. 写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名
例如: http://www.sina.com.cn/abc/de/fg.php?id=1 需要取出 php 或 .php

<&#63;php
$url = "http://www.sina.com.cn/abc/de/fg.php&#63;id=1";
arr=parseurl(url);
pathArr=pathinfo(arr['path']);
print_r($pathArr['extension']);
登入後複製

3. 写一个函数,算出两个文件的相对路径
如 $a = '/a/b/c/d/e.php';
$b = '/a/b/12/34/c.php';
计算出 b相对于a 的相对路径应该是 http://www.bkjia.com/12/34/c.php将添上

<&#63;php
$a = '/a/b/c/d/e.php';
$b = '/a/b/12/34/c.php';
//获取path相对于conpath的相对路径
function sGetRelativePath(path,conpath)
{
 pathArr=explode("/",path);
 conpathArr=explode("/",conpath);
 $dismatchlen = 0;
 for(i=0;i < count(pathArr);i++)
 {
 if(conpathArr[i] != pathArr[i])
 {
  dismatchlen=count(pathArr) - $i;
  arrLeft=arrayslice(pathArr, $i);
  break;
 }
 }
 ret=strrepeat("../",dismatchlen).implode("/", $arrLeft);
 return $ret;
}
print_r(sGetRelativePath(b,a));
登入後複製

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

<&#63;php
function aGetAllFile($folder)
{
 $aFileArr = array();
 if(is_dir($folder))
 {
 handle=opendir(folder);
 while((file=readdir(handle)) !== false)
 {
  //如果是.或者..则跳过
  if(file=="."||file == "..")
  {
  continue;
  }
  if(is_file(folder."/".file))
  {
  aFileArr[]=file; 
  }
  else if(is_dir(folder."/".file))
  {
  aFileArr[file] = aGetAllFile(folder."/".file);
  }
 }
 closedir($handle);
 }
 return $aFileArr;
}
$path = "/home/test/sql";
print_r(aGetAllFile($path));
登入後複製

希望本文所述对大家的php程序设计有所帮助。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

我後悔之前不知道的 7 個 PHP 函數 我後悔之前不知道的 7 個 PHP 函數 Nov 13, 2024 am 09:42 AM

如果您是經驗豐富的PHP 開發人員,您可能會感覺您已經在那裡並且已經完成了。操作

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

在PHP API中說明JSON Web令牌(JWT)及其用例。 在PHP API中說明JSON Web令牌(JWT)及其用例。 Apr 05, 2025 am 12:04 AM

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

php程序在字符串中計數元音 php程序在字符串中計數元音 Feb 07, 2025 pm 12:12 PM

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

您如何在PHP中解析和處理HTML/XML? 您如何在PHP中解析和處理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

解釋PHP中的晚期靜態綁定(靜態::)。 解釋PHP中的晚期靜態綁定(靜態::)。 Apr 03, 2025 am 12:04 AM

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? 什麼是PHP魔術方法(__ -construct,__destruct,__call,__get,__ set等)並提供用例? Apr 03, 2025 am 12:03 AM

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。

See all articles