四川快乐12遗漏数据统计 http://www.jzmqmk.tw 專注于草根站長學習和站長資源的網站 Thu, 05 Dec 2019 22:22:33 +0000 zh-CN hourly 1 https://wordpress.org/?v=5.2.5 curl獲取結果亂碼的解決方法之CURLOPT_ENCODING(curl/Post請求) http://www.jzmqmk.tw/php/158/ http://www.jzmqmk.tw/php/158/#respond Thu, 05 Dec 2019 22:16:56 +0000 http://www.jzmqmk.tw/?p=158 /*POST請求遠程內容函數*/
function ppost($url,$data,$ref){ // 模擬提交數據函數
$curl = curl_init(); // 啟動一個CURL會話
curl_setopt($curl, CURLOPT_URL, $url); // 要訪問的地址
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 對認證證書來源的檢查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 1); // 從證書中檢查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER[‘HTTP_USER_AGENT’]); // 模擬用戶使用的瀏覽器
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自動跳轉
curl_setopt($curl, CURLOPT_REFERER, $ref);
curl_setopt($curl, CURLOPT_POST, 1); // 發送一個常規的Post請求
curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的數據包
curl_setopt($curl, CURLOPT_COOKIEFILE,$GLOBALS [‘cookie_file’]); // 讀取上面所儲存的Cookie信息
curl_setopt($curl, CURLOPT_COOKIEJAR, $GLOBALS[‘cookie_file’]); // 存放Cookie信息的文件名稱

curl_setopt($curl, CURLOPT_HTTPHEADER,array(‘Accept-Encoding: gzip, deflate’));
curl_setopt($curl, CURLOPT_ENCODING, ‘gzip,deflate’);這個是解釋gzip內容……………..
curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 設置超時限制防止死循環
curl_setopt($curl, CURLOPT_HEADER, 0); // 顯示返回的Header區域內容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 獲取的信息以文件流的形式返回
$tmpInfo = curl_exec($curl); // 執行操作
if (curl_errno($curl)) {
echo ‘Errno’.curl_error($curl);
}
curl_close($curl); // 關鍵CURL會話
return $tmpInfo; // 返回數據
}

轉載請注明:REB站長網 » curl獲取結果亂碼的解決方法之CURLOPT_ENCODING(curl/Post請求)

]]>
http://www.jzmqmk.tw/php/158/feed/ 0
Linux/UNIX: 使用 dd 命令創建 1GB 大小的二進制 http://www.jzmqmk.tw/linux/153/ http://www.jzmqmk.tw/linux/153/#respond Mon, 18 Nov 2019 14:28:12 +0000 http://rebx.net/?p=153 我如何使用 Shell 命令,在 UNIX/Linux/BSD 系統上使用dd命令創建1GB或者10GB鏡像文件?

您可以使用 dd 命令生成鏡像文件,用來測試網絡或文件系統。

Linux/UNIX: 使用 dd 命令創建 1GB 大小的二進制

你需要使用下面命令:

  1. fallocate – 預分配空白文件;
  2. truncate? – 縮小或擴展文件的大小;
  3. dd – 轉換和復制文件,例如 克隆、新建、覆蓋 鏡像;
  4. df – 查看磁盤空間;
  5. du – 統計磁盤使用情況;
  6. ls – 列出文件大小;

fallocate 命令語法

基本語法是:

fallocate -l Image_Size_Here /path/to/image.img

使用 fallocate 命令在 Linux 上創建大文件

用下面命令創建 1GB 文件:
fallocate -l 1G test.img

使用 ls 命令查看文件大小:

$ ls -lh test.img

示例輸出:
-rw-r–r–. 1 root root 1.0G Nov 27 03:42 test.img

