日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

史上最全的PHP常用函数大全,不看看你就out了(还会不断更新哦!)

發(fā)布時間:2023/12/8 php 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 史上最全的PHP常用函数大全,不看看你就out了(还会不断更新哦!) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?紀錄了PHP的一些常用函數(shù)和函數(shù)代碼!不要錯過了哦。

PHP的一些常用函數(shù)
usleep() 函數(shù)延遲代碼執(zhí)行若干微秒。
unpack() 函數(shù)從二進制字符串對數(shù)據(jù)進行解包。
uniqid() 函數(shù)基于以微秒計的當前時間,生成一個唯一的 ID。
time_sleep_until() 函數(shù)延遲代碼執(zhí)行直到指定的時間。
time_nanosleep() 函數(shù)延遲代碼執(zhí)行若干秒和納秒。
sleep() 函數(shù)延遲代碼執(zhí)行若干秒。
show_source() 函數(shù)對文件進行語法高亮顯示。
strip_whitespace() 函數(shù)返回已刪除 PHP 注釋以及空白字符的源代碼文件。
pack() 函數(shù)把數(shù)據(jù)裝入一個二進制字符串。
ignore_user_abort() 函數(shù)設置與客戶機斷開是否會終止腳本的執(zhí)行。
highlight_string() 函數(shù)對字符串進行語法高亮顯示。
highlight_file() 函數(shù)對文件進行語法高亮顯示。
get_browser() 函數(shù)返回用戶瀏覽器的性能。
exit() 函數(shù)輸出一條消息,并退出當前腳本。
eval() 函數(shù)把字符串按照 PHP 代碼來計算。
die() 函數(shù)輸出一條消息,并退出當前腳本。
defined() 函數(shù)檢查某常量是否存在。
define() 函數(shù)定義一個常量。
constant() 函數(shù)返回常量的值。
connection_status() 函數(shù)返回當前的連接狀態(tài)。
connection_aborted() 函數(shù)檢查是否斷開客戶機。
zip_read() 函數(shù)讀取打開的 zip 檔案中的下一個文件。
zip_open() 函數(shù)打開 ZIP 文件以供讀取。
zip_entry_read() 函數(shù)從打開的 zip 檔案項目中獲取內容。
zip_entry_open() 函數(shù)打開一個 ZIP 檔案項目以供讀取。
zip_entry_name() 函數(shù)返回 zip 檔案項目的名稱。
zip_entry_filesize() 函數(shù)返回 zip 檔案項目的原始大小(在壓縮之前)。
zip_entry_compressionmethod() 函數(shù)返回 zip 檔案項目的壓縮方法。
zip_entry_compressedsize() 函數(shù)返回 zip 檔案項目的壓縮文件尺寸。
zip_entry_close() 函數(shù)關閉由 zip_entry_open() 函數(shù)打開的 zip 檔案文件。
zip_close() 函數(shù)關閉由 zip_open() 函數(shù)打開的 zip 檔案文件。
xml_set_unparsed_entity_decl_handler() 函數(shù)規(guī)定在遇到無法解析的實體名稱(NDATA)聲明時被調用的函數(shù)。
xml_set_processing_instruction_handler() 函數(shù)規(guī)定當解析器在 XML 文檔中找到處理指令時所調用的函數(shù)。
xml_set_object() 函數(shù)允許在對象中使用 XML 解析器。
xml_set_notation_decl_handler() 函數(shù)規(guī)定當解析器在 XML 文檔中找到符號聲明時被調用的函數(shù)。
xml_set_external_entity_ref_handler() 函數(shù)規(guī)定當解析器在 XML 文檔中找到外部實體時被調用的函數(shù)。
xml_set_element_handler() 函數(shù)建立起始和終止元素處理器。
xml_set_default_handler() 函數(shù)為 XML 解析器建立默認的數(shù)據(jù)處理器。
xml_set_character_data_handler() 函數(shù)建立字符數(shù)據(jù)處理器。
xml_parser_set_option() 函數(shù)為 XML 解析器進行選項設置。
xml_parser_get_option() 函數(shù)從 XML 解析器獲取選項設置信息。
xml_parser_free() 函數(shù)釋放 XML 解析器。
xml_parser_create() 函數(shù)創(chuàng)建 XML 解析器。
xml_parser_create_ns() 函數(shù)創(chuàng)建帶有命名空間支持的 XML 解析器。
xml_parse_into_struct() 函數(shù)把 XML 數(shù)據(jù)解析到數(shù)組中。
xml_parse() 函數(shù)解析 XML 文檔。
xml_get_error_code() 函數(shù)獲取 XML 解析器錯誤代碼。
xml_get_current_line_number() 函數(shù)獲取 XML 解析器的當前行號。
xml_get_current_column_number() 函數(shù)獲取 XML 解析器的當前列號。
xml_get_current_byte_index() 函數(shù)獲取 XML 解析器的當前字節(jié)索引。
xml_error_string() 函數(shù)獲取 XML 解析器的錯誤描述。
utf8_encode() 函數(shù)把 ISO-8859-1 字符串編碼為 UTF-8。
utf8_decode() 函數(shù)把 UTF-8 字符串解碼為 ISO-8859-1。
wordwrap() 函數(shù)按照指定長度對字符串進行折行處理。
vsprintf() 函數(shù)把格式化字符串寫入變量中。
vprintf() 函數(shù)輸出格式化的字符串。
vfprintf() 函數(shù)把格式化的字符串寫到指定的輸出流。
ucwords() 函數(shù)把字符串中每個單詞的首字符轉換為大寫。
ucfirst() 函數(shù)把字符串中的首字符轉換為大寫。
trim() 函數(shù)從字符串的兩端刪除空白字符和其他預定義字符。
substr_replace() 函數(shù)把字符串的一部分替換為另一個字符串。
substr_count() 函數(shù)計算子串在字符串中出現(xiàn)的次數(shù)。
substr_compare() 函數(shù)從指定的開始長度比較兩個字符串。
substr() 函數(shù)返回字符串的一部分。
strtr() 函數(shù)轉換字符串中特定的字符。
strtoupper() 函數(shù)把字符串轉換為大寫。
strtolower() 函數(shù)把字符串轉換為小寫。
strtok() 函數(shù)把字符串分割為更小的字符串。
strstr() 函數(shù)搜索一個字符串在另一個字符串中的第一次出現(xiàn)。
strspn() 函數(shù)返回在字符串中包含的特定字符的數(shù)目。
strrpos() 函數(shù)查找字符串在另一個字符串中最后一次出現(xiàn)的位置。
strripos() 函數(shù)查找字符串在另一個字符串中最后一次出現(xiàn)的位置。
strrev() 函數(shù)反轉字符串。
strrchr() 函數(shù)查找字符串在另一個字符串中最后一次出現(xiàn)的位置,并返回從該位置到字符串結尾的所有字符。
strpos() 函數(shù)返回字符串在另一個字符串中第一次出現(xiàn)的位置。
strpbrk() 函數(shù)在字符串中搜索指定字符中的任意一個。
strncmp() 函數(shù)比較兩個字符串。
strncasecmp() 函數(shù)比較兩個字符串。
strnatcmp() 函數(shù)使用一種“自然”算法來比較兩個字符串。
strnatcasecmp() 函數(shù)使用一種“自然”算法來比較兩個字符串。
strlen() 函數(shù)返回字符串的長度。
stristr() 函數(shù)查找字符串在另一個字符串中第一次出現(xiàn)的位置。
stripos() 函數(shù)返回字符串在另一個字符串中第一次出現(xiàn)的位置。
stripslashes() 函數(shù)刪除由 addslashes() 函數(shù)添加的反斜杠。
stripcslashes() 函數(shù)刪除由 addcslashes() 函數(shù)添加的反斜杠。
strip_tags() 函數(shù)剝去 HTML、XML 以及 PHP 的標簽。
strcspn() 函數(shù)返回在找到任何指定的字符之前,在字符串查找的字符數(shù)。
strcoll() 函數(shù)比較兩個字符串。
strcmp() 函數(shù)比較兩個字符串。
strchr() 函數(shù)搜索一個字符串在另一個字符串中的第一次出現(xiàn)。
strcasecmp() 函數(shù)比較兩個字符串。
str_word_count() 函數(shù)計算字符串中的單詞數(shù)。
str_split() 函數(shù)把字符串分割到數(shù)組中。
str_shuffle() 函數(shù)隨機地打亂字符串中的所有字符。
str_rot13() 函數(shù)對字符串執(zhí)行 ROT13 編碼。
str_replace() 函數(shù)使用一個字符串替換字符串中的另一些字符。
str_repeat() 函數(shù)把字符串重復指定的次數(shù)。
str_pad() 函數(shù)把字符串填充為指定的長度。
str_ireplace() 函數(shù)使用一個字符串替換字符串中的另一些字符。
sscanf() 函數(shù)根據(jù)指定的格式解析來自一個字符串的輸入。
sprintf() 函數(shù)把格式化的字符串寫寫入一個變量中。
soundex() 函數(shù)計算字符串的 soundex 鍵。
similar_text() 函數(shù)計算兩個字符串的匹配字符的數(shù)目。
sha1_file() 函數(shù)計算文件的 SHA-1 散列。
sha1() 函數(shù)計算字符串的 SHA-1 散列。
setlocale() 函數(shù)設置地區(qū)信息(地域信息)。
rtrim() P rtrim() 函數(shù)?

