Time of Update: 2016-07-13
分享下在PHP中過濾ascii控制字元的方法。將爬來的其它網站的資料導到xml,問題:即網頁會有ascII的控制字元。一開始以為是別人為了防止採集而加入的,然後發現一個就往過濾表裡加一個。直到慢慢發現,他們都是ascii表裡的字元。解決方案:/** * 根據ascii碼過濾控制字元 * @param type $string */public static function special_filter($string) { if(!$string) return '';$new_string
Time of Update: 2016-07-13
PHP 5 具有完整的反射 API,添加了對類、介面、函數、方法和擴充進行反向工程的能力。 此外,反射 API 提供了方法來取出函數、類和方法中的文檔注釋。通過使用反射API可以分析其他的類、介面、方法、屬性、函數和擴充。下面舉例展示PHP自身類 Reflection 的定義:Reflection::export(new ReflectionClass('Reflection'));列印結果如下:Class [ internal:Reflection> class Reflection ] {
Time of Update: 2016-07-13
thinkPHP的F方法只能用於緩衝單一資料型別,不支援有效期間和緩衝對象。S()緩衝方法支援有效期間,又稱動態緩衝方法,使用樣本如下:複製代碼 代碼如下:// 使用data標識緩衝$Data資料S('data',$Data); //前面的是緩衝標示,後面的是緩衝的資料複製代碼 代碼如下:// 緩衝$Data資料3600秒S('data',$Data,3600);複製代碼 代碼如下:// 刪除快取資料S('data',NULL); //第一個參數時緩衝的標識名 複製代碼
Time of Update: 2016-07-13
Web伺服器執行一個PHP指令碼,有時耗時很長才能返回執行結果,後面的指令碼需要等待很長一段時間才能繼續執行。如果想實現只簡單觸發耗時指令碼的執行而不等待執行結果就直接執行下一步操作,可以通過fscokopen函數來實現。PHP支援socket編程,fscokopen函數返回一個到遠程主機串連的控制代碼,可以像使用fopen返回的控制代碼一樣,對它進行
Time of Update: 2016-07-13
項目用到臨時寫的。待完善:複製代碼 代碼如下:/* * 根據使用者提交的(swf/html)地址,擷取優酷,馬鈴薯的swf播放地址 * */ private function _getSwf ($url = '') { if(isset($url) && !empty($url)){ preg_match_all('/http:\/\/(.*?)?\.(.*?)?\.com\/(.*)/',$url,$types);
Time of Update: 2016-07-13
這幾天有在用simple_html_dom抓一些文章。不同網站的編碼在國內基本上是gbk gb2312 utf-8。而以gb2312和utf-8居多。我這一版的simple_html_dom有一個方法 convert_text 是這個樣子的。複製代碼 代碼如下: // PaperG - Function to convert the text from one character set to another if the two sets are not the same. function
Time of Update: 2016-07-13
discuz註冊時,會把密碼按一個規則加密。比如我的密碼是123456複製代碼 代碼如下:echo md5("123456"); 會輸出:複製代碼 代碼如下:e10adc3949ba59abbe56e057f20f883e而資料庫的值卻為:複製代碼 代碼如下:7839dc9437013b5c11a5d86e9b8350e9 注意到:有個叫salt的欄位,其值為:d82a35其實這是一個隨機的字串。第一次md5後的值再加上鹽值(salt)再進行md5,就是要得到的值了。試一下複製代碼
Time of Update: 2016-07-13
註:$c = new CDbCriteria();是ActiveRecord的一種寫法,使ActiveRecord更加靈活,而不是手冊中DAO(PDO)和Query Builder。 這是Yii CDbCriteria的一些筆記和常用用法: 一、一個sql拼裝的情況 $criteria = new CDbCriteria; $criteria->addCondition("id=1"); //查詢條件,即where id = 1
Time of Update: 2016-07-13
因為在做一個項目,項目裡面伺服器主要提供資料,但是資料多了檔案就大了,比較浪費流量和時間,我們便用Gzip來處理。我在本機上是apache,伺服器上是IIS6.0,用的是php,那麼我就在這裡分享一下。IIS 的 GZIP 壓縮 1.首先備份 IIS 的設定檔,
Time of Update: 2016-07-13
其實網上早就有人分析過這個了,而且寫成了工具、但是我測試了很多個,沒一個能用,所以決定自己從頭分析一遍。開啟神盾加密過後的源碼,可以看到這樣的代碼上面寫著廣告注釋,而且不能刪除,因為檔案末尾有個md5效驗碼,以驗證代碼是否被修改過,、再仔細看代碼部分,發現裡面都是亂碼,其實這都是障眼法,它利用了php變數擴充到 latin1 字元範圍,其變數匹配正則是 \$[a-zA-Z_\x7f-\xff][\w\x7f-\xff]*
Time of Update: 2016-07-13
在某帝國面試的時候問題了這個題: 怎麼處理post提交重複的問題, 後來跟@暖陽交流,他說記錄時間,我沒有明白,我想的是用session在表單頁面記錄下,然後提交頁面判斷,如果相等則視為成功,並清空session,但有個問題是如果表單頁面是html的呢,乍辦?要不調個php驗證的頁面?類似驗證碼的功能. 還有的說用 header頭設定到期時間...但沒試.以下是我php寫的,經測試可用.複製代碼 代碼如下://開啟sessionsession_start();//如果有提交標識if(isset(
Time of Update: 2016-07-13
一、過濾輸入、避免輸出有時我們將短語“過濾輸入、避免輸出”縮寫為FIEO,這已成為PHP應用程式的安全真言。1、利用ctype進行驗證ctype:http://php.net/ctype2、利用PCRE(Perl相容的Regex)進行驗證PCRE:http://php.net/pcre二、跨站指令碼跨站指令碼通常簡稱為XSS,攻擊載體以在應用程式輸出中由使用者提供的變數所在位置為目標,但該變數沒有適當地轉義。這允許攻擊者注入他們選擇的一個用戶端指令碼作為這個變數值的一部分
Time of Update: 2016-07-13
要處理這個問題,經過一番研究發現,有2種方法:方法一:找到php.ini搜尋這3個地方 upload_max_filesize , memory_limit 和 post_max_size將他們後面的值修改成大於你需要匯入的資料庫大小就好了。然後重啟的PHP環境.方法二:以phpMyAdmin-3.1.0-all-languages為例,我的安裝目錄E:\wwwroot\phpMyAdmin\1.在 phpmyadmin目錄裡建立一個目錄
Time of Update: 2016-07-13
CodeIgniter 是一個應用程式架構 1、免費:CodeIgniter是經過Apache/BSD-style開源許可授權的,只要你願意就可以使用它。 2、簡單:CodeIgniter是真正的輕量級,核心系統只需要一些非常小的庫。 3、MVC:CodeIgniter使用了MVC的方法,可以更好的使表現層和邏輯層分離。 --應用程式流程程圖 index.php 作為前端控制器,初始化運行 CodeIgniter 所需要的基本資源。 Router 檢查 HTTP 要求,以確定誰來處理請求。
Time of Update: 2016-07-13
PHP是一種非常流行的開原始伺服器端指令碼語言,你在全球資訊網看到的大多數網站都是使用php開發的。但是,你大概很奇怪的注意到有少部分的人發誓要離php遠遠的。但是令人更奇怪的是或者很震驚的說他們不用php並不是因為一些被證實的語言缺點。他們決定不用php,是因為誤解。是的,你讀到的那些是誤解。讓我們看看這些誤解是:1.
Time of Update: 2016-07-13
1、將fckeditor目錄置入CI_PATH/system/plugins/ 2、在CI_PATH/system/application/config/config.php中加入: $config['fckeditor_basepath'] = "/system/plugins/fckeditor/"; $config['fckeditor_toolbarset_default'] = 'Default';
Time of Update: 2016-07-13
升級 VPS 後,由於 Ubuntu 的 upstart 與 OpenVZ 的相容問題,導致 sshd 服務不自動啟動了,在嘗試了 vePortal 的 console 與 file manager 及提交支援人員後都不能解決問題之後。只能靠自己了,大概的思路是在 PHP 中進行 su 命令以執行 sshd 服務,因為 WordPress 還活著,並且可以在後台直接編輯主題相關的 PHP 指令碼。只要把準備好的代碼片斷插入到 header.php
Time of Update: 2016-07-13
初學ThinkPHP的時候,很多人都對execute()和query()方法的區別搞不懂,本文就此淺析二者的區別。大家都知道,ThinkPHP中execute()和query()方法都可以在參數裡直接輸入SQL語句。但是不同的是execute()通常用來執行insert或update等SQL語句,而query常用來執行select等語句。 execute()方法將返回影響的記錄數,如果執行SQL的select語句的話,返回的結果將是表的總記錄數:複製代碼 代碼如下:$model = M(
Time of Update: 2016-07-13
開啟Apache伺服器的安裝路徑(我用的是 WampServer),在bin目錄中有一個ab.exe的可執行程式,它就是要介紹的壓力測試工具。 在Windows系統的命令列下,進入ab.exe程式所在目錄,執行ab.exe程式。注意直接雙擊無法正確運行。vcD4KPHA+ICAgICAgICBkOii72LO1L734yOtExcwpPGJyPgo8L3A+CjxwPiA8aW1nIHNyYz0="http://www.2cto.com/uploadfile/Collfiles/20140
Time of Update: 2016-07-13
Twig是一款快速、安全、靈活的PHP模板引擎,它內建了許多filter和tags,並且支援模板繼承,能讓你用最簡潔的代碼來描述你的模板。他的文法和Python下的模板引擎Jinjia以及Django的模板文法都非常像。 比如我們在PHP中需要輸出變數並且將其進行轉義時,文法比較累贅:複製代碼 代碼如下:但是在Twig中可以這樣寫:複製代碼 代碼如下:{{ var }}{{ var|escape }}{{ var|e }} {# shortcut to escape a