你可以使用 stat 或 du 命令查看塊分配信息:
stat test.img
File: `test.img’
Size: 1073741824? ? ? Blocks: 2097160? ? IO Block: 4096? regular file
Device: 805h/2053d? ? ? Inode: 9043983? ? Links: 1
Access: (0644/-rw-r–r–)? Uid: (? ? 0/? ? root)? Gid: (? ? 0/? ? root)
Access: 2013-11-27 03:42:27.575841698 -0600
Modify: 2013-11-27 03:42:27.575841698 -0600
Change: 2013-11-27 03:51:06.108962462 -0600
du -h test.img
1048580 test.img

創建 100M 大小的文件,按回車即可:

fallocate -l 100M file.out

后面的 -l 參數時用來指定文件大小以字節為單位,如 k, m, g, t, p, e 分別表示 KiB, MiB, GiB,TiB,PiB,EiB。

dd 命令語法

注意: 下面的信息只存在于老版本的 Linux 或當 fallocate 命令不可用的系統上。如果可能的話盡量使用 fallocate 命令創建的二進制鏡像文件。dd 命令被認為是舊的并且不推薦使用,但這里介紹的只是歷史的原因。

基本語法:

dd if=/path/to/input of=/path/to/output [options]
OR
dd if=/dev/zero of=/path/to/output.img [options]
OR
dd if=/dev/zero of=YOUR-IMAGE-FILE-NAME-HERE bs=1 count=0 seek=Size-HERE

使用 dd 命令創建鏡像

首先,要確保磁盤有足夠的空間來存放 dd 創建的文件:

$ df -H

創建 1MB 文件,按回車:

$ dd if=/dev/zero of=test.img bs=1024 count=0 seek=1024

你將會得到一個空文件(也稱為“稀疏文件”)。創建 10M 的文件,按回車:

$ dd if=/dev/zero of=test.img bs=1024 count=0 seek=$[1024*10]

創建 100M 的文件,按回車:

$ dd if=/dev/zero of=test.img bs=1024 count=0 seek=$[1024*100]
$ ls -lh test.img

創建 1GB 的文件:

$ dd if=/dev/zero of=1g.img bs=1 count=0 seek=1G
示例輸出:0+0 records in
0+0 records out
0 bytes (0 B) copied, 0.000235686 s, 0.0 kB/s

確認文件大小(留意 bs 參數的作用):

$ ls -lh 1g.img
$ stat 1g.img
$ du -h 1g.im

dd 提示: 在 Unix 或 Linux 新建指定大小文件

如果 truncate 命令不可用,嘗試下面語法:
dd if=/dev/zero of=/path/to/fiie.img bs=YOUR-FILE-SIZE-HERE count=1

在這個例子中,新建一個 1GB 大小的文件(在 *BSD/OS X 使用 1g):

$ dd if=/dev/zero of=1g.bin bs=1G count=1
示例輸出:1+0 records in
1+0 records out
1073741824 bytes (1.1 GB) copied, 8.12307 s, 132 MB/s

確認文件大小:

$ stat 1g.bin

示例輸出:? File: `1g.bin’
Size: 1073741824? ? ? Blocks: 2097152? ? IO Block: 4096? regular file
Device: 805h/2053d? ? ? Inode: 9043988? ? Links: 1
Access: (0644/-rw-r–r–)? Uid: (? ? 0/? ? root)? Gid: (? ? 0/? ? root)
Access: 2013-11-27 04:15:02.962662890 -0600
Modify: 2013-11-27 04:15:03.769673943 -0600
Change: 2013-11-27 04:15:03.769673943 -0600

轉載請注明:REB站長網 » Linux/UNIX: 使用 dd 命令創建 1GB 大小的二進制

]]>
http://www.jzmqmk.tw/linux/153/feed/ 0
從零學帝國視頻教程 http://www.jzmqmk.tw/spjc/146/ http://www.jzmqmk.tw/spjc/146/#respond Sun, 10 Nov 2019 05:18:41 +0000 http://rebx.net/?p=146