PHP String 函數(shù)
quotemeta() 函數(shù)在字符串中某些預定義的字符前添加反斜杠。
quoted_printable_decode() 函數(shù)對經過 quoted-printable 編碼后的字符串進行解碼,返回 8 位的字符串。
printf() 函數(shù)輸出格式化的字符串。
print() 函數(shù)輸出一個或多個字符串。
parse_str() 函數(shù)把查詢字符串解析到變量中。
ord() 函數(shù)返回字符串第一個字符的 ASCII 值。
number_format() 函數(shù)通過千位分組來格式化數(shù)字。
nl2br() 函數(shù)在字符串中的每個新行 (\n) 之前插入 HTML 換行符 (<br />)。
nl_langinfo() 函數(shù)返回指定的本地信息。
money_format() 函數(shù)把字符串格式化為貨幣字符串。
metaphone() 函數(shù)計算字符串的 metaphone 鍵。
md5_file() 函數(shù)計算文件的 MD5 散列。
md5() 函數(shù)計算字符串的 MD5 散列。
ltrim() 函數(shù)從字符串左側刪除空格或其他預定義字符。
localeconv() 函數(shù)返回包含本地數(shù)字及貨幣信息格式的數(shù)組。
levenshtein() 函數(shù)返回兩個字符串之間的 Levenshtein 距離。
join() 函數(shù)把數(shù)組元素組合為一個字符串。
implode() 函數(shù)把數(shù)組元素組合為一個字符串。
htmlspecialchars() 函數(shù)把一些預定義的字符轉換為 HTML 實體。
html_entity_decode() chars_decode() 函數(shù)
htmlentities() 函數(shù)把字符轉換為 HTML 實體。
html_entity_decode() 函數(shù)把 HTML 實體轉換為字符。
hebrevc() 函數(shù)把希伯來文本從右至左的流轉換為左至右的流。它也會把新行 (\n) 轉換為 <br />。
hebrev() 函數(shù)把希伯來文本從右至左的流轉換為左至右的流。
get_html_translation_table() 函數(shù)返回被 htmlentities() 和 htmlspecialchars() 函數(shù)使用的翻譯表。
fprintf() 函數(shù)把格式化的字符串寫到指定的輸出流(例如:文件或數(shù)據(jù)庫)。
explode() 函數(shù)把字符串分割為數(shù)組。
echo() 函數(shù)輸出一個或多個字符串。
crypt() 函數(shù)返回使用 DES、Blowfish 或 MD5 加密的字符串。
crc32() 函數(shù)計算一個字符串的 crc32 多項式。
count_chars() 函數(shù)返回字符串所用字符的信息。
convert_uuencode() 函數(shù)使用 uuencode 算法對字符串進行編碼。
convert_uudecode() 函數(shù)對 uuencode 編碼的字符串進行解碼。
convert_cyr_string() 函數(shù)把字符由一種 Cyrillic 字符轉換成另一種。
chunk_split() 函數(shù)把字符串分割為一連串更小的部分。
chr() 函數(shù)從指定的 ASCII 值返回字符。
chop() 函數(shù)從字符串的末端開始刪除空白字符或其他預定義字符。
bin2hex() 函數(shù)把 ASCII 字符的字符串轉換為十六進制值。
addslashes() 函數(shù)在指定的預定義字符前添加反斜杠。
addcslashes() 函數(shù)在指定的字符前添加反斜杠。
xpath() 函數(shù)運行對 XML 文檔的 XPath 查詢。
simplexml_load_string() 函數(shù)把 XML 字符串載入對象中。
simplexml_load_file() 函數(shù)把 XML 文檔載入對象中。
simplexml_import_dom() 函數(shù)把 DOM 節(jié)點轉換為 SimpleXMLElement 對象。
registerXPathNamespace() 函數(shù)為下一次 XPath 查詢創(chuàng)建命名空間語境。
getNamespace() 函數(shù)獲取在 XML 文檔中使用的命名空間。
getName() 函數(shù)從 SimpleXMLElement 對象獲取 XML 元素的名稱。
getDocNamespaces() 函數(shù)從 SimpleXMLElement 對象返回在 XML 文檔中聲明的命名空間。
children() 函數(shù)獲取指定節(jié)點的子節(jié)點。
attributes() 函數(shù)獲取 SimpleXML 元素的屬性。
asXML() 函數(shù)以字符串的形式從 SimpleXMLElement 對象返回 XML 文檔。
addChild() 函數(shù)向指定的 XML 節(jié)點添加一個子節(jié)點。
addAttribute() 函數(shù)給 SimpleXML 元素添加一個屬性。
__construct() 函數(shù)創(chuàng)建一個新的 SimpleXMLElement 對象。
mysql_unbuffered_query() 函數(shù)向 MySQL 發(fā)送一條 SQL 查詢(不獲取 / 緩存結果)。
mysql_thread_id() 函數(shù)返回當前線程的 ID。
mysql_stat() 函數(shù)返回 MySQL 服務器的當前系統(tǒng)狀態(tài)。
mysql_select_db() 函數(shù)設置活動的 MySQL 數(shù)據(jù)庫。
mysql_result() 函數(shù)返回結果集中一個字段的值。
mysql_real_escape_string() 函數(shù)轉義 SQL 語句中使用的字符串中的特殊字符。
mysql_query() 函數(shù)執(zhí)行一條 MySQL 查詢。
mysql_ping() 函數(shù) Ping 一個服務器連接,如果沒有連接則重新連接。
mysql_pconnect() 函數(shù)打開一個到 MySQL 服務器的持久連接。
mysql_num_rows() 函數(shù)返回結果集中行的數(shù)目。
mysql_num_fields() 函數(shù)返回結果集中字段的數(shù)。
mysql_list_processes() 函數(shù)列出 MySQL 進程。
mysql_list_dbs() 函數(shù)列出 MySQL 服務器中所有的數(shù)據(jù)庫。
mysql_insert_id() 函數(shù)返回上一步 INSERT 操作產生的 ID。
mysql_info() 函數(shù)返回最近一條查詢的信息。
mysql_get_server_info() 函數(shù)返回 MySQL 服務器的信息。
mysql_get_proto_info() 函數(shù)返回 MySQL 協(xié)議的信息。
mysql_get_host_info() 函數(shù)返回 MySQL 主機的信息。
mysql_get_client_info() 函數(shù)返回 MySQL 客戶端信息。
mysql_free_result() 函數(shù)釋放結果內存。
mysql_field_type() 函數(shù)返回結果集中指定字段的類型。
mysql_field_table() 函數(shù)返回指定字段所在的表名。
mysql_field_seek() 函數(shù)將結果集中的指針設定為指定的字段偏移量。
mysql_field_name() 函數(shù)取得結果中指定字段的字段名。
mysql_field_len() 函數(shù)返回指定字段的長度。
mysql_field_flags() 函數(shù)從結果中取得和指定字段關聯(lián)的標志。
mysql_fetch_row() 函數(shù)從結果集中取得一行作為數(shù)字數(shù)組。
mysql_fetch_object() 函數(shù)從結果集(記錄集)中取得一行作為對象。
mysql_fetch_lengths() 函數(shù)取得一行中每個字段的內容的長度。
mysql_fetch_field() 函數(shù)從結果集中取得列信息并作為對象返回。
mysql_fetch_assoc() 函數(shù)從結果集中取得一行作為關聯(lián)數(shù)組。
mysql_fetch_array() 函數(shù)從結果集中取得一行作為關聯(lián)數(shù)組,或數(shù)字數(shù)組,或二者兼有
mysql_error() 函數(shù)返回上一個 MySQL 操作產生的文本錯誤信息。
mysql_errno() 函數(shù)返回上一個 MySQL 操作中的錯誤信息的數(shù)字編碼。
mysql_db_name() 函數(shù)取得 mysql_list_dbs() 調用所返回的數(shù)據(jù)庫名。
mysql_data_seek() 函數(shù)移動內部結果的指針。
mysql_connect() 函數(shù)打開非持久的 MySQL 連接。
mysql_close() 函數(shù)關閉非持久的 MySQL 連接。
mysql_client_encoding() 函數(shù)返回當前連接的字符集的名稱。
mysql_affected_rows() 函數(shù)返回前一次 MySQL 操作所影響的記錄行數(shù)。
tanh() 函數(shù)返回雙曲正切。
tan() 函數(shù)返回正切。
srand() 函數(shù)播下隨機數(shù)發(fā)生器種子。
sqrt() 函數(shù)返回一個數(shù)的平方根。
sinh() 函數(shù)返回一個數(shù)的雙曲正弦。
sin() 函數(shù)返回一個數(shù)的正弦。
round() 函數(shù)對浮點數(shù)進行四舍五入。
rand() 函數(shù)返回隨機整數(shù)。
rad2deg() 函數(shù)把弧度數(shù)轉換為角度數(shù)。
pow() 函數(shù)返回 x 的 y 次方。
pi() 函數(shù)返回圓周率的值。
octdec() 函數(shù)把八進制轉換為十進制。
mt_srand() 播種 Mersenne Twister 隨機數(shù)生成器。
mt_rand() 使用 Mersenne Twister 算法返回隨機整數(shù)。
mt_getrandmax() 顯示隨機數(shù)的最大可能值。
min() 返回最小值。
max() 返回最大值。
log1p() 以返回 log(1 + x),甚至當 x 的值接近零也能計算出準確結果。
log10() 以 10 為底的對數(shù)。
log() 返回自然對數(shù)。
lcg_value() 組合線性同余發(fā)生器。
is_nan() 判斷是否為合法數(shù)值。
is_infinite() 判斷是否為無限值。
is_finite() 函數(shù)判斷是否為有限值。
hypot() 函數(shù)計算一直角三角形的斜邊長度。
hexdec() 函數(shù)把十六進制轉換為十進制。
fmod() 函數(shù)顯示隨機數(shù)最大的可能值。
fmod() 函數(shù)返回除法的浮點數(shù)余數(shù)。
floor() 函數(shù)向下舍入為最接近的整數(shù)。
expm1() 函數(shù)返回 exp(x) - 1,甚至當 number 的值接近零也能計算出準確結果。
exp() 函數(shù)計算 e 的指數(shù)。
deg2rad() 函數(shù)將角度轉換為弧度。
decoct() 函數(shù)把十進制轉換為八進制。
dechex() 函數(shù)把十進制轉換為十六進制。
decbin() 函數(shù)把十進制轉換為二進制。
cosh() 函數(shù)返回一個數(shù)的雙曲余弦。
cos() 函數(shù)返回一個數(shù)的余弦。
ceil() 函數(shù)向上舍入為最接近的整數(shù)。
bindec() 函數(shù)把二進制轉換為十進制。
base_convert() 函數(shù)在任意進制之間轉換數(shù)字。
atanh() 函數(shù)返回一個角度的反雙曲正切。
atan() 和 atan2() 和 atan2() 函數(shù)

PHP Math 函數(shù)
atan() 和 atan2() 和 atan2() 函數(shù)
asinh() 函數(shù)返回一個數(shù)的反雙曲正弦。
asin() 函數(shù)返回不同數(shù)值的反正弦,返回的結果是介于 -PI/2 與 PI/2 之間的弧度值。
acosh() 函數(shù)返回一個數(shù)的反雙曲余弦。
acos() 函數(shù)返回一個數(shù)的反余弦。
abs() 函數(shù)返回一個數(shù)的絕對值。
mail() 函數(shù)允許您從腳本中直接發(fā)送電子郵件。
libxml_use_internal_errors() 函數(shù)禁用標準的 libxml 錯誤,并啟用用戶錯誤處理。
libxml_get_last_error() 函數(shù)從 libxml 錯誤緩沖中獲取最后一個錯誤。
libxml_get_errors() 函數(shù)從 libxml 錯誤緩沖中獲取錯誤。
libxml_clear_errors() 函數(shù)清空 libxml 錯誤緩沖。
setrawcookie() 函數(shù)不對 cookie 值進行 URL 編碼,發(fā)送一個 HTTP cookie。
setcookie() 函數(shù)向客戶端發(fā)送一個 HTTP cookie。
headers_sent() 函數(shù)檢查 HTTP 報頭是否發(fā)送/已發(fā)送到何處。
headers_list() 函數(shù)返回已發(fā)送的(或待發(fā)送的)響應頭部的一個列表。
header() 函數(shù)向客戶端發(fā)送原始的 HTTP 報頭。
ftp_systype() 函數(shù)返回遠程 FTP 服務器的系統(tǒng)類型標識符。
ftp_ssl_connect() 函數(shù)打開一個安全的 SSL-FTP 連接。
ftp_size() 函數(shù)返回指定文件的大小。
ftp_site() 函數(shù)向服務器發(fā)送 SITE 命令。
ftp_set_option() 函數(shù)設置各種 FTP 運行時選項。
ftp_rmdir() 函數(shù)刪除一個目錄。
ftp_rename() 函數(shù)更改 FTP 服務器上的文件或目錄名。
ftp_rawlist() 函數(shù)返回指定目錄中文件的詳細列表。
ftp_raw() 函數(shù)向 FTP 服務器發(fā)送一個 raw 命令。
ftp_quit() 函數(shù)關閉 FTP 連接。
ftp_pwd() 函數(shù)返回當前目錄名。
ftp_put() 函數(shù)把文件上傳到服務器。
ftp_pasv() 函數(shù)把被動模式設置為打開或關閉。
ftp_nlist() 函數(shù)返回指定目錄的文件列表。
ftp_nb_put() 函數(shù)把文件上傳到服務器 (non-blocking)。
ftp_nb_get() 函數(shù)從 FTP 服務器上獲取文件并寫入本地文件 (non-blocking)。
ftp_nb_fput() 函數(shù)上傳一個已打開的文件,并在 FTP 服務器上把它保存為文件 (non-blocking)。
ftp_nb_fget() 函數(shù)從 FTP 服務器上下載一個文件并保存到本地已經打開的一個文件中 (non-blocking)。
ftp_nb_continue() 函數(shù)連續(xù)獲取 / 發(fā)送文件。
ftp_mkdir() 函數(shù)在 FTP 服務器上建立新目錄。
ftp_mdtm() 函數(shù)返回指定文件的最后修改時間。
ftp_login() 函數(shù)登錄 FTP 服務器。
ftp_get() 函數(shù)從 FTP 服務器上下載一個文件。
ftp_get_option() 函數(shù)返回當前 FTP 連接的各種不同的選項設置。
ftp_fput() 函數(shù)上傳一個已經打開的文件到 FTP 服務器。
ftp_fget() 函數(shù)從 FTP 服務器上下載一個文件并保存到本地一個已經打開的文件中。
ftp_exec() 函數(shù)請求在 FTP 服務器上執(zhí)行一個程序或命令。
ftp_delete() 函數(shù)刪除 FTP 服務器上的一個文件。
ftp_connect() 函數(shù)建立一個新的 FTP 連接。
ftp_close() 函數(shù)關閉 FTP 連接。
ftp_chmod() 函數(shù)設置 FTP 服務器上指定文件的權限。
ftp_chdir() 函數(shù)改變 FTP 服務器上的當前目錄。
ftp_cdup() 函數(shù)把當前目錄改變?yōu)?FTP 服務器上的父目錄。
ftp_alloc() 函數(shù)為要上傳到 FTP 服務器的文件分配空間。
filter_var() 函數(shù)通過指定的過濾器過濾變量。
filter_var_array() 函數(shù)獲取多項變量,并進行過濾。
filter_list() 函數(shù)返回包含所有得到支持的過濾器的一個數(shù)組。
filter_input_array() 函數(shù)從腳本外部獲取多項輸入,并進行過濾。
filter_input() 函數(shù)從腳本外部獲取輸入,并進行過濾。
filter_id() 函數(shù)返回指定過濾器的 ID 號。
filter_has_var() 函數(shù)檢查是否存在指定輸入類型的變量。
unlink() 函數(shù)刪除文件。
umask() 函數(shù)改變當前的 umask。
touch() 函數(shù)設置指定文件的訪問和修改時間。
tmpfile() 函數(shù)以讀寫(w+)模式建立一個具有唯一文件名的臨時文件。
tempnam() 函數(shù)創(chuàng)建一個具有唯一文件名的臨時文件。
symlink() 函數(shù)創(chuàng)建符號連接。
stat() 函數(shù)返回關于文件的信息。
set_file_buffer() 函數(shù)設置打開文件的緩沖大小。
rmdir() 函數(shù)刪除空的目錄。
rewind() 函數(shù)將文件指針的位置倒回文件的開頭。
rename() 函數(shù)重命名文件或目錄。
realpath() 函數(shù)返回絕對路徑。
readlink() 函數(shù)返回符號連接指向的目標。
readfile() 函數(shù)輸出一個文件。
popen() 函數(shù)打開進程文件指針。
pclose() 函數(shù)關閉由 popen() 打開的管道。
pathinfo() 函數(shù)以數(shù)組的形式返回文件路徑的信息。
parse_ini_file() 函數(shù)解析一個配置文件,并以數(shù)組的形式返回其中的設置。
move_uploaded_file() 函數(shù)將上傳的文件移動到新位置。
mkdir() 函數(shù)創(chuàng)建目錄。
lstat() 函數(shù)返回關于文件或符號連接的信息。
linkinfo() 函數(shù)返回連接的信息。
link() 函數(shù)建立一個硬連接。
is_writeable() 函數(shù)判斷指定的文件是否可寫。
is_writable() 函數(shù)判斷指定的文件是否可寫。
is_uploaded_file() 函數(shù)判斷指定的文件是否是通過 HTTP POST 上傳的。
is_readable() 函數(shù)判斷指定文件名是否可讀。
is_link() 函數(shù)判斷指定文件名是否為一個符號連接。
is_file() 函數(shù)檢查指定的文件名是否是正常的文件。
is_executable() 函數(shù)檢查指定的文件是否可執(zhí)行。
is_dir() 函數(shù)檢查指定的文件是否是目錄。
glob() 函數(shù)返回匹配指定模式的文件名或目錄。
fwrite() 函數(shù)寫入文件(可安全用于二進制文件)。
ftruncate() 函數(shù)把文件截斷到指定的長度。
ftell() 函數(shù)在打開文件中的當前位置。
fstat() 函數(shù)返回關于打開文件的信息。
fseek() 函數(shù)在打開的文件中定位。
fscanf() 函數(shù)根據(jù)指定的格式對來自打開的文件的輸入進行解析。
fread() 函數(shù)讀取文件(可安全用于二進制文件)。
fputs() 函數(shù)寫入文件(可安全用于二進制文件)。
fputcsv() 函數(shù)將行格式化為 CSV 并寫入一個打開的文件。
fpassthru() 函數(shù)輸出文件指針處的所有剩余數(shù)據(jù)。
fopen() 函數(shù)打開文件或者 URL。
fnmatch() 函數(shù)根據(jù)指定的模式來匹配文件名或字符串。
flock() 函數(shù)鎖定或釋放文件。
filetype() 函數(shù)返回指定文件或目錄的類型。
filesize() 函數(shù)返回指定文件的大小。
fileperms() 函數(shù)返回文件或目錄的權限。
fileowner() 函數(shù)返回文件的所有者。
filemtime() 函數(shù)返回文件內容上次的修改時間。
fileinode() 函數(shù)返回文件的 inode 編號。
filegroup() 函數(shù)返回指定文件的組 ID。
filectime() 函數(shù)返回指定文件的上次 inode 修改時間。
fileatime() 函數(shù)返回指定文件的上次訪問時間。
file_put_contents() 函數(shù)把一個字符串寫入文件中。
file_get_contents() 函數(shù)把整個文件讀入一個字符串中。
file_exists() 函數(shù)檢查文件或目錄是否存在。
file() 函數(shù)把整個文件讀入一個數(shù)組中。
fgetss() 函數(shù)從打開的文件中讀取一行并過濾掉 HTML 和 PHP 標記。
fgets() 函數(shù)從文件指針中讀取一行。
fgetcsv() 函數(shù)從文件指針中讀入一行并解析 CSV 字段。
fgetc() 函數(shù)從文件指針中讀取一個字符。
fflush() 函數(shù)將緩沖內容輸出到文件。
feof() 函數(shù)檢測是否已到達文件末尾 (eof)。
fclose() 函數(shù)關閉一個打開文件。
diskfreespace() 函數(shù)返回目錄中的可用空間。該函數(shù)是 disk_free_space() 函數(shù)的別名。
disk_total_space() 函數(shù)返回指定目錄的磁盤總大小。
disk_free_space() 函數(shù)返回目錄中的可用空間
dirname() 函數(shù)返回路徑中的目錄部分。
clearstatcache() 函數(shù)拷貝文件。
clearstatcache() 函數(shù)清除文件狀態(tài)緩存。
chown() 函數(shù)改變指定文件的所有者。
chmod() 函數(shù)改變文件模式。
chgrp() 函數(shù)改變文件所屬的組。
basename() 函數(shù)返回路徑中的文件名部分。
set_exception_handler() handler() 函數(shù)

