1read 100read
2012年3月WebProg150: まあ。ほとんどないとおもうが。。 (130) TOP カテ一覧 スレ一覧 2ch元 削除依頼
【SWFで】Macromedia Flex【RIA】 (808)
XSL/XSLT (540)
Perl VS PHP (542)
第二回 自作スクリプト発表会【PHP】 (105)
危険タグ 破壊タグ (101)
PHP初心者勉強会やらんかね! (474)

まあ。ほとんどないとおもうが。。


1 : 2001/02/19(月)
わがらねぇごどは、
おらにまかせろ!!
クソ質問から性の悩みまで
PHPに関するお問い合わせはここにきやがれ。
即効埋もれる自信はあるぞ。

2 : 2001/02/19(月)
速攻だ。。。
鬱だ。。
=======このスレは終了しました=====

3 : 2001/02/19(月)
>>1
おいおい、どうしたんだ一体??
何があったの?

4 : 2001/02/19(月)
欝だ

5 : 2001/02/20(火)
>3
速攻を即効と。。。
ああ、、、説明までしてしまったよ(TT)
サヨウナラ

6 : 2001/02/20(火)
仮にもマチコ先生を名乗ったのなら「<? echo "イヤーン魔一珍具〜"; ?>」と
タオル1枚に任意のポーズで叫ぶべし。

7 : 2001/02/21(水)
初心者用スレがないので、ここで聞きます。(スレッドたてて叱られると困るので)
<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個書いてます。
どう考えてもダサすぎると思うので。

8 : 2001/02/21(水)
$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");
}
でどうよ。

9 : 2001/02/21(水)
インデントやり直し。スマソ。
$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");
}

10 : 2001/02/21(水)
>>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");
}
で思い通りにいきました。他の処理でも参考になりそうです。

11 : 2001/02/21(水)
>>10
こんな時間までお仕事ご苦労様です。

12 : 2001/02/22(木)
わかってる人はこうします。可読性は落ちるが。
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++;
}

13 : 2001/02/23(金)
>>12
whileでもやってみました。
>あと、クオーテーション内で変数を展開させるのはご法度。
これはどういう意味ですか?

14 : 2001/02/23(金)
>>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"); はだめだね。

15 : 2001/02/23(金)
>>14
厨はってよし。
${}

16 : 2001/02/23(金)
押しつけがましいこと言わないでも
別に好みじゃねえの?

17 : 2001/02/23(金)
純粋に好みの問題だ。だがな、速度は違うぞ。
どっちが速いか考えてみ。

18 : 2001/02/23(金)
>>17
どっちが早いんですか? 

19 : 2001/02/23(金)
だから、echoで変数を展開しないのが一番早いんだってば。
printは関数、echoはコマンドでしょ?
内部のリソースの食いが全然違う。
パフォーマンスチューニングとはこういうもんだよ。

