echo intval(42); // 42 echo intval(4.2); // 4 echo intval('42'); // 42 echo intval('+42'); // 42 echo intval('-42'); // -42 echo intval(042); // 34 echo intval('042'); // 42 echo intval(1e10); // 1410065408 echo intval('1e10'); // 1 echo intval(42000000); // 42000000 echo intval(420000000000000000000); // 0 echo intval('420000000000000000000'); // 2147483647 ``` ### 三、 魔術引號Magic Quotes 1. 當php.ini中的magic\_quotes\_gpc=On時,自動對所有的 GET、POST、COOKIE 資料中,針對 '(單引號),"(雙引號),\\(反斜線)和 NULL 字符都會被自動加上一個反斜線進行轉義。這和 addslashes() 作用完全相同。 2. 魔術引號在 PHP 中用來減少隱碼攻擊風險。(隱碼攻擊:SQL injection,在輸入的字串之中夾帶SQL指令,在設計不良的程式當中忽略了檢查,那麼這些夾帶進去的指令就會被資料庫伺服器誤認為是正常的SQL指令而執行,因此遭到破壞。) 3. 為什麼PHP6不用魔術引號 - (1) 可移植性:因為每台機器設定都不同,容易影響移植性。建議自己用 get\_magic\_quotes\_gpc() 來檢查是否打開,並據此來寫相關處理動作。 - (2) 性能:由於並不是每一段被轉義的資料都要插入到資料庫的,如果所有資料都被轉義的話,那麼會對程序的執行效率產生一定的影響。 - (3) 不便:由於不是所有數據都需要轉義,在不需要轉義的地方看到轉義的資料就很煩。比如說通過表單發送郵件,結果看到一大堆的 \\'。 4. get\_magic\_quotes\_gpc ():用來取得目前魔術引號的設定狀況 5. addslashes():針對 '(單引號),"(雙引號),\\(反斜線)和 NULL 字符都會被自動加上一個反斜線進行轉義。 6. stripslashes():去除反斜線用。 7. 資料新增到資料庫前可以這樣用:$content = (! get\_magic\_quotes\_gpc ()) ? addslashes ($content) : $content; 您可以用「';<script>alert('aaa');</script>」來測試看看。
進階搜尋
332人線上 (128人在瀏覽線上書籍)
會員: 0
訪客: 332