由REB.NET站長reebor親自講授從零入門學習帝國CMS的基礎知識,從一個小白到整個網站制作完成的全程講授

  • 1-1:php服務器環境配置與安裝之APACHE(本講主要針對帝國的運行環境安裝,分別講述通過Apache和IIS兩種配置方法;以及帝國的安裝)
  • 1-2:php服務器環境配置與安裝之IIS(本講介紹服務器環境配置之IIS加載PHP環境)
  • 2-1:div+css首頁模板制作(通過DIV+CSS制作模板,讓我們了解模板的制作過程,為我們仿站、制作新站打下基礎,)
  • 2-2:DIV+CSS首頁模板制作2(接上接繼續講解)
  • 2-3:DIV+CSS首頁模板制作3(完成div+css首頁制作)
  • 2-4:DIV+CSS欄目頁模板制作(上一節我講述了用DIV+CSS制作首頁模板的方法,這一節我們接著講欄目頁的制作方法)
  • 2-5:DIV+CSS內容頁模板制作(通過DIV+CSS制作模板,讓我們了解模板的制作過程,為我們仿站、制作新站打下基礎,)
  • 3-1:帝國CMS采集管理視頻教程(帝國CMS采集管理、采集規則、采集過濾等詳細采集教程)
  • 4-1:首頁公共模板修改(首頁標簽化)(通過前幾集我們對模板制作的學習,我們制作好了屬于自己的模板,再通過采集我們得到了新聞內容,這一集開始我們將用帝國去完…)
  • 4-2:首頁公共模板修改(帝國CMS首頁標簽化)2(接上集)
  • 5-1:帝國CMS欄目頁模板修改及變量調用(通過上一集的視頻教程,大家掌握了自己做的模板用帝國去完善首頁的方法和技巧 ,本集接著上一集講欄目頁模板修改,以及變…)
  • 6-1:帝國CMS內容頁模板標簽化(通過我們之前所做的模板,用帝國CMS去完善內容頁的數據調用。)
  • 7-1:帝國CMS模板導入、安裝、調試、導出(為了節省時間或者前期學習帝國,我們往往選擇去下載一個別人已經制作好的模板來練習。或者是別人做得很漂亮的模板想下載了做.)
  • 8-1:SEO優化與推廣初談(當我們通過前面教程的學習,建立了自己的網站之后,怎么讓更多的人知道自己的網站?怎么讓自己網站被百度和谷歌收錄?)

轉載請注明:REB站長網 » 從零學帝國視頻教程

]]>
http://www.jzmqmk.tw/spjc/146/feed/ 0
GOOGLE翻譯API語言參照表 http://www.jzmqmk.tw/php/143/ http://www.jzmqmk.tw/php/143/#respond Sun, 10 Nov 2019 05:02:15 +0000 http://rebx.net/?p=143 各國語言的代碼
Afrikaans af
Albanian sq
Arabic ar
Azerbaijani az
Basque eu
Bengali bn
Belarusian be
Bulgarian bg
Catalan ca
Chinese Simplified zh-CN
Chinese Traditional zh-TW
Croatian hr
Czech cs
Danish da
Dutch nl
English en
Esperanto eo
Estonian et
Filipino tl
Finnish fi
French fr
Galician gl
Georgian ka
German de
Greek el
Gujarati gu
Haitian Creole ht
Hebrew iw
Hindi hi
Hungarian hu
Icelandic is
Indonesian id
Irish ga
Italian it
Japanese ja
Kannada kn
Korean ko
Latin la
Latvian lv
Lithuanian lt
Macedonian mk
Malay ms
Maltese mt
Norwegian no
Persian fa
Polish pl
Portuguese pt
Romanian ro
Russian ru
Serbian sr
Slovak sk
Slovenian sl
Spanish es
Swahili sw
Swedish sv
Tamil ta
Telugu te
Thai th
Turkish tr
Ukrainian uk
Urdu ur
Vietnamese vi
Welsh cy
Yiddish yi

轉載請注明:REB站長網 » GOOGLE翻譯API語言參照表

]]>
http://www.jzmqmk.tw/php/143/feed/ 0
php preg_replace() 正則替換所有符合條件的字符串 http://www.jzmqmk.tw/php/141/ http://www.jzmqmk.tw/php/141/#respond Sun, 10 Nov 2019 05:01:32 +0000 http://rebx.net/?p=141 需要我們用程序處理地數據并不總是預先以數據庫思維設計地,或者說是無法用數據庫地結構去存儲地.
比如模版引擎解析模版、垃圾敏感信息過濾等等.
一般這種情況,我們用正則按我們地規則去匹配preg_match、替換preg_replace.
但一般地應用中,無非是些數據庫crud,正則擺弄地機會很少.
根據前面說地,兩種場景:統計分析,用匹配;處理用替換.

php preg_replace() 正則替換,與javascript 正則替換不同,php preg_replace() 默認就是替換所有符號匹配條件地元素.
 

代碼如下:

preg_replace (正則表達式, 替換成, 字符串, 最大替換次數【默認-1,無數次】, 替換次數)



大部分語言地正則表達式都是差不多地,不過也有細微地差異.

php 正則表達式
 

