標籤彙整:PHP

使用PHP將JPG轉換成PDF檔

最近需要將許多個很大張的jpg檔案合併成單一個pdf檔案,實在懶的只為了這個原因就特地安裝任何一套轉換pdf的軟體,外加這些jpg檔其實都放在遠端的機器上面,想到還要抓回來本機端處理就很麻煩,還得浪費自己電腦的運算資源,就在這個想法下,突然想起大四時曾經有使用過fpdf這個PHP的Library,能夠非常方便的製作pdf檔案,不但可以在遠端的機器上面完成所有的事情,還可以善用遠端威猛的運算資源 整理步驟如下: 下載最新的fpdf,並且解壓縮取出fpdf.php 編寫下列程式碼,這邊是原始碼 <? require('fpdf.php'); $pdf = new FPDF(); $d=dir('.'); while(($file=$d->read())!=false) { if(substr($file,-4)!=".jpg") continue; $pdf->AddPage(); $pdf->Image($file,0,0,220); } $d->close(); $pdf->Output("output.pdf"); ?> 最後產出的output.pdf就是我要的檔案啦! 簡單解說一下,關鍵只有一段$pdf->Image,後面的引數第一個是要匯入的jpg檔案,第二跟第三個則是代表圖片左上角的定位,最後一個則是設定圖片的寬度,沒有長度的原因是該library會自動調整長度。

發表於 PHP, 技術 | 已標籤 , , | 發表迴響

你還在PHP裡面使用srand()嗎?

念資工的人多數都是由C語言起家的,只要計概教到亂數產生的function時,授課老師總是會耳提面令的提醒著要記得使用srand()來產生一個random seed,否則每次跑出來的亂數都會是相同的,相信大家應該都有這段的印象才是。 於是,當我開始寫PHP後,也自然而然的將這個習慣套用進來,總是習慣先使用srand()產生亂數種子後,再用rand()產生亂數,直到前幾天,我亂翻PHP的Manual才在srand()說明頁看到下面這句話: Note: As of PHP 4.2.0, there is no need to seed the random number generator with srand() or mt_srand() as this is now done automatically. 原來PHP 4.2.0以後,使用亂數前已經不用先指定產生亂數種子了,它會自動的幫你產生,所以自己多做無謂的事情已經有一段時間了 Orz~,雖然少這行呼叫對程式效率也不會有任何提升,但是能少打點字還是不賴啦,如果你有看到這篇文章,記得下次在寫PHP時可以直接呼叫rand()喔!

發表於 PHP, 技術 | 已標籤 , | 發表迴響

簡單實作PHP圖片驗證

手邊有個服務需要圖片驗證(captcha)的功能,所以翻了一下之前寫的code,順便整理一下跟大家分享。這邊的code是產生出來的圖片是最簡單的樣式,僅是四個亂數產生的字母(有字母可能重複),外加上一些黑點雜訊來增加辨識上難度,為了避免黑點干擾造字母的辨識困難,我剔除掉一些長相相近的字母,希望增加使用者輸入正確的機率,畢竟圖片驗證是要拿來擋機器人而不是拿來刁難真正的人類阿。

發表於 PHP, 技術 | 已標籤 , | 5 則迴響

當apache的errorlog出現configured request variable name length limit exceeded

之前在寫Picasa2Wordpress的時候,測試的時候,遇到一個詭異的問題,在我有權限能access的機器們上面跑,就是有一台跑不起來,後來查了一下apache2的log才發現,原來是php suhosin module的問題,預設最大的POST及GET變數名稱最大只能夠是64字元,但是Picasa POST出去的卻遠超過,所以就被檔下來了。 解決方法很簡單,編輯/etc/php5/apache2/conf.d/suhosin.ini,加上下面這三行即可: suhosin.request.max_varname_length=128 suhosin.get.max_name_length=128 suhosin.post.max_name_length=128 搞定收工。

發表於 PHP, Picasa2Wordpress, 技術 | 已標籤 , , | 發表迴響

每日自動彙整Plurk至BBS及信箱

我是一個重度的BBS使用者,之前在Vexed大神的引薦下開始使用Plurk,每天在plurk上面亂撲後,總是希望能夠每天plurk後整理一份到BBS上面記錄(我承認我還蠻無聊的,想要備份每天的胡言亂語)。所以就著手寫了一份自娛娛人,跑了快一個月看起來應該沒甚麼問題,於是就放出來跟各位分享。(因為一開始沒打算丟出來,所以code寫得有點亂,還請見諒)

發表於 PHP, 技術 | 已標籤 , , , , , | 10 則迴響

How to use rtgui with PHP4

rtorrent是unix下面一個lightweight but powerful的BT Client. 跟許多console mode軟體不同的是, 他提供完整的xmlrpc api讓developer可以開發自己的interface來管理使用rtorrent. 我選用了rtgui, 本來以為只要幾分鐘就可以設定好, 沒想到卻遇到不能預期的錯誤, trace一下才發現原來是 file_get_contents這個function在PHP 5.0.0以後才support $context這個參數. 所以只好自己用curl hack一個給PHP < 5.0.0可以動的版本. (需要有curl extension) 目前用起來是沒遇到任何問題, 搞定收工. Here is the hack (把functions.php裡面的do_xmlrpc整段換成): function do_xmlrpc($request) { global $rpc_connect; if (version_compare(PHP_VERSION, '5.0.0', '>=')) { $file = … 繼續閱讀

發表於 PHP | 已標籤 , , , | 發表迴響