X



まあ。ほとんどないとおもうが。。
0001マチコ先生
垢版 |
NGNG
わがらねぇごどは、
おらにまかせろ!!
クソ質問から性の悩みまで
PHPに関するお問い合わせはここにきやがれ。
即効埋もれる自信はあるぞ。
0002マチコ先生
垢版 |
NGNG
速攻だ。。。
鬱だ。。
=======このスレは終了しました=====
0004名無しさん@お腹いっぱい。
垢版 |
NGNG
欝だ
00051
垢版 |
NGNG
>3
速攻を即効と。。。
ああ、、、説明までしてしまったよ(TT)
サヨウナラ
0007名無しさん
垢版 |
NGNG
初心者用スレがないので、ここで聞きます。(スレッドたてて叱られると困るので)
<INPUT TYPE="checkbox" NAME="pref[]" VALUE="1">北海道
から47個あります。
次のページで検索結果を表示させるのですが、そこでまた同じような
検索フォームも表示させて、前のページで選択したチェックボックスに
チェックを付けた状態で表示させたいのです。
こういう場合、どのようにすればよいのでしょうか。
今は、
if ($pref[1] !=""){
echo "<input type=checkbox name=\"pref[1]\" value=\"1\" checked >北海道";
} else {
echo "<input type=checkbox name=\"pref[1]\" value=\"1\">北海道";
}
と延々47個書いてます。
どう考えてもダサすぎると思うので。
0008ねたろ
垢版 |
NGNG
$prefname = array("北海道","青森県", (以下省略));
for ($i = 0; $i < count($prefname); $i++) {
print("<input type=checkbox name=pref[$i] value=1");
if ($pref[$i] == 1) {
print(" checked");
}
print(">$prefname[$i]\n");
}

でどうよ。
0009ねたろ
垢版 |
NGNG
インデントやり直し。スマソ。

$prefname = array("北海道","青森県", (以下省略));
for ($i = 0; $i < count($prefname); $i++) {
  print("<input type=checkbox name=pref[$i] value=1");
  if ($pref[$i] == 1) {
    print(" checked");
  }
  print(">$prefname[$i]\n");
}
00107
垢版 |
NGNG
>>9
ありがとうございました。
$prefname = array("","北海道","青森県", (以下省略));
for ($i = 1; $i < count($prefname); $i++) {
  print("<input type=checkbox name=pref[$i] value=$i");
  if ($pref[$i] == $i) {
    print(" checked");
  }
  print(">$prefname[$i]\n");
}
で思い通りにいきました。他の処理でも参考になりそうです。
0011ねたろ
垢版 |
NGNG
>>10
こんな時間までお仕事ご苦労様です。
0012名無しさん@お腹いっぱい。
垢版 |
NGNG
わかってる人はこうします。可読性は落ちるが。
printfよりechoの方が早い。同じくforよりwhileの方が早い。
フォームで与える値はchecked/selectedをダイレクトに与えると
フォーム再表示時に吉。
あと、クオーテーション内で変数を展開させるのはご法度。
-----
$prefname = array("","北海道","青森県", (以下省略));
$i = 1;
while ( $i<=count($prefname) ) {
  echo "<input type=checkbox name=".$pref[$i]." value=chekced" ".$pref[$i].">;
  echo $prefname[$i]."\n";
  $i++;
}
00137
垢版 |
NGNG
>>12
whileでもやってみました。

>あと、クオーテーション内で変数を展開させるのはご法度。

これはどういう意味ですか?
0014ねたろ
垢版 |
NGNG
>>13

