發表文章

PHP教學 - 利用 php 來定期執行想要跑的程式

我們都知道利用 linux 可以跑 crontab 利用windows 可以跑排程,有沒有甚麼 php 函式,是可以拿來執行排程的,答案是有的我們可以利用 ignore_user_abort(),set_time_limit(0),sleep($interval) 範例如下: <?php ignore_user_abort();//關掉瀏覽器,PHPscripts也可以繼續執行. set_time_limit(0);// 通過set_time_limit(0)可以讓程式無限制的執行下去 $interval=60*30;// 每隔半小時執行 do{     echo "<script type='text/javascript'>";     echo "alert('這是我的php');";     echo "</script>";  //這裡是你要執行的程式碼  sleep($interval);// 等待5分鐘 }while(true); ?> 不過我這程式寫的是來亂的,因為他會不斷的去alert,或許我們可以應用在自行開發的系統中,規劃個表單讓使用者可以自行選擇要執行排程的時間,省去使用者還要利用 crontab 進行設定的困擾。

PHP教學 - 簡單的圖片增加浮水印

圖片
先前曾經分享過圖片上傳增加浮水印,現在再來分享另一個浮水印的程式如下: <?php  $ori_img = "images/3.jpg"; //原圖  $water_img = "logo.png"; //水印  $new_img = "images/daixiaorui.jpg"; //產生水印後的圖片  $original = getimagesize($ori_img); //得到圖片的訊息,可以print_r($original)發現它就是一個陣列  $watermark = getimagesize($water_img);  $s_original = imgCreateFrom($ori_img, $original[2]); //$original[2]是圖片類型,其中1表示gif、2表示jpg、3表示png  $s_watermark = imgCreateFrom($water_img, $watermark[2]);  $posX = $original[0] - $watermark[0]-10; //X坐標(右下角)  $poxY = $original[1] - $watermark[1]-6; //Y坐標(右下角)  //打水印  imagecopy($s_original, $s_watermark, $posX, $poxY, 0, 0, $watermark[0], $watermark[1]);  header("Content-type:image/jpg");  //選擇圖片來源(若不想顯示在網頁上可以註解掉)  imagejpeg($s_original);   //向瀏覽器輸出圖片(若不想顯示在網頁上可以註解掉)  $loop = imagejpeg($s_original, $new_img); //產生新的圖片(jpg格式),如果用imagepng可以產生png格式  if($loop){   echo "水印增加成功!";  }  //根據文件類型 新增一個新圖像  function imgCreat...

PHP教學 - 來個淺顯易懂的站內搜尋

