一、用PHP打印出前一天的時間格式是2017-5-10 22:21:21(2分)php
月,日沒有前導零:2017-5-1 22:21:21
echo date("Y-n-j H:i:s", strtotime("-1 day"));
月,日前面有前導零: 2017-05-01 22:21:21
echo date("Y-m-d H:i:s", strtotime("-1 day"));
echo 和 print 是語言結構,沒有返回值,只能打印出string,不能打印出結構
print_r 是函數,有返回值
3.將一個字符串(1234567890)轉換成(1,234,567,890)每三個一組用逗號隔開html
方法1: echo number_format('1234567890'),"<br />"; // 內部函數 方法2: $str = '1234567890'; function test($str='',$count=3){ if(empty($str) || $count <= 0){ return false; } $str1 = strrev($str); //反轉字符串 $arr = str_split($str1,$count); //將字符串分割成數組 $new_str = join(',',$arr); //鏈接字符串 return strrev($new_str); //再次反轉字符串並返回 } echo test($str);
4. 如下數組$_a 和 $_b的值?mysql
$a = ['a' => 123, 'b' => 456];
$b = ['b' => 780, 'c' => 110];
$_a = array_merge($a,$b);
$_b = $a + $b;
print_r($_a);
echo '<br/>';
print_r($_b);nginx
Array ( [a] => 123 [b] => 780 [c] => 110 ) // $_a Array ( [a] => 123 [b] => 456 [c] => 110 ) // $_b
五、如何實現字符串翻轉?(3分)redis
function reverse($str){ $ret = ""; len=mbstrwidth(str,"GB2312"); for (i=0;i< len;i++) { arr[]=mbsubstr(str, $i, 1, "GB2312"); } return implode("", array_reverse($arr)); } print_r(reverse("你好"));
1.選取適用的字段屬性,儘量減小定義的字段長度,儘可能把字段設置 NOT NULL 2.使用鏈接JOIN來代替子查詢 3.使用聯合UNION來代替手動建立的臨時表 4.事務處理:,保證數據完整性 5.鎖定表,優化事務處理 6.使用外鍵,優化鎖定表 7.創建索引,增長查詢效率 8.優化查詢語句,提升索引命中率
七、PHP的意思(送1分)sql
超級文本預處理語言 Hypertext PreProcessor
八、MYSQL取得當前時間的函數是?,格式化日期的函數是(2分)數據庫
CURRENT_TIMESTAMP() DATE_FORMAT() select DATE_FORMAT("2017-11-11 10:10:10", "%Y-%m-%d");
九、實現中文字串截取無亂碼的方法。(3分)apache
mb_substr($str, 1, 1, "GB2312");
10. 請舉例說明在你的開發過程當中用什麼方法來加快頁面的加載速度編程
1.要用到服務器資源時纔打開,及時關閉服務器資源 2.數據庫添加索引 3.頁面可生成靜態,圖片等大文件單獨服務器。 4.使用代碼優化工具
11.如何理解面向對象OOP?設計模式
OOP(object oriented programming),即面向對象編程,其中兩個最重要的概念就是 類和對象。 世間萬物都具備自身的屬性和方法,經過這些屬性和方法能夠區分出不一樣的物質。 屬性和方法的集合就造成了類,類是面向對象編程的核心和基礎, 經過類就將零散的用於實現某個功能的代碼有效地管理起來了。 類只是具有了某些功能和屬性的抽象模型,而實際應用中須要一個一個實體,也就是須要對類進行實例化, 類在實例化以後就是對象。 OOP具備三大特色: 1. 封裝性: 也稱爲信息隱藏,就是將一個類的使用和實現分開,只保留部分接口和方法與外部聯繫,或者說只公開了一些供開發人員使用的方法。 因而開發人員只須要關注這個類如何使用,而不用去關心其具體的實現過程,這樣就能實現MVC分工合做,也能有效避免程序間相互依賴, 實現代碼模塊間鬆藕合。 2. 繼承性: 就是子類自動繼承其父級類中的屬性和方法,並能夠添加新的屬性和方法或者對部分屬性和方法進行重寫。繼承增長了代碼的可重用性。 php只支持單繼承,也就是說一個子類只能有一個父類。 3. 多態性: 子類繼承了來自父級類中的屬性和方法,並對其中部分方法進行重寫。 因而多個子類中雖然都具備同一個方法,可是這些子類實例化的對象調用這些相同的方法後卻能夠得到徹底不一樣的結果,這種技術就是多態性。 多態性加強了軟件的靈活性。
1三、對於大流量的網站,您採用什麼樣的方法來解決訪問量問題?(4分)
1.確認服務器硬件是否足夠支持當前的流量,
2.禁止外部的盜鏈,控制大文件的下載
3.採用 jQuery 延遲加載
4.生成靜態 HTML 頁面,設置 memcache 緩存
5.劃分區域設置不一樣的主機應答
6.使用流量分析統計軟件,瞭解訪問量,有針對性的進行優化
7.優化數據庫的訪問,採用讀寫分離(主從架構,分庫分表)
8.分佈式服務器設置,負載均衡
客戶端IP : $_SERVER["REMOTE_ADDR"] 服務器端IP: $_SERVER["SERVER_ADDR"]
1五、語句include和require的區別是什麼?爲避免屢次包含同一文件,可用(?)語句代替它們? (2分)
在失敗的時候: include產生一個警告,而require致使一個致命錯誤 require在運行前載入 include在運行時載入 require_once
include_once
1七、有一個網頁地址, 好比PHP研究室主頁: http://www.phpv.net/index.html,如何獲得它的內容?($1分)
echo file_get_contents("https://www.baidu.com");
curl
1八、在HTTP 1.0中,狀態碼401的含義是(?);若是返回「找不到文件」的提示,則可用 header 函數,其語句爲(?);(2分)
未受權 header("HTTP/1.0 404 Not Found"); fast CGI中: header("Status: 404 Not Found");
1九、在PHP中,heredoc是一種特殊的字符串,它的結束標誌必須?(1分)
成對出現 $a = <<<EOD good test EOD;
20、談談asp,php,jsp的優缺點(1分)
asp是須要依賴IIS,是微軟開發的語言
php和jsp能夠依賴apache或者 nginx等其餘服務器
2一、談談對mvc的認識(1分)
MVC 是一種設計模式中
M 是 model 模型,業務邏輯層(數據信息存取層)
V 是視圖 view 主要負責用戶交互層(負責將應用的數據以特定的方式展示在界面上)
C 是控制器 一般控制器負責從視圖讀取數據,控制用戶輸入,並向模型發送數據
Mvc 優勢:
低耦合性
高重用性和可以使用行
較低的生命週期成本
快速的部署
可維護性
23. 請說明php中傳值與傳引用的區別。何時傳值何時傳引用?(2分)
按值傳遞:函數範圍內對值的任何改變在函數外部都會被忽略;
按引用傳遞:函數範圍內對值的任何改變在函數外部也能反映出這些修改;
優缺點:按值傳遞時,php必須複製值。特別是對於大型的字符串和對象來講,這將會是一個代價很大的操做。
按引用傳遞則不須要複製值,對於性能提升頗有好處。
24. 在PHP中error_reporting這個函數有什麼做用? (1分)
設定error的展現級別
25. 請寫一個函數驗證電子郵件的格式是否正確 (2分
$str = "jianfeng@126.com"; function test($test){ $regex="/^\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,10}$/" ; // 正則 $res = preg_match($regex, $test); if ($res) { echo '驗證成功'; } else { echo '驗證失敗'; } }
"/^1[34578][0-9]{9}$/" //手機號碼
26. 簡述如何獲得當前執行腳本路徑,包括所獲得參數。(2分)
$lifeTime = 24 * 3600; session_set_cookie_params($lifeTime); // 修改session session_start();
setcookie(); // 修改cookie
alert() confirm() promopt()
focus()
2九、JS的轉向函數是?怎麼引入一個外部JS文件?(2分)
30、foo()和@foo()之間有什麼區別?(1分)
@控制錯誤輸出
<?php class A { public $name = "A"; } $a = new A(); $n = $a->name; print_r($n);
3四、mysql_fetch_row() 和mysql_fetch_array之間有什麼區別? (1分)
mysql_fetch_row -- 從結果集中取得一行做爲枚舉數組 mysql_fetch_array -- 從結果集中取得一行做爲關聯數組,或數字數組,或兩者兼有 mysql_fetch_array() 是 mysql_fetch_row() 的擴展版本。除了將數據以數字索引方式儲存在數組中以外,還能夠將數據做爲關聯索引儲存,用字段名做爲鍵名。
3六、指出一些在PHP輸入一段HTML代碼的辦法。(1分)
echo "{html}" echo <<<EOD {html} EOD;
$num = 10; function multiply(){ $num = $num * 10; } multiply(); echo $num; // 報錯,$num變量未定義
$mysql_db=mysql_connect("local","root","pass"); @mysql_select_db("DB",$mysql_db); $sql = sprintf("select * from %s where UserName = '%s'", "表名", "張三"); values=mysqlquery(sql); while(item=mysqlfetchqueryarray(values)){ echo sprintf("用戶名:%s, 電話 %s, 學歷: %s, 畢業日期:%s",item[′UserName′],item['Tel'], item[′Content′],item['Date']); }
---------------------------------------------------------------------------
$sql = "insert into User(Name,Tel,Content,Date) values('小王', ’13254748547’, ’高中畢業’, ’2007-05-06’)」;
$sql = "update User set Date='" . time() . "' Where Name='張三'";
$sql = "delete from User where Name='張四'";
int 整型 char 存儲定長 varchar 存儲變長 datetime 時間 text 存儲變長的 varchar是變長 存儲空間有優點 char(20)是定長 查詢效率有優點
mysql_num_rows()
$a{0}或者$a[0] substr($a, 0, 1);
public function __construct() { } public function __destruct() { }
,關於PHP優缺點,大體的說幾點:
1. 語法簡單的,上手很快,並且還有不少很便捷的開發工具,好比說Zend Studio ,EclipsePHP Studio 等 2. 跨平臺,並且還都是免費的 ,能夠快速的在搭建LAMP(Linux Apache MYSQL, PHP), 支持不少主流的數據庫系統,好比MYSQL, Oracle, PostgreSQL等等 3. 支持目前主流的技術,好比 WebService ,XML, AJAX 等等 4. PHP已經有很成熟的面向對象體系,能夠支持面向對象的開發 (PHP5) 5. 有不少很好現有的框架,開源的論壇,以及博客等 如: 框架方面的: Zend Framework , CakePHP ,ThinkPHP ,CodeIgniter .. 論壇: Discuz, PHPWind ... 博客: Wordpress 網店: ECshop , Ecmall ,ShopEx .... 6. 持續的更新和維護,以及社區的支撐,不少技術愛好者的共同努力,使PHP獲得很普遍的應用,不少知名的網站也在使用PHP做爲開發語言,好比Taobao, 騰訊,facebook , Sina, yahoo 等等。 不足的地方: 1. 對多線程支持不是很好,只能作一些簡單的模擬線程 。 2. 語法不夠嚴謹,若是之前作C++,Java 的就會頗有感受了,好比變量尚未定義,就可能直接使用 。 3. 最感到痛苦的地方是PHP的解釋運行機制。這種運行機制使得每一個PHP頁面被解釋執行後,全部的相關資源都會被回收。
也就是說,PHP在語言級別上沒有辦法讓某個對象常駐內存。在PHP中,全部的變量都是頁面級的,不管是全局變量,仍是類的靜態成員,
都會在頁面執行完畢後被清空。以JSP爲例,在JSP中,Java Bean的scope有四種有效值:Page、Application、Session、Request,分別對應頁面、程序、會話、請求四種生存期。但在PHP中,只有Page一種生存期。
PHP緩存技術有哪些? tp是局部仍是徹底緩存?
function getpath($a, $b){ $a = explode('/', $a); // 分割後轉爲數組 $b = explode('/', $b); $count = count($b) - 2; $path = ''; for($i = 1; $i <= $count; $i++){ if($a[$i] == $b[$i]){ $path .= '../'; } else { $path .= $b[$i] . '/'; } } echo $path; } getpath('/a/b/c/d/e.php', '/a/d/12/34/c.php');
memcache redis 區別
1. Memcache 和 Redis 都是用來管理數據的
2. 它們都是存放在內存裏面的
3. Redis能夠按期將數據備份到磁盤(持久化)
4. Memcache 只是以key/value數據形式存儲
5. Redis 不只僅支持k/v類型的數據,同時提供list, set, hash等數據結構的存儲