日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

php更多式样,php_1

發(fā)布時間:2025/3/15 php 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php更多式样,php_1 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1. 把日期字符串07/26/2016轉(zhuǎn)換成2016/07/26格式

$date = '07/26/2016';

echo preg_replace('/(\d+)\/(\d+)\/(\d+)/', '$3/$1/$2', $date);//輸出2016/07/26

# 注釋:3個()所匹配的內(nèi)容分別是$1,$2,$3.替換成$3/$1/$2的格式。

2. 從表 login 中選出 name 字段包含 admin 的前 10 條結(jié)果所有信息的 sql 語句

select * from login where name like "%admin%" limit 10 order by id;

# 注釋: 此題考點在like. 記得要order by 排序

3. inner join的用法:

假設(shè)有1張user表記錄用戶(有id和username2個字段),1張post表記錄發(fā)帖信息(有id,info,user_id 3個字段)。現(xiàn)在查詢發(fā)過帖子的用戶(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';//內(nèi)聯(lián)接

# 注釋:這2條sql語句都是只查詢發(fā)過帖子的用戶和帖子信息,沒有發(fā)過帖子的用戶和信息不顯示。

4. left join的用法:

同上面的例子,如果sql語句為:$sql3='select user.username,post.info from user left join post on user.id=post.user_id';//左聯(lián)接

則表示查詢所有用戶的發(fā)帖信息。左聯(lián)接偏向左邊表,即會把左邊表的選中字段的所有值查詢出來,$sql3的查詢結(jié)果是輸出所有username,對應(yīng)的info字段的值,如果對應(yīng)的用戶發(fā)帖了則顯示帖子的內(nèi)容,如果沒有發(fā)帖,則顯示為null

5.mysql表優(yōu)化

添加索引

當(dāng)沒有索引的時候:

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億條數(shù)據(jù),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說明是被驅(qū)動表索引,rows:1,說明只查詢了1條數(shù)據(jù)就找到tname='php',給tname字段添加的索引是tn,即key:tn。

6.優(yōu)化數(shù)據(jù)庫最直接最有效的方法就是給數(shù)據(jù)庫加索引,給經(jīng)常查詢的字段即where后面的字段加索引。

索引分3種:

1. unique唯一索引:不允許出現(xiàn)相同的值,可以有null值。

2. index普通索引:允許有相同值。

3. primary key主鍵索引:不允許有相同的值,不能有null值,一張表只能有一個primary key.

7.寫一個函數(shù),盡可能高效的,從一個標(biāo)準(zhǔn) url 里取出文件的擴展名

>> 得到的數(shù)組是這樣的

Array

(

[scheme] => http

[host] => www.test.com.cn

[path] => /abc/de/index.php

[query] => id=10

)

>

$arr2 = pathinfo($arr['path']);

>> 得到的數(shù)組是這樣的

Array

(

[dirname] => /abc/de

[basename] => index.php

[extension] => php

[filename] => index

)

>

echo $arr2['extension'];//輸出最終結(jié)果

###### 8.MVC是什么?

一般在php框架開發(fā)中會用到mvc結(jié)構(gòu)。它是一只開發(fā)模型,它最大的優(yōu)點是實現(xiàn)視圖層View和邏輯層Controller的分離。M是model是數(shù)據(jù)模型,V是View是視圖,是模板層,C是Controller是控制器是php邏輯層。

###### 9.描述一下大流量高并發(fā)量網(wǎng)站的解決方案

>1. 設(shè)置dns負(fù)載均衡進行分流

2. lvs(Linux Virtual Server)即**Linux虛擬服務(wù)器**,是一個虛擬的服務(wù)器集群系統(tǒng)。即負(fù)載均衡器

3. 集群服務(wù)器

4. web服務(wù)器采用nginx,能夠支持高達 50,000 個并發(fā)連接數(shù)的響應(yīng)apache為2000-4000.

5. 靜態(tài)緩存,即把php頁面轉(zhuǎn)換為html??梢杂?tp等框架,Smarty模板引擎等)

6. 文件數(shù)據(jù)緩存(tp)

7. 內(nèi)存數(shù)據(jù)緩存( memcache,redis)

8. 給數(shù)據(jù)庫加索引

9. 數(shù)據(jù)庫分庫分表或者分區(qū)

10. 磁盤陣列技術(shù)

總結(jié)

以上是生活随笔為你收集整理的php更多式样,php_1的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。