PIXNET Logo登入

danielhuang030 的研究日誌

跳到主文

GitHub: danielhuang-030 GitHub

部落格全站分類:數位生活

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 3月 06 週四 200815:16
  • [PHP] 匯出pdf檔的方法

偶然在網路上看到介紹的文章:免費好用的 PDF Library 大蒐集。原本是想用來寫一個套印的小程式的,不過沒想到這玩意兒這麼難搞;因為中文編碼的關係。何況已經有人寫出類似的程式囉:藍色小舖PHP -> FPDF。還是稍微記錄一下使用的過程吧!
說到pdf檔產生,網路上似乎一面倒的推薦FPDF,其他pdf產生的class也幾乎是在它的基礎下衍生出來的~算是元老級的pdf class!另外對於中文的支援有提供chinese.zip、以及支援中文Unicode的
(繼續閱讀...)
文章標籤

danielhuang030 發表在 痞客邦 留言(0) 人氣(300)

  • 個人分類:PHP
▲top
  • 3月 04 週二 200813:04
  • [RegExp] 正規表示式簡介,日期YYYY-MM-DD判斷法

正規表示式,Regular Expression。它有多種翻譯名稱:正規表示法、正則表達式...等等;這裡我用ptt CompScience群組中的RegExp版中文名稱為準。它是用來描述或者匹配一系列符合某個句法規則的字元串的單個字元串;舉例來說,它經常被用來檢查E-mail或是電話之類有規則的字串,輸入的資料是否正確。以下稍微介紹一下它的部分語法:
//:正規表示式開始與結束,設定需比對的字串規則於二個「/」之中。
\d:數字;意同[0-9]。
(繼續閱讀...)
文章標籤

danielhuang030 發表在 痞客邦 留言(0) 人氣(1,567)

  • 個人分類:RegExp
▲top
  • 3月 03 週一 200808:35
  • [PHP] Excel檔案轉出的方式

轉入之後當然接下來的就是轉出囉!我原本採用的轉出方法是非常陽春的斷欄「\t」與斷行「\n」的應用,所以在使用M$ Excel 2007時總是會出現錯誤訊息提示。與轉入的方式比較起來,Excel檔案轉出的方式似乎比較多:PHP導入導出Excel方法小結。裡面共介紹6種方式~不巧在下小弟我因為儲存格格式的問題,幾乎把所有方法都試過一遍了...下面來分別介紹使用方式與心得吧!
1、PHPExcel:PHPExcel,一個最好的控制excel的類
非常可惜的這是我能找到介紹最完整的網路說明~這套class是屬於非常新的一個class,所以關於用法網路上並沒有介紹的很詳細;官方網站裡的說明文件也非常陽春...雖然功能強大,而且通吃M$ Excel 2007及其以下的各版本,文章裡大力推薦,但是因為說明文件資料不足、網上範例太少、寫入時採用英文字母,很難用迴圈跑出來(汗)、儲存格格式無法設定...等原因,最後放棄這一個方法。
(繼續閱讀...)
文章標籤

danielhuang030 發表在 痞客邦 留言(16) 人氣(1,890)

  • 個人分類:PHP
▲top
  • 2月 26 週二 200809:08
  • [PHP] Excel檔案轉入的方式

依然是專案管理系統的功能。因為之前Excel檔案的匯入是採用另存新檔後的csv匯入;因為以PHP來說,xls的Excel檔內含太多不可確定的格式,不如單純的逗號分隔檔案csv的資料來的純粹。不過站在使用者的角度,「另存新檔」本身就是一個多餘的動作,何況再轉存成csv檔後並不是直接按確定這麼簡單;因為Excel檔案格式的改變,所以會有M$貼心的提醒...總之最後導致整個匯入動作感覺很不友善。
儘管PTT PHP版一面倒的建議採用csv檔作資料的讀入處理,但是使用者才不管你這麼多勒!對使用者友善,就是對程式設計者的殘忍啊...然而,之所以會需要程式設計者,也是為了要對使用者更友善啊~所以,我找了一下網路上直接上傳Excel檔轉入資料的方法,目前找到二種試驗後都成功的方法:
第一種是利用PHP的COM()函數,呼叫PHP所在Server的M$ Office程式做處理。這個函數運用的感覺比較像是在寫bat檔,利用一連串指令在使用者不知情的狀況下完成想要達到的目的;當然,缺點就是這種方式只適用在M$ Windows的作業系統,而且Server上還必須要有M$ Office...
雖然說是直接上傳Excel檔轉入資料,但說穿了不過是利用COM()函數
(繼續閱讀...)
文章標籤