正則字符 正則解釋
\ 將下一個字符標記為一個特殊字符、或一個原義字符、或一個向后引用、或一個八進制轉義符.例如,“\n”匹配字符“n”.“\\n”匹配一個換行符.序列“\\”匹配“\”而“\(”則匹配“(”.
^ 匹配輸入字符串地開始位置.如果設置了regexp對象地multiline屬性,^也匹配“\n”或“\r”之后地位置.
$ 匹配輸入字符串地結束位置.如果設置了regexp對象地multiline屬性,$也匹配“\n”或“\r”之前地位置.
* 匹配前面地子表達式零次或多次.例如,zo*能匹配“z”以及“zoo”.*等價于{0,}.
+ 匹配前面地子表達式一次或多次.例如,“zo+”能匹配“zo”以及“zoo”,但不能匹配“z”.+等價于{1,}.
匹配前面地子表達式零次或一次.例如,“do(es)?”可以匹配“does”或“does”中地“do”.?等價于{0,1}.
{n} n是一個非負整數.匹配確定地n次.例如,“o{2}”不能匹配“bob”中地“o”,但是能匹配“food”中地兩個o.
{n,} n是一個非負整數.至少匹配n次.例如,“o{2,}”不能匹配“bob”中地“o”,但能匹配“foooood”中地所有o.“o{1,}”等價于“o+”.“o{0,}”則等價于“o*”.
{n,m} m和n均為非負整數,其中n<=m.最少匹配n次且最多匹配m次.例如,“o{1,3}”將匹配“fooooood”中地前三個o.“o{0,1}”等價于“o?”.請注意在逗號和兩個數之間不能有空格.
當該字符緊跟在任何一個其他限制符(*,+,?,{n},{n,},{n,m})后面時,匹配模式是非貪婪地.非貪婪模式盡可能少地匹配所搜索地字符串,而默認地貪婪模式則盡可能多地匹配所搜索地字符串.例如,對于字符串“oooo”,“o?”將匹配單個“o”,而“o+”將匹配所有“o”.
.點 匹配除“\n”之外地任何單個字符.要匹配包括“\n”在內地任何字符,請使用像“[\s\s]”地模式.
(pattern) 匹配pattern并獲取這一匹配.所獲取地匹配可以從產生地matches集合的到,在vbscript中使用submatches集合,在jscript中則使用$0…$9屬性.要匹配圓括號字符,請使用“\(”或“\)”.
(?:pattern) 匹配pattern但不獲取匹配結果,也就是說這是一個非獲取匹配,不進行存儲供以后使用.這在使用或字符“(|)”來組合一個模式地各個部分是很有用.例如“industr(?:y|ies)”就是一個比“industry|industries”更簡略地表達式.
(?=pattern) 正向肯定預查,在任何匹配pattern地字符串開始處匹配查找字符串.這是一個非獲取匹配,也就是說,該匹配不需要獲取供以后使用.例如,“windows(?=95|98|nt|2000)”能匹配“windows2000”中地“windows”,但不能匹配“windows3.1”中地“windows”.預查不消耗字符,也就是說,在一個匹配發生后,在最后一次匹配之后立即開始下一次匹配地搜索,而不是從包含預查地字符之后開始.
(?!pattern) 正向否定預查,在任何不匹配pattern地字符串開始處匹配查找字符串.這是一個非獲取匹配,也就是說,該匹配不需要獲取供以后使用.例如“windows(?!95|98|nt|2000)”能匹配“windows3.1”中地“windows”,但不能匹配“windows2000”中地“windows”.
(?<=pattern) 反向肯定預查,與正向肯定預查類似,只是方向相反.例如,“(?<=95|98|nt|2000)windows”能匹配“2000windows”中地“windows”,但不能匹配“3.1windows”中地“windows”.
(? 反向否定預查,與正向否定預查類似,只是方向相反.例如“(?
x|y 匹配x或y.例如,“z|food”能匹配“z”或“food”.“(z|f)ood”則匹配“zood”或“food”.
[xyz] 字符集合.匹配所包含地任意一個字符.例如,“[abc]”可以匹配“plain”中地“a”.
[^xyz] 負值字符集合.匹配未包含地任意字符.例如,“[^abc]”可以匹配“plain”中地“plin”.
[a-z] 字符范圍.匹配指定范圍內地任意字符.例如,“[a-z]”可以匹配“a”到“z”范圍內地任意小寫字母字符.注意:只有連字符在字符組內部時,并且出兩個字符之間時,才能表示字符地范圍; 如果出字符組地開頭,則只能表示連字符本身.
[^a-z] 負值字符范圍.匹配任何不在指定范圍內地任意字符.例如,“[^a-z]”可以匹配任何不在“a”到“z”范圍內地任意字符.
\b 匹配一個單詞邊界,也就是指單詞和空格間地位置.例如,“er\b”可以匹配“never”中地“er”,但不能匹配“verb”中地“er”.
\b 匹配非單詞邊界.“er\b”能匹配“verb”中地“er”,但不能匹配“never”中地“er”.
\cx 匹配由x指明地控制字符.例如,\cm匹配一個control-m或回車符.x地值必須為a-z或a-z之一.否則,將c視為一個原義地“c”字符.
\d 匹配一個數字字符.等價于[0-9].
\d 匹配一個非數字字符.等價于[^0-9].
\f 匹配一個換頁符.等價于\x0c和\cl.
\n 匹配一個換行符.等價于\x0a和\cj.
\r 匹配一個回車符.等價于\x0d和\cm.
\s 匹配任何空白字符,包括空格、制表符、換頁符等等.等價于[ \f\n\r\t\v].
\s 匹配任何非空白字符.等價于[^ \f\n\r\t\v].
\t 匹配一個制表符.等價于\x09和\ci.
\v 匹配一個垂直制表符.等價于\x0b和\ck.
\w 匹配包括下劃線地任何單詞字符.等價于“[a-za-z0-9_]”.
\w 匹配任何非單詞字符.等價于“[^a-za-z0-9_]”.
\xn 匹配n,其中n為十六進制轉義值.十六進制轉義值必須為確定地兩個數字長.例如,“\x41”匹配“a”.“\x041”則等價于“\x04&1”.正則表達式中可以使用ascii編碼.
\num 匹配num,其中num是一個正整數.對所獲取地匹配地引用.例如,“(.)\1”匹配兩個連續地相同字符.
\n 標識一個八進制轉義值或一個向后引用.如果\n之前至少n個獲取地子表達式,則n為向后引用.否則,如果n為八進制數字(0-7),則n為一個八進制轉義值.
\nm 標識一個八進制轉義值或一個向后引用.如果\nm之前至少有nm個獲的子表達式,則nm為向后引用.如果\nm之前至少有n個獲取,則n為一個后跟文字m地向后引用.如果前面地條件都不滿足,若n和m均為八進制數字(0-7),則\nm將匹配八進制轉義值nm.
\nml 如果n為八進制數字(0-7),且m和l均為八進制數字(0-7),則匹配八進制轉義值nml.
\un 匹配n,其中n是一個用四個十六進制數字表示地unicode字符.例如,\u00a9匹配版權符號(©).

 

上表是正則表達式比較全面地解釋,而商標中地正則字符都有特殊含義,已經不再代表原字符含義.如正則表達式中“+”不代表加號,而是代表匹配一次或多次.而如果想要讓“+”表示加號,則需要在其前面加上“\”轉義,也就是用“\+”表示加號.

 

代碼如下:

1+1=2  正則表達式是: 1\+1=2
而正則表達式 1+1=2 可以代表,多個1=2,即:
11=2     正則表達式:1+1=2
111=2    正則表達式:1+1=2
1111=2   正則表達式:1+1=2
……

 

也就是說所有正則字符都有特定含義,如果需要再用來表示原字符含義,就需要在前面加“\”轉義,即使非正則字符,用“\”轉義也是沒有問題地.

 

代碼如下:

1+1=2  正則表達式也可以是: \1\+\1\=\2
對所有字符都轉義,但是這種不建議使用.

 

而正則表達式必須要使用定界符包圍起來,在javascript中定界符是“/”,而在php中,比較常見地是用“/”定界,也可以用“#”定界,而且外面還需要用引號包圍起來.

如果正則表達式包含這些定界符,您就需要對這些字符進行轉義.

php 正則表達式定界符

大多數語言地正則表達式都是由“/”作為定界符地,而在php中,還可以使用“#”定界,如果字符串中包含大量“/”字符,在使用“/”定界地時候,就需要對這些“/”轉義,而使用“#”就不需要轉義,更簡潔.

 

代碼如下:

<?php
$weigeti='w3cschool 在線教程地網址是 http://e.jb51.net/ ,你能把這個網址替換成正確地網址嘛?';
// 上面地要求就是把http://e.jb51.net/ 替換成 http://e.jb51.net/w3c/
// . : – 都是正則符號,所以需要轉義,而 / 是定界符,如果字符串中包含 / 定界符,就需要轉義
echo preg_replace('/http\:\/\/www\.jb51\.net\//','http://e.jb51.net/w3c/',$weigeti);
// 在 #作為定界符,/ 就不再是定界符地含義,就不需要轉義了.
echo preg_replace('#http\://www\.jb51\.net/#','http://e.jb51.net/w3c/',$weigeti);
//上面兩條輸出結果都一樣,【w3cschool 在線教程地網址是 http://e.jb51.net/w3c/ ,你能把這個網址替換成正確地網址嘛?】
?>

 

通過上面地兩條php 正則替換代碼我們可以發現,如果正則語句中包含大量“/”,無論使用“/” 還是 “#”做定界符都是可以地,但是使用“#”能讓代碼看起來更簡潔.但是e維科技建議您還是保持使用“/”作為定界符,因為在javascript等語言中,只能使用“/”作為定界符,這樣寫起來可以形成習慣,貫通于其他語言中.

php 正則表達式修飾符

修飾符被放在php正則表達式定界符“/”尾部,在正則表達式尾部引號之前.

 

代碼如下:

i 忽略大小寫,匹配不考慮大小寫
m 多行獨立匹配,如果字符串不包含[\n]等換行符就和普通正則一樣.
s 設置正則符號 . 可以匹配換行符[\n],如果沒有設置,正則符號.不能匹配換行符\n.
x 忽略沒有轉義地空格
e eval() 對匹配后地元素執行函數.
a 前置錨定,約束匹配僅從目標字符串開始搜索
d 鎖定$作為結尾,如果沒有d,如果字符串包含[\n]等換行符,$依舊依舊匹配換行符.如果設置了修飾符m,修飾符d 就會被忽略.
s 對非錨定地匹配進行分析
u 非貪婪,如果在正則字符量詞后加“?”,就可以恢復貪婪
x 打開與perl 不兼容附件
u 強制字符串為utf-8編碼,一般在非utf-8編碼地文檔中才需要這個.建議utf-8環境中不要使用這個,據e維科技調查使用這個會有一個bug.這個bug網址:

 

如果您熟悉javascript 地正則表達式,或許一定熟悉javascript 正則表達式地修飾符“g”,代表匹配所有符合條件地元素.而在php 正則替換中,是匹配所有符號條件地元素,所以不存在javascript 修飾符“g”.

php 正則中文和忽略大小寫php preg_replace() 是區分大小寫地,同時只能匹配ascii編碼內地字符串,如果需要匹配不區分大小寫和中文等字符需要添加相應地修飾符 i 或 u.

 

代碼如下:

<?php
$weigeti='w3cschool 在線教程網址:http://www.jb51.net/w3school/';
echo preg_replace('/w3cschool/','w3c',$weigeti);
//大小寫不同,輸出【w3c 在線教程網址:http://www.jb51.net/w3school/】
echo preg_replace('/w3cschool/i','w3c',$weigeti);
//忽略大小寫,執行替換輸出【w3c 在線教程網址:http://e.jb51.net/w3c/】
echo preg_replace('/網址/u','',$weigeti);
//強制 utf-8中文,執行替換,輸出【w3cschool 在線教程:http://www.jb51.net/w3school/】
?>

 

大小寫和中文在php中都是敏感地,但是在javascript正則中,只對大小寫敏感,忽略大小寫也是通過修飾符 i 作用地,但是javascript 不需要告知是否是utf-8中文等特殊字符,直接可以匹配中文.

php 正則換行符實例

php 正則表達式在遇到換行符時,會將換行符當做字符串中間一個普通字符.而通用符號.不能匹配\n,所以遇到帶有換行符地字符串正則會有很多要點.

 

代碼如下:

<?php
$weigeti=jb51.net\nis\nloving\nyou;

 

// 想要把上面$weigeti 替換成jb51.net

echo preg_replace('/^[a-z].*[a-z]$/','',$weigeti);
// 這個正則表達式是,匹配只包含\w地元素,$weigeti 是以v開頭,符合[a-z],而且結尾是u,也符合[a-z]..無法匹配\n
// 輸出【jb51.net is loveing you】

echo preg_replace('/^[a-z].*[a-z]$/s','',$weigeti);
// 這個用修飾符s,也就是 . 可以匹配 \n 了,所以整句匹配,輸出空
// 輸出【】

echo preg_replace('/^[a-z].*[a-z]$/m','',$weigeti);
// 這里使用了修飾符,將\n作為多行獨立匹配.也就等價于:
/*
$preg_m=preg_replace('/^[a-z].*[a-z]$/m','',$weigeti);

$p='/^[a-z].*[a-z]$/';
$a=preg_replace($p,'','jb51.net');
$b=preg_replace($p,'','is');
$c=preg_replace($p,'','loving');
$d=preg_replace($p,'','you');

$preg_m === $a.$b.$c.$d;
*/
// 輸出【jb51.net】
?>

 

以后您在使用php 抓取某個網站內容,并用正則批量替換地時候,總無法避免忽略獲取地內容包含換行符,所以在使用正則替換地時候一定要注意.

php 正則匹配執行函數php 正則替換可以使用一個修飾符e,代表 eval() 來執行匹配后地內容某個函數.

 

代碼如下:

<?php
$weigeti='w3cschool 在線教程網址:http://www.jb51.net ,你jbzj!了嘛?';
// 將上面網址轉為小寫
echo preg_replace('/(http\:[\/\w\.\-]+\/)/e','strtolower($1)',$weigeti);
// 使用修飾符e之后,就可以對匹配地網址執行php 函數 strtolower() 了
// 輸出 【w3cschool 在線教程網址:http://www.jb51.net ,你jbzj!了嘛?】
?>

 

根據上面代碼,盡管匹配后地函數 strtolower() 在引號內,但是依舊會被eval()執行.

正則替換匹配變量向后引用

如果您熟悉javascript,一定對$1 $2 $3 …… 等向后引用比較熟悉,而在 php 中這些也可以被當作向后引用參數.而在php中,還可以使用 \1 \\1 來表示向后引用.

向后引用地概念就是匹配一個大片段,這個正則表達式內部又被用括號切割成若干小匹配元素,那么每個匹配元素就被按照小括號序列用向后引用代替.

 

代碼如下:

<?php
$weigeti='w3cschool 在線教程網址:http://www.jb51.net ,你jbzj!了嘛?';

 

echo preg_replace('/.+(http\:[\w\-\/\.]+\/)[^\w\-\!]+([\w\-\!]+).+/','$1',$weigeti);
echo preg_replace('/.+(http\:[\w\-\/\.]+\/)[^\w\-\!]+([\w\-\!]+).+/','\1',$weigeti);
echo preg_replace('/.+(http\:[\w\-\/\.]+\/)[^\w\-\!]+([\w\-\!]+).+/','\\1',$weigeti);
// 上面三個都是輸出 【http://www.jb51.net】

echo preg_replace('/^(.+)網址:(http\:[\w\-\/\.]+\/)[^\w\-\!]+([\w\-\!]+).+$/','欄目:$1
網址:$2
商標:$3',$weigeti);
/*
欄目:w3cschool 在線教程
網址:http://www.jb51.net
商標:jbzj!
*/

// 括號中括號,外面括號先計數
echo preg_replace('/^((.+)網址:(http\:[\w\-\/\.]+\/)[^\w\-\!]+([\w\-\!]+).+)$/','原文:$1
欄目:$2
網址:$3
商標:$4',$weigeti);
/*
原文:w3cschool 在線教程網址:http://www.jb51.net ,你jbzj!了嘛?
欄目:w3cschool 在線教程
網址:http://www.jb51.net
商標:jbzj!
*/
?>

 

轉載請注明:REB站長網 » php preg_replace() 正則替換所有符合條件的字符串

]]>
http://www.jzmqmk.tw/php/141/feed/ 0
刪除重復數據,保留最小ID的 http://www.jzmqmk.tw/mysql/138/ http://www.jzmqmk.tw/mysql/138/#respond Sun, 10 Nov 2019 04:57:12 +0000 http://rebx.net/?p=138 delete from maccms.`maccms_vod` where d_id not in (select minid from (select min(d_id) as minid from maccms.`maccms_vod` group by d_name) b);

轉載請注明:REB站長網 » 刪除重復數據,保留最小ID的

]]>
http://www.jzmqmk.tw/mysql/138/feed/ 0
清除mysql-bin所有日志文件 http://www.jzmqmk.tw/mysql/136/ http://www.jzmqmk.tw/mysql/136/#respond Sun, 10 Nov 2019 04:56:06 +0000 http://rebx.net/?p=136
第一種技巧:
XML/HTML代碼
1 查詢musql-bin,mysql操作日志   
mysql> show master logs;   
   
2 刪除,保留最新   
mysql>purge master logs to ‘mysql-bin.00001′;   
   
3 my.cnf中去掉log-bin就可不讓生成這些日志文件了。   

徹底禁用MySQL日志:修改/etc/my.cnf 文件,找到
log-bin=mysql-bin
binlog_format=mixed
在前加上#注釋掉

第二種技巧: XML/HTML代碼 清理mysql的日志文件 發現var/db/mysql目錄下有這么多 mysql-bin.000001 … mysql-bin.000023 mysql-bin.index 而且比較大 數據庫的操作日志 mysql> reset master; 可以清理這些文件。

轉載請注明:REB站長網 » 清除mysql-bin所有日志文件

]]>
http://www.jzmqmk.tw/mysql/136/feed/ 0
解決Fatal error: Allowed memory size of 134217728 bytes exhausted http://www.jzmqmk.tw/mysql/133/ http://www.jzmqmk.tw/mysql/133/#respond Sun, 10 Nov 2019 04:54:24 +0000 http://rebx.net/?p=133 首先這句的提示說明可分配的內存太小,查看php.ini配置文件,修改大小,
memory_limit = 128M;
一般默認的是128M,修改其值,如512或1024,看你自己想分配多大的內存了。 NGINX的操作方法 進入/usr/local/php/etc 修改 PHP.INI 執行: /etc/init.d/php-fpm restart