PHP Error 和 Logging 函數(shù)
set_exception_handler() 函數(shù)設置用戶自定義的異常處理函數(shù)。
set_error_handler() 函數(shù)設置用戶自定義的錯誤處理函數(shù)。
restore_exception_handler() 函數(shù)恢復之前的異常處理程序,該程序是由 set_exception_handler() 函數(shù)改變的。
restore_error_handler() 函數(shù)恢復之前的錯誤處理程序,該程序是由 set_error_handler() 函數(shù)改變的。
error_reporting() 設置 PHP 的報錯級別并返回當前級別。
error_log() 函數(shù)向服務器錯誤記錄、文件或遠程目標發(fā)送一個錯誤。
error_get_last() 函數(shù)獲取最后發(fā)生的錯誤。
debug_print_backtrace() 函數(shù)輸出 backtrace。
debug_backtrace() cktrace() 函數(shù)
scandir() 函數(shù)返回一個數(shù)組,其中包含指定路徑中的文件和目錄。
rewinddir() 函數(shù)重置由 opendir() 打開的目錄句柄。
readdir() 函數(shù)返回由 opendir() 打開的目錄句柄中的條目。
opendir() 函數(shù)打開一個目錄句柄,可由 closedir(),readdir() 和 rewinddir() 使用。
getcwd() 函數(shù)返回當前目錄。
closedir() 函數(shù)關閉由 opendir() 函數(shù)打開的目錄句柄。
dir() 函數(shù)打開一個目錄句柄,并返回一個對象。這個對象包含三個方法:read() , rewind() 以及 close()。
chroot() 函數(shù)把當前進程的根目錄改變?yōu)橹付ǖ哪夸洝?br />chdir() 函數(shù)把當前的目錄改變?yōu)橹付ǖ哪夸洝?br />time() 函數(shù)返回當前時間的 Unix 時間戳。
strtotime() 函數(shù)將任何英文文本的日期時間描述解析為 Unix 時間戳。
strptime() 函數(shù)解析由 strftime() 生成的日期/時間。
strftime() 函數(shù)根據(jù)區(qū)域設置格式化本地時間/日期。
mktime() 函數(shù)返回一個日期的 Unix 時間戳。
microtime() 函數(shù)返回當前 Unix 時間戳和微秒數(shù)。
localtime() 函數(shù)返回本地時間(一個數(shù)組)。
idate() 函數(shù)將本地時間/日期格式化為整數(shù)。
gmstrftime() 函數(shù)根據(jù)本地區(qū)域設置格式化 GMT/UTC 時間/日期。
gmmktime() 函數(shù)取得 GMT 日期的 UNIX 時間戳。
gmdate() 函數(shù)格式化 GMT/UTC 日期/時間。
gettimeofday() 函數(shù)返回一個包含當前時間信息的數(shù)組。
getdate() 函數(shù)取得日期/時間信息。
date() 函數(shù)格式化一個本地時間/日期。
date_sunset() 函數(shù)返回指定的日期與地點的日落時間。
date_sunrise() 函數(shù)返回指定的日期與地點的日出時間。
date_default_timezone_set() 函數(shù)設置用在腳本中所有日期/時間函數(shù)的默認時區(qū)。
date_default_timezone_get() 函數(shù)返回腳本中所有日期時間函數(shù)所使用的默認時區(qū)。
checkdate() 函數(shù)驗證一個格里高里日期。
UnixToJD() 函數(shù)把 Unix 時間戳轉換為儒略日計數(shù)。
JulianToJD() 函數(shù)把儒略歷轉換為儒略日計數(shù)。
JewishToJD() 函數(shù)把猶太歷法轉換為儒略日計數(shù)。
JDToUnix() 函數(shù)把儒略日計數(shù)轉換為 Unix 時間戳。
JDToGregorian() lian() 函數(shù)

PHP Array 函數(shù)
JDToGregorian() wish() 函數(shù)
JDToGregorian() 函數(shù)把儒略日計數(shù)轉換為格利高里歷法。
JDToFrench() 函數(shù)把儒略日計數(shù)轉換為法國共和國歷法。
JDMonthName() 函數(shù)返回指定歷法的月份字符串。
JDDayOfWeek() 函數(shù)返回日期在周幾。
GregorianToJD() 函數(shù)將格利高里歷法轉換成為儒略日計數(shù)。
FrenchToJD() 函數(shù)將法國共和歷法轉換成為儒略日計數(shù)。
easter_days() 函數(shù)返回指定年份的復活節(jié)與 3 月 21 日之間的天數(shù)。
easter_date() 函數(shù)返回指定年份的復活節(jié)午夜的 Unix 時間戳。
cal_to_jd() 函數(shù)把指定的日期轉換為儒略日計數(shù)。
cal_info() 函數(shù)返回一個數(shù)組,其中包含了關于給定歷法的信息。
cal_from_jd() 函數(shù)把儒略日計數(shù)轉換為指定歷法的日期。
cal_days_in_month() 函數(shù)針對指定的年份和日歷,返回一個月中的天數(shù)。
usort() 函數(shù)使用用戶自定義的函數(shù)對數(shù)組排序。
uksort() 函數(shù)使用用戶自定義的比較函數(shù)按照鍵名對數(shù)組排序,并保持索引關系。
uasort() 函數(shù)使用用戶自定義的比較函數(shù)對數(shù)組排序,并保持索引關聯(lián)(不為元素分配新的鍵)。
sort() 函數(shù)按升序對給定數(shù)組的值排序。
sizeof() 函數(shù)計算數(shù)組中的單元數(shù)目或對象中的屬性個數(shù)。
shuffle() 函數(shù)把數(shù)組中的元素按隨機順序重新排列。
rsort() 函數(shù)對數(shù)組的元素按照鍵值進行逆向排序。與 arsort() 的功能基本相同。
reset() 函數(shù)把數(shù)組的內部指針指向第一個元素,并返回這個元素的值。
range() 函數(shù)創(chuàng)建并返回一個包含指定范圍的元素的數(shù)組。
prev() HP prev() 函數(shù)

PHP Array 函數(shù)
pos() 函數(shù)是 current() 函數(shù) 的別名。它可返回數(shù)組中當前元素的值。
next() 函數(shù)把指向當前元素的指針移動到下一個元素的位置,并返回當前元素的值。
natsort() 函數(shù)用自然順序算法對給定數(shù)組中的元素排序。
natcasesort() 函數(shù)用不區(qū)分大小寫的自然順序算法對給定數(shù)組中的元素排序。
list() 函數(shù)用數(shù)組中的元素為一組變量賦值。
ksort() 函數(shù)按照鍵名對數(shù)組排序,為數(shù)組值保留原來的鍵。
krsort() 函數(shù)將數(shù)組按照鍵逆向排序,為數(shù)組值保留原來的鍵。
key() 函數(shù)返回數(shù)組內部指針當前指向元素的鍵名。
in_array() 函數(shù)在數(shù)組中搜索給定的值。
extract() extract() 函數(shù)
end() 函數(shù)將數(shù)組內部指針指向最后一個元素,并返回該元素的值(如果成功)。
each() 函數(shù)生成一個由數(shù)組當前內部指針所指向的元素的鍵名和鍵值組成的數(shù)組,并把內部指針向前移動。
current() 函數(shù)返回數(shù)組中的當前元素(單元)。
count() 函數(shù)計算數(shù)組中的單元數(shù)目或對象中的屬性個數(shù)。
compact() 函數(shù)創(chuàng)建一個由參數(shù)所帶變量組成的數(shù)組。如果參數(shù)中存在數(shù)組,該數(shù)組中變量的值也會被獲取。
asort() 函數(shù)對數(shù)組進行排序并保持索引關系。主要用于對那些單元順序很重要的結合數(shù)組進行排序。
arsort() 函數(shù)對數(shù)組進行逆向排序并保持索引關系。主要用于對那些單元順序很重要的結合數(shù)組進行排序。
array_walk_recursive() cursive() 函數(shù)
array_walk() 函數(shù)對數(shù)組中的每個元素應用回調函數(shù)。如果成功則返回 TRUE,否則返回 FALSE。
array_values() 函數(shù)返回一個包含給定數(shù)組中所有鍵值的數(shù)組,但不保留鍵名。
array_unshift() 函數(shù)在數(shù)組開頭插入一個或多個元素。
array_unique() 函數(shù)移除數(shù)組中的重復的值,并返回結果數(shù)組。
array_uintersect_assoc() 函數(shù)帶索引檢查計算數(shù)組的交集,用回調函數(shù)比較數(shù)據(jù)。
array_uintersect() 函數(shù)計算數(shù)組的交集,用回調函數(shù)比較數(shù)據(jù)。
array_udiff_uassoc() 函數(shù)返回 array1 數(shù)組中存在但其它數(shù)組中都不存在的部分。返回的數(shù)組中鍵名保持不變。
array_udiff_assoc() 函數(shù)返回 array1 中存在但其它數(shù)組中都不存在的部分。
array_udiff() 函數(shù)返回一個數(shù)組,該數(shù)組包括了所有在被比較數(shù)組中,但是不在任何其它參數(shù)數(shù)組中的值,鍵名保留不變。
array_sum() 函數(shù)返回數(shù)組中所有值的總和。
array_splice() 函數(shù)與 array_slice() 函數(shù)類似,選擇數(shù)組中的一系列元素,但不返回,而是刪除它們并用其它值代替。
array_slice() 函數(shù)在數(shù)組中根據(jù)條件取出一段值,并返回。
array_shift() 函數(shù)刪除數(shù)組中的第一個元素,并返回被刪除元素的值。
array_search() 函數(shù)與 in_array() 一樣,在數(shù)組中查找一個鍵值。如果找到了該值,匹配元素的鍵名會被返回。如果沒找到,則返回 false。
array_reverse() 函數(shù)將原數(shù)組中的元素順序翻轉,創(chuàng)建新的數(shù)組并返回。如果第二個參數(shù)指定為 true,則元素的鍵名保持不變,否則鍵名將丟失。
array_reduce() 函數(shù)用回調函數(shù)迭代地將數(shù)組簡化為單一的值。如果指定第三個參數(shù),則該參數(shù)將被當成是數(shù)組中的第一個值來處理,或者如果數(shù)組為空的話就作為最終返回值。
array_rand() 函數(shù)從數(shù)組中隨機選出一個或多個元素,并返回。
array_push() 函數(shù)向第一個參數(shù)的數(shù)組尾部添加一個或多個元素(入棧),然后返回新數(shù)組的長度。
array_product() 函數(shù)計算并返回數(shù)組中所有值的乘積。
array_pop() 函數(shù)刪除數(shù)組中的最后一個元素。
array_pad() 函數(shù)向一個數(shù)組插入帶有指定值的指定數(shù)量的元素。
array_multisort() 函數(shù)對多個數(shù)組或多維數(shù)組進行排序。
array_merge_recursive() 函數(shù)與 array_merge() 函數(shù) 一樣,將一個或多個數(shù)組的元素的合并起來,一個數(shù)組中的值附加在前一個數(shù)組的后面。并返回作為結果的數(shù)組。
array_merge() 函數(shù)把兩個或多個數(shù)組合并為一個數(shù)組。
array_map() 函數(shù)返回用戶自定義函數(shù)作用后的數(shù)組。回調函數(shù)接受的參數(shù)數(shù)目應該和傳遞給 array_map() 函數(shù)的數(shù)組數(shù)目一致。
array_keys() 函數(shù)返回包含數(shù)組中所有鍵名的一個新數(shù)組。
array_key_exists() 函數(shù)判斷某個數(shù)組中是否存在指定的 key,如果該 key 存在,則返回 true,否則返回 false。
array_intersect_ukey() 函數(shù)用回調函數(shù)比較鍵名來計算數(shù)組的交集。
array_intersect_uassoc() 函數(shù)使用用戶自定義的回調函數(shù)計算數(shù)組的交集,用回調函數(shù)比較索引。
array_intersect_key() 函數(shù)使用鍵名比較計算數(shù)組的交集。
array_intersect_assoc() 函數(shù)返回兩個或多個數(shù)組的交集數(shù)組。
array_intersect() 函數(shù)返回兩個或多個數(shù)組的交集數(shù)組。
array_flip() 函數(shù)返回一個反轉后的數(shù)組,如果同一值出現(xiàn)了多次,則最后一個鍵名將作為它的值,所有其他的鍵名都將丟失。
array_filter() 函數(shù)用回調函數(shù)過濾數(shù)組中的元素,如果自定義過濾函數(shù)返回 true,則被操作的數(shù)組的當前值就會被包含在返回的結果數(shù)組中, 并將結果組成一個新的數(shù)組。如果原數(shù)組是一個關聯(lián)數(shù)組,鍵名保持不變。
array_fill() 函數(shù)用給定的值填充數(shù)組,返回的數(shù)組有 number 個元素,值為 value。返回的數(shù)組使用數(shù)字索引,從 start 位置開始并遞增。如果 number 為 0 或小于 0,就會出錯。
array_diff_ukey() 返回一個數(shù)組,該數(shù)組包括了所有出現(xiàn)在 array1 中但是未出現(xiàn)在任何其它參數(shù)數(shù)組中的鍵名的值。注意關聯(lián)關系保留不變。與 array_diff() 不同的是,比較是根據(jù)鍵名而不是值來進行的。
array_diff_uassoc() 函數(shù)使用用戶自定義的回調函數(shù) (callback) 做索引檢查來計算兩個或多個數(shù)組的差集。返回一個數(shù)組,該數(shù)組包括了在 array1 中但是不在任何其他參數(shù)數(shù)組中的值。
array_diff_key() 函數(shù)返回一個數(shù)組,該數(shù)組包括了所有在被比較的數(shù)組中,但是不在任何其他參數(shù)數(shù)組中的鍵。
array_diff_assoc() 函數(shù)返回兩個數(shù)組的差集數(shù)組。該數(shù)組包括了所有在被比較的數(shù)組中,但是不在任何其他參數(shù)數(shù)組中的鍵和值。
array_diff() 函數(shù)返回兩個數(shù)組的差集數(shù)組。該數(shù)組包括了所有在被比較的數(shù)組中,但是不在任何其他參數(shù)數(shù)組中的鍵值。
array_count_values() 函數(shù)用于統(tǒng)計數(shù)組中所有值出現(xiàn)的次數(shù)。
array_combine() 函數(shù)通過合并兩個數(shù)組來創(chuàng)建一個新數(shù)組,其中的一個數(shù)組是鍵名,另一個數(shù)組的值為鍵值。
array_chunk() 函數(shù)把一個數(shù)組分割為新的數(shù)組塊。
array_change_key_case() 函數(shù)將數(shù)組的所有的 KEY 都轉換為大寫或小寫。
array() 創(chuàng)建數(shù)組,帶有鍵和值。如果在規(guī)定數(shù)組時省略了鍵,則生成一個整數(shù)鍵,這個 key 從 0 開始,然后以 1 進行遞增。