danielhuang030 發表在 痞客邦 留言(8) 人氣(88)

  • 個人分類:PHP
▲top
  • 2月 13 週三 200809:33
  • [PHP] 去除特殊字元:str_replace()函數運用

因為公司會計部門的人還是比較喜歡(習慣)過去使用Excel編輯成本的環境,新系統上線的不習慣在無形間浪費了許多工時;所以現在專案管理系統在輸入方面將新增轉入功能。簡單說就是利用原先熟悉的Excel環境提供轉檔程式轉進資料庫中。不過這也代表著我先前做的輸入介面與自動完成完全無用武之地啊~(噗)當然已經作的介面也不需要特別去刪掉,就當作有二種輸入介面吧!
因為Excel格式之複雜,導致PHP在轉檔時會發生許多不可預期的問題;所以不論是網路上或是PTT幾乎都建議改以csv檔作轉入的動作;Excel本身也有提供另存成csv檔的功能~也算是一種折衷的方案囉。
之前有試寫人工成本Excel的資料轉入,昨天嘗試著修改了一下介面與原系統整合,本來以為已經沒有問題了~沒想到今天早上卻發現原始csv檔內的特殊字元ex:\t、\n、\r在作怪,導致原先的Javascript警告視窗失效。上網搜尋一下馬上就找到解決的辦法啦~網路真是大家好朋友:PHP如何取消字串裡的特殊字元呢??
主要是利用str_replace()函數,運用取代函數將特殊字數取代掉;是很聰明的應用方式哩!其中以陣列方式一次取代是最方便:
(繼續閱讀...)
文章標籤

danielhuang030 發表在 痞客邦 留言(0) 人氣(240)

  • 個人分類:PHP
▲top
  • 2月 09 週六 200818:03
  • [AJAX] 自動完成autocomplete

春節前在公司卡很久的自動完成,終於解套啦!(吼)
會碰到這個問題,主要是因為本公司的專案管理系統,在材料成本新增時的廠商欄,會計反應會花很多時間在建立重複的資料上;一開始她建議使用下拉式選單...但是可想而知隨著資料量的增加,這下拉式選單也會變的愈來愈龐大...(汗)剛好前一陣子在研究自動完成,就想把這個應用加在專案管理系統中。關於自動完成,英文絕對沒什麼大問題;重點是中文啊~本來是要自己寫,真正動手以後才發現這個功能不是這麼簡單低。後來熊熊發現網路上有好用的免費資源啊!索性就先借用(?)來試試囉~
起初非常驚訝,沒想到網路上的自動完成功能完善,畫面精美;簡單說就是一整個適合!不過是二個javascript跟一個css就把自動完成做的如此完美,用法也非常簡單!不過高興的情緒並沒有持續太久,我很快的發現到這個自動完成,在IE瀏覽器下對中文不支援!(英文OK)非常出乎意料的該網誌作者註明對firefox不支援...但是我的firefox卻OK;很殘念的會計所慣用的瀏覽器是IE6...就這樣自動完成又走進死胡同。
後來我又花了不少時間在網上尋找適合的lib,期間不經意的發現原來一開始我所找到的免費資源其實是CAPXOUS的破解版;這壓根兒不是什麼免費資源!(汗)我所找到的是v1.3.0的版本,目前最新則是到v1.4.4版本。CAPXOUS本身也有提供程式碼下載以及解說~只不過它既然是個共享程式,廣告自然就少不了囉!最新的版本漂亮許多,當然付費授權的價格也就有點不親切...349 USD。
v1.4.4版也只有幾個檔案,當然重點還是在autocomplete.js、prototype.js以及autocomplete.css上囉!有興趣的人可以直接從CAPXOUS的下載位置下載到,程式碼其實還頗複雜本人目前攻力尚淺,是處於一整個看不懂的階段,只好稍微解釋一下連結資料庫時的PHP檔,以及是如何運用在input欄位中的。
主要使用自動完成的頁面,千萬別忘記先導入二個javascript跟一個css:(夾在<head></head>之間)
<script language="JavaScript" src="javascripts/prototype.js" type="text/JavaScript"></script>
<script language="JavaScript" src="javascripts/autocomplete.js" type="text/JavaScript"></script>
<link rel="stylesheet" type="text/css" href="styles/autocomplete.css" />
廠商欄的輸入框:
<input name="supplier" type="text" id="supplier" size="10" />
表格結束後的javascript,導入AJAX:
<script>
 var d = new Date();
 new Autocomplete("supplier", function() {
  return "Suggest.php?msec=" + d.getMilliseconds() + "&type=0&keyword=" + this.value;
 });
