精品国产一区二区av麻豆-亚洲第一综合色-小草国产精品情侣-成 年 人 黄 色 大 片大 全-51成人做爰www免费看网站-伊人久久天堂-亚洲国产精品免费视频-亚洲中文久久精品无码99-色成人综合-五十路熟妇亲子交尾-久久人人爽爽-日日操日日-在线看片无码永久免费视频-欧美乱论-999精品免费视频

網(wǎng)站優(yōu)化動態(tài)

21個實用PHP代碼片段:提升開發(fā)效率的編程技巧

發(fā)布于:
最后更新時間:
熱度:1532

1. PHP可閱讀隨機(jī)字符串生成

該函數(shù)通過輔音與元音的交替組合,生成接近自然語言的隨機(jī)字符串,相較于純隨機(jī)字符更易于用戶記憶與識別,常用于密碼驗證、臨時標(biāo)識碼等場景。函數(shù)支持自定義長度(需為偶數(shù)),內(nèi)部預(yù)定義輔音數(shù)組(b,c,d,f等)與元音數(shù)組(a,e,i,o,u),通過循環(huán)交替拼接字符,確保輸出結(jié)果兼具隨機(jī)性與可讀性。

```php

/

生成可閱讀的隨機(jī)字符串

@param int $length 字符串長度(需為偶數(shù))

@return string 可閱讀的隨機(jī)字符串

/

function readable_random_string($length = 6) {

$conso = array("b","c","d","f","g","h","j","k","l","m","n","p","r","s","t","v","w","x","y","z");

$vocal = array("a","e","i","o","u");

$password = "";

srand ((double)microtime()1000000);

$max = $length/2;

for($i=1; $i<=$max; $i++) {

$password .= $conso[rand(0,19)];

$password .= $vocal[rand(0,4)];

}

return $password;

}

```

2. PHP通用隨機(jī)字符串生成

當(dāng)需要高強(qiáng)度隨機(jī)字符(如用戶密碼、令牌)時,該函數(shù)通過字母與數(shù)字的組合生成指定長度的隨機(jī)字符串。字符集包含大小寫字母及數(shù)字,通過循環(huán)隨機(jī)選取字符,確保輸出的隨機(jī)性適用于安全場景。

```php

/

生成通用隨機(jī)字符串

@param int $l 字符串長度

@return string 隨機(jī)字符串

/

function generate_rand($l) {

$c = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";

srand((double)microtime()1000000);

for($i=0; $i<$l; $i++) {

$rand .= $c[rand()%strlen($c)];

}

return $rand;

}

```

3. PHP電子郵件地址編碼

為防止電子郵件被爬蟲抓取,該函數(shù)將郵箱地址轉(zhuǎn)換為HTML字符實體,并結(jié)合JavaScript動態(tài)渲染,有效避免垃圾郵件收集。支持自定義鏈接文本與HTML屬性,適用于網(wǎng)站聯(lián)系表單等場景。

```php

/

編碼電子郵件地址為HTML字符實體

@param string $email 郵箱地址

@param string $linkText 鏈接顯示文本

@param string $attrs HTML屬性

@return string 編碼后的HTML代碼

/

function encode_email($email='info@domain.com', $linkText='Contact Us', $attrs='class="emailencoder"') {

$email = str_replace('@', '@', $email);

$email = str_replace('.', '.', $email);

$email = str_split($email, 5);

$linkText = str_replace('@', '@', $linkText);

$linkText = str_replace('.', '.', $linkText);

$linkText = str_split($linkText, 5);

$part1 = '';

$part4 = '';

$encoded = '';

$encoded .= "document.write('$part1');";

$encoded .= "document.write('$part2');";

foreach($email as $e) {

$encoded .= "document.write('$e');";

}

$encoded .= "document.write('$part3');";

foreach($linkText as $l) {

$encoded .= "document.write('$l');";

}

$encoded .= "document.write('$part4');";

$encoded .= '';

return $encoded;

}

```

