首頁 > 後端開發 > php教程 > php正規表示式模式比對實例教程

php正規表示式模式比對實例教程

WBOY
發布: 2016-07-25 08:51:41
原創
1005 人瀏覽過
error_reporting = E_ALL error_reporting = E_ALL & ~E_NOTICE //報所有錯誤,但是除了提示錯誤 3)、報錯地方:
  1. $sub = "bbs.it-home.org";

  2. $ptn = '/w*.w*.w*/';

  3. // 正規表示式,元資料,傳回的資料

  4. preg_match($ptn, $sub,$ mats);
  5. echo "

    "; 
    登入後複製
    登入後複製
    登入後複製
    登入後複製
    登入後複製
    登入後複製
    登入後複製
  6. print_r($mats);
  7. echo "";
  8. ?>
  9. //匹配ip
  10. $str = "my ip is 192.168.10.1sdjlfajdf192.178.39.4la";
  11. $ptn = '/d .d .d .d /';

  12. preg_match_all($ptn, $str,$mats);
  13. echo "

    "; 
    登入後複製
    登入後複製
    登入後複製
    登入後複製
    登入後複製
    登入後複製
    登入後複製
  14. print_r($mats);
  15. echo "";
  16. ?>

複製程式碼

模式修正符,放在正規表示式的最後面 i,m,s,u,e i :忽略大小寫 m :視為多行 s :視為一行 u :貪婪模式,最大模式 e :替換的時候用的,可以用函數加工,用來匹配正規表示式中的第一個圓括號

  1. $str = "Linux and php are lamp or linux is very much";
  2. $ptn = '/linux/ i';
  3. preg_match_all($ptn, $str,$mats);
  4. echo "
    "; 
    登入後複製
    登入後複製
    登入後複製
    登入後複製
    登入後複製
    登入後複製
    登入後複製
  5. print_r($mats);
  6. echo "";
  7. ?>
複製程式碼

m例子 m視為多行

  1. $str = "Linux and php are lamp or nlinux is very much";
  2. $ptn = '/^linux /im';
  3. preg_match_all($ptn, $str,$mats);
  4. echo "
    "; 
    登入後複製
    登入後複製
    登入後複製
    登入後複製
    登入後複製
    登入後複製
    登入後複製
  5. print_r($mats);
  6. echo "";
  7. ?>
複製程式碼

模式修正符

  1. $str = "Linux and php are lamp or nlinux is very much";
  2. $ptn = '/.* /s';
  3. preg_match_all($ptn, $str,$mats);
  4. echo "
    "; 
    登入後複製
    登入後複製
    登入後複製
    登入後複製
    登入後複製
    登入後複製
    登入後複製
  5. print_r($mats);
  6. echo "";
  7. ?>
複製程式碼

e的使用

  1. $str = "123 php";
  2. $ptn = '/d s(w )/e';
  3. $rep = 'strtoupper($1)';
  4. // preg_match_all($ptn, $str,$mats);
  5. $str2 = preg_replace($ptn, $rep, $str);
  6. echo "
    "; 
    登入後複製
    登入後複製
    登入後複製
    登入後複製
    登入後複製
    登入後複製
    登入後複製
  7. print_r($str2);
  8. echo "";
  9. ?>
複製程式碼

複製程式碼
    向後引用
  1. $str = "123 php";
  2. $ptn = '/(d )(s)(w )/ ';
  3. $rep = '$3$2$1';
  4. // preg_match_all($ptn, $str,$mats);
  5. $str2 = preg_replace($ptn, $rep, $str);
echo "
";  
登入後複製
print_r($str2); echo ""; ?>

複製代碼
    五個常用函數 1.字串的匹配與替換 preg_match(); preg_match_all(); preg_grep();做搜索 2.字串的替換 preg_replace(); 3.字串的分割 preg_split(); eval讓字串表達式能夠執行 preg_grep實例,做搜尋:
  1. //例如代表文章
  2. $arr = array(
  3. "php html",
  4. " linux redhat rhce",
  5. "junzaivip test php",
  6. );
  7. //需要搜尋的內容
  8. $ptn = '/junzaivip/';
  9. //回傳搜尋到的內容
  10. $arr2 = preg_grep($ptn, $arr);
echo "
"; 
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
登入後複製
print_r($arr2); echo ""; ?>

複製程式碼
    4.數學函數 1.max(); 2.min(); 注意:1.由多個數字,2,多個數字組成的數組
  1. echo max(3,45,6,7);
echo "
"; echo max(array(4,6,8,9)); ?>
複製程式碼

