堅持為客戶提供有價值的服務(wù)和內(nèi)容

[北京網(wǎng)站制作]PHP二十一段救命代碼

商企云 | 2021-06-18 | 分享至:

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

  此代碼將創(chuàng)建一個可閱讀的字符串,使其更接近詞典中的單詞,實用且具有密碼驗證功能。

  1. /**************?
  2. *@length?-?length?of?random?string?(must?be?a?multiple?of?2)?
  3. **************/?
  4. function?readable_random_string($length?=?6){?
  5. ????$conso=array("b","c","d","f","g","h","j","k","l",?
  6. ????"m","n","p","r","s","t","v","w","x","y","z");?
  7. ????$vocal=array("a","e","i","o","u");?
  8. ????$password="";?
  9. ????srand?((double)microtime()*1000000);?
  10. ????$max?=?$length/2;?
  11. ????for($i=1;?$i<=$max;?$i++)?
  12. ????{?
  13. ????$password.=$conso[rand(0,19)];?
  14. ????$password.=$vocal[rand(0,4)];?
  15. ????}?
  16. ????return?$password;?
  17. }?

2. PHP生成一個隨機(jī)字符串

  如果不需要可閱讀的字符串,使用此函數(shù)替代,即可創(chuàng)建一個隨機(jī)字符串,作為用戶的隨機(jī)密碼等。

  1. /*************?
  2. *@l?-?length?of?random?string?
  3. */?
  4. function?generate_rand($l){?
  5. ??$c=?"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";?
  6. ??srand((double)microtime()*1000000);?
  7. ??for($i=0;?$i<$l;?$i++)?{?
  8. ??????$rand.=?$c[rand()%strlen($c)];?
  9. ??}?
  10. ??return?$rand;?
  11. }?

3. PHP編碼電子郵件地址

  使用此代碼,可以將任何電子郵件地址編碼為 html 字符實體,以防止被垃圾郵件程序收集。

  1. function?encode_email($email='info@domain.com',?$linkText='Contact?Us',?$attrs?=''?)?
  2. {?
  3. ????//?remplazar?aroba?y?puntos?
  4. ????$email?=?str_replace('@',?'@',?$email);?
  5. ????$email?=?str_replace('.',?'.',?$email);?
  6. ????$email?=?str_split($email,?5);???
  7. ?
  8. ????$linkText?=?str_replace('@',?'@',?$linkText);?
  9. ????$linkText?=?str_replace('.',?'.',?$linkText);?
  10. ????$linkText?=?str_split($linkText,?5);???
  11. ?
  12. ????$part1?=?'
  13. ????$part2?=?'ilto:';?
  14. ????$part3?=?'"?'.?$attrs?.'?>';?
  15. ????$part4?=?'';???
  16. ?
  17. ????$encoded?=?'';?
  18. ????$encoded?.=?"document.write('$part1');";?
  19. ????$encoded?.=?"document.write('$part2');";?
  20. ????foreach($email?as?$e)?
  21. ????{?
  22. ????????????$encoded?.=?"document.write('$e');";?
  23. ????}?
  24. ????$encoded?.=?"document.write('$part3');";?
  25. ????foreach($linkText?as?$l)?
  26. ????{?
  27. ????????????$encoded?.=?"document.write('$l');";?
  28. ????}?
  29. ????$encoded?.=?"document.write('$part4');";?
  30. ????$encoded?.=?'';???
  31. ?
  32. ????return?$encoded;?
  33. }?

4. PHP驗證郵件地址

  電子郵件驗證也許是中最常用的網(wǎng)頁表單驗證,此代碼除了驗證電子郵件地址,也可以選擇檢查郵件域所屬 DNS 中的 MX 記錄,使郵件驗證功能更加強(qiáng)大。

  1. function?is_valid_email($email,?$test_mx?=?false)?
  2. {?
  3. ????if(eregi("^([_a-z0-9-]+)(.[_a-z0-9-]+)*@([a-z0-9-]+)(.[a-z0-9-]+)*(.[a-z]{2,4})$",?$email))?
  4. ????????if($test_mx)?
  5. ????????{?
  6. ????????????list($username,?$domain)?=?split("@",?$email);?
  7. ????????????return?getmxrr($domain,?$mxrecords);?
  8. ????????}?
  9. ????????else?
  10. ????????????return?true;?
  11. ????else?
  12. ????????return?false;?
  13. }?

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

  1. function?list_files($dir)?
  2. {?
  3. ????if(is_dir($dir))?
  4. ????{?
  5. ????????if($handle?=?opendir($dir))?
  6. ????????{?
  7. ????????????while(($file?=?readdir($handle))?!==?false)?
  8. ????????????{?
  9. ????????????????if($file?!=?"."?&&?$file?!=?".."?&&?$file?!=?"Thumbs.db")?
  10. ????????????????{?
  11. ????????????????????echo?''.$file.'
    '."n";?
  12. ????????????????}?
  13. ????????????}?
  14. ????????????closedir($handle);?
  15. ????????}?
  16. ????}?
  17. }?

