Time of Update: 2017-01-18
最近在做一個項目,遇到AJAX中文亂碼問題,經過一個下午的努力終於完美解決,現將心得寫下來,希望對那些還困繞在這個問題而頭痛不已的人們有所協助。 眾所周知,使用AJAX傳送和接收中文參數時,如果不在用戶端和伺服器做相應的處理就會出現亂碼問題,在網上相應的文章也不少,但是有的情況下很難從中找到符合自己理想的答案,我今天就是在網上找了很多,但是都差不多,講ASP和JSP的比較多(我是用的PHP),所以到最後都沒找到自己滿意的答案。
Time of Update: 2017-01-18
在PHP中有兩套Regex函數庫,兩者功能相似,只是執行效率略有差異: 一套是由PCRE(Perl Compatible Regular Expression)庫提供的。使用“preg_”為首碼命名的函數; 一套由POSIX(Portable Operating System Interface of Unix )擴充提供的(PHP預設)。使用以“ereg_”為首碼命名的函數; PHP中,Regex有三個作用: 匹配,也常常用於從字串中析取資訊。 用新文本代替匹配文本。
Time of Update: 2017-01-18
我的正則入門,是起源於網上的一篇文章[1],這篇文章由淺入深的闡述了正則使用的方法,我覺得是一個很好的入門材料,不過學成還是要靠個人,在使用的過程中,還是會不斷地忘記,因此反反覆複的閱讀了這篇文章有四五遍,對於其中一些比較困難的知識點,甚至要用很久才能消化,但是只要能見堅持著看完,你會發現自己對於正則的運用能力就會顯著提高。 Regex: 用於描述字元排列和匹配模式的一種文法規則。它主要用於字串的模式分割、匹配、尋找及替換操作。 PHP中的正則函數:
Time of Update: 2017-01-18
複製代碼 代碼如下: <table> <tr><td>aaaa</td></tr> <tr><td>bbbb</td></tr> <tr><td>cccc</td></tr> <tr><td>dddd</td></tr> </table> 像這種的文本,用PHP的Regex怎麼匹配?
Time of Update: 2017-01-18
Regex的匹配先後順序: 1.模式單元 2.重複匹配 ? * + {} 3.邊界限定 ^ $ b B 4.模式選擇 | 模式修正符: 模式修正符是標記在整個模式之外的. i :模式中的字元將同時匹配大小寫字母. m :字串視為多行. s :將字串視為單行,分行符號作為一般字元. x :將模式中的空白忽略. A :強制僅從目標字串的開頭開始匹配. D :模式中的美元元字元僅匹配目標字串的結尾. U :匹配最近的字串. PHP與Regex中的模式修正符 下面列出了當前在 PCRE
Time of Update: 2017-01-18
複製代碼 代碼如下:<?php if (eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3}$",$email)) { echo "您的 E-Mail 通過初步檢查"; } ?> 在這句話裡,首先是應用了一個eregi函數,這個函數還算好理解。隨便找本書,就能給你一段解釋: 文法: int ereg(string pattern, string string, array [regs]); 傳回值: 整數/數組 本函數以
Time of Update: 2017-01-18
Regex一個最重要的特性就是將匹配成功的模式的某部分進行儲存供以後使用這一能力。 對一個Regex模式或部分模式兩邊添加圓括弧()可以把這部分運算式儲存到一個臨時緩衝區中。 所捕獲的每個子匹配都按照在Regex模式中從左至右所遇到的內容按順序儲存。 儲存子匹配的緩衝區編號從1開始,連續編號至最大99個子運算式。 每個緩衝區都可以使用'\n'(或用'$n')訪問,其中n為1至99的阿拉伯數字,用來按順序標識特定緩衝區(子運算式)。 例1:最簡單最有用的例子是確定文字中連續出現兩個相同單詞的位置
Time of Update: 2017-01-18
比較簡潔的代碼一:$str = '';$isMatched = preg_match('/^0?(13|14|15|17|18)[0-9]{9}$/', $str, $matches);var_dump($isMatched, $matches);代碼二<?php//Regex$tel = "15558530459"; //作者的手機號碼,如果有疑問可以電話聯絡我,或者QQ聯絡我,我的QQ是mezongzi@qq.comif (strlen($tel) == "11") {
Time of Update: 2017-01-18
朋友甲:要求根據一串字串,反轉成PHP數組,其給出的字串為php的print_r列印出來的。我們在暫不考慮此方法是否能確保資料的準確性,以及其他意外等情況,僅根據要求寫正則。 其字串為 複製代碼 代碼如下: Array ( [tt] => Array ( [table] => qqttcode [hitcode] => 1 ) [ww] => Array ( [table] => qqwwcode [hitcode] => ) [pp] =>
Time of Update: 2017-01-18
網友ainiaa的問題是 PHP代碼如下 複製代碼 代碼如下: $words = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSRUVWXYZ!@#$%^&*()_+-=[]\\,./{}|<>?'\"你好啊我們"; $otherStr=preg_replace("/[chr(128)-chr(256)]+/is"," ",$words); echo 'otherStr:',$otherStr;
Time of Update: 2017-01-18
常見函數 strstr($str, “abc”); 正則匹配 preg_match(”/(abc)?/is”, $str); 但是要匹配一個字串中,不包含某字串,用正則就比較麻煩了 如果不用正則 !strstr($str, “abc”); 就可以解決問題了 但是用正則呢,就只有這樣了,”/^((?!abc).)*$/is” //------------------------------------------------ 複製代碼 代碼如下: <?php
Time of Update: 2017-01-18
先來看下反引號可以成功執行命名的程式碼片段。代碼如下: 複製代碼 代碼如下: `ls -al`; `ls -al`; echo "sss"; `ls -al`; $sql = "SELECT `username` FROM `table` WHERE 1"; $sql = 'SELECT `username` FROM `table` WHERE 1' /* 無非是 前面有空白字元,或者在一行代碼的結束之後,後面接著寫,下面兩行為意外情況,也就是SQL命令裡的反引號,要排除的就是它。 */
Time of Update: 2017-01-18
複製代碼 代碼如下:(?:pattern) 匹配 pattern 但不擷取匹配結果,也就是說這是一個非擷取匹配,不進行儲存供以後使用。這在使用 "或" 字元 (|) 來組合一個模式的各個部分是很有用。例如, 'industr(?:y|ies) 就是一個比 'industry|industries' 更簡略的運算式。 (?=pattern) 正向預查,在任何匹配 pattern 的字串開始處匹配尋找字串。這是一個非擷取匹配,也就是說,該匹配不需要擷取供以後使用。例如,'Windows (?=95|
Time of Update: 2017-01-18
之前一篇文章翻譯了Perl語言中的遞迴Regex. 其實不少語言中的正則都是支援遞迴的, 例如本文要介紹的PHP正則遞迴. 雖然, 工作中最常用的Regex都很”正則”, 只用最基本的文法就能解決85%以上的問題, 而且合理有效地使用普通正則來解決複雜問題也是一門技巧與學問; 但是進階一點的文法的確有它存的價值, 有時不用它還真辦不了事兒; 況且學習正則的樂趣也在於嘗試各種各樣的可能性, 滿足自己無窮無盡的好奇心. 本文內容, 整理自網文Finer points of PHP regular
Time of Update: 2017-01-18
我在寫小偷中用了大量的正則,所以在接下來的版本中要逐步減少正則的應用 在PHPRegex中需要轉義的字元如下: $^*()+={}[]|/:<>.?'" 注意:perl風格中運算式要求以/開始和結尾,如:/food/ 表匹配字元 food perl修飾符如下: i 完成不區分大小寫搜尋 g 尋找所有出現(all occurrences,完成全域搜尋) m
Time of Update: 2017-01-18
複製代碼 代碼如下:<?php function pregstring($str){ $strtemp = trim($str); $search = array( "|'|Uis", "|<script[^>].*?</script>|Uis", // 去掉 javascript "|\[字定義\].*\[/字定義\]|Uis", // 去掉縮圖 "|<[\/\!].*?[^<>]*?>|Uis", // 去掉 HTML 標籤 "'>
Time of Update: 2017-01-18
[AJAX介紹]Ajax是使用用戶端指令碼與Web伺服器交換資料的Web應用開發方法。Web頁面不用打斷互動流程進行重新加裁,就可以動態地更新。使用Ajax,使用者可以建立接近本地案頭應用的直接、高可用、更豐富、更動態Web使用者介面。 非同步JavaScript和XML(AJAX)不是什麼新技術,而是使用幾種現有技術——包括階層式樣式表(CSS)、JavaScript、
Time of Update: 2017-01-18
i 匹配大小寫 s 模式中的圓點元字元(.)匹配所有的字元,包括分行符號 x 模式中的空白字元除了被轉義的或在字元類中的以外完全被忽略,在未轉義的字元類之外的 # 以及下一個分行符號之間的所有字元,包括兩 頭,也都被忽略 A (PCRE_ANCHORED) 如果設定了此修正符,模式被強製為“anchored”,即強制僅從目標字串的開頭開始匹配即自動在模式開頭加上^。 D (PCRE_DOLLAR_ENDONLY)
Time of Update: 2017-01-18
複製代碼 代碼如下:function match_links($document) { preg_match_all("'<\s*a\s.*?href\s*=\s*([\"\'])?(?(1)(.*?)\\1|([^\s\>]+))[^>]*>?(.*?)</a>'isx",$document,$links); while(list($key,$val) = each($links[2])) { if(!empty($val)) $match['link'][
Time of Update: 2017-01-18
更全面的執行個體,可以參考最常用的PHPRegex收集整理http://www.jb51.net/article/14049.htmphp Regex小結http://www.jb51.net/article/19831.htmPHP Regex的幾則提示http://www.jb51.net/article/19832.htm以下內容為php中常用的正則,正則是一門通用性的文法,可以在網上下載更全面的正則,提供學習! 作用:分割,匹配,尋找,替換 1,php中兩個常用的正則函數