4. PHP郵件地址有效性驗證

該函數(shù)不僅驗證郵箱格式是否符合正則規(guī)則,還可選檢查域名的MX記錄,確保郵箱地址的真實存在性。通過正則表達(dá)式匹配郵箱結(jié)構(gòu),結(jié)合`getmxrr()`函數(shù)查詢DNS記錄,適用于表單提交前的數(shù)據(jù)校驗。

```php

/

驗證郵箱地址有效性

@param string $email 郵箱地址

@param bool $test_mx 是否檢查MX記錄

@return bool 是否有效

/

function is_valid_email($email, $test_mx = false) {

if(eregi("^([_a-z0-9-]+)(\.[_a-z0-9-]+)@([a-z0-9-]+)(\.[a-z0-9-]+)(\.[a-z]{2,4})$", $email)) {

if($test_mx) {

list($username, $domain) = split("@", $email);

return getmxrr($domain, $mxrecords);

} else {

return true;

}

} else {

return false;

}

}

```

5. PHP列出目錄內(nèi)容

該函數(shù)遍歷指定目錄,過濾掉系統(tǒng)文件(如`.`、`..`、`Thumbs.db`),并以超鏈接形式輸出文件列表,支持在新窗口中打開文件。適用于文件管理、資源展示等場景,需確保目錄存在且可讀。

```php

/

列出目錄內(nèi)容

@param string $dir 目錄路徑

@return void 輸出文件列表

/

function list_files($dir) {

if(is_dir($dir)) {

if($handle = opendir($dir)) {

while(($file = readdir($handle)) !== false) {

if($file != "." && $file != ".." && $file != "Thumbs.db") {

echo ''.$file.''."\n";

}

}

closedir($handle);

}

}

}

```

6. PHP遞歸銷毀目錄

該函數(shù)通過遞歸遍歷目錄,逐個刪除文件及子目錄,最終刪除目標(biāo)目錄本身。支持虛擬路徑轉(zhuǎn)換,適用于臨時文件清理、目錄卸載等場景,需謹(jǐn)慎使用以避免誤刪重要數(shù)據(jù)。

```php

/

遞歸銷毀目錄

@param string $dir 目錄路徑

@param bool $virtual 是否為虛擬路徑

@return bool 是否成功

/

function destroyDir($dir, $virtual = false) {

$ds = DIRECTORY_SEPARATOR;

$dir = $virtual ? realpath($dir) : $dir;

$dir = substr($dir, -1) == $ds ? substr($dir, 0, -1) : $dir;

if (is_dir($dir) && $handle = opendir($dir)) {

while ($file = readdir($handle)) {

if ($file == '.' || $file == '..') {

continue;

} elseif (is_dir($dir.$ds.$file)) {

destroyDir($dir.$ds.$file);

} else {

unlink($dir.$ds.$file);

}

}

closedir($handle);

rmdir($dir);

return true;

} else {

return false;

}

}

```

7. PHP解析JSON數(shù)據(jù)

JSON作為Web服務(wù)常用數(shù)據(jù)格式,該函數(shù)通過`json_decode()`將JSON字符串轉(zhuǎn)換為PHP對象,支持嵌套數(shù)據(jù)訪問。適用于API數(shù)據(jù)解析、配置文件讀取等場景,需注意處理JSON解析失敗的情況。

```php

// 示例JSON字符串

$json_string = '{"id":1,"name":"foo","email":"foo@foobar.com","interest":["wordpress","php"]}';

$obj = json_decode($json_string);

echo $obj->name; // 輸出: foo

echo $obj->interest[1]; // 輸出: php

```

8. PHP解析XML數(shù)據(jù)

通過`simplexml_load_string()`函數(shù)將XML字符串轉(zhuǎn)換為SimpleXML對象,支持屬性訪問與子節(jié)點遍歷。適用于配置文件解析、API響應(yīng)處理等場景,需確保XML格式正確。

