php更多式样,php_1
1. 把日期字符串07/26/2016轉換成2016/07/26格式
$date = '07/26/2016';
echo preg_replace('/(\d+)\/(\d+)\/(\d+)/', '$3/$1/$2', $date);//輸出2016/07/26
# 注釋:3個()所匹配的內容分別是$1,$2,$3.替換成$3/$1/$2的格式。
2. 從表 login 中選出 name 字段包含 admin 的前 10 條結果所有信息的 sql 語句
select * from login where name like "%admin%" limit 10 order by id;
# 注釋: 此題考點在like. 記得要order by 排序
3. inner join的用法:
假設有1張user表記錄用戶(有id和username2個字段),1張post表記錄發帖信息(有id,info,user_id 3個字段)。現在查詢發過帖子的用戶(username)和帖子信息(info)。以下2條sql語句是等效的。
$sql1='select user.username,post.info from user,post where user.id=post.user_id';//普通多表查詢。
$sql2='select user.username,post.info from user inner join post on user.id=post.user_id';//內聯接
# 注釋:這2條sql語句都是只查詢發過帖子的用戶和帖子信息,沒有發過帖子的用戶和信息不顯示。
4. left join的用法:
同上面的例子,如果sql語句為:$sql3='select user.username,post.info from user left join post on user.id=post.user_id';//左聯接
則表示查詢所有用戶的發帖信息。左聯接偏向左邊表,即會把左邊表的選中字段的所有值查詢出來,$sql3的查詢結果是輸出所有username,對應的info字段的值,如果對應的用戶發帖了則顯示帖子的內容,如果沒有發帖,則顯示為null
5.mysql表優化
添加索引
當沒有索引的時候:
mysql> explain select *from tag where tname='php'\G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: tag
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: 5
Extra: Using where
1 row in set (0.00 sec)
# rows:5 說明mysql查詢了5行才查詢到 tname='php',type:ALL說明是全表遍歷,如果表中有1億條數據,tname沒有索引,這樣查詢會遍歷全表查詢到要找的值。效率極低。
給tname字段添加一個普通索引:然后再查詢:
特別說明:explain與desc效果一樣
比如:下面的分析語句也可以寫作:desc select * from tag where tname='php'\G
刪除索引的語句是alter table tag drop index tn;//只刪除索引名即可,不要跟(字段名)
mysql> alter table tag add index tn(tname);
Query OK, 5 rows affected (0.15 sec)
Records: 5 Duplicates: 0 Warnings: 0
mysql> explain select * from tag where tname='php'\G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: tag
type: ref
possible_keys: tn
key: tn
key_len: 75
ref: const
rows: 1
Extra: Using where
1 row in set (0.00 sec)
type:ref說明是被驅動表索引,rows:1,說明只查詢了1條數據就找到tname='php',給tname字段添加的索引是tn,即key:tn。
6.優化數據庫最直接最有效的方法就是給數據庫加索引,給經常查詢的字段即where后面的字段加索引。
索引分3種:
1. unique唯一索引:不允許出現相同的值,可以有null值。
2. index普通索引:允許有相同值。
3. primary key主鍵索引:不允許有相同的值,不能有null值,一張表只能有一個primary key.
7.寫一個函數,盡可能高效的,從一個標準 url 里取出文件的擴展名
>> 得到的數組是這樣的
Array
(
[scheme] => http
[host] => www.test.com.cn
[path] => /abc/de/index.php
[query] => id=10
)
>
$arr2 = pathinfo($arr['path']);
>> 得到的數組是這樣的
Array
(
[dirname] => /abc/de
[basename] => index.php
[extension] => php
[filename] => index
)
>
echo $arr2['extension'];//輸出最終結果
###### 8.MVC是什么?
一般在php框架開發中會用到mvc結構。它是一只開發模型,它最大的優點是實現視圖層View和邏輯層Controller的分離。M是model是數據模型,V是View是視圖,是模板層,C是Controller是控制器是php邏輯層。
###### 9.描述一下大流量高并發量網站的解決方案
>1. 設置dns負載均衡進行分流
2. lvs(Linux Virtual Server)即**Linux虛擬服務器**,是一個虛擬的服務器集群系統。即負載均衡器
3. 集群服務器
4. web服務器采用nginx,能夠支持高達 50,000 個并發連接數的響應apache為2000-4000.
5. 靜態緩存,即把php頁面轉換為html。可以用(tp等框架,Smarty模板引擎等)
6. 文件數據緩存(tp)
7. 內存數據緩存( memcache,redis)
8. 給數據庫加索引
9. 數據庫分庫分表或者分區
10. 磁盤陣列技術
總結
以上是生活随笔為你收集整理的php更多式样,php_1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [云炬创业管理笔记]第四章把握创业机会测
- 下一篇: [云炬创业管理笔记]第五章打磨最有效的商