php-modeの続き。
php-mode-pearに関してコメントを貰ったんですが、スパム削除の際に間違って消しちゃったかも。 頑張ってもう少しphp-mode.elを見てみると、
;; PEAR coding standards
(make-local-hook 'php-mode-pear-hook)
(add-hook 'php-mode-pear-hook
(lambda nil (set (make-local-variable 'tab-width) 4)) nil t)
(add-hook 'php-mode-pear-hook
(lambda nil (set (make-local-variable 'c-basic-offset) 4)) nil t)
(add-hook 'php-mode-pear-hook
(lambda nil (set (make-local-variable 'c-hanging-comment-ender-p) nil)) nil t)
(add-hook 'php-mode-pear-hook
(lambda nil (set (make-local-variable 'indent-tabs-mode) nil)) nil t)
(add-hook 'php-mode-pear-hook
(lambda nil (c-set-offset 'block-open' - )) nil t)
(add-hook 'php-mode-pear-hook
(lambda nil (c-set-offset 'block-close' 0 )) nil t)
タブ幅4でスペース4個?他はよくわからん・・・・。
.emacsにこんな感で常にPEARモードに。
(custom-set-variables '(php-mode-force-pear t))
久しぶりにPEARマニュアルをチェックしてみるとコーディング標準についてemacs用の設定まで書いてありました。
PEAR :: Manual :: 標準コーディング規約インデント
空白 4 つのインデントを使用します。タブは使いません。 PEAR コードの編集に Emacs を使用する場合、indent-tabs-mode を nil に設定する必要があります。以下に、これらのガイドラインに基づき Emacs を設定するモードフックの例を示します(PHP ファイルを編集する際に これがコールされるようにする必要があります)。
(defun php-mode-hook () (setq tab-width 4 c-basic-offset 4 c-hanging-comment-ender-p nil indent-tabs-mode (not (and (string-match "/\\(PEAR\\|pear\\)/" (buffer-file-name)) (string-match "\.php$" (buffer-file-name))))))
俺もスペース派になろうかな?
wgetの話で気になる点が。
p0t: wgetの本当の良さこの1年くらいはGETを使うことが多いです
$ GET http://go-pear.org/ | php -Cq
みたいな. ヘッダーとか見たり弄ったりもできます(wgetでもできるけど
投稿者 ELF : 2005年12月23日 02:46
Fedora Core(&Red Hat&CentOS)だと perl-libwww-perl ってのに入ってるみたいです > GET SSL使えないけど
投稿者 ELF : 2006年01月02日 10:20
GET!? 単にGETだと検索で見つけ辛いですがこの話でわかりました!
komagata@colinux:~$ apt-cache show libwww-perl
Package: libwww-perl
Priority: optional
Section: perl
Installed-Size: 984
Maintainer: Jay Bonci <jaybonci@debian.org>
Architecture: all
Version: 5.803-4
Depends: perl (>= 5.6.0-16), libnet-perl (>= 1:1.09) | perl (>= 5.8.1), libdigest-md5-perl, libmime-base64-perl (>= 2.1) | perl (>= 5.8), liburi-perl (>= 1.10), libhtml-parser-perl (>= 3.33), libhtml-tree-perl (>= 3.11)
Recommends: libmailtools-perl, libhtml-format-perl, libcompress-zlib-perl
Suggests: libio-socket-ssl-perl (>= 0.81-2)
Filename: pool/main/libw/libwww-perl/libwww-perl_5.803-4_all.deb
Size: 358498
MD5sum: 0f326bde0be84e234e9eb312e6a87400
Description: WWW client/server library for Perl (aka LWP)
Libwww-perl is a collection of Perl modules which provides a simple
and consistent programming interface (API) to the World-Wide Web. The
main focus of the library is to provide classes and functions that
allow you to write WWW clients, thus libwww-perl said to be a WWW
client library. The library also contain modules that are of more
general use, as well as a simple HTTP/1.1-compatible server
implementation.
Tag: devel::library, langdevel::perl, made-of::lang:perl, protocol::http, role::sw:shlib
Debian etchだとlibwww-perlつーかLWPに入ってるみたいです。
komagata@colinux:~$ ll /usr/bin/GET
lrwxr-xr-x 1 root root 11 2006-01-02 17:43 /usr/bin/GET -> lwp-request
GETはlwp-requestのシンボリックリンクかよ!
komagata@colinux:~$ ll /usr/bin/POST
lrwxr-xr-x 1 root root 11 2006-01-02 17:43 /usr/bin/POST -> lwp-request
komagata@colinux:~$ ll /usr/bin/HEAD
lrwxr-xr-x 1 root root 11 2006-01-02 17:43 /usr/bin/HEAD -> lwp-request
ついでにPOSTもHEADもあるみたいです。
komagata@colinux:~$ GET http://p0t.jp/google.php/PHP
レッツPHP! http://php.s3.to/
PHP研究所 PHP INTERFACE http://www.php.co.jp/
phpspot - PHPスクリプト/MySQL/掲示板/入門/サンプル/正規表現 http://phpspot.net/php/
PHP-J.com http://www.php-j.com/
PHP: Hypertext Preprocessor (in Japanese) http://www.geocities.jp/rui_hirokawa/php/
PHP SAMPLES & TIPS http://www.spencernetwork.org/
PHP: Hypertext Preprocessor http://jp2.php.net/
komagata@colinux:~$ HEAD http://p0t.jp/google.php/PHP
200 OK
Connection: close
Date: Mon, 02 Jan 2006 09:05:59 GMT
Server: Apache/1.3.34 (Unix)
Content-Type: text/plain
Client-Date: Mon, 02 Jan 2006 09:06:06 GMT
Client-Peer: 59.106.13.181:80
Client-Response-Num: 1
X-Powered-By: PHP/4.3.10
使い易っ!!! GETやPOSTの一番簡単な方法かもしれない。GETしたらデフォルトはwgetみたいにファイルに保存じゃないでしょ!やっぱ標準出力でしょ!
emacsでのPHP開発についてgoogleではかなり情報が少なくて苦戦したのでメモ。
sudo apt-get install php-elisp
何よりPHPの関数補完が気になってたんですが、
not implemented yetかよ。
$ apt-cache show php-elisp
Package: php-elisp
Priority: optional
Section: text
Installed-Size: 144
Maintainer: Pontus Ullgren <pontus@ullgren.com>
Architecture: all
Version: 1.1.0-2
Depends: emacs21 | xemacs21 | emacsen
Suggests: php4 | php3
Filename: pool/main/p/php-elisp/php-elisp_1.1.0-2_all.deb
Size: 17644
MD5sum: 5f8372578d2bb63e5ad16b61310ddc3a
Description: Emacs support for php files
Emacs major mode for php supporting syntax highlighting, indentation
and good integration with html-statements.
sargeのphp-mode(php-elisp)はVersion1.1.0らしいので、SourceForgeで最新版を見に行ってみると1.2.0が出てました。しかもRelease Notesが、
Changes: Implemented php-show-arglist, C-. (Engelke Eschner) Implemented php-complete-function, M-tab (Engelke Eschner) Re-enabled # comment detection in GNU Emacs (Urban M?ller) Fixed some keybindings and default settings (Engelke Eschner)
ちょうどこのバージョンから関数補完ができるようになっているようです。 /usr/local/share/emacs/site-lisp/php-mode-120.elとして置いてM-x byte-compile-file。 PHPのHTMLマニュアルを取ってきて/usr/local/share/php/doc辺りに解凍。それを見て補完するらしいので.emacsにパスを設定。
;; php
(load-library "php-mode-120")
(require 'php-mode)
(add-hook 'php-mode-user-hook
'(lambda ()
(setq php-manual-path "/usr/local/share/php/doc")))
補完できたー!
中身を見てみるとたまらない変数とかあります。
(defcustom php-mode-force-pear nil
"Normally PEAR coding rules are enforced only when the filename contains \"PEAR\"\
Turning this on will force PEAR rules on all PHP files."
:type 'boolean
:group 'php)
PEARのコーディング規約守れちゃうのかよ。
(if (or php-mode-force-pear
(and (stringp buffer-file-name)
(string-match "PEAR\\|pear"
(buffer-file-name))
(string-match "\\.php$" (buffer-file-name))))
(run-hooks 'php-mode-pear-hook))
設定してなくてもpearフォルダ以下のphpファイルは自動的に? これ以上はlispがわからん。
- アンダーカレント アフタヌーンKCDX
- 講談社(2005-11-22)
- (著)豊田 徹也
- 定価:¥ 980
- 新品価格:¥ 980
- 中古価格:¥ 4,980
- ASIN:4063720926
ちょうど1冊なので気軽に読めます。 連載時と違ってまとめて読むとラストに向けての盛り上がりがグワッときて良かった。(少ない語彙)
- PHPサイバーテロの技法―攻撃と防御の実際
- ソシム(2005-11)
- (著)GIJOE
- 定価:¥ 1,890
- 新品価格:¥ 1,890
- ASIN:4883374718
“PHP サイバーテロの技法”買ったっ!とてもためんなります。 今までScript InsertionというやつのことをXSSだと思ってたな、とか勉強になりつつ風呂で読んでたんですが、CSRFのところでこう書いてある。
ここではもっとも簡単な対策を施します。いわゆる「リファラーチェック法」です。(中略)
このリファラーチェック法に対する批判は2つあります。1つは「リファラーは偽装可能である」というものです。ただ、この批判は的はずれです。よく考えればわかると思いますが、CSRFは権限保持者自身が踏むものです。偽装する理由がありません。また、リファラーを第三者が書き換えることもできませんので、チェックとしては十分、有効に機能します。もう一つの批判は、リファラーを送出しないブラウザでは、正常な操作も行えない、というものですが、これは当たっています。現実に、リファラーを送出しないことで守られる個人情報(具体的には検索エンジンへの検索文字列等)も確実にありますので、あえてリファラーを切っている人も少なくないでしょう。それを補う方法については、066ページで解説します。
わざわざサンプルまで作ってみた身としては見逃せない!リファラーチェック法なんかより以前検証した高木センセのセッションIDを渡す方法の方がいいんじゃないんだろうか。この066ページというのもPOST利用法やパラメータを全部セッション渡しする方法やワンタイムトークンが紹介されているだけだった。
ググッてみたけどこの本にそういう指摘が無いからもしやおれの理解が間違ってる?
PHP サイバーテロの技法 CSRF - Google 検索
ref: CSRF対策俺ルール2 ref: クロスサイトリクエストフォージェリ(CSRF)の正しい対策方法
naoyaのはてなダイアリー – GNU screen いろいろまとめ。先日人力検索で GNU screen の設定TIPSについて質問してみたところ、かなーり役立つ設定とかをたくさん教えてもらうことができました。
苦労してやっと最近coLinux上での開発環境がそろってきたところ。screenって家と会社でそれぞれ別のcoLinuxつかってるとありがたみが無い(PC終了でcoLinuxも終了するから)・・・。高林さんのページとかを見てても思うんですが、みんなUNIXマシンをどこに置いてるんでしょうか?
自分の端末とは別に開発用のサーバを立てている?立てているとして、それは自宅マシン?好き勝手できる環境ということでどこかにハウジングしている?研究室?会社?
何が一般的なのかな?
最近思ったんですが、Webサービスもshell上でパイプとかで繋げられたら楽なのに。 入力は標準入力とPATH_INFOをパラメータとして出力はtext/plainの行指向テキストでいいじゃないか。
理想としてはこんな風にできたら素敵だ。
$ export LANG=/bin:/usr/bin:http://foo.com
$ cat foo | foo.php | grep -v php
個々のコマンド(というかWebサービス)は作るのは簡単そうだがそもそもshellがHTTP経由でPATHを探しに行くようにはなってない。けどもしかしたらそういうshellはあるのかもしれない。
JavaScriptとかでもこんな感じで同じWebサービスをパイプで繋げて書けたら楽だ。(パラメータはスペース区切りの変わりにPATH_INFOで””/”“区切り)
result = shell("http://foo.com/foo.php | http://foo.com/grep.php/var")
試しに文字を第1パラメータに取ってgoogleの検索結果を行区切りplain textで出すものを作ってみた。
””PHP”“で検索した結果。 http://p0t.jp/google.php/PHP
レッツ<b>PHP</b>! http://php.s3.to/
<b>PHP</b>研究所 <b>PHP</b> INTERFACE http://www.php.co.jp/
phpspot - <b>PHP</b>スクリプト/MySQL/掲示板/入門/サンプル/正規表現 <b>...</b> http://phpspot.net/php/
<b>PHP</b>-J.com http://www.php-j.com/
birding.com forums: Penis Enlargement Device that actually works ! http://www.birding.com/forums/showflat.php?Number=1985
birding.com forums: Buy Generic Phentermine & Adipex Online http://www.birding.com/forums/showflat.php?Number=1960
<b>PHP: Hypertext Preprocessor</b> (in Japanese) http://www.geocities.jp/rui_hirokawa/php/
<b>PHP</b> SAMPLES & TIPS http://www.spencernetwork.org/
DokiDoki <b>PHP</b> http://dokidoki.lantecweb.net/
<b>PHP: Hypertext Preprocessor</b> http://jp2.php.net/
こういうplain text見るとshell scriptとかに渡したくならないですか?(異常者)
Wgetを使おう的ページ□なぜWgetか?
左手だけでコマンドが打てる wgetという文字は左手だけで打てる。
wgetの核心に触れちゃったよ。
- TOSHIBA ポップアップトースター シルバー EHT-2A(S)
- 東芝
- 定価:
- 新品価格:¥ 2,620
- ASIN:B0000C97H3
欲しかったポップアップトースターを購入。 小麦の値段上がるくらい食ってやりますよ!