Perl コーディング初心者質問コーナー Part27
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
03/08/14 06:06ID:xOc/6R60【投稿する際の注意】
質問するときは内容をよく吟味してから投稿してください。
1: 自分はこう言う事がしたい。
2: それでこんな風にやってみたが・・・
3: こんなエラーが出て上手く行かなかった。
最低でも1と3が無いと誰も答えられないよ。
ソース貼る時は、全角スペースでインデント忘れずに。
良い回答は良い質問から。一緒に勉強しましょう。
関連スレ
【Perl上級者コーナーPart01】
http://pc2.2ch.net/test/read.cgi/php/1024741312/
CGI: Common Gateway Interface part 11
http://pc2.2ch.net/test/read.cgi/php/1055597189/
【Perl,CGI】参考書籍 第三版
http://pc2.2ch.net/test/read.cgi/php/1030209573/
【 スクリプト改造工房 PART 6 】
http://pc2.2ch.net/test/read.cgi/php/1047806915/
過去ログやお勧めサイトは >>2-10
0320nobodyさん
03/08/21 12:36ID:DAq1ln5w# クッキー書き込み
# &cookie_regist(クッキー名, データ, 日数);
# ・クッキー名 ⇒ クッキーの名称、半角英数字
# ・データ ⇒ キー!値,キー!値,キー!値 の書式で整えられたデータ
# ・日数 ⇒ 保存しておく日数(ただし、sessionと入力すると、
# セッションクッキーとなる(ブラウザを閉じたらクッキーは削除される)
# ★注!:キー値に「!と=と;は使わないこと」
#例文:
#&cookie_regist("session","sessionid!246",1/24);
#-----------------------------------------------------------------------------
sub cookie_regist(){
local($cookiename, $cookievalue, $cookiedate) = @_;
($sec, $min, $hour, $mday, $mon, $year, $wday) = gmtime(time + 60*60*24* $cookiedate );
@mons = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
$date_gmt = sprintf("%s, %02d\-%s\-%04d %02d:%02d:%02d GMT",
$week[$wday], $mday, $mons[$mon], $year+1900, $hour, $min, $sec);
if ($cookiedate ne "session"){
print "Set-Cookie: $cookiename=$cookievalue; expires=$date_gmt\n";
} else{
print "Set-Cookie: $cookiename=$cookievalue\n";
}
}
という関数をつくったのですが、(長いので次のレスに続きます)
0321320
03/08/21 12:38ID:DAq1ln5w#=============================================================================
# クッキー書き込み
# &cookie_regist(クッキー名, データ, 日数);
# ・クッキー名 ⇒ クッキーの名称、半角英数字
# ・データ ⇒ キー!値,キー!値,キー!値 の書式で整えられたデータ
# ・日数 ⇒ 保存しておく日数(ただし、sessionと入力すると、
# セッションクッキーとなる(ブラウザを閉じたらクッキーは削除される)
# ★注!:キー値に「!と=と;は使わないこと」
#例文:
#&cookie_regist("session","sessionid!246",1/24);
#-----------------------------------------------------------------------------
sub cookie_regist(){
local($cookiename, $cookievalue, $cookiedate) = @_;
($sec, $min, $hour, $mday, $mon, $year, $wday) = gmtime(time + 60*60*24* $cookiedate );
@mons = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
$date_gmt = sprintf("%s, %02d\-%s\-%04d %02d:%02d:%02d GMT",
$week[$wday], $mday, $mons[$mon], $year+1900, $hour, $min, $sec);
if ($cookiedate ne "session"){
print "Set-Cookie: $cookiename=$cookievalue; expires=$date_gmt\n";
} else{
print "Set-Cookie: $cookiename=$cookievalue\n";
}
}
という関数をつくったのですが、(長いので次のレスに続きます)
0322320
03/08/21 12:41ID:DAq1ln5wみたいにしてクッキーをセットすると、
ネスケでは、180日有効なクッキーがセットされるのですが、
IEだと、セッションクッキー(ブラウザを閉じると削除されるクッキー)に
なってしまいます。
どこがおかしいのでしょうか?
0323320
03/08/21 13:29ID:???@mons = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
のあとの
@week = ('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
を消してしまっていたことが原因でした。
しかし、ネスケでexpireを強引に認識してくれて、IEだと無視されるとは・・・
(逆なら納得いくんだが)
ともかく解決しました。すみません。
0324nobodyさん
03/08/21 15:29ID:pPohBqhp例えば
10×1.05 をやると 10.5
になるのですがこれの小数点以下を切り捨てたいのですが、どうすれ
ば良 いのでしょう。number_format関数を使えば小数点以下の修正が
行なえるというのは知っているのですが、number_format関数を使うと
1000などの数値の時、1,000となり","(カンマ)が表示されてしまい、数
値として認識しなくなってしまいます。
この計算の後にもさらに計算をしたいので、数値として認識させなけれ
ばならないので、こまっています。
どうぞご指導をよろしくおねがいします。
0325nobodyさん
03/08/21 15:32ID:???ここPerlだしPHPよく知らんけど、
$formated_number と $number と別にすればいいんでないの?
0326nobodyさん
03/08/21 15:34ID:???floatだっけか忘れた。
0327nobodyさん
03/08/21 15:42ID:pPohBqhp※ちなみに$numberと$formated_numberを使ってみたところfatal error
になっちゃいました。
すみません。迷惑かけました。ありがとうございました。
0328nobodyさん
03/08/21 17:56ID:DAq1ln5wという文字列に対して、全角数字を半角数字に置換したいのですが、
どうすればいいのでしょうか?
(文字列も、スクリプト自体も、文字コードはEUCです)
0329nobodyさん
04/03/26 19:55ID:???■ このスレッドは過去ログ倉庫に格納されています