2013年12月26日 星期四

使用JavaScript抓取動態生成的網頁

想要得到html檔案的原始碼,最直觀的做法就使用: 

document.getElementsByTagName('html')[0].innerHTML
 
 
document.documentElement.innerHTML 
 
 
document.documentElement.outerHTML

但是這樣無法得到第三方JavaScript所生成的html content

於是可以使用以下函式:
 
  function DOMtoString(document_root) {
    var html = '',
    node = document_root.firstChild;
    while (node) {
        switch (node.nodeType) {
            case Node.ELEMENT_NODE:
                html += node.outerHTML;
                break;
            case Node.TEXT_NODE:
                html += node.nodeValue;
                break;
            case Node.CDATA_SECTION_NODE:
                html += '<![CDATA[' + node.nodeValue + ']]>';
                break;
            case Node.COMMENT_NODE:
                html += '<!--' + node.nodeValue + '-->';
                break;
            case Node.DOCUMENT_TYPE_NODE:
                // (X)HTML documents are identified by public identifiers
                html += "<!DOCTYPE " + node.name
                    + (node.publicId ? ' PUBLIC "' + node.publicId + '"' : '')
                    + (!node.publicId && node.systemId ? ' SYSTEM' : '') 
                    + (node.systemId ? ' "' + node.systemId + '"' : '') + '>\n';
                break;
        }
        node = node.nextSibling;
    }
    return html;
}

參數document_root,表示使用上述方法所獲取的html content。
 
顧名思義,此函式將會回傳包括JavaScript動態生成的html content

2013年12月8日 星期日

php剝去HTML、XML、php的tag

剛剛在思考如何在HTML tag裡取出想要的字串

翻了書發現有個好用的函式:

strip_tags();

EX:

$html_tag = '<a href="xxxxxxx">目標字串</a>';

$html_tag = strip_tags($html_tag);

echo $html_tag;
//在此會輸出:目標字串

2013年12月6日 星期五

使用vim 內建的樣式(color scheme)

vim內建的樣式擺在:

/usr/share/vim/vim74/colors 

當中的數字"74"為vim的版本編號,

也就是7.4版,

請依照自己安裝的版本來作變更。

最後在.vimrc裡面加入:

:colorscheme your_choice

"your_choice"為你所選擇的樣式,

儲存完成後,樣式就會自動套用。

2013年12月5日 星期四

更換DM(Display Manager)

作業系統:Debian based 的 Distribution

sudo dpkg-reconfigure gdm

gdm也可以是kdm、lightdm.....等等

2013年11月13日 星期三

vim NERDTree 安裝(配置)

(2015/11/23:下列安裝方法是在認識Vundle之前,目前推薦使用Vundle)

首先到官方網站下載NERDTree:

http://www.vim.org/scripts/script.php?script_id=1658  
下載下來後解壓縮檔案


unzip nerdtree.zip

在~/.vim/建立plugin目錄(如果存在就不用建立了)

mkdir -p ~/.vim/plugin

將檔案 NERDTree.vim 放入剛建立的資料夾


mv plugin/NERD_tree.vim ~/.vim/plugin


開啟vim 後輸入:

:NERDTree

應該就可以看到NERDTree了!

-----------------------------------------------------

每次要輸入這麼多字很麻煩,所以可以設定快捷鍵

開啟vim 並編輯 .vimrc:

vim ~/.vimrc

 輸入:

 nmap <F5> <ESC>:NERDTree<CR>

讓按下<F5>時等於執行
 

:NERDTree



參考資料:
http://blog.longwin.com.tw/2009/02/vim-tree-explorer-nerdtree-plugin-2009/ 

phpmyadmin在Ubuntu / Linux Mint 下的安裝法

先安裝phpmyadmin,在終端機鍵入:

sudo apt-get install phpmyadmin

打開瀏覽器在網址列輸入:

localhost/phpmyadmin



127.0.0.1/phpmyadmin

如果可以出現phpmadmin的控制台就成功了!

如果不行

那就在終端機輸入:
sudo gedit /etc/apache2/apache2.conf

sudo gedit /etc/apache2/apache2.conf
sudo gedit /etc/apache2/apache2.conf
sudo gedit /etc/apache2/apache2.conf
sudo gedit /etc/apache2/apache2.conf
sudo gedit /etc/apache2/apache2.conf
sudo gedit /etc/apache2/apache2.conf
sudo gedit /etc/apache2/apache2.conf
sudo gedit /etc/apache2/apache2.conf
sudo gedit /etc/apache2/apache2.conf
 sudo gedit /etc/apache2/apache2.conf