轉載請注明:REB站長網 » 解決Fatal error: Allowed memory size of 134217728 bytes exhausted

]]>
http://www.jzmqmk.tw/mysql/133/feed/ 0
mysql的left right substr instr函數 http://www.jzmqmk.tw/mysql/131/ http://www.jzmqmk.tw/mysql/131/#respond Sun, 10 Nov 2019 04:53:26 +0000 http://rebx.net/?p=131 LEFT: 從左邊開始截取

mysql> SELECT LEFT('foobarbar', 5);

-> 'fooba'

mysql> SELECT LEFT('我是中文', 2);

-> '我是'

RIGHT: 從右邊開始截取

mysql> SELECT RIGHT('foobarbar', 5);

-> 'arbar'

mysql> SELECT RIGHT('我是中文', 2);

-> '中文'

 

SUBSTR(SUBSTRING) : 截取子字符串

mysql> SELECT SUBSTRING('Quadratically',5);

-> 'ratically'

mysql> SELECT SUBSTRING('foobarbar' FROM 4);

-> 'barbar'

mysql> SELECT SUBSTRING('Quadratically',5,6);

-> 'ratica'

mysql> SELECT SUBSTRING('Sakila', -3);

-> 'ila'

mysql> SELECT SUBSTRING('Sakila', -5, 3);