圖片
本文範例介紹 php 站內搜尋關鍵字變亮的方式,分享給大家供大家參考。如下: 我們這個做法是把搜尋結果出來,與搜索關鍵字相同的替換成高亮的字, 我們會用到str_replace(你找的關鍵字,<帶有高亮的html標籤>你找的關鍵字,$str); 就這麼容易了,好了下面我們來看一個範例吧. 先新增一個資料庫:create database 'fangke_cc'; 再新增表,SQL建庫程式碼如下: 程式碼如下: CREATE TABLE `fangke_cc`.`search` ( `id` INT( 255 ) NOT NULL AUTO_INCREMENT , `keyword` VARCHAR( 60 ) NOT NULL , PRIMARY KEY ( `id` ) ) ENGINE = MYISAM 我們導入一些資料,SQL建庫程式碼如下: 程式碼如下: INSERT INTO `search` (`id`, `keyword`) VALUES (1, 'PHP二次開發:www.php2.cc'), (2, 'ASP一次開發:www.asp.cc'), (3, 'JSP二次開發:www.jsp.cc'), (4, 'ASP.NET三次開發'); 好了下面我們就來執行查詢操作,範例程式碼如下: <?php header("Content-Type:text/html; charset=utf-8"); if( $_POST) { $db ='fangke_cc'; mysql_pconnect('localhost','root','密碼') or die(mysql_error()); mysql_select_db($db); mysql_query("SET NAMES UTF8"); $key = $_POST['keyword']; $sql = "Select * from search where keyword like '%$key%'...

MySQL 更新資料相關語法整理

這次在開發系統的過程中,遇到需要更新語法的SQL,順便做個筆記,避免忘記 如果不存在才 INSERT,存在就 skip 舉例來說,如果想記錄某 user 是否去過某國家 -----------------  user  | country -------+---------  tony  | US  tony  | HK  kelly | US Query:     INSERT INTO `trip` (`user`, `country`) SELECT 'tony', 'US' FROM DUAL WHERE NOT EXISTS (   SELECT 1 FROM `trip` WHERE `user` = "tony" AND `country` = "US" LIMIT 1 ); * 想 INSERT 的 table 可以跟檢查存在性的 table 不同個。 如果不存在才 UPDATE,否則 skip 舉例來說,你想讓 user 更新 email 欄位(unique),但 email 又不能跟其他人一樣: ------------------------------  user      | email -----------+------------------  olivia    | olivia@email.com  andy_wang | andy@email.com  andy_lin  | (NULL) Query:     UPDATE `profile` SET `email` = "andy@email.com" WHERE `user` = "andy_lin" AND NOT EXISTS (SELECT 1 FROM `profile` WHERE `email` = "andy@email.com"); 但你會發現 mysql execute query 會有下面錯誤:   ...

PHP教學 - 利用 php 將文字轉成圖片

有需要的可以參考,simsun.ttc 就自己上網找了  <?php $im = imagecreatetruecolor(400, 30);            //新增400 30像素大小的畫布 $white = imagecolorallocate($im, 255, 255, 255); $grey = imagecolorallocate($im, 128, 128, 128); $black = imagecolorallocate($im, 0, 0, 0); imagefilledrectangle($im, 0, 0, 399, 29, $white);       //輸出一個使用白色填充的矩形作為背景 //如果有中文輸出,需要將其轉碼,轉換為UTF-8的字串才可以直接傳遞 //$text = iconv("GB2312", "UTF-8", "回憶經典");  $text = "狀態"; //設定字體,將系統中與simsun.ttc對應的字體複製到當前目錄下 $font = 'simsun.ttc'; imagettftext($im, 20, 0, 12, 21, $grey, $font, $text);      //輸出一個灰色的字串作為陰影 imagettftext($im, 20, 0, 10, 20, $black, $font, $text);         //在陰影上輸出一個黑色的字串 header("Content-type: image/png"); imagepng($im); imagedestroy($im); exit; ?>

Raspbian忘記密碼了該怎麼辦?

Raspberry Pi:Raspbian忘記密碼了 安裝Raspbian、開機、初始設定之後,應該都會修改預設帳號pi的密碼(原本是raspberry),但如果忘記了,怎麼辦呢? 拔出記憶卡,放到其他台電腦裡,修改第一個分割區裡的cmdline.txt,裡頭只有一行,原本內容大概如下: dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait 在最後面加上「init=/bin/sh」。 然後放回Raspberry Pi開機,應該很快就會出現「#」提示字元,然後輸入底下的指令: # su  (變成超級使用者) # passwd pi  (重新設定帳號pi的密碼) # sync  (清空緩衝區,確保設定儲存生效) # exec /sbin/init  (執行一般開機後會執行的程序) 然後會看到平常的開機訊息,看到login:後,登入帳號pi,再去修改/boot/cmdline.txt,拿掉之前加入的「init=/bin/sh」。 然後重開機,完工。

PHP教學 - 取得即時匯率 (非 curl)

圖片
從網路上看到的抓取匯率程式非常經典值得分享,不過我修改了一下增加 utf8 <?php header("Content-Type:text/html; charset=utf-8"); $from = 'USD';  // 美元 $to = 'TWD'; // 新台幣 //重點只有這行 知道匯率擷取的位址 $uri = 'http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s='. $from . $to .'=X'; $content = file_get_contents($uri); $content = explode(',', $content); echo "$from => $to 匯率: ".$content[1]; echo "<br>"; echo "匯率擷取時間: ".$content[2].$content[3]; $rate = $content[1]; ?>