6. PHP銷毀目錄

  刪除一個目錄,包括它的內(nèi)容。

  1. /*****?
  2. *@dir?-?Directory?to?destroy?
  3. *@virtual[optional]-?whether?a?virtual?directory?
  4. */?
  5. function?destroyDir($dir,?$virtual?=?false)?
  6. {?
  7. ????$ds?=?DIRECTORY_SEPARATOR;?
  8. ????$dir?=?$virtual???realpath($dir)?:?$dir;?
  9. ????$dir?=?substr($dir,?-1)?==?$ds???substr($dir,?0,?-1)?:?$dir;?
  10. ????if?(is_dir($dir)?&&?$handle?=?opendir($dir))?
  11. ????{?
  12. ????????while?($file?=?readdir($handle))?
  13. ????????{?
  14. ????????????if?($file?==?'.'?||?$file?==?'..')?
  15. ????????????{?
  16. ????????????????continue;?
  17. ????????????}?
  18. ????????????elseif?(is_dir($dir.$ds.$file))?
  19. ????????????{?
  20. ????????????????destroyDir($dir.$ds.$file);?
  21. ????????????}?
  22. ????????????else?
  23. ????????????{?
  24. ????????????????unlink($dir.$ds.$file);?
  25. ????????????}?
  26. ????????}?
  27. ????????closedir($handle);?
  28. ????????rmdir($dir);?
  29. ????????return?true;?
  30. ????}?
  31. ????else?
  32. ????{?
  33. ????????return?false;?
  34. ????}?
  35. }?

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

  與大多數(shù)流行的 Web 服務(wù)如 twitter 通過開放 API 來提供數(shù)據(jù)一樣,它總是能夠知道如何解析 API 數(shù)據(jù)的各種傳送格式,包括 JSON,XML 等等。

  1. $json_string='{"id":1,"name":"foo","email":"foo@foobar.com","interest":["wordpress","php"]}?';?
  2. $obj=json_decode($json_string);?
  3. echo?$obj->name;?//prints?foo?
  4. echo?$obj->interest[1];?//prints?php?

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

  1. //xml?string?
  2. $xml_string="?
  3. ?
  4. ?
  5. Foo?
  6. foo@bar.com?
  7. ?
  8. ?
  9. Foobar?
  10. foobar@foo.com?
  11. ?
  12. ";??
  13. ?
  14. //load?the?xml?string?using?simplexml?
  15. $xml?=?simplexml_load_string($xml_string);??
  16. ?
  17. //loop?through?the?each?node?of?user?
  18. foreach?($xml->user?as?$user)?
  19. {?
  20. //access?attribute?
  21. echo?$user['id'],?'?';?
  22. //subnodes?are?accessed?by?->?operator?
  23. echo?$user->name,?'?';?
  24. echo?$user->email,?'';?
  25. }?

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

  創(chuàng)建用戶友好的日志縮略名。

  1. function?create_slug($string){?
  2. $slug=preg_replace('/[^A-Za-z0-9-]+/',?'-',?$string);?
  3. return?$slug;?
  4. }?

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

  該函數(shù)將獲取用戶的真實 IP 地址,即便他使用代理服務(wù)器。

  1. function?getRealIpAddr()?
  2. {?
  3. ????if?(!emptyempty($_SERVER['HTTP_CLIENT_IP']))?
  4. ????{?
  5. ????????$ip=$_SERVER['HTTP_CLIENT_IP'];?
  6. ????}?
  7. ????elseif?(!emptyempty($_SERVER['HTTP_X_FORWARDED_FOR']))?
  8. ????//to?check?ip?is?pass?from?proxy?
  9. ????{?
  10. ????????$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];?
  11. ????}?
  12. ????else?
  13. ????{?
  14. ????????$ip=$_SERVER['REMOTE_ADDR'];?
  15. ????}?
  16. ????return?$ip;?
  17. }?

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

  為用戶提供強(qiáng)制性的文件下載功能。

  1. /********************?
  2. *@file?-?path?to?file?
  3. */?
  4. function?force_download($file)?
  5. {?
  6. if?((isset($file))&&(file_exists($file)))?{?
  7. header("Content-length:?".filesize($file));?
  8. header('Content-Type:?application/octet-stream');?
  9. header('Content-Disposition:?attachment;?filename="'?.?$file?.?'"');?
  10. readfile("$file");?
  11. }?else?{?
  12. echo?"No?file?selected";?
  13. }?
  14. }?

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

  1. function?getCloud(?$data?=?array(),?$minFontSize?=?12,?$maxFontSize?=?30?)?
  2. {?
  3. $minimumCount?=?min(?array_values(?$data?)?);?
  4. $maximumCount?=?max(?array_values(?$data?)?);?
  5. $spread?=?$maximumCount?-?$minimumCount;?
  6. $cloudHTML?=?'';?
  7. $cloudTags?=?array();??
  8. ?
  9. $spread?==?0?&&?$spread?=?1;??
  10. ?
  11. foreach(?$data?as?$tag?=>?$count?)?
  12. {?
  13. $size?=?$minFontSize?+?(?$count?-?$minimumCount?)?
  14. *?(?$maxFontSize?-?$minFontSize?)?/?$spread;?
  15. $cloudTags[]?=?'
  16. .?'"?href="#"?title="''?.?$tag?.?
  17. ''?returned?a?count?of?'?.?$count?.?'">'?
  18. .?htmlspecialchars(?stripslashes(?$tag?)?)?.?'';?
  19. }??
  20. ?
  21. return?join(?"n",?$cloudTags?)?.?"n";?
  22. }?
  23. /**************************?
  24. ****?Sample?usage?***/?
  25. $arr?=?Array('Actionscript'?=>?35,?'Adobe'?=>?22,?'Array'?=>?44,?'Background'?=>?43,?
  26. 'Blur'?=>?18,?'Canvas'?=>?33,?'Class'?=>?15,?'Color?Palette'?=>?11,?'Crop'?=>?42,?
  27. 'Delimiter'?=>?13,?'Depth'?=>?34,?'Design'?=>?8,?'Encode'?=>?12,?'Encryption'?=>?30,?
  28. 'Extract'?=>?28,?'Filters'?=>?42);?
  29. echo?getCloud($arr,?12,?36);?

