Monster Oasis
覺得累就是進步的開始!

2010/06/04

Protected: [sample code] preg_match , regular expression match ,

Filed under: Copy_N_Paste,Programming/php — Tags: — 9:24 am

This post is password protected. To view it please enter your password below:


Related URL:
  1. debian / ubuntu 裝 memcached 跟 pecl memcache
  2. 一些 memcache 的資料
  3. debian / ubuntu 裝 oracle instant client / sqlplus / oci8 / apache2 config / steps by steps
  4. gentoo emerge php options
  5. PHP Coding Standards
  6. 用 pecl inclued 產生關聯圖
  7. oci / compile php with oracle instant client
  8. [note] javascript 的 foreach / split / php explode style 寫法
  9. Codeigniter 聯接 Oracle database 要改的地方
  10. install oracle instant client basic on gentoo linux step by step

2009/12/14

debian / ubuntu 裝 memcached 跟 pecl memcache

Filed under: JOB,System/Linux/Unix* — Tags: , , , , — 8:35 pm

裝 memcached :

apt-get install memcached

/etc/default/memcached 裡面設 yes –> 啟用 設定檔 /etc/memcached.conf

裝 php5 的 memcache extension

apt-get install php5-memcache

會產生 /etc/php5/conf.d/memcache.ini 內容是

extension=memcache.so

[memcache]
memcache.dbpath="/var/lib/memcache"
memcache.maxreclevel=0
memcache.maxfiles=0
memcache.archivememlim=0
memcache.maxfilesize=0
memcache.maxratio=0

—– 以下是舊的方法, 2010.0630 前

裝 pecl memcache

aptitude install libevent-dev

因為 pecl 要用到 phpize , 所以要裝 php5-dev 套件

apt-get install php5-dev

apt-get install php-pear

pecl install memcache

裝好了, 要在 /etc/php5/conf.d 設一個檔 memcache.ini

cat > /etc/php5/conf.d/memcache.ini
extension=memcache.so
Related URL:
  1. Protected: [收藏] Linux Embedded system step by steps – PDF / debian / linux booting steps
  2. debian / ubuntu , APT HOWTO / Guide / 指令速查表
  3. debian / ubuntu 裝 oracle instant client / sqlplus / oci8 / apache2 config / steps by steps

2009/11/06

一些 memcache 的資料

http://code.google.com/p/memcached-tag/

http://blog.developers.api.sina.com.cn/?tag=php-memcached

http://code.google.com/p/dbcached/

http://tech.ddvip.com/2008-10/122405777578200.html

http://hi.baidu.com/jrckkyy/blog/item/cb68141e8afa621740341771.html

Related URL:
  1. install oracle 11g steps
  2. Protected: Oracle down time / problem records / 經典
  3. Database administrator
  4. 在 gentoo 裝 oracle sqlplus package
  5. Graphical Database Schema Metadata Browser – SchemaSpy
  6. wordpress 的 schema
  7. Oracle documentation library
  8. MySQL – Optimizing Database Structure
  9. Protected: 規格表 schema
  10. mysql index 的建立/使用 , Multiple-Column Indexes

2009/09/02

debian / ubuntu 裝 oracle instant client / sqlplus / oci8 / apache2 config / steps by steps

2010.0630 : 今天又再 debian 裝一次 發現, 這個版本沒辦法裝 oracle-instantclient11.2.* , 所以繼續用 instantclient11.1.*

Ubuntu 安裝 RPM 要用 alien …
sudo apt-get install alien

Ref. https://help.ubuntu.com/community/HowToBuildToraWithOracle

先去 http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html

download 這幾個 files (rpm)

Instant Client Package – Basic Lite
oracle-instantclient11.1-basiclite-11.1.0.7.0-1.i386.rpm

Instant Client Package – SQL*Plus
oracle-instantclient11.1-sqlplus-11.1.0.7.0-1.i386.rpm

Instant Client Package – SDK
oracle-instantclient11.1-devel-11.1.0.7.0-1.i386.rpm

下 alien 指令安裝 rpm

