php面試題,百度答案


一公司:

1、@當將其放置在一個PHP表達式之前有什么作用?

2、用foreach把$arr=array(1,2,3,4)每個values值乘2輸出;

3、PHP定界符如何使用?

4、說出mysql_connect()和mysql_pconnect()區別?

5、用php打印出前一天的時間,格式是2006-5-10 22:21:22;

6、請寫出PHP5的構造函數和析構函數,構造函數和析構函數可以接受參數嗎?

7、描述parent,::,extends作用?

8、在HTTP1.0中,狀態碼200,403,404,500的含義分別是?

9、寫出以下程序的輸出結果:

$smarty = new Smarty;

$smarty->assign('articleTitle',"Blind Woman Gets <font facc=\"helvctica\">New Kidney</font>

from Dad she Hasn`t Seen in <b>years</b>,");

$smarty->display('index.tpl');

Index.tpl中:{$articleTitle|strip_tags}

 

10、Apache默認POST傳輸的最大容量分別是多少?

11、jquery中 ajax如何實現同步執行?

12、mysql數據庫中myisam和innodb的區別?

13、優化mysql數據庫的方法

14、表a           表b

............................   ...........................................

| id | name |       | a_id | tdate | tclose |

............................   ...........................................

| 1 | B |         | 1      | C      | D      |

| 3 | H |         | 2      | E      | F       |

............................   | 3      | E      | S       |

請用sql統計出a表關聯b中的數據,要求格式結果name,tdate,tclose;

 

二公司:

1、寫出下面代碼的輸出結果

<?php
  $num = 10;
  function multiply(){
    $num = $num*10;
  }
  multiply();
  echo $num;
?>

2、下面代碼的含義是什么?

<?php

!function_exists('readover')&& exit('Forbidden');

?>

3、有一數組$a=array(4,3,8,9,2);請將其重新排序,按從小到大的順序列出(用PHP函數實現)

4、下面變量的值要插入數據庫,如何處理?
$st = "I`am is phper.";
5、按2008-08-11的格式打印出今天的日期
6、請寫一個函數驗證電子郵件的格式是否正確?
7、類的屬性可以序列化后保存到數據庫中,這要用到的函數是什么
8、寫出獲得http://www.zhongsou.net/test.php頁面內容的代碼
9、php中"@"符號的含義,一般在什么情況下使用?
10、語句include和require的區別是什么?為避免多次包含同一文件,可用什么語句代替它們?
11、PHP中連接MYSQL數據庫的函數是什么?簡述下他們之間的區別和應用案例
12、用smarty模板輸出下面的數組的內容

$data = array(
  [1]=>array([id]=111[name]='zhangsan')
  [2]=>array([id]=222[name]='lisi')
  [3]=>array([id]=333[name]='wangwu')
)

輸出結果:

<table>
  <tr>
    <td>1</td><td>111</td><td>zhangsan</td>
  </tr>
  ……
</table>

 

13、如何使用下面的類,並解釋下面什么意思?

class test
{
  mytest($num)
  {
    $num=md5(md5($num)."En");
    return $num;
  }
}


14、在mysql中使用什么方法分析sql語句的執行效率?當其extra列輸出Usingfilesort表示什么意思?
15、mysql數據表test,有兩個字段col1和col2,類型為varchar,現在需要更新col1字段,其值為col1加上col2,並且替換里面的內容“http://www.zhongsou.net”替換為“http://www.zhongsou.com”,請寫出執行此效果的sql語句
16、mysql有哪幾種索引類型?其索引文件采取什么格式保存?表A中有firstname、lastname、age三個字段,在這三個列上分別創建單列索引,效果和創建一個firstname、lastname、age的多列索引一樣是否相同?
17、談談您對MVC的認識?
18、談談您對面向對象的認識?

三公司:
一、基礎題目
1、用PHP打印出前一天的時間,格式是2013-5-10 12:21
2、echo(),var_dump()的區別
3、有一個網頁地址,比如教育在線主頁:http://www.eol.cn/index.html,如何得到它的內容
4、實現中文字符串截取無亂碼的方法
5、foo()和@foo()之間有什么區別
6、請寫一個函數驗證電子郵件的格式是否正確
7、如何聲明一個名為“myclass”的沒有方法和屬性的類?並實例化它
8、GD庫是做什么用的?
9、談談asp,php,jsp的優缺點
10、使用過哪些工具進行版本控制?闡述Subversion和Git的區別
11、使用過哪些PHP框架,並簡述他們的優缺點
二、數據庫題目
1、請寫出數據類型(int char varchar datetime text)的意思,請問varchar和char有什么區別
2、如何對數據表內容進行分頁顯示,請簡要描述
3、優化MYSQL數據庫的方法,請寫出你知道的所有方法
三、進階題目
1、簡要描述SESSION的工作原理,如何做到多平台共享SESSION
2、從哪些方面避免PHP程序被攻擊,越詳細越好
3、談談對MVC的認識與理解
4、Smarty,phplib的區別,並闡述Smarty模板的工作原理
5、對於大流量的網站,您采用什么樣的方法來解決訪問量問題
6、請簡單闡述您最得意的開發之作

四公司:
1、字符串"\r","\n","\t","\x20"分別代表什么
2、以下語句輸出的結果是什么

$a = 3;
echo "$a",'$a',"\\\$a","$(a)","$a"."$a","$a"+"$a";

得到的結果是:

3、以下語句輸出的結果是什么

setcookie("a","value");
print $_COOKIE['a'];

得到的結果是:

4、PHP中將當前頁面重定向到另一個頁面怎么寫?
5、PHP中如何取得GET,POST參數,和上傳的文件
6、如何取得客戶端的ip(要求取得一個int)
7、include和require的區別
8、array+array與array_merge()的區別

五公司:
第一題、現有如下代碼:

$a = true;
$b = false;
$c = 0812;
$d = 0x812;
echo "$a has value: ".$a;
echo '$b has value: '.$b;
echo '$c has value: '.$c;
echo '$d has value: '.$d;

請寫出程序輸出結果

第二題、現有如下接口

interface ILogger{
    public function __construct($filename);
    public function write($lgo);
    public function read();
}

現需要日志讀寫的Logger類,通過構造函數指定了日志文件的路徑,通過調用write和read方法完成日志文件的讀寫。

1、請使用ILogger接口實現Logger類
2、現有如下Database類的代碼,使用上題中的Logger類通過日志記錄數據庫的操作。

class Database{
private $db;
private $logger;

public function __construct(ILogger $logger,$dsn = 'mysql:dbname=testdb;host=127.0.0.1',$user = 'dbuser',$password = 'dbpass'){
  $logger = $logger;
  try{
    $db = new PDO($dsn,$user,$password);
  } catch(PDOException $e){
    $logger->write('Connection failed: {$e->getMessage()}');
  }
}

public function execute($sql){
  $result = $db->exec($sql);
  if($result)
    $logger->write('$sql is executed,$result line(s) is(are) rows affected by the statement.');
  else
    $logger->write('Failed to execute : $sql');
  }
}

請問,上述代碼是否正確?如果不正確,請指出錯誤的代碼段並修改。

第三題、假設位於192.168.1.100的數據庫dbname中的用戶表Users有如下結構

其中userId為用戶id,值大等於0;username為登錄用戶名,name為用戶真實姓名,passwd為用戶密碼的MD5值。
用戶通過登錄頁面提交登錄信息。登錄頁面表單代碼如下:

<from name="loginForm" method="post" action="userlogin.php">
  <p>
    <label for="username" class="label">用戶名:</label>
    <input id="username" name="username" type="text" class="input"/>
  </p>
  <p>
    <label for="password" class="label">密碼:</label>
    <input id="password" name="password" type="password" class="input"/>
  </p>
  <p>
    <input type="submit" name="submit" value="確定" class="left" />
  </p>
</from>

在php程序中需要定義User類,使用單例模式,實現用戶登錄、退出功能,其包含如下4個函數:

getUserInstance:獲取用戶對象,如果用戶對象已創建,返回用戶對象;如果登錄過,從保存的信息中獲取用戶的ID並創建對象,如果沒有登錄,則跳轉到登錄頁面login.php
login:用戶登錄驗證函數,如果用戶成功登錄,login函數可以返回用戶的ID(數據庫userId的值)和用戶真實姓名,如果不成功,返回false。
logout:退出當前登錄
__construct:User類的構造函數,初始化用戶對象,包括用戶ID,用戶登錄名、用戶真實名等
3.1請用PHP完成User類。

第四題、現有下圖的樹形結構
該結構存儲在數據庫Tree表中,Tree表結構如右表所示,其中Id為節點編號,ParentId為父節點編號。
請實現統計給定節點的子節點的數量。例如2的子節點(即節點4,5,6,7)的數量為4,3的子節點數量為0

六公司:
1、如何在php中定義常量?
2、什么是mvc?
3、用PHP打印出上個月最后一天,時間格式為2006-5-10 22:21:21
4、如何使用下面的類,並解釋下面什么意思?

class test{
  function Get_test($num){
    $num-md5(md5($num)."En");
    return $num;
  }
}

 

5、下列程序的輸出結果是?

$x = 5;
echo $x;
echo "<br />";
echo $x+++$x++;
echo "<br />";
echo $x;
echo "<br />";
echo $x---$x--;
echo "<br />";
echo $x;

 

6、簡述post和get的區別
7、varchar和char的區別
8、請寫出jquery發送ajax請求的基本格式
9、jquery里的id選擇器和class選擇器有何不同?
10、Myisam和innodb的基本區別
11、解釋下列常用的linux命令的含義
ls:
cp:
rm:
cat:
mkdir:
tar:
ps:
top:
df:
find:
grep:
cd:
12、兩張表city表和province表。分別為城市與省份的關系表
city:
(1)寫一條sql語句關系兩個表,實現:顯示城市的基本信息。
顯示字段:城市id,城市名,所屬省份。如:id(城市id)cityname(城市名)privence(所屬省份)
(2)如果要統計每個省份有多少個城市,請用group by查詢出來
顯示字段:省份id,省份名,包含多少個城市。

七公司:
基礎題:
1、頁面中有如下代碼片段:
<img title="xx" sina_title="xxxx" src="x.jpg" id="img1" />
使用javascript的____________方法可以獲取該節點對象
使用其______________方法可以獲取該節點對象的title屬性的值
使用其______________方法可以獲取該節點對象的sina_title屬性的值
2、檢測一個變量是否有設置的函數是________?是否為空的函數是________?區別是___________?
3、用php寫出獲取昨天的日期代碼_________________(格式2009-09-21)
4、對數組進行逆向排序並保持索引關系的函數是_______將字符串轉換成小寫的是____________字符串反轉函數是______________
5、error_reporting(E_ALL)和ini_set('display_errors','On')的關系是:_______
6、有字符串“1,2,3”,可以按逗號拆分為字符串數組的PHP函數是_______將數組元素接成字符串的函數是_________寫出一個正則表達式,過慮網頁上的所有js腳本________________
7、PHP可以執行系統命令的函數是(至少寫出3個)___________
8、重寫list-101 '' 213.html到list.php?fid=101 '' 213&page=需要在apache配置中增加如下規則,RewriteRule_____________
9、smarty模板中,將變量$price格式化為小數點保留兩位(假設值為$price ="",3則輸出應為)"".30________________
10、PHP中,將變量$price格式化為小數點保留兩位(假設值為$price ="",3則輸出應為)"".30________________

程序題:
1、使用PHP正則匹配一段內容里的所有sina.com.cn域名及其子域名的超鏈接的url
2、寫一個函數,算出兩個文件的相對路徑,如$a='/a/b/c/d/e.php';$b='/a/b/12/34/c.php';計算出$b相對於$a的相對路徑(寫出思路亦可)
3、使用PHP描述二分查找(也叫做折半查找)算法,須考慮效率,對象可以是一個有序數組(寫出思路亦可)
4、怎樣找出單向鏈表中,位於中間的元素?
簡答:
1、在開發中你都需要考慮哪些安全因素?如對用戶提交的內容(如評論等)需要顯示在頁面上需要做怎樣的過濾和轉換處理?從數據庫讀出的內容再插入數據庫會引起二次注入,如何解決?
2、mysql中哪種存儲引擎有靜態表(也叫定長表)?靜態表和動態表的區別?mysql中myisam與innodb的各自特點是什么
3、explain一條sql語句你會關注哪些列?什么情況下Extra列中會出現Using temporary或Using filesort?如何優化?
4、在PHP中什么時候使用帶有靜態成員的類,什么時候使用單例?
5、TCP/IP、HTTP、AJAX的層次關系是什么?HTTP與FTP協議的區別是什么?TCP與UDP協議的區別是什么?

選答題:
1、在單向鏈表中,如何檢查是否有環的情況?比如1->2->3->4->5->3
2、web應用中,你怎樣避免幾個人編輯同一段數據所造成的沖突?
3、在一個有序數組,里面是從1到1,000,000的整數,其中有一個數字出現了兩次如何快速找出那個重復的數字?

八公司:
1、echo count("abc");輸出是什么?
2、用PHP寫出顯示客戶端IP與服務器IP的代碼
3、Error_reporting(2047)什么作用?
4、如何實現php、jsp交互?
5、打開php.ini中的Safe_mode,會影響哪些參數?至少說出6個
6、請寫一個函數驗證電子郵件的格式是否正確(要求使用正則)
7、請寫個函數用來對二維數組排序
8、寫5個不同的自己的函數,來截取一個全路徑的文件的擴展名,允許封裝PHP庫中已有的函數。
9、請使用偽語言結合數據解雇冒泡排序法對一下一組數據進行排序10 2 36 14 1025 23 85 99 45
10、寫出sql語句的格式插入,更新,刪除
表名 user
name tel content datetime
張三 13333663366 大專畢業 2006-10-11
張三 13312341234 本科畢業 2006-10-15
李四 021-55665566 中專畢業 2006-10-15

(a)有一條新記錄(小王 13278907890 高中畢業 2007-05-06)請用sql語句新增至表中
(b)請用sql語句把張三的時間更新成為當前系統時間
(c)請寫出刪除名為李四的全部記錄
11、有如下信息
起始地 目的地 距離(公里)
A    B    1000
A    C    1100
A    D    900
A    E    400
B    D    300
D    F    600
E    A    400
F    G    1000
C   B     600
請用sql語句或一段代碼寫出從A出發,可達到的目的地(包括間接方式)

九公司:
1、請列出5個array_開頭的PHP處理數組函數並描述含義(如array_keys())
2、請寫一個函數,盡可能高效的從一個標准url中取出文件的擴展名
3、請用PHP代碼示例“單例模式”
4、請列出MYSQL兩種或以上存儲引擎;並論述下區別和優劣

十公司:
1、寫出你所知道的PHP字符串處理函數,數組函數?
2、優化mysql數據庫的方法
3、有一個網頁地址,比如:http://www.dearedu.com/index.html,如何得到它的內容
4、請舉例說明在你的開發過程中用什么方法來加快頁面的加載速度
5、求$a,$b,$c三個數中的最大值和最小值
6、echo()、print()、print_r()的區別
7、防止sql注入漏洞可以用哪些函數?
8、寫一個函數,能夠遍歷一個文件夾下的所有文件和子文件夾
9、$a=1;$b=&$a;$b=2;echo $a;unset($a);echo $b;請問兩次分別輸出什么?
10、
現通過查詢數據庫需要得到以下格式的列表,並按照回復數量排序,回復最高的排在最前面
“文章ID 文章標題 點擊量 回復數量”
請寫出sql:

十一公司:
1、is_null empty is_int is_string的區別(初級)
2、如何快速得到一個文件的后綴名?(初級)
3、表單提交get和post的區別(初級)
4、mysql設計一個無限級分類,要求能快速定位父節點,爺節點等上級節點(初中)
5、請描述sql注入原理和XSS攻擊原理(中級)
6、寫一個函數,算出兩個文件的相對路徑,如:$a='/a/b/c/d/e.php';$b='/a/b/12/34/c.php'(中級)
7、現在有一個網站群(www.A.com,www.B.com,www.C.com...),請實現一套SSO(單點登錄)方案(中高)
8、一個單詞單詞字母交換,可得另一個單詞,如army->mary,成為兄弟單詞。提供一個單詞,在字典中找到它的兄弟。描述數據結構和查詢過程(高級)

十二公司:
一、基礎題
1、==和===有什么區別?
2、請分別說明isset,is_null,empty這3個函數是什么意思?分別可以判斷哪些情況。
3、如何合並一個或多個數組
4、請寫出一個函數,實現將三維數組轉化為二維數組
5、寫一個驗證手機號碼的正則表達式?(限制前兩位為13 15 18 位數11)
6、給你三個數a b c,寫程序求出其最大值?
7、有一個數據表user,表里面包含100萬條數據,怎么樣取出第86999條后面的30條數據,請寫出sql語句。
8、怎么樣將JS的對象轉化為JSON格式的數據。
9、jquery中,focus,keyup,blur分別是什么意思,分別在什么情況使用這些函數。
10、jquery中,怎么樣分別獲取一個input輸入框,一個input復選框,一個textarea文本框,和一個div容器中的值?
11、有如下數組:
var arr = [['a','aa','aaa'],['b','bb','bbb'],['c','cc','ccc']]在jquery文件中,用什么方法來循環該數組,請寫出具體的jquery方法。
12、mysql取得當前時間的函數是?格式化日期的函數是?
13、列舉優化mysql查詢的方法?
14、AJAX亂碼解決的方法(里面含中文亂碼情況)?
15、請統計出每個游戲昨日用戶登錄次數。假如數據如下:
Userid,game, server, logintime, who
1, 開心西游,花果山, 2010-6-15 20:20:01,1001
2, 開心西游,水簾洞, 2010-6-15 20:20:01,1002
3, 武林傳奇,武林至尊,2010-6-15 20:20:01,1003
4, 最三國, 一區, 2010-6-15 20:20:01,1001
5, 開心西游,花果山, 2010-6-15 20:20:01,1001
3, 武林傳奇,武林至尊,2010-6-15 23:20:01,1003
要求結果形式如下
開心西游,武林傳奇,最三國
3,2,1
請寫出sql語句。

邏輯題(只需要寫出結果就行)
在一盤紙牌游戲中,某個人的手中有這樣一幅牌:
(1)正好有13張牌。
(2)每種花色至少有1張。
(3)每種花色的張數不同。
(4)紅心和方塊總共5張。
(5)紅心和黑桃總共6張。
(6)屬於“王牌”花色的有2張。
請問紅心、黑桃、廣場和梅花這四種花色,那一種是“王牌”花色?

十三公司:
1、isset($a)返回:A.true B.false
2、$a='';isset($a)返回:A.true B.false
3、$a=0;isset($a)返回:A.true B.false
4、$a=null;isset($a)返回:A.true B.false
5、empty($a)返回:A.true B.false
6、$a='';empty($a)返回:A.true B.false
7、$a=0;empty($a)返回:A.true B.false
8、$a=null;empty($a)返回:A.true B.false
9、$a=null;$b='';$a===$b返回:A.true B.false
10、$a=1;$b=2;$a=&$b;$b++;$a的值為:A.1 B.2 C.3
11、$a=1;$b=$a++;$b的值為:A.1 B.2 C.3
12、$a=1;$b=++$a;$b的值為:A.1 B.2 C.3
13、$a=1;$b+=$a;$b的值為:A.1 B.2 C.3
14、$a='abc';$a{1}=f;$a的值為:A.abc B.afc C.abfc D.afbc E.fbc F.abf
15、Intval('2d3c')返回值為:A.0 B.2 C.3 D.23
16、Intval('d2c3')返回值為:A.0 B.2 C.3 D.23
17、$a=array(2,3,4);$a[]=5;$a[2]的值為:A.0 B.1 C.2 D.3 E.4 F.5
18、$a=array('a'=>1,'b'=>2,'c'=>3);$a[]=4;$a[4]的值為:A.null B.1 C.2 D.3 E.4
19、請寫一個正則表達式獲取下列HTML代碼中各td標簽之間的內容:
<td class="red">red</td><td class="green">green</td><td class="blue">blue</td>
20、請標注出下列程序中的語法錯誤:

class a{
  const aa=123;public $bb=456;protected $cc=789;private $dd='dd';
  public function getaa(){ return self::aa; }
  static public function getbb(){ return $this->bb; }
  protected function getcc(){ return $this->cc;}
}
$a=new a();
$a->getaa();
$a->getbb();
$a->getcc();

 

21、mysql數據庫中tinyint、int、datetime字段類型各占多少字節?tinyint存儲的數字范圍是多少?
22、兩個mysql數據表:學生表和成績表,數據如下圖所示
請寫出一條sql找出在學生表中有而在成績表中沒有的學生
請寫出一條sql計算成績表中每個學生的各科總分數和平均分
請寫出一條sql計算成績表中平均分大於90分的學生
請給以上的兩個表建立索引,並給出優化建議。
23、linux中改變文件權限和所有者的命令各是什么?
24、查看php最近的錯誤日志用哪個linux命令?
25、查看php當前進程數的linux命令是什么?

十四公司:
1、什么是類,什么是抽象類,什么是接口,什么是繼承?
2、include,require,include_once,require_once的區別
3、寫一個函數,從一個標准url里取出文件的擴展名,例如:http://www.sina.com.cn/abc/de/fg.php?id=1需要取出php或.php
4、memcached是什么?
5、寫一個函數,能夠遍歷一個文件夾下的所有文件和子文件夾
6、寫一個類實現單實例數據庫連接
7、jquery ajax傳值幾種類型
8、簡述DOM加載順序和常用事件
9、寫一個方法對二維數組排序
10、簡述mysql的存儲引擎myisam和innodb的區別
11、在mysql中建立一個表
id 代理主建;name 20字符;age 正整數;sex 男/女/未知;memo 文本類型
12、簡述session存儲原理和實現session共享的方式
13、linux下解壓abc.tar.gz的命令是什么?常用的文本編輯器是什么?
14、簡述你常用的PHP框架和相應的優缺點
15、什么是MVC?

十五公司:
1、抓取遠程圖片到本地,你會用什么函數?
2、memcache與redis區別
3、表單中get與post提交方法的區別?
4、你如何利用PHP解決HTTP的無狀態協議?
5、優化MYSQL數據庫的方法

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM