① php中使用preg_match()匹配時,點號與橫線怎麼處理
中橫桿在本身就屬於正則 的一個語法
比如
A-Z表示從A到Z,而你要直接這個符號,那就應該用反斜杠轉義一下
\-這樣,
個人看法啊!
其實你上面的代碼似乎可以簡化一下
return preg_match("/^[0-9a-zA-Z_\.\-]+$/", $user) ? true : false;
這樣豈不是簡單明了
② 如何在PHP中轉義正則表達式字元
在PHP中,實現轉義正則表達式字元的函數是:preg_quote函數。語法如下:
Stringpreg_quote(stringstr[,stringdelimiter])
Str是用來進行字元轉義的正則表達式,delimiter是其他需要轉義的字元。
在PHP中可以使用preg_quote函數轉義一些特殊字元。
例如:
<?php
$str=preg_quote(「/\d{3}(\-\d{4})/」);echo$str;?>
結果:
/\\d\{3\}\-d{4}\-d{4}/
<?php
$str=preg_quote(「/\d{3}(\-\d{4})/」,」3「);echo$str;?>
結果:
/\\d\{\3\}\-d{4}\-d{4}/
這兩個例子有什麼區別呢?
就是紅色區域中的「3」,在第二個例子中將「3」也轉義出了。
③ PHP基礎語言書寫問題
PHP裡面單引號和雙引號基本用法都是一樣的,都表示字元串
其中雙引號中可以包含PHP變數和轉義符(轉義符是什麼以後會慢慢弄明白)
例如:
$abc = 100;
$str = "Num is $abc"; // 也可以將變數用大括弧{$abc}括起來,效果是一樣的,因為單寫變數時,若變數後面接的是英文,容易使解析器產生誤會,從而指向其他變數。所以用大括弧括起來更加安全
這樣的字元串包含變數,在單引號中則不允許。
我上面給出的例子,如果是用雙引號,會輸出:(Num is 100)
而單引號將不查找變數,會直接輸出(Num is $abc)
PHP中雙引號中的字元串還支持轉義符,例如我需要換行,我會用「\n」這樣的換行符。
雙引號當中是支持字元轉義的,而單引號不支持。
例如:
$abc = "This is a \nExample";
// 輸出:
This is a
Example
$abc = 'This is a \nExample';
// 輸出:
This is a \nExample
這大概就是PHP中雙引號與單引號的區別了。
正是因為這些區別,PHP的單引號是直接輸出引號內字元串,而雙引號支持變數等,所以在一般情況下,使用雙引號在效率上不如單引號。不過由於這樣的差異實在不大,所以可以根據個人喜好來使用單/雙引號
另外,「.」是PHP當中的連接符
例如 "sad"."abc" = "asdabc"
字元串之間可以用「.」來連接
這樣一來,你的問題就很好解決了。
第三種,前面的單引號中的是字元串,用「.」來連接下面的內容。314159265359E-11是數字,因為是科學計數法,所以不加單引號(單引號會將它變成字元串,達不到科學計數法的效果),再後面又用"."來連接一個字元串。
你下面的問題也很好解決了。單引號中的部分作為字元串來處理,這一行代碼結合了字元串和數字(上面說過圓點「.」用作連接啊~)
其實單引號和雙引號在PHP當中都表示字元串,不同的數據直接用圓點"."來連接
④ php 轉義字元
echo "<tr><td><a href=\"$_SERVER['PHP_SELF']?id=1\">上一頁</a><a href=\"$_SERVER['PHP_SELF']?id=2\">下一頁</a></td></tr>";
還是不對,數組特殊,應該如下:
<?php
echo "<tr><td><a href=\"{$_SERVER['PHP_SELF']}?id=1\">上一頁</a><a href=\"{$_SERVER['PHP_SELF']}?id=2\">下一頁</a></td></tr>";
?>
⑤ 如何將字元在PHP中的進行轉義
1、substr(源字元串,其實位置[,長度])-截取字元串返回部分字元串2、mb_substr(),使用方法和substr相同,不過要開啟php.ini裡面extension=php_mbstring.dll擴展,不用擔心,一般的空間商都會開啟這個擴展的。
樓主看明白了沒有,如果還不懂就去後盾人多看看吧,最近他們在搞什麼活動學費九折還包住宿
⑥ php中變數兩邊的兩個點號作用
1、在php中,點號是用來連接字元串的。
2、當一個字元串中存在著變數的時候,就會用到點號來連接。
3、例:$str = "這是字元串" . $s . "中間連接著一個變數";。
⑦ 請問php中的轉義字元是什麼 能詳細說一下嗎
在php中:
* 以單引號為定界符的php字元串,支持兩個轉義\'和\\
* 以雙引號為定界符的php字元串,支持下列轉義:
\n 換行(LF 或 ASCII 字元 0x0A(10))
\r 回車(CR 或 ASCII 字元 0x0D(13))
\t 水平製表符(HT 或 ASCII 字元 0x09(9))
\\ 反斜線
\$ 美元符號
\" 雙引號
\[0-7]{1,3} 此正則表達式序列匹配一個用八進制符號表示的字元
\x[0-9A-Fa-f]{1,2} 此正則表達式序列匹配一個用十六進制符號表示的字元
舉幾個例子:
一個包含\0特殊字元的例子:
$str = "ffff\0ffff";
echo(strlen($str));
echo("\n");
for($i=0;$i<strlen($str);$i++)echo("\t".ord($str{$i}));
echo("\n");
輸出結果:
----------------------
9
102 102 102 102 0 102 102 102 102
替換特殊字元的例子
$str = "ffff\0ffff";
$str = str_replace("\x0", "", $str);
//或者用$str = str_replace("\0", "", $str);
//或者用$str = str_replace(chr(0), "", $str);
echo(strlen($str));
echo("\n");
for($i=0;$i<strlen($str);$i++)echo("\t".ord($str{$i}));
echo("\n");
輸出結果:
----------------------
8
102 102 102 102 102 102 102 102
八進制ascii碼例子:
//注意,符合正則\[0-7]{1,3}的字元串,表示一個八進制的ascii碼。
$str = "\0\01\02\3\7\10\011\08\8"; //這里的\8不符合要求,被修正為"\\8" (ascii為92和56)
echo(strlen($str));
echo("\n");
for($i=0;$i<strlen($str);$i++)echo("\t".ord($str{$i}));
echo("\n");
輸出結果:
----------------------
11
0 1 2 3 7 8 9 0 56 92 56
十六進制ascii碼例子:
$str = "\x0\x1\x2\x3\x7\x8\x9\x10\x11\xff";
echo(strlen($str));
echo("\n");
for($i=0;$i<strlen($str);$i++)echo("\t".ord($str{$i}));
echo("\n");
輸出結果:
----------------------
10
0 1 2 3 7 8 9 16 17 255
⑧ 請問php中的轉義字元是把php代碼轉義成html代碼,對嗎
不是,是針對特殊的符號設定的,避免重復出現歧義 比如說"\"\""就是" "" " 但是後面這樣寫是直接錯誤!
給講的清楚的分數喔,不要看字數!
⑨ PHP如何去掉轉義
string addslashes ( string str) 返回字元串,該字元串為了資料庫查詢語句等的需要在某些字元前加上了反斜線。
這些字元是單引號(\')、雙引號(\")、反斜線(\\)與 NUL(NULL 字元) stripslashes作用相反在處理mysql和GET、POST的數據時,常常要對數據的引號進行轉義操作。 PHP中有三個設置可以實現自動對』(單引號),」(雙引號),\\(反斜線)和 NULL 字元轉移。 PHP稱之為魔術引號,這三項設置分別是 magic_quotes_gpc 影響到 HTTP 請求數據(GET,POST 和 COOKIE)。
不能在運行時改變。在 PHP 中默認值為 on。 magic_quotes_runtime 如果打開的話,大部份從外部來源取得數據並返回的函數,包括從資料庫和文本文件,所返回的數據都會被反斜線轉義。該選項可在運行的時改變,在 PHP 中的默認值為 off。 magic_quotes_sybase 如果打開的話,將會使用單引號對單引號進行轉義而非反斜線。
此選項會完全覆蓋 magic_quotes_gpc。如果同時打開兩個選項的話,單引號將會被轉義成 」。而雙引號、反斜線 和 NULL 字元將不會進行轉義。
雖然方便的實現了對特殊符號的自動轉義,但是這樣會使得程序效率降低,並導致程序可移植變得麻煩。在不知道伺服器ini設置的情況下,還需要調用get_magic_quotes_gpc() ,get_magic_quotes_runtime() 或ini_get()來檢測狀態。使用stripslashes去掉轉義
⑩ PHP轉義字元
中括弧的內容是匹配的東西,^> 的意思是匹配所有,除了>這個符號,後面的+意思是前面的東西出現至少1次, 那麼 <[^>]+> 這個模式就是匹配所有的html標簽比如<a>,<div>,<tb>等等, 後面那個 </[^>]+> 就是匹配</a>,</div>,</tb>這些結束標簽
中間圓括弧括起來的就是這個表達式想要抓取的內容,一點 . 的意思是所有字元,*和加號+一樣是重復次數,不同的是*號意思是出現0次或以上次數
總的來說這個表達式就是匹配HTML標簽中間的內容,也就是去掉HTML標簽的作用,其實要達到這個效果不需要這么麻煩,有一個函數可以做這個事情
strip_tags()