alien -i oracle-instantclient11.1-basiclite-11.1.0.7.0-1.i386.rpm
alien -i oracle-instantclient11.1-sqlplus-11.1.0.7.0-1.i386.rpm
alien -i oracle-instantclient11.1-devel-11.1.0.7.0-1.i386.rpm

裝好後用 sqlplus 聯看看 , 因為我得到一個 lib error

所以我要裝 apt-get install libaio1

在 /etc/ld.so.conf.d 加一個檔 cat > /etc/ld.so.conf.d/oracle.conf

內容是 oracle lib 的 path /usr/lib/oracle/11.1/client/lib

然後

apt-get install php5

apt-get install php5-dev

因為 oci8 是由 pecl 來安裝的, 所以要 apt-get install php-pear

再來裝 oci8 : pecl install oci8

在 /etc/php5/conf.d 下建一個 oci8.ini 檔 , cat > /etc/php5/conf.d/oci8.ini 內容是

extension=oci8.so

重新啟動 apache2 :

service apache2 restart

看看 phpinfo 有沒有出現 oci8 等字樣就 ok 了

53420fcc8f6596bc2b6cd3511eae7d84
cebcda336140c38e51b889ec7f9319c3

加一個 virtual host :

在 /etc/apache2/sites-enabled 增加一個 xxx.conf 檔

CodeIgniter 需要用 rewrite module :

ls -sf /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled

Related URL:
  1. Protected: 觀察 22:40 – 23:15 apache log 的變化
  2. 解決用 NFS 當 documentroot 時會當掉的方法
  3. [ubuntu] apache server module 的 enable / disable
  4. apache Custom Log Formats – 好用的參數
  5. Simple Monster Tracking System – step by step
  6. Protected: apache mod_rewrite , rewrite , rewriterule 真難搞
  7. 好用的 iptables rules – 限制 client 連 http port 的次數
  8. Monster LAMP Pack Lite – ver.317
  9. 安裝 apache / mod_memcache
  10. Hypertext Transfer Protocol — HTTP/1.1 – 這可是現今最偉大的 protocol 呀!

2009/06/30

gentoo emerge php options

2009.0630 Monster LAMP Pack:

取消 :
ncurses pdo readline spell

增加 :
ctype json sockets
berkdb gdbm
xmlreader xmlwriter
oci8-instant-client

USE="apache2 berkdb bzip2 calendar cjk cli crypt ctype curl gd gdbm hash iconv json mysql mysqli nls oci8-instant-client pcre reflection session simplexml sockets spl ssl tokenizer truetype unicode xml xmlreader xmlwriter zlib" emerge -av php

2009.0630 發現 wordpress code 裡面有用到 token_get_all ( tokenizer 所以不能取消)

2009/03/11

PHP Coding Standards

參考: Mantis : http://www.mantisbt.org/guidelines.php

中文翻譯: http://www.ichiayi.com/wikipage/tech/mantis_coding

First, start off by reading the PHP Coding Standards document. I’ve deviated in a few places but just about everything in the document applies here as well.

Above all, write code that is easy to read and maintain. Comment blocks of code and functions at all times. And get on my case if I deviate too much as well!

Naming Variables
  • Use all lower case.
  • Use _ to separate words, e.g. $green_color_value
  • Use descriptive names (except loop variables).
  • Loop variables can be of the usual variety: $i, $j, $k, etc.
  • Count variables should follow the format $*_count, e.g. $bug_count
  • Global variables should be prefixed with g_
  • Temporary variables should be prefixed with t_
  • Parameters and variables passed from forms that have been cleaned of any special SQL chars (i.e. slashes) should be prefixed with c_
  • Uncleaned function parameters should be prefixed with p_
  • Uncleaned variables passed from forms should be prefixed with f_
  • Other variables are prefixed with v_, v2_, etc.
  • Never prefix with l_ or o_ or q_ (visually confusing)
  • $query and $result should be used for SQL query and results respectively
