A. Wordpress常用函數
前段時間研究WP(WordPress),整理了一些WP的常用函數,對於一個要求不高的主題來說,這些函數足夠了。察茄
以後有時間再整理。
提示:使用Ctrl+F搜索你想找到功能或
本文主要參考了(無特殊說明,參考均來自 WordPress 中文文檔 )
更新於2015-11-06
return :無
參數 :無
使用方法 :
return : true/false
參數 :無
使用方法 :參考have_posts()
參數 :無
return : string ,即當前循環的URL
參數 :無
return : string ,即當前循環的標題
參數 :都是字元串,且都是可選的,依次是標簽之前,之間,之後顯示什麼內容
return : string ,
參數 :都是字元串,都可選,1.默認為「編輯」,傳入參數即可修改2.之前顯示內容3.之後顯示的內容4.文章的id,在循環中不要使用
return : string ,
註:官方文檔說在描述之後顯示[...],但是實際操作中沒有
參數 :返回值之前,是否顯示
return : string
參數 :同上
return :同上
參數 :
return :
參數 :
獲取選項的名稱,默認為敗卜察none
用法 :*
參數 :
1.查找參數中的菜單ID或菜單名稱,若沒有
2.顯示第一個非空的菜單 ,若沒有
3.以wp_page_menu()顯示,若沒有
4.顯示空
return :參考用法
用法
參數 :
format
taxonomy
(字元串)(可選)用以生成雲的分類法。
'post_tag' —— (默認值)將文章標簽當作雲的來源
'category' —— 用文章分類生成雲
'link_category' —— 用鏈接分類目錄生成雲
return :參考用法
用法
參數 :
type 歸檔類型設置
可選值:
limit 文章數量限制,即歸檔的最大文章數量。
format 歸檔輸出格式。
可選值:
before 在每一條項目之前顯示的文字,只在 format 被設置為』html』或』custom』時可用。
after 在每一條項目之後顯示的文字,只在 format 被設置為』html』或』custom』時可用。
show_post_count 布爾值,是否顯示文章數量,在 type 被設置為』postbypost』或』alpha』時不可用。
echo 布爾值,是否顯示,不顯示則返回給變數。
order 排列順序
可選值
return :
參數 :
return :
參數 :
orderby
return :
參數 :
return :
使用方法 :
參數 :
return :
參數 :
* name:輸出你的博客名稱
* description:輸出博客描述
* html_type:顯示HTML內容類型
* wpurl或url:返回網站的URL,現在不知道區別
* admin_email:作者的Email
* charset:返回網站所用的編碼弊蔽格式
* language:返回網站所用的語言
* stylesheet_url:模板下style.css的絕對地址
* template_url:模板的絕對地址
* rss2_url:返回網站的RRS訂閱地址
return :字元串
header.php文件第23-52行描述的內容
<?php wp_head() ?>與<?php wp_footer(); ?>
<?php wp_list_pages(); ?>
<?php the_content(); ?>
<?php comments_popup_link(Ɔ 條評論', Ƈ 條評論', '% 條評論', '', '評論已關閉'); ?>
<?php get_header(); ?>
<?php get_sidebar() ?>
<?php get_footer() ?>
B. 用自己的語言說出php中數組的常用函數和用法
array_filter : 過濾數組中的無效元素,可以使用回調函數過濾
array_map : 使用回調函數依次處理所有元素
implode: 將一維數組轉為特定符號隔開的字元串,
explode: 將特定符號隔開的字元串轉為一維數組
sort /ksort: 將數組進行升序排序
array_unique: 將數組元素去重
array_values: 取數組的值,重新組成新數組
array_pop: 取數組末尾元素並刪除(隊列)
array_push:將一個元素插入數組末尾(隊列)
array_sum:統計數組元素的和
array_column:將二維數組中的指定KEY取出組成一個一維數組
網頁鏈接
C. PHP面試題2--常用的數組函數
一,數組操作的基本函數
1. 數組的鍵名與值
array_values($arr); 獲得數組的值
array_keys($arr); 獲得數組的鍵名
array_flip($arr); 數組的值與鍵名互換(如果有重復前面的會被後面的覆蓋)
in_array("apple",$arr); 在數組中檢索apple
array_search("apple",$arr); 在數組中檢索apple,如果存在返回鍵名
array_key_exists("apple",$arr); 檢索給定的鍵名是否存在數組中
isset($arr["apple"]); 檢索給定的鍵名是否存在數組中
array_unique() 刪除數組中的重復值
2. 數組的內部指針
current($arr); 返回數組中的當前單元
pos($arr); 返回數組中的當前單元
key($arr); 返回數組中的當前單元的鍵名
prev($arr); 將數組中的內部指針倒回一位
next($arr); 將數組中的內部指針向前移動一位
end($arr); 將數組中的內部指針指向最後一單元
reset($arr); 將數組中的內部指針指向第一單元
each($arr); 將返回數組當前元素的一個鍵/值的構造數組,並使數組指針向前移動一位
list($key,$value) = each($arr); 獲得數組當前元素的鍵名和值
3. 數組和變數之間的轉換
extract(array,extract_rules,prefix); 函數從數組中將變數導入到當前符號表。該函數使用數組鍵名作為變數名,使用數組鍵值作為變數值。針對數組中的每個元素,將在當前符號表中創建對應的一個變數。
compact(var1,var2...); 創建一個包含變數名和它們的值的數組。任何沒有變數名與之對應的字元串都被略過。
二,數組的分段和填充
1. 數組的分段
array_slice(array,start,length,preserve); 返回數組中的選定部分。如果數組中有字元串鍵名,返回的數組將保留鍵名。
array_splice(array1,start,length,array2); 從數組中移除選定的元素,並用新元素取代它。函數返回被移除元素的數組,如果函數沒有移除任何元素(length=0),則替代數組將從start參數的位置插入。不保留替代數組的鍵名。
2. 數組的分割
array_chunk(array,size,preserve_keys); 把一個數組分割為新的數組塊。
3. 數組的填充
array_pad(array,size,value); 將指定數量的帶有指定值的元素插入到數組。如果將size參數設置為負數,該函數會在原始數組之前插入新的元素。如果size參數小於原始數組的長度,該函數不會刪除任何元素。
三,數組與棧
array_push(array,value1,value2...); 向數組尾部插入一個或多個元素。即使數組有字元串鍵名,添加的元素將是數字鍵名。
array_pop(array); 刪除數組的最後一個元素。返回值是數組的最後一個值,即,被刪除的元素值。如果數組為空,或者不是一個數組,將返回NULL。
四,數組和隊列
array_shift(array); 用於刪除數組中的第一個元素,並返回被刪除的元素。如果鍵名是數字,所有的元素都將獲得新的鍵名,從0開始,並以1遞增。
array_unshift(array,value1,value2,value3...); 用於向數組插入新元素,新數組的值將被插入到數組的開頭。數值鍵名將從0開始,以1遞增。字元串鍵名將保持不變。
五,回調函數
array_walk(array,myfunction,parameter...); 將數組中的每個元素應用到 用戶自定義函數。在函數中,數組的鍵名和鍵值是參數。可以通過把用戶自定義函數的第一個參數指定為引用:&$value,來改變數組元素的值。
array_map(myfunction,array1,array2,array3...); 函數將用戶自定義函數作用到數組中的每個值上,並返回用戶自定義函數作用後的帶有新的值的數組。myfunction可以為null
array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] ); 用回調函數過濾數組中的元素。該函數把輸入數組中的每個鍵值傳給回調函數。如果回調函數返回true,則把輸入數組中的當前鍵值返回給結果數組,數組鍵名保持不變。
array_rece(array,myfunction,initial); 函數發送數組中的值到用戶自定義函數,並返回一個字元串。如果數組是空的或者初始值未傳遞,該函數返回null。initial為可選,規定發送到函數處理的第一個值。
六,數組的計算
1. 數組元素的求和
array_sum(array); 返回數組中的所有值的和
2. 數組的合並
array_merge(array1,array2,array3...); 用於把一個或多個數組合並成一個數組。如果兩個或更多個數組有相同的鍵名。則最後的數組會覆蓋其他數組。如果向函數輸入了一個數組,且鍵名是整數,則該函數會返回帶有整數鍵名的新數組,其鍵名以0開始進行重新索引。
array_merge_recursive(array1,array2,array3...); 用於把一個或多個數組合並為一個數組,該函數與array_merge()函數之間的不同是在處理兩個或多個數組元素有相同的鍵名的情況下,array_merge_recursive()不會進行鍵名覆蓋,而是將多個相同鍵名的值遞歸組成一個數組。如果您僅僅向 array_merge_recursive() 函數輸入一個數組,結果與 array_merge() 相同。
3. 數組的差集
array_diff(array1,array2,array3...); 函數用於比較兩個(或更多個)數組的值,並返回差集。該函數比較兩個(或更多個)數組的值(key=>value中的value),並返回一個差集數組,該數組包括了所有在被比較的數組(array1)中,但是不在任何其他參數數組(array2或array3等等)中的值。
array_diff_assoc(array1,array2,array3...); 函數用於比較兩個(或更多個)數組的鍵名和鍵值,並返回差集。該函數比較兩個(或更多個)數組的鍵名和鍵值,並返回一個差集數組,該數組包括了所有在被比較的數組(array1)中,但是不在任何其他參數數組(array2 或 array3 等等)中的鍵名和鍵值。
4. 數組的並集
array_intersect(array1,array2,array3...); 函數用於比較兩個(或更多個)數組的鍵值,並返回交集。該函數比較兩個(或更多個)數組的鍵值,返回一個交集數組,該數組包括了所有在被比較的數組(array1)中,同時也在任何其他參數數組(array2 或 array3 等等)中的鍵值。
array_intersect_assoc(array1,array2,array3...); 函數用於比較兩個(或更多個)數組的鍵名和鍵值,並返回交集。該函數比較兩個(或更多個)數組的鍵名和鍵值,並返回一個交集數組,該數組包括了所有在被比較的數組(array1)中,同時也在任何其他參數數組(array2 或 array3 等等)中的鍵名和鍵值。
七,數值的排序
array_multisort(): 對多個數組或多維數組進行排序
sort(): 以升序對數組排序
rsort(): 以降序對數組排序
asort(): 根據值,以升序對關聯數組進行排序
ksort(): 根據鍵,以升序對關聯數組進行排序
arsort(): 根據值,以降序對關聯數組進行排序
krsort(): 根據鍵,以降序對關聯數組進行排序
資料參考:
https://www.php.cn/php-weizijiaocheng-381347.html
https://www.runoob.com/php/php-ref-array.html
D. PHP取整數函數常用的四種方法小結
ceil
—
進一法取整
說明
float
ceil
(
float
value
)
返回不小於
value
的下一個整數,value
如果有小數部分則進一位。ceil()
返回的類型仍然是
float,因為
float
值的范圍通常比
integer
要大。
例子
1.
ceil()
例子
復制代碼
代碼如下:
<?php
echo
ceil(4.3);
//
5
echo
ceil(9.999);
//
10
?>
floor
—
捨去法取整
說明
float
floor
(
float
value
)
返回不大於
value
的下一個整數,將
value
的小數部分捨去取整。floor()
返回的類型仍然是
float,因為
float
值的范圍通常比
integer
要大。
例子
1.
floor()
例子
復制代碼
代碼如下:
<?php
echo
floor(4.3);
//
4
echo
floor(9.999);
//
9
?>
round
—
對浮點數進行四捨五入
說明
float
round
(
float
val
[,
int
precision]
)
返回將
val
根據指定精度
precision(十進制小數點後數字的數目)進行四捨五入的結果。precision
也可以是負數或零(默認值)。
例子
1.
round()
例子
復制代碼
代碼如下:
<?php
echo
round(3.4);
//
3
echo
round(3.5);
//
4
echo
round(3.6);
//
4
echo
round(3.6,
0);
//
4
echo
round(1.95583,
2);
//
1.96
echo
round(1241757,
-3);
//
1242000
echo
round(5.045,
2);
//
5.05
echo
round(5.055,
2);
//
5.06
?>
intval—對變數轉成整數型態
例子intval()
復制代碼
代碼如下:
<?php
echo
intval(4.3);
//4
echo
intval(4.6);
//
4
?>
E. php mysqli 常用函數有哪些
php 中mysqli是個類,這個類的函數(方法)有:
mysqli::$affected_rows — Gets the number of affected rows in a previous MySQL operation
mysqli::autocommit — 打開或關閉本次資料庫連接的自動命令提交事務模式
mysqli::begin_transaction — Starts a transaction
mysqli::change_user — Changes the user of the specified database connection
mysqli::character_set_name — 返回當前資料庫連接的默認字元編碼
mysqli::$client_info — Get MySQL client info
mysqli::$client_version — Returns the MySQL client version as a string
mysqli::close — 關閉先前打開的資料庫連接
mysqli::commit — 提交一個事務
mysqli::$connect_errno — Returns the error code from last connect call
mysqli::$connect_error — Returns a string description of the last connect error
mysqli::__construct — Open a new connection to the MySQL server
mysqli::debug — Performs debugging operations
mysqli::mp_debug_info — 將調試信息輸出到日誌
mysqli::errno — 返回最近函數調用的錯誤代碼
mysqli::$error_list — Returns a list of errors from the last command executed
mysqli::$error — Returns a string description of the last error
mysqli::$field_count — Returns the number of columns for the most recent query
mysqli::get_charset — Returns a character set object
mysqli::get_client_info — Get MySQL client info
mysqli_get_client_stats — Returns client per-process statistics
mysqli_get_client_version — 作為一個整數返回MySQL客戶端的版本
mysqli::get_connection_stats — Returns statistics about the client connection
mysqli::$host_info — 返回一個表述使用的連接類型的字元串
mysqli::$protocol_version — 返回MySQL使用的協議版本號
mysqli::$server_info — 返回MySQL伺服器的版本號
mysqli::$server_version — 作為一個整數返回MySQL伺服器的版本
mysqli::get_warnings — Get result of SHOW WARNINGS
mysqli::$info — Retrieves information about the most recently executed query
mysqli::init — Initializes MySQLi and returns a resource for use with mysqli_real_connect()
mysqli::$insert_id — Returns the auto generated id used in the last query
mysqli::kill — Asks the server to kill a MySQL thread
mysqli::more_results — Check if there are any more query results from a multi query
mysqli::multi_query — Performs a query on the database
mysqli::next_result — Prepare next result from multi_query
mysqli::options — Set options
mysqli::ping — Pings a server connection, or tries to reconnect if the connection has gone down
mysqli::poll — Poll connections
mysqli::prepare — Prepare an SQL statement for execution
mysqli::query — 對資料庫執行一次查詢
mysqli::real_connect — 建立一個 MySQL 伺服器連接
mysqli::real_escape_string — Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection
mysqli::real_query — 執行一個mysql查詢
mysqli::reap_async_query — Get result from async query
mysqli::refresh — Refreshes
mysqli::release_savepoint — Removes the named savepoint from the set of savepoints of the current transaction
mysqli::rollback — 回退當前事務
mysqli::rpl_query_type — Returns RPL query type
mysqli::savepoint — Set a named transaction savepoint
mysqli::select_db — 選擇用於資料庫查詢的默認資料庫
mysqli::send_query — 發送請求並返回結果
mysqli::set_charset — 設置默認字元編碼
mysqli::set_local_infile_default — Unsets user defined handler for load local infile command
mysqli::set_local_infile_handler — Set callback function for LOAD DATA LOCAL INFILE command
mysqli::$sqlstate — Returns the SQLSTATE error from previous MySQL operation
mysqli::ssl_set — Used for establishing secure connections using SSL
mysqli::stat — Gets the current system status
mysqli::stmt_init — 初始化一條語句並返回一個用於mysqli_stmt_prepare(調用)的對象
mysqli::store_result — Transfers a result set from the last query
mysqli::$thread_id — Returns the thread ID for the current connection
mysqli::thread_safe — 返回是否是線程安全的
mysqli::use_result — Initiate a result set retrieval
mysqli::$warning_count — Returns the number of warnings from the last query for the given link
以上函數清單直接來自www.php.net網站。你可以進入該網站參看。
F. PHP中的文件系統函數(一)
從這篇文章開始,我們將學習一系列的 PHP 文件系統相關函數。其實這些函數中,有很多都是我們經常用到的,大家並不需要刻意地去記住它們,只要知道有這么個東西,在使用的時候記得來查文檔就可以了。
文件路徑相關的函數往往在一些框架中會比較常見,而且多會配合 __FILE__ 、 __DIR__ 之類的魔術常量使用。
basename() 函數是獲得路徑中的文件名,它有兩個參數,第一個是文件的路徑,第二個是過濾掉的內容,比如第一條測試語句我們過濾掉文件的後綴名。
dirname() 返回的是路徑中的路徑部分,也就是不包含文件名的那部分內容,和 basename() 正好是相反的功能。
pathinfo() 函數用於以數組的形式返迴路徑中的信息,從結果來看,我們可以看到文件的 dirname 部分,basename 部分,以及文件的擴展名 extension 和不包含擴展名的 filename 內容。
realpath() 返回的是規范化的絕對路徑名,它擴展所有的符號連接並且處理輸入的路徑中的 ./ 、 ../ 以及多餘的 / ,返回的內容是標准規范的絕對路徑。
接下來,我們學習一些修改文件相關屬性的函數,主要就是在 Linux 系統環境中的文件許可權信息的操作。
當然,首先我們得創建一個文件。和 Linux 中的命令是非常類似的。
touch() 函數除了給出要創建的文件名之外,還有兩個可選參數可以指定文件的創建時間及訪問時間,不給參數的話默認就是當前時間。這個文件名可以是相對或絕對路徑中有許可權的目錄,並在該目錄下創建一個空的文件。
通過 fileowner() 函數,我們可以獲得某個文件所屬的用戶,默認情況下我們的用戶是當前運行 PHP 腳本的用戶,也就是系統目前的登錄用戶。在這里,我們使用 chown() 函數,將用戶改為 www 用戶。clearstatcache() 是用於清理文件系統的緩存信息,如果不清理一下的話,fileowner() 返回的依然還是之前的用戶信息。
同理,使用 filegroup() 函數獲得文件的屬組信息,chgrp() 用於修改文件的屬組。fileperms() 用於返迴文件的許可權信息,它返回的是數字模式的文件訪問許可權,這里我們使用 sprintf() 格式化結果後獲得我們常用的 Linux 系統許可權格式。chmod() 函數用於修改文件的許可權,它的許可權參數是三個 8 進制數據組成的數字,也就是代表 Linux 系統中的 1 、2 、4 和它們的組合,所以我們需要在前面再加上一個 0 用於確保操作能夠正常執行。關於系統文件許可權的知識大家需要認真學習 Linux 系統中相關的內容。
注意,上述函數如果在命令行中運行失敗,大部分原因是沒有許可權,可以使用 sudo 進行測試。在 fastcgi 中運行時,就更加需要注意許可權問題,僅在我們伺服器可以操作的目錄中進行安全的文件許可權修改。
stat() 函數可以獲取到指定文件的所有屬性信息,在這里我們可以看到文件的 uid 、 gid 、 ctime 、 mtime 等信息。
在 Linux 系統中,有軟連接和硬連接的相關知識。其實軟連接就像是 Windows 中的快捷方式,而硬連接相關於復制了一份數據。在 PHP 中,也為我們提供了創建軟硬連接以及相關的一些操作。
使用 link() 函數創建的就是一個指定文件的硬連接文件,而使用 symlink() 創建的則是一個軟連接文件。相對來說,我們使用軟連接的場景會更多一些。lstat() 就和 stat() 函數的功能一樣,查看文件的各種屬性信息,不過 lstat() 函數針對的是軟硬連接文件。
同樣地,我們也可以修改軟硬連接的用戶和用戶組信息,不過它們的信息不能通過 fileowner() 或 filegroup() 查看。因為它們是連接文件,本身還是和原始文件綁定在一起的,使用 fileowner() 這類的函數查看到的依然是原始文件的信息。我們可以在系統環境中使用 ls -l 查看連接文件的用戶和用戶組信息是否修改成功。
今天的內容比較簡單,而且修改許可權的操作也並不常用。不過對於系統安全來,它們還是非常有用的,比如對於上傳來說,我們要預防上傳可執行文件的話,就可以通過修改文件的許可權來讓文件無法直接運行,從而起到安全保護的作用。另外,目錄路徑相關的操作也是一些框架的基礎,幾乎所有框架的入口或者說是 Composer 的入口,都會見到 dirname() 以及 basename() 之類函數的身影。
測試代碼:
https://github.com/zhangyue0503/dev-blog/blob/master/php/202010/source/6.PHP中的文件系統函數(一).php
參考文檔:
https://www.php.net/manual/zh/ref.filesystem.php
G. PHP常用函數有哪些
常用函數比較多
如:字元串處理函數,數組函數,日期函數,MySQL函數,文件系統函數,GD函數庫等
H. 在php中,已知某個數組的某個值,怎麼獲得該數組所在位置
方法如下:
<?php
$offset=array_search('h',$array);
echo $offset."</br>";
echo $array["$offset"+1]."</br>";
echo $array["$offset"-1]."</br>";
?>
(8)php常用函數總結擴展閱讀:
PHP常用函數總結:
1,abs(): 求絕對值
$abs = abs(-4.2)
2,ceil(): 進一法取整
echo ceil(9.999)
3,floor(): 捨去法取整
echo floor(9.999)
4,fmod(): 浮點數取余
$x = 5.7;
$y = 1.3
$r = fmod($x, $y)
5,pow(): 返回數的n次方
echo pow(-1, 20)
6,round(): 浮點數四捨五入
echo round(1.95583, 2)
7,sqrt(): 求平方根
echo sqrt(9)
8,max(): 求最大值
echo max(1, 3, 5, 6, 7)
I. PHP 正則表達式總結
PHP 正則表達式總結
1.PHP中兩個常用的正則函數
a.preg_match 正則函數,以perl語言為基礎
語法:preg_match( mode,string subject,array matches)
說明:mode參數---- 正則的模塊,也就是正則表達式(語法)
subject參數---- 正則的內容
matches參數---- 正則的結果(獲得一個數組的形式)
b.ereg 正則函數,以POSIX基礎(Unix、Script)
語法:ereg(mode ,string subject, array regs)
2.正則表達式中包括的元素
a.原子(普通字元:a-z A-Z 0-9 、原子表、轉義字元)
b.元字元(有特殊功能的字元,如:# 、*)
c.模式修正符(系統內置部分字元 i、m、S、U ...)
3.正則表達式中的「原子」
a.a-z A-Z _ 0-9 //最常見的字元
b.(abc)(skd) //用圓括弧包含起來的單元符號(一個整體)
c.[abcs][^abd] //用方括弧包含的原子表,原子表中的^代表排除或相反的內容
d.轉義字元
d 包含所有的數字[0-9]
D 除所有數字外[^0-9]
w 包含所有英文字元[a-z A-Z 0-9]
W 除所有英文字元外[^a-z A-Z 0-9]
s 回車,換行等
......
註明: 圓括弧 必須是整體才能匹配; 方括弧 只要是其子集,都可以匹配(內容存在)
4.正則表達式元字元
* 匹配前一個內容的0次1次或多次
. 匹配內容的0次1次或多次,但不包含回車換行(代指自己,任何內容)
+ 匹配前一個內容的1次或多次
? 匹配前一個內容的.0次或1次
| 選擇匹配類似PHP中的| (因為這個運算符合是弱類型導致前面最為整體匹配,類似一個單詞匹配)
^ 匹配字元串首部內容
$ 匹配字元串尾部內容
b 匹配單詞邊界,邊界可以是空格或者特殊符合(有單詞分界符,類似空格)
B 匹配除帶單詞邊界意外內容(無單詞分界符)
{m} 匹配前一個內容的重復次數為M次
{m,} 匹配前一個內容的重復次數大於等於M次
{m,n} 匹配前一個內容的重復次數M次到N次
( ) 合並整體匹配,並放入內存,可使用1 2…依次獲取 (調用放入內存中的內容)
5.運算順序
依然遵循從左到→右的運算規則
優先順序:
( ) 圓括弧因為是內存處理所以最高
* ? + { } 重復匹配內容其次
^ $ b 邊界處理第三
| 條件處理第四
最後按照運算順序計算匹配
6.模式修正符
模式修正符是為正則表達式增強和補充的一個功能,使用在正則之外 例如:/ 正則 / U
常用修正符:
i 正則內容在匹配時候不區分大小寫(默認是區分的)
m 在匹配首內容或者尾內容時候採用多行識別匹配
s 將轉義回車取消是為單行匹配如. 匹配的時候
x 忽略正則中的空白
A 強制從頭開始匹配
D 強制$匹配尾部無任何內容 n
U 禁止貪婪匹配 只跟蹤到最近的一個匹配符並結束, 常用在採集程序上的正則表達式
7.匹配功能
preg_match_all 全部匹配函數
語法:preg_match_all ( string pattern, string subject, array matches [, int flags] )
說明:對結果排序使 $matches[0] 為全部模式匹配的數
用途:截取比較詳細的內容,採集網頁,分析文本
8.替換功能
preg_replace 正則替換函數
語法:preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] )
說明:通過正則表達式來替換相關內容,類似之前學過的str_replace字元串替換,但 功能要強於它
提示:1、替換內容可以是一個正則也可以是數組正則
2、替換內容可以通過修正符e來解決替換執行內容
用途:替換一些比較復雜的內容上,也可以用於內容的轉換上
9.分割功能
preg_split 正則切割
語法:preg_split ( string pattern, string subject [, int limit [, int flags]] )
說明:通過正則表達式來切割相關內容,類似之前學過的explode切割函數,但explode 只能按照一種方式切割有局限性。
;J. PHP中的函數
ThinkPHP中 C(),D(),S()
1.在具體的Action方法裡面,可以用C()對某些參數進行動態配置,主要指那些還沒有使用的參數。具體用法如下:
C('參數名稱'); //獲取已經設置的參數值
C('參數名稱','新的參數值'); //設置新的值
2.D()函數的使用:
先定義好模型類,如UserModel,然後就可以用D()函數對數據進行操作了。例如:
先在"你的項目"\Lib\Model下建立一個名為UserModel.class.php的PHP腳本,內容如下:
class UserModel extends Model{}
然後,無需增加任何屬性和方法,就可以進行如下操作:
$User = D("User"); //實例化User對象,User是你在資料庫建立的一個名為"前綴_user"的數據表
也可以用$User = new UserModel()代替,進行實例化對象的操作。
實例化之後,就可以對數據進行增刪查改等一系列操作了,如:
$User->find(1); //查找主鍵為1的記錄
3.S()函數的使用:
ThinkPHP把各種緩存方式都抽象成統一的緩存類來調用,而且ThinkPHP把所有的緩存機制統一成一個S方法來進行操作,所以在使用
不同的緩存方式的時候並不需要關注具體的緩存細節。如:
S('data',$Data); //使用data標識緩存$Data數據
S('data',$Data,3600); //緩存$Data數據3600秒
$Data = S('data'); //獲取緩存數據