這下面是一些常用的函數(shù)實例哦。以后大家一定能用的上!(本文將不斷更新,同時也希望熱心的網(wǎng)友朋友們能貢獻自己一點一滴的知識,大家共同進步,一起學習)

1、截取UTF-8編碼下字符串的函數(shù)

1 /**2 * 截取UTF-8編碼下字符串的函數(shù)3 *4 * @param string $str 被截取的字符串5 * @param int $length 截取的長度6 * @param bool $append 是否附加省略號7 *8 * @return string9 */ 10 function sub_str($str, $length = 0, $append = true) 11 { 12 $str = trim($str);//去掉前后的空格 13 $strlength = strlen($str); 14 15 if ($length == 0 || $length >= $strlength) 16 { 17 return $str; 18 } 19 elseif ($length < 0) 20 { 21 $length = $strlength + $length; 22 if ($length < 0) 23 { 24 $length = $strlength; 25 } 26 } 27 28 if (function_exists('mb_substr')) 29 { 30 $newstr = mb_substr($str, 0, $length, EC_CHARSET); 31 } 32 elseif (function_exists('iconv_substr')) 33 { 34 $newstr = iconv_substr($str, 0, $length, EC_CHARSET); 35 } 36 else 37 { 38 //$newstr = trim_right(substr($str, 0, $length)); 39 $newstr = substr($str, 0, $length); 40 } 41 42 if ($append && $str != $newstr) 43 { 44 $newstr .= '...'; 45 } 46 47 return $newstr; 48 } View Code

2、獲得用戶的真實IP地址

1 /**2 * 獲得用戶的真實IP地址3 *4 * @access public5 * @return string6 */7 function real_ip()8 {9 static $realip = NULL; 10 11 if ($realip !== NULL) 12 { 13 return $realip; 14 } 15 16 if (isset($_SERVER)) 17 { 18 if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) 19 { 20 $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); 21 22 /* 取X-Forwarded-For中第一個非unknown的有效IP字符串 */ 23 foreach ($arr AS $ip) 24 { 25 $ip = trim($ip); 26 27 if ($ip != 'unknown') 28 { 29 $realip = $ip; 30 31 break; 32 } 33 } 34 } 35 elseif (isset($_SERVER['HTTP_CLIENT_IP'])) 36 { 37 $realip = $_SERVER['HTTP_CLIENT_IP']; 38 } 39 else 40 { 41 if (isset($_SERVER['REMOTE_ADDR'])) 42 { 43 $realip = $_SERVER['REMOTE_ADDR']; 44 } 45 else 46 { 47 $realip = '0.0.0.0'; 48 } 49 } 50 } 51 else 52 { 53 if (getenv('HTTP_X_FORWARDED_FOR')) 54 { 55 $realip = getenv('HTTP_X_FORWARDED_FOR'); 56 } 57 elseif (getenv('HTTP_CLIENT_IP')) 58 { 59 $realip = getenv('HTTP_CLIENT_IP'); 60 } 61 else 62 { 63 $realip = getenv('REMOTE_ADDR'); 64 } 65 } 66 67 preg_match("/[\d\.]{7,15}/", $realip, $onlineip); 68 $realip = !empty($onlineip[0]) ? $onlineip[0] : '0.0.0.0'; 69 70 return $realip; 71 } View Code

3、計算字符串的長度(漢字按照兩個字符計算)

1 /**2 * 計算字符串的長度(漢字按照兩個字符計算)3 *4 * @param string $str 字符串5 *6 * @return int7 */8 function str_len($str)9 { 10 $length = strlen(preg_replace('/[\x00-\x7F]/', '', $str)); 11 12 if ($length) 13 { 14 return strlen($str) - $length + intval($length / 3) * 2; 15 } 16 else 17 { 18 return strlen($str); 19 } 20 } View Code

4、獲得用戶操作系統(tǒng)的換行符

