php中的addslashes函數

昨天在看我的google快訊時看到了php中的這個函數,發現我好像對這個函數不是特別的瞭解嗎

 

查看了手冊,發現了這個函數主要是轉義了數據庫中的特殊字符,比如 ' 單引號 " 雙引號等在數據庫中的特殊的字符

 

當然了這個addslashes使用是要先檢查magic_quotes_gpc這個的系統配置了,如果配置了就必須不能在使用了,如果兩次轉就不對了,所以一般代碼是這樣寫的

if (! get_magic_quotes_gpc ()) {
    
$lastname  addslashes ( $_POST [ 'lastname' ]);
} else {
    
$lastname  $_POST [ 'lastname' ];
}


可我突然想這些轉義符好像在mssql數據庫裏不是這樣的啊,像雙引號是根本不用轉的,單引號也是變成了兩個個單引號啊,看到網站下面確實是這樣啊,不需要的而且是多此一舉的,而且這個默認有是開着的,如果我要操作mssql數據庫不是很麻煩嗎

 

是有個函數可以轉化回來的 striplashes 可以去掉轉義符號的

 

看來php是專門爲mysql數據庫設計的啊

 

在看striplashes 看到了這樣一個例子

<?php
$str 
"Is your name O/'reilly?" ;

// Outputs: Is your name O'reilly?
echo  stripslashes ( $str );
?>

感覺有點奇怪啊,反斜槓加單引號很奇怪啊,因爲單引號不是不需要反斜槓的嗎,一個反斜槓怎麼會可以的啊,因爲我以前使用的是c#的如果反斜槓不能轉義時就會出錯的,這裏我試了好幾次我使用了 $str  "Is your name O//'reilly?" 這樣的語句試一下竟然是一樣的我還試了 $str  "Is your name O/a'reilly?" ; 這樣的也是能夠正常輸出反斜槓的,想了下感覺是如果不能轉義是反斜槓就是反斜槓啊,這樣的定義正是有點彆扭啊


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章