Time of Update: 2017-01-19
關於“PHP彩蛋”的說法也許很多老PHPer已經都知道或聽說了,好像是早在PHP4版本的時候就有彩蛋了,挺好玩兒的,可能近年來逐漸被人們遺忘了,其實彩蛋功能在PHP指令碼引擎預設情況下是開啟。寫個phpinfo();然後訪問,再加上以下的GET值即可查閱下面就用Discuz官方論壇做一下測試:http://www.discuz.net/?=PHPE9568F34-D428-11d2-A769-00AA001ACF42http://www.discuz.net/?=PHPE9568F35-D428
Time of Update: 2017-01-19
一、如何禁用fsockopen()下面是兩種常用的禁用fsockopen的方法。1、修改php.ini,將 disable_functions = 後加入 fsockopen 2、修改php.ini,將 allow_url_fopen = On 改為 allow_url_fopen = Off 二、如何解決fsockopen函數被禁用1、如果伺服器沒有同時禁用pfsockopen,那麼直接將fsockopen函數替換為pfsockopen。具體操作:搜尋程式中的字串 fsockopen(
Time of Update: 2017-01-19
今天遇到了一個問題就是用fwrite寫入txt檔案的時候用 rn不能換行試了很久都沒找到辦法!突然之間想到一個東東以前看書見過後來還是用這個東東給解決了!現在寫出來預防將來忘記也希望能幫到需要協助的朋友!直接看代碼:複製代碼 代碼如下:<?php$stream = fopen("robots.txt", "w+");fwrite($stream, "你換行了嗎\r\n我已經換行了!");?>
Time of Update: 2017-01-19
先舉個列子:比如你一個函數會返回這幾種情況:1、大於0的數2、小於0的數3、等於0的數(也就是0啦)4、False(失敗時)這時候如果你想捕獲失敗的情況,你就必須用===,而不能用==因為==除了會匹配第4種情況外,還會匹配第3種情況,因為0也是假!三個等號代表比較對象的類型也要一致。兩個等號表示只要值相等就滿足條件。再來補充一些:$a='2';//字元型2$b=2;//數值型2$a==$b,是對的,都是2$a===$b,是不對的,因為$a是字元型$b是數值型,值雖一樣,但類型不一樣。還有就是“
Time of Update: 2017-01-19
PHP語言: 根據中文裁減字串複製代碼 代碼如下:function cutstr($string,$length, $dot = ' ...') { if (strlen($string) <= $length) { return$string; } $pre = chr(1); $end = chr(1); $string = str_replace(array('&'
Time of Update: 2017-01-19
reset (PHP 3, PHP 4, PHP 5)reset -- 將數組的內部指標指向第一個單元說明mixed reset ( array &array )reset() 將 array 的內部指標倒回到第一個單元並返回第一個數組單元的值,如果數組為空白則返回 FALSE。例 1. reset() 例子複製代碼 代碼如下:<?php $array = array('stepone', 'step two', 'step three', 'step four');
Time of Update: 2017-01-19
實現代碼:複製代碼 代碼如下:<?phpfunction addslashes_deep($value){//史上最經典的遞迴,一行搞定return is_array($value) ? array_map('addslashes_deep', $value) : addslashes($value);}//測試資料$_POST['STR'] = "'fanglor ' is \ a boy >'";$_GET['STR1'] = 'fanglor " is
Time of Update: 2017-01-19
多層數組和對象轉化的用途很簡單,便於處理WebService中多層數組和對象的轉化簡單的(array)和(object)只能處理單層的資料,對於多層的數組和對象轉換則無能為力。通過json_decode(json_encode($object)可以將對象一次性轉換為數組,但是object中遇到非utf-8編碼的非ascii字元則會出現問題,比如gbk的中文,何況json_encode和decode的效能也值得疑慮。下面上代碼:複製代碼 代碼如下:<?php function
Time of Update: 2017-01-19
在工作中需要處理多語言的翻譯問題,翻譯都是寫在excel表格裡面。為了處理方便我就保留中文和英文兩列。這樣需要將這些資料從excel中取出來,然乎儲存在excel的數組中,通過使用迴圈數組將相應的資料放入到資料庫中。所以工作的第一步就是要將資料從excel中取出來。這裡我使用到了一個開源php處理excel類:phpexcel. 該項目的詳細資料 http://phpexcel.codeplex.com/ 。我目前使用的是phpexcel1.7.3版本,
Time of Update: 2017-01-19
很不習慣PHP中的變數範圍,PHP中函數變數和全域是完全隔絕的,也就是無法相互訪問。比如下面這樣:複製代碼 代碼如下:$test = 123; abc(); //這裡什麼都不輸出,因為訪問不到$test變數function abc(){ echo($test);}$test = 123;abc(); //這裡什麼都不輸出,因為訪問不到$test變數function abc(){
Time of Update: 2017-01-19
PHP怎麼實現網站儲存捷徑呢?下面是一段PHP代碼,下面這段代碼,可以PHP實現網站儲存捷徑,以便使用者隨時瀏覽。 複製代碼 代碼如下: <?php $Shortcut = "[InternetShortcut] URL=http://blog.csdn.net/lee_magnum/ IDList = [{000214A0-0000-0000-C000-000000000046}] Prop3=19,2"; Header("Content-type: application/octet-
Time of Update: 2017-01-19
我們可以使用下面的代碼測試一下:複製代碼 代碼如下:<?php $filename = 'test.txt'; if (is_file($filename)) { echo "$filename
Time of Update: 2017-01-19
最近在項目中,出現一個奇怪的現象,有一個大form裡面有上千個input,提交的時候,老是發現post過來的資料不完整,一開始還懷疑是html 表單名稱有衝突,排除掉了。然後,網上找了一堆,php.ini 的post_max_size和upload_max_filesize都設定了很大的值,沒用,nginx的client_max_body_size 500m;加到了那麼大的值,也沒用。最後終於google到辦法:原來PHP從5.3.9開始增加一個變數 max_input_vars
Time of Update: 2017-01-19
ID是網站中經常出現的,它一般是數字,但是我們發現現在的網站很多ID都是字母了,比如YouTube的視頻播放頁它的URL類似/watch?v=yzNjIBEdyww。 下面是一個產生字母ID的方法。使用樣本:複製代碼 代碼如下: alphaID(12354); //會將數字轉換為字母。 alphaID('PpQXn7COf',true);//會將字母ID轉換為對應的數字。 alphaID(12354,false,
Time of Update: 2017-01-19
在將html頁面整合到ci架構裡面的時候,載入css和js失敗,弄了半天發現ci架構是入口的架構,對架構中檔案的所有請求都需要經過index.php處理完成,當載入外部的css和js檔案的時候要使用base_url()函數處理外部的連結。 比如: 在config設定檔中的base_url為:" localhost:8080/項目名稱/ " 在控制器中訪問application/resource/aaa.js檔案 相對路徑<script src= "resource/aaa.js">&
Time of Update: 2017-01-19
在PHP指令碼中變數主要有:內建超級全域變數,一般的變數,常量,全域變數,靜態變數等等,我們在使用它們的時候除了要正確地知道它們的文法以外,更重要的是,我們要知道它們在本質上的區別與聯絡—即它們的範圍的問題。1.內建超級全域變數可以在指令碼的任何地方使用和可見。即是說,如果我們在一個PHP頁面中改變了其中的一個值,那麼在其他PHP頁面中使用時,它的值也會發生改變。2.常量一旦被聲明將可以在全域可見,也就是說,它們可以函數內外使用,但是這僅僅限於一個頁面之中(包含我們通過include和inclu
Time of Update: 2017-01-19
複製代碼 代碼如下:<?php//delfile("upload",10);function delfile($dir,$n) //刪除當DIR路徑下N分鐘前建立的所有檔案;{if(is_dir($dir)) { if($dh=opendir($dir)) { while (false !== ($file = readdir($dh)))
Time of Update: 2017-01-19
靜態局部變數的特點:1.不會隨著函數的調用和退出而發生變化,不過,儘管該變數還繼續存在,但不能使用它。倘若再次調用定義它的函數時,它又可繼續使用,而且儲存了前次被調用後留下的值2.靜態局部變數只會初始化一次3.靜態屬性只能被初始化為一個字元值或一個常量,不能使用運算式。即使局部靜態變數定義時沒有賦初值,系統會自動賦初值0(對數值型變數)或Null
Time of Update: 2017-01-19
剛接觸到題的時候,我也沒有考慮到Iterator模式,試了幾個一般想法,失敗以後。。。。就直接去翻看了foreach的源碼實現,期望發現foreach處理對象的時候是否有什麼特殊性,可以做為突破口。跟蹤了半天以後發現了核心邏輯中的一個奇怪的switch:複製代碼 代碼如下:switch (zend_iterator_unwrap(array, &iter TSRMLS_CC))
Time of Update: 2017-01-19
PHP中如何保持SESSION以及由此引發的一些思考 最近的一個項目,裡面有一個比較大的表單,使用者完成它需要很多時間,很多使用者花了千辛萬苦完成之後,一提交發現SESSION到期,系統退出了,所以引起了研究如何設定SESSION以及保持SESSION線上的需要,下面是一些心得體會。什麼是SESSION?按照WIKI的解釋,SESSION是存在於兩個通訊裝置間的互動資訊,在某一時間建立,經過一定的時間後失效。常見的SESSION有:TCP SESSION、WEB