本文目錄一覽:
- 1、PHP裏面的include是什麼意思?連接數據庫的時候才用嗎?後面括號裏面的以.php為結尾的文件
- 2、PHP如何輸出換行符
- 3、php中如何換行
- 4、php包含文件後顯示有換行,怎麼辦?
- 5、php中如何換行?
PHP裏面的include是什麼意思?連接數據庫的時候才用嗎?後面括號裏面的以.php為結尾的文件
$usernc是獲取到的用戶輸入信息($_POST[‘usernc’]),trim()去除字符串首尾的無意義的字符(空格、製表符(就是鍵盤上的Tab鍵)、換行符”\n”(unix及類unix系統的換行符)、回車符”\r”(又稱軟換行符,Mac OS X的換行符))。(另外說一下,windows的換行符是”\r\n”,也支持”\n”,但不支持單獨的”\r”)
另外,少用雙引號,單引號更快。
雙引號支持在字符串中嵌入變量,也支持更多的字符轉義(”\r”,”\n”之類的必須用雙引號)。
例如:
?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:
舉個例子:
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:
另外,我建議您不要再看這本書了,這本書的代碼就好像是一個初學者寫的一樣,根本不符合規範,而且會有很大的性能問題。
例如:
(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語句的末尾加上
LIMIT 1
否則,會嚴重影響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或者chr(10)函數,輸出\n時一定要用雙引號,如:echo “\n”;
chr() 函數從指定的 ASCII 值返回字符。ASCII 值可被指定為十進制值、八進制值或十六進制值。八進制值被定義為帶前置 0,而十六進制值被定義為帶前置 0x。
而10在十進制的ASCII 字符里代表換行的意思,所以在php里就這樣寫chr(10)。
\n則是轉義字符,也是代表換行的意思。轉義字符是指那些不能顯示的ASCII字符,在字母前加”\”來表示,常見的如\0,\t,\n等。
php中如何換行
用正則的換行,結束位置加上 \n。例如:$text = 「我是文本\n」。
簡介:
PHP,一個嵌套的縮寫名稱,是英文超級文本預處理語言的縮寫。PHP 是一種 HTML 內嵌式的語言,PHP與微軟的ASP頗有幾分相似,都是一種在服務器端執行的嵌入HTML文檔的腳本語言,語言的風格有類似於C語言。
安裝:
它可以比 CGI或者Perl更快速地執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。
發展:
PHP原始為 Personal Home Page的縮寫,現已經正式更名為 “PHP: Hypertext Preprocessor”的縮寫。注意不是「Hypertext Preprocessor」的縮寫,這種將名稱放到定義中的寫法被稱作遞歸縮寫。PHP於19 ISAPI篩選器94年由Rasmus Lerdorf創建,剛剛開始是Rasmus Lerdorf 為了要維護個人網頁而製作的一個簡單的用Perl語言編寫的程序。最初這些工具程序用來顯示 Rasmus Lerdorf 的個人履歷,以及統計網頁流量。
php包含文件後顯示有換行,怎麼辦?
include作用
就是把你要包含的文件里的內容
粘貼到你所要包含的那個位置
實際上就是
你包含文件里的內容是什麼樣子
你所包含的那個位置就是什麼樣子
也就是
如果你包含的那個文件裡邊開頭有回車
或者
換行之類的
就也有可能導致這種情況
或者你可以試試
inlucde
tirm(「包含文件」);
這樣試試
php中如何換行?
用正則的換行,結束位置加上 \n。例如:$text = 「我是文本\n」。
簡介:
PHP,一個嵌套的縮寫名稱,是英文超級文本預處理語言的縮寫。PHP 是一種 HTML 內嵌式的語言,PHP與微軟的ASP頗有幾分相似,都是一種在服務器端執行的嵌入HTML文檔的腳本語言,語言的風格有類似於C語言。
安裝:
它可以比 CGI或者Perl更快速地執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。
發展:
PHP原始為 Personal Home Page的縮寫,現已經正式更名為 “PHP: Hypertext Preprocessor”的縮寫。注意不是「Hypertext Preprocessor」的縮寫,這種將名稱放到定義中的寫法被稱作遞歸縮寫。PHP於19 ISAPI篩選器94年由Rasmus Lerdorf創建,剛剛開始是Rasmus Lerdorf 為了要維護個人網頁而製作的一個簡單的用Perl語言編寫的程序。最初這些工具程序用來顯示 Rasmus Lerdorf 的個人履歷,以及統計網頁流量。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/196405.html