導航:首頁 > 凈水問答 > php過濾雙引號

php過濾雙引號

發布時間:2025-09-22 19:37:24

Ⅰ PHP裡面的include是什麼意思連接資料庫的時候才用嗎後面括弧裡面的以.php為結尾的文件

$usernc是獲取到的用戶輸入信息($_POST['usernc']),trim()去除字元串首尾的無意義的字元(空格、製表符(就是鍵盤上的Tab鍵)、換行符" "(unix及類unix系統的換行符)、回車符" "(又稱軟換行符,Mac OS X的換行符))。(另外說一下,windows的換行符是" ",也支持" ",但不支持單獨的" ")


另外,少用雙引號,單引號更快。
雙引號支持在字元串中嵌入變數,也支持更多的字元轉義(" "," "之類的必須用雙引號)。

例如:

<?php
$b='b';
$str="a{$b}c";//相當於$str='a'.$b.'c';但雙引號更慢
?>

單引號僅支持很少的轉義序列。事實上,它只支持

'''//這是一個單引號字元,相當於"'"

'\'//這是一個反斜線

不過,單引號的速度要快得多。


include可以引入一個PHP文件或HTML文件。

如果引入php文件,那麼php會先執行被include的文件中的代碼,再執行後面的代碼。

如果引入html文件,那麼php會直接輸出這個文件。


在本例中,連接資料庫的代碼被放在了conn文件夾下的conn.php中。

所以,在這里包含此文件,就可以連接到資料庫。


參見PHP手冊:include 和 include_once:

http://php.net/manual/zh/function.include.php

http://php.net/manual/zh/function.include-once.php


舉個例子:

inc.php

<?php
echo'a';
?>

b.php

<?php
echo'm';

//include允許相對路徑與絕對路徑,這里是相對路徑
//PHP手冊推薦在使用include和require時不使用括弧
//因為它們是語法結構(就像if,echo之類的),而不是函數
include'inc.php';
echo'n';
?>

你運行b.php,將會輸出:

man

加不加_once都可以,不過建議你不要加,這樣運行起來會很慢(慢了好幾倍)。

include_once主要是為了防止某些函數被重復定義(多次包含)而報錯。

這應該用合理的代碼規劃來避免,而不是使用_once後綴。

雖然性能問題在小程序中不會得到太大體現,但是在一些復雜的項目中,差勁的代碼導致的性能問題一定會讓你抓狂。


你結合microtime()函數來測試一下,就可以看出來了。

代碼如下:

<?php
//獲取代碼運行的時間
$t=microtime(TRUE);

//這里放上你要測試的代碼

//輸出運行時間,代碼以毫秒為單位
//直接echo很可能會輸出為科學計數法,看起來不直觀
printf('%f',microtime(TRUE)-$t);
unset($t);//變數用完就注銷是個好習慣
?>

另外,如果文件不存在,include會產生警告。

還有一個函數require,與include類似,不過如果文件不存在會產生錯誤。require比include快一些,因為include有返回值,而require沒有。同樣,最好不要使用require_once。


參見PHP手冊:require 和 require_once:

http://php.net/manual/zh/function.require.php

http://php.net/manual/zh/function.require-once.php


另外,我建議您不要再看這本書了,這本書的代碼就好像是一個初學者寫的一樣,根本不符合規范,而且會有很大的性能問題。

例如:

(1)數組鍵名沒有加上引號。php會首先查找是否存在以這個鍵名為名稱的常量。如果存在,這段代碼就很可能會出問題。如果不存在,php沒有辦法,只能返回這個字元串。在這查找的過程中,就會造成相當大的性能損失。

(2)大量使用雙引號,而且還沒有正確利用雙引號的特性。

(3)沒有過濾用戶輸入,存在SQL注入漏洞。應該把單引號轉義。

應該改為:

//適用於大多數資料庫,不適用於Sybase
$usernc=addslashes(trim($_POST['usernc']));
//或者
$usernc=mysql_real_escape_string(trim($_POST['usernc']));//僅適用於MySQL

(4)既然有了$_POST['usernc'],為什麼還要再用$usernc呢?難道就為了少輸幾個字元?浪費伺服器內存資源。伺服器內存資源是非常寶貴的,不應該這樣浪費。每執行一次PHP程序都會創建一個新的操作系統線程,並分配2MB的配套內存。使用不當,可能會造成內存泄露(Out of Memory)!如果是在大型網站上,更應注意此類問題。

(5)既然只是判斷一條數據是否存在(用戶名是否存在),就應該在SQL語句的末尾加上

LIMIT1

否則,會嚴重影響MySQL性能。不加的話,MySQL找到一條數據後,還會繼續查找符合條件的數據(即使並不存在)。如果這個數據表的數據量非常大,那浪費的時間是相當恐怖的!

而加上後,MySQL 搜索到一條數據後就會停止,不會浪費時間。

(6)依賴JavaScript中的history.back()是不對的。如果用戶沒有保存歷史記錄(一些瀏覽器有無痕瀏覽模式,例如Firefox,Chrome等),或者用戶剛好將歷史記錄清除了,這條語句就會失效。最好的辦法是新建一個session變數,例如$_SESSION['history'],將歷史記錄保存在裡面就可以了。再說本例中,程序是應該知道應該跳轉到哪個頁面的(不是有getuserinfo.php嗎?)。

應該直接302重定向。可以使用下面的代碼:

//把「網址」替換為相應的URL就行了
//注意:是從http://一直到URL最後
header('Location:網址');

注意,這之前不能有輸出。或者,在程序最開始的php文件上方加上:

ob_start();

這樣就可以了。


以上這些問題都是應該避免的。

Ⅱ php 如何過濾 單引號 雙引號 $ < > 等N種特殊符號謝謝

我給樓主吧- - 首先是過濾html,將html編碼轉換為實體編碼 /**
* 將特殊字元轉成 HTML 格式。
* @param string $value - 字元串或者版數組
* @return array
*/
public static function htmlspecialchars($value) {
return is_array($value) ? array_map('k::htmlspecialchars', $value) :
preg_replace('/&((#(\d{3,5}|權x[a-fA-F0-9]{4})|[a-zA-Z][a-z0-9]{2,5});)/', '&\\1',
str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $value));
} 還有一個去除html編碼的,可以直接用php的函數strip_tags()

Ⅲ php如何去除寫出的雙引號

1、實現在寫CSV文件時需要先判斷是否有逗號和雙引號並做相應處理的方法代碼如下

閱讀全文

與php過濾雙引號相關的資料

熱點內容
離子交換樹脂在釩行業的運用 瀏覽:618
凈水桶的水怎麼弄乾 瀏覽:99
東風天錦kr空調濾芯怎麼拆不下來 瀏覽:575
帶切割刀污水泵什麼牌子好 瀏覽:959
商用空氣凈化器效果怎麼樣 瀏覽:156
速騰汽油濾芯更換多少錢 瀏覽:26
優普純水機多少錢一台 瀏覽:20
調節池提升泵功率計算 瀏覽:841
飲水機熱敏電阻是什麼型號 瀏覽:521
lh3凈水器怎麼換濾芯 瀏覽:783
城市生活污水處理什麼價格 瀏覽:67
bwt濾芯怎麼分辨用過沒用過 瀏覽:122
污水處理廠好還是自來水廠好 瀏覽:153
php過濾雙引號 瀏覽:642
凈化器不用時間長了怎麼辦 瀏覽:730
污水處理廠約談 瀏覽:712
生化池去除污水中的什麼有機物 瀏覽:36
純水電阻率和什麼有關 瀏覽:625
反滲透裝置為什麼加入阻垢劑 瀏覽:192
一汽豐田威馳的空調濾芯在哪裡 瀏覽:880