13. PHP尋找兩個字符串的相似性

  PHP 提供了一個極少使用的 similar_text 函數(shù),但此函數(shù)非常有用,用于比較兩個字符串并返回相似程度的百分比。

  1. similar_text($string1,?$string2,?$percent);?
  2. //$percent?will?have?the?percentage?of?similarity?

14. PHP在應(yīng)用程序中使用 Gravatar 通用頭像

  隨著 WordPress 越來越普及,Gravatar 也隨之流行。由于 Gravatar 提供了易于使用的 API,將其納入應(yīng)用程序也變得十分方便。

  1. /******************?
  2. *@email?-?Email?address?to?show?gravatar?for?
  3. *@size?-?size?of?gravatar?
  4. *@default?-?URL?of?default?gravatar?to?use?
  5. *@rating?-?rating?of?Gravatar(G,?PG,?R,?X)?
  6. */?
  7. function?show_gravatar($email,?$size,?$default,?$rating)?
  8. {?
  9. echo?'[北京網(wǎng)站制作]PHP二十一段救命代碼(圖1)
  10. height="'.$size.'px"?/>';?
  11. }?

15. PHP在字符斷點處截斷文字

  所謂斷字 (word break),即一個單詞可在轉(zhuǎn)行時斷開的地方。這一函數(shù)將在斷字處截斷字符串。

  1. //?Original?PHP?code?by?Chirp?Internet:?www.chirp.com.au?
  2. //?Please?acknowledge?use?of?this?code?by?including?this?header.?
  3. function?myTruncate($string,?$limit,?$break=".",?$pad="...")?{?
  4. //?return?with?no?change?if?string?is?shorter?than?$limit?
  5. if(strlen($string)?<=?$limit)?
  6. return?$string;??
  7. ?
  8. //?is?$break?present?between?$limit?and?the?end?of?the?string??
  9. if(false?!==?($breakpoint?=?strpos($string,?$break,?$limit)))?{?
  10. if($breakpoint?
  11. $string?=?substr($string,?0,?$breakpoint)?.?$pad;?
  12. }?
  13. }?
  14. return?$string;?
  15. }?
  16. /*****?Example?****/?
  17. $short_string=myTruncate($long_string,?100,?'?');?

