進公司四個月了,現在回來看自己以前寫的code,真是一件恐怖的事!!
短短四個月,進步得挺多的,加油,還有很大的空間。
世界和平,愛地球,愛自己再愛他人
2012年2月24日 星期五
2011年7月15日 星期五
在Windows 7之下MySQL安裝失敗的可能原因之一
最近買了台新NB,作業系統是 Windows 7,用起來跟之前的 Vista 不一樣吶(科科)。
為了移轉網站系統,很多東西都要重弄了。為了配合 Windows 7,我灌了 Apache 2.2.19 & PHP 5.3.5 & MySQL 5.5.14。安裝這些東西真的是很考驗耐性,NB安裝 Apache 和 PHP 都沒什麼太大的問題,唯獨 MySQL 一直灌不起來(很凸的說)。
因為 MySQL 灌失敗,所以就先移除安裝,再重新安裝,但結果還是失敗 =3= 。
這時又是 google 大神出馬的時候了... 找了一堆,結果都說沒灌乾淨,說什麼去 "執行" 那邊下指令就可以殺乾淨了,但是我用了,還是不行.. 結果還是找了大陸那邊的論壇才找到答案
= ="
問題:MySQL無法正常安裝(前提:之前有安裝好(或到一半),然後移除安裝)
原因:即使你把安裝好的MySQL(包含一些相關資料夾)移除了,但是C槽底下有個隱藏資料夾 "ProgarmData",它裡面存放之前安裝 MySQL 的一些相關檔案,所以你怎麼重安裝都是失敗。
解決:手動把C槽底下的隱藏資料夾 "ProgarmData"裡面的 MySQL資料夾刪除就好了。
ps. 一切資源參考於網路再整理過,如有雷同或錯誤,不關我的事唷!!
為了移轉網站系統,很多東西都要重弄了。為了配合 Windows 7,我灌了 Apache 2.2.19 & PHP 5.3.5 & MySQL 5.5.14。安裝這些東西真的是很考驗耐性,NB安裝 Apache 和 PHP 都沒什麼太大的問題,唯獨 MySQL 一直灌不起來(很凸的說)。
因為 MySQL 灌失敗,所以就先移除安裝,再重新安裝,但結果還是失敗 =3= 。
這時又是 google 大神出馬的時候了... 找了一堆,結果都說沒灌乾淨,說什麼去 "執行" 那邊下指令就可以殺乾淨了,但是我用了,還是不行.. 結果還是找了大陸那邊的論壇才找到答案
= ="
問題:MySQL無法正常安裝(前提:之前有安裝好(或到一半),然後移除安裝)
原因:即使你把安裝好的MySQL(包含一些相關資料夾)移除了,但是C槽底下有個隱藏資料夾 "ProgarmData",它裡面存放之前安裝 MySQL 的一些相關檔案,所以你怎麼重安裝都是失敗。
解決:手動把C槽底下的隱藏資料夾 "ProgarmData"裡面的 MySQL資料夾刪除就好了。
ps. 一切資源參考於網路再整理過,如有雷同或錯誤,不關我的事唷!!
2011年3月2日 星期三
(PHP) 遞補陣列
這文章是講關於陣列元素刪除後,如何將後面的陣列元素遞補上,簡而言之就是重新排序的意思。
看下列範例:
$ss[0]=a
$ss[1]=b
$ss[2]=c
unset $ss[1] ,重新排序後要變成下列模樣:
看下列範例:
$ss[0]=a
$ss[1]=b
$ss[2]=c
unset $ss[1] ,重新排序後要變成下列模樣:
$ss[0]=a
$ss[1]=c
我找了一些關於 PHP 的 array 函數 ,找不到有哪個函數可以直接將刪除的陣列做遞補的動作(還是我眼力不好,找不到??)。反倒是看了一堆 array函數,還一直 try。反正,就東湊西湊被我湊出來了。說明如下:
$bagItem["a","b","c"]
unset($bagItem[1]);
刪除了key 1的結果:array([0]>a,[2]>c)
如果想要變成 array([0]>a,[1]>c)就用合併的,程式如下:
for($i=0;$i<count($bagItem);$i++)
$sort[$i]=$i;
$bagItem=array_combine($sort,$bagItem);
說明:
1. 先用for迴圈(*count($bagItem)=$bagItem陣列還有多少個元素)去建立一個新的陣列,
$sort["0","1"] ,$sort這個陣列作用在於給 $bagItem建立一個新的索引。
2. 用 array_combine去合併 $sort 和 $bagItem
如果想多瞭解array_combine,請google吧!
ps. 如有雷同或錯誤,不關我的事唷!!
2010年12月22日 星期三
(PHP) send mail through gmail's SMTP
最近自己在寫的小網站需要用到發送 E-Mail 的功能,但是自己架 Mail Server 需要搞一堆哩哩扣扣的,很麻煩。於是,我又上 google ,看看有沒有 code 可以 copy 。
看到一些版大說可以透過 Gmail 的 SMTP 來發信,但是,因為 Gmail 使用 SSL 的安全性加密技術(啥鳥?! 囧)來接收信件,所以還是要安裝一下有些有的沒的才能成功地透過 Gmail 的 SMTP 來發信。下列是我的整理:
*按步就班..一步一步來
1. 要有Gmail 帳號
2. 要有E-mail模組-PHPMailer
模組到官網(http://phpmailer.codeworxtech.com)下載,下載並解壓縮後,把三個主要的檔案放在同一個資料夾底下(www 或 htdocs 之下),三個檔案分別是 class.phpmailer.php、class.pop3.php 、class.smtp.php。
3. 啟動openssl
叫出php.ini,把「extension=php_openssl.dll」的註解取消掉。
4. 複製 ssleay32.dll 與 libeay32.dll 至 windows 底下 system32 資料夾
5. 重新啟動Apach
6. 開始coding
範例 mail.php
---------------------------------------------------------------------------------------------------------
include("mail/class.phpmailer.php"); //匯入PHPMailer類別
$mail= new PHPMailer(); //建立新物件
$mail->IsSMTP(); //設定使用SMTP方式寄信
$mail->SMTPAuth = true; //需使用SMTP驗證
$mail->SMTPSecure = "ssl"; // 利用SSL連線到伺服器
$mail->Host = "smtp.gmail.com"; //Gamil的SMTP主機
$mail->Port = 465; //指定SMTP port
$mail->CharSet = "utf-8"; //郵件編碼
$mail->Encoding = "base64"; //設定信件編碼
$mail->Username = "xxxxxx@gmail.com"; //Gmail帳號
$mail->Password = "xxxx"; // Gmail密碼
$mail->From = "xxxx@gmail.com"; //寄件者信箱
$mail->FromName = "辛小榕"; //寄件者姓名
$mail->Subject ="辛小榕的測試"; //郵件標題
$mail->Body = "看要寫什麼都可以"; //郵件內容
$mail->IsHTML(true); //郵件內容為html ( true || false)
$mail->AddAddress("xxx@hotmail.com"); //收件者郵件及名稱
if(!$mail->Send())
{
echo "<meta http-equiv='content-type' content='text/html; charset=UTF-8'/>發送錯誤: " . $mail->ErrorInfo;
}
else
{
echo "<meta http-equiv='content-type' content='text/html; charset=UTF-8'/>寄信成功";
}
---------------------------------------------------------------------------------------------------------
7. 執行mail.php,如果網頁上 print "寄信成功",那就是成功囉 :D
ps. 一切資源參考於網路再整理過,如有雷同或錯誤,不關我的事唷!!
看到一些版大說可以透過 Gmail 的 SMTP 來發信,但是,因為 Gmail 使用 SSL 的安全性加密技術(啥鳥?! 囧)來接收信件,所以還是要安裝一下有些有的沒的才能成功地透過 Gmail 的 SMTP 來發信。下列是我的整理:
*按步就班..一步一步來
1. 要有Gmail 帳號
2. 要有E-mail模組-PHPMailer
模組到官網(http://phpmailer.codeworxtech.com)下載,下載並解壓縮後,把三個主要的檔案放在同一個資料夾底下(www 或 htdocs 之下),三個檔案分別是 class.phpmailer.php、class.pop3.php 、class.smtp.php。
3. 啟動openssl
叫出php.ini,把「extension=php_openssl.dll」的註解取消掉。
4. 複製 ssleay32.dll 與 libeay32.dll 至 windows 底下 system32 資料夾
5. 重新啟動Apach
6. 開始coding
範例 mail.php
---------------------------------------------------------------------------------------------------------
include("mail/class.phpmailer.php"); //匯入PHPMailer類別
$mail= new PHPMailer(); //建立新物件
$mail->IsSMTP(); //設定使用SMTP方式寄信
$mail->SMTPAuth = true; //需使用SMTP驗證
$mail->SMTPSecure = "ssl"; // 利用SSL連線到伺服器
$mail->Host = "smtp.gmail.com"; //Gamil的SMTP主機
$mail->Port = 465; //指定SMTP port
$mail->CharSet = "utf-8"; //郵件編碼
$mail->Encoding = "base64"; //設定信件編碼
$mail->Username = "xxxxxx@gmail.com"; //Gmail帳號
$mail->Password = "xxxx"; // Gmail密碼
$mail->From = "xxxx@gmail.com"; //寄件者信箱
$mail->FromName = "辛小榕"; //寄件者姓名
$mail->Subject ="辛小榕的測試"; //郵件標題
$mail->Body = "看要寫什麼都可以"; //郵件內容
$mail->IsHTML(true); //郵件內容為html ( true || false)
$mail->AddAddress("xxx@hotmail.com"); //收件者郵件及名稱
if(!$mail->Send())
{
echo "<meta http-equiv='content-type' content='text/html; charset=UTF-8'/>發送錯誤: " . $mail->ErrorInfo;
}
else
{
echo "<meta http-equiv='content-type' content='text/html; charset=UTF-8'/>寄信成功";
}
---------------------------------------------------------------------------------------------------------
7. 執行mail.php,如果網頁上 print "寄信成功",那就是成功囉 :D
ps. 一切資源參考於網路再整理過,如有雷同或錯誤,不關我的事唷!!
2010年12月19日 星期日
exit(0)與exit(1)有啥差?!
今天在寫php時,用到exit()這個函數,認識它那麼久以來,從不知道它的寫法帶有些許差異。
我通常都是直接寫exit();不給它任何值,但是網路上有exit(0); exit(1)..像這樣子的寫法。
google一下做個結論,也就是說,其實不論exit();裡寫了啥數字,對程式來講不會有什麼影響,因為它是寫給人看的。換句話說,exit();裡帶的數字主要是提高程式的說明性與快速理解度,按奈講夠明白了吧。exit(0);表示正常退出;而exit(1);表示發生錯誤後退出程序。
為了讓接手程式的人看懂程式,或者說更容易理解你寫的程式是啥鳥,該寫的東西就好好寫,不要怕麻煩,不然總有一天會有報應的(接手過別人寫的程式就知道我說啥)。
ps. 一切資源參考於網路再整理過,如有雷同或錯誤,不關我的事唷!!
我通常都是直接寫exit();不給它任何值,但是網路上有exit(0); exit(1)..像這樣子的寫法。
google一下做個結論,也就是說,其實不論exit();裡寫了啥數字,對程式來講不會有什麼影響,因為它是寫給人看的。換句話說,exit();裡帶的數字主要是提高程式的說明性與快速理解度,按奈講夠明白了吧。exit(0);表示正常退出;而exit(1);表示發生錯誤後退出程序。
為了讓接手程式的人看懂程式,或者說更容易理解你寫的程式是啥鳥,該寫的東西就好好寫,不要怕麻煩,不然總有一天會有報應的(接手過別人寫的程式就知道我說啥)。
ps. 一切資源參考於網路再整理過,如有雷同或錯誤,不關我的事唷!!
2010年12月16日 星期四
(JavaScript) 將float數值取小數點第二位並四捨五入
在JavaScript裡,Math.round()是用來解決取得浮點數的整數(並且要四捨五入),
例如 Math.round(6.7)=3 或 Math.round(3.4)=3。
如果要將值取到浮點數的小數點第二位時,寫法改一下就可以了,
例如 parseFloat(Math.round(value*100))/100。
上述的100指的就是2位小數點,至於為什麼要再轉成float,我就不知道鳥 :p
還有如果要取到小數點第三位,把100再多加1個0即可,以此類推。
ps. 一切資源參考於網路再整理過,如有雷同或錯誤,不關我的事唷!!
例如 Math.round(6.7)=3 或 Math.round(3.4)=3。
如果要將值取到浮點數的小數點第二位時,寫法改一下就可以了,
例如 parseFloat(Math.round(value*100))/100。
上述的100指的就是2位小數點,至於為什麼要再轉成float,我就不知道鳥 :p
還有如果要取到小數點第三位,把100再多加1個0即可,以此類推。
ps. 一切資源參考於網路再整理過,如有雷同或錯誤,不關我的事唷!!
訂閱:
文章 (Atom)