print("Value is $hoge\n");
の用に、 ””のなかに変数書くこと。
僕は面倒だからよくやっちゃうけど
print("Value is " . $hoge . "\n")
とするのがいいのかもね。
ちなみにphp3ではクオーテーション内の変数は展開してくれるけど、
多次元の配列は展開してくれない
print("Value is $hoge[3].\n"); はオッケーだけど、。
print("value is $hoge[3][4]\n"); はだめだね。
0015名無しさん@お腹いっぱい。
垢版 |
NGNG
>>14
厨は逝ってよし。
${}
0016名無しさん@お腹いっぱい。
垢版 |
NGNG
押しつけがましいこと言わないでも
別に好みじゃねえの?
0017名無しさん@お腹いっぱい。
垢版 |
NGNG
純粋に好みの問題だ。だがな、速度は違うぞ。
どっちが速いか考えてみ。
001912
垢版 |
NGNG
だから、echoで変数を展開しないのが一番早いんだってば。
printは関数、echoはコマンドでしょ?
内部のリソースの食いが全然違う。
パフォーマンスチューニングとはこういうもんだよ。
002112
垢版 |
NGNG
個人でほそぼそやってるサイトならどっちでもいいけど、
1日1万ユーザー以上を捌くようなサイトなら、大違い。
0022名無しさん@お腹いっぱい。
垢版 |
NGNG
なるほどリン
0023名無しさん@お腹いっぱい。
垢版 |
NGNG
PHPで吐いたクッキーをJAVAスクリプトで取得すると日本語が化けるんだけど
なんででしょ?
0024名無しさん@お腹いっぱい。
垢版 |
NGNG
>21
<?
echo (time()."<br>");
for($cnt =1 ;$cnt <= 500000;$cnt++)
{echo ("a");}
echo ("<br>".time()."<br>");
for($cnt =1 ;$cnt <= 500000;$cnt++)
{print ("a");}
echo ("<br>".time()."<br>");
?>
で実験してらほとんどかわらなかったんんだけど・・・・・?
なお当方PHP4のmod_php4-4.0.3-moduleつかってます。

0025電動ナナシ
垢版 |
NGNG
microtime() でどう?
time() だと秒単位だよね。

あと for と while とか(for が遅いってのは PHP/FI->PHP3 への移行
ドキュメントに書いてあったけど、Zend Engine になった時点でこの情報は
もう古いような・・)、echo "$a<br>\r" と echo $a . "<br>\r" を
比較したらどう?

今職場なので試せない・・・。
0026名無しさん@お腹いっぱい。
垢版 |
NGNG
>>24
for の速度計ってどうする。
echo だけ10万行書けよ
0027名無しさん@お腹いっぱい。
垢版 |
NGNG
>>23
JavaScriptでの日本語環境はウルトラ問題ありまくりだから
解決は大変だぞー。特にねすけは最低。4.5ぐらいから突如unicode
意識し始めてバグまみれ。
PHPだと鯖設定によりEUCで吐いてる可能性あるから php.ini を
疑ってみよ。
0028名無しさん@お腹いっぱい。
垢版 |
NGNG
>19
詳細きぼーん。
>24
>26
もっと使いやすいベンチマーク考えてん。
0029ねたろ
垢版 |
NGNG
>>27
クッキー問題、小生も文字化け問題で、結局全部JavaScriptでかきました。

internal_encoding 、http_output ともに UTFにしても、化けました。
0030名無しさん@お腹いっぱい。
垢版 |
NGNG
>>28
厨は逝ってよし
0031ねたろ
垢版 |
NGNG
>>25
それぞれ1万回ずつ、3セットやったらブラウザが死んでしまいました。
003312
垢版 |
NGNG
>>31
CGI版を作って、1行目にset_time_limit(0);と書いて試してみて。
ps auxでメモリ+CPUの負荷を見れば、どっちが軽いか分るはず。
0034print派
垢版 |
NGNG
>>12
PHPプログラム入門にはechoよりprintだと書いてあったんで
僕はprint派で逝っちゃいますね.
0035電動ナナシ
垢版 |
NGNG
性能の確保が最重要事項でなければ、書きやすさを優先していいでしょ。

でも >>12 の前提となっているのは、性能が最重要事項であるような環境だと
思うぞ。そういうところでは、ほんのわずかな無駄ももったいないという話に
なる。なんでデータベースで永続的接続 (pConnect 系の関数で実現) なんて
機能が求められているか分かる?