</script>
d:特別建立的時間值,利用d.getMilliseconds()取得毫秒後,用以防止瀏覽器在以後只讀快取中的資料而沒有重新查詢。
supplier:input時的id(還是name忘記了...)
type&keyword:要傳入Suggest.php用以查詢資料庫
連結資料庫用的Suggest.php:
<?php
// 利用GET取得變數
$keyword = $_GET['keyword'];
$type = $_GET['type'];
(繼續閱讀...)
文章標籤

danielhuang030 發表在 痞客邦 留言(1) 人氣(186)

  • 個人分類:AJAX
▲top
  • 2月 06 週三 200812:13
  • [PHP] 利用GD函式庫,製作互動式圖片

很久以前就有這樣的計畫,利用現有的圖片由使用者自行加註文字,然後合成為另一張新的圖片~爬了一下PTT的PHP版,很快就看到類似的東西。剛好十天的假期在家閒閒沒事,就來研究一下這玩意兒要怎麼弄吧。
說到跟圖片有關的東西,就不能忘了PHP的GD函式庫啦!它強大的功能也曾經幫我在名片查詢系統時,利用PHP上傳名片圖檔的時候同步縮小圖片呢~這次運用到的函數是ImageTTFText,它可以利用自備的TrueType字體檔,寫入文字到圖形中。最近我對微軟正黑體還蠻有好感的,再加上它算是一套免費(由微軟官方釋出,不過好像是不能任意提供給人家下載啦)的字體;拿來當圖片用的字型,在適合不過啦!
下面是php程式碼:
header("content-type:image/jpeg"); // 送出JPG的header
$nimage=imagecreatetruecolor(1024,729); // 建立一個寬 1024 高 729 像素的圖片
$black=imagecolorallocate($nimage,0,0,0); // 設定文字顯示RGB顏色
$simage =ImageCreateFromJPEG('card2008.jpg'); // 利用ImageCreateFromJPEG函數讀取原始圖片
imagecopy($nimage,$simage,0,0,0,0,1024,729); // 利用imagecopy函數複製原始圖片到建立的新圖片上
$font = '/xxx/xxx/xxx.TTF'; // 字形路徑設定
ImageTTFText($nimage,26,0,60,570,$black,$font,$wish_word); // 利用ImageTTFText函數將文字合併於圖片
ImageJPEG($nimage); // 輸出JPEG圖片
imagedestroy($nimage);
imagedestroy($simage); //釋放之前暫存圖片的記憶體
(繼續閱讀...)
文章標籤

danielhuang030 發表在 痞客邦 留言(1) 人氣(3)

  • 個人分類:PHP
▲top
  • 1月 29 週二 200811:05
  • [MySQL] 資料庫定時備份