1 /**2 * 獲得用戶操作系統(tǒng)的換行符3 *4 * @access public5 * @return string6 */7 function get_crlf()8 {9 /* LF (Line Feed, 0x0A, \N) 和 CR(Carriage Return, 0x0D, \R) */ 10 if (stristr($_SERVER['HTTP_USER_AGENT'], 'Win')) 11 { 12 $the_crlf = '\r\n'; 13 } 14 elseif (stristr($_SERVER['HTTP_USER_AGENT'], 'Mac')) 15 { 16 $the_crlf = '\r'; // for old MAC OS 17 } 18 else 19 { 20 $the_crlf = '\n'; 21 } 22 23 return $the_crlf; 24 } View Code

5、郵件發(fā)送

1 /**2 * 郵件發(fā)送3 *4 * @param: $name[string] 接收人姓名5 * @param: $email[string] 接收人郵件地址6 * @param: $subject[string] 郵件標題7 * @param: $content[string] 郵件內容8 * @param: $type[int] 0 普通郵件, 1 HTML郵件9 * @param: $notification[bool] true 要求回執(zhí), false 不用回執(zhí)10 *11 * @return boolean12 */13 function send_mail($name, $email, $subject, $content, $type = 0, $notification=false)14 {15 /* 如果郵件編碼不是EC_CHARSET,創(chuàng)建字符集轉換對象,轉換編碼 */16 if ($GLOBALS['_CFG']['mail_charset'] != EC_CHARSET)17 {18 $name = ecs_iconv(EC_CHARSET, $GLOBALS['_CFG']['mail_charset'], $name);19 $subject = ecs_iconv(EC_CHARSET, $GLOBALS['_CFG']['mail_charset'], $subject);20 $content = ecs_iconv(EC_CHARSET, $GLOBALS['_CFG']['mail_charset'], $content);21 $shop_name = ecs_iconv(EC_CHARSET, $GLOBALS['_CFG']['mail_charset'], $GLOBALS['_CFG']['shop_name']);22 }23 $charset = $GLOBALS['_CFG']['mail_charset'];24 /**25 * 使用mail函數(shù)發(fā)送郵件26 */27 if ($GLOBALS['_CFG']['mail_service'] == 0 && function_exists('mail'))28 {29 /* 郵件的頭部信息 */30 $content_type = ($type == 0) ? 'Content-Type: text/plain; charset=' . $charset : 'Content-Type: text/html; charset=' . $charset;31 $headers = array();32 $headers[] = 'From: "' . '=?' . $charset . '?B?' . base64_encode($shop_name) . '?='.'" <' . $GLOBALS['_CFG']['smtp_mail'] . '>';33 $headers[] = $content_type . '; format=flowed';34 if ($notification)35 {36 $headers[] = 'Disposition-Notification-To: ' . '=?' . $charset . '?B?' . base64_encode($shop_name) . '?='.'" <' . $GLOBALS['_CFG']['smtp_mail'] . '>';37 }38 39 $res = @mail($email, '=?' . $charset . '?B?' . base64_encode($subject) . '?=', $content, implode("\r\n", $headers));40 41 if (!$res)42 {43 $GLOBALS['err'] ->add($GLOBALS['_LANG']['sendemail_false']);44 45 return false;46 }47 else48 {49 return true;50 }51 }52 /**53 * 使用smtp服務發(fā)送郵件54 */55 else56 {57 /* 郵件的頭部信息 */58 $content_type = ($type == 0) ?59 'Content-Type: text/plain; charset=' . $charset : 'Content-Type: text/html; charset=' . $charset;60 $content = base64_encode($content);61 62 $headers = array();63 $headers[] = 'Date: ' . gmdate('D, j M Y H:i:s') . ' +0000';64 $headers[] = 'To: "' . '=?' . $charset . '?B?' . base64_encode($name) . '?=' . '" <' . $email. '>';65 $headers[] = 'From: "' . '=?' . $charset . '?B?' . base64_encode($shop_name) . '?='.'" <' . $GLOBALS['_CFG']['smtp_mail'] . '>';66 $headers[] = 'Subject: ' . '=?' . $charset . '?B?' . base64_encode($subject) . '?=';67 $headers[] = $content_type . '; format=flowed';68 $headers[] = 'Content-Transfer-Encoding: base64';69 $headers[] = 'Content-Disposition: inline';70 if ($notification)71 {72 $headers[] = 'Disposition-Notification-To: ' . '=?' . $charset . '?B?' . base64_encode($shop_name) . '?='.'" <' . $GLOBALS['_CFG']['smtp_mail'] . '>';73 }74 75 /* 獲得郵件服務器的參數(shù)設置 */76 $params['host'] = $GLOBALS['_CFG']['smtp_host'];77 $params['port'] = $GLOBALS['_CFG']['smtp_port'];78 $params['user'] = $GLOBALS['_CFG']['smtp_user'];79 $params['pass'] = $GLOBALS['_CFG']['smtp_pass'];80 81 if (empty($params['host']) || empty($params['port']))82 {83 // 如果沒有設置主機和端口直接返回 false84 $GLOBALS['err'] ->add($GLOBALS['_LANG']['smtp_setting_error']);85 86 return false;87 }88 else89 {90 // 發(fā)送郵件91 if (!function_exists('fsockopen'))92 {93 //如果fsockopen被禁用,直接返回94 $GLOBALS['err']->add($GLOBALS['_LANG']['disabled_fsockopen']);95 96 return false;97 }98 99 include_once(ROOT_PATH . 'includes/cls_smtp.php'); 100 static $smtp; 101 102 $send_params['recipients'] = $email; 103 $send_params['headers'] = $headers; 104 $send_params['from'] = $GLOBALS['_CFG']['smtp_mail']; 105 $send_params['body'] = $content; 106 107 if (!isset($smtp)) 108 { 109 $smtp = new smtp($params); 110 } 111 112 if ($smtp->connect() && $smtp->send($send_params)) 113 { 114 return true; 115 } 116 else 117 { 118 $err_msg = $smtp->error_msg(); 119 if (empty($err_msg)) 120 { 121 $GLOBALS['err']->add('Unknown Error'); 122 } 123 else 124 { 125 if (strpos($err_msg, 'Failed to connect to server') !== false) 126 { 127 $GLOBALS['err']->add(sprintf($GLOBALS['_LANG']['smtp_connect_failure'], $params['host'] . ':' . $params['port'])); 128 } 129 else if (strpos($err_msg, 'AUTH command failed') !== false) 130 { 131 $GLOBALS['err']->add($GLOBALS['_LANG']['smtp_login_failure']); 132 } 133 elseif (strpos($err_msg, 'bad sequence of commands') !== false) 134 { 135 $GLOBALS['err']->add($GLOBALS['_LANG']['smtp_refuse']); 136 } 137 else 138 { 139 $GLOBALS['err']->add($err_msg); 140 } 141 } 142 143 return false; 144 } 145 } 146 } 147 } View Code

6、獲得服務器上的 GD 版本

1 /**2 * 獲得服務器上的 GD 版本3 *4 * @access public5 * @return int 可能的值為0,1,26 */7 function gd_version()8 {9 include_once(ROOT_PATH . 'includes/cls_image.php'); 10 11 return cls_image::gd_version(); 12 } 13 14 if (!function_exists('file_get_contents')) 15 { 16 /** 17 * 如果系統(tǒng)不存在file_get_contents函數(shù)則聲明該函數(shù) 18 * 19 * @access public 20 * @param string $file 21 * @return mix 22 */ 23 function file_get_contents($file) 24 { 25 if (($fp = @fopen($file, 'rb')) === false) 26 { 27 return false; 28 } 29 else 30 { 31 $fsize = @filesize($file); 32 if ($fsize) 33 { 34 $contents = fread($fp, $fsize); 35 } 36 else 37 { 38 $contents = ''; 39 } 40 fclose($fp); 41 42 return $contents; 43 } 44 } 45 } 46 47 if (!function_exists('file_put_contents')) 48 { 49 define('FILE_APPEND', 'FILE_APPEND'); 50 51 /** 52 * 如果系統(tǒng)不存在file_put_contents函數(shù)則聲明該函數(shù) 53 * 54 * @access public 55 * @param string $file 56 * @param mix $data 57 * @return int 58 */ 59 function file_put_contents($file, $data, $flags = '') 60 { 61 $contents = (is_array($data)) ? implode('', $data) : $data; 62 63 if ($flags == 'FILE_APPEND') 64 { 65 $mode = 'ab+'; 66 } 67 else 68 { 69 $mode = 'wb'; 70 } 71 72 if (($fp = @fopen($file, $mode)) === false) 73 { 74 return false; 75 } 76 else 77 { 78 $bytes = fwrite($fp, $contents); 79 fclose($fp); 80 81 return $bytes; 82 } 83 } 84 } 85 86 if (!function_exists('floatval')) 87 { 88 /** 89 * 如果系統(tǒng)不存在 floatval 函數(shù)則聲明該函數(shù) 90 * 91 * @access public 92 * @param mix $n 93 * @return float 94 */ 95 function floatval($n) 96 { 97 return (float) $n; 98 } 99 } View Code

7、文件或目錄權限檢查函數(shù)

1 /**2 * 文件或目錄權限檢查函數(shù)3 *4 * @access public5 * @param string $file_path 文件路徑6 * @param bool $rename_prv 是否在檢查修改權限時檢查執(zhí)行rename()函數(shù)的權限7 *8 * @return int 返回值的取值范圍為{0 <= x <= 15},每個值表示的含義可由四位二進制數(shù)組合推出。9 * 返回值在二進制計數(shù)法中,四位由高到低分別代表10 * 可執(zhí)行rename()函數(shù)權限、可對文件追加內容權限、可寫入文件權限、可讀取文件權限。11 */12 function file_mode_info($file_path)13 {14 /* 如果不存在,則不可讀、不可寫、不可改 */15 if (!file_exists($file_path))16 {17 return false;18 }19 20 $mark = 0;21 22 if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN')23 {24 /* 測試文件 */25 $test_file = $file_path . '/cf_test.txt';26 27 /* 如果是目錄 */28 if (is_dir($file_path))29 {30 /* 檢查目錄是否可讀 */31 $dir = @opendir($file_path);32 if ($dir === false)33 {34 return $mark; //如果目錄打開失敗,直接返回目錄不可修改、不可寫、不可讀35 }36 if (@readdir($dir) !== false)37 {38 $mark ^= 1; //目錄可讀 001,目錄不可讀 00039 }40 @closedir($dir);41 42 /* 檢查目錄是否可寫 */43 $fp = @fopen($test_file, 'wb');44 if ($fp === false)45 {46 return $mark; //如果目錄中的文件創(chuàng)建失敗,返回不可寫。47 }48 if (@fwrite($fp, 'directory access testing.') !== false)49 {50 $mark ^= 2; //目錄可寫可讀011,目錄可寫不可讀 01051 }52 @fclose($fp);53 54 @unlink($test_file);55 56 /* 檢查目錄是否可修改 */57 $fp = @fopen($test_file, 'ab+');58 if ($fp === false)59 {60 return $mark;61 }62 if (@fwrite($fp, "modify test.\r\n") !== false)63 {64 $mark ^= 4;65 }66 @fclose($fp);67 68 /* 檢查目錄下是否有執(zhí)行rename()函數(shù)的權限 */69 if (@rename($test_file, $test_file) !== false)70 {71 $mark ^= 8;72 }73 @unlink($test_file);74 }75 /* 如果是文件 */76 elseif (is_file($file_path))77 {78 /* 以讀方式打開 */79 $fp = @fopen($file_path, 'rb');80 if ($fp)81 {82 $mark ^= 1; //可讀 00183 }84 @fclose($fp);85 86 /* 試著修改文件 */87 $fp = @fopen($file_path, 'ab+');88 if ($fp && @fwrite($fp, '') !== false)89 {90 $mark ^= 6; //可修改可寫可讀 111,不可修改可寫可讀011...91 }92 @fclose($fp);93 94 /* 檢查目錄下是否有執(zhí)行rename()函數(shù)的權限 */95 if (@rename($test_file, $test_file) !== false)96 {97 $mark ^= 8;98 }99 } 100 } 101 else 102 { 103 if (@is_readable($file_path)) 104 { 105 $mark ^= 1; 106 } 107 108 if (@is_writable($file_path)) 109 { 110 $mark ^= 14; 111 } 112 } 113 114 return $mark; 115 } 116 117 function log_write($arg, $file = '', $line = '') 118 { 119 if ((DEBUG_MODE & 4) != 4) 120 { 121 return; 122 } 123 124 $str = "\r\n-- ". date('Y-m-d H:i:s'). " --------------------------------------------------------------\r\n"; 125 $str .= "FILE: $file\r\nLINE: $line\r\n"; 126 127 if (is_array($arg)) 128 { 129 $str .= '$arg = array('; 130 foreach ($arg AS $val) 131 { 132 foreach ($val AS $key => $list) 133 { 134 $str .= "'$key' => '$list'\r\n"; 135 } 136 } 137 $str .= ")\r\n"; 138 } 139 else 140 { 141 $str .= $arg; 142 } 143 144 file_put_contents(ROOT_PATH . DATA_DIR . '/log.txt', $str); 145 } View Code

8、檢查目標文件夾是否存在,如果不存在則自動創(chuàng)建該目錄

1 /**2 * 檢查目標文件夾是否存在,如果不存在則自動創(chuàng)建該目錄3 *4 * @access public5 * @param string folder 目錄路徑。不能使用相對于網(wǎng)站根目錄的URL6 *7 * @return bool8 */9 function make_dir($folder) 10 { 11 $reval = false; 12 13 if (!file_exists($folder)) 14 { 15 /* 如果目錄不存在則嘗試創(chuàng)建該目錄 */ 16 @umask(0); 17 18 /* 將目錄路徑拆分成數(shù)組 */ 19 preg_match_all('/([^\/]*)\/?/i', $folder, $atmp); 20 21 /* 如果第一個字符為/則當作物理路徑處理 */ 22 $base = ($atmp[0][0] == '/') ? '/' : ''; 23 24 /* 遍歷包含路徑信息的數(shù)組 */ 25 foreach ($atmp[1] AS $val) 26 { 27 if ('' != $val) 28 { 29 $base .= $val; 30 31 if ('..' == $val || '.' == $val) 32 { 33 /* 如果目錄為.或者..則直接補/繼續(xù)下一個循環(huán) */ 34 $base .= '/'; 35 36 continue; 37 } 38 } 39 else 40 { 41 continue; 42 } 43 44 $base .= '/'; 45 46 if (!file_exists($base)) 47 { 48 /* 嘗試創(chuàng)建目錄,如果創(chuàng)建失敗則繼續(xù)循環(huán) */ 49 if (@mkdir(rtrim($base, '/'), 0777)) 50 { 51 @chmod($base, 0777); 52 $reval = true; 53 } 54 } 55 } 56 } 57 else 58 { 59 /* 路徑已經存在。返回該路徑是不是一個目錄 */ 60 $reval = is_dir($folder); 61 } 62 63 clearstatcache(); 64 65 return $reval; 66 } View Code

9、獲得系統(tǒng)是否啟用了 gzip

1 /**2 * 獲得系統(tǒng)是否啟用了 gzip3 *4 * @access public5 *6 * @return boolean7 */8 function gzip_enabled()9 { 10 static $enabled_gzip = NULL; 11 12 if ($enabled_gzip === NULL) 13 { 14 $enabled_gzip = ($GLOBALS['_CFG']['enable_gzip'] && function_exists('ob_gzhandler')); 15 } 16 17 return $enabled_gzip; 18 } View Code

10、遞歸方式的對變量中的特殊字符進行轉義

1 /**2 * 遞歸方式的對變量中的特殊字符進行轉義3 *4 * @access public5 * @param mix $value6 *7 * @return mix8 */9 function addslashes_deep($value) 10 { 11 if (empty($value)) 12 { 13 return $value; 14 } 15 else 16 { 17 return is_array($value) ? array_map('addslashes_deep', $value) : addslashes($value); 18 } 19 } View Code

11、將對象成員變量或者數(shù)組的特殊字符進行轉

1 /**2 * 將對象成員變量或者數(shù)組的特殊字符進行轉義3 *4 * @access public5 * @param mix $obj 對象或者數(shù)組6 * @author Xuan Yan7 *8 * @return mix 對象或者數(shù)組9 */ 10 function addslashes_deep_obj($obj) 11 { 12 if (is_object($obj) == true) 13 { 14 foreach ($obj AS $key => $val) 15 { 16 $obj->$key = addslashes_deep($val); 17 } 18 } 19 else 20 { 21 $obj = addslashes_deep($obj); 22 } 23 24 return $obj; 25 } View Code

12、遞歸方式的對變量中的特殊字符去除轉義

1 /**2 * 遞歸方式的對變量中的特殊字符去除轉義3 *4 * @access public5 * @param mix $value6 *7 * @return mix8 */9 function stripslashes_deep($value) 10 { 11 if (empty($value)) 12 { 13 return $value; 14 } 15 else 16 { 17 return is_array($value) ? array_map('stripslashes_deep', $value) : stripslashes($value); 18 } 19 } View Code

13、將一個字串中含有全角的數(shù)字字符、字母、空格或'%+-()'字符轉換為相應半角字符

1 /**2 * 將一個字串中含有全角的數(shù)字字符、字母、空格或'%+-()'字符轉換為相應半角字符3 *4 * @access public5 * @param string $str 待轉換字串6 *7 * @return string $str 處理后字串8 */9 function make_semiangle($str) 10 { 11 $arr = array('0' => '0', '1' => '1', '2' => '2', '3' => '3', '4' => '4', 12 '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9', 13 'A' => 'A', 'B' => 'B', 'C' => 'C', 'D' => 'D', 'E' => 'E', 14 'F' => 'F', 'G' => 'G', 'H' => 'H', 'I' => 'I', 'J' => 'J', 15 'K' => 'K', 'L' => 'L', 'M' => 'M', 'N' => 'N', 'O' => 'O', 16 'P' => 'P', 'Q' => 'Q', 'R' => 'R', 'S' => 'S', 'T' => 'T', 17 'U' => 'U', 'V' => 'V', 'W' => 'W', 'X' => 'X', 'Y' => 'Y', 18 'Z' => 'Z', 'a' => 'a', 'b' => 'b', 'c' => 'c', 'd' => 'd', 19 'e' => 'e', 'f' => 'f', 'g' => 'g', 'h' => 'h', 'i' => 'i', 20 'j' => 'j', 'k' => 'k', 'l' => 'l', 'm' => 'm', 'n' => 'n', 21 'o' => 'o', 'p' => 'p', 'q' => 'q', 'r' => 'r', 's' => 's', 22 't' => 't', 'u' => 'u', 'v' => 'v', 'w' => 'w', 'x' => 'x', 23 'y' => 'y', 'z' => 'z', 24 '(' => '(', ')' => ')', '〔' => '[', '〕' => ']', '【' => '[', 25 '】' => ']', '〖' => '[', '〗' => ']', '“' => '[', '”' => ']', 26 '‘' => '[', '’' => ']', '{' => '{', '}' => '}', '《' => '<', 27 '》' => '>', 28 '%' => '%', '+' => '+', '—' => '-', '-' => '-', '~' => '-', 29 ':' => ':', '。' => '.', '、' => ',', ',' => '.', '、' => '.', 30 ';' => ',', '?' => '?', '!' => '!', '…' => '-', '‖' => '|', 31 '”' => '"', '’' => '`', '‘' => '`', '|' => '|', '〃' => '"', 32 ' ' => ' '); 33 34 return strtr($str, $arr); 35 } View Code

14、?過濾用戶輸入的基本數(shù)據(jù),防止script攻擊

1 /**2 * 過濾用戶輸入的基本數(shù)據(jù),防止script攻擊3 *4 * @access public5 * @return string6 */7 function compile_str($str)8 {9 $arr = array('<' => '<', '>' => '>'); 10 11 return strtr($str, $arr); 12 } View Code

15、檢查文件類型

1 /**2 * 檢查文件類型3 *4 * @access public5 * @param string filename 文件名6 * @param string realname 真實文件名7 * @param string limit_ext_types 允許的文件類型8 * @return string9 */10 function check_file_type($filename, $realname = '', $limit_ext_types = '')11 {12 if ($realname)13 {14 $extname = strtolower(substr($realname, strrpos($realname, '.') + 1));15 }16 else17 {18 $extname = strtolower(substr($filename, strrpos($filename, '.') + 1));19 }20 21 if ($limit_ext_types && stristr($limit_ext_types, '|' . $extname . '|') === false)22 {23 return '';24 }25 26 $str = $format = '';27 28 $file = @fopen($filename, 'rb');29 if ($file)30 {31 $str = @fread($file, 0x400); // 讀取前 1024 個字節(jié)32 @fclose($file);33 }34 else35 {36 if (stristr($filename, ROOT_PATH) === false)37 {38 if ($extname == 'jpg' || $extname == 'jpeg' || $extname == 'gif' || $extname == 'png' || $extname == 'doc' ||39 $extname == 'xls' || $extname == 'txt' || $extname == 'zip' || $extname == 'rar' || $extname == 'ppt' ||40 $extname == 'pdf' || $extname == 'rm' || $extname == 'mid' || $extname == 'wav' || $extname == 'bmp' ||41 $extname == 'swf' || $extname == 'chm' || $extname == 'sql' || $extname == 'cert'|| $extname == 'pptx' || 42 $extname == 'xlsx' || $extname == 'docx')43 {44 $format = $extname;45 }46 }47 else48 {49 return '';50 }51 }52 53 if ($format == '' && strlen($str) >= 2 )54 {55 if (substr($str, 0, 4) == 'MThd' && $extname != 'txt')56 {57 $format = 'mid';58 }59 elseif (substr($str, 0, 4) == 'RIFF' && $extname == 'wav')60 {61 $format = 'wav';62 }63 elseif (substr($str ,0, 3) == "\xFF\xD8\xFF")64 {65 $format = 'jpg';66 }67 elseif (substr($str ,0, 4) == 'GIF8' && $extname != 'txt')68 {69 $format = 'gif';70 }71 elseif (substr($str ,0, 8) == "\x89\x50\x4E\x47\x0D\x0A\x1A\x0A")72 {73 $format = 'png';74 }75 elseif (substr($str ,0, 2) == 'BM' && $extname != 'txt')76 {77 $format = 'bmp';78 }79 elseif ((substr($str ,0, 3) == 'CWS' || substr($str ,0, 3) == 'FWS') && $extname != 'txt')80 {81 $format = 'swf';82 }83 elseif (substr($str ,0, 4) == "\xD0\xCF\x11\xE0")84 { // D0CF11E == DOCFILE == Microsoft Office Document85 if (substr($str,0x200,4) == "\xEC\xA5\xC1\x00" || $extname == 'doc')86 {87 $format = 'doc';88 }89 elseif (substr($str,0x200,2) == "\x09\x08" || $extname == 'xls')90 {91 $format = 'xls';92 } elseif (substr($str,0x200,4) == "\xFD\xFF\xFF\xFF" || $extname == 'ppt')93 {94 $format = 'ppt';95 }96 } elseif (substr($str ,0, 4) == "PK\x03\x04")97 {98 if (substr($str,0x200,4) == "\xEC\xA5\xC1\x00" || $extname == 'docx')99 { 100 $format = 'docx'; 101 } 102 elseif (substr($str,0x200,2) == "\x09\x08" || $extname == 'xlsx') 103 { 104 $format = 'xlsx'; 105 } elseif (substr($str,0x200,4) == "\xFD\xFF\xFF\xFF" || $extname == 'pptx') 106 { 107 $format = 'pptx'; 108 }else 109 { 110 $format = 'zip'; 111 } 112 } elseif (substr($str ,0, 4) == 'Rar!' && $extname != 'txt') 113 { 114 $format = 'rar'; 115 } elseif (substr($str ,0, 4) == "\x25PDF") 116 { 117 $format = 'pdf'; 118 } elseif (substr($str ,0, 3) == "\x30\x82\x0A") 119 { 120 $format = 'cert'; 121 } elseif (substr($str ,0, 4) == 'ITSF' && $extname != 'txt') 122 { 123 $format = 'chm'; 124 } elseif (substr($str ,0, 4) == "\x2ERMF") 125 { 126 $format = 'rm'; 127 } elseif ($extname == 'sql') 128 { 129 $format = 'sql'; 130 } elseif ($extname == 'txt') 131 { 132 $format = 'txt'; 133 } 134 } 135 136 if ($limit_ext_types && stristr($limit_ext_types, '|' . $format . '|') === false) 137 { 138 $format = ''; 139 } 140 141 return $format; 142 } View Code

16、對 MYSQL LIKE 的內容進行轉義

1 /**2 * 對 MYSQL LIKE 的內容進行轉義3 *4 * @access public5 * @param string string 內容6 * @return string7 */8 function mysql_like_quote($str)9 { 10 return strtr($str, array("\\\\" => "\\\\\\\\", '_' => '\_', '%' => '\%', "\'" => "\\\\\'")); 11 } View Code

17、獲取服務器的ip

1 /**2 * 獲取服務器的ip3 *4 * @access public5 *6 * @return string7 **/8 function real_server_ip()9 { 10 static $serverip = NULL; 11 12 if ($serverip !== NULL) 13 { 14 return $serverip; 15 } 16 17 if (isset($_SERVER)) 18 { 19 if (isset($_SERVER['SERVER_ADDR'])) 20 { 21 $serverip = $_SERVER['SERVER_ADDR']; 22 } 23 else 24 { 25 $serverip = '0.0.0.0'; 26 } 27 } 28 else 29 { 30 $serverip = getenv('SERVER_ADDR'); 31 } 32 33 return $serverip; 34 } View Code

18、自定義 header 函數(shù),用于過濾可能出現(xiàn)的安全隱患

1 /**2 * 自定義 header 函數(shù),用于過濾可能出現(xiàn)的安全隱患3 *4 * @param string string 內容5 *6 * @return void7 **/8 function ecs_header($string, $replace = true, $http_response_code = 0)9 {10 if (strpos($string, '../upgrade/index.php') === 0)11 {12 echo '<script type="text/javascript">window.location.href="' . $string . '";</script>';13 }14 $string = str_replace(array("\r", "\n"), array('', ''), $string);15 16 if (preg_match('/^\s*location:/is', $string))17 {18 @header($string . "\n", $replace);19 20 exit();21 }22 23 if (empty($http_response_code) || PHP_VERSION < '4.3')24 {25 @header($string, $replace);26 }27 else28 {29 @header($string, $replace, $http_response_code);30 }31 }32 33 function ecs_iconv($source_lang, $target_lang, $source_string = '')34 {35 static $chs = NULL;36 37 /* 如果字符串為空或者字符串不需要轉換,直接返回 */38 if ($source_lang == $target_lang || $source_string == '' || preg_match("/[\x80-\xFF]+/", $source_string) == 0)39 {40 return $source_string;41 }42 43 if ($chs === NULL)44 {45 require_once(ROOT_PATH . 'includes/cls_iconv.php');46 $chs = new Chinese(ROOT_PATH);47 }48 49 return $chs->Convert($source_lang, $target_lang, $source_string);50 }51 52 function ecs_geoip($ip)53 {54 static $fp = NULL, $offset = array(), $index = NULL;55 56 $ip = gethostbyname($ip);57 $ipdot = explode('.', $ip);58 $ip = pack('N', ip2long($ip));59 60 $ipdot[0] = (int)$ipdot[0];61 $ipdot[1] = (int)$ipdot[1];62 if ($ipdot[0] == 10 || $ipdot[0] == 127 || ($ipdot[0] == 192 && $ipdot[1] == 168) || ($ipdot[0] == 172 && ($ipdot[1] >= 16 && $ipdot[1] <= 31)))63 {64 return 'LAN';65 }66 67 if ($fp === NULL)68 {69 $fp = fopen(ROOT_PATH . 'includes/codetable/ipdata.dat', 'rb');70 if ($fp === false)71 {72 return 'Invalid IP data file';73 }74 $offset = unpack('Nlen', fread($fp, 4));75 if ($offset['len'] < 4)76 {77 return 'Invalid IP data file';78 }79 $index = fread($fp, $offset['len'] - 4);80 }81 82 $length = $offset['len'] - 1028;83 $start = unpack('Vlen', $index[$ipdot[0] * 4] . $index[$ipdot[0] * 4 + 1] . $index[$ipdot[0] * 4 + 2] . $index[$ipdot[0] * 4 + 3]);84 for ($start = $start['len'] * 8 + 1024; $start < $length; $start += 8)85 {86 if ($index{$start} . $index{$start + 1} . $index{$start + 2} . $index{$start + 3} >= $ip)87 {88 $index_offset = unpack('Vlen', $index{$start + 4} . $index{$start + 5} . $index{$start + 6} . "\x0");89 $index_length = unpack('Clen', $index{$start + 7});90 break;91 }92 }93 94 fseek($fp, $offset['len'] + $index_offset['len'] - 1024);95 $area = fread($fp, $index_length['len']);96 97 fclose($fp);98 $fp = NULL;99 100 return $area; 101 } View Code

19、去除字符串右側可能出現(xiàn)的亂碼

1 /**2 * 去除字符串右側可能出現(xiàn)的亂碼3 *4 * @param string $str 字符串5 *6 * @return string7 */8 function trim_right($str)9 { 10 $len = strlen($str); 11 /* 為空或單個字符直接返回 */ 12 if ($len == 0 || ord($str{$len-1}) < 127) 13 { 14 return $str; 15 } 16 /* 有前導字符的直接把前導字符去掉 */ 17 if (ord($str{$len-1}) >= 192) 18 { 19 return substr($str, 0, $len-1); 20 } 21 /* 有非獨立的字符,先把非獨立字符去掉,再驗證非獨立的字符是不是一個完整的字,不是連原來前導字符也截取掉 */ 22 $r_len = strlen(rtrim($str, "\x80..\xBF")); 23 if ($r_len == 0 || ord($str{$r_len-1}) < 127) 24 { 25 return sub_str($str, 0, $r_len); 26 } 27 28 $as_num = ord(~$str{$r_len -1}); 29 if ($as_num > (1<<(6 + $r_len - $len))) 30 { 31 return $str; 32 } 33 else 34 { 35 return substr($str, 0, $r_len-1); 36 } 37 } View Code

20、將上傳文件轉移到指定位置

1 /**2 * 將上傳文件轉移到指定位置3 *4 * @param string $file_name5 * @param string $target_name6 * @return blog7 */8 function move_upload_file($file_name, $target_name = '')9 { 10 if (function_exists("move_uploaded_file")) 11 { 12 if (move_uploaded_file($file_name, $target_name)) 13 { 14 @chmod($target_name,0755); 15 return true; 16 } 17 else if (copy($file_name, $target_name)) 18 { 19 @chmod($target_name,0755); 20 return true; 21 } 22 } 23 elseif (copy($file_name, $target_name)) 24 { 25 @chmod($target_name,0755); 26 return true; 27 } 28 return false; 29 } View Code

21、將JSON傳遞的參數(shù)轉碼

1 /**2 * 將JSON傳遞的參數(shù)轉碼3 *4 * @param string $str5 * @return string6 */7 function json_str_iconv($str)8 {9 if (EC_CHARSET != 'utf-8') 10 { 11 if (is_string($str)) 12 { 13 return addslashes(stripslashes(ecs_iconv('utf-8', EC_CHARSET, $str))); 14 } 15 elseif (is_array($str)) 16 { 17 foreach ($str as $key => $value) 18 { 19 $str[$key] = json_str_iconv($value); 20 } 21 return $str; 22 } 23 elseif (is_object($str)) 24 { 25 foreach ($str as $key => $value) 26 { 27 $str->$key = json_str_iconv($value); 28 } 29 return $str; 30 } 31 else 32 { 33 return $str; 34 } 35 } 36 return $str; 37 } View Code

22、循環(huán)轉碼成utf8內容

1 /**2 * 循環(huán)轉碼成utf8內容3 *4 * @param string $str5 * @return string6 */7 function to_utf8_iconv($str)8 {9 if (EC_CHARSET != 'utf-8') 10 { 11 if (is_string($str)) 12 { 13 return ecs_iconv(EC_CHARSET, 'utf-8', $str); 14 } 15 elseif (is_array($str)) 16 { 17 foreach ($str as $key => $value) 18 { 19 $str[$key] = to_utf8_iconv($value); 20 } 21 return $str; 22 } 23 elseif (is_object($str)) 24 { 25 foreach ($str as $key => $value) 26 { 27 $str->$key = to_utf8_iconv($value); 28 } 29 return $str; 30 } 31 else 32 { 33 return $str; 34 } 35 } 36 return $str; 37 } View Code

23、獲取文件后綴名,并判斷是否合法

1 /**2 * 獲取文件后綴名,并判斷是否合法3 *4 * @param string $file_name5 * @param array $allow_type6 * @return blob7 */8 function get_file_suffix($file_name, $allow_type = array())9 { 10 $file_suffix = strtolower(array_pop(explode('.', $file_name))); 11 if (empty($allow_type)) 12 { 13 return $file_suffix; 14 } 15 else 16 { 17 if (in_array($file_suffix, $allow_type)) 18 { 19 return true; 20 } 21 else 22 { 23 return false; 24 } 25 } 26 } View Code

24、?讀結果緩存文件

1 /**2 * 讀結果緩存文件3 *4 * @params string $cache_name5 *6 * @return array $data7 */8 function read_static_cache($cache_name)9 { 10 if ((DEBUG_MODE & 2) == 2) 11 { 12 return false; 13 } 14 static $result = array(); 15 if (!empty($result[$cache_name])) 16 { 17 return $result[$cache_name]; 18 } 19 $cache_file_path = ROOT_PATH . '/temp/static_caches/' . $cache_name . '.php'; 20 if (file_exists($cache_file_path)) 21 { 22 include_once($cache_file_path); 23 $result[$cache_name] = $data; 24 return $result[$cache_name]; 25 } 26 else 27 { 28 return false; 29 } 30 } View Code

25、?寫結果緩存文件

1 /**2 * 寫結果緩存文件3 *4 * @params string $cache_name5 * @params string $caches6 *7 * @return8 */9 function write_static_cache($cache_name, $caches) 10 { 11 if ((DEBUG_MODE & 2) == 2) 12 { 13 return false; 14 } 15 $cache_file_path = ROOT_PATH . '/temp/static_caches/' . $cache_name . '.php'; 16 $content = "<?php\r\n"; 17 $content .= "\$data = " . var_export($caches, true) . ";\r\n"; 18 $content .= "?>"; 19 file_put_contents($cache_file_path, $content, LOCK_EX); 20 } View Code

總結

以上是生活随笔為你收集整理的史上最全的PHP常用函数大全,不看看你就out了(还会不断更新哦!)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

超碰在线最新地址 | 97在线视| 日韩免费二区 | 久久天天躁夜夜躁狠狠85麻豆 | 97国产在线观看 | 亚洲丁香日韩 | 婷婷色在线观看 | 狠狠躁18三区二区一区ai明星 | 久久久久www | 日韩免费视频观看 | 日韩三级视频在线观看 | 国产韩国日本高清视频 | 狠狠色丁香婷婷综合久小说久 | 十八岁免进欧美 | 天天色宗合 | 国产午夜精品理论片在线 | 国产精品涩涩屋www在线观看 | 五月婷婷开心 | 99精品国产高清在线观看 | 一区二区三区视频在线 | 99久久er热在这里只有精品15 | 美女啪啪图片 | 国产精品久久久久久麻豆一区 | 91免费在线播放 | 中文字幕在线观看免费观看 | 国产一级黄大片 | 精品一区二区综合 | 成人午夜片av在线看 | aa级黄色大片 | 欧美精品久久久久久久久久 | 久久亚洲国产精品 | 国产精品高清在线观看 | 久久综合九色欧美综合狠狠 | 欧美日韩在线播放 | 99视频精品全国免费 | 亚洲精品国偷自产在线99热 | 亚洲激情久久 | 韩国av免费在线 | av女优中文字幕在线观看 | 国产高清无av久久 | 国色天香在线 | 91精品一区在线观看 | 在线免费视频 你懂得 | 91私密视频 | 伊人影院av | 免费在线黄色av | 天堂久久电影网 | 黄色影院在线免费观看 | 一区二区欧美在线观看 | 久草影视在线观看 | 久草视频在线观 | 99在线观看精品 | 九九热有精品 | 国产精品密入口果冻 | 成人国产精品久久久久久亚洲 | 青草视频网 | 黄色av一区二区 | 九九九在线 | 天天操人人干 | 免费亚洲成人 | 日日夜色| 国产精品黄色 | 中文字幕av在线电影 | 欧美在线99 | 一区 二区 精品 | 婷婷久月 | 久久久精品国产一区二区 | 日一日操一操 | 中文在线a在线 | 中文字幕国语官网在线视频 | 日韩三级视频 | 国产精品久久久久久模特 | 国产婷婷精品 | 午夜电影中文字幕 | 国产一区二区久久精品 | 午夜精品久久久久久久久久久久 | 在线v片| 午夜精品久久久久久久久久久 | 懂色av懂色av粉嫩av分享吧 | 在线色吧 | 激情婷婷久久 | 99热999| 国产精品99久久久久久久久 | 五月黄色 | 亚洲天堂精品视频在线观看 | 五月婷婷视频 | 欧美精品乱码久久久久 | www.在线观看av| 日韩欧美一区视频 | 国际精品久久久久 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 操夜夜操| 欧美视频日韩 | 日韩午夜高清 | 色一级片 | 美女视频久久久 | 国产一级电影 | 91精品国产91久久久久久三级 | 夜色成人av | 亚洲精品99久久久久中文字幕 | 久草国产精品 | 国产一级在线播放 | 黄色91在线| 激情亚洲综合在线 | 亚洲另类久久 | 一区二区三区www | 欧美一级电影片 | 国产黄在线免费观看 | 激情综合网五月激情 | 91香蕉国产在线观看软件 | 久热久草 | 欧美-第1页-屁屁影院 | 天天曰夜夜操 | 免费在线a | 久久免费视频网站 | 久久综合色天天久久综合图片 | 日本不卡视频 | 亚洲四虎影院 | 国内精品久久久久久久影视麻豆 | 中文字幕免费播放 | 九九热1 | 国产高清在线免费视频 | 99免费看片 | 青草视频在线免费 | 黄色成人小视频 | 在线观看日韩av | 欧美日韩精品在线观看视频 | 日日夜夜婷婷 | av成人在线电影 | 色婷婷av国产精品 | 国产亚洲在线 | 美女av免费 | 久草观看视频 | 91黄色小网站| 国偷自产中文字幕亚洲手机在线 | 亚洲美女在线一区 | 日韩欧美一区二区三区在线观看 | 992tv又爽又黄的免费视频 | 久久精选| 国产精品久久久久av | 久久久在线免费观看 | 天天操夜 | 成人网在线免费视频 | 国产日韩精品在线 | 日韩久久久久久久久久 | 中文字幕 国产视频 | 欧美极品xxx| 亚洲精品免费在线播放 | 国产香蕉久久 | 日韩av成人在线观看 | 中文字幕在线免费观看视频 | 久草在线资源视频 | 成人av影院在线观看 | av福利在线看 | 狠狠干2018| 久久艹国产 | 国产亚洲精品久久久网站好莱 | 美女黄色网在线播放 | 81国产精品久久久久久久久久 | 欧美午夜久久久 | 99久久精品国产欧美主题曲 | 天天夜夜亚洲 | 久久黄色网址 | 久久综合久久综合这里只有精品 | 日韩免费福利 | 成人免费视频在线观看 | 91亚洲夫妻 | 色视频网站免费观看 | 伊人天天干 | 国产精品国产三级国产aⅴ无密码 | av一级免费| 97视频总站 | 福利电影一区二区 | 国产精品成久久久久三级 | 欧美在线视频二区 | 亚洲精品99 | 久久成人高清视频 | 91精品免费看 | 麻豆传媒视频在线 | 久久高清视频免费 | 久久久久久久久久免费 | 国产精品一区二区果冻传媒 | 国产91全国探花系列在线播放 | 国产精品视频免费 | 国产又粗又猛又黄视频 | 婷婷色网址 | 中文av字幕在线观看 | 亚洲天天草 | 国产精品大片在线观看 | 国产精品破处视频 | 日韩有码中文字幕在线 | 蜜臀久久99精品久久久久久网站 | 在线三级av| 国产国语在线 | 日本午夜免费福利视频 | www.777奇米 | 中文在线免费观看 | 久久久久久草 | 中文字幕在线播放av | 99精品国产在热久久 | 免费精品国产 | 在线观看一区二区精品 | 精品国产免费久久 | 天堂激情网 | 亚洲激情p| 中文字幕av在线免费 | av观看在线观看 | 国产精品一区二区三区电影 | 亚洲一区二区黄色 | 麻豆国产网站入口 | 国产伦精品一区二区三区高清 | 三级午夜片 | 天天插天天射 | 久久伦理 | 91成人小视频 | 97电影手机版 | 精品国产成人 | 人人干人人干人人干 | 国产黄色大全 | 日日天天狠狠 | 色永久免费视频 | 黄色午夜 | 97夜夜澡人人双人人人喊 | 亚洲最新合集 | 亚洲片在线资源 | 中文在线a∨在线 | 日韩精品2区 | 亚洲精品88欧美一区二区 | 干干干操操操 | 在线国产视频观看 | 久久久久久久久久亚洲精品 | 午夜久久久精品 | 玖草在线观看 | 黄色视屏免费在线观看 | 草久久影院 | 久久美女免费视频 | 天天综合导航 | 国产精品一区二区免费视频 | 国产最顶级的黄色片在线免费观看 | 久久精品在线视频 | 久久伊人综合 | 欧洲色综合 | 精品一区二区在线播放 | 日本字幕网 | 91精品视频播放 | 狠狠的操狠狠的干 | 天天操夜夜曰 | 久久免费福利 | 亚洲精品成人网 | 人人爱在线视频 | 97在线观看视频免费 | 亚洲女欲精品久久久久久久18 | 天天干人人插 | 久久久麻豆精品一区二区 | 久久亚洲热 | 国产福利一区二区三区视频 | 久久久久久久国产精品视频 | 国产一级二级视频 | 欧美激情综合五月色丁香 | av夜夜操| 日韩在线观看中文字幕 | 欧美性久久久 | 热久久影视 | 天天色中文 | 91久久丝袜国产露脸动漫 | wwwwww国产 | av资源网在线播放 | 国产第一页在线观看 | 一区二区三区在线免费观看视频 | 日韩视频二区 | 中文字幕在线视频第一页 | 国产精品孕妇 | 97成人在线观看视频 | 国产一区二区三区久久久 | 国内精品久久久久久久影视麻豆 | 美女网站视频色 | 国产亚洲精品久久久久久无几年桃 | 精品超碰 | 一级性视频| 天天舔夜夜操 | 精品一区二区三区四区在线 | 久久神马影院 | 青青河边草免费直播 | 在线观看日韩视频 | 日韩av高清| 黄色91免费观看 | 日本黄色免费在线 | www久久| 久久在线一区 | 天天操天天操天天爽 | 国产一区在线播放 | 色婷婷综合视频在线观看 | 久久美女视频 | 六月丁香久久 | 色91在线视频 | 国产久草在线观看 | 麻豆国产露脸在线观看 | 日韩精品一区二区免费 | 国产高清免费视频 | 天天爱天天射天天干天天 | 人人插人人舔 | 97视频在线观看成人 | 欧美激情在线看 | 精品亚洲免费 | 免费看成年人 | 激情视频一区二区三区 | 成人一级片在线观看 | 日本性生活一级片 | 久久国产综合视频 | 国产精品久久久久久久久久99 | 中文字幕精品一区二区精品 | 欧美精品一级视频 | 亚洲激情影院 | 色网站在线 | 国产精品久久久久久久久久99 | 精品国产_亚洲人成在线 | avav99| 亚洲成人欧美 | 91视频高清免费 | 成年人在线免费视频观看 | 狠狠成人 | 欧美一级性生活视频 | 日韩精选在线 | 美女又爽又黄 | 色狠狠狠 | 狠狠色丁香九九婷婷综合五月 | 国产亚洲精品久久网站 | 日韩欧美亚州 | 性日韩欧美在线视频 | 日韩高清一二三区 | 欧美日韩在线免费观看视频 | 国产精品免费看久久久8精臀av | 国产成人免费av电影 | 久久xx视频 | 欧美日韩免费一区 | 永久av免费在线观看 | 丁香综合av| 国产精品久久久久久久av大片 | 国产精品久久久久久久婷婷 | 五月婷婷综合激情 | 久久天天操 | 国产69久久精品成人看 | 久久九九免费 | 在线观看中文字幕av | 人人澡超碰碰 | 黄色三级网站 | 国产在线一区观看 | 在线视频精品 | 97色在线视频| 精品久久久亚洲 | 亚洲精品视频在线观看免费视频 | 欧美一级黄色视屏 | 国产精品永久免费在线 | 亚洲最新视频在线 | 免费观看成人网 | 狠狠的日日 | 手机在线永久免费观看av片 | 人人添人人澡人人澡人人人爽 | 成人午夜片av在线看 | 日韩有码中文字幕在线 | 日韩黄色免费看 | 成人午夜电影网站 | 91麻豆.com| 中文字幕资源在线 | 欧美一区二区三区在线播放 | 九热在线 | 久久精品国产免费 | 99久久久国产免费 | 亚洲乱码在线观看 | 五月天最新网址 | 免费无遮挡动漫网站 | 色婷婷国产 | 少妇高潮流白浆在线观看 | 日本精品二区 | 国产精品网红直播 | 综合五月 | 2023年中文无字幕文字 | 在线观看免费高清视频大全追剧 | av青草 | 久久精品理论 | 日韩成人在线免费观看 | 伊人婷婷久久 | 精品a在线| 狠狠操.com| 色播五月激情综合网 | 国产剧情在线一区 | 日韩在线字幕 | 日韩欧美在线播放 | 欧洲一区二区三区精品 | 国产精品手机播放 | 国产精品永久久久久久久www | 99精品一区 | 天天干天天操天天拍 | 一区二区三区精品久久久 | 91粉色视频 | www.久久久精品 | 婷婷丁香视频 | 免费手机黄色网址 | 激情视频综合网 | 精品中文字幕在线播放 | 日日综合 | 日韩免费在线 | 91av免费观看| 亚洲欧美日韩国产精品一区午夜 | 国产精品18久久久久vr手机版特色 | www.夜色321.com | av线上看 | 精品二区久久 | 香蕉蜜桃视频 | 一区二区 不卡 | 在线黄色av电影 | 国产视频1 | 福利一区在线 | 91精品国产福利在线观看 | 欧美久久久久久久久久久 | 五月开心婷婷 | 午夜久久久久久久 | 激情五月婷婷丁香 | 视频成人永久免费视频 | 日韩av在线免费看 | 国产原厂视频在线观看 | 黄色毛片网站在线观看 | 中文字幕制服丝袜av久久 | 狠狠狠色丁香婷婷综合久久88 | 日韩av三区 | 狠狠色狠狠色综合日日小说 | 在线观看视频黄 | 国产精品理论片在线播放 | 国产精品女人久久久久久 | 人人干人人做 | 国产精品自拍在线 | 欧美精品乱码99久久影院 | 九九色网| 欧美一级片 | 欧美午夜精品久久久久久浪潮 | www.av免费| 日韩av一区二区在线 | 中文视频在线 | 视频精品一区二区三区 | 国产精品成人自产拍在线观看 | 91看片在线播放 | 色婷婷激情五月 | 亚洲国产精品一区二区尤物区 | 欧美色操 | 天天干天天草天天爽 | 99热这里是精品 | 黄色网大全| 日韩在线视频播放 | 狠狠色丁香婷婷综合最新地址 | 亚洲无人区小视频 | 欧美精品久久久久久久 | 成人黄色视 | 99精品在线直播 | 久久综合五月天婷婷伊人 | 国产传媒一区在线 | 国产在线a| 欧洲不卡av| 国产91小视频| 天天人人综合 | 国产成人不卡 | 黄色精品一区 | 成人丝袜 | 亚洲精品国产成人av在线 | 婷婷丁香视频 | 99视频一区二区 | 国产精品久久久久久久久久久杏吧 | 午夜精品视频在线 | 激情深爱.com | 91久久精品一区二区二区 | 久久高清免费视频 | 精品国产黄色片 | 中文字幕色网站 | 欧美日韩视频在线观看一区二区 | 国产麻豆精品在线观看 | 欧美成天堂网地址 | 五月激情丁香图片 | 免费看一级一片 | 国产成人精品久久二区二区 | 亚洲涩涩涩 | 国产免费一区二区三区最新6 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 久久久久国产成人免费精品免费 | 成人a视频 | 激情婷婷网 | 在线 视频 一区二区 | 97成人在线观看 | 欧美成人69av| 国产裸体无遮挡 | 欧美日韩中文国产一区发布 | 国产最新精品视频 | 欧美不卡视频在线 | 免费黄色av片 | 免费看污黄网站 | 蜜臀av性久久久久蜜臀av | 久久99精品久久久久久清纯直播 | 中文字幕一二三区 | 国产午夜视频在线观看 | 久久99国产精品视频 | 91免费高清视频 | 久久免费视频5 | 国产成人精品免费在线观看 | 午夜精品影院 | 国产精品入口久久 | 婷婷丁香激情 | 色婷婷狠 | 成人国产精品av | 亚洲视频综合在线 | 97人人添人澡人人爽超碰动图 | 丁香五月亚洲综合在线 | .国产精品成人自产拍在线观看6 | www.夜夜操.com| 园产精品久久久久久久7电影 | 丁香5月婷婷久久 | 热九九精品 | 91禁在线观看 | 亚洲欧洲av | 99在线精品观看 | 蜜臀av在线一区二区三区 | 欧美激情xxxx性bbbb | 日韩电影在线一区二区 | 三级黄色片在线观看 | 成片视频在线观看 | aaawww| 毛片888 | 婷婷成人亚洲综合国产xv88 | 欧洲精品二区 | 四虎影视成人永久免费观看亚洲欧美 | 免费观看国产成人 | 日韩一区二区三区观看 | 国产99爱 | 久久国产精品色av免费看 | 日韩美女av在线 | 国产精品久久av | 亚洲传媒在线 | 久久久久成人精品 | 国产欧美日韩精品一区二区免费 | 久久伊人精品天天 | 97视频网址 | 亚洲高清色综合 | 97人人模人人爽人人喊中文字 | 国产亚洲精品久久久久久大师 | 久久免费福利 | 青青草国产成人99久久 | 亚洲国产成人久久 | 久草精品视频 | 91在线色 | 精选久久 | 久色网 | 久草视频精品 | 亚洲国产丝袜在线观看 | 色综合久久久网 | 中文字幕在线资源 | 91精品国产乱码在线观看 | 在线成人一区二区 | 手机av在线网站 | 91日韩精品视频 | 在线播放视频一区 | 亚洲影视九九影院在线观看 | 免费视频一级片 | 不卡中文字幕av | 亚洲涩涩一区 | 婷婷色伊人 | 四虎在线免费视频 | 在线观看视频97 | 精品久久久久久综合 | 超碰97.com | 成人 亚洲 欧美 | 欧美一区二区在线免费看 | 久草视频在线新免费 | 日黄网站 | av免费成人 | 波多野结衣在线播放一区 | 国产99一区| 天天操天天透 | 国产在线精品一区二区三区 | 91香蕉国产在线观看软件 | 免费观看国产成人 | 在线播放视频一区 | 96超碰在线 | 日韩一区二区三区高清免费看看 | 久久精品网站视频 | 久久无码av一区二区三区电影网 | 国产精品视频专区 | 夜夜躁狠狠燥 | 在线观看视频福利 | 亚洲视频精品 | 天天射天天舔天天干 | 97成人啪啪网 | 日韩电影中文字幕在线观看 | 超碰97成人 | 国产精品亚洲a | 亚洲激情六月 | 狠狠操在线 | 国产麻豆视频在线观看 | 国产高清黄 | 成人资源在线播放 | 亚洲精品午夜久久久 | 久草在线精品观看 | 深爱五月激情网 | 99精品视频免费观看视频 | 日韩视频免费播放 | 欧美动漫一区二区三区 | 一区二区三区电影在线播 | 在线一二区 | 亚洲精品美女在线观看 | 婷婷网站天天婷婷网站 | 欧美日韩xx | 69久久夜色精品国产69 | 国产精品欧美 | 亚洲三级视频 | 91视频久久久 | 91九色porny在线| 欧美激情综合五月色丁香 | 国产精品第一页在线观看 | 久久久精品国产免费观看一区二区 | 亚洲国产免费看 | 一本一本久久a久久 | 久久久国产一区二区三区四区小说 | 欧美国产视频在线 | 日韩三级免费观看 | 国产超碰97| 91精品免费视频 | 久久久免费av| 热re99久久精品国产66热 | 91亚洲精品国偷拍自产在线观看 | 麻花豆传媒一二三产区 | 亚洲精品乱码久久久久久按摩 | 蜜臀aⅴ国产精品久久久国产 | 国产视频精选 | 一区二区三区福利 | 国产精久久久久久妇女av | 国产99久久久国产精品成人免费 | 少妇bbbb搡bbbb桶 | 日韩3区 | 国产一区 在线播放 | 蜜臀91丨九色丨蝌蚪老版 | 日韩精品在线免费观看 | 亚洲一区精品二人人爽久久 | 色综合夜色一区 | 狠狠88综合久久久久综合网 | 欧美va在线观看 | 夜夜婷婷 | 亚洲国产精品久久久久久 | 草久久影院 | 一区二区三区免费在线 | 欧美专区亚洲专区 | 成片视频免费观看 | 久久99亚洲网美利坚合众国 | 久久国产一区 | 激情综合网天天干 | 国产在线不卡一区 | 天天爱天天操天天干 | 久草网站在线观看 | 国产精品va最新国产精品视频 | 玖玖爱国产在线 | 国产麻豆精品传媒av国产下载 | 久久精品毛片 | 免费在线观看不卡av | 91成人精品在线 | 8x成人免费视频 | 久久久亚洲国产精品麻豆综合天堂 | 日韩精品短视频 | 五月婷婷六月丁香 | 亚洲精品乱码久久久久久久久久 | 国产xxxx| 麻豆视频在线看 | 国产精品视频99 | 国产精品成人在线观看 | 九九免费在线观看视频 | 一区二区三区在线不卡 | 欧美午夜理伦三级在线观看 | 中文国产在线观看 | 亚洲 欧美 91 | 日本动漫做毛片一区二区 | 91麻豆精品久久久久久 | 国产精品成人a免费观看 | 久久视频这里只有精品 | 色多多在线观看 | 日韩欧美在线中文字幕 | 日日插日日干 | 97色在线观看免费视频 | 国产精品嫩草55av | 99午夜| av中文字幕av| 91九色在线视频观看 | 国产成人99久久亚洲综合精品 | 黄色免费电影网站 | 成人a大片 | 色婷五月 | 国产精品麻 | 91网页版免费观看 | 国产一区在线免费 | av不卡中文| 亚洲免费国产 | 久久av电影 | 亚洲五月激情 | 免费看的国产视频网站 | 香蕉视频久久 | 久久久国产精品成人免费 | 玖玖爱国产在线 | 精品国产自在精品国产精野外直播 | 国产高清视频免费最新在线 | 日韩精品视频免费在线观看 | 国产精品video爽爽爽爽 | 在线亚州| 香蕉久久久久 | 亚洲一区二区精品 | 岛国av在线不卡 | 久久免费国产精品 | 91精品福利在线 | 天天曰 | 国产自在线观看 | 色老板在线视频 | 最近高清中文在线字幕在线观看 | 国产精品18久久久久久久网站 | 欧美日韩二区在线 | 日韩一级成人av | 国产成人777777 | 在线观看亚洲国产精品 | 国产精品久久久久久超碰 | 日韩欧美视频一区二区 | 摸bbb搡bbb搡bbbb | 激情综合网在线观看 | 超碰国产在线观看 | 国模视频一区二区 | 国产精品丝袜 | 操操操操网 | 精品久久久久国产免费第一页 | 狠狠干成人综合网 | 97在线看 | 日韩欧美在线第一页 | 欧美精品久久久久 | 深爱婷婷激情 | 国产亚洲在线视频 | 国产小视频在线 | 天天操狠狠操夜夜操 | 在线国产小视频 | 欧美最猛性xxxxx免费 | 在线观看的a站 | 免费看黄色大全 | 五月婷婷丁香网 | 久久久久免费观看 | 麻豆视频在线免费看 | 超碰夜夜| 欧美午夜一区二区福利视频 | 亚洲综合一区二区精品导航 | 午夜a区 | 久久五月情影视 | 久免费视频 | 国产护士hd高朝护士1 | 国产网红在线 | 国产精品美女久久久久久网站 | 97超碰人人爱 | 四虎永久免费网站 | av黄色在线观看 | 精品伦理一区二区三区 | 国产一区免费在线观看 | 免费在线国产 | 五月天天色 | 久久免费观看视频 | 91高清免费观看 | 中文字幕观看在线 | 日韩av中文 | 天天插天天色 | 国产一性一爱一乱一交 | 午夜久久久精品 | www.久久久久| 毛片一区二区 | 精品国模一区二区三区 | 亚洲欧美日韩国产一区二区三区 | 色诱亚洲精品久久久久久 | 中文字幕传媒 | 97视频亚洲 | 超碰日韩在线 | 天天色天天射综合网 | 欧美久久久久久久久久久久久 | 午夜精品久久久久久久久久 | 欧美日韩精品在线观看 | 亚洲国产人午在线一二区 | 狠狠狠狠狠狠 | 97精品国产97久久久久久免费 | 免费福利视频网 | 婷婷丁香五 | 国产91精品在线观看 | 国产精品久久久久久久久费观看 | 欧美久久九九 | 国产精品久久久久久久7电影 | 亚洲天堂网视频 | 91免费观看 | 永久免费观看视频 | 激情六月婷婷久久 | 日韩在线一级 | 日精品| 亚洲经典视频 | 日日操日日操 | 日韩网站在线观看 | 免费在线观看中文字幕 | 久草在线这里只有精品 | 九色一区二区 | 最新久久免费视频 | 国产成人精品一区二 | 日韩av电影网站在线观看 | 激情综合网五月激情 | 精品视频免费看 | 在线直播av | 亚洲最新合集 | www.久久久精品 | 波多野结衣电影一区 | 视频在线一区二区三区 | 欧美日韩视频在线观看免费 | 精品免费观看视频 | 五月婷婷av在线 | 国内精品久久久久久中文字幕 | 国产精品99久久久久久武松影视 | 国产精品伦一区二区三区视频 | 国产91精品看黄网站 | 国产视频99| 国产精品手机在线观看 | a级国产乱理论片在线观看 伊人宗合网 | 亚洲精品永久免费视频 | 午夜久久福利视频 | www色片| 日韩com| 国产成人精品一区二区三区福利 | 久久久久欧美精品999 | 中文字幕亚洲欧美 | 91人人爱| 97超视频| 国产在线看一区 | 中文字幕色婷婷在线视频 | www.国产在线视频 | 亚洲人久久久 | 欧美国产日韩在线观看 | 狠狠88综合久久久久综合网 | 久久免费视频7 | 婷婷亚洲五月 | 国产精品毛片一区二区 | 一级久久久| 91传媒激情理伦片 | 欧美成a人片在线观看久 | 久久精品国产亚洲精品2020 | 成人免费观看大片 | 欧美激情第一页xxx 午夜性福利 | 视频1区2区 | 少妇性bbb搡bbb爽爽爽欧美 | 久艹视频免费观看 | 射久久| 婷婷色在线视频 | 夜色资源站国产www在线视频 | 久草在线综合 | 国产大陆亚洲精品国产 | 亚洲精品综合欧美二区变态 | 日韩视频在线不卡 | 日日操日日插 | 中文字幕在线观看的网站 | 97精品国产97久久久久久粉红 | 成人片在线播放 | 深夜成人av | 正在播放久久 | 99视频国产精品免费观看 | 伊人婷婷综合 | 激情丁香| 91视频 - v11av | 97色se| 日本动漫做毛片一区二区 | 三上悠亚一区二区在线观看 | 国产亚洲va综合人人澡精品 | 久热国产视频 | 免费a v观看 | 国产成人免费高清 | avove黑丝| 日韩免费电影网站 | 在线免费观看羞羞视频 | 2024av在线播放 | 97成人精品视频在线观看 | 天天艹天天操 | 国产亚洲视频在线 | 午夜在线观看 | 超碰免费97 | 成人全视频免费观看在线看 | 欧美午夜激情网 | 免费色视频网站 | 久久久久久视频 | 欧美在线观看视频一区二区三区 | 狠狠激情中文字幕 | 国产综合福利在线 | 成人免费色 | 一本一本久久a久久 | 日本中文在线 | 精品国产日本 | 亚洲精品在线观 | 一本一本久久aa综合精品 | 啪啪精品| 久久久久久久久艹 | 国产精品欧美久久久久久 | 毛片网站观看 | 久久久精品欧美 | 91中文字幕在线 | 色在线国产| 福利一区二区三区四区 | 四虎影视成人永久免费观看视频 | 精品国产一区二区三区久久影院 | 日韩av一区在线观看 | 国产成人精品av | 久久精品国产一区二区三 | 国产二区视频在线观看 | 国产精品99久久免费观看 | 亚州国产精品视频 | 亚洲清纯国产 | 激情五月色播五月 | 国产v在线 | 国产九九在线 | 亚洲精品免费在线 | 综合av在线 | 瑞典xxxx性hd极品 | 九九精品久久久 | 日韩欧美电影 | 99久高清在线观看视频99精品热在线观看视频 | 久久精品www人人爽人人 | 成人免费看电影 | 日本中文字幕视频 | 99视频精品免费视频 | 日日夜夜精品免费 | 91热精品| 激情久久影院 | 五月开心网 | 久艹在线免费观看 | 日日夜夜爱 | 亚洲国产成人在线观看 | 国产精品18久久久久久久网站 | 美女网站色在线观看 | www.狠狠干 | 麻豆精品视频在线 | 五月天激情视频 | 日日夜夜噜 | 国产精品久久久久久久久久久久久久 | 中文字幕第一页在线 | 综合色播 | 字幕网在线观看 | 夜色.com| 黄色看片| 亚洲国产偷 | 国产又黄又爽无遮挡 | 玖玖玖影院 | 国产精品欧美久久久久天天影视 | 99精品视频精品精品视频 | 精品视频在线视频 | 在线欧美中文字幕 | 亚洲免费专区 | 韩日色视频 | 97在线免费 | 欧美性色黄大片在线观看 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 在线小视频你懂的 | 精品国产91亚洲一区二区三区www | 91免费高清观看 | 午夜av电影 | 99久久精品免费视频 | 成人毛片网 | 成人免费观看在线视频 | 久久资源在线 | 国内精品久久久久影院男同志 | www.com久久 | 在线看黄网站 | 欧美黑人巨大xxxxx | 在线观看日本高清mv视频 | 中文字幕日韩在线播放 | 成人在线视频免费看 | 91麻豆精品 | 丁香婷婷在线观看 | 久久久久久免费毛片精品 | 日韩精品不卡在线观看 | 人人搞人人搞 | 国产成人久久久77777 | 91久久影院| 国产成人一级电影 | 最新中文字幕在线观看视频 | 亚洲精品动漫成人3d无尽在线 | 99中文视频在线 | 成人网在线免费视频 | 国产一级二级三级视频 | 成年人在线观看免费视频 | 亚洲成av人影院 | 一区二区三区观看 | 久久久.com| 91人人澡| 96久久精品 | 亚洲美女视频在线 | 亚洲一区二区三区四区精品 | 国产不卡视频在线 | 午夜免费福利片 | 亚洲美女视频在线观看 | 一级a毛片高清视频 | 91影视成人 | 免费一级日韩欧美性大片 | 国产在线最新 | 久热超碰| 99色视频|