PHP無條件進位到小數第二位的寫法如下:
<?php
echo decimal_ceil(3.1411412);
function decimal_ceil($value)
{
return ceil(round($value * 100, 1)) / 100;
}
?>
執行結果:
3.15
Linux、Apache、PHP、CSS、Javascript、Oracle、HTML、Software、常用指令、資訊安全、經驗分享。
PHP無條件進位到小數第二位的寫法如下:
<?php
echo decimal_ceil(3.1411412);
function decimal_ceil($value)
{
return ceil(round($value * 100, 1)) / 100;
}
?>
執行結果:
3.15
安裝Oracle Client 11後,執行tnsping指令出現下列訊息:
Message 3511 not found; No message file for product=NETWORK, facility=TNSMessage 3512 not found; No message file for product=NETWORK, facility=TNSMessage 3513 not found; No message file for product=NETWORK, facility=TNSMessage 3509 not found; No message file for product=NETWORK, facility=TNS
搜尋Google相關資料,有查到環境變數ORACLE_HOME沒有設定,也會發生這個情況,但在確定ORACLE_HOME有設定的情況下,問題依然存在,最終嘗試用別的關鍵字查詢,最終找到問題的原因,是%ORACLE_HOME%\network\mesg\裡面有缺少檔案,找運作正常且相同版本的電腦,將檔案複製過來,Tnsping指令就恢復正常。
檔案補齊之前,目錄%ORACLE_HOME%\network\mesg\只有2個檔案。
檔案補齊之後,檔案多達23個,不過查看其他的電腦,有的只有17個或更少。
Oracle密碼超過期限沒有變更密碼,則會出現「ORA-28002 : the password will expire within 7 days」錯誤訊息,只需要變更密碼就可以排除這個問題。
密碼變更指令:
sqlplus SHARE/gooD1dEa@MYDB
SQL> password
Changing password for SHARE
Old password:(舊密碼)
New password:(新密碼)
Retype new password:(再一次新密碼)
Password changed
SQL>
若不想要每隔一段時間就遇到這個錯誤,可以在變更密碼之前,先將密碼到期的限制取消,但不建議這樣子做。
取消密碼到期限制指令:
SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
執行完上述指令後,確認是否有變更成功(變更之前也可以先查看,正常LIMIT欄位值會是數字),當看到變成是UNLIMITED後,表示已經成功。
select * from dba_profiles where profile = 'DEFAULT'
Apache有內建mod_status模組,將模組啟用後,就可以監控網站和程式負載狀況。
使用phpinfo()或是/bin/http -M指令,確認是否有載入mod_status模組,若有則略過載入mod_status步驟。
使用phpinfo()查詢。
載入Apache的mod_status
編輯httpd.conf設定檔。
vi /etc/httpd/conf/httpd.conf
在httpd.conf檔案內找到下列這一行。
然後將前面的#符號去掉,存檔後並離開。#LoadModule status_module modules/mod_status.so
LoadModule status_module modules/mod_status.so
執行設定檔檢查,確定沒有錯誤後,再重新啟動Apache服務。
/bin/httpd -t
重新啟動Apache
service httpd restart
或
systemctl restart httpd
或
/bin/httpd -k restart
重新啟動Apache後,再確認mod_status是否有載入(使用phpinfo或httpd -m指令)。
一、設定mod_status監控,在httpd.conf加入紅字的部份。
<VirtualHost *:80>
ServerAdmin html@example.com
DocumentRoot /var/www/html/example.com
ServerName example.com
ErrorLog logs/example.com-error_log
CustomLog logs/example.com-access_log common
<Location /server-status >
SetHandler server-status
Order deny,allow
Deny from all
Allow from 192.168.0.100/32 或 myDomain.com ##允許監看的用戶端
</Location>
</VirtualHost>
二、啟用mod_status擴展,在httpd.conf加入一行。
ExtendedStatus On
執行設定檔檢查並重新啟動Apache服務。
httpd -t
重新啟動Apache
service httpd restart
或
systemctl restart httpd
或
/bin/httpd -k restart
三、訪問 mod_status 網頁
http://myhostname/server-status
若要每10秒重新整理網頁,則在後面加上refresh變數。
http://myhostname/server-status?refresh=10
其實ORACLE資料庫有參數可以設定不區分大小寫查詢,這邊介紹在不變更參數設定的情況下,使用ORACLE內建UPPER或LOWER函數來做到大小寫混查,UPPER函數的作用是將資料內英文字母全部轉成大寫,而LOWER函數則是全部轉成小寫。
語法說明:
select * from 資料表名稱 where upper(欄位名稱) = upper('查詢值');
英文字母轉換大寫的查詢方式:
select * from HR_EMPLOYEE where upper(ENGLIST_NAME) = upper('George Mary');
upper函數會先將"George Mary"轉換為"GEORGE MARY",再配合前面的upper(ENGLIST_NAME)轉大寫的語法,就能達到不區分大小寫混查的效果。
使用like語法範例:
select * from HR_EMPLOYEE where upper(ENGLIST_NAME) like upper('%George Mary%');