# 本来はコネクションプーリングとかってのは TP モニタ等のミドルウェアの
 任務だったけど、その意味を理解して使っている人って今は減っているんだろうな・・。
 別にそれの良し悪しを問うわけではないよ。
003612
垢版 |
NGNG
>>35
でもさぁ、PHPのなかでpg_pconnectとか書いてるとなんか鬱になる。
「アプリケーションサーバがやって」って感じ。
Cacheだけじゃものたりないよねぇ〜。
電動ナナシさんはプロっぽいから、そこら辺は分ってるぽいけど。
0037名無しさん@お腹いっぱい。
垢版 |
NGNG
なんか文字列比較の仕様がおかしくない?
文字列先頭で一致すると0が返ってしまうのはまずいと思うんだけど。
0038名無しさん@お腹いっぱい。
垢版 |
NGNG
それはFAQ
0039名無しさん@お腹いっぱい。
垢版 |
NGNG
ここにもいたか、パフォーマンス厨房が(ワラ
0040名無しさん@お腹いっぱい。
垢版 |
NGNG
パフォーマンスもバカにできんぞ。
特にi-mode用鯖。
0041名無しさん@お腹いっぱい。
垢版 |
NGNG
■変数展開にかかる時間の考察

□環境
PHP4.04
Turbo Linux 6.1 Server
Pentium 500MHz

<?
&nbsp;&nbsp;$start = time();
&nbsp;&nbsp;$s = "";
&nbsp;&nbsp;for ($cnt = 1; $cnt <= 1000000; $cnt++) {
&nbsp;&nbsp;&nbsp;&nbsp;$s .= "a";
&nbsp;&nbsp;}
&nbsp;&nbsp;echo time() - $start . "<br>\n";
&nbsp;&nbsp;$start = time();
&nbsp;&nbsp;$s = "";
&nbsp;&nbsp;$a = "a";
&nbsp;&nbsp;for ($cnt = 1; $cnt <= 1000000; $cnt++) {
&nbsp;&nbsp;&nbsp;&nbsp;$s .= "$a";
&nbsp;&nbsp;}
&nbsp;&nbsp;echo time() - $start . "<br>\n";
?>

□結果
5
9

□考察
差が5sだとして、変数展開一回あたりの処理時間は、
5 / 1000000 = 0.000005 (5μsec)

□結論
俺はやっぱり気にせず、バリバリ変数展開を使う。
0042名無しさん@お腹いっぱい。
垢版 |
NGNG
俺の考察に、誰かケチつけてくれよ。
0043初期不良
垢版 |
NGNG
2倍も違うのね。
じゃあ変数展開は避けるようにしよ。
どっちにしろ変数のあとに文字が続くときとかあるし。
0044初期不良
垢版 |
NGNG
と言うか変数展開するかしないかを比較するなら、
$s .= "$a";
$s .= $a;
を比較するべきでは?
0045名無しさん@お腹いっぱい。
垢版 |
NGNG
■ echo とprint 及び変数展開に関する考察

□ 環境
PHP4.04
Turbo Linux 6.1 Server
Pentium 500MHz

□ 調査対象
$s = "DEF";
のとき、

(1) echo "ABCDEFGHI";
(2) echo "ABC" . $s . "GHI";
(3) print("ABCDEFGHI");
(4) print("ABC{$s}GHI");

のそれぞれを100万回ループで実行した時の時間を計測する。
ただし、出力は、ob_start() 〜 od_end_clean()で破棄する。

□ 結果
(1) 4027.88ms
(2) 7244.46ms
(3) 4184.21ms
(4) 9924.15ms

□ 考察
さらに、さまざまなパターンでの計測が必要だが、それぞれの
関数コールにかかる時間は数μsecであることを考えれば、書き
やすいものを選択するのが良いと思う。

それ以上の考察は、私にとって不要なのでしない。
0046初期不良
垢版 |
NGNG
>>45
いやだからオーダーが重要なんでは?
繰り返さない処理ならその通りだけど。
0047名無しさん@お腹いっぱい。
垢版 |
NGNG
>と言うか変数展開するかしないかを比較するなら、
>$s .= "$a";
>$s .= $a;
>を比較するべきでは?
$s .= "z$a";
$s .= "z".$a;
0048名無しさん@お腹いっぱい。
垢版 |
NGNG
>>46
オーダーとは、ページへの同時アクセス数のことでしょうか?
例えば、あるページにechoなりprintなりの出力系関数が
100個使われているとして、そこに同時アクセスが100あったと
します。
この場合に、echoを使っている場合とprintを使っている場合
に、レスポンスが大きく変わってくるという話ですか?

それは、いったい、どれくらいの違いがあると予想され、どうすれば
検証出来るとお考えですか?
005048
垢版 |
NGNG
最近ちょっと忙しくて、いろいろ試す時間がなかなか取れない
のですが、時間が出来たら、Siegeでストレステストをするつもりです。

# siege - An HTTP regression, stress testing and benchmarking application

もっと気の利いたストレステストツールを持ってる人がいたら、
それで試してくれるとうれしいんだけど。

ちなみに、私の予想は、「なにをやってもそれほど変わらない」です。
それほどというのは、10ms未満くらいの違い、と思っています。
まぁ、Siegeでそこまで測れるかどうかというのが問題ですね。
005148
垢版 |
NGNG
ちなみに、テストに使用したコードはこれ。
-- debug.inc -------------------------------
<?php
function printd($msg)
{
nbsp;nbsp;printf("<!-- %s -->\n", $msg);
}

class dbgTime {
nbsp;nbsp;var $s = "";

nbsp;nbsp;function dbgTime() {
nbspnbsp;nbsp;nbsp;$this->s = gettimeofday();
nbspnbsp;}

nbsp;nbsp;function reset() {
nbsp;nbsp;nbsp;nbsp;$this->s = gettimeofday();
nbsp;nbsp;}

nbsp;nbsp;function printDiff() {
nbsp;nbsp;nbsp;nbsp;$now = gettimeofday();
nbsp;nbsp;nbsp;nbsp;$diff = ($now[sec] * 1000 + $now[usec] / 1000) - ($this->s[sec] * 1000 + $this->s[usec] / 1000);
nbsp;nbsp;nbsp;nbsp;printd($diff);
nbsp;nbsp;}
}
?>

-- test.php -------------------------------
<?php
&nbsp;&nbsprequire("debug.inc");

&nbsp;&nbsp$times = 1000000;

&nbsp;&nbsp$s = "";
&nbsp;&nbsp$t = new dbgTime;
&nbsp;&nbspfor ($i = 0; $i < $times; $i++) {
&nbsp;&nbsp&nbsp;&nbsp// put test code here
&nbsp;&nbsp}
&nbsp;&nbsp$t->printDiff();

?>
005248
垢版 |
NGNG
あー、変換に失敗してる。
鬱氏。
0053名無しさん@お腹いっぱい。
垢版 |
NGNG
siege だって、プ。遅くて使い物にならんよ。子供のおもちゃ。
005448
垢版 |
NGNG
>>53
子供のおもちゃでもさ、何もやらないよりはましでしょ?
で、あなたは何を使ってるの?
0055名無しさん@お腹いっぱい。
垢版 |
NGNG
php3.0.15のmail関数は自動でヘッダとか本文をJISにエンコードしてくれたりしますか?
005655
垢版 |
NGNG
もち、国際化版ね
0057ねたろ
垢版 |
NGNG
>>55
本文はなにも言わなくてもJISに変換してくれるほか、対応したヘッダをふかしてくれます。
ASCII
0058ねたろ
垢版 |
NGNG
失礼、途中でポストしてしまいました。
ASCII文字以外がヘッダに含まれる場合は明示的にMIMEエンコードしてあげる必要があります。
0059名無しさん@お腹いっぱい。
垢版 |
NGNG
おっす!おら悟空(さぶー)

ところでみなさんはPHPでオブジェクト指向訃露倉民具死手魔須華?
わたしは地道に構造化プログラミングして増す世。
0060名無しさん@お腹いっぱい。
垢版 |
NGNG
>>59
OOもどき(class)はよく使いますよ。
でも、コンストラクタをオーバーロードできないのがいや。
あと、マンモス本なんかで、変数をオーバーライド(?)して、
「カスタマイズ」などと称するのがいや。
0062名無しさん
垢版 |
NGNG
同じく、よくわかんねー。
マンモス本見ても意味わからん。
なんでこんなに理解力がないんだろうと思います。
0063電動ナナシ
垢版 |
NGNG
>>60-62
オブジェクト指向的な書き方については以下のコラムが参考になるよ。
"Object Oriented Programming in PHP: The way to large PHP projects"
http://www.phpbuilder.com/columns/luis20000420.php3

クラス変数が定義できないとか、カプセル化が弱い(全部 Public!)とかいった
制限はちょっときついけどね。ちなみにクラスメソッドは
Class::Method()
で呼び出せるって知ってちょっとうれしい。ドキュメントになくって、Pear の
ソースコードを見ていて発見した。
0064名無しさん@お腹いっぱい。
垢版 |
NGNG
>>63
うーむ、マンモス本でアクセッサをほとんで(全然?)使ってない
というのも痛いが(つーか、OOP解ってないに、48000ペリカ)、
http://www.phpbuilder.com/columns/luis20000420.php3?page=5
もかなり痛いね。
オーバーロード位使わせろよ。
0065電動ナナシ
垢版 |
NGNG
>>64
> http://www.phpbuilder.com/columns/luis20000420.php3?page=5
> もかなり痛いね。
あー、それは見ててなんだそりゃって思った。痛いねー。
でも PHP には型がないってのがすべての元凶じゃない?
これ以上は言語仕様の見直しの話になると思うよ。

あとマンモス本の著者はオブジェクト指向には全然詳しくない人たちでしょ?
というか彼らに限らず日本の PHP のリーダーの OO 度が凄く低いんだと思う。
サンプルコードはアクセサ以前に分析自体おかしいと思う(その話はまたそのうちに)。

例えば、Pear のソース見てると Factory 使ってうまく実装の詳細を抽象化してるのに
日本だと "PostgreSQL だとこう書け" レベルだからね。やっと PHPLib が日本でも
それなりに認知されてきたけど、開発は Pear ほど盛んじゃないし、Pear に吸収?
統合?なんて話が出るようなものを今から広める意図が理解できない。
0066超絶初心者
垢版 |
NGNG
プログラム板でも質問していたPHP歴1週間のドビギナーです。
半角文字と全角文字の判別をつけるプログラムが分かりません!
現在、マンモス本片手に格闘中です・・・
0067電動ナナシ
垢版 |
NGNG
文字コード表見ればいい。

で、判別してどうするの?
判別する以外にもっといい機能があるかもしれないのに。
置換するなら strtr($string, "アイウエオ", "アイウエオ") とかね。
0068超絶初心者
垢版 |
NGNG
>67
レスありがとうございます。
判別して、「半角文字が入力されていたならエラー画面を表示する。
という風にしたいのです。
置き換えも必要だったので助かりました。
006964
垢版 |
NGNG
>>65
> あー、それは見ててなんだそりゃって思った。痛いねー。
「みてみて、これ。ほら、すごいでしょ」
などという痛い人たちのテクニックが、人口に膾炙しないことを祈る。

> でも PHP には型がないってのがすべての元凶じゃない?

型が違う場合のオーバーロードは望まないんだけど、
引数の個数によるオーバーロード位は実装してほしいなぁ。

> 例えば、Pear のソース見てると Factory 使ってうまく実装の詳細を抽象化してるのに

まだ、PHP暦10日くらいなので、「Pear」が何なのか(今書いてる時点では)
知りません(^^;
ちょい、調べてみますね。
007064
垢版 |
NGNG
ちょっとPEAEについてしらべたら、PerlのCPANのようなものだと
判明。で、日本PHPユーザ会のPHPLibとPEARに対する取り組み
(見解)などを調べてみようと思ったら、いきなり、

http://www.php.gr.jp/phplib
ページが見つかりません

ときたもんだ。やる気あるんかい!(ワラ
007164
垢版 |
NGNG
> PEAR
おぉ、このような便利(そう)なものがすでにあるとは!(^^;
# 既に、インストールされてたのね(^^;

しかも、PHPDocという便利そうなものも発見。
0073電動ナナシ
垢版 |
NGNG
>>70
げ、本当だ。それ以前に広川さんのページより情報が古い時点でかなりやる気が
なさそうな気もする。JPUG ほどきちんと組織化する必要はないけど、だからと
いってあれじゃあなぁ。

>>71
PHPDoc は JavaDoc 互換という話だから、ドキュメント作成が楽になることを
期待したりして。

Zend Encoder とか使ってスクリプトのソースを見せない時代がくると
ドキュメントの質がとても重要になってくるから、PHP 使い込むなら慣れておいた
方がいいかもしれないね。
007464
垢版 |
NGNG
PHPDoc 3分クッキング(俺の環境でPEARのPHPDocを作る場合)

1. http://phpdocu.sourceforge.net/から最新のphpdoc-x.x.x.tar.gzをダウンロードする。

2. 適当なディレクトリに展開する。
$ cd /usr/local/src
$ tar xvzf hoge/phpdoc-0.1.4.tar.gz

3. コマンドラインphpが使えない場合は、HTTP DOCROOTにln -s する。
# ln -s /usr/local/src/phpdoc-0.1.4 /usr/local/apache/htdocs

以下、ブラウザで使う場合の説明
4. 適当なターゲットディレクトリを作成し、nobodyで書き込めるようにする。
# mkdir /usr/local/apache/htdocs/php/PEAR
# chown nobody:nobody /usr/local/apache/htdocs/php/PEAR

5. ブラウザでPHPDocの作成ページを開く
http://hoge/phpdoc-0.1.4/phpdoc.php

6. 適当なソース、ターゲットを入力
directory: /usr/local/lib/php
target: /usr/local/apache/htdocs/php/PEAR/

7. submitボタンをクリックしてちょい待つ。

8. 出来上がり。
http://hoge/php/PEAR/index.html にアクセス。

PHPDocの文法は知らん。
007564
垢版 |
NGNG
>> 65
> 例えば、Pear のソース見てると Factory 使ってうまく実装の詳細を抽象化してるのに
> 日本だと "PostgreSQL だとこう書け" レベルだからね。やっと PHPLib が日本でも
> それなりに認知されてきたけど、開発は Pear ほど盛んじゃないし、Pear に吸収?
> 統合?なんて話が出るようなものを今から広める意図が理解できない。

やっと、これが解りました&激しく同意。
0076電動ナナシ
垢版 |
NGNG
PHPLIB へはこれでいける模様。
http://www.php.gr.jp/php/phplib/

サイト更新したときに忘れていたんだな、多分。
でもずっと誰も気づかないってことは、誰もアクセスしてないってことか?
寒いなー。
0077名無しさん@お腹いっぱい。
垢版 |
NGNG
なんでpostgreとかoracleとかで関数分かれているのでしょうか。
dbに関して抽象化された関数とかありませんか?
<自分でやれ、ってこと?
0078電動ナナシ
垢版 |
NGNG
そのための Pear であり PHPLIB。
とりあえずソース眺めてみなさいな。
0079名無しさん@お腹いっぱい。
垢版 |
NGNG
>>78
PHPLIbなんですが、MySQLがデフォルトなんでそれを念頭に入れられた
サンプルを用意されて、MSSQLでは泣きそうになったり。

でもソースは凄くいい感じ。勉強になりますわ。
0080名無しさん@お腹いっぱい。
垢版 |
NGNG
phpでperlをSSIのように実行するほうほうをおしえてぇぇぇ

たとえば、アクセスログで
access.pl //アクセスログを環境変数とともに、ファイルに書き込む
をPHPで実行する場合h?

ssiだと、
<exec cmd"./access.pl">
でOKですが、PHPで
exec "./access.pl";
とすると、一応実行はされるのですが
環境変数等が記載されません。
タチケテェプロ
0081電動ナナシ
垢版 |
NGNG
>>80
よく分からないけど(特に Perl)、exec/system だと HTTP 関連の
環境変数が渡されないみたいだね。

必要な変数を putenv() 使って渡せばいいみたい。
例えばこんな感じ。
putenv("REMOTE_ADDR=" . $HTTP_SERVER_VARS["REMOTE_ADDR"]);
exec "./access.pl"
0082ガシガシ
垢版 |
2001/04/27(金) 17:39ID:vZWj/rt6
以下のスクリプトでファイルの先頭に書き込んでるつもりなんですが、
どうも上手くいきません。rewind()をつかっても駄目でした。
どうすればいいんでしょう。
--
<?
$fp = fopen("txt", "a+");
$date = date("Y/m/d H:i:s");

fseek($fp, 0);
fputs($fp, "$date\n");

fclose($fp);
?>
0083電動ナナシ
垢版 |
2001/04/30(月) 06:28ID:???
>>82
ん?それで書けたけど。

Permission の問題じゃないの?
httpd が動作しているユーザーに書き込み権限はある?
0084まじまじ
垢版 |
2001/05/01(火) 00:43ID:m6M39drc
PHPLIBの使い方がわかんない厨房です。
Webをいろいろ探したんですが、やっぱよくわがんねっす。
どうか厨房でもわかるように教えてけろ
0085電動ナナシ
垢版 |
2001/05/01(火) 04:58ID:???
今から覚えるなら PHP4 と Pear の方がいいと思うけどね。Pear の方が
ユーザーも機能もかなり増えてきているから。で、この辺読んでみたら?
・データベース抽象化
  http://www.phpbuilder.com/columns/sean20000712.php3
・PHP 拡張拡張リポジトリ (PEAR)
  http://www.phpbuilder.com/columns/allan20010115.php3

PHP3 なら PHPLIB しかないね。で、この辺読んでみたら?
・データベース抽象化と PHPLIB
  http://www.phpbuilder.com/columns/sean20000712.php3
・PHPLIB による認証及びセッション管理
  http://www.phpbuilder.com/columns/chad19990414.php3

英文だけど、コード見れば何をしているかだいたい想像つくと思う。
0086電動ナナシ
垢版 |
2001/05/01(火) 05:33ID:???
>>82
あ、ファイルの先頭に追加したいってことか。確かにあれじゃそうはなって
くれないね。

ということで、これでどうかな。
<?php
$date = date("Y/m/d H:i:s");
$fpr = fopen("test.txt", "r");
$fpw = fopen("~test.txt", "a+");
$r = fseek($fpw, 0, SEEK_SET);
fputs($fpw, $date . "\n");
while (!feof($fpr)) {
  $buf = fgets($fpr, 8192);
  fputs($fpw, $buf);
}
fclose($fpw);
fclose($fpr);
unlink("test.txt");
rename("~test.txt", "test.txt");
?>
0087ガシガシ
垢版 |
2001/05/01(火) 09:46ID:KK6/m1p2
>>86
これでできましたが、テンプファイルに書き込み、コピーというやり方になって
しまうみたいですね。(他のスクリプトもそうだった)
どうもありがとうございます。

0089名無しさん@お腹いっぱい。
垢版 |
2001/05/01(火) 17:55ID:???
>86
別に↓のでいいと思うが。
------------------------------
$fp = fopen('log.log','r');
while($log[]=fgets($fp,8192){}
fclose($fp);
$fp = fopen('log.log','w');
fputs($fp,date("Y/m/d H:i:s")."\n");
$i=0;
while($log[$i]){
fputs($fp,$log[$i]);
$i++;
}
fclose($fp);
レスを投稿する


ニューススポーツなんでも実況