Friday, January 26, 2007

Perl オブジェクト指向 Class 継承

HogeA.pm
package HogeA;
use strict;
sub new {
my $class = shift;
my $self = bless {}, $class;
return $self;
}
sub hoge {
my $self = shift;
print "Hoge::hoge\n";
}
1;


HogeB.pm
package HogeB;
use strict;
use base qw(HogeA);
sub new {
my $class = shift;
my $self = bless {}, $class;
return $self;
}
sub hogehoge{
print "hogehoge\n";
}
1;

---sample.pl
use strict;
use HogeB;
my $b = HogeB->new();
$b->hoge;

ISAも使えます。

use vars

use strict
を使った場合のグローバル変数をするときにつかう。
最新のバージョンではoursが推奨されますが Classの中で定義した方がよりベータ

Wednesday, January 24, 2007

Data::Pageのサンプル Template Toolkit

1..2 3 4 5 6 7 8 9 10 11 12 ..28
のようなページ支援の例


[% FOREACH num = [pager.first_page .. pager.last_page] %]
[% IF pager.current_page - pager.first_page > 5 && num == pager.first_page %]
<a href="hoge?page=[% num %]">[% num %]</a>..
[% END %]
[% IF num <= (pager.current_page + 5 ) && num >= (pager.current_page - 5 ) %]
[% IF num == pager.current_page %]<b>[% num %]</b>
[% ELSE %]<a href="hoge?page=[% num %]">[% num %]</a>[% END %]
[% END %]
[% IF (pager.last_page - pager.current_page) > 5 && num == pager.last_page %]
..<a href=hoge?page=[% num %]">[% num %]</a>
[% END %]
[% END %]

Thursday, January 18, 2007

Template::Plugin::FillInFormの使い方

--temp.html--



[% USE FillInForm %]

[% FILTER fillinform fdat => fdat1 %]

<form action="http://www.blogger.com/aaa" method="post">

<input type="text" name="hoge">

</form>

[% END %]



--- perl ----

#!/usr/local/bin/perl



use strict;

use Template;



my %values = (

hoge => 'hoge1',

);



my $output;

my $template = Template->new({

OUTPUT => \$output,

TRIM =>1,

});





$template->process(

'temp.html',

{ fdat1 =>\%values,

},

) or print $template->error;



print $output;







--- 実行結果







 

Template-Toolkit

サンプル

任意でconfigの指定ができる。
PRE_PROCESS ヘッダファイルの指定
POST_PROCESS フッタファイルの指定
INCLUDE_PATH テンプレートファイルの置く場所の指定
OUTPUT 出力の制御(詳細は後のURLを参照)
TRIM 改行などの削除(詳細は後のURLに書かれたBLOCKとINCLUDEの説明を参照)


my $output;
my $template = Template->new({
PRE_PROCESS => 'header.html',
POST_PROCESS => 'footer.html',
INCLUDE_PATH => '/home/hoge/temp',
OUTPUT => \$output,
TRIM =>1,
});

$template->process(
'sample.html',
);

print $output;


http://www.template-toolkit.org/docs/plain/Manual/Config.html 

Tuesday, February 01, 2005

php configure

./configure --with-apxs2=/usr/local/apache2/bin/apxs --enable-mbstring --enable-mbregex --enable-zend-multibyte --with-pgsql=/usr/local/pgsql

Monday, January 24, 2005

PHP の携帯電話向けのセッション設定

php.ini
session.use_trans_sid =1
上記設定でOK


http://www.yc.musashi-tech.ac.jp/~yamada/doc/php/0802.html

bloggerの cookie

blogger の認証にはcookieを有効にしないとログインできない

PATH_INFO による静的なページ

-------path_info.php-----------
$query = getenv ("PATH_INFO");
echo $query;
echo "
";

$var = split ("[/\.]", $query);
print_r ($var);
?>


--------------------------------
.htaccess

ForceType application/x-httpd-php

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

引用元

http://blog.su-jine.com/archives/2004/08/_path_info_1.html

mod_rewrite install DSO

cd /usr/local/src/apache_1.3.XX/src/modules/standard
/usr/local/apache/bin/apxs -c mod_rewrite.c
/usr/local/apache/bin/apxs -i mod_rewrite.so

Wednesday, January 12, 2005

psql

リモートマシンからアクセスするには,${PGDATA}/postgresql.confで
tcpip_socket = 1

として,TCP/IPでのアクセスを許可する.そして,${PGDATA}/pg_hba.confで
host all 127.0.0.1 255.255.255.255 trust


#psql -h マシンBのIPアドレス -U ユーザ名 -l

Monday, November 29, 2004

画像コピーの禁止

イメージツールバーを出現させない方法


macの場合、画像をドラッグ&ドロップ対応


ImageMagick

Annotate()

Friday, November 19, 2004

mod_rewrite 2

/usr/local/apache/bin/apxs -c /usr/local/src/apache_1.3.29/src/modules/standard/mod_rewrite.c
/usr/local/apache2/bin/apxs -i mod_rewrite.so



