Time of Update: 2016-12-02
在運行PHP程式,通常會遇到“Fatal Error: Allowed memory size of xxxxxx bytes exhausted”的錯誤,
Time of Update: 2016-12-02
PHP處理會話函數1、 session_start函數功能:開始一個會話或者返回已經存在的會話。函數原型:boolean session_start(void);傳回值:布爾值功能說明:這個函數沒有參數,且傳回值均為true。最好將這個函數置於最先,而且在它之前不能有任何輸出,否則會警示,如:Warning: Cannot send session cache limiter – headers already sent (output started at /usr/local/apache/
Time of Update: 2016-12-02
CSI是瀏覽器端的動靜整合方案,當我文章發表後有朋友就問我,CSI技術是不是就是通過ajax來載入資料啊,我當時的回答只是說你的理解有點片面,那麼到底什麼是CSI技術了?這個其實要和動靜資源整合的角度來定義。CSI技術其實是在頁面進行動靜分離後,將頁面載入分為兩個步驟完成,第一步是載入靜態資源,靜態資源載入完畢後進行第二步驟載入動態資源。不過這個定義還是表述的不全面,不全面的地方就是我們要強調動靜分離的目的,我們把頁面裡的動靜資源拆分出來是為了將靜態資源做有效緩衝,這個靜態資源可能是在靜態web
Time of Update: 2016-12-02
需要在前台隱藏 ID 的話,可以考慮使用此產品,產生的 id 比較高大上,比較像 Youtube、Youku、Weibo之類的 id 名,比如:XNjkxMTc0MDQ4官網:http://hashids.org/php/Laravel 5 包:https://github.com/vinkla/hashidsPHP中的簡單實用樣本:$hashids = new Hashids\Hashids('this is my salt');$id =
Time of Update: 2016-12-01
php注入執行個體 在網上很難看到一篇完整的關於php注入的文章和利用代碼,於是我自已把mysql和php硬啃了幾個星期,下面說說我的休會吧,希望能拋磚引玉! 相信大家對asp的注入已經是十分熟悉了,而對php的注入比asp要困難,因為php的magic_gpc選項確實讓人頭疼,在注入中不要出現引號,而php大多和mysql結合,而mysql的功能上的缺點,從另外一人角度看確在一定程度上防止了sql njection的攻擊,我在這裡就舉一個執行個體吧,我以phpbb2.0為例:
Time of Update: 2016-12-01
預定義變數伺服器變數:$_SERVER注: 在 php(做為現在的主流開發語言) 4.1.0 及以後版本使用。之前的版本,使用 $HTTP_SERVER_VARS。$_SERVER 是一個包含諸如頭部(headers)、路徑(paths)和指令碼位置(script locations)的數組。數組的實體由 網頁伺服器建立。不能保證所有的伺服器都能產生所有的資訊;伺服器可能忽略了一些資訊,或者產生了一些未在下面列出的新的資訊。這意味著,大量的這些變數在 cgi(現在已經不多人在用了)1.1
Time of Update: 2016-12-01
以前一直沒留心,今天聽同事講起,馬上看看,功效強盛。php的配置函數就是幾個ini_*的函數,重要是針對設定檔的把持,實在就四個函數:ini_get、ini_set、ini_get_all、ini_restore。個人感到最有用的就是ini_set和ini_get。* ini_get():擷取設定檔的選項值這個函數信任很多人都使過,就是擷取設定檔中某一個選項的值,假如是true值就返回1,假如是false值就返回0,字串就返回字串。比如手冊中的例子:<?php/*Our php.ini
Time of Update: 2016-12-01
PHP能開啟遠程或本地主機上的Socket連接埠。本文是一個使用Socket的小例子:串連到一個Usenet新聞群組伺服器,同伺服器對話,從新聞群組中下載一些文章。在php中開啟一個socket使用fsockopen()開啟一個socket.這個函數在php3和php4種都可以使用。函式宣告是這樣的:int fsockopen (string hostname, int port _[, int errno [, string errstr [, double timeout]]])
Time of Update: 2016-12-01
PHP代碼:--------------------------------------------------------------------------------/*-------------------------------------------------------------------------*///// Module Name: 一個3D的餅圖類//// Author:Avenger(avenger@php.net) Last Modify: 2002-10-30
Time of Update: 2016-12-01
複製代碼 代碼如下:<?php /** ** 一數組的概述 1.數組的本質:管理和操作一組變數,成批處理 2.數組是複合類型 3.數組中可以儲存任意長度的資料。也可以儲存任意類型的資料 4.數組就可以完成其他語言資料結構的功能(鏈表,隊列,棧,集合類) ** 二.數組的分類 數組中存有多個單元,(單元稱為元素) 每個元素都是由下標【鍵】和值組成 單獨訪問元素的時候,都是通過下標【鍵】來訪問元素 1.一維數組 ,二維數組,三維數組 。。。。。多維陣列
Time of Update: 2016-12-01
當我們在結合php和javascript實現某些功能時,經常會用到json。json是js的一種資料格式,可以直接被js解析。而php無法直接讀取json資料,但是php提供了json_decode函數來對json資料進行轉化,從而可以被php指令碼訪問。同時,php也提供了json_encode函數來將資料轉化成json格式。那麼,js中的原生json與php中通過json_encode函數轉化後的json是否完全一樣呢?今天,站長就和大家一起來探討這個問題。我們通過php向javascrip
Time of Update: 2016-12-01
配置系統常量 1、當檔案系統工作的時候檢查並配置這些喜好設定檔案系統啟動並執行時候這些預設的值會適當的增加系統的安全性,但是在php或apache的底層單獨的為每各使用者開一個進程的時候,使用八進位的值永遠是正確的FILE_READ_MODE 讀取檔案的模式FILE_WRITE_MODE 寫入檔案的模式DIR_READ_MODE 讀取目錄的模式DIR_WRITE_MODE 寫入目錄的模式
Time of Update: 2016-12-01
首先來看下兩個方法的定義: 函數原型:array split (string $pattern, string $string [, int $limit]) 函數原型:array explode ( string $separator, string $string [, int $limit]) 初看沒有啥差別,貌似功能都一樣。我就犯了這個錯誤。 請注意兩個函數的第一個參數string $pattern和string
Time of Update: 2016-12-01
簡單解釋一些代碼: 第一個 ~(<[^>]+?>)~si 這個正則是匹配<………>中的內容。簡單說是所有的<標籤>。 第二個 ~<([a-z0-9]+)[^/>]*?/>~si 這個正則是匹配<……/>中的內容。是單閉合標籤 如<br /> 第三個 ~</([a-z0-9]+)[^/>]*?>~si 這個正則是匹配</......>中的內容。也就是結束標籤 如</a>
Time of Update: 2016-12-01
演算法原理如果用P表示n個元素的全排列,而Pi表示n個元素中不包含元素i的全排列,(i)Pi表示在排列Pi前面加上首碼i的排列,那麼n個元素的全排列可遞迴定義為: ① 如果n=1,則排列P只有一個元素i; ② 如果n>1,則全排列P由排列(i)Pi構成;根據定義,可以看出如果已經產生(k-1)個元素的排列Pi,那麼k個元素的排列可以在每個Pi前面加上元素i而產生。代碼實現複製代碼 代碼如下:function rank($base, $temp=null){ $len =
Time of Update: 2016-12-01
資料庫中,存放文章的表中有“Tag”欄位,用來存放標籤。標籤之間用“,”分隔。比如“PHP,VB,隨筆”。 下面的實現代碼,將標籤從資料庫中搜出來,並格式化處理,使其以出現的次數為依據顯示出不同大小的文字串連。 其中的細節,不做解釋了! 觀念陳、方法笨、效率低的標籤雲的實現代碼如下: 複製代碼 代碼如下: /** * WNiaoBlog Tag Template ShowTag * * @package WNiaoBlog * * @subpackage Tag */ //Connect
Time of Update: 2016-12-01
我看過phpcms、discuz的源碼,所以可能就缺乏創新了,不過原理大都相通,只是細節處理可能稍微不同。 說正題,下面開始談談具體實現過程了。 1.首先要想好模板檔案放在哪?轉換後的php檔案放哪?還有怎麼命名?直接上源碼: 複製代碼 代碼如下: function template($tpl = 'index',$dir = 'hello') { if(!file_exists($pd =
Time of Update: 2016-12-01
例如: 複製代碼 代碼如下: <?php $a = 1; include 'b.inc'; ?> 這裡變數 $a 將會在包含檔案 b.inc 中生效。但是,在使用者自訂函數中,一個局部函數範圍將被引入。任何用於函數內部的變數按預設情況將被限制在局部函數範圍內,此時為局部變數。 PHP 中全域變數在函數中使用時必須申明為global。
Time of Update: 2016-12-01
lostwolf寫的 這不是webshell,只是個webshell免殺工具 切勿當初webshell使用 僅限免殺phpwebshell 該工具運行在 cli 模式! 如果有無法突破的檔案內容過濾 可嘗試下用這個工具 免殺大馬! 任意php webshell 通過此工具編碼之後可以饒過國內一些bt的防火牆 複製代碼 代碼如下: <?php /* Title: PHP shell nokill T00L Blog: exploit-db.blogcn.com */
Time of Update: 2016-12-01
php頁面緩衝主要用到的是ob系列函數,如ob_start(),ob_end_flush(),ob_get_contents() 下面是編碼部分。 1.初始化函數,一般是設定頁面緩衝路徑、快取檔案命名格式等,可按個人喜好自訂。這裡用到的識別ID是經加密的$_SERVER[REQUEST_URI]參數。這個函數中最後還有一個if判斷:若未過緩衝期,則載入快取檔案,否則載入源檔案。 複製代碼 代碼如下: function page_init() { $url = $_SERVER[