5.日期函數 1.time(); 2.date(); //把時間戳記轉換為日期 3.strtotime();//把日期轉換成時間戳 4.microtime();

  1. //calc開啟計算器
  2. 時間的起源點:
  3. echo time();
  4. echo "
    ";
  5. echo date("Y-m-d H:i-s w t",0);
  6. ?>
複製程式碼

時間轉換為時間戳

  1. cho strtotime("2014-12-12");
  2. ?>
複製代碼

計算當前時間的具體日期:

  1. echo date("Y-m-d H:i:s",time() 8*3600);
  2. ?>
複製程式碼

透過修改時區來找出目前日期:

  1. //設定中國的時區為預設時區
  2. date_default_timezone_set("PRC"); Y-m-d H:i:s",time());
  3. ?>
複製程式碼
注意:如果每個改比較麻煩的話,就直接去修改php的設定檔php.ini檔,直接修改裡面的date 找見timezone修改為PRC date參數: Y 2014 年全 y 14年只有後兩位 m 03月份有前導0 n 3 月沒有前導0 d 05 日期有前導0 j 5 日期沒有前導0 H 24小時 h 12小時 i 05分鐘 s 05秒 w 0-6 週日到週六 t 31一月幾天 L 是否為閏年 //怎樣區分平潤年 能夠被4整除,同時如果能被100整除的話,那就必須被400整除,此時它就是閏年

  1. //設定中國的時區為預設時區

  2. date_default_timezone_set("PRC"); 🎜>$y = "1900/1/1";
  3. $time = strtotime($y);
  4. echo date("L",$time);

  5. ? >
複製程式碼
microtime() 微秒

計算腳本的運行時間:

    $stime = microtime(1);//注意這個位置必須用true,否者無法參與計算
  1. sleep (1);
  2. $etime = microtime(1);
  3. echo $etime - $stime;
  4. ?>
複製程式碼

實例:萬年曆 萬年曆技術點 1.幾年幾月幾日 2.週日到週六 3.1號是星期幾 4.這個月有多少天 5.下一年和前一年 6.下一月和上一月 萬年曆代碼:

  1. //修改字元編碼

  2. //header("content-type:text/html ;charset=utf-8");
  3. date_default_timezone_set("PRC");
  4. //取得當前年
  5. $year = $_GET['y']?$_GET['y']:date ('Y');
  6. //取得當前月
  7. $month = $_GET['m']?$_GET['m']:date('m');
  8. //取得獲取當前月有多少天
  9. $days = date('t',strtotime("{$year}-{$month}-1"));//裡面必須用雙引號
  10. //當前一號是周幾
  11. $weeks = date('w',strtotime("{$year}-{$month}-1"));
  12. //所有有內容居中
  13. echo "
    ";
  14. //輸出表頭
  15. echo "

    {$year}年{$month}月

    ";
  16. //輸出日期表格
  17. echo "";
  18. //輸出第一行
  19. echo "
  20. ";
  21. //表頭單元格由th來建立
  22. echo "日";
  23. echo "
  24. ";
  25. echo "
  26. ";
  27. echo "
  28. ";
  29. echo "
  30. ";
  31. echo "
  32. ";
  33. echo "
  34. ";
  35. //開始鋪表格
  36. for($i = 1 - $weeks;$i echo "
  37. ";
  38. for ($j=0; $j if ($i > $days || $i echo "
  39. " ;
  40. } else{
  41. echo "
  42. ";
  43. }
  44. $i ;
  45. }
  46. echo "
  47. ";
  48. }
  49. echo "

  50. 三 th>";
  51. echo "
  52. {$i}
    ";
  53. //實作一下上一和上一月
  54. if($month == 1){
  55. $prevyear = $year - 1;
  56. $prevmonth = 12;
  57. } else{
  58. $prevyear = $year;
  59. $prevmonth = $month -1;
  60. }
  61. }
  62. $prevmonth = $month -1;
  63. }
  64. if($month == 12){
  65. $nextyear = $year 1;
  66. $nextmonth = 1;
  67. } else{
  68. $nextyear = $year;
  69. $nextmonth = $monthmonth = $month 1;
  70. }
  71. //輸出上一月和下一月的按鈕

  72. echo "

    上一月|下一月

    ";
echo "";
?>

複製程式碼

PHP的錯誤處理 1.關閉和開啟報錯 2.錯誤報告級別 3.錯誤回報地方

1)、關閉和開啟報錯 E_ALL E_ERROR //嚴重錯誤 E_WARNING //警告錯誤 E_PARSE//語法錯誤 E_NOTICE //提示錯誤

2)、關閉錯誤 display_error = off 報什麼等級的錯誤:
//是否從瀏覽器報錯 display_error = off //是否把錯誤輸出到一個自訂日誌檔案中 log_errors = on error_log = d:phplogsphp.log


來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板