```php

// 示例XML字符串

$xml_string = 'Foofoo@bar.comFoobarfoobar@foo.com';

$xml = simplexml_load_string($xml_string);

foreach ($xml->user as $user) {

echo $user['id'], ' '; // 輸出屬性

echo $user->name, ' '; // 輸出子節(jié)點

echo $user->email, '';

}

```

9. PHP創(chuàng)建日志縮略名

該函數(shù)通過正則表達(dá)式將字符串中的非字母數(shù)字字符替換為短橫線,生成URL友好的縮略名(如文章標(biāo)題轉(zhuǎn)URL)。適用于博客系統(tǒng)、CMS中的文章鏈接生成,需注意重復(fù)處理邏輯。

```php

/

創(chuàng)建URL友好的縮略名

@param string $string 原始字符串

@return string 縮略名

/

function create_slug($string) {

$slug = preg_replace('/[^A-Za-z0-9-]+/', '-', $string);

return $slug;

}

```

10. PHP獲取客戶端真實IP地址

該函數(shù)通過依次檢查`HTTP_CLIENT_IP`、`HTTP_X_FORWARDED_FOR`和`REMOTE_ADDR`,獲取用戶的真實IP地址,即使通過代理服務(wù)器也能準(zhǔn)確識別。適用于用戶定位、訪問統(tǒng)計等場景。

```php

/

獲取客戶端真實IP地址

@return string IP地址

/

function getRealIpAddr() {

if (!empty($_SERVER['HTTP_CLIENT_IP'])) {

$ip = $_SERVER['HTTP_CLIENT_IP'];

} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {

$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];

} else {

$ip = $_SERVER['REMOTE_ADDR'];

}

return $ip;

}

```

11. PHP強(qiáng)制文件下載

該函數(shù)通過設(shè)置HTTP頭信息,使瀏覽器直接下載文件而非打開,適用于文件下載功能實現(xiàn)。需確保文件存在且可讀,支持自定義文件名與文件類型。

```php

/

強(qiáng)制文件下載

@param string $file 文件路徑

@return void 輸出文件內(nèi)容

/

function force_download($file) {

if ((isset($file)) && (file_exists($file))) {

header("Content-length: ".filesize($file));

header('Content-Type: application/octet-stream');

header('Content-Disposition: attachment; filename="' . $file . '"');

readfile("$file");

} else {

echo "No file selected";

}

}

```

12. PHP創(chuàng)建標(biāo)簽云

該函數(shù)根據(jù)標(biāo)簽的出現(xiàn)頻率動態(tài)調(diào)整字體大小,生成視覺層次分明的標(biāo)簽云。支持自定義最小/最大字體大小,適用于博客標(biāo)簽、關(guān)鍵詞展示等場景,需傳入標(biāo)簽與計數(shù)的關(guān)聯(lián)數(shù)組。

```php

/

生成標(biāo)簽云

@param array $data 標(biāo)簽及計數(shù)數(shù)組

@param int $minFontSize 最小字體大小

@param int $maxFontSize 最大字體大小

@return string 標(biāo)簽云HTML

/

function getCloud($data = array(), $minFontSize = 12, $maxFontSize = 30) {

$minimumCount = min(array_values($data));

$maximumCount = max(array_values($data));

$spread = $maximumCount - $minimumCount;

$cloudHTML = '';

$cloudTags = array();

$spread == 0 && $spread = 1;

foreach($data as $tag => $count) {

$size = $minFontSize + ($count - $minimumCount) ($maxFontSize - $minFontSize) / $spread;

$cloudTags[] = '' . htmlspecialchars(stripslashes($tag)) . '';

}

return join("\n", $cloudTags) . "\n";

}

```

13. PHP計算字符串相似度

PHP內(nèi)置的`similar_text()`函數(shù)可計算兩個字符串的相似度百分比,適用于文本匹配、重復(fù)內(nèi)容檢測等場景。需傳入兩個字符串及用于存儲相似度百分比的變量。

