分享下PHP 擷取二維數組中某個key的集合的方法。具體是這樣的,如下一個二維數組,是從庫中讀取出來的。代碼: $user = array( 0 => array( 'id' => 1, 'name' => '張三', 'email' => 'zhangsan@sina.com', ), 1 => array( 'id' => 2, 'name' => '李四', 'email' => 'lisi@163.com', ), 2 => array( 'id' => 5, 'name' =>
一、採用基準測試,檢測代碼的效能基準測試涉及Web應用程式時,通常指“壓力測試”,即在你的代碼中儘可能多地載入流量,然後衡量它的執行能力。推薦兩種基準測試的工具:ApacheBench(ab)和JMeter。要進行壓力測試,我們需要兩個東西:同時線上的使用者和大量的請求。使用這些工具後,很多同時啟動並執行應用程式線程便代表了使用者。因此我們只需記住:並發線程=並發使用者。1、ApacheBench超級簡單,通常包含了Apache安裝,或是作為Apache開發包的一部分&m
部落格園的Markdown編輯器太坑爹了@!!!算了。不用格式了!!!/********************** curl 系列 ***********************///直接通過curl方式取得資料(包含POST、HEADER等)/* * $url: 如果非數組,則為http;如是數組,則為https * $header: 標頭檔 * $post: post方式提交 array形式 * $cookies: 0預設無cookie,1為設定,2為擷取 */public
因為在做一個項目,項目裡面伺服器主要提供資料,但是資料多了檔案就大了,比較浪費流量和時間,我們便用Gzip來處理。我在本機上是apache,伺服器上是IIS6.0,用的是php,那麼我就在這裡分享一下。IIS 的 GZIP 壓縮 1.首先備份 IIS 的設定檔,
IIS版本:IIS 8.5問題描述搭建一個測試網站,總共就2個頁面(index.php和404.php),預設首頁為:index.php當訪問index.php和404.php的時候,IIS伺服器能正常響應,說明在IIS
先下載 php神盾解密工具decryption然後解壓放到一個檔案夾裡,把你要解密的檔案也放進去。然後建立一個 decode.php 代碼寫:複製代碼 代碼如下:require('decryption.php');decryption('Code.php');?>執行後就會產生 Code_source.php 的源碼檔案了。效果就目前來說沒發現任何問題,如果有什麼問題可以留言,我會及時處理的。要注意的幾點,decryption.php
今晚在寫架構的表單驗證類時,需要判斷某個字串長度是否在指定區間內,很自然地,想到了PHP中的strlen函數。複製代碼 代碼如下:$str = 'Hello world!';echo strlen($str); // 輸出12然而在PHP內建的函數中,strlen及mb_strlen都是通過計算字串所佔位元組數來計算長度的,在不同的編碼情況下,中文所佔的位元組數是不同的。在GBK/GB2312下,中文字元佔2個位元組,而在UTF-8下,中文字元佔3個位元組。複製代碼 代碼如下:$str =
其實網上早就有人分析過這個了,而且寫成了工具、但是我測試了很多個,沒一個能用,所以決定自己從頭分析一遍。開啟神盾加密過後的源碼,可以看到這樣的代碼上面寫著廣告注釋,而且不能刪除,因為檔案末尾有個md5效驗碼,以驗證代碼是否被修改過,、再仔細看代碼部分,發現裡面都是亂碼,其實這都是障眼法,它利用了php變數擴充到 latin1 字元範圍,其變數匹配正則是 \$[a-zA-Z_\x7f-\xff][\w\x7f-\xff]*
有自己的主機一般都會設計"防盜鏈", 其實包括圖片防盜鏈,和下載防盜鏈等,如:1.使用.htaccess設定防盜鏈複製代碼 代碼如下:RewriteEngine onRewriteCond %{HTTP_REFERER} !^$RewriteCond %{HTTP_REFERER} !^http://(www\.)?jb51.net/.*$ [NC]RewriteRule \.(gif|jpg)$ http://www.jb51.net/image.gif
IIS 的 GZIP 壓縮 1.首先備份 IIS 的設定檔, 複製 C:\Windows\system32\inetsrv\metabase.xml到另外的備份檔案夾中. C:\Windows\system32\inetsrv\metabase.xml是 IIS 的核心設定檔,該檔案的完整性一但被破壞,IIS 將無法正常運行,嚴重到需要重新安裝系統.2
在某帝國面試的時候問題了這個題: 怎麼處理post提交重複的問題, 後來跟@暖陽交流,他說記錄時間,我沒有明白,我想的是用session在表單頁面記錄下,然後提交頁面判斷,如果相等則視為成功,並清空session,但有個問題是如果表單頁面是html的呢,乍辦?要不調個php驗證的頁面?類似驗證碼的功能. 還有的說用 header頭設定到期時間...但沒試.以下是我php寫的,經測試可用.複製代碼 代碼如下://開啟sessionsession_start();//如果有提交標識if(isset(
一、過濾輸入、避免輸出有時我們將短語“過濾輸入、避免輸出”縮寫為FIEO,這已成為PHP應用程式的安全真言。1、利用ctype進行驗證ctype:http://php.net/ctype2、利用PCRE(Perl相容的Regex)進行驗證PCRE:http://php.net/pcre二、跨站指令碼跨站指令碼通常簡稱為XSS,攻擊載體以在應用程式輸出中由使用者提供的變數所在位置為目標,但該變數沒有適當地轉義。這允許攻擊者注入他們選擇的一個用戶端指令碼作為這個變數值的一部分
要處理這個問題,經過一番研究發現,有2種方法:方法一:找到php.ini搜尋這3個地方 upload_max_filesize , memory_limit 和 post_max_size將他們後面的值修改成大於你需要匯入的資料庫大小就好了。然後重啟的PHP環境.方法二:以phpMyAdmin-3.1.0-all-languages為例,我的安裝目錄E:\wwwroot\phpMyAdmin\1.在 phpmyadmin目錄裡建立一個目錄
PHP進階程式設計 學習筆記
//判斷編碼複製代碼 代碼如下:$encode = mb_detect_encoding($q, array('GB2312','GBK','UTF-8'));echo $encode."";if($encode=="GB2312"){ $q = iconv("GBK","UTF-8",$q);}else if($encode=="GBK"){ $q = iconv("GBK","UTF-8",$q);}else if($encode=="EUC-CN"){ $q =
一、使用靜態分析工具測量品質我們用靜態分析測量代碼而不運行它。實際上,我們將這些工具用於評估代碼、讀取檔案、衡量它所寫的要素。使用這些工具,可以協助我們對程式碼程式庫有一個完整的層次化的認識,甚至在程式碼程式庫變得更大、更複雜的時候也能掌握。靜態分析工具是項目過程中的一個關鍵組成部分,但是,只有定期使用它們,並以理想的方式進行每一次提交,靜態分析工具才真正顯示出價值。這些工具涵蓋了代碼的所有方面,從計數類和計算行數,到識別哪裡有提示使用複製和粘貼的類似程式碼片段。然後我們來看看靜態分析工具在代碼
我使用的是widows系統。本來3.7.8版本的Phpunit用的是非常順暢的,最近重新安裝phpunit,安裝了最小版本,然後在使用的時候就會報很多各種錯誤。無奈之下只能降版本到3.7.8首先要卸載PHPUnit 4.0的所有依賴pear uninstall phpunit/PHPUnitpear uninstall phpunit/DbUnitpear uninstall phpunit/PHP_CodeCoveragepear uninstall
昨天花了點時間整合了一下頭像外掛程式 東拼西湊的成果 先來看下效果1.先使用ajaxfileupload外掛程式做非同步上傳。這個地方我本來想做個上傳進度的效果,但技術有限失敗了。上傳按鈕我還做了一個檔案大小的限制,但是由於瀏覽器安全色性的問題,不完美在IE6--IE9之間還有很多問題需要解決getFileSize函數是用於判斷檔案大小的函數複製代碼 代碼如下:function getFileSize(fileName) { var byteSize = 0;
介紹:就是想實現簡單的ajax上傳資料,但是當資料量較大的時候,問題就一個一個接著來了,其實資料也不是很大,就是csv格式資料 不到5w條資料。大小5M,一開始認為這個很簡單,就是先上傳一下檔案,然後讀取一下,存到資料庫就好了,結果,可能我比較菜,弄了半天做出這個功能。環境是linux.遇到的問題就從先到後的一一說吧。問題1
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';