Time of Update: 2018-12-08
或是,PHP的設計本身就避免直接查看檔案內容的情況? 從安全形度考慮,這個系統級的檔案應該做什麼保護措施? 網友完善的答案 經調研,得出以下常用方法: 1 在程式中定義一個標識變數 複製代碼 代碼如下:define('IN_SYS', TRUE); 2 在config.php中擷取這變數 複製代碼 代碼如下:if(!defined('IN_SYS')) { exit('禁止訪問'); }
Time of Update: 2018-12-08
config.php檔案: 複製代碼 代碼如下:<?php $db_name="test"; $db_username="root"; global $db_password; ?> 資料庫操作類(調用設定檔)db.fun.php: 複製代碼 代碼如下:<?php require("config/config.php"); class db{ function fun(){ global $db_username,$db_password; echo "資料庫使用者名稱:".$
Time of Update: 2018-12-08
複製代碼 代碼如下:<?php header("Content-type:text/xml;charset=utf-8"); $aaa =<<<html <?xml version='1.0' encoding='utf-8'?> <SubFucParams> <Version>1.0.0.0</Version>
Time of Update: 2018-12-08
文章目錄 文法說明 文法sprintf(format,arg1,arg2,arg++)參數描述format必需。轉換格式。arg1必需。規定插到 format 字串中第一個 % 符號處的參數。arg2可選。規定插到 format 字串中第二個 % 符號處的參數。arg++可選。規定插到 format 字串中第三、四等等 % 符號處的參數。說明參數 format 是轉換的格式,以百分比符號 ("%") 開始到轉換字元結束。下面的可能的
Time of Update: 2018-12-08
複製代碼 代碼如下:<?php $arr = array('a','b','c','d'); unset($arr[1]); print_r($arr); ?> print_r($arr)之後,結果卻不是那樣的,最終結果是 Array ( [0] => a [2] => c [3] => d 那麼怎麼才能做到缺少的元素會被填補並且數組會被重新索引呢?答案是array_splice(): 複製代碼 代碼如下:<?php $arr = array('a','b',
Time of Update: 2018-12-08
介面在php只能起到約束類的定義作用,雖不像c#/java那麼直觀,但基於oop的封裝要求,使用介面可以提高程式的可擴充性,如實現代理設計模式。 複製代碼 代碼如下:<?php //人類介面 interface IHuman { function GetName(); } //男人類,實現人類介面 class ManClass implements IHuman { //擷取姓名方法 public function GetName() { return "I'm
Time of Update: 2018-12-08
一、strstr — 尋找字串的首次出現 string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] ) 注1:$haystack是當事字串,$needle是被尋找的字串。該函數區分大小寫。 注2:傳回值是從needle開始到最後。 注3:關於$needle,如果不是字串,被當作整形來作為字元的序號來使用。 注4:before_needle若為true,則返回前東西。 複製代碼
Time of Update: 2018-12-08
經常會有人問我, PHP的數組, 如果用foreach來訪問, 遍曆的順序是固定的麼? 以什麼順序遍曆呢? 比如: 複製代碼 代碼如下:<?php $arr['laruence'] = 'huixinchen'; $arr['yahoo'] = 2007; $arr['baidu'] = 2008; foreach ($arr as $key => $val) { //結果是什麼? } 又比如: 複製代碼 代碼如下:<?php $arr[2] = 'huixinchen'; $
Time of Update: 2018-12-08
找到原因後,在網上搜尋到了一些關於PHP的時區設定方法: 1、修改php.ini,在php.ini中找到data.timezone =去掉它前面的;號,然後設定data.timezone = “Asia/Shanghai”;即可。 2、在程式PHP 5以上版本的程式碼中使用函數ini_set('date.timezone','Asia/Shanghai');或者date_default_timezone_set(‘Asia/Shanghai'); 一些常用的時區標識符說明:
Time of Update: 2018-12-08
複製代碼 代碼如下:<? function my_addslashes($string, $force = 0) { !defined('MAGIC_QUOTES_GPC') && define('MAGIC_QUOTES_GPC', get_magic_quotes_gpc()); if(!MAGIC_QUOTES_GPC || $force) { if(is_array($string)) { foreach($string as $key => $val) {
Time of Update: 2018-12-08
說明: 1,在伺服器緩衝了壓縮過的檔案,再次訪問減少再壓縮時間,降低CPU佔用率。 2,通過設定用戶端檔案快取時間,降低再次請求次數,可降低85%以上。 3,圖片因為已經是壓縮格式,只是設定用戶端緩衝時間,不做壓縮處理。 使用方法: 1,伺服器必須支援gzip,Rewrite功能。 2,在.htacess檔案的“RewriteBase /”下面一行添加下面的代碼,見圖 RewriteRule (.*.css$|.*.js$|.*.jpg$|.*.gif$|.*.png$) gzip.php?$1
Time of Update: 2018-12-08
一、入口 入口檔案可以是單檔案也可以是多檔案,我現在用的基本屬多檔案,但是入口檔案內容基本都是一樣,為以後的修改其它的入口方式做基礎, 複製代碼 代碼如下:<?php require 'command/config.php'; require 'command/app.php'; app::run($config); ?> 首先不用說大家也看得出來,載入系統設定檔,然後通過引擎來載入系統配置。 二、引擎 複製代碼 代碼如下:public function run($config){
Time of Update: 2018-12-08
就如今天遇到隨即函數rand();腦海中想到用它做點啥好呢,最後想起了驗證碼,數字驗證碼,字母驗證碼,中文驗證碼,可是自己不會呀,咋辦呢,上網搜,看別人的代碼,開不懂,看視頻,聽老師講,將其中所遇到的函數,值得注意的地方都拿筆記下,平常看到一般網頁上的隨機驗證碼都是以一定的方框包圍起來,貌似就是以圖片為背景的。經過邊看,自己邊敲,雖然遇到很多不會的問題,但是我相信只要自己腳踏實地,一定學會的。現在想做一下總結,自己可能寫的很亂,可我相信有一天會實現的。1.產生數位隨機數
Time of Update: 2018-12-08
技術不精,要有錯誤,還請指出,我會改正。 複製代碼 代碼如下:header('Content-Type: text/html; charset=utf-8'); echo '<pre>'; function var_array($array) { echo '<pre>'; var_dump($array); echo '</pre>'; } function printr($array) { echo '<pre>';
Time of Update: 2018-12-08
主要函數是file_get_contents,主程式分兩段,跟我一起看過來吧(凡人部落格原創代碼,轉載請註明)。 複製代碼 代碼如下:function escape($str){ preg_match_all('/[\x80-\xff].|[\x01-\x7f]+/',$str,$r); $ar = $r[0]; foreach($ar as $k=>$v){ if(ord($v[0]) < 128) $ar[$k] = rawurlencode($v); else $ar[$k]
Time of Update: 2018-12-08
雖然這一特點使用PHP編程非常容易,但它也存在一個重要的缺陷:當你需要測試一個變數的類型時,處理類型比較鬆散的語言就讓人有些迷惑。幸運地是,PHP的開發人員注意到這一情況,因此在其中包含了一個函數工具包,特別用它來測試變數並查明它們屬於哪個特定的字元類別——也就是說,它們是否包含字串、整數、對象或布爾值。 下面列出了這一類別中較為有用的函數,並提供說明與應用執行個體。 empty($var)
Time of Update: 2018-12-08
首先附上代碼 複製代碼 代碼如下:^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3}$ 在這段Regex中,“+”表示前面的字串連續出現一個或多個;“^”表示下一個字串必須出現在開頭,“$”表示前一個字串必須出現在結尾;
Time of Update: 2018-12-08
項目結構:上傳首頁:上傳效果:fileupload.php 複製代碼 代碼如下:<form action="" enctype="multipart/form-data" method="post" name="uploadfile">上傳檔案:<input type="file" name="upfile" /><br> <input type="submit" value="上傳" /></form> <?php
Time of Update: 2018-12-08
思維導圖 點擊,查看大圖。 介紹 條件邏輯有可能十分複雜,因此本章提供一些重構的手法,專門用來簡化它們。 全文簡述(你可直接跳過下面的內容) 核心重構:Decompose Conditional——分離”轉轍邏輯“(switching logic)和”操作細節“(details)分離。 多處測試有相同結果:Consolidate Conditional Expresssion 條件代碼中去掉重複成分:Consolidate Duplicate 標識特殊情況:Replace
Time of Update: 2018-12-08
介紹 對於php效能問題,議論最多的就是__autoload()方法,很多人提到這個方法非常影響效能。還有人說opcode也能影響到__autoload()方法,所以針對這兩點我做了個測試。 最終發現__autoload方法在效能方面的影響不是很大的。 環境 PHP:5.3.9 ——以fastcgi模式啟動 Nginx:1.1.12 eaccelerator:0.9.6.1 。 最終發現__autoload方法在效能方面的影響不是很大的。 環境 PHP:5.3.9