Time of Update: 2016-07-15
PHP顯示MySQL亂碼問題1. 用PHPmyAdmin操作MySQL資料庫漢字顯示正常 ,但用PHP網頁顯示MySQL資料時所有漢字都變成了?號。癥狀:用PHPmyAdmin輸入漢字正常,但當PHP網頁顯示MySQL資料時漢字就變成了?號,並且有多少個漢字就有多少個?號。很多學員都遇到了此問題,尤其是在安裝了最新版的Appserv後。為此許多學員放棄了PHP,改學ASP了。原因:沒有在PHP網頁中用代碼告訴MySQL該以什麼字元集輸出漢字。★
Time of Update: 2016-07-15
我們在使用這是開始寫的: ?php function test($i) { $i -= 4; if($i 3) { return $i; } else { test($i); } } echo test(30); ?> 這段代碼看起來沒有問題,其實有else裡面是有問題的。在這裡執行的test沒有傳回值。所以雖然滿足條件$i ?php
Time of Update: 2016-07-15
最近做的一個PHP網站項目新聞部分需要一個功能,按照標題的寬度截取字串並在末尾添加“...”,首先想到的就是使用PHP的mb_字串函數實現,mb_strimwidth,mb_strwidth,後發現如果標題中存在“”符號的時候,PHP
Time of Update: 2016-07-15
我們在實際代碼編程中,會發現在我的IIS 伺服器上(CGI)模式,我的PHP遞迴效率測試結果是:非遞迴調用的花費:0.036401009559631遞迴調用的花費:0.053439617156982在我的Apache 伺服器上,我的測試結果是:非遞迴調用的花費:0.022789001464844遞迴調用的花費:0.014809131622314PHP遞迴效率的結果完全相反,而PHP的版本是一樣的。看來對PHP遞迴效率要具體問題具體分析了。http://www.bkjia.com/PHPjc/44
Time of Update: 2016-07-15
在網上搜了很多這方面的資料,發現都是將excel檔案另存新檔csv檔案,然後從csv檔案匯入。這裡介紹一個直接將excel檔案匯入mysql的例子。我花了一晚上的時間測試,無論匯入簡繁體都不會出現亂碼,非常好用。PHP-ExcelReader,下載地址: http://sourceforge.net/projects/phpexcelreader說明:PHP將EXCEL匯入MYSQL的測試環境:MYSQL資料庫採用utf8編碼.匯入EXCEL文檔是xls格式,經過測試,xlsx
Time of Update: 2016-07-15
我們在學習PHP字串操作(1)echo,print,printf,sprintf 前兩個函數是輸出字串.字串中如果有變數名則被替換成其值. 後兩個函數類似於C的同名函數.PHP字串操作(2)strchr,strlen,strtok,strrchr,strrev,strstr,strtolower, strtoupper,substr,ucfirst 這些是常用的PHP字串操作,有些和C中的同名函數意義完全一致. strrev是把一個字串翻轉.
Time of Update: 2016-07-15
大家現在也許對但是遞迴函式是一個很複雜而且雜亂的東西,大多數開發人員(包括我自己) 並不是真正喜歡使用它們。這就是為什麼當我的上一個項目需要為一個單獨檔案掃描一個目錄層級時(一個典型的遞迴函式任務),我甚至沒有考慮過要迴圈自己的 代碼。我取而代之地直接使用了PEAR和它的File_Find類,免除了我搜尋多層目錄結構的痛苦。File_Find類是為了能讓你真 正做好兩件事情而設計的。第一,它可以讓你掃描一個分類樹,然後將其轉換成為PHP結構——一個嵌套的數組—
Time of Update: 2016-07-15
要麼頁面原始漢字和從資料庫裡取出的漢字全是亂碼;要麼原始漢字和資料庫漢字,一個顯示正常了,另一個就變成亂碼了。很煩很氣人! 問題需要一步一步的解決。在實際操作以下方法之前,需要配置 Web 服務器,使其與 PHP 整合,最終可以調試 PHP 程式。我們以常見的 GB2312 和 UTF-8 字元集為例來測試和說明。瀏覽器是 IE7.0。頁面原始漢字亂碼的解決PHP字元集編碼的原理我就不說了,網上搜尋一下字串“PHP
Time of Update: 2016-07-15
PHP擴充庫的說明和解釋:php_bz2.dll bzip2 壓縮函數庫 無php_calendar.dll 曆法轉換函式庫 自 PHP 4.0.3 起內建php_cpdf.dll ClibPDF 函數庫 無php_crack.dll 密碼破解函數庫 無php_ctype.dll ctype 家族函數庫 自 PHP 4.3.0 起內建php_curl.dll CURL,用戶端 URL 庫函數庫 需要:libeay32.dll,ssleay32.dll(已附帶)php_cybercash.dll
Time of Update: 2016-07-15
我們對關於utf-8的原理請看 UTF-8 FAQUTF-8編碼的字元可能由1~3個位元組組成, 具體數目可以由第一個位元組判斷出來。(理論上可能更長,但這裡假設不超過3個位元組)第一個位元組大於224的,它與它之後的2個位元組一起組成一個UTF-8字元第一個位元組大於192小於224的,它與它之後的1個位元組組成一個UTF-8字元否則第一個位元組本身就是一個英文字元(包括數字和一小部分標點符號)。以前為某網站設計的代碼(也是現在用在首頁的長度截取的函數)PHP截取utf-8字串的程式碼範例:
Time of Update: 2016-07-15
文法: int fsockopen(string hostname, int port, int [errno], string [errstr], int [timeout]);傳回值: 整數函數種類: 網路系統內容說明: 目前PHP網路函數fsockopen提供二個 Socket 資料流介面,分別為 Internet 用的 AF_INET 及 Unix 用的 AF_UNIX。當在 Internet 情形下使用時,參數 hostname 及 port 分別代表網址及埠號。在 UNIX
Time of Update: 2016-07-15
以上代碼輸出結果為:bool(true)所以,在使用對字串進行比較時,建議使用PHP運算子==對字串進行嚴格的檢查,或使用strcmp()等函數,從而避免可能產生的問題。除此之外,常用的in_array()函數也存在弱類型的問題,見如下代碼: ?php var_dump(in_array('01', array('1'))); ?>
Time of Update: 2016-07-15
1、檔案編碼:指的是分頁檔(.html,.php等)本身是以何種編碼來儲存的。記事本和Dreamweaver在開啟頁面時候會自動識別檔案編碼因而不太會出問題。而ZendStudio卻不會自動識別編碼,它只會根據喜好設定的配置固定以某種編碼開啟檔案,如果工作時候一不注意,用錯誤編碼開啟檔案,做了修改之後一儲存,亂碼就出現了(我深有體會)。2、頁面申明編碼:在HTML代碼HEAD裡面,可以用來告訴瀏覽器網頁採用了什麼編碼,目前中文網站開發中XXX主要用的是GB2312和UTF-8兩種編碼。3、資料庫
Time of Update: 2016-07-15
對於初學者來說,掌握PHP中常用函數的用法,是其繼續學習的基礎。今天我們就為大家詳細介紹有關說明array split ( string $pattern, string $string [, int $limit] )提示preg_split() 函數使用了 Perl 相容Regex文法,通常是比PHP函數split()更快的替代方案。如果不需要Regex的威力,則使用 explode() 更快,這樣就不會招致Regex引擎的浪費。本函數返回一個字串數組,每個單元為 string
Time of Update: 2016-07-15
在本函數沒什麼用處,因為每次調用時都會將 $w3sky 的值設為 0 並輸出 "0"。將變數加一的 $w3sky++ 沒有作用,因為一旦退出本函數則變數 $w3sky 就不存在了。要寫一個不會丟失本次計數值的計數函數,要將變數 $w3sky 定義為靜態:例子 使用PHP靜態變數static的例子 ?PHP function Test(){ static $w3sky = 0; echo $w3sky; $w3sky++; } ?> 現在,每次調用 Test() 函數都會輸出
Time of Update: 2016-07-15
對於初學的朋友來說,PHP還有很多東西需要深入的探究。只有在不斷的問題處理中才能掌握其中的真摯。什麼是PHP無限分類呢?就像windows下建立一個檔案夾,在建立的檔案夾下又可以建立一個檔案夾,這樣無限迴圈下去,無限分類也是這樣,父類可以分出它子類,子類又可以分出它的子類,這樣一直無限迴圈下去。那PHP又是如何?它的無限分類的呢?如何把它的各個分類一一列出來呢?首先我們假設有這樣的一個三級分類,新聞→PHP新聞→PHP6.0出來了。如果我們要尋找“PHP6.0出來
Time of Update: 2016-07-15
我們今天要向大家介紹的是1.條件: PHP magic_quotes_gpc=off寫入資料庫的字串未經過任何過濾處理。從資料庫讀出的字串也未作任何處理。資料: $data=”snow”’’sun” ; (snow和sun之間是四個連續的單引號).操作: 將字串:”snow”’’sun” 寫入資料庫,結果:
Time of Update: 2016-07-15
PHP代碼效能最佳化1. 不要隨便就複製變數有時候為了使 PHP 代碼更加整潔,一些 PHP 新手(包括我)會把預定義好的變數複製到一個名字更簡短的變數中,其實這樣做的結果是增加了一倍的記憶體消耗,只會使程式更加慢。試想一下,在下面的例子中,如果使用者惡意插入 512KB 位元組的文字到文本輸入框中,這樣就會導致 1MB 的記憶體被消耗!BAD: $description = $_POST['description']; echo $description; GOOD: echo
Time of Update: 2016-07-15
我們在進行PHP函數mb_strcut,他們兩個的用法與substr()相似,只是在PHP函數mb_strcut最後要加入多一個參數,以設定字串的編碼,但是一般的伺服器都沒開啟php_mbstring.dll,需要在php.ini在把php_mbstring.dll開啟,如果我們不確定有沒有開啟這功能,那麼我們最好先判斷一下,if(function_exist(mb_string)).舉個例子:php echo mb_substr('這樣一來我的字串就不會有亂碼^_^', 0, 7, 'utf-
Time of Update: 2016-07-15
PHP函數preg_match_all的具體使用方法我們可以在PHP函數preg_match_all執行個體要求:分別將每一個DIV元素的ID和內容取出,如biuuu,biuuu_2,biuuu_3,php自學網,php自學網2和php自學網3(一些常用的抓站方法就是這樣匹配的)分析:字串是一個簡單的HTML元素,每一個DIV元素對應該一個ID和內容,並且是獨立的,首先考慮如何取出一個DIV內的ID值和內容,