2018年1月24日 星期三

PHP的測試 (2) 檔案上傳

用9個檔案上傳的方格

<form id="upForm"  action="test01.php" method="post" enctype="multipart/form-data">
<?PHP
for ($i=1;$i<10;$i++) {
  echo "$i <input name='l1upfile[$i]' type='file' ><br>";

}

?>
<input type="submit" value="上傳" />
</form>


只有 1,4輸入檔案時,可得到底下的$_FILES陣列

Array ( [l1upfile] => Array ( [name] => Array ( [1] => number.sb2 [2] => [3] => [4] => 抽座號.sb2 [5] => [6] => [7] => [8] => [9] => ) [type] => Array ( [1] => application/octet-stream [2] => [3] => [4] => application/octet-stream [5] => [6] => [7] => [8] => [9] => ) [tmp_name] => Array ( [1] => /tmp/phpRwv3Pk [2] => [3] => [4] => /tmp/php3wqacg [5] => [6] => [7] => [8] => [9] => ) [error] => Array ( [1] => 0 [2] => 4 [3] => 4 [4] => 0 [5] => 4 [6] => 4 [7] => 4 [8] => 4 [9] => 4 ) [size] => Array ( [1] => 53048 [2] => 0 [3] => 0 [4] => 53054 [5] => 0 [6] => 0 [7] => 0 [8] => 0 [9] => 0 ) ) )


補充

單一檔案上傳
<input name='upfile1[0]' type='file' />
<input name='upfile1[1]' type='file' />
和多重檔案上傳
<input name='upfile2[]' type='file' multiple="" />
得到的 $_FILES陣列是相同的

Array('name'=>array(0=>...,1=>...),
      'type'=>array(0=>...,1=>...),
      'tmp_name'=>array(0=>...,1=>...),
      'error'=>array(0=>...,1=>...),
      'size'=>array(0=>...,1=>...))

PHP 的測試 (1) MD5

這是以前測試的程式 md5 不論參數多長,總是產生一個長度32的字串 echo md5('tycx/asdfasdfsadfasd'); //a4cd629d921a937bfc6a7c1f38618111 echo md5('tycx/asdfas/sdfasdf/asdfasdf/asdfasdf/asdfasdf/asdfasdf/asdfasdfdfsadfasd'); //323acda0571ca5692d08ab6d410780bf

2018年1月18日 星期四

Namespace觀念與用法

最近查看別人寫的php程式碼,發現大量使用namespace 和 use

Namespace是物件導向語言很基本的功能,主要在解決class名稱衝突的問題。C++與C#也稱為namespace,Java則稱為package,雖然名稱不一樣,但精神都一樣,不過在語法部分PHP有自己的主張,與其他語言稍有不同。

假如是一個人從頭寫到尾的PHP專案,就不會遇到class名稱互相衝突的問題,但如果大量使用別人的framework或package,就很可能遇到class名稱相衝突的問題,所以才說namespace是PHP現代化最重要的基石。

Namespace的宣告會緊接著在<?php的下一行,命名規則建議最頂層的namespace名稱以vendor命名(公司名稱或組織名稱),必須是世界上唯一的名稱,以免class名稱雖然不衝突,但namespace名稱卻衝突了。

http://oomusou.io/php/php-namespace/ 說得很清楚


2018年1月17日 星期三

Draw基本認識

認識功能表和繪圖工具列



0. 從桌面上點選LibreOffice,然後開啟Draw繪圖軟體

1. 繪圖工具列可以用 檢視/工具列/繪圖 調整可見與否

2. 可以拖拉繪圖工具列到你想要的位置

3. 利用繪圖工具列中的任一幾個基本圖案構成一個圖形,如下方上圖

3-1 圖形的顏色可以用右方的屬性窗格中 區域/充填,然後選顏色

4. 先畫一個正圓(按住shift再拖曳圓),然後使用功能表的 編輯/製作副本,如下的方式填入數字