Naming Functions
  • Use all lower case.
  • Use _ to separate words, e.g. setup_page_breaks()
  • Keep functions to 5 words or less
  • Functions that print should be prefixed with print_.
  • Try to use prefixes to group functions (i.e., email_, news_, etc.)
Naming Classes
  • Use FirstLetterOfWordIsCaptilized style
  • Variables that are class objects should have the prefix coo_
Naming Files
  • Use all lower case.
  • Use _ to separate words, e.g. view_new_bugs_page.php
  • Use .php file extensions
  • Filenames must be less than 32 characters in length. This plays nice with older file systems like Mac OS.
  • Included files should be suffixed by _inc.php
SQL formatting
  • UPPERCASE all SQL keywords:
    $query = "SELECT *
    	FROM $g_mantis_bug_table
    	WHERE id='1'";
  • Always assign a query string to a variable. This makes code easier to debug when problems occur. Do not create the query in the call to the function.
  • Break up SQL queries over multiple lines to be easy to read.
General Formatting
  • Use TABS with a size of 4
  • Follow the table formatting of existing pages
  • Use <?php ?> for php delimiters.
  • Try not to print/echo HTML unless it’s short or in a function loop
  • Do not use the EOF construct
Miscellaneous
  • Don’t use the ?: construct except in very rare cases. It is confusing and has a lot of bug potential.
  • Avoid magic numbers. The only magic numbers in use should be 1 and 0 and their meaning should be obvious.
Page Guidelines
  • The first item should be the copyright notice
  • At the bottom will be the footer information and closing print_ functions.
Braces and Parantheses
  • Parantheses should be right after a function name, e.g. function() not function ()
  • Parantheses should have a space right after a keyword (if, while, for), e.g. for (…)
  • Formatting of braces is illustrating below. We use unmatched placing.
  • Arrays should be referenced with no spaces, e.g. $arr['index'] not $arr[ 'index' ]
    for (...) {
        blah
    }
    
    or
    
    if (...) {
        blah
    }
  • if … else blocks should be in this format:
    if (...) {
        blah1
    } else {
        blah2
    }
Comparisons
  • The NOT operator should be placed next to its operand. No spaces, e.g. !$value
  • Parentheses should be used for grouping, especially with multiple comparisons, e.g. if ( ( null == $val ) && ( null == $val2 ) )
Strings
  • Use spaces around the string concatenation operator, e.g. ‘str ‘ . $value . ‘ str2′;
  • Use ‘ instead of " if there are no variables or special characters.
Comments
  • Use the # symbol for line commenting, not //
  • Use /* */ for block commenting unless you nest /* */ comments. Generally, only use this during development.
  • Use @@@ followed by a brief message (BROKEN, TEMPORARY, etc) as a "look at this" indicator. Leaving your name next to is a good idea. This way critical items can easily be found.
Editor Features
  • Search and replace in multiple files
  • Goto line number
  • Syntax highlighting
  • Adjustable TAB spacing
Related URL:
  1. Protected: [sample code] preg_match , regular expression match ,
  2. debian / ubuntu 裝 memcached 跟 pecl memcache
  3. 一些 memcache 的資料
  4. debian / ubuntu 裝 oracle instant client / sqlplus / oci8 / apache2 config / steps by steps
  5. gentoo emerge php options
  6. 用 pecl inclued 產生關聯圖
  7. oci / compile php with oracle instant client
  8. [note] javascript 的 foreach / split / php explode style 寫法
  9. Codeigniter 聯接 Oracle database 要改的地方
  10. install oracle instant client basic on gentoo linux step by step

2009/03/06

用 pecl inclued 產生關聯圖

這是一隻用 codeigniter 寫的一個簡單的程式 , 然後用 pecl inclued 把它的 include/require 關聯圖畫出來

22222

參考 URL : http://baniclin.blogspot.com/2008/09/pecl-inclued.html

Related URL:
  1. codeigniter / ci / oracle database.php 的設定方式 / utf8 / big5 粉難搞
  2. Codeigniter 聯接 Oracle database 要改的地方

2009/03/03

oci / compile php with oracle instant client

小筆記一下…