```php

$string1 = "Hello World";

$string2 = "Hello PHP";

similar_text($string1, $string2, $percent);

echo $percent; // 輸出相似度百分比

```

14. PHP集成Gravatar通用頭像

Gravatar作為全球通用頭像系統(tǒng),該函數(shù)通過郵箱地址生成頭像鏈接,支持自定義大小、默認(rèn)圖片與評級。適用于用戶系統(tǒng)、評論頭像等場景,需調(diào)用Gravatar API。

```php

/

顯示Gravatar頭像

@param string $email 郵箱地址

@param int $size 頭像大小

@param string $default 默認(rèn)頭像URL

@param string $rating 評級(G, PG, R, X)

@return void 輸出頭像HTML

/

function show_gravatar($email, $size, $default, $rating) {

echo '';

}

```

15. PHP按單詞截斷字符串

該函數(shù)在指定位置查找最近的單詞斷點,避免單詞被截斷,適用于文章摘要、標(biāo)題截取等場景。支持自定義斷點字符(如空格)與后綴填充。

```php

/

按單詞截斷字符串

@param string $string 原始字符串

@param int $limit 最大長度

@param string $break 斷點字符

@param string $pad 后綴

@return string 截斷后的字符串

/

function myTruncate($string, $limit, $break=".", $pad="...") {

if(strlen($string) <= $limit) return $string;

if(false !== ($breakpoint = strpos($string, $break, $limit))) {

if($breakpoint < strlen($string) - 1) {

$string = substr($string, 0, $breakpoint) . $pad;

}

}

return $string;

}

```

16. PHP文件ZIP壓縮

該函數(shù)使用`ZipArchive`類將多個文件壓縮為ZIP包,支持自定義壓縮路徑與覆蓋選項。適用于文件打包、備份導(dǎo)出等場景,需確保目標(biāo)目錄可寫。

```php

/

創(chuàng)建ZIP壓縮文件

@param array $files 待壓縮文件列表

@param string $destination ZIP文件路徑

@param bool $overwrite 是否覆蓋已有文件

@return bool 是否成功

/

function create_zip($files = array(), $destination = '', $overwrite = false) {

if(file_exists($destination) && !$overwrite) return false;

$valid_files = array();

if(is_array($files)) {

foreach($files as $file) {

if(file_exists($file)) $valid_files[] = $file;

}

}

if(count($valid_files)) {

$zip = new ZipArchive();

if($zip->open($destination, $overwrite ? ZIPARCHIVE::OVERWRITE : ZIPARCHIVE::CREATE) !== true) {

return false;

}

foreach($valid_files as $file) {

$zip->addFile($file, $file);

}

$zip->close();

return file_exists($destination);

} else {

return false;

}

}

```

17. PHP解壓ZIP文件

該函數(shù)通過`ZipArchive`類打開ZIP文件并解壓至指定目錄,適用于文件解壓、資源釋放等場景。需確保目標(biāo)目錄存在且可寫,處理過程中需檢查文件打開狀態(tài)。

```php

/

解壓ZIP文件

@param string $file ZIP文件路徑

@param string $destination 解壓目標(biāo)目錄

@return void 輸出解壓結(jié)果

/

function unzip_file($file, $destination) {

$zip = new ZipArchive();

if ($zip->open($file) !== TRUE) {

die('Could not open archive');

}

$zip->extractTo($destination);

$zip->close();

echo 'Archive extracted to directory';

}

```

18. PHP為URL添加http前綴

用戶輸入URL時常缺少`http://`前綴,該函數(shù)通過正則檢查并自動補全,確保鏈接可正常訪問。適用于表單提交中的URL處理,避免無效鏈接。

```php

if (!preg_match("/^(http|ftp):/", $_POST['url'])) {

$_POST['url'] = 'http://'.$_POST['url'];

}

```

