一、不用新變量直接交換現有兩個變量的值javascript
(1)list($a,$b)=array($b,$a); (2)a=a+b,b=a-b,a=a-b
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; }
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()