在‘PHP’分類底下的文章

使用php抓取網路上的圖片

首先要先至網站上下載snoopy類別 可用以模擬表單送交或是抓取網路頁面 http://snoopy.sourceforge.net/ 然後使用下面的範例程式就可以順利下載圖檔了 include(“snoopy.class.php”); $forder = ‘tmp/’; function downimage($furl) { global $forder; $filename=””; $str=explode(‘/’,$furl) ; $filename = $forder.$str[count($str)-1] ; $snoopyx = new Snoopy ; $snoopyx->fetch($furl) ; if($snoopyx->results !=””) { $handle = fopen($filename, ‘w’) ; fwrite($handle, $snoopyx->results) ; //把抓取得內容寫到 臨時文件中 fclose($handle) ; } return $filename ; } echo downimage(‘http: […]

繼續閱讀...

在php裡使用gmail及phpmailer發信

首先先至phpmailer下載php4在用的版本 http://phpmailer.worxware.com/ <=官網 http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php4/PHPMailer%20v2.0.4%20for%20PHP4/ <=載點 打開後在根目錄的 class.phpmailer.php和class.smtp.php是最主要的發信類別 剩的檔案則皆為範例檔 然後下面是一個最簡單的範例(使用gmail發信) include(“class.phpmailer.php”); //匯入PHPMailer類別 $Name=”Name”; $Mail=”Mail@Subject.com”; $Subject=”Subject”; $Sendbody=”Sendbody”; $mail= new PHPMailer(); //建立新物件 $mail->IsSMTP(); //設定使用SMTP方式寄信 $mail->SMTPAuth = true; //設定SMTP需要驗 […]

繼續閱讀...

寄送mail的header和內文設定(utf-8)

現在大多數的信件系統都已使用utf-8 之前寄出utf-8的信件常會發生信件標題和headers資訊變成亂碼 查了老半天網路 原來不支援主要的原因在於,電子郵件標準格式中 表頭的部分不允許使用雙位元的文字 所以,使用mb_encode_mimeheader()函式 將雙位元文字編碼為單位元字串。 以下為headers的範例 mb_internal_encoding(‘UTF-8’); $headers = ‘MIME-Version: 1.0’ . “\r\n”; $headers .= ‘Content-type: text/html; charset=utf-8’ . “\r\n”; $headers .= ‘From: ‘.mb_encode_mimeheader(‘標題) .’ ‘ . “\r\n”; mail($to, mb_encode_mimeheader($title, ‘UTF-8’), $content, $headers); 這樣便可成功解決「郵件標題」或「寄件者」是亂碼的問題 ======================================= 若是電 […]

繼續閱讀...

用php產生excel文件

在古早之前我都是使用php產生csv純文字逗點分隔來將資料下載為excel 但最近用csv時,因網站系統使用utf-8編碼 而csv只能支援big5 導致文字編碼轉換時發生嚴重的漏字問題 在尋求了google大神之後 原來現在都是改用xml的格式 也就是xls來做純文字的 雖然會造成檔案較大 但是可以設定該欄位要以數字 日期 或字串格式顯示 也可支援utf-8 http://code.google.com/p/php-excel/ 這是一個可以幫你自動產生xls的php開源 非常的方便 使用範例如下 // include the php-excel class require (dirname (__FILE__) . “/class-excel-xml.inc.php”); // create a dummy array $doc = array ( 1 => array (“Oliver”, “Peter”, “Paul”), array (“Marlene”, “Lucy”, “Lina”) ); // generate excel file $xls = new Excel_X […]

繼續閱讀...

php讀取檔案的幾種方式比較

下面是在處理速度非常慢的電腦上的運作時間 這個是處理25mb的檔案的處理速度 $data = `cat /tmp/test.zip`; // 1.05 seconds $fh = fopen(‘/tmp/test.zip’, ‘r’); $data = fread($fh, filesize(‘/tmp/test.zip’)); fclose($fh); // 1.31 seconds $data = file_get_contents(‘/tmp/test.zip’); // 1.33 seconds 下面是處理21k的文字檔的處理速度 $data = `cat /tmp/test.txt`; // 1.98 seconds $fh = fopen(‘/tmp/test.txt’, ‘r’); $data = fread($fh, filesize(‘/tmp/test.txt’)); fclose($fh); // 0.00082 seconds $data = file_get_contents(‘/tmp/test.txt’); // 0.0069 seconds 另外還有一篇 […]

繼續閱讀...

在php內使用SOAP

1. 建立server端的php檔案 //接收要求的函數 function request($arg1, $arg2) { $response = $arg1 + $arg2; return $response; } // 宣告 SOAP Server $server=new SoapServer(NULL, array(‘uri’=>’http://myweb.com/’)); $server->addFunction(‘request’); // 定義 request 可以讓外部呼叫 $server->handle(); // 啟動 SOAP Server 2. 建立client端的php檔案 $client = new SoapClient(NULL, array(‘location’ => ‘http://127.0.0.1/soap/server.php’, ‘uri’ => “http://myweb.com/”)); try { print_r($client->request(1, 2)); } catch (SoapFault $err) { echo “Web Se […]

繼續閱讀...

php圖片縮圖程式

常常在處理一些使用者上傳的圖片時 會需要讓系統自動產生圖檔的縮圖(例如無名的相簿預覽等等的功能)PHP程式在處理圖片縮圖的方式 較常見的有兩種: GD ,以及ImageMagick GD是php內建的圖形函式庫,一般只要安裝php都會有內建此功能 而ImageMagick則是要另外安裝,再用下面的方法呼叫: // 呼叫 ImageMagic 的 convert exec(“convert -geometry 200×200 big_img.jpg small_img.jpg“); 其它的參數 1.生成縮圖 a.指定大小 # convert -sample 80×40 input.jpg output.jpg b.利用比例 # convert -sample 25%x25% input.jpg output.jpg 2.旋轉圖形 利用cotate參數,+90表順時針旋轉90度,而-90則表逆時針轉90度 # convert -rotate 90 input.jpg output.jpg 3.轉換格式 以附檔名為準,如下例就是將jpg轉換成png […]

繼續閱讀...

利用header做檔案下載控制

在許多線上電影或許多軟體下載的網站, 都可以看到一個連結讓你點此下載,而無法讓你直接利用網址連接至被下載的檔案 這可以防止外站直接將檔案下載的連結連到你的站。 增加自己網站的負荷量卻沒增加人氣。 要達到這樣的功能,有幾種方式: 1. 利用php來存取控管檔案,所有的下載皆經過php檔案去處理。 2. 將檔案以BLOB的方式存進資料庫,以資料庫方式下載吐出檔案。 但是將檔案存進資料庫的話,在修改檔案內容、存取檔案上都將會較為不便 較為簡單的方式,是利用header去做檔案控制與下載的動作, 相關的詳細介紹可見: http://tw.php.net/header 下面的函數可以讓下載的檔案經由php處理再交由使用者下載, 我們可以將檔案放在伺服器主機上無法直接經由http存取的位置, 再利用php程式去存取本機電腦檔案。 這樣使用者便無法直接由網址來存取下載的檔案。 function dl_file($file){ //檢查檔案是否存在 if (!is_file($file)) { die(“404 File not found!”); } //取得檔案相關資料 $len = filesi […]

繼續閱讀...