(gedit 是文字編輯器,可以成自己熟悉的文字編輯器 ex:vim)

接著在裡面輸入:

Include /etc/phpmyadmin/apache.conf

接著重新啟動apache server:

sudo /etc/init.d/apache2 restart

 
 
參考資料:http://www.unixmen.com/how-to-install-lamp-an-phpmyadmin-on-linuxmint-7-gloria/
sudo /etc/init.d/apache2 restart
sudo gedit /etc/apache2/apache2.conf
sudo gedit /etc/apache2/apache2.conf
sudo gedit /etc/apache2/apache2.conf

2013年10月29日 星期二

在eclipse的Android Emulator下安裝.apk檔

在eclipse的Android Emulator下安裝.apk檔的步驟:
  1. .apk檔放入sdk資料夾內的platform-toolssdk/platform-tools/
  2. 執行eclipse中的Emulator
  3. 開啟終端機
  4. 輸入:cd sdk/platform-tools
  5. 再輸入:./檔名.apk
  6. 如果看到"Success",就表示安裝成功了!
資料來源:http://www.almadevelop.com/2012/01/android-how-to-install-apk-files-on.html

2013年8月21日 星期三

JavaScript的URL編碼

要用GET傳值到下一個頁面常會用:
xxx.html?abc=abc

如果現在是要傳中文:
xxx.html?abc=中文
會顯示UTF-8編碼格式
xxx.html?abc=%E4%B8%AD%E6%96%87

如果想用abc這個參數的值
就可以使用JS內建的 decodeURI() decodeURIComponent() 進行解碼

其他參考資料:
 http://blog.longwin.com.tw/2010/01/javascript-encodeuri-component-utf-8-2010/


2013年6月23日 星期日

Linux的SUID、SGID、SBIT

SUID:
號碼:4
釋義:
  1. 在檔案在執行時,檔案的執行身份會暫時變成該檔案的 「擁有者」,並且只對二進位程式有用。
  2. 只能設定檔案的SUID不能設定目錄的SUID。
範例:
-rwsr-xr-x 1 root root 22984 Jan  7  2007 /usr/bin/passwd
   ^ 
 以一般使用者執行passwd時會暫時取得root權限。
 
SGID:
號碼:2
釋義:
  1. 在該檔案執行時,檔案的有效群組會暫時變成該檔案的「擁有群組」。
  2. 當SGID設在目錄時,該目錄的 「擁有群組」會自動設定到其下所建立的檔案或子目錄。
  3. 可以設定檔案與目錄。
  4. 常被運用在協同工作目錄。
SBIT:
號碼:1
釋義:
  1. SBIT 只對目錄有效。
  2. 當對目錄設定 SBIT 時,在該目錄下建立的檔案或子目錄,只有root及檔案或子目錄的擁有者可以刪除,例如:/tmp。

參考資料:鳥哥的Linux私房菜http://www.vixual.net/blog/archives/224

2013年5月28日 星期二

不要讓Vim產生備份檔

不要讓Vim產生備份檔。 
ex: xxx.php~
 
set nobackup
set nowritebackup
set noswapfile

2013年5月8日 星期三

在ubuntu中安裝apache server + php + mysql

安裝apache server:
sudo apt-get install apache2

安裝php:
sudo apt-get install php5

安裝mysql-server
sudo apt-get install mysql-server

安裝mysql for apache server:
sudo apt-get install libapache2-mod-auth-mysql
sudo apt-get install php5-mysql

安裝phpmyadmin(選擇安裝):
sudo apt-get install phpmyadmin

2013年4月29日 星期一

Ubuntu /var/log/uvcdynctrl-udev.log佔容量問題