16. PHP文件 Zip 壓縮

  1. /*?creates?a?compressed?zip?file?*/?
  2. function?create_zip($files?=?array(),$destination?=?'',$overwrite?=?false)?{?
  3. //if?the?zip?file?already?exists?and?overwrite?is?false,?return?false?
  4. if(file_exists($destination)?&&?!$overwrite)?{?return?false;?}?
  5. //vars?
  6. $valid_files?=?array();?
  7. //if?files?were?passed?in...?
  8. if(is_array($files))?{?
  9. //cycle?through?each?file?
  10. foreach($files?as?$file)?{?
  11. //make?sure?the?file?exists?
  12. if(file_exists($file))?{?
  13. $valid_files[]?=?$file;?
  14. }?
  15. }?
  16. }?
  17. //if?we?have?good?files...?
  18. if(count($valid_files))?{?
  19. //create?the?archive?
  20. $zip?=?new?ZipArchive();?
  21. if($zip->open($destination,$overwrite???ZIPARCHIVE::OVERWRITE?:?ZIPARCHIVE::CREATE)?!==?true)?{?
  22. return?false;?
  23. }?
  24. //add?the?files?
  25. foreach($valid_files?as?$file)?{?
  26. $zip->addFile($file,$file);?
  27. }?
  28. //debug?
  29. //echo?'The?zip?archive?contains?',$zip->numFiles,'?files?with?a?status?of?',$zip->status;??
  30. ?
  31. //close?the?zip?--?done!?
  32. $zip->close();??
  33. ?
  34. //check?to?make?sure?the?file?exists?
  35. return?file_exists($destination);?
  36. }?
  37. else?
  38. {?
  39. return?false;?
  40. }?
  41. }?
  42. /*****?Example?Usage?***/?
  43. $files=array('file1.jpg',?'file2.jpg',?'file3.gif');?
  44. create_zip($files,?'myzipfile.zip',?true);?

17. PHP解壓縮 Zip 文件

  1. /**********************?
  2. *@file?-?path?to?zip?file?
  3. *@destination?-?destination?directory?for?unzipped?files?
  4. */?
  5. function?unzip_file($file,?$destination){?
  6. //?create?object?
  7. $zip?=?new?ZipArchive()?;?
  8. //?open?archive?
  9. if?($zip->open($file)?!==?TRUE)?{?
  10. die?(’Could?not?open?archive’);?
  11. }?
  12. //?extract?contents?to?destination?directory?
  13. $zip->extractTo($destination);?
  14. //?close?archive?
  15. $zip->close();?
  16. echo?'Archive?extracted?to?directory';?
  17. }?

18. PHP為 URL 地址預(yù)設(shè) http 字符串

  有時需要接受一些表單中的網(wǎng)址輸入,但用戶很少添加 http:// 字段,此代碼將為網(wǎng)址添加該字段。

  1. if?(!preg_match("/^(http|ftp):/",?$_POST['url']))?{?
  2. ???$_POST['url']?=?'http://'.$_POST['url'];?
  3. }?

