php://stdin
php://stdout
php://stderr
php://output
php://input
php://filter (PHP 5.0.0 以降で使用可能)
php://memory (PHP 5.1.0 以降で使用可能)
php://temp (PHP 5.1.0 以降で使用可能)
http://zapanet.info/phpdoc/wrappers.php.html
2008年12月26日金曜日
2008年12月22日月曜日
2008年12月20日土曜日
2008年12月19日金曜日
Flash Lite1.1とPHPセッションの連携
Flash Lite1.1では起動時にSWFに値を渡す方法(URLパラメータやparamタグ)が使えないようなので、SWFにセッションIDを渡すことができません。
http://www.1x1.jp/blog/2006/12/flashlite11_php_session.html
http://www.1x1.jp/blog/2006/12/flashlite11_php_session.html
2008年12月16日火曜日
PHP:不要なパラメータを除去してリダイレクト
$jump_url="tekitou/?PHPSESSID=p5beb53ui77cms9a7smqcr5aa0&end=aa&a=2&s%5B0%5D=2&s%5B1%5D=3&w=1&logout=1&";
//不必要なパラメータを置換
$jump_url = preg_replace("/PHPSESSID=\w{26}/", "" , $jump_url);
$jump_url = preg_replace("/logout=\d/", "" , $jump_url);
//不要なパラメータのごみ取り
$jump_url = preg_replace("/&{2,}/", "&" , $jump_url);
$jump_url = preg_replace("/\?{2,}/", "?" , $jump_url);
$jump_url = preg_replace("/(\?&|&\?)[\?&]*/", "?" , $jump_url);
$jump_url = preg_replace("/[\?&]$/", "" , $jump_url);
if(preg_match("/[\?&]/",$jump_url)){
$jump_url .= "&".SID;
}else{
$jump_url .= "?".SID;
}
header("Location: ".$jump_url);
//不必要なパラメータを置換
$jump_url = preg_replace("/PHPSESSID=\w{26}/", "" , $jump_url);
$jump_url = preg_replace("/logout=\d/", "" , $jump_url);
//不要なパラメータのごみ取り
$jump_url = preg_replace("/&{2,}/", "&" , $jump_url);
$jump_url = preg_replace("/\?{2,}/", "?" , $jump_url);
$jump_url = preg_replace("/(\?&|&\?)[\?&]*/", "?" , $jump_url);
$jump_url = preg_replace("/[\?&]$/", "" , $jump_url);
if(preg_match("/[\?&]/",$jump_url)){
$jump_url .= "&".SID;
}else{
$jump_url .= "?".SID;
}
header("Location: ".$jump_url);
2008年12月15日月曜日
2008年12月11日木曜日
いまさらxargsの便利さを主張してみる
標準入力から渡されたファイル名などを引数とみなして、別のコマンドの引数として起動するというものです。
http://openlab.dino.co.jp/2008/02/20/133431188.html
http://openlab.dino.co.jp/2008/02/20/133431188.html
2008年12月3日水曜日
2008年11月27日木曜日
2008年11月26日水曜日
2008年11月20日木曜日
cakephp: レイアウトの使用
レイアウトの使用
/app/views/layouts/temp.thtml
<html>
<head>
<title><?=$title_for_layout?></title>
</head>
<body>
<?=$content_for_layout?>
</body>
</html>
コントローラー内
var $layout = "temp";
functon hoge(){
$this->pageTitle = "タイトル";
}
エレメントの使用
/app/views/elements/ele.thtml
テンプレート内
<?=$this->renderElement("ele",array("message" => "メッセージ"))?>
/app/views/layouts/temp.thtml
<html>
<head>
<title><?=$title_for_layout?></title>
</head>
<body>
<?=$content_for_layout?>
</body>
</html>
コントローラー内
var $layout = "temp";
functon hoge(){
$this->pageTitle = "タイトル";
}
エレメントの使用
/app/views/elements/ele.thtml
テンプレート内
<?=$this->renderElement("ele",array("message" => "メッセージ"))?>
2008年11月19日水曜日
2008年11月18日火曜日
Webシステム用管理者画面作成マニュアル
管理者画面を作成する方向けに作ったひな型・CSS・HTMLサンプル&デザイン集のサイト
http://www.k-jouhou.info/~kanri-gamen/index.html
http://www.k-jouhou.info/~kanri-gamen/index.html
2008年11月17日月曜日
ポインタを含む宣言子の解釈
char *( *(*var)() )[10];
これをどう解釈するかですが、
1. 識別子を探す。この場合はvarのみ。
次に修飾子を展開していく。
2. (*var):varはポインタ。
3. (*var)():関数を指すポインタ。(( ) > *の優先順位)
4. *(*var)():戻り値はポインタ。
5. ( *(*var)() )[10]:ポインタは要素10の配列を指す。([ ] > *の優先順位)
6. *( *(*var)() )[10]:配列の要素はポインタ。
7. char *( *(*var)())[10]:ポインタはchar型を指す。
http://www5d.biglobe.ne.jp/~hetare/tips/pointer.html
これをどう解釈するかですが、
1. 識別子を探す。この場合はvarのみ。
次に修飾子を展開していく。
2. (*var):varはポインタ。
3. (*var)():関数を指すポインタ。(( ) > *の優先順位)
4. *(*var)():戻り値はポインタ。
5. ( *(*var)() )[10]:ポインタは要素10の配列を指す。([ ] > *の優先順位)
6. *( *(*var)() )[10]:配列の要素はポインタ。
7. char *( *(*var)())[10]:ポインタはchar型を指す。
http://www5d.biglobe.ne.jp/~hetare/tips/pointer.html
2008年11月15日土曜日
PHP:WEBページの取得
$_rawData = getURL( "http://www.example.com/" );
function getURL( $pURL ) {
$_data = null;
if( $_http = fopen( $pURL, "r" ) ) {
while( !feof( $_http ) ) {
$_data .= fgets( $_http, 1024 );
}
fclose( $_http );
}
return( $_data );
}
function getURL( $pURL ) {
$_data = null;
if( $_http = fopen( $pURL, "r" ) ) {
while( !feof( $_http ) ) {
$_data .= fgets( $_http, 1024 );
}
fclose( $_http );
}
return( $_data );
}
2008年11月14日金曜日
2008年11月13日木曜日
2008年11月12日水曜日
2008年11月11日火曜日
Perl:無名配列と無名ハッシュのリファレンス
@aa =('aa',[1 , 2],{'alphabet' => 'alpha beta gamma'});
print $aa[1]->[0];
print $aa[2]->{alphabet};
print $aa[1]->[0];
print $aa[2]->{alphabet};
2008年11月10日月曜日
PHP:web 上のファイルが存在するかチェックする方法
$url='http://www.example.com/images/pic01.jpg';
$x=get_headers($url);
print $x[0];
?>
存在する場合の例は、 HTTP/1.1 200 OK
存在しない場合の例は、 HTTP/1.1 404 Not Found
http://okwave.jp/qa4295497.html
$url='http://www.example.com/images/pic01.jpg';
$x=get_headers($url);
if(preg_match("/OK$/",$x[0])){
echo "OK";
}else{
echo "NOT FOUND";
}
?>
$x=get_headers($url);
print $x[0];
?>
存在する場合の例は、 HTTP/1.1 200 OK
存在しない場合の例は、 HTTP/1.1 404 Not Found
http://okwave.jp/qa4295497.html
$url='http://www.example.com/images/pic01.jpg';
$x=get_headers($url);
if(preg_match("/OK$/",$x[0])){
echo "OK";
}else{
echo "NOT FOUND";
}
?>
2008年11月5日水曜日
2008年11月4日火曜日
2008年10月31日金曜日
Perl:quotemetaの使い方
引数からすべての正規表現のメタ文字をバックスラッシュでエスケープしたものを返します。つまり、/[A-Za-z_0-9]/にマッチしない全ての文字の前にはロケールに関わらずバックスラッシュが前置されます。
print quotemeta('(\S+)\s'), "\n";
> \(\\S\+\)\\s
print quotemeta('(\S+)\s'), "\n";
> \(\\S\+\)\\s
2008年10月30日木曜日
2008年10月28日火曜日
リファレンスのリストから最初の要素を取り出してリストにする
use Data::Dumper;
use Text::CSV_XS;
my $csv = new Text::CSV_XS({binary => 1});
open IN, "< list.csv";
foreach(<IN>){
$csv->parse($_);
push( @id, [$csv->fields()]->[0]);
}
print Dumper @id;
close IN;
use Text::CSV_XS;
my $csv = new Text::CSV_XS({binary => 1});
open IN, "< list.csv";
foreach(<IN>){
$csv->parse($_);
push( @id, [$csv->fields()]->[0]);
}
print Dumper @id;
close IN;
Perl:複数行にわたるコメントを簡単に
Java や C 等に用意されている /* コメント */ のように、複数行に渡るコメントを記述したい場合、 Perl では perldoc用の記述方である =pod と =cut を使用することで、複数にわたるコメントを記述できます。 (以下参照)
print "ここは実行されます。\n";
=pod
ここはコメント行になります。
ここもコメント行になります。
=cut
print "ここも実行されます。\n";
http://www.site-cooler.com/tips/perl_comments.htm
print "ここは実行されます。\n";
=pod
ここはコメント行になります。
ここもコメント行になります。
=cut
print "ここも実行されます。\n";
http://www.site-cooler.com/tips/perl_comments.htm
2008年10月26日日曜日
Borland C++ Compiler 5.5インストール
http://cc.codegear.com/free/cppbuilder
環境変数
c:\Borland\Bcc55\bin
c:\Borland\Bcc55\binフォルダに
bcc32.cfg
-I"c:\Borland\Bcc55\include"
-L"c:\Borland\Bcc55\lib"
ilink32.cfg
-L"c:\Borland\Bcc55\lib"
を作成。
コンパイラオプション
ファイル名をhoge.cgiで保存
bcc32 -ehoge.cgi piyo.cpp
http://www.geocities.jp/bleis_tift/cpp/option.html
環境変数
c:\Borland\Bcc55\bin
c:\Borland\Bcc55\binフォルダに
bcc32.cfg
-I"c:\Borland\Bcc55\include"
-L"c:\Borland\Bcc55\lib"
ilink32.cfg
-L"c:\Borland\Bcc55\lib"
を作成。
コンパイラオプション
ファイル名をhoge.cgiで保存
bcc32 -ehoge.cgi piyo.cpp
http://www.geocities.jp/bleis_tift/cpp/option.html
2008年10月25日土曜日
CakePHP:Routes の定義
独自ルートの定義により、アプリケーションを指定した URL で動作させることができるようになります。独自のルーティングは、/app/config/routes.php ファイルの Router::connect() メソッドを使用して定義します。
http://book.cakephp.org/ja/view/542/Routes-%E3%81%AE%E5%AE%9A%E7%BE%A9
http://book.cakephp.org/ja/view/542/Routes-%E3%81%AE%E5%AE%9A%E7%BE%A9
2008年10月24日金曜日
2008年10月23日木曜日
2008年10月21日火曜日
2008年10月18日土曜日
シリアルインタフェース設定
シリアルインタフェースの設定に関しては、2 つの仕様について説明する必要があります。通常、インタフェースは回線にクロッキングを提供する CSU/DSU タイプのデバイスに接続されています。ただし、ラボ環境のようにバックツーバックコンフィギュレーションの場合は、必ずケーブルの一方のエンドがクロッキングを提供します。これは、ケーブルの DCE 側になります。デフォルトでは Cisco ルータは全て DTE デバイスです。したがって DCE デバイスとして動作させる場合は、クロッキングを提供するように設定しなければなりません。
Router#config t
Enter configuration commands, one per line. End with CTRL/Z.
Router(config)#int s0/0
Router(config-if)#clock rate 64000
Router#config t
Enter configuration commands, one per line. End with CTRL/Z.
Router(config)#int s0/0
Router(config-if)#clock rate 64000
2008年10月15日水曜日
glob -- パターンにマッチするパス名を探す
foreach (glob("*.txt") as $filename) {
echo "$filename size " . filesize($filename) . "\n";
}
?>
http://phpspot.net/php/man/php/function.glob.html
echo "$filename size " . filesize($filename) . "\n";
}
?>
http://phpspot.net/php/man/php/function.glob.html
ディレクトリの生成と削除
-ディレクトリを生成する例
mkdir ("./lockdir", 0755) || die "ディレクトリ生成失敗 : $!";
-ディレクトリを削除する例
rmdir ("./lockdir") || die "ディレクトリ削除失敗 : $!";
mkdir ("./lockdir", 0755) || die "ディレクトリ生成失敗 : $!";
-ディレクトリを削除する例
rmdir ("./lockdir") || die "ディレクトリ削除失敗 : $!";
2008年10月14日火曜日
2008年10月10日金曜日
クッキーつけてREQUESTしてRESPOSE取得
cookieないとコンテンツが取得できないとき。
use LWP;
use HTTP::Request::Common;
# requestオブジェクトを作成
my $req = GET( 'http://hogehoge.jp' );
$req->header(Cookie => 'ここにヘッダのクッキーを直接はりつけたりする。');
print "========== REQUEST ==========\n";
print $req->as_string;
# resposeオブジェクトを取得
my $ua = LWP::UserAgent->new;
my $res = $ua->request($req);
print "========== RESPONSE =========\n";
print $res->as_string;
use LWP;
use HTTP::Request::Common;
# requestオブジェクトを作成
my $req = GET( 'http://hogehoge.jp' );
$req->header(Cookie => 'ここにヘッダのクッキーを直接はりつけたりする。');
print "========== REQUEST ==========\n";
print $req->as_string;
# resposeオブジェクトを取得
my $ua = LWP::UserAgent->new;
my $res = $ua->request($req);
print "========== RESPONSE =========\n";
print $res->as_string;
2008年10月7日火曜日
crontab : ユーザごとの設定
ユーザー名一覧表示
cut -d -f1 /etc/passwd
ユーザーに変更
su user
/var/spool/cron/user に記述
crontab -e
# 毎日、日付変更の 5 分後に実行する
5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
例)指定日時(10/1_3:00)にhoge.shを実行する。
0 3 1 10 * /usr/local/bin/hoge.sh
例)毎日、2時にhoge.shを実行する。
0 2 * * * /usr/local/bin/hoge.sh
例)月初めにの5時にhoge.shを実行する。
0 5 1 * * /usr/local/sbin/hoge.sh
例)2時間ごとにhoge.shを実行する。
0 */2 * * * /usr/local/bin/hoge.sh
http://park15.wakwak.com/~unixlife/linux/sys-cron.html
cut -d -f1 /etc/passwd
ユーザーに変更
su user
/var/spool/cron/user に記述
crontab -e
# 毎日、日付変更の 5 分後に実行する
5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1
例)指定日時(10/1_3:00)にhoge.shを実行する。
0 3 1 10 * /usr/local/bin/hoge.sh
例)毎日、2時にhoge.shを実行する。
0 2 * * * /usr/local/bin/hoge.sh
例)月初めにの5時にhoge.shを実行する。
0 5 1 * * /usr/local/sbin/hoge.sh
例)2時間ごとにhoge.shを実行する。
0 */2 * * * /usr/local/bin/hoge.sh
http://park15.wakwak.com/~unixlife/linux/sys-cron.html
2008年10月6日月曜日
2008年10月5日日曜日
Linux:ハードディスクを増設したい
Linuxをファイルサーバとして利用していると,「/home」などのディレクトリを別のハードディスクに移動したいことがある。そんな時は,新たにハードディスクを増設して任意のマウントポイントを作成すればよい。
http://www.itmedia.co.jp/help/tips/linux/l0112.html
http://www.itmedia.co.jp/help/tips/linux/l0112.html
2008年10月2日木曜日
jQuery :HTMLが読み込み終わった後に実行する
jQueryでは,HTMLが読み込み終わった後に実行するコードを,onload ではなく, $(function(){}) を利用して実行します.
<script type="text/javascript">
<!--
$(function(){
$("<div class='hoge'>ああああ</div>").appendTo("body");
});
// --></script>
<script type="text/javascript">
<!--
$(function(){
$("<div class='hoge'>ああああ</div>").appendTo("body");
});
// --></script>
2008年10月1日水曜日
VIEWのDEFINERユーザーの変更方法
SHOW CREATE VIEW v_table
でviewを確認。
-------------
CREATE
ALGORITHM=UNDEFINED
DEFINER=`otheruser`@`otherhost` SQL SECURITY DEFINER
VIEW
v_table
AS
select count(table.id) AS id_count
from table
where (table.id is not null);
-------------
CREATEをALTERに変更
DEFINER=~を変更
-------------
ALTER
ALGORITHM=UNDEFINED
DEFINER=`user`@`localhost` SQL SECURITY DEFINER
VIEW
v_table
AS
select count(table.id) AS id_count
from table
where (table.id is not null);
-------------
実行。
でviewを確認。
-------------
CREATE
ALGORITHM=UNDEFINED
DEFINER=`otheruser`@`otherhost` SQL SECURITY DEFINER
VIEW
v_table
AS
select count(table.id) AS id_count
from table
where (table.id is not null);
-------------
CREATEをALTERに変更
DEFINER=~を変更
-------------
ALTER
ALGORITHM=UNDEFINED
DEFINER=`user`@`localhost` SQL SECURITY DEFINER
VIEW
v_table
AS
select count(table.id) AS id_count
from table
where (table.id is not null);
-------------
実行。
2008年9月30日火曜日
Linuxでフォルダ名で検索(findコマンド)
find [path] -name '[フォルダ名(正規表現)]' -type d
http://javanime.blogspot.com/2008/01/linuxfind.html
http://javanime.blogspot.com/2008/01/linuxfind.html
2008年9月29日月曜日
2008年9月25日木曜日
PHP - $_REQUEST
$_REQUEST には$_GET, $_POST, $_COOKIEの内容が連想配列として格納される。GETメソッド,POSTメソッドで渡される引数に加え、クッキーの変数も設定される。PHP4.1.0より前のバージョンでは使用することができない。
2008年9月24日水曜日
2008年9月23日火曜日
ビデオコーデックのインストール
DivX / Xvid / WMV / x264 / Lame MP3 ... 各種コーデックの導入
http://www.backupstreet.com/tools/setup-codecs.html
http://www.backupstreet.com/tools/setup-codecs.html
2008年9月20日土曜日
2008年9月16日火曜日
PHPでcdbファイル読み込み
$cdbid = dba_open("test.cdb", "r", "cdb");
$key = dba_firstkey ( $cdbid );
$cols[] = dba_fetch($key,$cdbid);
while($key = dba_nextkey ( $cdbid )){
$cols[] = dba_fetch($key,$cdbid);
}
print_r($cols);
?>
$key = dba_firstkey ( $cdbid );
$cols[] = dba_fetch($key,$cdbid);
while($key = dba_nextkey ( $cdbid )){
$cols[] = dba_fetch($key,$cdbid);
}
print_r($cols);
?>
2008年9月15日月曜日
2008年9月12日金曜日
2008年9月11日木曜日
SSLのページでSoftBank携帯だと絵文字が表示されない場合がある
「メールに記載されたURLが
https://example.com/
な直接SSLのページのURLだと絵文字表示されないよ。」
と教えていた。
どうやら、一度HTTPのページを経由しないと
絵文字を表示できないらしい。
http://blog.livedoor.jp/haruta_makoto/archives/50187441.html
https://example.com/
な直接SSLのページのURLだと絵文字表示されないよ。」
と教えていた。
どうやら、一度HTTPのページを経由しないと
絵文字を表示できないらしい。
http://blog.livedoor.jp/haruta_makoto/archives/50187441.html
2008年9月10日水曜日
2008年9月8日月曜日
PHPで相対パスから絶対URL(URI)を作成する
元となるURLとそれに対する相対パスを指定すると絶対URLを作成するというやつです。
function make_uri($base='', $rel_path=''){
$parse=array();
$parse=parse_url($base);
if (preg_match('/^https\:\/\//',$rel_path) ){
return $rel_path;
}
elseif ( preg_match('/^\/.+$/', $rel_path) ){
return $parse['scheme'].'://'.$parse['host'].$rel_path;
}
else{
$a=split('/',dirname($parse['path']));
$b=split('/',$rel_path);
foreach ($b as $v){
if ($v=='.'){}
elseif($v=='..'){ array_pop($a); }
else{ array_push($a,$v); }
}
$path=join('/',$a);
return $parse['scheme'].'://'.$parse['host'].$path;
}
}
http://logic.stepserver.jp/data/archives/501.html
function make_uri($base='', $rel_path=''){
$parse=array();
$parse=parse_url($base);
if (preg_match('/^https\:\/\//',$rel_path) ){
return $rel_path;
}
elseif ( preg_match('/^\/.+$/', $rel_path) ){
return $parse['scheme'].'://'.$parse['host'].$rel_path;
}
else{
$a=split('/',dirname($parse['path']));
$b=split('/',$rel_path);
foreach ($b as $v){
if ($v=='.'){}
elseif($v=='..'){ array_pop($a); }
else{ array_push($a,$v); }
}
$path=join('/',$a);
return $parse['scheme'].'://'.$parse['host'].$path;
}
}
http://logic.stepserver.jp/data/archives/501.html
2008年9月5日金曜日
sitemap.xmlからurl抜き出してテキストに保存
use utf8;
open(FILEHANDLE, 'sitemap.xml');
$i=0;
while($line = <FILEHANDLE> ){
if($line =~ /<loc>(.+?)<\/loc>/){
$source .= $1."\n";
}
}
close(IN);
print $source;
open(OUT, "> url.txt");
print(OUT $source);
close(OUT);
open(FILEHANDLE, 'sitemap.xml');
$i=0;
while($line = <FILEHANDLE> ){
if($line =~ /<loc>(.+?)<\/loc>/){
$source .= $1."\n";
}
}
close(IN);
print $source;
open(OUT, "> url.txt");
print(OUT $source);
close(OUT);
2008年9月4日木曜日
Class::Accessor
package Class;
use base qw( Class::Accessor::Fast );
__PACKAGE__->mk_accessors( qw(X Y) );
# オブジェクトを作成して返す
sub new{
my $class = shift;
my $self = {
X => 10,
Y => 100,
};
return bless $self, $class;
}
------------------
use Class;
my $obj = new Class;
$aa = $obj->X;#引数をゲット
print $aa;
print "\n";
$obj->X(200);#引数をセット
print $obj->X;
-----------
10
200
use base qw( Class::Accessor::Fast );
__PACKAGE__->mk_accessors( qw(X Y) );
# オブジェクトを作成して返す
sub new{
my $class = shift;
my $self = {
X => 10,
Y => 100,
};
return bless $self, $class;
}
------------------
use Class;
my $obj = new Class;
$aa = $obj->X;#引数をゲット
print $aa;
print "\n";
$obj->X(200);#引数をセット
print $obj->X;
-----------
10
200
2008年9月2日火曜日
use base qw(Human)
use base は、引数に与えられたモジュールを require しますので、use をする必要はありません。
これによって、Bakerクラスは、Humanクラスのメソッドを継承出来ます。
http://www.rwds.net/kuroita/program/Perl_oo.html
これによって、Bakerクラスは、Humanクラスのメソッドを継承出来ます。
http://www.rwds.net/kuroita/program/Perl_oo.html
2008年9月1日月曜日
MySQL複数行 INSERT
INSERT INTO table (id, name) VALUES (1,"いち"),(2,"に"),(3,"さーん!!");
http://d.hatena.ne.jp/tech_onoue/20080124/1201222762
http://d.hatena.ne.jp/tech_onoue/20080124/1201222762
2008年8月31日日曜日
2008年8月29日金曜日
携帯用htmlの例1
知識ナビ
<a href="">知識ナビ</a><br>
<div Align="right"><a href="#con"><font color="#3366FF" size="1">▼Contentsへ</font></a></div>
┗ああああああを正しく知ろう
<font color="#333399" size="1">┗ああああああを正しく知ろう</font><br>
<p>◆このサイトについて</p>
<hr color="#ff9999" size="3">
<a href="">知識ナビ</a><br>
<div Align="right"><a href="#con"><font color="#3366FF" size="1">▼Contentsへ</font></a></div>
┗ああああああを正しく知ろう
<font color="#333399" size="1">┗ああああああを正しく知ろう</font><br>
◆このサイトについて
<p>◆このサイトについて</p>
<hr color="#ff9999" size="3">
コードをUTF-8で記述して、shiftjisで出力例
use utf8;
use Encode;
binmode STDOUT, ":encoding(shiftjis)";
$hoge = "ほげ";
print utf8::is_utf8($hoge) ? 'UTF-8 Flag' : 'not UTF-8 Flag';
#print encode("shiftjis", $hoge);
print "\n";
print $hoge;
print "\n";
print "あひゃひゃひゃ";
use Encode;
binmode STDOUT, ":encoding(shiftjis)";
$hoge = "ほげ";
print utf8::is_utf8($hoge) ? 'UTF-8 Flag' : 'not UTF-8 Flag';
#print encode("shiftjis", $hoge);
print "\n";
print $hoge;
print "\n";
print "あひゃひゃひゃ";
2008年8月28日木曜日
2008年8月27日水曜日
2008年8月22日金曜日
phpの文字コード変換で文字化け
phpの文字コード変換で文字化け
utf-8でコーディングしていて、
携帯用のサイトなのでShift-JISに変換して
サイトに出力しようと思っています。
$out = mb_convert_encoding($out, "SJIS", "UTF-8");
のようにしてみて、$outをechoしたのですが、
文字が化けてしまいます。
UTF-8のBOMに苦しむ
PHP で UTF-8 に付いている BOM を削除する方法
utf-8でコーディングしていて、
携帯用のサイトなのでShift-JISに変換して
サイトに出力しようと思っています。
$out = mb_convert_encoding($out, "SJIS", "UTF-8");
のようにしてみて、$outをechoしたのですが、
文字が化けてしまいます。
UTF-8のBOMに苦しむ
PHP で UTF-8 に付いている BOM を削除する方法
3D、ゲーム、物理エンジン、トゥイーンなど、ActionScript3用便利ライブラリ集
3D、ゲーム、物理エンジン、トゥイーンなど、ActionScript3用便利ライブラリが紹介されていました。
http://phpspot.org/blog/archives/2008/08/3dactionscript3.html
http://phpspot.org/blog/archives/2008/08/3dactionscript3.html
2008年8月21日木曜日
HTML::TagParser その2
use HTML::TagParser;
use Encode;
my $html = HTML::TagParser->new( "keyword.html" );
my @list = $html->getElementsByTagName( "div" );
for my $elem ( @list ) {
print encode('shiftjis', decode('utf-8', $elem->innerText)) if ref $elem;
print "\n";
}
use Encode;
my $html = HTML::TagParser->new( "keyword.html" );
my @list = $html->getElementsByTagName( "div" );
for my $elem ( @list ) {
print encode('shiftjis', decode('utf-8', $elem->innerText)) if ref $elem;
print "\n";
}
Encode その2
utf8 → sjis に変換
---------------
use Encode;
my $str = "テスト元の文字コードは utf8'";
print $str;
print "\n";
$str = decode('utf-8', $str);
$str = encode('shiftjis', $str);
print $str;
------------------
use Encode;
my $str = "テスト元の文字コードは utf8'";
print $str;
print "\n";
print encode('shiftjis', decode('utf-8', $str));
---------------
でも可。
---------------
use Encode;
my $str = "テスト元の文字コードは utf8'";
print $str;
print "\n";
$str = decode('utf-8', $str);
$str = encode('shiftjis', $str);
print $str;
------------------
use Encode;
my $str = "テスト元の文字コードは utf8'";
print $str;
print "\n";
print encode('shiftjis', decode('utf-8', $str));
---------------
でも可。
JcodeとEncode
utf8 → sjis に変換
------------
use Jcode;
$str = "テスト元の文字コードは utf8'";
print $str;
Jcode::convert( $str , "sjis", "utf8" );
print $str;
-----------
use Encode;
$str = "テスト元の文字コードは utf8'";
print $str;
Encode::from_to($str, 'utf8', 'shiftjis');
print $str;
------------
use Jcode;
$str = "テスト元の文字コードは utf8'";
print $str;
Jcode::convert( $str , "sjis", "utf8" );
print $str;
-----------
use Encode;
$str = "テスト元の文字コードは utf8'";
print $str;
Encode::from_to($str, 'utf8', 'shiftjis');
print $str;
2008年8月20日水曜日
HTML::TagParser - HTMLソースの解析/属性値やinnerTextの取得
DOM 風のインターフェースで、各 HTML タグごとに属性値やinnerText値を取得できます
http://www.kawa.net/works/perl/html/tagparser.html
http://www.kawa.net/works/perl/html/tagparser.html
Yahoo!が提供するレイアウト用CSSライブラリ
Yahoo!が提供するYahoo! UI Library。
このCSSライブラリを使うことで、ページの複雑なグリッドレイアウトが比較的容易に作れます。
更に、このライブラリで作ったページは大体のブラウザに対応しているというので動作確認の手間も省けそうです。
基本のHTMLを書いておけば、classの変更で簡単にレイアウト変更が可能な形になっているようです。
http://phpspot.org/blog/archives/2006/05/yahoocss.html
このCSSライブラリを使うことで、ページの複雑なグリッドレイアウトが比較的容易に作れます。
更に、このライブラリで作ったページは大体のブラウザに対応しているというので動作確認の手間も省けそうです。
基本のHTMLを書いておけば、classの変更で簡単にレイアウト変更が可能な形になっているようです。
http://phpspot.org/blog/archives/2006/05/yahoocss.html
2008年8月19日火曜日
HTML::Parser使い方
my @parsed = ();
&parseHTML($html);
#httpまたはhttpsからはじまるURLのみがprintされる
print @parsed, "\n\n";
sub parseHTML {
my $p = HTML::Parser->new(
api_version => 3,
start_h => [
sub {
my ($tagname, $attr, $text) = @_;
if ($tagname eq 'a') {
my $href = $attr->{href};
if ($href =~ /https?:/) {
push(@parsed, $href);
}
}
}, "tagname, attr, text"],
marked_sections => 1,
);
$p->parse(shift);
}
----------------------
コマンドからの入力
use HTML::Parser;
use Encode qw//;
my $html = Encode::decode("utf8", do { local $/ = undef; <>; });
my @parsed = ();
&parseHTML($html);
#httpまたはhttpsからはじまるURLのみがprintされる
print @parsed, "\n\n";
sub parseHTML {
my $p = HTML::Parser->new(
api_version => 3,
start_h => [
sub {
my ($tagname, $attr, $text) = @_;
if ($tagname eq 'a') {
my $href = $attr->{href};
push(@parsed, $href);
}
}, "tagname, attr, text"],
marked_sections => 1,
);
$p->parse(shift);
}
&parseHTML($html);
#httpまたはhttpsからはじまるURLのみがprintされる
print @parsed, "\n\n";
sub parseHTML {
my $p = HTML::Parser->new(
api_version => 3,
start_h => [
sub {
my ($tagname, $attr, $text) = @_;
if ($tagname eq 'a') {
my $href = $attr->{href};
if ($href =~ /https?:/) {
push(@parsed, $href);
}
}
}, "tagname, attr, text"],
marked_sections => 1,
);
$p->parse(shift);
}
----------------------
コマンドからの入力
use HTML::Parser;
use Encode qw//;
my $html = Encode::decode("utf8", do { local $/ = undef; <>; });
my @parsed = ();
&parseHTML($html);
#httpまたはhttpsからはじまるURLのみがprintされる
print @parsed, "\n\n";
sub parseHTML {
my $p = HTML::Parser->new(
api_version => 3,
start_h => [
sub {
my ($tagname, $attr, $text) = @_;
if ($tagname eq 'a') {
my $href = $attr->{href};
push(@parsed, $href);
}
}, "tagname, attr, text"],
marked_sections => 1,
);
$p->parse(shift);
}
2008年8月18日月曜日
PerlでHTMLタグの除去
#コマンドライン引数で与えられたファイルから読み込んで出力。
#ファイルがUTF-8、出力がShift_JISの想定。
use strict;
use warnings;
use Encode qw//;
use HTML::Parser;
my $html_str = Encode::decode("utf8", do { local $/ = undef; <>; });
my $parser = HTML::Parser->new(
api_version => 3,
text_h => [sub { print Encode::encode("shiftjis", shift); }, "dtext"]
);
$parser->parse($html_str);
#ファイルがUTF-8、出力がShift_JISの想定。
use strict;
use warnings;
use Encode qw//;
use HTML::Parser;
my $html_str = Encode::decode("utf8", do { local $/ = undef; <>; });
my $parser = HTML::Parser->new(
api_version => 3,
text_h => [sub { print Encode::encode("shiftjis", shift); }, "dtext"]
);
$parser->parse($html_str);
2008年8月16日土曜日
2008年8月15日金曜日
CDATAセクション--JavaScript
JavaScriptブロックをCDATAセクションで囲み、さらにCDATAセクションをJavaScriptのコメントを使って「コメントアウト」します。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>JavaScript Code Block Example</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<script type="text/javascript">
//<![CDATA[
var dt = Date();
var msg ='<h3>Hello, World! Today is ' + dt + '</h3>';
document.writeln(msg);
//]]>
</script>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>JavaScript Code Block Example</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<script type="text/javascript">
//<![CDATA[
var dt = Date();
var msg ='<h3>Hello, World! Today is ' + dt + '</h3>';
document.writeln(msg);
//]]>
</script>
</body>
</html>
CDATAセクション
CDATAセクションは、という文字列で終わる。CDATAセクションの内部には、XMLで利用可能な文字をすべて記述することができる。唯一の例外は]]>という文字列だけで、これを記述することはできない。記述しても、CDATAセクションの終了を示すと解釈されてしまう。
http://www.atmarkit.co.jp/aig/01xml/cdata.html
http://www.atmarkit.co.jp/aig/01xml/cdata.html
ディレクトリを再帰的にたどりファイル一覧を取得したい
;#
;#ファイル表示
;#
use File::Find;
#-- ディレクトリを指定(複数の指定可能) --#
@directories_to_search = ('./');
#-- 実行 --#
find(\&wanted, @directories_to_search);
#--------------------------------------------
#ファイルが見つかる度に呼び出される
#--------------------------------------------
sub wanted{
print $File::Find::dir, '/'; #カレントディレクトリ
print $_; #ファイル名
print "\n";
#フルパスのファイル名
#print $File::Find::name, "\n";
}
実行結果
./.
./index.cgi
./define.pm
./dbdocs
./js
./js/index.js
./note
./note/index.cg
./note/add.cgi
./note/view.cgi
./note/del.cgi
./css
./css/view.css
http://katsubemakito.net/cgiperl/2006/10/perl2.html
;#ファイル表示
;#
use File::Find;
#-- ディレクトリを指定(複数の指定可能) --#
@directories_to_search = ('./');
#-- 実行 --#
find(\&wanted, @directories_to_search);
#--------------------------------------------
#ファイルが見つかる度に呼び出される
#--------------------------------------------
sub wanted{
print $File::Find::dir, '/'; #カレントディレクトリ
print $_; #ファイル名
print "\n";
#フルパスのファイル名
#print $File::Find::name, "\n";
}
実行結果
./.
./index.cgi
./define.pm
./dbdocs
./js
./js/index.js
./note
./note/index.cg
./note/add.cgi
./note/view.cgi
./note/del.cgi
./css
./css/view.css
http://katsubemakito.net/cgiperl/2006/10/perl2.html
ファイル演算子「 -f 」で、通常ファイルの存在を確認する。
#!/usr/bin/perl
use strict;
use warnings;
### 通常ファイルの存在を確認する。
# -f ファイル名
print "1: 通常ファイルの存在を確認する。 -f \n";
my $file = 'a.txt';
if( -f $file ){ #
print "'$file' は、存在します。\n";
}
else{
print "'$file' は、存在しません。\n";
}
__END__
http://d.hatena.ne.jp/perlcodesample/20080505/1209997969
use strict;
use warnings;
### 通常ファイルの存在を確認する。
# -f ファイル名
print "1: 通常ファイルの存在を確認する。 -f \n";
my $file = 'a.txt';
if( -f $file ){ #
print "'$file' は、存在します。\n";
}
else{
print "'$file' は、存在しません。\n";
}
__END__
http://d.hatena.ne.jp/perlcodesample/20080505/1209997969
様々なイラストレーターのテクニックや素材を紹介する「イラレラボ」
Designdevelopではデザインに役立つTipsを公開してきましたが、今回紹介する「イラレラボ illustrator-labo」はイラストレーターに特化してTipsや素材などを紹介配布されているサイトです。
http://design-develop.net/design/illustrator-lab.html#more-1022
http://design-develop.net/design/illustrator-lab.html#more-1022
2008年8月14日木曜日
2008年8月13日水曜日
2008年8月11日月曜日
Data::Dumper
#!/usr/bin/perl
use Data::Dumper;
$a = 'abc';
if(a eq 'abc') {
print Dumper $a; # この行はデバッグコードだからあえてインデントしない
$a = 'xyz';
print Dumper $a; # この行はデバッグコードだからあえてインデントしない
}
1;
use Data::Dumper;
$a = 'abc';
if(a eq 'abc') {
print Dumper $a; # この行はデバッグコードだからあえてインデントしない
$a = 'xyz';
print Dumper $a; # この行はデバッグコードだからあえてインデントしない
}
1;
2008年8月10日日曜日
2008年8月9日土曜日
2008年8月7日木曜日
2008年8月2日土曜日
2008年8月1日金曜日
Perl ブーリアン
Perl 5 では真理値を表す定数は組み込まれていないが、Perl 6 では存在している。
http://ja.wikipedia.org/wiki/%E3%83%96%E3%83%BC%E3%83%AA%E3%82%A2%E3%83%B3%E5%9E%8B#Perl
http://ja.wikipedia.org/wiki/%E3%83%96%E3%83%BC%E3%83%AA%E3%82%A2%E3%83%B3%E5%9E%8B#Perl
2008年7月30日水曜日
2008年7月29日火曜日
2008年7月28日月曜日
2008年7月27日日曜日
File::Spec - ファイル名に対する可搬性のある処理
OSに依存しないファイル名を作成する File::Spec->catfileCommentsAdd Star
http://d.hatena.ne.jp/perlcodesample/20080516/1210952319
File::Spec->catdir()
ディレクトリの連結
print File::Spec->catdir('aaa', 'bbb');
----表示----
aaa/bbb
http://d.hatena.ne.jp/perlcodesample/20080516/1210952319
File::Spec->catdir()
ディレクトリの連結
print File::Spec->catdir('aaa', 'bbb');
----表示----
aaa/bbb
Perlのtag除去処理
open(IN, "0000000.html");
while () { $source .= $_;}
close(IN);
$source =~ s/<.*?>//g;
open(OUT, "> test.html");
print(OUT $source);
close(OUT);
while (
close(IN);
$source =~ s/<.*?>//g;
open(OUT, "> test.html");
print(OUT $source);
close(OUT);
バッチファイルコマンド
# echo バッチファイルの中のメッセージの表示、非表示を切り替える
# rem 注釈行を設定する
@echo off
echo %0
echo %OS%
echo %COMSPEC%
echo %SystemRoot%
test.bat
Windows_NT
C:\Windows\system32\cmd.exe
C:\Windows
# rem 注釈行を設定する
@echo off
echo %0
echo %OS%
echo %COMSPEC%
echo %SystemRoot%
test.bat
Windows_NT
C:\Windows\system32\cmd.exe
C:\Windows
2008年7月26日土曜日
Plagger インストール
http://blog.livedoor.jp/hakin/archives/50690272.html
gmail_notify.ttが見つからないというエラーが出る
Plagger::Plugin [fatal] file error - gmail_notify.tt: not found at line 144
いわゆる「assetsの罠」です。assetsをコピーして、global:でassetsのパスを設定します。
Plagger::Plugin::Publish::Gmail [error] Error while sending emails: Undefined subroutine &MIME::Lite::extract_addrs called at /...(snip).../Plagger/Plugin/Publish/Gmail.pm line 217. のエラーが出る
MIME::Liteがバージョンアップしたことによりメソッド名が変更されたのが原因です。Plugin/Publish/Gmail.pmを http://plagger.org/trac/browser/trunk/plagger/lib/Plagger/Plugin/Publish/Gmail.pm と差し替えると動作するようになります。
gmail_notify.ttが見つからないというエラーが出る
Plagger::Plugin [fatal] file error - gmail_notify.tt: not found at line 144
いわゆる「assetsの罠」です。assetsをコピーして、global:でassetsのパスを設定します。
Plagger::Plugin::Publish::Gmail [error] Error while sending emails: Undefined subroutine &MIME::Lite::extract_addrs called at /...(snip).../Plagger/Plugin/Publish/Gmail.pm line 217. のエラーが出る
MIME::Liteがバージョンアップしたことによりメソッド名が変更されたのが原因です。Plugin/Publish/Gmail.pmを http://plagger.org/trac/browser/trunk/plagger/lib/Plagger/Plugin/Publish/Gmail.pm と差し替えると動作するようになります。
2008年7月24日木曜日
2008年7月23日水曜日
メソッドチェーン
PHPのメソッドチェーン
http://www.developer0000.jp/2007/07/03/1563/
JavaScript
魔法の鎖のつなぎ方
http://allabout.co.jp/internet/javascript/closeup/CU20071115A/
http://www.developer0000.jp/2007/07/03/1563/
JavaScript
魔法の鎖のつなぎ方
http://allabout.co.jp/internet/javascript/closeup/CU20071115A/
2008年7月22日火曜日
フリーソフトウェアライセンス
MIT License
http://ja.wikipedia.org/wiki/MIT_License
フリーソフトウェアライセンス
http://www.gnu.org/licenses/license-list.ja.html
○オープンソースの現状と問題点
http://oooug.jp/start/open/open04.html
http://ja.wikipedia.org/wiki/MIT_License
フリーソフトウェアライセンス
http://www.gnu.org/licenses/license-list.ja.html
○オープンソースの現状と問題点
http://oooug.jp/start/open/open04.html
Googleのロゴで使われているフォントは「Catull」
Googleのロゴで使われているフォントは「Catull」
font-familyプロパティは要素内の文字の表示書体となるフォントを指定します。
http://w3g.jp/css/font/font-family
font-familyプロパティは要素内の文字の表示書体となるフォントを指定します。
http://w3g.jp/css/font/font-family
UI/UXのバイブル - 書評 - About Face 3
UI (User Interface) そして UX (User Experience)にとっての本書は、CにとってのK&R 、Perlにとってのラクダ本である。すなわち、バイブルであると。
http://blog.livedoor.jp/dankogai/archives/51083470.html
http://blog.livedoor.jp/dankogai/archives/51083470.html
2008年7月20日日曜日
CSS忘れがちなとこ
タグに直接スタイルを記述
<div style="color: red;">この文字の色は赤</div>
aliceblue
#f0f8ff
lavender
#e6e6fa
lightsteelblue
#b0c4de
MogaZineロゴ色
#E6E6FA
Catull(bold)
<div style="color: red;">この文字の色は赤</div>
aliceblue
#f0f8ff
lavender
#e6e6fa
lightsteelblue
#b0c4de
MogaZineロゴ色
#E6E6FA
Catull(bold)
2008年7月16日水曜日
文字列置換 str_replace
$beginner = "初心者のためのホームページ作り";
$replace = "ホームページ作り";
$scriptphp = "PHP入門";
$word = str_replace($replace, $scriptphp, $beginner);
print($word);
str_replace、便利な所と注意点
$replace = "ホームページ作り";
$scriptphp = "PHP入門";
$word = str_replace($replace, $scriptphp, $beginner);
print($word);
str_replace、便利な所と注意点
2008年2月版web開発者のためのベストクリップ36個
ものすごいクオリティの高いものが揃っている素材サイト。
指定した色の配色パターンを導き出してくれるwebサービス
http://e0166.blog89.fc2.com/blog-entry-481.html
指定した色の配色パターンを導き出してくれるwebサービス
http://e0166.blog89.fc2.com/blog-entry-481.html
2008年7月15日火曜日
お願いのメールをサラッと書ける言い回し
●幸いです
例:「〜していただけると幸いです。」
●助かります
例:「〜ですと助かります。」
●ご検討のほど…
例:「〜の件について、ご検討のほど宜しくお願いいたします。」
●うれしいです
例:「〜をお願いできればうれしいです。」
●お力添え
例:「〜についてお力添えいただければと思っております。」
http://www.lifehacker.jp/2008/07/post_1.html
例:「〜していただけると幸いです。」
●助かります
例:「〜ですと助かります。」
●ご検討のほど…
例:「〜の件について、ご検討のほど宜しくお願いいたします。」
●うれしいです
例:「〜をお願いできればうれしいです。」
●お力添え
例:「〜についてお力添えいただければと思っております。」
http://www.lifehacker.jp/2008/07/post_1.html
2008年7月6日日曜日
シャッフル
<html>
<head>
<title>シャッフル</title>
</head>
<body>
<script language="JavaScript"><!--
data = new Array();
for (i=0; i<10; i++) data[i] = i;
for (i=0; i<10; i++) // 10はシャッフルする回数
{
n1 = Math.floor(Math.random() * 10);
n2 = Math.floor(Math.random() * 10);
n = data[n1];
data[n1] = data[n2];
data[n2] = n;
}
// 結果表示
var Message = [
"<A HREF='http://www.yahoo.co.jp/' target='_blank'>ヤフーへジャンプ</A>",
"<A HREF='http://www.infoseek.co.jp/' target='_blank'>InfoSeekへジャンプ</A>",
"<A HREF='http://www.goo.ne.jp/' target='_blank'>Goo へジャンプ</A>",
"<A HREF='http://www.yahoo.co.jp/' target='_blank'>ヤフーへジャンプ</A>",
"<A HREF='http://www.infoseek.co.jp/' target='_blank'>InfoSeekへジャンプ</A>",
"<A HREF='http://www.goo.ne.jp/' target='_blank'>Goo へジャンプ</A>",
"<A HREF='http://www.yahoo.co.jp/' target='_blank'>ヤフーへジャンプ</A>",
"<A HREF='http://www.infoseek.co.jp/' target='_blank'>InfoSeekへジャンプ</A>",
"<A HREF='http://www.infoseek.co.jp/' target='_blank'>InfoSeekへジャンプ</A>",
"<A HREF='http://www.goo.ne.jp/' target='_blank'>Goo へジャンプ</A>"
];
for (i=0; i<10; i++) document.write(Message[data[i]]+"<br>");
// --></script>
</body>
</html>
<head>
<title>シャッフル</title>
</head>
<body>
<script language="JavaScript"><!--
data = new Array();
for (i=0; i<10; i++) data[i] = i;
for (i=0; i<10; i++) // 10はシャッフルする回数
{
n1 = Math.floor(Math.random() * 10);
n2 = Math.floor(Math.random() * 10);
n = data[n1];
data[n1] = data[n2];
data[n2] = n;
}
// 結果表示
var Message = [
"<A HREF='http://www.yahoo.co.jp/' target='_blank'>ヤフーへジャンプ</A>",
"<A HREF='http://www.infoseek.co.jp/' target='_blank'>InfoSeekへジャンプ</A>",
"<A HREF='http://www.goo.ne.jp/' target='_blank'>Goo へジャンプ</A>",
"<A HREF='http://www.yahoo.co.jp/' target='_blank'>ヤフーへジャンプ</A>",
"<A HREF='http://www.infoseek.co.jp/' target='_blank'>InfoSeekへジャンプ</A>",
"<A HREF='http://www.goo.ne.jp/' target='_blank'>Goo へジャンプ</A>",
"<A HREF='http://www.yahoo.co.jp/' target='_blank'>ヤフーへジャンプ</A>",
"<A HREF='http://www.infoseek.co.jp/' target='_blank'>InfoSeekへジャンプ</A>",
"<A HREF='http://www.infoseek.co.jp/' target='_blank'>InfoSeekへジャンプ</A>",
"<A HREF='http://www.goo.ne.jp/' target='_blank'>Goo へジャンプ</A>"
];
for (i=0; i<10; i++) document.write(Message[data[i]]+"<br>");
// --></script>
</body>
</html>
toString
また、toString() というメソッドはさまざまなところで使用される。例えば、先ほどの例ではわざわざ toString() メソッドを呼び出して文字列に変換した後、その文字列を表示していた。
System.out.println(person.toString());
System.out.println メソッドには、Object 型をとるメソッドが用意されている (オーバーライドされている)。このメソッドを呼び出すと、引数に渡されたオブジェクトに対して自動的に toString() メソッドを呼び出した後、その文字列を表示する。つまり、そのままオブジェクトを渡しても同じ動作をしてくれる。
Object person = new Person("ほげほげ");
System.out.println(person);
System.out.println(person.toString());
System.out.println メソッドには、Object 型をとるメソッドが用意されている (オーバーライドされている)。このメソッドを呼び出すと、引数に渡されたオブジェクトに対して自動的に toString() メソッドを呼び出した後、その文字列を表示する。つまり、そのままオブジェクトを渡しても同じ動作をしてくれる。
Object person = new Person("ほげほげ");
System.out.println(person);
スコープ
private...自分自身が含まれるクラス内からしかアクセスできない
protected...同じパッケージ及び継承するサブクラスからしかアクセスできない。
public...全ての場所からアクセス可能。
デフォルト・アクセス...以上の何れも指定しない場合。パッケージ・アクセスとも言われる。同じパッケージに属するクラス内からしかアクセスできない。
メソッド内で記述可能な修飾子 final
メソッドに記述可能な修飾子 public protected private final synchronized (abstract) static
メソッド内インナークラスに記述可能な修飾子 abstract final
クラスに記述可能な修飾子 abstract final (public)
インナークラスに記述可能な修飾子 final private protected abstract static
インナークラス内メソッドに記述可能な修飾子 final (abstract) private protected インナークラスがstaticならstaticもok
http://www.nextindex.net/java/modify.html
protected...同じパッケージ及び継承するサブクラスからしかアクセスできない。
public...全ての場所からアクセス可能。
デフォルト・アクセス...以上の何れも指定しない場合。パッケージ・アクセスとも言われる。同じパッケージに属するクラス内からしかアクセスできない。
メソッド内で記述可能な修飾子 final
メソッドに記述可能な修飾子 public protected private final synchronized (abstract) static
メソッド内インナークラスに記述可能な修飾子 abstract final
クラスに記述可能な修飾子 abstract final (public)
インナークラスに記述可能な修飾子 final private protected abstract static
インナークラス内メソッドに記述可能な修飾子 final (abstract) private protected インナークラスがstaticならstaticもok
http://www.nextindex.net/java/modify.html
2008年3月28日金曜日
誕生日から年齢の範囲のidを返す
SELECT
member_id,
(DATE_FORMAT(NOW(), '%Y%m%d')-DATE_FORMAT(member_birth, '%Y%m% d'))/10000 age
FROM member_table
WHERE
(DATE_FORMAT(NOW(), '%Y%m%d')-DATE_FORMAT(member_birth
, '%Y%m%d'))/10000 <= 30 AND (DATE_FORMAT(NOW(), '%Y%m%d')-DATE_FORMAT(member_birth , '%Y%m%d'))/10000 >= 20
member_id,
(DATE_FORMAT(NOW(), '%Y%m%d')-DATE_FORMAT(member_birth, '%Y%m% d'))/10000 age
FROM member_table
WHERE
(DATE_FORMAT(NOW(), '%Y%m%d')-DATE_FORMAT(member_birth
, '%Y%m%d'))/10000 <= 30 AND (DATE_FORMAT(NOW(), '%Y%m%d')-DATE_FORMAT(member_birth , '%Y%m%d'))/10000 >= 20
登録:
投稿 (Atom)