oracle 那邊 download 這幾個 file

-rw-rw-r– 1 root portage 44414338 Feb 24 13:41 instantclient-basic-linux32-11.1.0.7.zip
-rw-rw-r– 1 root portage   607196 Feb 24 13:41 instantclient-sdk-linux32-11.1.0.7.zip

放到 /usr/portage/distfiles 這底下

然後 PHP 是這麼編的

USE="apache2 berkdb bzip2 calendar cjk cli crypt curl gd gdbm hash iconv json mysql mysqli ncurses nls oci8-instant-client pcre readline reflection session simplexml spell spl ssl truetype unicode xml zlib" emerge -av php

Related URL:
  1. Protected: 觀察 22:40 – 23:15 apache log 的變化
  2. 解決用 NFS 當 documentroot 時會當掉的方法
  3. debian / ubuntu 裝 oracle instant client / sqlplus / oci8 / apache2 config / steps by steps
  4. [ubuntu] apache server module 的 enable / disable
  5. apache Custom Log Formats – 好用的參數
  6. Simple Monster Tracking System – step by step
  7. Protected: apache mod_rewrite , rewrite , rewriterule 真難搞
  8. 好用的 iptables rules – 限制 client 連 http port 的次數
  9. Monster LAMP Pack Lite – ver.317
  10. 安裝 apache / mod_memcache

2009/02/24

[note] javascript 的 foreach / split / php explode style 寫法

var loc="25.258861, 121.509389";
var arr=loc.split(","); 

var content = '';
for (var key in arr) {
  content += key + ' : ' + arr[key] + "\n";
}

另一個

var myarr = new Array('red','green','blue');

var content='';
for(var key in myarr){
	content += key+' : '+myarr[key]+"\n";
}

alert( content );
Related URL:
  1. Protected: Top 10 custom JavaScript functions of all time
  2. jQuery 學習程式

2008/09/30

Codeigniter 聯接 Oracle database 要改的地方

Filed under: DATABASE,Programming/php — Tags: , , , — 1:54 pm

Codeigniter version 1.6.3
Oracle version 10.2.0.4 use oci8

遇到這個 error :
Message: ocifetchinto() expects parameter 1 to be resource, null given

// 這個檔 \system\database\DB_driver.php 改成..

// $RES->num_rows	= $RES->num_rows();

if ($this->dbdriver == 'oci8')
{
  $RES->stmt_id		= $this->stmt_id;
  $RES->curs_id		= NULL;
  $RES->limit_used	= $this->limit_used;
}
$RES->num_rows	= $RES->num_rows();


解決沒有使用 UTF8 的問題

// 這個檔 \system\database\drivers\oci8\oci8_driver.php
// 改兩個地方:
function db_connect() 的
return @ocilogon($this->username, $this->password, $this->hostname,$this->char_set);

db_pconnect() 的
return @ociplogon($this->username, $this->password, $this->hostname,$this->char_set);


codeigniter 的連線設定

$db['default']['hostname'] = '//172.20.10.6/DB1';
$db['default']['username'] = "scott";
$db['default']['password'] = "*****";
$db['default']['database'] = "DB1";
$db['default']['dbdriver'] = "oci8";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = TRUE;
$db['default']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";

相關聯結:

http://download.oracle.com/docs/cd/B25329_01/doc/install.102/b25144/toc.htm#BABBGFIC


codeigniter 的 oracle driver 問題還不少, 同一隻程式第二個 sql select 的結果跟第一個一樣…

要改

/system/database/drivers/oci8/oci8_driver.php
的159行
if ( ! is_resource($this->stmt_id))
{
  $this->stmt_id = ociparse($this->conn_id, $this->_prep_query($sql));
}
改成
$this->stmt_id = ociparse($this->conn_id, $this->_prep_query($sql));
就夠了.
Related URL:
  1. 用 pecl inclued 產生關聯圖
  2. codeigniter / ci / oracle database.php 的設定方式 / utf8 / big5 粉難搞
下頁»

www.monster.com.tw , © Copyright 2008