Time of Update: 2017-02-28
在本文中,筆者將為大家介紹phpunit中的兩個進階概念和用法,儘管它不一定在你的日常單元測試中都用到,但理解和學會它們的用法對學習phpunit還是十分重要的。 Phpunit中的Annotations 如果有其他程式設計語言經驗的開發人員,應該對Annotations(註解)不陌生,其實在phpunit中,一個簡單的如下面的一段注釋也可以認為是Annotations:<?phpclass MyTestClass extends
Time of Update: 2017-02-28
1. php 設定檔 php.ini 中的 magic_quotes_gpc 選項沒有開啟,被置為 off 2. 開發人員沒有對資料類型進行檢查和轉義 不過事實上,第二點最為重要。我認為, 對使用者輸入的資料類型進行檢查,向 MYSQL 提交正確的資料類型,這應該是一個 web 程式員最最基本的素質。但現實中,常常有許多小白式的 Web 開發人員忘了這點, 從而導致後門大開。 為什麼說第二點最為重要?因為如果沒有第二點的保證,magic_quotes_gpc 選項,不論為 on,還是為
Time of Update: 2017-02-28
最近有人問我做下載檔案的方法,對於php方法如下: 複製代碼 代碼如下:<?php header("Content-Type: application/force-download"); header("Content-Disposition: attachment; filename=ins.jpg"); readfile("imgs/test_Zoom.jpg"); ?> 第一行代碼是強制下載; 第二行代碼是給下載的內容指定一個名字; 第三行代碼是把下載的內容讀進檔案中。
Time of Update: 2017-02-28
ange($low, $high),range($low, $high, $step);//建立順序值的數組如:range(1,4)為(1,2,3,4)又如range('a','z') each($array)按順序返回數組的當前元素,並且將下一個元素設定為當前元素; reset($array)將數組當前元素重新設定到數組開始處 list()可以用來將一個數組分解為一系列的值,如 list($a,$b)=each($array) shuffle($array),array_rand($arg,
Time of Update: 2017-02-28
1.合并數組 array_merge()函數將數組合并到一起,返回一個聯合的數組。所得到的數組以第一個輸入數組參數開始,按後面數組參數出現的順序依次迫加。其形式為: 複製代碼 代碼如下:array array_merge (array array1 array2…,arrayN) 將一個或多個數組的單元合并起來,一個數組中的值附加在前一個數組的後面。返回作為結果的數組。
Time of Update: 2017-02-28
例如: 複製代碼 代碼如下:function say () { alert (arguments[0]+'說:'+arguments[1]); } say ('fanglor','fanglor is a boy !'); 結果:彈出 fanglor 說:fanglor is a boy ! -------------------------------------------------------------------------------- 這個有點類似於php 中的
Time of Update: 2017-02-28
用 PHP 讀取和編寫可延伸標記語言 (XML)(XML)看起來可能有點恐怖。實際上,XML 和它的所有相關技術可能是恐怖的,但是用 PHP 讀取和編寫 XML 不一定是項恐怖的任務。首先,需要學習一點關於 XML 的知識 —— 它是什麼,用它做什麼。然後,需要學習如何用 PHP 讀取和編寫 XML,而有許多種方式可以做這件事。 本文提供了 XML 的簡短入門,然後解釋如何用 PHP 讀取和編寫 XML。 什麼是 XML? XML
Time of Update: 2017-02-28
從瀏覽器上看,使用 header(location) 就跳轉到另一個頁面了,但事實上,php卻仍然會執行背景代碼的,假如後面的代碼有不安全邏輯的,那就直接無視開發人員設定的條件,繼續把後面的東西給執行了。 如: 複製代碼 代碼如下:if(true) { header('location:http://www.jb51.net'); } file_put_contents('test.txt', 'ok'); 這個代碼中,粗心的程式員會以為 header('location:http://www.
Time of Update: 2017-02-28
Fatal error: Non-static method Conn::__construct() cannot be called statically in /file.php 沒有靜態方法(裡面這個指方法參數,字串類型),不能從靜態上下文引用。 Fatal error: [] operator not supported for strings in /file.php 當一個變數已設為非數群組類型的時候,就不能再次使用[]讓同名變數增加資料索引值 解決方案:1.改變變數名稱、2.使用$
Time of Update: 2017-02-28
清單 1.簡單的擲骰器 許多遊戲和遊戲系統都需要骰子。讓我們先從簡單的部分入手:擲一個六面骰子。實際上,滾動一個六面骰子就是從 1 到 6 之間選擇一個隨機數字。在 PHP 中,這十分簡單:echo rand(1,6);。 在許多情況下,這基本上很簡單。但是在處理機率遊戲時,我們需要一些更好的實現。PHP 提供了更好的隨機數字產生器:mt_rand()。在不深入研究兩者差別的情況下,可以認為 mt_rand 是一個更快、更好的隨機數字產生器:echo
Time of Update: 2017-02-28
/** * 將數組的內部指標倒回一位 * @param array &$arr * @return mixed 返回前一個單元的值,當沒有更多單元時返回 FALSE * 如果數組包含空的單元,或者單元的值是 0 則本函數碰到這些單元也返回 FALSE * 要正確遍曆可能含有空單元或者單元值為 0 的數組,參見 each() 函數 */ mixed prev(array &$arr); <?php $transport = array('foot', 'bike', 'car',
Time of Update: 2017-02-28
應該這樣用if(isset($_POST['submit'])) { } 提交表單時 if($_POST[submit])與 if(isset($_POST[submit])) 的區別 第一種方法會出現一個warning,第二種相對更嚴謹。 還有就是POST的鍵名最好加上單引號,這樣效率稍微高點(大概3-4倍)。 恩 差不多那個意思,如果設定了這個變數則返回true PHP中if(isset($_POST['Submit']))是什麼意思 isset -- 檢測變數是否設定
Time of Update: 2017-02-28
用來作為解決php以root許可權執行一些普通使用者不能執行的命令或應用的參考。 其實php裡的popen()函數是可以解決這個問題的,但是由於某些版本的linux(如我使用的Centos 5)對系統安全的考慮, 使得這個問題解決起來麻煩了好多。先來看一個網友使用popen()函數的例子。 複製代碼 代碼如下:/* PHP中如何增加一個系統使用者 下面是一段常式,增加一個名字為james的使用者, root密碼是 louis。僅供參考 */ $sucommand = "su root
Time of Update: 2017-02-28
首先使用一個ini檔案來設定要縮放的大小,其中為寬或高0的則為圖片放大或縮小,都為0則還是原大小,都不為0都拉抻成指定的大小。 注意:ini檔案使用php解釋時為注釋檔案,什麼也沒有輸出,這是為了安全起見而故意為之。而;則是ini檔案的注釋。 我設定的ini檔案例子如下: 複製代碼 代碼如下:<?php /* ;Translate the image format using the original image size [Translation] width=0 height=0
Time of Update: 2017-02-28
複製代碼 代碼如下:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>greengnn
Time of Update: 2017-02-28
現在就簡單說一在WINDOWS下開發PHP擴充的步驟: 首先需要準備的軟體有: cygwin 安裝路徑e:\app\cygwin visual studio C++ 6.0, 修改環境變數,把已經安裝好的PHP路徑設定為環境變數。在這裡,假設我的PHP安裝目錄是:e:\app\php5.2.5,那麼我把WINDOWS環境變數後面加上這個安裝目錄。方便一會兒使用php.exe。 PHP原始碼,這裡假設為e:\c_source_code\php-5.2.5 1、修改檔案 “PHP源檔案目錄/ext/
Time of Update: 2017-02-28
一、Apache安裝 版本解釋:openssl是表示帶有openssl模組,利用openssl就可以給Apache配置SSL安全連結的,也就是使用https://方式進行訪問。 nossl則表示不帶OpenSSL模組,無 法用於SSL安全連結,在這裡我們下載帶OpenSSL的。 選擇版本:apache_2.2.14-win32-x86-openssl-0.9.8k.msi 下載地址:http://www.apache.org/dist/httpd/binaries/win
Time of Update: 2017-02-28
注意: 除非數組是被引用,foreach 所操作的是指定數組的一個拷貝,而不是該數組本身。因此數組指標不會被 each() 結構改變,對返回的數組單元的修改也不會影響原數組。 1. 自php5起,foreach 還可能遍曆對象的屬性。 2. 自php5起,foreach 可以很容易地通過在 $value 之前加上 & 來修改數組的單元,此方法將以引用賦值而不是拷貝一個值。 複製代碼 代碼如下:<?php $arr = array(1, 2, 3, 4); foreach ($arr as
Time of Update: 2017-02-28
如: 複製代碼 代碼如下:<form enctype="multipart/form-data" action="upload.php" method="post"> <input type="hidden" name="MAX_FILE_SIZE" value="1000"> <input name="myFile" type="file"> <input type="submit" value="上傳檔案"> </form>
Time of Update: 2017-02-28
對PHP語言有些瞭解的朋友們都知道,它包含有功能強大的函數庫。我們今天就一起來瞭解一下PHP uploaded_files函數的具體功能。 在早期的PHP版本中,上傳檔案很可能是通過如下的代碼實現的: 複製代碼 代碼如下:…… if (isset($_FILES['file'])) { $tmp_name = $_FILES['file']['tmp_name']; } if (file_exists($tmp_name)) { copy($tmp_name,$destfile); } ……