Time of Update: 2018-12-08
crontab是linux內建的一個命令 使php自動啟動並執行方法php自動運行有很多方法,這裡分以下DZ以及一些通過系統完成的方法和直接觸發運行駐留系統的方法。Discuz後台有個計劃任務,可以使php自動運行。DZ計劃任務的機制是這樣:1.首先在到了觸發計劃任務的時間,有訪問(會員,遊客,搜尋引擎的蜘蛛)然後觸發該計劃任務發生。(因為PHP是觸發是語言,沒有人去訪問他,他什麼也做不了。)2. 計劃任務執行.3.
Time of Update: 2018-12-08
php+access串連資料庫常用的方式一般有兩種.推薦的代碼需要注意php擷取路徑用的是realpath 複製代碼 代碼如下:<?php $connstr="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("data.mdb"); $connid=odbc_connect($connstr,"","",SQL_CUR_USE_ODBC); $issuetime=date("Y-m-d H:i:s");
Time of Update: 2018-12-08
概述代碼審核,是對應用程式原始碼進行系統性檢查的工作。它的目的是為了找到並且修複應用程式在開發階段存在的一些漏洞或者程式邏輯錯誤,避免程式漏洞被非法利用給企業帶來不必要的風險代碼審核不是簡單的檢查代碼,審核代碼的原因是確保代碼能安全的做到對資訊和資源進行足夠的保護,所以熟悉整個應用程式的商務程序對於控制潛在的風險是非常重要的。審核人員可以使用類似下面的問題對開發人員進行訪談,來收集應用程式資訊。應用程式中包含什麼類型的敏感資訊,應用程式怎麼保護這些資訊的?應用程式是對內提供服務,還是對外?哪些人
Time of Update: 2018-12-08
什麼是Hessian Hessian是由caucho提供的一種開源的遠程通訊協議。 採用二進位 RPC 協議,基於 HTTP
Time of Update: 2018-12-08
1.1.1 zval結構Zend使用zval結構來儲存PHP變數的值,該結構如下所示:複製代碼 代碼如下:typedef union _zvalue_value { long lval; /* long value */ double dval; /* double value */ struct { char *val; int len; } str; HashTable *ht; /* hash table value */ zend_object_value obj;
Time of Update: 2018-12-08
在很多場合為了顯示出資訊的及時性,一般會將時間顯示成“剛剛”,“5分鐘前”,“3小時前”等,而不是直接將時間列印出來。比如微博,SNS類應用就最長用到這個功能。而一般儲存在資料庫中的時間格式為 Unix時間戳記,所以這裡記錄一個將 Unix時間戳記 轉化為時間軸顯示的PHP函數。函數比較簡單,直接看代碼就很好懂了。複製代碼 代碼如下:<?phpdate_default_timezone_set('PRC');$date = "1351836000";echo tranTime($date)
Time of Update: 2018-12-08
複製代碼 代碼如下:<?php function make_rand($length="32"){//驗證碼文字產生函數 $str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; $result=""; for($i=0;$i<$length;$i++){ $num[$i]=rand(0,61); $result.=$str[$num[$
Time of Update: 2018-12-08
有關 PHP 的 empty(),isset() 還有 is_null() 這三個函數的用法討論得已經很多了,而且很多資料也未必能說得很清楚。這裡再重複一次,但不是從概念去說,直接用程式例子來說話,應該記憶會比較深刻些。測試的類型如下:複製代碼 代碼如下:<?php $a; $b = false; $c = ''; $d = 0; $e = null; $f = array(); ?>empty()首先是empty的var_dump輸出:複製代碼 代碼如下:<?php var_
Time of Update: 2018-12-08
【造成原因】:Because PHP's integer type is signed, and many IP addresses will result in negative integers.【解決辦法】:其官方手冊中提到,可以“you need to use the "%u" formatter of sprintf() or printf() to get the string representation of the unsigned IP address”即,printf( '
Time of Update: 2018-12-08
ppa安裝php-fpm安裝工具包複製代碼 代碼如下:$ sudo apt-get install python-software-properties 添加ppa源複製代碼 代碼如下:$ sudo add-apt-repository ppa:yola/php5安裝php5-fpm複製代碼 代碼如下:sudo apt-get updatesudo apt-get install php5-fpm其它必要的軟體安裝接複製代碼 代碼如下:sudo apt-get
Time of Update: 2018-12-08
單例模式的要點有三個:一是某個類只能有一個執行個體;二是它必須自行建立這個執行個體;三是它必須自行向整個系統提供這個執行個體。複製代碼 代碼如下:<?php /* 單例模式舉例,其要點如下: * * 1. $_instance 必須聲明為靜態私人變數 * 2. 建構函式和複製函數必須聲明為私人的,這是為了防止外部程式 new 類從而失去單例模式的意義 * 3. getInstance()方法必須聲明為公有的,必須調用此方法以返回唯一執行個體的一個引用 * 4.
Time of Update: 2018-12-08
php下載檔案,比如txt檔案。出現的效果就是,彈出瀏覽器內建的下載框,出現另存新檔操作。有時候會出現記憶體溢出和逾時的現象。逾時的話,設定set_time_limit(0);出現記憶體溢出的話,有可能是因為從資料庫中取出的資料量太大導致的。如果是從檔案中讀取的話,出現記憶體溢出的話,就是代碼讀取方式不正確,調用files或者filegetcontens才會如果是fopen的話,就給一個緩衝區,固定大小,讀入然後寫入,不會出現記憶體溢出的情況。如代碼:複製代碼 代碼如下:if
Time of Update: 2018-12-08
以前做過一道php面試題是這樣的:不使用第三個變數實現交換兩個變數的值。一般都是藉助第三個中間變數來實現原來兩個變數的值交換,但是這道題卻要求不能使用中間變數,這對於初學者來說也算是一個難題了。網上找到的幾種方法總結如下:複製代碼 代碼如下://字串版本 結合使用substr,strlen兩個方法實現$a="a";$b="b";echo '交換前 $a:'.$a.',$b:'.$b.'<br />';$a.=$b;$b=substr($a,0,(strlen($a)-strlen($
Time of Update: 2018-12-08
public 表示全域,類內部外部子類都可以訪問;複製代碼 代碼如下:<?php class Test{ public $name='Janking', $sex='male', $age=23; function __construct(){ echo $this->age.'<br />'.$this->name.'<br /&
Time of Update: 2018-12-08
1、定義常量: 複製代碼 代碼如下:<?php //1 define("TAX_RATE",0.08); echo TAX_RATE; //輸出0.08 //2 (PHP 5.3) const TAX_RATE2 =0.01; echo '--'.TAX_RATE2; //輸出0.01 ?> 2、require 和require_once 區別: 前者遇到即包含檔案,後者會判斷是否已經包含過了,如果包含過了,則不再包含檔案。一可以節省資源,二可以避免重複定義的錯誤。
Time of Update: 2018-12-08
PHP 有三大流程式控制制:順序控制,分支控制,迴圈控制。1、順序控制:就是程式按順序從上往下一步一步的執行。2、分支控制:程式有選擇的執行。又分單分支,多分支,多重分支。a、單分支:基本文法結構:if(條件運算式){ 語句; //.....;} 提示:條件運算式不管有多複雜,最終就是true或者false;eg:a=11;if(a>10){ echo "a>10";}b、多分支:基本文法:if(條件運算式){ 語句; //.....;}else{ 語句; //....
Time of Update: 2018-12-08
布爾類型是PHP中 最簡單的類型。它的值可以為 TRUE 或 FALSE。如:$foo=false;$foo1=true;echo "為假時輸出值為:".$foo; //沒有輸出值echo "<br />為真時輸出值為:".$foo1; //輸出1這裡主要的細節:當轉換為 boolean 時,以下值被認為是 FALSE :1、the 布爾值 FALSE 自身 2、the 整型值 0 (零) 3、the 浮點型值 0.0 (零) 空 字串, 以及 字串 "0"
Time of Update: 2018-12-08
get_headers() 是PHP系統級函數,他返回一個包含有伺服器響應一個 HTTP 要求所發送的標題的數組。如果失敗則返回 FALSE 並發出一條 E_WARNING 層級的錯誤資訊(可用來判斷遠程檔案是否存在)。函數定義array get_headers ( string $url [, int $format = 0 ] )參數url 目標 URLformat 如果將可選的 format 參數設為 1,則 get_headers()
Time of Update: 2018-12-08
今天寫了下無限極分類 下面就把代碼貼上來了 寫的不怎麼樣。method of classify one複製代碼 代碼如下:<?php/*reader: 這是自己寫的無限極分類實現方法 裡面的編輯方法只是對分類名進行了編輯 沒有進行移動操作 小弟能力有限忘大家多多包涵啊 第一種方法:CREATE TABLE `types` ( `type_id` int(11) NOT NULL AUTO_INCREMENT, `type_name` varchar(20) NOT NULL,
Time of Update: 2018-12-08
小編今天寫下關於後台管理員權限的分配自己的思路想法複製代碼 代碼如下:<?php /**reader * 小編的思想比較簡單實現的功能 * 首先每個欄目的id號是固定不變的 然後 總管理員 * 建立個管理員之後 給該管理員分配許可權的時候 把相應的欄目勾選上 * 這樣把欄目的 id 號 就插入到資料庫裡面了,當這個管理員登入之後 * 獲得這個管理員 應有的的欄目id 號 。左邊的導航 根據當前的欄目id在不在該管理員的 * 欄目id號裡 來判斷顯示或者不顯示呢.. */ header(