5. 用同樣的方式製作一個漸層的方形



用PHP產生gif動畫圖檔

這是一件很有趣的事情

我準備了兩個png檔和 gifencoder.class.php (下載)

$frames[] 裡是 gif檔案單層的內容
$frames[] 則是間隔


這是基本樣式

header ('Content-type:image/gif');
include('gifencoder.class.php');
$text = "Hello";

// Open the first source image and add the text.
$image = imagecreatefrompng('aa.png');
$text_color = imagecolorallocate($image, 200, 200, 200);
imagestring($image, 5, 5, 5,  $text, $text_color);

// Generate GIF from the $image
// We want to put the binary GIF data into an array to be used later,
//  so we use the output buffer.
ob_start();
imagegif($image);
$frames[]=ob_get_contents();
$framed[]=40;

// Delay in the animation.
ob_end_clean();

// And again..
// Open the first source image and add the text.
$image = imagecreatefrompng('xml.png');
$text_color = imagecolorallocate($image, 200, 200, 200);
imagestring($image, 5, 20, 20,  $text, $text_color);

// Generate GIF from the $image
// We want to put the binary GIF data into an array to be used later,
//  so we use the output buffer.
ob_start();
imagegif($image);
$frames[]=ob_get_contents();
$framed[]=40;

// Delay in the animation.
ob_end_clean();

// Generate the animated gif and output to screen.
$gif = new GIFEncoder($frames,$framed,0,2,0,0,0,'bin');
echo $gif->GetAnimation();

Draw繪圖 第一課

從桌面上點選LibreOffice,然後開啟Draw繪圖軟體

1.把紙張調整為橫向(格式/頁面/頁/橫向/確定),請在紙張的左邊完成底下的圖案

2.畫出一個大圓

3.再畫出一個小圓

4.複製小圓
如圖
5.編輯/全部選取,按下右鍵 選 形狀/合併

6.畫出一個小圓並複製成兩個小圓圈,當作眼睛(用複製的才不會大小眼)

7.編輯/全部選取,按下右鍵,選 形狀/減去

8.用圓弧工具,畫一個弧形,當作嘴巴(可以加粗線條並換色)

9.編輯/全部選取,群組

10.修改/轉換/變成3D



11. 依照同樣的方式,在紙張的右邊完成你自己的創作
例如:




2018年1月14日 星期日

2018年1月11日 星期四

草船借箭參考程式碼

草船借箭參考程式碼

1.標題:"草船借箭"

2. start 按鈕

3. 孔明

4.魯肅

5.第幾天

6.船

除了紅色方框內的,另外可以把周瑜和孔明的對話加進來。

scratch 草船借箭

範例:
1.下載已經存在的角色的範例檔 (boatarrow.sb2)。
2.播放範例


對話:
孔明:周瑜要我三天內造十萬支箭,你可要幫我的忙
魯肅:怎麼幫呢?
孔明:二十艘戰船
孔明:每一艘都要搭上布幔、紮滿草束,並配備三十名軍士。
魯肅:給
動畫:
第一天~第三天
對話+動畫:
孔明:我們去取箭
船(魯肅):曹操兵多勢大,萬一攻過來怎麼得了?
船(孔明):放心吧!曹操生性多疑,不會在霧中開戰的,一定只在遠處放箭。我們就等著收箭吧!
船(士兵):謝謝丞相的箭。

參考程式碼

內小打字教學步驟

先開啟學生作品版


2018年1月7日 星期日

CentOS 上的Apache用 https

1. 到 https://www.sslforfree.com/ 申請憑證

2. 步驟上可參考 https://free.com.tw/ssl-for-free/

打字練習

打字練習


高級打字練習


得分: 正確: 錯誤: 剩餘時間:200



初級打字練習


得分: 正確: 錯誤: 剩餘時間:200



中級打字練習(下)


得分: 正確: 錯誤: 剩餘時間:200



中級打字練習(上)

得分: 正確: 錯誤: 剩餘時間:200