1. echo count(“abcd”);輸出多少? 答案:4 2. 運行以下代碼後$a $b $c 分別是? 答案:false、0、0 4. 請用php的heredoc語法格式輸出:hello world! 5. $string = "abcdefg",那麼$string{4}的值是? 答案:e ...
1. echo count(“abcd”);輸出多少?
答案:4
2. 運行以下代碼後$a $b $c 分別是?
<?php $a=$b=$c=0; $a=$b && $c;
答案:false、0、0
4. 請用php的heredoc語法格式輸出:hello world!
<?php $v=”hello world”; $str=<<<EOT $v EOT; echo $str;
5. $string = "abcdefg",那麼$string{4}的值是?
答案:e
6. 簡述echo(),print(),print_r()的區別。
答案:echo()可以一次輸出多個值,多個值之間用逗號分隔。echo是語言結構,而不是真正的函數,因此不能作為表達式的一部分使用。
print()是一個函數,用來列印一個值,如果字元串成功顯示則返回true,否則返回false
print_r()是一個函數,用來列印一個值,值為字元串或數字進行簡單列印,而數組則以括起來的鍵和值列表形式顯示,並以Array開頭。
拓展:var_dump()是一個函數,用來顯示關於一個或多個表達式的結果信息,包括表達式的類型與值。數組將遞歸展開值,通過縮進顯示其結構。
7.用PHP寫出顯示客戶端IP與伺服器IP的代碼。
客戶端IP:echo $_SERVER[‘REMOTE_ADDR’];
或者echo getenv(‘REMOTE_ADDR’);
伺服器IP:echo $_SERVER[‘SERVER_ADDR’];
或者echo getenv(‘SERVER_ADDR’);
8、用正則表達式判斷$a是否是一個以半形逗號分隔的多個手機號碼組成的字元串,是輸出yes
<?php $math=“/((\d){11},)+/”; $str=”12345678901,12345678901”; if(preg_match($match,$str)){ echo ‘yes’; } ?>
9. 請定義一個名為MyClass的類,這個類只有一個靜態方法justDoIt。
class MyClass { public static function justDoIt() { } }
11. 寫出你知道的幾種設計模式,並用php代碼實現其中一種。
答案:單態模式、工廠模式、生成器模式、代理模式、迭代模式 單態模式舉例: class test{ private static $obj=null; private function __construct(){ echo ‘第一次連接資料庫’; } public static function getInstance(){ if(is_null(self::$obj)){ self::$obj=new self(); return self::$obj; } } }
12. 打開php.ini中的Safe_mode,會影響哪些函數?
答案: chown()、chgrp()、chdir()、fopen()、rmdir()、copy()、link()、exec()
13. 請描述如下URL重寫規則的用意。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteBase /
RewriteRule . /index.php [L]
</IfModule>
答案:將URL地址強制解析為./index.php
14. 你會用哪個函數設置當前內容的Content-Type?
header函數
//定義編碼
header(“Content-type:text/html;charset=utf-8”);
//CSS
header(“Content-type:text/css”);
//JavaScript
header(“Content-type:text/javascript”);
//JPEG Image
header(“Content-type:image/jpeg”);
//GIF Image
header(“Content-type:image/gif”);
//PNG Image
header(“Content-type:image/png”);
//JSON
header(“Content-type:application/json”);
header(“Content-type:application/pdf”);
//XML
header(“Content-type:text/xml”);
//ok
header(“HTTP/1.1 200 OK”);
//404頭
header(‘HTTP/1.1 404 Not Found’);
//設置地址被永久的重定向
header(‘HTTP/1.1 301 Moved Permanently’);
//轉到一個新地址
header(‘Location:http://www.example.org/’);
//文件延遲轉向
header(‘Refresh:10;url=http://www.example.org/’);
print ‘You will be redirected in 10 seconds’;
//純文本格式
header(‘Content-type:text/plain’);
15. Warning: Cannot modify header information - headers already sent by (output started at D:\src\init.php:7) in D:\src\init.php on line 10 通常什麼情況下php會報該警告信息?
答案:header(‘Content-type:text/html;charset=utf-8’)頭之前有任何輸出均會出現如下錯誤。
16. A通過頁面輸入用戶名abc和密碼123登錄到www.10086.cn,請寫出該次請求的HTTP協議報文(包括請求行、消息報頭、請求正文)。
答案:
Post /login HTTP/1.1
============
host: www.10086.cn
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0(Windows;U;Windows NT 5.1;en-US;rv:1.7.6)
Content-length: 25
Refer: www.10086.cn
============
Username=abc&password=123
17. 寫一段php代碼遍歷某個目錄下的所有文件和子文件夾。
<?php function scandir($path){ $files = array(); $handle = opendir($path); if ($filename=@readdir($handle)) { if ($filename==’.’ || $filename==’..’) { continue; } if (is_dir($filename)){ $files[$filename] = scandir($path.’/’.$filename); } else { $files[$filename] = $filename; } } return $files; } ?>
18. 查看磁碟空間使用率的linux命令是什麼?查看有哪些系統進程正在運行命令是什麼?監測linux性能(cpu,磁碟io,記憶體,網路等)都用到哪些命令?
答案:df、ps、top
19. linux下終止一個進程用什麼命令?打包壓縮和解包用什麼命令?建立軟連接的命令是?
答案:
pkill -9 進程名或kill 進程號、
tar zcvf和tar zxvf
ln
20. 如果要求每隔5分鐘執行一次腳本five.php,如何實現?
答案:crontab –e
*/5 * * * * php five.php
21. mysql中varchar的最大長度是多少?用什麼類型的欄位存儲大文本?date和datetime和timestamp什麼區別?怎麼看資料庫中有哪些sql正在執行?
答案:
65535、
text、
區別:
1. 存儲空間不同
a) TIMESTAMP占用4個位元組
b) DATETIME占用8個位元組
2. 受時區影響
a) TIMESTAMP實際記錄的是1970-01-01 00:00:01到現在的數,受時區影響
b) DATETIME不受時區影響
3. 時間範圍不同
a) TIMESTAMP的時間範圍是:'1970-01-01 00:00:01' UTC ~ '2038-01-19 03:14:07' UTC
b) DATETIME的時間範圍是:'1000-01-01 00:00:00' ~ '9999-12-31 23:59:59'
4. 自動更新
TIMESTAMP類型在預設情況下,insert、update 數據時,TIMESTAMP列會自動以當前時間(CURRENT_TIMESTAMP)填充/更新。
show processlist;
22. MySQL資料庫的一個表:User
Name Tel Content Date
張三 13333663366 大專畢業 2006-10-11
張三 13612312331 本科畢業 2006-10-15
張四 021-55665566 中專畢業 2006-10-15
寫出如下操作的SQL語句:
(a) 有一新記錄(小王 13254748547 高中畢業 2007-05-06)請用SQL語句新增至表中
(b) 請用sql語句把張三的時間更新成為當前系統時間
(c) 請寫出刪除名為張四的全部記錄
答案:
(a)inser into User(Name,Tel,Content,Date) values(“小王”,12354748547,”高中畢業”,”2007-05-06”);
(b)update User set Date=date(now()) where User=”張三”;
(c)delete from User where User=”張三”;