【待望】PerlユーザのためのPHP入門 (601レス)
上下前次1-新
128: 俺様 03/03/05 10:25 ID:RSVIcXg3(1/7) AAS
>>126
まあ、まずはOOを使うメリットをよく考えないと。
モジュールでも作るのか?
>>127
OOの入門レベルなら
プログラミング全体で見てもやはり入門であることには違いない。
129: 03/03/05 10:41 ID:??? AAS
130(1): 俺様 03/03/05 10:50 ID:RSVIcXg3(2/7) AAS
では、ファイル操作について簡単な説明をしておこう。
ファイルの開き方は、PerlではopenだったがPHPではfopenになる。
読み取りや書き込みなどのモードもPerlとは仕様が変わり
C,Java寄りになっているので注意しよう。
PHP:
$fp = fopen(filename, mode); //ファイルポインタの位置が返る
Perl:
open(FILE, filename); //返り値は正常時が1、失敗だと0
オープンモードの選択方法がPerlだと+>みたいのをファイル名に直接つけていたのが
PHPだと2つ目の引数として別に記述するようになった。
ファイルハンドラは引数に記述するのではなく、
返り値になったのでそこも注意しよう。
具体的な仕様はマニュアルを参照。
外部リンク[php]:www.php.net
131(1): 03/03/05 10:52 ID:??? AAS
>>130
なぁ、お前学校行ってないの?
132(1): 俺様 03/03/05 11:07 ID:RSVIcXg3(3/7) AAS
では超簡易カウンタを作ってみよう。
仕様としてはファイルcount.txtの1行目にカウンタ数値を書くだけのものだ。
まず予めcount.txtを作成して0を記述しておくこと。
<?php
$fp = fopen("count.txt","r");
//count.txtを読み出しモードで開く。
//$fpはファイルポインタであり、rの場合ファイルの先頭の位置が返される。
$count = fgets($fp); //改行かファイルの終端まで読みこんで$countへ代入。
fclose($fp); //いったん閉じる
$count++;
$fp = fopen("count.txt","w"); //書き込みモード
fwrite($fp,$count); //書き込み。
fclose($fp);
?>
<html>
<body>
貴方は<?php print $count; ?>人目の俺様の弟子じゃ。
</body>
</html>
133: 俺様 03/03/05 11:16 ID:RSVIcXg3(4/7) AAS
>>131
オマエモナー
134: 俺様 03/03/05 11:25 ID:RSVIcXg3(5/7) AAS
では明日はいよいよフォームの処理を行おう。
135(1): 俺様 03/03/05 11:27 ID:RSVIcXg3(6/7) AAS
ちなみにレッツPHPにファイルを1回しか開かなくていいバージョンが書かれているな。
外部リンク:php.s3.to
同時アクセスの際の弊害が置きにくくなるからそっちの方がいいだろう。
flockもしておくこと。
136: 俺様 03/03/05 11:56 ID:5JBlRiko(1/3) AAS
因みに、PHPはHTML内に埋め込むことができると言うのを
利点として主張されることも多い。これは以下のように書けるからである。
<?php $title = "タイトル"; ?>
<html>
<head>
<title><?php $title ?></title>
</head>
<body>
俺様のHTMLドキュメント
</body>
</html>
このように必要な部分だけをPHPスクリプトとして認識させることが出来る。
コメントについても書いちゃおう。
Perlでは#のみだったがPHPではJavaなどで使われている以下の形式も可能である。
// コメント。#と意味は同じ。
/* これもコメント。複数行をコメントか出来るのが特徴。
つまりここもコメントになる。 */
137(2): 03/03/05 13:34 ID:E53JqQ+I(1) AAS
PHPには「〜?〜:〜」に該当する関数等はありまつか?
下のようなのが沢山あるのでなるべくif文は使いたくないんです。
例1:(Perl)
printf "<a href=\"%s\" target=\"%s\">%s</a>\n",&link($a?$b:$c),$d?"_blank":"_top",$d?"新しいウィンドウで開く":($e?"次のページ":"更新");
138(2): 03/03/05 13:39 ID:??? AAS
条件演算子としては、他に "?:" (または trinary) 演算子があります。 この演算子の動作は、Cまたは他の多く言語と同じです。
(式1) ? (式2) : (式3);
この式は、式1 がTRUEの場合に 式2 を、 式1 がFALSEの場合に 式3 を値とします。
と、PHPマニュアルからまんま転載してみる。
139(1): 137 03/03/05 13:44 ID:??? AAS
>>139
ありがとう。
PHPに乗り換えようかと思います。
140(1): 俺様 03/03/05 14:02 ID:5JBlRiko(2/3) AAS
PHPによるHTTP認証のフックは、Apacheモジュールとして実行した時のみ 有効で、
CGI版では利用できません。Apache モジュールPHPスクリプトにお いて、header()
関数を使用して "Authentication Required" メッセージをクライアントブラウザに送る
ことが可能です。 これにより、クライアントブラウザにユーザー名とパスワードを入力する ウイ
ンドウがポップアップ表示されます。一度、ユーザーがユーザー名と パスワードを
入力すると、PHP スクリプトを含むその URL は、次回以降、 定義済みの変数 PHP_AUTH_USER, PHP_AUTH_PW, and PHP_AUTH_TYPEにそれぞれユーザー名
、 パスワード、認証型を入力してコールされます。 定義済みの変数は、配列 $_SE
RVER および $HTTP_SERVER_VARS でアクセス可能です。 "Basic" 認証のみ
がサポートさ
れています。詳細は、 header()を参照下さい。
141: 俺様 03/03/05 19:13 ID:RSVIcXg3(7/7) AAS
>>140
俺様の騙りがついに
キタ━(゚∀゚)━( ゚∀)━( ゚)━( )━(゚ )━(∀゚ )━(゚∀゚)━!!!!
142: 03/03/05 19:16 ID:juhSxd8a(1) AAS
外部リンク:www.agemasukudasai.com
143(1): 03/03/05 21:23 ID:??? AAS
つづきまだー?
144(1): 03/03/05 22:26 ID:??? AAS
>>132
ファイルロックとかしなくても大丈夫?
145(4): 03/03/05 22:51 ID:??? AAS
$a : $b ? $c = 1;
PHPはこれ書ける?
146(2): 俺様 03/03/05 23:06 ID:MFbIbSdy(1/2) AAS
>>143
まあ、1日にいくつも書くの疲れるから。
あせらず明日まで待ってクレイ。
>>144
実際に使うなら、ファイルロックしないと( ゚д゚;)マズーだろうな。
シンプルカウンタは>>135のを使ったほうが良い。
>>145
?と:が逆じゃん?
>>138
147(2): 03/03/05 23:17 ID:5JBlRiko(3/3) AAS
>>145
三項演算子まともに使えない自作自演俺様晒しage
148(1): 俺様 03/03/05 23:47 ID:MFbIbSdy(2/2) AAS
>>147
ん?>>146で言った逆っての間違ってたか?
そんなことはないと思うが・・・
149: 03/03/06 00:26 ID:??? AAS
>>145-148
てか>>137-138で既出だし。
150(4): 03/03/06 00:48 ID:??? AAS
ふふふ。ひっかかったか。
Perlは三項演算子を左辺値として使える。
って全然利用価値はないけど、知ってるか試しただけ。
151: 03/03/06 00:49 ID:??? AAS
あぁ。$a ? $b : $c だな。・・
152(1): 03/03/06 01:02 ID:uZwldhHh(1) AAS
>>150
ひっかかってた俺様晒しage
153: 03/03/06 01:05 ID:??? AAS
>>152
( ´,_ゝ`)プ
154: 俺様 03/03/06 01:07 ID:ZBXb+hSM(1/3) AAS
>>150
何が引っかかったのかよくわからん。
>>145は逆だからかエラーでてるし。
155: 俺様 03/03/06 01:13 ID:ZBXb+hSM(2/3) AAS
>>150
とりあえず
$a ? $b : $c = 1;
って正しく書いてくれたら面白かったのに。
まあ、またそういうのがあったら引っ掛けてみてクレイ。
156: [age] 03/03/06 01:22 ID:??? AAS
>>150
気持ちわりぃ〜・・・・(文法が)
157(2): 俺様 03/03/06 01:34 ID:ZBXb+hSM(3/3) AAS
わからない点が出てきた(汗
$a ? $b : $c = 1;
これは$aがまだ初期化されていないため
falseとみなされて$cに1が代入される。
ところが、
$a=true;
$a ? $b : $c = 1;
このようにしても$bには1が代入されていなかった・・・
ちなみにPerlの場合はちゃんと$bに1が代入されてました。
というわけでどうしてPHPだと代入されないのかを考えて見ましょう。
PerlとPHPの違いですね。
158: 03/03/06 01:36 ID:??? AAS
俺様に、きもいストカー、スレ繁盛。 サラリーマン俳句
159: 03/03/06 01:41 ID:??? AAS
define("true",0);
160: 03/03/06 01:42 ID:??? AAS
さっき書いたもので十分。Perlは三項演算子(の2、3番目のやつ)が左辺値になれる。
なんと関数も左辺値にできる(ver 5.6辺り(?)以降から..)
my %hash;
sub hoge : lvalue {
my $key = shift;
return $hash{$key};
}
hoge('test') = 1;
print $hash{test};
161(3): 03/03/06 01:43 ID:??? AAS
>>157
あほか?
$a?$b:($c=1);と解釈するからだろ。つーかそれが健全。
162: 03/03/06 01:52 ID:??? AAS
ごめん。またもや失敗。
return を使ってはいけない。とのこと。
sub hoge : lvalue {
my $key = shift;
$hash{$key};
}
163: 03/03/06 03:27 ID:??? AAS
C(gcc 2.95.3-6 mingw)はperlと同じ挙動を示した。
こんな書き方があるとは、知らなかった。。
164: 03/03/06 07:56 ID:??? AAS
わからない点が出てきた(汗
$a ? $b : $c = 1;
これは$aがまだ初期化されていないため
falseとみなされて$cに1が代入される。
ところが、
$a=true;
$a ? $b : $c = 1;
このようにしても$bには1が代入されていなかった・・・
ちなみにPerlの場合はちゃんと$bに1が代入されてました。
というわけでどうしてPHPだと代入されないのかを考えて見ましょう。
PerlとPHPの違いですね。わからない点が出てきた(汗
$a ? $b : $c = 1;
これは$aがまだ初期化されていないため
falseとみなされて$cに1が代入される。
ところが、
$a=true;
$a ? $b : $c = 1;
このようにしても$bには1が代入されていなかった・・・
ちなみにPerlの場合はちゃんと$bに1が代入されてました。
というわけでどうしてPHPだと代入されないのかを考えて見ましょう。
PerlとPHPの違いですね。わからない点が出てきた(汗
$a ? $b : $c = 1;
これは$aがまだ初期化されていないため
165: 03/03/06 07:56 ID:??? AAS
わからない点が出てきた(汗
$a ? $b : $c = 1;
これは$aがまだ初期化されていないため
falseとみなされて$cに1が代入される。
ところが、
$a=true;
$a ? $b : $c = 1;
このようにしても$bには1が代入されていなかった・・・
ちなみにPerlの場合はちゃんと$bに1が代入されてました。
というわけでどうしてPHPだと代入されないのかを考えて見ましょう。
PerlとPHPの違いですね。わからない点が出てきた(汗
$a ? $b : $c = 1;
これは$aがまだ初期化されていないため
falseとみなされて$cに1が代入される。
ところが、
$a=true;
$a ? $b : $c = 1;
このようにしても$bには1が代入されていなかった・・・
ちなみにPerlの場合はちゃんと$bに1が代入されてました。
というわけでどうしてPHPだと代入されないのかを考えて見ましょう。
PerlとPHPの違いですね。
166: 03/03/06 07:59 ID:??? AAS
粘着きもいお(○´∞`○)
167: 俺様 03/03/06 08:26 ID:0wTJZFjp(1/6) AAS
>>161
外部リンク[php]:www.php.net
演算子の優先順位が
=より:?の方が高いから
$a?$b:$cの方が$c=1より先に評価されるはずじゃない?
でもこうやってみたら$aが真のときに
$bに1が代入されてたからやっぱ>>161のいう通りかな。
$a ? $b = 1: $c;
しかし、いいかげんな仕様だね。
168: 03/03/06 08:29 ID:??? AAS
>>161
外部リンク[php]:www.php.net
演算子の優先順位が
=より:?の方が高いから
$a?$b:$cの方が$c=1より先に評価されるはずじゃない?
でもこうやってみたら$aが真のときに
$bに1が代入されてたからやっぱ>>161のいう通りかな。
$a ? $b = 1: $c; >>161
外部リンク[php]:www.php.net
演算子の優先順位が
=より:?の方が高いから
$a?$b:$cの方が$c=1より先に評価されるはずじゃない?
でもこうやってみたら$aが真のときに
$bに1が代入されてたからやっぱ>>161のいう通りかな。
$a ? $b = 1: $c; >>161
外部リンク[php]:www.php.net
演算子の優先順位が
=より:?の方が高いから
$a?$b:$cの方が$c=1より先に評価されるはずじゃない?
でもこうやってみたら$aが真のときに
$bに1が代入されてたからやっぱ>>161のいう通りかな。
$a ? $b = 1: $c;
169: イ奄様 03/03/06 09:07 ID:??? AAS
これで勘弁してくれ
Perl
$a?$b:$c=1;
PHP
$a?$b=1:$c=1;
170: 俺様 03/03/06 09:53 ID:0wTJZFjp(2/6) AAS
では今日はフォームの受け渡しを書いておこう。
まずはhtml部分から。
<form action="../cgi-bin/test.cgi" method="POST">
名前: <input type="text" name="name" /><br>
性別: <br>
<input type="radio" value="男" name="sex" checked>男<br>
<input type="radio" value="女" name="sex">女<br>
<input type="submit" name="送信">
</form>
171: 俺様 03/03/06 10:10 ID:0wTJZFjp(3/6) AAS
Perlだとこうなる。
#!/perl/bin/perl
print "Content-type: text/html\n\n";
use CGI;
$q = new CGI;
print $q->param('name')."は".$q->param('sex');
まあ、cgi.pmがPerl5で標準に組み込まれるようになったので
かなり楽になっただろう。
cgi.pmを用いないとさらに面倒である。
172: 俺様 03/03/06 10:17 ID:0wTJZFjp(4/6) AAS
PHPの場合だとこれでよい。
<?php
print $_POST["name"]."は".$_POST["sex"];
?>
ちなみにGET方式の場合は同様に
$_GETの配列に代入される。
$_REQUESTにはGET,POST関係なく
代入されてくれる。(ただし、安全じゃないという理由で推奨はされない)
173: 俺様 03/03/06 10:29 ID:0wTJZFjp(5/6) AAS
外部リンク[php]:www.php.net
文字列関数を見るとわかるがかなり便利な関数が標準で用意されている。
htmlspecialchars
特殊文字をHTMLエンティティに変換する
例えば、<を'<'に変えてくれるのだ。
タグとみなされずにすむ。
trim
文字列の先頭および末尾にあるホワイトスペースを取り除く
これもフォーム処理の際にはあると便利だろう。
こんなふうにすればフォームから受け取った全ての値に
簡単に処理を適用できる。
$_POST = array_map("htmlspecialchars", $_POST);
$_POST = array_map("trim", $_POST);
174: 俺様 03/03/06 10:30 ID:0wTJZFjp(6/6) AAS
これでフォームもバッチリъ( ゚ー^)だろう。
175(1): 03/03/06 11:23 ID:??? AAS
a?b:c=1;
本来はエラーにすべきだけど、gccだと通るんだよな・・・三項演算子が左辺になりうる。
まあ-ansi -pedanticをつければエラーにしてくれるけど。
176: 175 03/03/06 11:28 ID:??? AAS
s/左辺/左辺値/
177(1): 03/03/06 15:41 ID:??? AAS
いい加減な仕様とか言って・・
演算子の優先順位も、左辺値になるということも、
perlopにちゃんと書いてあるし。ちゃんとした仕様。
仕返しだ。
$a ? $b : $c = $d ? $e : $f = $g ? $h : $i = $j ? $k : $l = $m ? $n : $o;
178: 俺様 03/03/06 16:42 ID:SMJB497B(1/2) AAS
>>177
いや、いい加減な仕様ってのは今回に限ってはPHPに対していったのさ。
>>157で言ったようにPerlの場合は予想したとおりになったからね。
俺が言いたかったのはPHPの場合が>>161みたいになっているのが
いい加減だなあってことだ。
179(2): 03/03/06 17:01 ID:??? AAS
PHPも、優先度は、=の方が上だから、そのままの結果。ではないのか?
180(2): 俺様 03/03/06 17:04 ID:SMJB497B(2/2) AAS
>>179
>優先度は、=の方が上
ソースキボンヌ。
俺が調べた結果だと=の方が下だった。
181: 03/03/06 17:05 ID:G2YpYyeT(1) AAS
◆ようこそ!!ピンクエンジェルです★
外部リンク[html]:www.pink-angel.jp
182: 03/03/06 17:06 ID:??? AAS
本来はd=a?b:c;という形で使う者なんだから、=の方が低くて当然。
左辺値になるってのがおかしいんだよ(-_-;)
183: 03/03/06 19:06 ID:??? AAS
>>180
あぁ。最低から並べたものって書いてあった。うぅ。
184: 03/03/06 21:36 ID:??? AAS
180 名前:俺様 投稿日:2003/03/06(木) 17:04 ID:SMJB497B
>>179
>優先度は、=の方が上
ソースキボンヌ。
俺が調べた結果だと=の方が下だった。
181 名前:nobodyさん 投稿日:2003/03/06(木) 17:05 ID:G2YpYyeT
◆ようこそ!!ピンクエンジェルです★
外部リンク[html]:www.pink-angel.jp
182 名前:nobodyさん 投稿日:2003/03/06(木) 17:06 ID:???
本来はd=a?b:c;という形で使う者なんだから、=の方が低くて当然。
左辺値になるってのがおかしいんだよ(-_-;)
183 名前:nobodyさん 投稿日:2003/03/06(木) 19:06 ID:???
>>180
あぁ。最低から並べたものって書いてあった。うぅ。
182 名前:nobodyさん 投稿日:2003/03/06(木) 17:06 ID:???
本来はd=a?b:c;という形で使う者なんだから、=の方が低くて当然。
左辺値になるってのがおかしいんだよ(-_-;)
183 名前:nobodyさん 投稿日:2003/03/06(木) 19:06 ID:???
>>180
あぁ。最低から並べたものって書いてあった。うぅ。
185(3): 03/03/06 23:54 ID:aj5F0raF(1) AAS
教えて下さい。
配列@arrayに、'12-34','34-56'...みたいなデータが入ってて、-の右側でソートしたい場合、
@tmp = map { (split /-/)[1] } @array;
@array = @array[ sort { $tmp[$b] <=> $tmp[$a] } 0 .. $#tmp ];
でやってたんですが、同じことをPHPでやるにはどうしたらいいんでしょう?
186: 俺様 03/03/07 00:46 ID:86BQl/fj(1) AAS
>>185
実はそれに似たようなので、俺様も苦労したんだな〜
1<>32<>43<>2
3<>41<>443<>232
...
ってな感じでデータが入ってて
3列目(上だと43,443)だけでsortしたいなーって。
で、結局よくわからんかったから自己関数作った。
function cmp ($a, $b) {
$tmp1 = explode("<>", $a);
//文字列$a(="1<>32<>43<>2")を<>で区切って配列に代入
//例えば、$tmp1[0]=1,$tmp1[1]=32
$tmp2 = explode("<>", $b);
if($tmp1[2] == $tmp2[2]) return 0;
elseif($tmp1[2] > $tmp2[2]) return -1;
else return 1;
}
usort ($array "cmp");
//ユーザー定義の比較関数により値で配列をソート
まあ、usortの使い方とかはマニュアルで調べてクレイ。
外部リンク[php]:www.php.net
俺様のと若干違うようなので、もっと簡単な方法があるかも知れんが
参考までに。
187: 03/03/07 00:46 ID:??? AAS
教えて下さい。
配列@arrayに、'12-34','34-56'...みたいなデータが入ってて、-の右側でソートしたい場合、
@tmp = map { (split /-/)[1] } @array;
@array = @array[ sort { $tmp[$b] <=> $tmp[$a] } 0 .. $#tmp ];
でやってたんですが、同じことをPHPでやるにはどうしたらいいんでしょう?教えて下さい。
配列@arrayに、'12-34','34-56'...みたいなデータが入ってて、-の右側でソートしたい場合、
@tmp = map { (split /-/)[1] } @array;
@array = @array[ sort { $tmp[$b] <=> $tmp[$a] } 0 .. $#tmp ];
でやってたんですが、同じことをPHPでやるにはどうしたらいいんでしょう?教えて下さい。
配列@arrayに、'12-34','34-56'...みたいなデータが入ってて、-の右側でソートしたい場合、
@tmp = map { (split /-/)[1] } @array;
@array = @array[ sort { $tmp[$b] <=> $tmp[$a] } 0 .. $#tmp ];
でやってたんですが、同じことをPHPでやるにはどうしたらいいんでしょう?教えて下さい。
配列@arrayに、'12-34','34-56'...みたいなデータが入ってて、-の右側でソートしたい場合、
@tmp = map { (split /-/)[1] } @array;
@array = @array[ sort { $tmp[$b] <=> $tmp[$a] } 0 .. $#tmp ];
でやってたんですが、同じことをPHPでやるにはどうしたらいいんでしょう?
188: 03/03/07 03:08 ID:??? AAS
配列にしてからソートした方がよくない?
189(1): 03/03/07 14:44 ID:??? AAS
>>185
Perlならこれでいいんじゃない?
@array = sort { (split(/-/,$a))[1] <=> (split(/-/,$b))[1] } @array
190: 03/03/07 16:22 ID:??? AAS
>>185
$i = 0;
for($array[$i]) {
list($first, $second) = explode("-",$array[$i]);
$first[] = $first;
$secondt[] = $second;
$i++;
}
array_multisort($second, $first);
$i++;
while ($first[$i]){
$array[$i] = $first[$i] . "-" . $second[$i];
$i++;
}
PHP初心者スレで書いた奴を改善してみた。
191: 03/03/07 18:15 ID:??? AAS
>189
ソートの度になにかの処理をするって遅くならん?
192(1): $n日後 03/03/07 18:53 ID:??? AAS
現在時刻から$n日後を求めたいいいだけどprelだと以下
($sec,$min,$hour,$mday,$mon,$year,$wday)=localtime(time + $n*24*3600);
PHPだとどうなるんだ?
あのツェラーの公式だっけか?
193(2): 03/03/07 18:56 ID:??? AAS
>>192
>$n日後
なら純粋にtime()に86400 * nを足せばいいのでは?
194(3): 03/03/07 19:23 ID:??? AAS
$i = 90;
$year = date("Y", time());
$day = date("n", time());
$month = date("j", time());
$hour = date("G", time());
$minute = date("i", time());
$second = date("s", time());
$timestamp = mktime($hour, $minute, $second, $month, $day + $i, $year);
print date("Y/n/j G:i:s", $timestamp);
まぁ別に変数を使う必要も無いわけだが。
195(1): $n日後 03/03/08 13:58 ID:NNyx9+/Y(1) AAS
>>193 >>194
レスサンク!
ツェラーの公式とはまた違うか、・・・・。
PHPではツェラーの公式なんか使わなくても簡単に指定した日の
曜日とかも算出出来ちゃうんだね。
--抜粋--
また、カレンダー等でその日の曜日を知りたい時、「perl」では
Zeller(ツェラー)の公式を使って算出しなければいけませんが、
「php」では「string date (w , [timestamp])」とすると、
「timestamp」で指定した日にちの曜日を数字で返してくれます
(0(日曜)〜6(土曜))。極端な例を2点ほどあげましたが、
他にも便利な関数が数々あります。
--抜粋--
外部リンク[html]:bin5.info
196(1): 03/03/08 13:59 ID:??? AAS
>>195
質問が変わっている。
197: $n日後 03/03/08 14:09 ID:??? AAS
>>196
いやいや、これはこれであれはあれで・・・
失礼すました。
198(1): 03/03/08 14:32 ID:??? AAS
Perlの場合、自前で計算したくないなら、Date::Calcを使えばいい。
>>194の回答はアホ過ぎ。timeの戻り値がシリアル値なんだから、
その性質を使わないのは勿体無い。
199(1): 03/03/08 15:29 ID:??? AAS
>>193
うるう秒はどうするの?
200: 03/03/08 15:35 ID:??? AAS
>>199
うるう秒の意味わかってるか?
で、それをどうしたいのか?
201: 03/03/08 15:37 ID:??? AAS
うるう秒が蓄積されて誤差が1日を超えるような時間は、32bitのtimeでは指定できない。
でいいかな?
うるう秒をちゃんと考えるなら、>>194の方法で・・。
202(1): 03/03/08 15:53 ID:??? AAS
list($sec,$min,$hour,$mday,$mon,$year,$wday) = localtime(time() + $n*24*3600);
203: 03/03/08 15:55 ID:??? AAS
>>198
「アホでも判るように。」が信条なんだが。
で、後学の為にその性質を使ったコードを見せて頂きたい。
204: 03/03/08 15:56 ID:??? AAS
reloadなしで書くとこうなるわけですね。
>>202
サンクス
吊ってきま。
205: 03/03/10 16:59 ID:??? AAS
つづきまだー
206: &rlo;ega待期&lro; 03/03/10 17:03 ID:EpMeREtC(1) AAS
207: 03/03/10 17:11 ID:??? AAS
208(1): 俺様 03/03/10 17:47 ID:SvAZl1u/(1/2) AAS
そろそろネタ切れだ。
以上の知識でもうどんな物でも
Perl→PHPの移行はできるはずだ。
練習として誰かYomiサーチを移植してみよう。
209: 03/03/10 18:34 ID:??? AAS
>>208
削除依頼よろしく。
210(1): 03/03/10 20:36 ID:??? AAS
俺様、ちょっち待てよ。
Yomiサーチの移植の続きやれよ。(w
211: 03/03/10 20:37 ID:??? AAS
>>210
出来るわけ無いだろう。このスレ読む限りでは。
212: 03/03/10 21:09 ID:??? AAS
dbを触るところまでやってほしかったっす。
213(1): 俺様 03/03/10 22:09 ID:SvAZl1u/(2/2) AAS
よっしゃ。じゃあMySQLまでやろう。
というか俺が今その勉強中だから
まあ(・∀・)つ目 オチャデモノンデマテ!
214(1): 03/03/10 22:21 ID:??? AAS
>>213
死ね
215: 俺様 03/03/10 22:26 ID:KPB0lsuM(1/2) AAS
>>214
(´Д⊂
216: 03/03/10 22:32 ID:Hr2fHuuO(1) AAS
AA省
217(1): 03/03/10 23:02 ID:c9OmtJD2(1) AAS
PHPはいいからDelphiおしえれ
218(1): 俺様死ね 03/03/10 23:02 ID:??? AAS
>>217
何が聞きたい?
219(1): 03/03/10 23:03 ID:??? AAS
>>218
Perlとの違い
220(1): 俺様死ね 03/03/10 23:04 ID:??? AAS
>>219
もうちょい具体的に。激しく違う。としか言いようがない。
221(1): 俺様 03/03/10 23:17 ID:KPB0lsuM(2/2) AAS
Delphiは板違いなのでプログラム板で。
222: 03/03/10 23:28 ID:??? AAS
>>221
釣りですか?
真性ならプログラム技術板のPerlスレでも似たようなことを言っちゃうんだろうな。
223: 03/03/10 23:35 ID:??? AAS
>>220
ワラタw
224(1): 03/03/11 10:00 ID:??? AAS
このスレでは、いずれ php.ini の解説もしてくれますか?
俺が Perl → PHP で一番悩んでるのが php.ini (により定まる動作環境?) なんだよね。
こっちのサーバでは動くのにあっちのサーバでは動かない、とかとか。
225(2): 03/03/11 10:22 ID:??? AAS
>>224
それって各鯖の鯖管に問い合わせるべきじゃないのか?
知っててもそれじゃ手が出せないだろ。
226: 03/03/11 10:26 ID:??? AAS
>>225
php.iniの設定ってある程度はコード中で変えられたと記憶。
227(1): 03/03/11 10:31 ID:??? AAS
>>225
問題解決のためならその通りですが、
予備知識が無いと、聞きようが無い and 読みようが無いと思ったのさ。
詳しくは本でも買って読め、ということになるのかもしれないけど、
Perlユーザ向けの *入門編レベル* で十分なので、
抑えておくべきポイントを教えてくれると嬉すぃ。
228: 03/03/11 10:36 ID:??? AAS
>>227
phpinfo呼び出す。
後は値でどういう設定かは見当が付く。
229: 03/03/11 10:42 ID:??? AAS
もちろん、一番最初に
<?php
phpinfo();
?>
だけ書いたファイルを置く、これはやってます。
ただ、
> 後は値でどういう設定かは見当が付く。
これがね…。
要点だけで良いので、時間余ったらよろしく。>>俺様
230: 俺様 03/03/11 11:10 ID:+7fowk1S(1/9) AAS
まあ、入門レベルならそこまで弄る所はないだろうというのが本音だが。
>こっちのサーバでは動くのにあっちのサーバでは動かない
これで困っているなら、なぜ動かないのかを検討する方が先だろうし。
まあ、php.ini自体に英語で最初から説明が書いてあるので
それを見ながら幾つか拾ってみよう。
231(1): 俺様 03/03/11 11:17 ID:+7fowk1S(2/9) AAS
まずここはサーバで違いがあるところが多い。
; Safe Mode
safe_mode = Off(デフォルト時)
セーフモードとは何か?についてはマニュアルに結構書いてある。
外部リンク[php]:www.php.net
外部リンク[php]:www.php.net
見ればわかるとおり、Onにすると使えなくなる関数とかがいくつか出てくるが
共用鯖ではOnにしている所がかなり多いので
On上での動作確認をした方がいいだろう。
232(2): 俺様死ね 03/03/11 11:19 ID:??? AAS
>>231
お前、全部説明する気か?大変すぎだぞ。それ。
233(1): 俺様 03/03/11 11:23 ID:+7fowk1S(3/9) AAS
というか便利なページ発見。
外部リンク[txt]:www.net-newbie.com
PHPにはphp.ini-recommendedという推奨設定ファイルが付いている。
上はその日本語訳のようだ。
234(1): 俺様 03/03/11 11:28 ID:+7fowk1S(4/9) AAS
>>232
まあ、重要な部分だけあといくつか。
あとはその日本語訳をよんでクレイってことで。
これも確かめたほうがいいな。
register_globals = Off
Onにすると変数がグローバル変数となってしまう(だったっけ?)
俺はOnにしたことないからよく知らんが。
4.1.0以降でデフォルトがOnからOffに変わったので注意すべき。
Onのサイトのみで動いていたものをOffのサイトで動かすには
結構スクリプトの書き換えが必要。
235(1): 俺様死ね 03/03/11 11:31 ID:??? AAS
>>234
違うぞ。
フォームからの情報がそのまま変数として展開されるか、$_GET $_POSTなどの連想配列?の要素として格納されるかの違いだ。
236(1): 俺様 03/03/11 11:37 ID:+7fowk1S(5/9) AAS
; UNIX: "/パス1:/パス2"
;include_path = ".:/php/includes"
;
; Windows: "\パス1;\パス2"
;include_path = ".;c:\php\includes"
必要なら先頭の『;』は外しておこう。
例えば、DBで便利なPearを使うなら
include_path = ".;c:\php\includes;c:\php\pear;"
ってな感じにディレクトリを加えたほうが良い。
PearはPHPインストール時にデフォルトで付いてくるのだが
サーバー上でincludeできる設定になっていない場合、
自分で使いたかったらPear自体を自分のディレクトリに
アップロードしないとならないかも。
237(1): 俺様 03/03/11 11:47 ID:+7fowk1S(6/9) AAS
>>235
フォローサンクス。
あと、
; cgi.force_redirect = 1
はこのように変えたほうがいい。
cgi.force_redirect = 0
ただ、PHP4.3.0はこの挙動がおかしくなるバグがあるらしいので注意。
238: 俺様死ね 03/03/11 11:49 ID:??? AAS
>>237
CGIとして使うなら必須だな。
239(2): 俺様 03/03/11 11:51 ID:+7fowk1S(7/9) AAS
後はこれだ。
extension_dir = ""
きちんとextensionsディレクトリをさすようにしておこう。
extension_dir = "C:/php/extensions"
240: 俺様死ね 03/03/11 11:51 ID:??? AAS
>>239
じゃないとexpatとかmbstringが使えないからな。重要だ。
241: 2 03/03/11 11:56 ID:138sEgV0(1) AAS
何気に息が合ってそうなのが面白い。
がんがれ。
242(1): 俺様 03/03/11 12:03 ID:+7fowk1S(8/9) AAS
ああ、あとそのディレクトリをきちんと設定しても
一部のDLLは使えるようになっていない。
Windows使いなら
;Windows Extensions
;Note that MySQL and ODBC support is now built in, so no dll is needed for it.
;
;extension=php_bz2.dll
;extension=php_cpdf.dll
・・・
使いたいdllの先頭の;を外す必要がある。
具体的に各鯖でどうなってるかはphpinfo()読めば大体わかるでしょう。
243: 俺様 03/03/11 12:05 ID:+7fowk1S(9/9) AAS
まあ、重要な設定はこんなもんか?
後は上の日本語訳や
マニュアルにもけっこう説明がしてあるはずだから
それを読んでクレイ。
244(1): 03/03/11 12:32 ID:??? AAS
register_globals対策。
php3 -> php4で一番困るのが
register_globals
で、Sourceを手っ取りばやく移植するにはSourceの先頭で
$hoge = $_POST["hoge"];
ってな感じにする。
245: 俺様死ね 03/03/11 12:34 ID:??? AAS
>>244
って言うか配列を変数に展開する関数みたいなの無かったっけ?
Perlだったっけか?
246: 03/03/11 12:58 ID:??? AAS
何だよここ、良スレ過ぎ!
回答ありがとう。
>>233
ググりかたが甘かったみたい。サンクスコ。
がんがってみます。
247: 03/03/11 13:09 ID:??? AAS
extract
248: 俺様 03/03/11 13:21 ID:Aj/riikG(1) AAS
レッツPHPより引用
>■修正の仕方
>以前のスクリプトを、PHP4.1.0以降に対応させるには、
>以下の文を、最初の<?以降に挿入すると、暫定的に動作するかと思われます。
>extract($_GET);
>extract($_POST);
>extract($_COOKIE);
>extract($_SERVER);
>extract($_SESSION);←セッションを使う場合
>未確認なので動作は保証しません。extractは配列を変数に展開するための関数です($_GET[f]=2002なら$fに2002が入る)
249(1): 03/03/12 22:56 ID:??? AAS
phpをcgiとして使用した場合は
・Perl/CGIと比較して処理速度の高速化
・サーバー負荷の低減
これらのメリットは無くなるということですか?
250: 俺様死ね 03/03/13 11:13 ID:??? AAS
>>249
そだね。CGIとしてPerlやCを動かすのと状況は同じ。
それでも俺的にはメリットは余りあるけど。
後、マルチすんなボケ。
251: 俺様 03/03/13 11:51 ID:??? AAS
今日はいよいよDBについて書こう。ようやく使い方がわかってきたので。
PostgreでもMyでも使えるようにPearを用います。
対応DB
Interbase
Mini-SQL
Microsoft SQL Server
MySQL
Oracle 8 (OCI)
ODBC
PostgreSQL
Sybase
252: 俺様 03/03/13 11:59 ID:??? AAS
まず準備としてphp.iniの設定が必要だ。
この3つを参照。
>>236
>>239
>>242
>>239、>>242はMySQLのみの場合は要らないかな。
例えばPostgreSQLを使いたければ
;extension=php_pgsql.dll
を
extension=php_pgsql.dll
ってする必要がある。
253: 俺様 03/03/13 12:09 ID:??? AAS
MySQLのみインストール方法も書いておこう。
外部リンク:www.mysql.com
ここからバージョンを選んで(勇気ない俺は4ではなく3.23)
Windows downloadsってのを落とす。
で、seteupを実行してnext連打でOK(一応要確認)。
インストールしたらc\:windows辺りにmy.iniってファイルが出来ていると思うので
それを開いてこれを追加。
[mysqld]
default-character-set=sjis
以上で完了だ。
PostgreSQLはcygwinを入れたりアカウント作ったりと面倒なので各自で調べてくれ。
何とかインストールできたけど数時間掛かった(汗
254: 俺様 03/03/13 12:11 ID:??? AAS
ああ、後winmysqladmin.exeってのも
一度実行してユーザー名とパスを決めるように。
外部に公開しない場合はキャンセルでも良いでしょう。
上下前次1-新書関写板覧索設栞歴
あと 347 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.039s