19. PHP轉(zhuǎn)換URL為可點擊鏈接

該函數(shù)將文本中的URL、郵箱地址轉(zhuǎn)換為可點擊的超鏈接,支持http、https、ftp及mailto協(xié)議,適用于評論系統(tǒng)、內(nèi)容展示中的鏈接自動識別。

```php

/

將URL和郵箱轉(zhuǎn)換為可點擊鏈接

@param string $text 原始文本

@return string 處理后的文本

/

function makeClickableLinks($text) {

$text = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_+.~#?&//=]+)', '\1', $text);

$text = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_+.~#?&//=]+)', '\1\2', $text);

$text = eregi_replace('([_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3})', '\1', $text);

return $text;

}

```

20. PHP調(diào)整圖像尺寸

該函數(shù)通過GD庫生成圖像縮略圖,支持jpg、png、gif格式,自動按比例縮放以保持圖像清晰度。適用于圖片壓縮、頭像生成等場景,需確保GD庫已啟用。

```php

/

調(diào)整圖像尺寸

@param string $filename 原圖路徑

@param string $tmpname 臨時文件路徑

@param int $xmax 最大寬度

@param int $ymax 最大高度

@return resource 縮略圖資源

/

function resize_image($filename, $tmpname, $xmax, $ymax) {

$ext = explode(".", $filename);

$ext = $ext[count($ext)-1];

if($ext == "jpg" || $ext == "jpeg") $im = imagecreatefromjpeg($tmpname);

elseif($ext == "png") $im = imagecreatefrompng($tmpname);

elseif($ext == "gif") $im = imagecreatefromgif($tmpname);

$x = imagesx($im);

$y = imagesy($im);

if($x <= $xmax && $y <= $ymax) return $im;

if($x >= $y) {

$newx = $xmax;

$newy = $newx $y / $x;

} else {

$newy = $ymax;

$newx = $x / $y $newy;

}

$im2 = imagecreatetruecolor($newx, $newy);

imagecopyresized($im2, $im, 0, 0, 0, 0, floor($newx), floor($newy), $x, $y);

return $im2;

}

```

21. PHP檢測AJAX請求

現(xiàn)代JavaScript框架發(fā)送AJAX請求時,會附帶`HTTP_X_REQUESTED_WITH`頭部信息,該函數(shù)通過檢查該頭部識別AJAX請求,適用于區(qū)分普通請求與AJAX請求,實現(xiàn)不同的響應(yīng)邏輯。

```php

if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {

// AJAX請求處理邏輯

} else {

// 普通請求處理邏輯

}

```

返回上海網(wǎng)站優(yōu)化公司首頁     推薦閱讀: 營口網(wǎng)站優(yōu)化排名報價表      上海投靠落戶
本站所發(fā)表、轉(zhuǎn)載或引用的文章、圖片、視頻等內(nèi)容均來源于互聯(lián)網(wǎng),版權(quán)歸原作者所有。
本站不參與原始內(nèi)容的創(chuàng)作、編輯或?qū)徍耍嗖粚Ρ菊菊故緝?nèi)容的真實性、準(zhǔn)確性、完整性、時效性或合法性作出任何明示或暗示的保證。
用戶應(yīng)自行判斷信息的可靠性,并承擔(dān)因使用本站內(nèi)容而可能引發(fā)的一切風(fēng)險與責(zé)任。
如您認(rèn)為本站的內(nèi)容侵犯了您的合法權(quán)益(包括但不限于著作權(quán)、肖像權(quán)、名譽權(quán)等),請立即聯(lián)系我們,并提供相關(guān)權(quán)屬證明及侵權(quán)證據(jù)。我們將在收到通知后依法及時核查并采取刪除、屏蔽或斷開鏈接等必要措施。

您可能更感興趣

熱門標(biāo)簽

聯(lián)系上海網(wǎng)站優(yōu)化公司

