PHP筆試題

來源:互聯網
上載者:User
1、不用新變數直接交換現有兩個變數的值

(1)list($a,$b)=array($b,$a);(2)a=a+b,b=a-b,a=a-b

2、PHP 數字金額轉大小格式,同時說明思路

  function daxie($num){      $da_num = array('零','一','二','三','四','五','六','七','八','九');      $return = '';      $len_num = strlen($num);      if(!is_numeric($num) || $len_num < 0){          return '';      }      for($i=0;$i<$len_num;$i++){          $return .= $da_num[ substr($num,$i,1)];      }      return $return;  }

3.SQL查詢語句如下:
select * from table where (ID = 10) or (ID = 32) or (ID = 22) or (ID = 76) or (ID = 13) or (ID = 44)
讓結果按10,32,22,76,13,44的順序檢索出來,請問如何書寫?

select * from tablewhere id in (10,32,22,76,13,44)          order by charindex(id,'10,32,22,76,13,44') desc

4.用PHP列印出前一天的時間,格式是2006-5-10 22:21:21

(1)echo date('Y-m-d H:i:s',time()-60*60*24);(2)echo date('Y-m-d H:i:s',strtotime('-1 day'))

5. echo(),print(),print_r()的區別

echo是語言結構,無傳回值;print功能和echo基本相同,不同的是print是函數,有傳回值;print_r是遞迴列印,用於輸出數組或對象

6.能夠使HTML和PHP分離開使用的模板

PHP本身是一種模版引擎,我用過的是smarty,常見的還有PHPLib,FastTemplate,Savant

7.如何?PHP、JSP互動?

題目有點含糊不清,SOAP,XML_RPC,Socket function,CURL都可以實現這些,如果是考PHP和Java的整合,PHP內建了這種機制(如果考PHP和.NET的整合,也可以這麼回答),例如$foo = new Java('java.lang.System');

8.使用哪些工具進資料列版本設定?

CVS和SVN,SVN號稱下一代CVS,功能強大,不過CVS是老牌,市佔率很高.我一直用SVN,題目是問用什麼工具,呃,這個可能需要這麼回答:CVS Server on Apache作服務端,WinCVS作用戶端;Subversion on Apache/DAV 做服務端,TortoiseSVN做用戶端,或者Subclipse做用戶端

9.如何?字串翻轉?

其實PHP本身就有字串翻轉的函數:strrev(),不過這種方法都不能解決中文字串翻轉的問題,會出錯的。

10.最佳化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可以提高一個數量級的查詢速度

11.談談交易處理

A給B的賬戶轉賬50美元的例子

12.apache+mysql+php實現最大負載的方法

參考第10題。

13.實現中文字串截取無亂碼的方法

(1)mb_substr()(2)function GBsubstr($string, $start, $length) {    if(strlen($string)>$length){        $str=null;        $len=$start+$length;        for($i=$start;$i<$len;$i++){            if(ord(substr($string,$i,1))>0xa0){                $str.=substr($string,$i,2);                $i++;            }else{                $str.=substr($string,$i,1);            }        }        return $str;    }else{        return $string;    }}

14.用PHP寫出顯示用戶端IP與伺服器IP的代碼:

echo '用戶端IP:'.$_SERVER['REMOTE_ADDR'].'
';echo '伺服器端IP:'.gethostbyname($_SERVER['SERVER_NAME']);

15.在PHP中,當前指令碼的名稱(不包括路徑和查詢字串)記錄在預定義變數(1)中;而連結到當前頁面的URL記錄在預定義變數(2)中。

前執行指令碼的絕對路徑名(3),正在瀏覽當前頁面使用者的 IP 位址(4),查詢(query)的字串(URL 中第一個問號 ? 之後的內容):id=1&bi=2(5),當前運行指令碼所在的主目錄(6)。

(1)$_SERVER['SCRIPT_FILENAME'];或者$_SERVER['PHP_SELF'](2)$_SERVER['HTTP_REFERER'](3)$_SERVER['SCRIPT_FILENAME'];(4)$_SERVER['REMOTE_ADDR'];(5)$_SERVER['QUERY_STRING'];(6)$_server['DOCUMENT_ROOT'];

16.執行程式段 將輸出__。

(1)echo 8%(-2)。輸出:0(2)echo (-8)%3 .輸出:-2(3)echo 8%(-3).輸出:2

17.在HTTP 1.0中,狀態代碼 401 的含義是____;如果返回“找不到檔案”的提示,則可用 header 函數,其語句為____。

(1)401表示未授權;(2)header(“HTTP/1.0 404 Not Found”);[

18.數組函數 arsort 的作用是____;語句 error_reporting(2047)的作用是____。

arsort:對數組進行逆向排序並保持索引關係 error_reporting(2047)的作用是:report All errors and warnings

19.寫出一個Regex,過慮網頁上的所有JS/VBS指令碼(即把script標記及其內容都去掉):

$a="";echo preg_replace('/\]*?>.*<\/script\>/is','',$a);

20.以Apache模組的方式安裝PHP,在檔案http.conf中首先要用語句____動態裝載PHP模組,
然後再用語句____使得Apache把所有副檔名為php的檔案都作為PHP指令碼處理。

LoadModule php5_module "c:/php/php5apache2.dll";AddType application/x-httpd-php .php

21.語句 include 和 require 都能把另外一個檔案包含到當前檔案中,它們的區別是____;為了避免多次包含同一檔案,可以用語句____來代替它們。

在如何處理失敗時,include() 產生一個警告而 require() 則導致一個致命錯誤;require_once()/include_once()

22.一個函數的參數不能是對變數的引用,除非在php.ini中把____設為on

allow_call_time_pass_reference boolean :是否啟用在函數調用時強制參數被按照引用傳遞

23..SQL 中LEFT JOIN的含義是__,如果 tbl_user記錄了學生的姓名(name)和學號(ID),
tbl_score記錄了學生(有的學生考試以後被開除了,沒有其記錄)的學號(ID)和考試成績(score)以及考試科目(subject),要想列印出 各個學生姓名及對應的的各科總成績,則可以用SQL語句____.

答:自然左外串連create database phpinterview;use phpinterviewcreate table tbl_user(ID int not null PRIMARY KEY,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 sumscorefrom tbl_user A left join tbl_score Bon A.ID=B.IDgroup by A.id

24.在PHP中,heredoc是一種特殊的字串,它的結束標誌必須____

結束標識符所在的行不能包含任何其它字元除";"

25.寫一個函數,能夠遍曆一個檔案夾下的所有檔案和子檔案夾。

 

26.類的屬性可以序列化後儲存到 session 中,從而以後可以恢複整個類,這要用到的函數是

serialize() /unserialize()
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.