20 : 2001/02/23(金)
echo "a" . $a ; がはやくて
print("a$a"; が遅いと言うことですね。
そんなにかわるもんですか?

21 : 2001/02/23(金)
個人でほそぼそやってるサイトならどっちでもいいけど、
1日1万ユーザー以上を捌くようなサイトなら、大違い。

22 : 2001/02/23(金)
なるほどリン

23 : 2001/02/23(金)
PHPで吐いたクッキーをJAVAスクリプトで取得すると日本語が化けるんだけど
なんででしょ?

24 : 2001/02/23(金)
>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つかってます。

25 : 2001/02/23(金)
microtime() でどう?
time() だと秒単位だよね。
あと for と while とか(for が遅いってのは PHP/FI->PHP3 への移行
ドキュメントに書いてあったけど、Zend Engine になった時点でこの情報は
もう古いような・・)、echo "$a<br>\r" と echo $a . "<br>\r" を
比較したらどう?
今職場なので試せない・・・。

26 : 2001/02/23(金)
>>24
for の速度計ってどうする。
echo だけ10万行書けよ

27 : 2001/02/23(金)
>>23
JavaScriptでの日本語環境はウルトラ問題ありまくりだから
解決は大変だぞー。特にねすけは最低。4.5ぐらいから突如unicode
意識し始めてバグまみれ。
PHPだと鯖設定によりEUCで吐いてる可能性あるから php.ini を
疑ってみよ。

28 : 2001/02/24(土)
>19
詳細きぼーん。
>24
>26
もっと使いやすいベンチマーク考えてん。

29 : 2001/02/24(土)
>>27
クッキー問題、小生も文字化け問題で、結局全部JavaScriptでかきました。
internal_encoding 、http_output ともに UTFにしても、化けました。

30 : 2001/02/24(土)
>>28
厨はってよし

31 : 2001/02/24(土)
>>25
それぞれ1万回ずつ、3セットやったらブラウザが死んでしまいました。

32 : 2001/02/24(土)
>>30
ってよしヴァカうざい

33 : 2001/02/24(土)
>>31
CGI版を作って、1行目にset_time_limit(0);と書いて試してみて。
ps auxでメモリ+CPUの負荷を見れば、どっちが軽いか分るはず。

34 : 2001/02/24(土)
>>12
PHPプログラム入門にはechoよりprintだと書いてあったんで
僕はprint派でっちゃいますね.

35 : 2001/02/24(土)
性能の確保が最重要事項でなければ、書きやすさを優先していいでしょ。
でも >>12 の前提となっているのは、性能が最重要事項であるような環境だと
思うぞ。そういうところでは、ほんのわずかな無駄ももったいないという話に
なる。なんでデータベースで永続的接続 (pConnect 系の関数で実現) なんて
機能が求められているか分かる?
# 本来はコネクションプーリングとかってのは TP モニタ等のミドルウェアの
 任務だったけど、その意味を理解して使っている人って今は減っているんだろうな・・。
 別にそれの良し悪しを問うわけではないよ。

36 : 2001/02/25(日)
>>35
でもさぁ、PHPのなかでpg_pconnectとか書いてるとなんか鬱になる。
「アプリケーションサーバがやって」って感じ。
Cacheだけじゃものたりないよねぇ〜。
電動ナナシさんはプロっぽいから、そこら辺は分ってるぽいけど。

37 : 2001/02/25(日)
なんか文字列比較の仕様がおかしくない?
文字列先頭で一致すると0が返ってしまうのはまずいと思うんだけど。

38 : 2001/02/26(月)
それはFAQ

39 : 2001/02/26(月)
ここにもいたか、パフォーマンス厨房が(ワラ

40 : 2001/02/26(月)
パフォーマンスもバカにできんぞ。
特にi-mode用鯖。

41 : 2001/02/26(月)
■変数展開にかかる時間の考察
□環境
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)
□結論
俺はやっぱり気にせず、バリバリ変数展開を使う。

42 : 2001/02/27(火)
俺の考察に、誰かケチつけてくれよ。

43 : 2001/02/27(火)
2倍も違うのね。
じゃあ変数展開は避けるようにしよ。
どっちにしろ変数のあとに文字が続くときとかあるし。

44 : 2001/02/27(火)
と言うか変数展開するかしないかを比較するなら、
$s .= "$a";
$s .= $a;
を比較するべきでは?

45 : 2001/02/27(火)
■ 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であることを考えれば、書き
やすいものを選択するのが良いと思う。
それ以上の考察は、私にとって不要なのでしない。

46 : 2001/02/27(火)
>>45
いやだからオーダーが重要なんでは?
繰り返さない処理ならその通りだけど。

47 : 2001/02/28(水)
>と言うか変数展開するかしないかを比較するなら、
>$s .= "$a";
>$s .= $a;
>を比較するべきでは?
$s .= "z$a";
$s .= "z".$a;

48 : 2001/02/28(水)
>>46
オーダーとは、ページへの同時アクセス数のことでしょうか?
例えば、あるページにechoなりprintなりの出力系関数が
100個使われているとして、そこに同時アクセスが100あったと
します。
この場合に、echoを使っている場合とprintを使っている場合
に、レスポンスが大きく変わってくるという話ですか?
それは、いったい、どれくらいの違いがあると予想され、どうすれば
検証出来るとお考えですか?

49 : 2001/02/28(水)
>>46
それとも、オーダーとは、同一ページ内で使われている出力系
関数の呼ばれる回数のことでしょうか?

50 : 2001/02/28(水)
最近ちょっと忙しくて、いろいろ試す時間がなかなか取れない
のですが、時間が出来たら、Siegeでストレステストをするつもりです。
# siege - An HTTP regression, stress testing and benchmarking application
もっと気の利いたストレステストツールを持ってる人がいたら、
それで試してくれるとうれしいんだけど。
ちなみに、私の予想は、「なにをやってもそれほど変わらない」です。
それほどというのは、10ms未満くらいの違い、と思っています。
まぁ、Siegeでそこまで測れるかどうかというのが問題ですね。

51 : 2001/02/28(水)
ちなみに、テストに使用したコードはこれ。
-- 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();
?>

52 : 2001/02/28(水)
あー、変換に失敗してる。
鬱氏。

53 : 2001/02/28(水)
siege だって、プ。遅くて使い物にならんよ。子供のおもちゃ。

54 : 2001/02/28(水)
>>53
子供のおもちゃでもさ、何もやらないよりはましでしょ?
で、あなたは何を使ってるの?

55 : 2001/03/01(木)
php3.0.15のmail関数は自動でヘッダとか本文をJISにエンコードしてくれたりしますか?

56 : 2001/03/01(木)
もち、国際化版ね

57 : 2001/03/01(木)
>>55
本文はなにも言わなくてもJISに変換してくれるほか、対応したヘッダをふかしてくれます。
ASCII

58 : 2001/03/01(木)
失礼、途中でポストしてしまいました。
ASCII文字以外がヘッダに含まれる場合は明示的にMIMEエンコードしてあげる必要があります。

59 : 2001/03/01(木)
おっす!おら悟空(さぶー)
ところでみなさんはPHPでオブジェクト指向訃露倉民具死手魔須華?
わたしは地道に構造化プログラミングして増す世。

60 : 2001/03/02(金)
>>59
OOもどき(class)はよく使いますよ。
でも、コンストラクタをオーバーロードできないのがいや。
あと、マンモス本なんかで、変数をオーバーライド(?)して、
「カスタマイズ」などと称するのがいや。

61 : 2001/03/02(金)
classよくわかんねー

62 : 2001/03/02(金)
同じく、よくわかんねー。
マンモス本見ても意味わからん。
なんでこんなに理解力がないんだろうと思います。

63 : 2001/03/02(金)
>>60-62
オブジェクト指向的な書き方については以下のコラムが参考になるよ。
"Object Oriented Programming in PHP: The way to large PHP projects"
http://www.phpbuilder.com/columns/luis20000420.php3
クラス変数が定義できないとか、カプセル化が弱い(全部 Public!)とかいった
制限はちょっときついけどね。ちなみにクラスメソッドは
Class::Method()
で呼び出せるって知ってちょっとうれしい。ドキュメントになくって、Pear の
ソースコードを見ていて発見した。

64 : 2001/03/02(金)
>>63
うーむ、マンモス本でアクセッサをほとんで(全然?)使ってない
というのも痛いが(つーか、OOP解ってないに、48000ペリカ)、
http://www.phpbuilder.com/columns/luis20000420.php3?page=5
もかなり痛いね。
オーバーロード位使わせろよ。

65 : 2001/03/02(金)
>>64
> http://www.phpbuilder.com/columns/luis20000420.php3?page=5
> もかなり痛いね。
あー、それは見ててなんだそりゃって思った。痛いねー。
でも PHP には型がないってのがすべての元凶じゃない?
これ以上は言語仕様の見直しの話になると思うよ。
あとマンモス本の著者はオブジェクト指向には全然詳しくない人たちでしょ?
というか彼らに限らず日本の PHP のリーダーの OO 度が凄く低いんだと思う。
サンプルコードはアクセサ以前に分析自体おかしいと思う(その話はまたそのうちに)。
例えば、Pear のソース見てると Factory 使ってうまく実装の詳細を抽象化してるのに
日本だと "PostgreSQL だとこう書け" レベルだからね。やっと PHPLib が日本でも
それなりに認知されてきたけど、開発は Pear ほど盛んじゃないし、Pear に吸収?
統合?なんて話が出るようなものを今から広める意図が理解できない。

66 : 2001/03/03(土)
プログラム板でも質問していたPHP歴1週間のドビギナーです。
半角文字と全角文字の判別をつけるプログラムが分かりません!
現在、マンモス本片手に格闘中です・・・

67 : 2001/03/04(日)
文字コード表見ればいい。
で、判別してどうするの?
判別する以外にもっといい機能があるかもしれないのに。
置換するなら strtr($string, "アイウエオ", "アイウエオ") とかね。

68 : 2001/03/04(日)
>67
レスありがとうございます。
判別して、「半角文字が入力されていたならエラー画面を表示する。
という風にしたいのです。
置き換えも必要だったので助かりました。

69 : 2001/03/05(月)
>>65
> あー、それは見ててなんだそりゃって思った。痛いねー。
「みてみて、これ。ほら、すごいでしょ」
などという痛い人たちのテクニックが、人口に膾炙しないことを祈る。
> でも PHP には型がないってのがすべての元凶じゃない?
型が違う場合のオーバーロードは望まないんだけど、
引数の個数によるオーバーロード位は実装してほしいなぁ。
> 例えば、Pear のソース見てると Factory 使ってうまく実装の詳細を抽象化してるのに
まだ、PHP暦10日くらいなので、「Pear」が何なのか(今書いてる時点では)
知りません(^^;
ちょい、調べてみますね。

70 : 2001/03/05(月)
ちょっとPEAEについてしらべたら、PerlのCPANのようなものだと
判明。で、日本PHPユーザ会のPHPLibとPEARに対する取り組み
(見解)などを調べてみようと思ったら、いきなり、
http://www.php.gr.jp/phplib
ページが見つかりません
ときたもんだ。やる気あるんかい!(ワラ

71 : 2001/03/05(月)
> PEAR
おぉ、このような便利(そう)なものがすでにあるとは!(^^;
# 既に、インストールされてたのね(^^;
しかも、PHPDocという便利そうなものも発見。

72 : 2001/03/05(月)
PHPDocで作成されたPEARのドキュメント群も発見。
http://phpdocu.sourceforge.net/pear-docs/
# memo for 俺

73 : 2001/03/05(月)
>>70
げ、本当だ。それ以前に広川さんのページより情報が古い時点でかなりやる気が
なさそうな気もする。JPUG ほどきちんと組織化する必要はないけど、だからと
いってあれじゃあなぁ。
>>71
PHPDoc は JavaDoc 互換という話だから、ドキュメント作成が楽になることを
期待したりして。
Zend Encoder とか使ってスクリプトのソースを見せない時代がくると
ドキュメントの質がとても重要になってくるから、PHP 使い込むなら慣れておいた
方がいいかもしれないね。

74 : 2001/03/05(月)
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の文法は知らん。

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

76 : 2001/03/06(火)
PHPLIB へはこれでいける模様。
http://www.php.gr.jp/php/phplib/
サイト更新したときに忘れていたんだな、多分。
でもずっと誰も気づかないってことは、誰もアクセスしてないってことか?
寒いなー。

77 : 2001/03/06(火)
なんでpostgreとかoracleとかで関数分かれているのでしょうか。
dbに関して抽象化された関数とかありませんか?
<自分でやれ、ってこと?

78 : 2001/03/06(火)
そのための Pear であり PHPLIB。
とりあえずソース眺めてみなさいな。

79 : 2001/03/10(土)
>>78
PHPLIbなんですが、MySQLがデフォルトなんでそれを念頭に入れられた
サンプルを用意されて、MSSQLでは泣きそうになったり。
でもソースは凄くいい感じ。勉強になりますわ。

80 : 2001/03/23(金)
phpでperlをSSIのように実行するほうほうをおしえてぇぇぇ
たとえば、アクセスログで
access.pl //アクセスログを環境変数とともに、ファイルに書き込む
をPHPで実行する場合h?
ssiだと、
<exec cmd"./access.pl">
でOKですが、PHPで
exec "./access.pl";
とすると、一応実行はされるのですが
環境変数等が記載されません。
タチケテェプロ

81 : 2001/03/25(日)
>>80
よく分からないけど(特に Perl)、exec/system だと HTTP 関連の
環境変数が渡されないみたいだね。
必要な変数を putenv() 使って渡せばいいみたい。
例えばこんな感じ。
putenv("REMOTE_ADDR=" . $HTTP_SERVER_VARS["REMOTE_ADDR"]);
exec "./access.pl"

82 :01/04/27
以下のスクリプトでファイルの先頭に書き込んでるつもりなんですが、
どうも上手くいきません。rewind()をつかっても駄目でした。
どうすればいいんでしょう。
--
<?
$fp = fopen("txt", "a+");
$date = date("Y/m/d H:i:s");
fseek($fp, 0);
fputs($fp, "$date\n");
fclose($fp);
?>

83 :01/04/30
>>82
ん?それで書けたけど。
Permission の問題じゃないの?
httpd が動作しているユーザーに書き込み権限はある?

84 :01/05/01
PHPLIBの使い方がわかんない厨房です。
Webをいろいろ探したんですが、やっぱよくわがんねっす。
どうか厨房でもわかるように教えてけろ

85 :01/05/01
今から覚えるなら 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
英文だけど、コード見れば何をしているかだいたい想像つくと思う。

86 :01/05/01
>>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");
?>

87 :01/05/01
>>86
これでできましたが、テンプファイルに書き込み、コピーというやり方になって
しまうみたいですね。(他のスクリプトもそうだった)
どうもありがとうございます。

88 :01/05/01
>>87
ロックはきちんとしようね。

89 :01/05/01
>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);

90 :01/05/01
>>89
それも考えたけど
fclose($fp);
  :
fclose($fp);
の間でエラーが出て処理が中断されたらファイルが壊れてまずいかなーと
思ったので・・。上のバージョンなら処理が中断されても元ファイルは
無事で残る。

91 :01/05/11
正規表現の質問なんですがお願いします。
[URL yahoo]といれたとき、
<A HREF=”URL”>yahoo</A>
となってほしいんですが・・
いまは、
‘¥(¥[http:[^ [¥]]*¥] \([^¥]¥[]*¥)\]'
とやってみたんですがうまくいきません・・・

92 :01/05/12
全角だからじゃない?

93 :01/05/12
うーん、よくわからないけど、
s/\[(http:\/\/[^\s]+)\s+([^\]]+)\]/<A href=\"$1\">$2<\/A>/;
こういうことかな?

94 :01/05/12
>>92
うまく表示されないかなーとおもい全角にしたんですが・・・
>>93
$fom = "s/\[(http:\/\/[^\s]+)\s+([^\]]+)\]/";
$rep = "/<A href=\"$1\">$2<\/A>/";
eregi_replace( $fom , $rep , $str );
ということでしょうか?。うまくいきません・・・
エディッターでやってみるとうまくいくんですが。
そこいらの言語よりよっぽどむずい!!(正規表現)

95 :01/05/12
はぅっ
思わずPerlのことだと勘違いして答えてしまった…PHPのことは
よくわからないです、ごめんなさぁぁい(大汗

96 :01/05/12
<?php
$str = "あいうえお[http://www.yahoo.co.jp/ Yahoo]かきくけこ";
$str = preg_replace("/\[(http:\/\/[\-_\.!~*'()a-zA-Z0-9;\/?:\@&=+\$%#]+) ([^\]]+)]/", "<a href=\"\\1\">\\2</a>", $str);
echo $str;
?>
------------------------------------------------
ってな感じでどう?
PHP3.0.9以上でね。

97 :01/05/12
>>95
いえいえありがとうございます^^
>>96
自宅サーバーで思ったとうりになったことを確認したんですが、
借りているサーバーが、PHP3.06なんです^^;;;(ふるすぎ・・)
perlの正規表現となにが違うのか調べてみます。
ありがとうございました。

98 :01/05/13
それセキュリティホールがあるから最新のやつにバージョン上げるように管理者に
言ったほうがいいよ。

99 :01/05/13
同意。その方が双方幸せになれる。

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
Perl VS PHP (542)
【企画】CGIでRPGつくーる (217)
CGI: Common Gateway Interface part 13 (180)
Ruby VS PHP 仁義なき戦い (166)
ドメインモデル VS トランザクションスクリプト (166)
[PHP][フレームワーク]CodeIgniter Part2 (403)
--log9.info------------------
Adobe ソフトウェア総合★3 (939)
Chromium派生ブラウザ 「SRWare Iron」 Part8 (437)
CLaunchスレ Part5 (668)
プレステ2エミュについて語ろう【PCSX2】vol90 (372)
Fire File Copy Part11 (261)
Giveaway of the Dayについて 4Days (355)
真魚 〜テキストエディタ〜 1 (370)
.NET Frameworkなんて死んでも入れない 2 (542)
【シームレス】Picasa part8【サクサク】 (906)
【VideoLAN Client】VLC media player Part17 (639)
JaneStyleから他ブラウザへの乗り換え相談所 Part3 (537)
SpeedFan Part6 (447)
動画コーデック(2粒目) (925)
ダウンローダー Orbit(オービット) 07 (920)
違法コピーソフト屋を晒すスレ14 (408)
期間限定の無償公開ソフトを晒すスレ 4 (227)
--log55.com------------------
【自動車・油圧・電子】KYB株式会社 Part3
NTKセラミック5
ブラザー工業 15台目
【ワッチョイ】 デンソー期間工 その65
【FIT】小規模太陽光発電事業者36【PV】
キヤノン化成 Part.2
精神論のダイキン工業その15
日本製鉄 part6