-> 'aki'

mysql> SELECT SUBSTRING('Sakila' FROM -4 FOR 2);

-> 'ki'

INSTR: 返回子字符串的位置

mysql> SELECT INSTR('foobarbar', 'bar');

-> 4

mysql> SELECT INSTR('xbar', 'foobar');

-> 0

轉載請注明:REB站長網 » mysql的left right substr instr函數

]]>
http://www.jzmqmk.tw/mysql/131/feed/ 0
MYSQL不同表之間的字段導入替換問題 http://www.jzmqmk.tw/mysql/128/ http://www.jzmqmk.tw/mysql/128/#respond Sun, 10 Nov 2019 04:51:21 +0000 http://rebx.net/?p=128 有兩個表,這兩個表有相同的兩個字段【id title】【id2 title】這兩個字段的數據是一樣的,只是id與id2名字不同。 現在第二個表的title字段不小心破壞了一些數據,我需要從第一個表里對應的id重新更新第二個表的title字段內容,請問sql怎么寫?
update 第二個表 b set title = (select title from 第一個表 a where a.id = b.id2) where b.id2 in (select id from 第一個表 a where a.id = b.id2); 

轉載請注明:REB站長網 » MYSQL不同表之間的字段導入替換問題

]]>
http://www.jzmqmk.tw/mysql/128/feed/ 0
四川快乐12走势图基本