19. PHP將網(wǎng)址字符串轉(zhuǎn)換成超級鏈接

  該函數(shù)將 URL 和 E-mail 地址字符串轉(zhuǎn)換為可點擊的超級鏈接。

  1. function?makeClickableLinks($text)?{?
  2. $text?=?eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_+.~#?&//=]+)',?
  3. '1',?$text);?
  4. $text?=?eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_+.~#?&//=]+)',?
  5. '12',?$text);?
  6. $text?=?eregi_replace('([_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3})',?
  7. '1',?$text);??
  8. ?
  9. return?$text;?
  10. }?

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

  創(chuàng)建圖像縮略圖需要許多時間,此代碼將有助于了解縮略圖的邏輯。

  1. /**********************?
  2. *@filename?-?path?to?the?image?
  3. *@tmpname?-?temporary?path?to?thumbnail?
  4. *@xmax?-?max?width?
  5. *@ymax?-?max?height?
  6. */?
  7. function?resize_image($filename,?$tmpname,?$xmax,?$ymax)?
  8. {?
  9. ????$ext?=?explode(".",?$filename);?
  10. ????$ext?=?$ext[count($ext)-1];???
  11. ?
  12. ????if($ext?==?"jpg"?||?$ext?==?"jpeg")?
  13. ????????$im?=?imagecreatefromjpeg($tmpname);?
  14. ????elseif($ext?==?"png")?
  15. ????????$im?=?imagecreatefrompng($tmpname);?
  16. ????elseif($ext?==?"gif")?
  17. ????????$im?=?imagecreatefromgif($tmpname);???
  18. ?
  19. ????$x?=?imagesx($im);?
  20. ????$y?=?imagesy($im);???
  21. ?
  22. ????if($x?<=?$xmax?&&?$y?<=?$ymax)?
  23. ????????return?$im;???
  24. ?
  25. ????if($x?>=?$y)?{?
  26. ????????$newx?=?$xmax;?
  27. ????????$newy?=?$newx?*?$y?/?$x;?
  28. ????}?
  29. ????else?{?
  30. ????????$newy?=?$ymax;?
  31. ????????$newx?=?$x?/?$y?*?$newy;?
  32. ????}???
  33. ?
  34. ????$im2?=?imagecreatetruecolor($newx,?$newy);?
  35. ????imagecopyresized($im2,?$im,?0,?0,?0,?0,?floor($newx),?floor($newy),?$x,?$y);?
  36. ????return?$im2;?
  37. }?

21. PHP檢測 ajax 請求

大多數(shù)的 JavaScript 框架如 jquery,Mootools 等,在發(fā)出 Ajax 請求時,都會發(fā)送額外的 HTTP_X_REQUESTED_WITH 頭部信息,頭當(dāng)他們一個ajax請求,因此你可以在服務(wù)器端偵測到 Ajax 請求。

  1. if(!emptyempty($_SERVER['HTTP_X_REQUESTED_WITH'])?&&?strtolower($_SERVER['HTTP_X_REQUESTED_WITH'])?==?'xmlhttprequest'){?
  2. ????//If?AJAX?Request?Then?
  3. }else
    來源聲明:本文章系商企云編輯原創(chuàng)或采編整理,如需轉(zhuǎn)載請注明來自商企云。以上內(nèi)容部分(包含圖片、文字)來源于網(wǎng)絡(luò),如有侵權(quán),請及時與本站聯(lián)系(010-60255689)。
    上一篇:[北京網(wǎng)站制作]PHP安全配置詳解 下一篇:[北京網(wǎng)站制作]我們從C語言之父丹尼斯身上學(xué)到了什么
    TAG標(biāo)簽:

    分享到:
掃二維碼與項目經(jīng)理溝通

7*24小時為您服務(wù)

解答:網(wǎng)站優(yōu)化,網(wǎng)站建設(shè),APP開發(fā),小程序開發(fā),H5開發(fā),品牌推廣,新聞推廣,輿情監(jiān)測等

  非常感謝您有耐心的讀完這篇文章:"[北京網(wǎng)站制作]PHP二十一段救命代碼",更多內(nèi)容請繼續(xù)瀏覽,我們將為您提供更多參考使用或?qū)W習(xí)交流的信息。我們還可為您提供:網(wǎng)站建設(shè)與開發(fā)、網(wǎng)站優(yōu)化品牌推廣、APP開發(fā)、小程序開發(fā)新聞推廣等服務(wù),我們以“降低營銷成本,提高營銷效果”的服務(wù)理念,自創(chuàng)立至今,已成功服務(wù)過不同行業(yè)的1000多家企業(yè),獲得國家高新技術(shù)企業(yè)認(rèn)證,且擁有14項國家軟件著作權(quán),將力爭成為國內(nèi)企業(yè)心目中值得信賴的互聯(lián)網(wǎng)產(chǎn)品及服務(wù)提供商。如您需要合作,請掃碼咨詢,我們將誠摯為您服務(wù)。
我要咨詢
姓名 :
電話 :
文章分類