Time of Update: 2016-11-29
在php開發中,我們會經常遇到各種各樣的難題,想要實現php無限遍曆目錄,可就很難實現這一方法,經過在網上查詢一些資料,閱讀一些論壇,才發現php無限遍曆目錄並沒有想象那麼難,現在就看一下吧。使用的函數有:isset()判斷某個變數是否定義chdir() 將目前的目錄改變為指定的目錄。opendir() 開啟目錄。readdir()讀取目錄。getcwd()。擷取目前的目錄。還用到了for if GET傳值
Time of Update: 2016-11-29
<?php session_start();//儲存產生值,以與使用者輸入比較//-------------------------------------------------------------------------$img_w = 80;// 設定圖片寬$img_h = 20;// 設定圖片高$pixel_num = 200;//點越多幹擾越大$is_set_line = true;// 啟用幹擾線$pixel_mode = 2;//
Time of Update: 2016-11-29
問題通常一個web應用的效能瓶頸在資料庫。因為,通常情況下php中mysql查詢是串列的。也就是說,如果指定兩條sql語句時,第二條sql語句會等到第一條sql語句執行完畢再去執行。這個時候,如果執行2條sql語句,每條執行時間為50ms,全部執行完畢可能需要100ms。既然,主要原因是sql的串列執行導致。那我們是不是可以改變執行方式來提高效能呢?答案是,可以的。我們可以通過非同步執行的方式來提高效能。非同步如果通過非同步方式去執行,可能效能會有很大提升。如果是採用非同步方式,兩條sql語句會
Time of Update: 2016-11-29
PHP類比多線程請求<?phpmulti_threads_request($nodes){$mh = curl_multi_init();$curl_array = array();foreach($nodes as $i => $url){$curl_array[$i] = curl_init($url);curl_setopt($curl_array[$i], CURLOPT_RETURNTRANSFER, true);curl_multi_add_handle($mh,
Time of Update: 2016-11-29
整理php的header函數之設定content-type//定義編碼header( 'Content-Type:text/html;charset=utf-8 '); //Atomheader('Content-type: application/atom+xml'); //CSSheader('Content-type: text/<a
Time of Update: 2016-11-29
//檢查上傳檔案的目錄裡是否已存在同名的上傳檔案function searchFile($path,$file){$file_array=array(); //存放檔案名稱數組$folder_array=array(); //存放目錄名數組$all_array=array(); //存放全部路徑的數組if(is_dir($path)){ //檢查檔案目錄是否存在$H = @ opendir($path);while(false !==
Time of Update: 2016-11-29
步驟:1,匹配URL中的主機名稱和檔案部分2,建立socket並串連到目標伺服器3,構造HTTP請求並發送4,讀取HTTP響應並解析5,儲存內容到檔案並關閉socket串連代碼實現如下:<?php/* * 使用socket擷取遠端資源(網頁,圖片等) * url 資源URL * savepath 資源的儲存路徑 * return true/false */function get_remote_picture($url,$savepath="./"){
Time of Update: 2016-11-29
最近在做php程式的效能最佳化,一些經過測試後發現的東西就先記錄下來吧,以備後用。首先對於一些反應慢的操作或頁面要跟蹤處理一下,可以使用webGrind的方式看一下主要問題出在哪裡其次,對於方法的最佳化,一個是查看方法中調用的語句的最佳化,一個是對於方法本身演算法的最佳化,調用的方法的位置也很重要,一般來說,調用其他的檔案中的方法沒有調用本頁面中的方法快,如果是經常使用的方法,而且調用的過程比較費時的話,為了效能考慮,可以將此方法移植到本頁面中來。方法體中的語句的最佳化包括調用的方法的最佳化,比
Time of Update: 2016-11-29
用單引號代替雙引號來包含字串,這樣做會更快一些。因為PHP會在雙引號包圍的字串中 搜尋變數,單引號則不會,注意:只有echo能這麼做,它是一種可以把多個字串當作參數的“函數”(譯註:PHP手冊中說echo是語言結構,不是真正 的函數,故把函數加上了雙引號)。1、如果能將類的方法定義成static,就盡量定義成static,它的速度會提升將近4倍。2、$row[’id’] 的速度是$row[id]的7倍。3、echo 比 print
Time of Update: 2016-11-28
擷取副檔名的方法有多種,但不局限於所列的幾種方法,更多的自己去發掘 <?php //php擷取副檔名的方法一: function extend_1($file_name) { $retval=""; $pt=strrpos($file_name, "."); if ($pt) $retval=substr($file_name, $pt+1, strlen($file_name) - $pt); return ($retval); }
Time of Update: 2016-11-28
如何去除數組中相同的元素?在php手冊中有這樣寫array_unique(PHP 4 >= 4.0.1) array_unique -- 移除數組中重複的值說明array array_unique ( array array)array_unique() 接受 array 作為輸入並返回沒有重複值的新數組。 注意鍵名保留不變。array_unique() 先將值作為字串排序,然後對每個值只保留第一個遇到的鍵名,接著忽略所有後面的鍵名。這並不意味著在未排序的 array
Time of Update: 2016-11-28
以前知道file_exists不能檢查遠程檔案是否存在,但不知道如何檢查遠程檔案是否存在,今天在看PHP資訊研究中心部落格的時候發現一個函數get_headers原文在這裡:如何檢查某個遠程檔案是否存在get_headers(PHP5) — 取得伺服器響應一個 HTTP 要求所發送的所有標題get_headers() 返回一個數組,包含有伺服器響應一個 HTTP 要求所發送的標題。如果失敗則返回 FALSE 並發出一條 E_WARNING 層級的錯誤資訊。如果將可選的 format 參數設為 1
Time of Update: 2016-11-28
有時候為了實現負載或者是其他的原因,我們需要將上傳上來的檔案放置在其他的伺服器,由於本人對伺服器上的工具不太熟悉,所以僅從php程式入手,通過php的ftp或者curl來實現上傳檔案到遠程伺服器當然這兩種方式都是需要先上傳到當前的web伺服器,然後再轉移到其他的伺服器 第一個方法是ftp上傳到遠程伺服器,這需要有遠程伺服器的ftp ip地址 ftp使用者 和ftp密碼 已經許可權允許的目錄位置使用了www.yawill.com提供的ftp
Time of Update: 2016-11-28
有時候需要在一個類中調用另外一個類裡面的方法,然後另外一個類又需要調用當前類的方法,怎麼辦呢?可以直接引入類對象的方式調用另外一個類的方法樣本如下(傳值方式)class a { function b($obj) { $obj->test(); }} class b { function test() { echo 'test'; }} $a = new a();$b->b(new
Time of Update: 2016-11-28
define('ROOT_DIR','D:/web/'); $rar = '2012051008.rar';$rar_name = basename($rar,'.rar'); $rar_file = rar_open(ROOT_DIR.$rar) or die("失敗");$entries = rar_list($rar_file);$arr_name = array();foreach($entries
Time of Update: 2016-11-28
function get_line($file,$line) { $fp = fopen($file,'r'); $i = 0; while(!feof($fp)) { $i++; $c = fgets($fp); if($i==$line) { echo $c; break; }
Time of Update: 2016-11-28
function make_coupon_card() { $code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; $rand = $code[rand(0,25)] .strtoupper(dechex(date('m'))) .date('d').substr(time(),-5) .substr(microtime(),2,5) .sprintf('
Time of Update: 2016-11-28
1.單例模式 單例模式顧名思義,就是只有一個執行個體。作為對象的建立模式, 單例模式確保某一個類只有一個執行個體,而且自行執行個體化並向整個系統提供這個執行個體。 單例模式的要點有三個:一是某個類只能有一個執行個體;二是它必須自行建立這個執行個體;三是它必須自行向整個系統提供這個執行個體。為什麼要使用PHP單例模式1. php的應用主要在於資料庫應用, 一個應用中會存在大量的資料庫操作, 在使用物件導向的方式開發時, 如果使用單例模式, 則可以避免大量的new
Time of Update: 2016-11-28
如何防止一個函數執行時間過長呢?在PHP裡可以用pcntl時鐘訊號+異常來實現declare(ticks = 1);function a(){ sleep(10); echo "a finishi\n";}function b(){ echo "Stop\n";}function c(){ usleep(100000);} function sig(){ throw new Exception;} try{ pcntl_
Time of Update: 2016-11-28
url方式<strong>$param = array(); if ($argc > 1) { parse_str ( $argv [1], $param ); foreach ( $param as $k => $v ) { echo "define $k=$v\n"; $param[$k] = $v; }} print_r($param); //運行樣本php sync_t_search.php