.htaccess
----------------------------------------------------------
Options +FollowSymLinks

RewriteEngine on

#RewriteRule ^([a-zA-Z0-9]+)/$ ./index.html?p=$1
#RewriteRule ^([a-zA-Z0-9]+)/index.htm$ ./index.html?p=$1
#RewriteRule ^([a-zA-Z0-9]+)/index.html$ ./index.html?p=$1
RewriteRule ^([a-zA-Z0-9]+)$ ./index.html?p=$1

Thursday, November 18, 2004

mysql

/usr/local/mysql/bin/mysqladmin version

/usr/local/mysql/bin/mysqlshow

/usr/local/mysql/bin/mysql -u root -p

phpMyAdmin UTF-8

phpMyAdmin

インストール

cp config.sample.inc.php config.inc.php

$cfg['blowfish_secret'] = 'hogehoge'; ここに適当な文字列を追加

うまく動かない場合 #2002 - The server is not responding (or the local MySQL server's socket is not correctly configured

//$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['host'] = '127.0.0.1';
のように変更すると動くときもある。

日本語のコードを UTF8 にする場合
config.inc.php 
$cfg['DefaultLang'] = 'utf-8';
$cfg['DefaultCharset'] = 'utf-8';
$cfg['AllowAnywhereRecoding'] = FALSE; <<こっちがいいみたい
$cfg['AllowAnywhereRecoding'] = TRUE; でもOKだがその場合、なんでも可となるので
UTF-8のみなら要らない

$cfg['Servers'][$i]['user'] = 'root'; // MySQL user
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['PmaAbsoluteUri'] = 'http://www.+++.com/phpMyAdmin/';


libraries/select_lang.lib.php
以下をコメントアウト

/** * * 2004-02-15 rabus: Deactivated the code temporarily:
* We need to allow UTF-8 in order to be MySQL 4.1 compatible!
// Disable UTF-8 if $cfg['AllowAnywhereRecoding'] has been set to FALSE.
if (!isset($cfg['AllowAnywhereRecoding']) !$cfg['AllowAnywhereRecoding']) {
  $available_language_files = $available_languages;
   $available_languages = array();
   foreach ($available_language_files AS $tmp_lang => $tmp_lang_data) {
   if (substr($tmp_lang, -5) != 'utf-8') {
   $available_languages[$tmp_lang] = $tmp_lang_data;
   }
   } // end while
   unset($tmp_lang, $tmp_lang_data, $available_language_files);
} // end if
* */

Tuesday, November 16, 2004

mod_vhost_alias

実際にはfind . -name mod_vhost_alias.c で探してみてください。

DSOとして後から追加
/usr/local/apache/bin/apxs -c mod_vhost_alias.c
/usr/local/apache/bin/apxs -i mod_vhost_alias.so

mod_vhost_alias.soが見事にlibexecの下におる

VirtualDocumentRootが使える

VirtualDocumentRoot /var/www/vhosts/%0/
をhttp.confの最後に追加するだけ。

すると、「www.hoge.com」でアクセスされた場合「/var/www/vhosts/www/

PHP での XML-RPC の使い方

PHP XML-RPC

Monday, November 15, 2004

ユーザごとにdocumentrootを変更する

RewriteEngine  on
RewriteCond  %{HTTP_HOST}  ^www\.hogehoge\.jp$
RewriteRule  (.*)           /usr/local/apache/htdocs$1  [L]

RewriteCond  %{HTTP_HOST}   ^www\.[^.]+\.hogehoge\.jp$
RewriteRule  (.*)     %{HTTP_HOST}$1 [C]
RewriteRule  ^www\.([^.]+)\.hogehoge\.jp(.*)  /home/$1/public_html$2  [L]

RewriteCond  %{HTTP_HOST}   ^[^.]+\.hogehoge\.jp$
RewriteRule   (.*)    %{HTTP_HOST}$1 [C]
RewriteRule   ^([^.]+)\.hogehoge\.jp(.*)   /home/$1/public_html$2  [L]
-------------------------------------------------------------
サブドメインアクセスを適切なURLに書き直す。
例: http://aaa.hoge.comのアクセスを http://www.hoge.com/aaa/ にする。
   ( httpd.conf or .htaccess ) 
バーチャルホストで定義する

   ServerName hoge.com
   ServerAlias *.hoge.com
   ServerAdmin info@hoge.com
   RewriteEngine On
   RewriteCond %{HTTP_HOST} ([^\.]+).*
   RewriteRule ^/$ /%1/ [R]

WildCard Domain (Sub domain)

named
*.YOURDOMAIN.COM. in a 123.123.123.123



apache


DocumentRoot /www/example
ServerName www.example.net
ServerAlias *.example.net


RewriteEngine on


RewriteEngine on
RewriteCond %{HTTP_HOST} ^123.123.123.123(:80)?
$RewriteCond %{HTTP_HOST} ^www.+++.com(:80)?
$RewriteRule ^/(.*) http://www.+++.com/$1[L,R]
RewriteOptions inherit