之前系統警告/var滿了,
查看一下發現/var/log佔了很大的空間,
其中95%的佔用來自於/var/log/uvcdynctrl-udev.log
因為當初以為/var/log是必須定期手動清理的,
(其實系統會自動清理)
於是就直接
sudo rm -r /var/log/*
接著我的apache http server找不到error.log,
就無法啟動了...

其實下面這個解決方法不能解決根本問題,
他只是強制不讓uvcdynctrl寫入/var/log
但是至少uvcdynctrl-udev.log不會再出現了...

有更好的方法以後會再補上!

解決方法:
sudo cp /lib/udev/uvcdynctrl /lib/udev/uvcdynctrl_backup
#備份原始的/lib/udev/uvcdynctrl
gksu gedit /lib/udev/uvcdynctrl

#執行gedit來編輯/lib/udev/uvcdynctrl
#找到"debug=1"並改成"debug=0"

sudo rm /var/log/uvcdynctrl-udev.log

#刪除討人厭佔很大空間的uvcdynctrl-udev.log

參考資料:http://askubuntu.com/questions/177312/filesystem-filling-up-due-to-large-uvcydnctrl-udev-log-file

2013年4月28日 星期日

~/.vimrc

" vundle config
set nocompatible              " be iMproved, required
filetype off                  " required

" set the runtime path to include Vundle and initialize
set rtp+=~/.vim/bundle/Vundle.vim
call vundle#begin()
" alternatively, pass a path where Vundle should install plugins
"call vundle#begin('~/some/path/here')

" let Vundle manage Vundle, required
Plugin 'VundleVim/Vundle.vim'

Plugin 'scrooloose/nerdtree'
Plugin 'Lokaltog/vim-powerline'
"Plugin 'vim-airline/vim-airline'
"Plugin 'vim-airline/vim-airline-themes'
Plugin 'Yggdroot/indentLine'
Plugin 'kien/ctrlp.vim'
"Plugin 'Valloric/YouCompleteMe'

call vundle#end()            " required
filetype plugin indent on    " required

set hlsearch

" syntastic setting
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*

let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0

" shown powerline in sigle buffer
set laststatus=2
set t_Co=256
let g:Powerline_colorscheme='solarized256'
"let g:Powerline_symbols = 'fancy'
"let g:airline_powerline_fonts = 1

" airline setting
"set laststatus=2
"set t_Co=256
"let g:airline_theme="bubblegum"
"let g:airline#extensions#tabline#enabled = 1

" tab
map <C-t>l <ESC>:tabnext<CR>
map <C-t>h <ESC>:tabprev<CR>
map <C-t>n <ESC>:tabnew<CR>:NERDTree<CR>
map <C-t>c <ESC>:tabclose<CR>
map <C-t>0 <ESC>:tabfirst<CR>
map <C-t>$ <ESC>:tablast<CR>
map <C-t>q <ESC>:qall<CR>

set expandtab
set tabstop=4
set shiftwidth=4
set softtabstop=4

set autoindent
" C語言的縮排方法
"set cindent

set ruler
set showmode
set bg=dark
set nu

" terminal的title會設成filename
"set title

" 可以用 {{{ }}} 縮排 Folded
set foldmethod=marker
" 預設關閉
set foldlevel=0

" 編碼設定
set fileencoding=utf-8
set fileencodings=utf8,big5
set termencoding=utf-8
set enc=utf-8
set tenc=utf8

nmap <silent> <F5> <ESC>:NERDTree<CR>

" indent line 縮排對齊線plugin,預設關閉。
nmap <silent> <F6> <ESC>:IndentLinesToggle<CR>
let g:indentLine_enabled = 0

" 自動補齊括號
"inoremap ( ()<ESC>i
"inoremap [ []<ESC>i
"inoremap { {}<ESC>i

nnoremap <silent> <F8> :set paste<CR>
nnoremap <silent> <F9> :set nopaste<CR>

" vim color theme
colorscheme default
syntax on

" hightlight current line
set cursorline
hi CursorLine cterm=NONE ctermbg=234 ctermfg=NONE

" highlight TODO FIXME XXX with bold
hi Todo cterm=bold ctermbg=11

" highlight current line number
hi LineNr cterm=NONE ctermbg=234 ctermfg=245
"hi CursorLineNR cterm=NONE ctermbg=234 ctermfg=245

" 改變背景顏色顏色
"highlight Comment ctermbg=DarkGray
" 改變字體顏色
"highlight Comment ctermfg=DarkGray

php的箭頭符號(減號+大於)

php的「->」用來引用某個class中的函式或變數,
或者是說調用某個class中的函式或變數。

example:

class a
{
    function  b()
    {
        echo 'hello';
    }
}

$c = new a;
$c -> b();

output: hello


參考資料:http://a22710518.pixnet.net/blog/post/28763791


2013年4月27日 星期六

start

這個blog是一個紀錄IT技術的筆記,希望可以一直持續下去。
-Kurt 2013.04.27