Time of Update: 2016-11-30
改架構主要用於實現多個程式員之間的協同開發以及mvc開發模式的實現.skymvc採用mvc開發方式,架構本身易擴充。skymvc作為天網計劃的基礎架構,秉承易用、易學、共同開發的優良傳統,我們致力於打造一款優秀的php mvc架構。歡迎大家多多提些建議。 1.建立設定檔skyMVC支援自動建立網站目錄:輸入http://locahost/skymvc/install.php 即可自動建立 檔案目錄。如果建立之後想重新建立,刪除install.lock檔案及可。 推薦自動建立。
Time of Update: 2016-11-30
PHP 包含了很多的函數,可以用來管理和記錄使用者資訊,包括簡單的 cookie 和全方位的使用者會話。會話使用PHP 語言內建的技術,使得儲存狀態就像是引用超全域變數那樣簡單。1. Cookie 簡介我們可以和 PHP 指令碼一起使用 cookie 來儲存一些關於使用者的較小的資訊。 Cookie 是由使用者瀏覽器儲存的少量資料,它和一個來自伺服器或指令碼的請求一致。通過一個使用者的瀏覽器,一個單個的主機可以請求儲存 20 個cookie 。每個 cookie
Time of Update: 2016-11-30
上次我們說了多級緩衝,本章詳細介紹下記憶體緩衝該如何設計。一:分析設計假設有個項目有一定並發量,要用到多級緩衝,如下:在實際設計一個記憶體緩衝前,我們需要考慮的問題:1:記憶體與Redis的資料置換,儘可能在記憶體中提高資料命中率,減少下一級的壓力。2:記憶體容量的限制,需要控制緩衝數量。3:熱點資料更新不同,需要可配置單個key到期時間。4:良好的緩衝到期刪除策略。5:快取資料結構的複雜度儘可能的低。關於置換及命中率:我們採用LRU演算法,因為它實現簡單,緩衝key命中率也很好。LRU即是:把
Time of Update: 2016-11-30
通常情況下,當我們要產生一個隨機字串時,總是先建立一個字元池,然後用一個迴圈和mt_rand()或rand()產生php隨機數,從字元池中隨機選取字元,最後拼湊出需要的長度。function randomkeys($length){$pattern =
Time of Update: 2016-11-30
我們知道很多在網上下載的論壇或者個人部落格程式都有安裝的頁面,要製作這樣的安裝程式就需要用到sql檔案建立資料庫。 只對phpmyadmin匯出的sql檔案有效 複製代碼 代碼如下: $dbfile="test.sql"; $content=iconv("UTF-8","GB2312",file_get_contents($dbfile)); //擷取建立的資料 //去掉注釋 $content=preg_replace("/-
Time of Update: 2016-11-30
PHP 的 date() 函數用于格式化時間或日期。PHP Date() 函數PHP Date() 函數可把時間戳記格式化為可讀性更好的日期和時間。文法date(format,timestamp)參數 描述format 必需。規定時間戳記的格式。 timestamp 可選。規定時間戳記。預設是當前的日期和時間。 PHP 日期 - 什麼是時間戳記(Timestamp)?時間戳記是自 1970 年 1 月 1 日(00:00:00 GMT)以來的秒數。它也被稱為 Unix
Time of Update: 2016-11-30
複製代碼 代碼如下: /* *@自動添加資料函數 *@$table 表名 *@$arr 欄位庫 array("title",array("content",int)) *@ array(欄位,類型) *@ 類型說明 html--允許html unhtml-不允許html int --int類型 float -- float 類型 */ //自動插入資料函數 function autoInsert($table,$arr=array(),$method=
Time of Update: 2016-11-30
對於PHP的session功能,始終找不到合適的答案,尤其是一些錯誤,還有一些沒有錯誤的結果,最可怕的就是後者,一直為許多的初學者為難。就連有些老手,有時都被搞得莫名其妙。本文,將這些問題,做一個簡單的匯總,以便大家查閱。1. 錯誤提示 Warning: Cannot send session cookie - headers already sent Warning: Cannot send session cache limiter - headers already sent
Time of Update: 2016-11-30
複製代碼 代碼如下:<?php /** * 訪問者模式 * * 表示一個作用於某對象結構中的各元素的操作,可以在不改變各元素的類的前提下定義作用於這些元素的新操作 * */ abstract class Visitor { abstract public function visitCroncreteElementA($element); abstract public function visitCroncreteElementB($element); } class
Time of Update: 2016-11-30
上次主要討論緩衝讀寫這塊各種代碼實現。本篇是就上次的問題接著來,繼續看那些年我們各種緩衝用法。一:緩衝預熱上次有同學問過。在第一次載入時,我們的緩衝都為空白,怎麼進行預熱。單機Web情況下,一般我們使用RunTimeCache。相對於這種情況下:1:我們可以在啟動事件裡面重新整理void Application_Start(object sender, EventArgs e){
Time of Update: 2016-11-30
名稱 功能說明 $_GET[] 取得以GET方法提交的變數數組 $_POST[] 取得以POST方法提交的變數數組 $_COOKIE[] 取得和設定當前網站的cookie標識 $_SESSION[] 取得目前使用者訪問的唯一標識,以數組形式體現,如SESSIONID以及自訂SESSION資料 $_ENV[] 當前PHP的環境變數數組 $_SERVER[] 當前PHP伺服器變數數組 $_FILES[]
Time of Update: 2016-11-30
<script type="text/javascript">//js 中接受php傳過來的值var tt = <?php echo $tnum; ?>; function ages(str) { var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/); if(r==null)return false;
Time of Update: 2016-11-30
介紹本篇主要說下平常項目中緩衝使用經驗和遇到過的問題。目錄一: 基本寫法二:緩衝雪崩1:全域鎖,執行個體鎖2:字串鎖三:緩衝穿透四:再談緩衝雪崩五:總結一:基本寫法為了方便示範,我們用Runtime.Cache做緩衝容器,並定義個簡單操作類。如下:public class CacheHelper { public static object Get(string cacheKey) { return
Time of Update: 2016-11-29
<? //開原始碼 function getip(){ if (getenv("http_client_ip") && strcasecmp(getenv("http_client_ip"), "unknown")) $ip = getenv("http_client_ip"); //開源 else if
Time of Update: 2016-11-29
這是一款利用php程式來擷取檔案的大小並且把檔案根據檔案的大小顯示gb,mb,kb代碼的代碼非常智能的代碼,代碼如下:function sizecount($filesize) { if($filesize >= 1073741824) { $filesize = round($filesize / 1073741824 * 100) / 100 . ' gb'; } elseif($filesize >= 1048576) { $filesize =
Time of Update: 2016-11-29
如果直接使用substr截取中文字串肯定會出亂碼的,因為他會把一個漢字分成一半,為什麼會這樣,因為機器內部編碼的問題,現在我們來看處理辦法1、使用mbstring擴充庫的mb_substr截取就不會出現亂碼了。2、自己書寫截取函數,但效率不如用mbstring擴充庫來得高。3、如果僅是為了輸出截取的串,可用如下方式實現:substr($str, 0, 30).chr(0).PHP執行個體代碼如下: * 可以避免亂碼的截取漢字 * 參數 $str 為字串,$start 為開始字元,$len
Time of Update: 2016-11-29
<?php function browse_infor() { $browser="";$browserver=""; // $browsers
Time of Update: 2016-11-29
在php使用curl時必須先在php.ini中開啟extension=php_curl.dll前面的;去了才行,curl是php中一款內建的瀏覽器,它可以模仿使用者瀏覽資訊進行網站瀏覽,等下面來看一執行個體,代碼如下:function postpage($url) { $response = ""; $rd=rand(1,4); $proxy='http://221.214.27.253:808'; if($rd==2)
Time of Update: 2016-11-29
$string = "this is a test"; echo str_replace(" is", " was", $string); echo ereg_replace("( )is", "1was", $string); //其中1就是第一個括弧中空格 echo ereg_replace("(( )is)", "2was", $string); //
Time of Update: 2016-11-29
直接用php函數“str_split”來分割,會出現亂碼,因為中文字元長度和英文字元長度是不一樣的,但是我們可以建立新的函數先把字元轉成ascii值,接著通過判斷不同字元的長度來正確分割中文字串,把結果存入數組,最後再用php函數“join”在字元間插入百分比符號.方法一,執行個體代碼如下:<?php function str_split_utf8($str){ $split=1; $array=array(); for($i=0;$i<strlen($str)){