PHP筆試題

一、不用新變量直接交換現有兩個變量的值javascript

(1)list($a,$b)=array($b,$a); (2)a=a+b,b=a-b,a=a-b
二、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 table
where 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:21php

(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()的區別html

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

 6.可以使HTML和PHP分離開使用的模板java

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

7.如何實現PHP、JSP交互?mysql

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

8.使用哪些工具進行版本控制?正則表達式

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

9.如何實現字符串翻轉?sql

其實PHP自己就有字符串翻轉的函數: strrev (),不過這種方法都不能解決中文字符串翻轉的問題,會出錯的。
<?php
function reverse( $var )
{
$res = "" ;
for ( $i =0, $j = strlen ( $var ); $i < $j ; $i ++)
{
$res = $var [ $i ]. $res ;
}
return $res ;
}
$tmpvar = "wofang" ;
$res =reverse( $tmpvar );
echo $res ;
?>

 10.優化MYSQL數據庫的方法數據庫

(1).數據庫設計方面,這是DBA和Architect的責任,設計結構良好的數據庫,必要的時候,去正規化(英文是這個:denormalize),<br>    容許部分數據冗餘,避免JOIN操做,以提升查詢效率
(2).系統架構設計方面,表散列,把海量數據散列到幾個不一樣的表裏面.快慢表,快表只留最新數據,慢表是歷史存檔.集羣,主服務器Read & write,<br>    從服務器read only,或者N臺服務器,各機器互爲Master
(3).(1)和(2)超越PHP Programmer的要求了,會更好,不會不要緊.檢查有沒有少加索引
(4).寫高效的SQL語句,看看有沒有寫低效的SQL語句,好比生成笛卡爾積的全鏈接啊,大量的Group By和order by,沒有limit等等.<br>    必要的時候,把數據庫邏輯封裝到DBMS端的存儲過程裏面.緩存查詢結果,explain每個sql語句
(5).所得皆必須,只從數據庫取必需的數據,好比查詢某篇文章的評論數,select count (*) … where article_id = ? <br>    就能夠了,不要先select * … where article_id = ?而後msql_num_rows.
     只傳送必須的SQL語句,好比修改文章的時候,若是用戶只修改了標題,那就update … set title = ? where article_id = ?<br>    不要set content = ?(大文本)
(6).必要的時候用不一樣的存儲引擎.好比InnoDB能夠減小死鎖.HEAP能夠提升一個數量級的查詢速度

11.談談事務處理apache

A給B的帳戶轉帳50美圓的例子

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

參考第10題。

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

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

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

echo '客戶端IP:' . $_SERVER [ 'REMOTE_ADDR' ]. '<br />' ;
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' ]<br>(2) $_SERVER [ 'HTTP_REFERER' ]
(3) $_SERVER [ 'SCRIPT_FILENAME' ];<br>(4) $_SERVER [ 'REMOTE_ADDR' ];<br>(5) $_SERVER [ 'QUERY_STRING' ];<br>(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.寫出一個正則表達式,過慮網頁上的全部JS/VBS腳本(即把script標記及其內容都去掉):

$a = "<script type='text/javascript'>XXXXXXXXXXXXXXX</script>" ;<br> echo preg_replace( '/\<script[^>]*?>.*<\/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 phpinterview
create 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 sumscore
from tbl_user A left join tbl_score B
on A.ID=B.ID
group by A.id

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

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

25.寫一個函數,可以遍歷一個文件夾下的全部文件和子文件夾。

<?php<br> function my_scandir( $dir )<br>{<br>     $files = array ();<br>     if ( is_dir ( $dir ))<br>    {<br>         if ( $handle =opendir( $dir ))<br>        {<br>             while (( $file =readdir( $handle ))!==false)<br>            {<br>                 if ( $file != "." && $file != ".." )<br>                {<br>                     if ( is_dir ( $dir . "/" . $file ))<br>                    {<br>                         $files [ $file ]=my_scandir( $dir . "/" . $file );<br>                    } else {<br>                         $files []= $dir . "/" . $file ;<br>                    }<br>                }<br>            }<br>             closedir ( $handle );<br>             return $files ;<br>        }<br>    }<br>}<br>print_r(my_scandir( "D:Program FilesInternet ExplorerMUI" ));
?>

26.類的屬性能夠序列化後保存到 session 中,從而之後能夠恢復整個類,這要用到的函數是 

serialize() /unserialize()
PHP筆試題
相關文章
相關標籤/搜索