新工作設定
有鑑於本公司目前許多資料都是記錄在MySQL資料庫裡,常常會有事沒事的進資料庫看資料;然而在修改的過程中難免會有失誤,如果一不小心把資料庫裡的資料刪除了就欲哭無淚啦~因此,資料庫的備份就變得分外重要囉!
上網找了很多資料,大部分的MySQL資料庫備份法都是以Linux備份為主;可惜我們是用M$的作業系統,所以花了一點時間在找方法。所幸Windows有提供「工作排程」的方法,同樣可以提供每日、每周或每月設定時間。上面這個連結是採用Windows定時執行PHP的方式,使用mysqldump這個MySQL本身就有參數進行備份。不過我比較不解的地方是,直接使用批次檔執行mysqldump就可以啦~為什麼還要透過PHP?
(繼續閱讀...)
文章標籤

danielhuang030 發表在 痞客邦 留言(0) 人氣(847)

  • 個人分類:MySQL
▲top
  • 1月 24 週四 200813:22
  • [PHP] 數字格式建立函數:number_format

原來PHP有內建數字格式建立的函數啊:number_format與money_format;可以直接對數字重新格式化。當然提到格式化就不能忘了sprintf這個函數囉!考慮加入在專案管理程式的可能性...
(繼續閱讀...)
文章標籤

danielhuang030 發表在 痞客邦 留言(1) 人氣(1)

  • 個人分類:PHP
▲top
«1...67

個人資訊

danielhuang030
暱稱:
danielhuang030
分類:
數位生活
好友:
累積中
地區:

熱門文章

  • (384)[Laravel] Medialibrary
  • (1,958)[Laravel] Visual Studio Code 設定
  • (790)[FTP] 在 AWS EC2 ubuntu 上安裝 vsftpd
  • (58)[WordPress] 修改 wp_enqueue_scripts,加入自訂的 js, css 檔案
  • (350)[系統分析] ELK 實作,以 BIND9 log 分析為例
  • (133)[新知] OpenSource 與授權方式
  • (11)[新知] MVC的觀念
  • (64)[MSSQL] SQL SERVER 2005 移除
  • (108)[Laravel] 在 EC2 建立 Laravel Echo Server
  • (600)[CI/CD] 自架 GitLab,以 GCP 與 docker on NAS 為例,啟用 CI/CD 功能

文章分類

  • AI (1)
  • CI/CD (2)
  • Redis (1)
  • Facebook Marketing (1)
  • 部落格 (0)
  • MySQL (2)
  • RegExp (1)
  • MSSQL (1)
  • CSS (1)
  • 新知 (10)
  • PHP (15)
  • 系統分析 (2)
  • VPN (1)
  • WordPress (2)
  • MongoDB (1)
  • Go (1)
  • AWS (3)
  • FTP (1)
  • Service (6)
  • Google Ads (1)
  • AJAX (11)
  • SEO (1)
  • Laravel (4)
  • 未分類文章 (1)

最新文章

  • [分享] ChatGPT Plus 訂閱心得
  • [分享] Oracle Cloud Free Tier 維持活躍腳本
  • [分享][已失效] wdzeng/shopee-coins-bot 蝦皮自動簽到工具,docker 排程設定
  • [Service] Oracle Cloud Free Tier
  • [Service] Certbot (Let's encrypt) 自動認證萬用字元 (wildcard) 域名失敗,Cloudflare 外掛與手動認證 SSL 方法
  • [CI/CD] 自架 GitLab,以 GCP 與 docker on NAS 為例,啟用 CI/CD 功能
  • [Service] 使用 frp 自架 SSH Tunnel 服務
  • [CI/CD] 使用 CircleCI 協助 Laravel 專案的測試與發佈更新至 AWS EC2
  • [AWS] AWS Educate
  • [Docker] 安裝 phpRedisAdmin via docker

動態訂閱

文章精選

文章搜尋

誰來我家

參觀人氣

  • 本日人氣:
  • 累積人氣:

#

留言板