上海網(wǎng)站優(yōu)化公司QQ
上海網(wǎng)站優(yōu)化公司微信
添加微信
主站蜘蛛池模板: 国产午夜精品久久精品电影 | 亚洲欧美日韩国产制服另类 | 久人人 | 热久久伊人中文字幕无码 | 天天爱天天爽 | 麻豆 美女 丝袜 人妻 中文 | 91高跟黑色丝袜呻吟在线观看 | 女的被弄到高潮娇喘喷水视频 | 狠狠操狠狠操狠狠操 | 色视频在线免费观看 | 日日做夜狠狠爱欧美黑人 | 久久天天躁夜夜躁狠狠躁2022 | 婷婷久久久久久 | 99久久国产成人精品 | 免费观看的av | 人人模人人爽人人喊久久 | 国产精品久久久久国产a级 亚洲卡一 | 久久91久久久久麻豆精品 | 日韩av无码久久一区二区 | 中文字幕亚洲综合久久2020 | 国产精品成人av久久 | 亚洲日本va午夜中文字幕一区 | 天天色成人网 | 国产黄色av网址 | 成人免费大片黄在线播放 | 国产精品国色综合久久 | 亚洲va韩国va欧美va精四季 | 免费网站观看www在线观看 | 成在人线av无码免观看麻豆 | 日韩欧美精品久久 | 亚洲丰满熟妇在线播放电影全集 | 国产66精品久久久久999小说 | 性感美女一级片 | 午夜寂寞影院在线观看 | 美女高潮黄又色高清视频免费 | 亚洲欧美日韩国产一区二区三区 | 波多野结衣免费观看视频 | 久久99精品国产一区二区三区 | 国产成人综合亚洲亚洲国产第一页 | 超碰999| 91日韩视频 | 国产一区二区小视频 | 国产偷窥盗摄一区二区 | 女人天堂一区二区三区 | 欧美丰满熟妇bbbbbb百度 | 亚洲图片综合区 | 中文字幕在线视频观看 | 人妻熟女 视频二区 视频一区 | 亚洲国产精品成人久久蜜臀 | 欧美又粗又大又硬又长又爽视频 | 看全色黄大色黄大片大学生 | 黄色一级视频免费看 | 亚洲中文自拍另类av片 | 高清中文字幕av | 四房播播开心五月 | 亚洲大尺度无码专区尤物 | 人人草人人插 | 真实单亲乱l仑对白视频 | 免费无码又爽又高潮视频 | 久久久精品综合 | 日韩欧美亚| 欧美xxxx做受欧美人妖 | 中文字幕7 | 欧美成aⅴ人高清怡红院 | 三级黄在线观看 | 国精产品自偷自偷综合下载 | 成人tv| 日韩av在线播 | 日韩欧美人妻一区二区三区 | 天天操夜操 | 99精品国产久热在线观看 | wwwxxx亚洲 | 日本人与黑人做爰视频网站 | 欧美疯狂做受xxxx高潮 | 亚洲美女综合网 | 秋霞在线观看秋 | 91亚色| 欧美亚洲另类 丝袜综合网 在线免费观看你懂的 | 婷婷综合在线 | 国产特级aaaaaa大片 | 免费永久看黄神器无码软件 | 久久国产乱子伦精品免费乳及 | 亚洲性夜色噜噜噜在线观看不卡 | 国产激情久久久久影院老熟女免费 | 黄网站色视频免费观看 | 一级黄色爱爱视频 | 国产国拍亚洲精品 | 亚洲精品久久久久中文字幕一福利 | 午夜福利av无码一区二区 | 欧美亚洲另类丝袜综合网 | 久久精品久久精品久久39 | 黄色在线观看网站 | 91av视频网 | 国产大陆亚洲精品国产 | 国产精品视频999 | 成年人免费av | 久久婷婷五月综合色99啪 | 熟女少妇人妻黑人sirbao | 中文字幕有码无码人妻av蜜桃 |