http://www.uk2raq.com/raqfaq/raqfaqshow.php?faq=80

mod_rewrite

引用

ここでの[NC]は,大文字小文字を区別しない(No Case),[F]はアクセス禁止(Forbidden)を意味するものだ。また,[OR]という指定もあり,後述するように「または」という論理指定をすることが可能だ。

[C]指定で無条件で次の行に進む。
RewriteCondは省略可能で,評価対象が評価条件にマッチした場合,次の行が実行される。

RewriteCond %{SERVER_PORT} !^443$
アクセスポートが443番(httpsでのアクセスではなかったら)、以下のルールを適用するという意味。


Linux Tips - mod_rewrite

http://webcraft.jp/asy/linux/mod_rewrite.htm

Saturday, November 13, 2004

blogとは

ブログとは哲学的ではない説明では


日記や愚痴や思いつきや適当に撮った画像をインターネットにアップする機能

日記とあるなら、個人でひそかに楽しめばいい。しかし、基本はインターネットと
いうものに共有するもの

機能
投稿機能&更新機能(メルマガと違うところ)
コメント機能
リンク機能
画像UP機能 (blogger単独ではないん 他において画像リンクを貼るか?http://flickr.com/)
PING送信機能 (bloggerはなし?)
プロフィール機能
テンプレート選択&UP機能
ログイン管理
アクセスIP制限
トラックバック(blogger単独ではないん-> http://www.haloscan.com/)
カテゴリ機能 (bloggerってないん?)
アーカイブ機能(月ごと?)
最近の投稿表示機能
RSS表示機能
日別表示機能(カレンダー)
検索機能
アクセス解析
バックアップ機能

moBlog

moblogとは、mobile blogのことを意味する

Friday, November 12, 2004

PHP template

Smarty
HTML_TEMPLATE_IT
phplib

なにがいいのかな?

Thursday, November 11, 2004

skype

これって便利ですね。IP電話が使えるんで固定電話は必要なくなるかも。。

http://web.skype.com/

DOCOMO User Agent

DOCOMO User Agent

maintenance page

もしmod_rewriteが使用できるapacheを使用しているなら

.htaccessに以下を記述するとmente.htmlに自動的に切り替わる
htconfの設定ファイルに書き込んでも可

Options +FollowSymLinks
RewriteEngine on
RewriteBase /

RewriteRule .* mente.html

Tuesday, November 09, 2004

ファイルの内容の重複行の検出

uniq [-cdu] inputfile outputfile
オプション 機能
-c 複数重複している行を出力する
-d 二重になっている行を出力する
-u 重複していない行を出力する

%uniq -d test.tex article.tex
ファイルtest.texとarticle.texで二重になっている行を出力する

sortコマンドをあわせて使用するとより便利です。(完全にソートされるわけではないです。)
sort ファイル
sort 30out.txt 30int.txt uniq -u

Saturday, October 02, 2004

Nucleus v3.1 TOP画像を変更 

スキンの編集を開き以下の部分を探す。
ここのatom3.gifなどを変更することで可能。
atom3.gifはskinsのフォルダの各フォーマットの下にあるので、それを変更することで可能。
<%sitevar(url)%> ここはサイトのURLになります。
--------------------------------

<div class="logo">
<a href="<%sitevar(url)%>">
<img src="<%skinfile(atom3.gif)%>" width="155" height="137" alt="" />
</a>
</div>

Thursday, September 30, 2004

Nucleus - Tips and suggestions Fancy URLs

Nucleus - Tips and suggestions: "Fancy URLs"

設定の手順:
/extra/fancyurls ディレクトリ以下のファイル全部 (index.html以外) を Nucleus のルートディレクトリ (index.php やaction.php をおいているディレクトリ) にコピーします。

すでに .htaccess というファイルがある場合 (たいていのFTPソフトは、標準の設定ではこのファイルを隠しファイルとして扱いますので、存在していないように見えても実際は.htaccessが設置されているケースがあります。よく確認してください)、まずこのすでにサーバに存在している.htaccessファイルをダウンロードします。このファイルを開いて /fancyurls/ ディレクトリにある .htaccess の内容を追加するようにしてください。編集内容を保存後にアップロードします。

ルートにコピーした fancyurls.config.php というファイルを開いて $CONF['Self'] の部分の値を自分の設定に合わせて設定してください。 注意: くれぐれも、この設定のURLの最後にスラッシュをつけてはいけません。

このモードでページを辿るときにindex.php/item/1234というURLが最後に付加されないようにするためには、index.php内の$CONF['Self'] の値も編集します。

Nucleusの管理メニューの Nucleusの管理->設定の編集 で URLモードを'Fancy URLs' に変更してください。

これで完了です。

Nucleus

install

1.unzip ***.zip
2.see install.php
3. edit .htaccess

e.g.(case of japanese)

php_value default_charset UTF-8
php_value mbstring.language Japanese
php_value mbstring.internal_encoding UTF-8
php_flag mbstring.encoding_translation On
php_value mbstring.http_input auto
php_value mbstring.http_output pass


Wednesday, September 22, 2004