まあ。ほとんどないとおもうが。。
- 1 :マチコ先生 : 2001/02/19(月) 19:25 ID:fo9D3ojw.net
- わがらねぇごどは、
おらにまかせろ!!
クソ質問から性の悩みまで
PHPに関するお問い合わせはここにきやがれ。
即効埋もれる自信はあるぞ。
- 2 :マチコ先生 : 2001/02/19(月) 19:25 ID:fo9D3ojw.net
- 速攻だ。。。
鬱だ。。
=======このスレは終了しました=====
- 3 :名無しさん@お腹いっぱい。 : 2001/02/19(月) 19:37 ID:???.net
- >>1
おいおい、どうしたんだ一体??
何があったの?
- 4 :名無しさん@お腹いっぱい。 : 2001/02/19(月) 22:57 ID:VMbn6RF2.net
- 欝だ
- 5 :1 : 2001/02/20(火) 13:58 ID:rBDM2OcE.net
- >3
速攻を即効と。。。
ああ、、、説明までしてしまったよ(TT)
サヨウナラ
- 6 :名無しさん@お腹いっぱい。 : 2001/02/20(火) 15:42 ID:???.net
- 仮にもマチコ先生を名乗ったのなら「<? echo "イヤーン魔一珍具〜"; ?>」と
タオル1枚に任意のポーズで叫ぶべし。
- 7 :名無しさん : 2001/02/21(水) 00:41 ID:d4tOHtXs.net
- 初心者用スレがないので、ここで聞きます。(スレッドたてて叱られると困るので)
<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(水) 02:06 ID:hkHYI4/Y.net
- $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(水) 02:08 ID:hkHYI4/Y.net
- インデントやり直し。スマソ。
$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 :7 : 2001/02/21(水) 03:20 ID:d4tOHtXs.net
- >>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(水) 03:45 ID:SFBBSOT6.net
- >>10
こんな時間までお仕事ご苦労様です。
- 12 :名無しさん@お腹いっぱい。 : 2001/02/22(木) 22:58 ID:xBiEl826.net
- わかってる人はこうします。可読性は落ちるが。
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 :7 : 2001/02/23(金) 02:33 ID:67fmt352.net
- >>12
whileでもやってみました。
>あと、クオーテーション内で変数を展開させるのはご法度。
これはどういう意味ですか?
- 14 :ねたろ : 2001/02/23(金) 03:24 ID:???.net
- >>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(金) 03:56 ID:/dSWLOBk.net
- >>14
厨は逝ってよし。
${}
- 16 :名無しさん@お腹いっぱい。 : 2001/02/23(金) 13:05 ID:b.rfriYw.net
- 押しつけがましいこと言わないでも
別に好みじゃねえの?
- 17 :名無しさん@お腹いっぱい。 : 2001/02/23(金) 15:08 ID:bPbixCBU.net
- 純粋に好みの問題だ。だがな、速度は違うぞ。
どっちが速いか考えてみ。
- 18 :名無しさん@お腹いっぱい。 : 2001/02/23(金) 15:43 ID:???.net
- >>17
どっちが早いんですか?
- 19 :12 : 2001/02/23(金) 16:23 ID:er8hDHwc.net
- だから、echoで変数を展開しないのが一番早いんだってば。
printは関数、echoはコマンドでしょ?
内部のリソースの食いが全然違う。
パフォーマンスチューニングとはこういうもんだよ。
- 20 :名無しさん@お腹いっぱい。 : 2001/02/23(金) 16:44 ID:???.net
- echo "a" . $a ; がはやくて
print("a$a"; が遅いと言うことですね。
そんなにかわるもんですか?
- 21 :12 : 2001/02/23(金) 17:04 ID:er8hDHwc.net
- 個人でほそぼそやってるサイトならどっちでもいいけど、
1日1万ユーザー以上を捌くようなサイトなら、大違い。
- 22 :名無しさん@お腹いっぱい。 : 2001/02/23(金) 18:22 ID:b.rfriYw.net
- なるほどリン
- 23 :名無しさん@お腹いっぱい。 : 2001/02/23(金) 20:07 ID:kxwRI9Lg.net
- PHPで吐いたクッキーをJAVAスクリプトで取得すると日本語が化けるんだけど
なんででしょ?
- 24 :名無しさん@お腹いっぱい。 : 2001/02/23(金) 20:31 ID:LFdQYqsI.net
- >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(金) 22:41 ID:???.net
- microtime() でどう?
time() だと秒単位だよね。
あと for と while とか(for が遅いってのは PHP/FI->PHP3 への移行
ドキュメントに書いてあったけど、Zend Engine になった時点でこの情報は
もう古いような・・)、echo "$a<br>\r" と echo $a . "<br>\r" を
比較したらどう?
今職場なので試せない・・・。
- 26 :名無しさん@お腹いっぱい。 : 2001/02/23(金) 23:34 ID:3CcBfQsU.net
- >>24
for の速度計ってどうする。
echo だけ10万行書けよ
- 27 :名無しさん@お腹いっぱい。 : 2001/02/23(金) 23:46 ID:hcsqrtx2.net
- >>23
JavaScriptでの日本語環境はウルトラ問題ありまくりだから
解決は大変だぞー。特にねすけは最低。4.5ぐらいから突如unicode
意識し始めてバグまみれ。
PHPだと鯖設定によりEUCで吐いてる可能性あるから php.ini を
疑ってみよ。
- 28 :名無しさん@お腹いっぱい。 : 2001/02/24(土) 00:52 ID:BWmDvvaE.net
- >19
詳細きぼーん。
>24
>26
もっと使いやすいベンチマーク考えてん。
- 29 :ねたろ : 2001/02/24(土) 01:17 ID:???.net
- >>27
クッキー問題、小生も文字化け問題で、結局全部JavaScriptでかきました。
internal_encoding 、http_output ともに UTFにしても、化けました。
- 30 :名無しさん@お腹いっぱい。 : 2001/02/24(土) 01:47 ID:wczkl5o..net
- >>28
厨は逝ってよし
- 31 :ねたろ : 2001/02/24(土) 01:53 ID:???.net
- >>25
それぞれ1万回ずつ、3セットやったらブラウザが死んでしまいました。
- 32 :名無しさん : 2001/02/24(土) 02:25 ID:???.net
- >>30
逝ってよしヴァカうざい
- 33 :12 : 2001/02/24(土) 11:44 ID:TMAe/vso.net
- >>31
CGI版を作って、1行目にset_time_limit(0);と書いて試してみて。
ps auxでメモリ+CPUの負荷を見れば、どっちが軽いか分るはず。
- 34 :print派 : 2001/02/24(土) 16:31 ID:8NrK7RQ6.net
- >>12
PHPプログラム入門にはechoよりprintだと書いてあったんで
僕はprint派で逝っちゃいますね.
- 35 :電動ナナシ : 2001/02/24(土) 22:18 ID:???.net
- 性能の確保が最重要事項でなければ、書きやすさを優先していいでしょ。
でも >>12 の前提となっているのは、性能が最重要事項であるような環境だと
思うぞ。そういうところでは、ほんのわずかな無駄ももったいないという話に
なる。なんでデータベースで永続的接続 (pConnect 系の関数で実現) なんて
機能が求められているか分かる?
# 本来はコネクションプーリングとかってのは TP モニタ等のミドルウェアの
任務だったけど、その意味を理解して使っている人って今は減っているんだろうな・・。
別にそれの良し悪しを問うわけではないよ。
- 36 :12 : 2001/02/25(日) 12:42 ID:MVnTrEag.net
- >>35
でもさぁ、PHPのなかでpg_pconnectとか書いてるとなんか鬱になる。
「アプリケーションサーバがやって」って感じ。
Cacheだけじゃものたりないよねぇ〜。
電動ナナシさんはプロっぽいから、そこら辺は分ってるぽいけど。
- 37 :名無しさん@お腹いっぱい。 : 2001/02/25(日) 14:53 ID:BPYwYYjE.net
- なんか文字列比較の仕様がおかしくない?
文字列先頭で一致すると0が返ってしまうのはまずいと思うんだけど。
- 38 :名無しさん@お腹いっぱい。 : 2001/02/26(月) 04:19 ID:5V63qlVI.net
- それはFAQ
- 39 :名無しさん@お腹いっぱい。 : 2001/02/26(月) 15:43 ID:WMoQ17m6.net
- ここにもいたか、パフォーマンス厨房が(ワラ
- 40 :名無しさん@お腹いっぱい。 : 2001/02/26(月) 15:55 ID:Uk3SauUI.net
- パフォーマンスもバカにできんぞ。
特にi-mode用鯖。
- 41 :名無しさん@お腹いっぱい。 : 2001/02/26(月) 18:24 ID:WMoQ17m6.net
- ■変数展開にかかる時間の考察
□環境
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(火) 14:03 ID:DairPmxM.net
- 俺の考察に、誰かケチつけてくれよ。
- 43 :初期不良 : 2001/02/27(火) 17:08 ID:4m12ylW2.net
- 2倍も違うのね。
じゃあ変数展開は避けるようにしよ。
どっちにしろ変数のあとに文字が続くときとかあるし。
- 44 :初期不良 : 2001/02/27(火) 17:29 ID:nA5qaP4c.net
- と言うか変数展開するかしないかを比較するなら、
$s .= "$a";
$s .= $a;
を比較するべきでは?
- 45 :名無しさん@お腹いっぱい。 : 2001/02/27(火) 17:46 ID:fO7.zH8U.net
- ■ 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(火) 23:58 ID:nA5qaP4c.net
- >>45
いやだからオーダーが重要なんでは?
繰り返さない処理ならその通りだけど。
- 47 :名無しさん@お腹いっぱい。 : 2001/02/28(水) 02:38 ID:7JL8XSEA.net
- >と言うか変数展開するかしないかを比較するなら、
>$s .= "$a";
>$s .= $a;
>を比較するべきでは?
$s .= "z$a";
$s .= "z".$a;
- 48 :名無しさん@お腹いっぱい。 : 2001/02/28(水) 13:41 ID:???.net
- >>46
オーダーとは、ページへの同時アクセス数のことでしょうか?
例えば、あるページにechoなりprintなりの出力系関数が
100個使われているとして、そこに同時アクセスが100あったと
します。
この場合に、echoを使っている場合とprintを使っている場合
に、レスポンスが大きく変わってくるという話ですか?
それは、いったい、どれくらいの違いがあると予想され、どうすれば
検証出来るとお考えですか?
- 49 :名無しさん@お腹いっぱい。 : 2001/02/28(水) 13:45 ID:???.net
- >>46
それとも、オーダーとは、同一ページ内で使われている出力系
関数の呼ばれる回数のことでしょうか?
- 50 :48 : 2001/02/28(水) 13:51 ID:???.net
- 最近ちょっと忙しくて、いろいろ試す時間がなかなか取れない
のですが、時間が出来たら、Siegeでストレステストをするつもりです。
# siege - An HTTP regression, stress testing and benchmarking application
もっと気の利いたストレステストツールを持ってる人がいたら、
それで試してくれるとうれしいんだけど。
ちなみに、私の予想は、「なにをやってもそれほど変わらない」です。
それほどというのは、10ms未満くらいの違い、と思っています。
まぁ、Siegeでそこまで測れるかどうかというのが問題ですね。
- 51 :48 : 2001/02/28(水) 14:06 ID:???.net
- ちなみに、テストに使用したコードはこれ。
-- 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 :48 : 2001/02/28(水) 14:07 ID:???.net
- あー、変換に失敗してる。
鬱氏。
- 53 :名無しさん@お腹いっぱい。 : 2001/02/28(水) 17:22 ID:.g9DxqG..net
- siege だって、プ。遅くて使い物にならんよ。子供のおもちゃ。
- 54 :48 : 2001/02/28(水) 18:08 ID:???.net
- >>53
子供のおもちゃでもさ、何もやらないよりはましでしょ?
で、あなたは何を使ってるの?
- 55 :名無しさん@お腹いっぱい。 : 2001/03/01(木) 07:04 ID:Gil5gQ1Q.net
- php3.0.15のmail関数は自動でヘッダとか本文をJISにエンコードしてくれたりしますか?
- 56 :55 : 2001/03/01(木) 07:04 ID:Gil5gQ1Q.net
- もち、国際化版ね
- 57 :ねたろ : 2001/03/01(木) 09:13 ID:???.net
- >>55
本文はなにも言わなくてもJISに変換してくれるほか、対応したヘッダをふかしてくれます。
ASCII
- 58 :ねたろ : 2001/03/01(木) 09:14 ID:???.net
- 失礼、途中でポストしてしまいました。
ASCII文字以外がヘッダに含まれる場合は明示的にMIMEエンコードしてあげる必要があります。
- 59 :名無しさん@お腹いっぱい。 : 2001/03/01(木) 23:50 ID:Y7nlNi2I.net
- おっす!おら悟空(さぶー)
ところでみなさんはPHPでオブジェクト指向訃露倉民具死手魔須華?
わたしは地道に構造化プログラミングして増す世。
- 60 :名無しさん@お腹いっぱい。 : 2001/03/02(金) 09:04 ID:aREvpzL6.net
- >>59
OOもどき(class)はよく使いますよ。
でも、コンストラクタをオーバーロードできないのがいや。
あと、マンモス本なんかで、変数をオーバーライド(?)して、
「カスタマイズ」などと称するのがいや。
- 61 :名無しさん@お腹いっぱい。 : 2001/03/02(金) 10:24 ID:???.net
- classよくわかんねー
- 62 :名無しさん : 2001/03/02(金) 13:14 ID:???.net
- 同じく、よくわかんねー。
マンモス本見ても意味わからん。
なんでこんなに理解力がないんだろうと思います。
- 63 :電動ナナシ : 2001/03/02(金) 16:16 ID:???.net
- >>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(金) 17:18 ID:diq0AjCk.net
- >>63
うーむ、マンモス本でアクセッサをほとんで(全然?)使ってない
というのも痛いが(つーか、OOP解ってないに、48000ペリカ)、
http://www.phpbuilder.com/columns/luis20000420.php3?page=5
もかなり痛いね。
オーバーロード位使わせろよ。
- 65 :電動ナナシ : 2001/03/02(金) 17:41 ID:???.net
- >>64
> http://www.phpbuilder.com/columns/luis20000420.php3?page=5
> もかなり痛いね。
あー、それは見ててなんだそりゃって思った。痛いねー。
でも PHP には型がないってのがすべての元凶じゃない?
これ以上は言語仕様の見直しの話になると思うよ。
あとマンモス本の著者はオブジェクト指向には全然詳しくない人たちでしょ?
というか彼らに限らず日本の PHP のリーダーの OO 度が凄く低いんだと思う。
サンプルコードはアクセサ以前に分析自体おかしいと思う(その話はまたそのうちに)。
例えば、Pear のソース見てると Factory 使ってうまく実装の詳細を抽象化してるのに
日本だと "PostgreSQL だとこう書け" レベルだからね。やっと PHPLib が日本でも
それなりに認知されてきたけど、開発は Pear ほど盛んじゃないし、Pear に吸収?
統合?なんて話が出るようなものを今から広める意図が理解できない。
- 66 :超絶初心者 : 2001/03/03(土) 16:23 ID:n.OCJQfA.net
- プログラム板でも質問していたPHP歴1週間のドビギナーです。
半角文字と全角文字の判別をつけるプログラムが分かりません!
現在、マンモス本片手に格闘中です・・・
- 67 :電動ナナシ : 2001/03/04(日) 12:44 ID:???.net
- 文字コード表見ればいい。
で、判別してどうするの?
判別する以外にもっといい機能があるかもしれないのに。
置換するなら strtr($string, "アイウエオ", "アイウエオ") とかね。
- 68 :超絶初心者 : 2001/03/04(日) 18:48 ID:vm9J//FA.net
- >67
レスありがとうございます。
判別して、「半角文字が入力されていたならエラー画面を表示する。
という風にしたいのです。
置き換えも必要だったので助かりました。
- 69 :64 : 2001/03/05(月) 09:27 ID:???.net
- >>65
> あー、それは見ててなんだそりゃって思った。痛いねー。
「みてみて、これ。ほら、すごいでしょ」
などという痛い人たちのテクニックが、人口に膾炙しないことを祈る。
> でも PHP には型がないってのがすべての元凶じゃない?
型が違う場合のオーバーロードは望まないんだけど、
引数の個数によるオーバーロード位は実装してほしいなぁ。
> 例えば、Pear のソース見てると Factory 使ってうまく実装の詳細を抽象化してるのに
まだ、PHP暦10日くらいなので、「Pear」が何なのか(今書いてる時点では)
知りません(^^;
ちょい、調べてみますね。
- 70 :64 : 2001/03/05(月) 09:47 ID:???.net
- ちょっとPEAEについてしらべたら、PerlのCPANのようなものだと
判明。で、日本PHPユーザ会のPHPLibとPEARに対する取り組み
(見解)などを調べてみようと思ったら、いきなり、
http://www.php.gr.jp/phplib
ページが見つかりません
ときたもんだ。やる気あるんかい!(ワラ
- 71 :64 : 2001/03/05(月) 10:09 ID:???.net
- > PEAR
おぉ、このような便利(そう)なものがすでにあるとは!(^^;
# 既に、インストールされてたのね(^^;
しかも、PHPDocという便利そうなものも発見。
- 72 :64 : 2001/03/05(月) 14:11 ID:JmQP/k0Y.net
- PHPDocで作成されたPEARのドキュメント群も発見。
http://phpdocu.sourceforge.net/pear-docs/
# memo for 俺
- 73 :電動ナナシ : 2001/03/05(月) 15:43 ID:???.net
- >>70
げ、本当だ。それ以前に広川さんのページより情報が古い時点でかなりやる気が
なさそうな気もする。JPUG ほどきちんと組織化する必要はないけど、だからと
いってあれじゃあなぁ。
>>71
PHPDoc は JavaDoc 互換という話だから、ドキュメント作成が楽になることを
期待したりして。
Zend Encoder とか使ってスクリプトのソースを見せない時代がくると
ドキュメントの質がとても重要になってくるから、PHP 使い込むなら慣れておいた
方がいいかもしれないね。
- 74 :64 : 2001/03/05(月) 15:56 ID:???.net
- 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 :64 : 2001/03/05(月) 16:00 ID:???.net
- >> 65
> 例えば、Pear のソース見てると Factory 使ってうまく実装の詳細を抽象化してるのに
> 日本だと "PostgreSQL だとこう書け" レベルだからね。やっと PHPLib が日本でも
> それなりに認知されてきたけど、開発は Pear ほど盛んじゃないし、Pear に吸収?
> 統合?なんて話が出るようなものを今から広める意図が理解できない。
やっと、これが解りました&激しく同意。
- 76 :電動ナナシ : 2001/03/06(火) 07:44 ID:???.net
- PHPLIB へはこれでいける模様。
http://www.php.gr.jp/php/phplib/
サイト更新したときに忘れていたんだな、多分。
でもずっと誰も気づかないってことは、誰もアクセスしてないってことか?
寒いなー。
- 77 :名無しさん@お腹いっぱい。 : 2001/03/06(火) 19:00 ID:bewjkJK6.net
- なんでpostgreとかoracleとかで関数分かれているのでしょうか。
dbに関して抽象化された関数とかありませんか?
<自分でやれ、ってこと?
- 78 :電動ナナシ : 2001/03/06(火) 19:08 ID:8sOoCYd..net
- そのための Pear であり PHPLIB。
とりあえずソース眺めてみなさいな。
- 79 :名無しさん@お腹いっぱい。 : 2001/03/10(土) 01:54 ID:GxptUnfU.net
- >>78
PHPLIbなんですが、MySQLがデフォルトなんでそれを念頭に入れられた
サンプルを用意されて、MSSQLでは泣きそうになったり。
でもソースは凄くいい感じ。勉強になりますわ。
- 80 :名無しさん@お腹いっぱい。 : 2001/03/23(金) 18:55 ID:V1F3lA2M.net
- phpでperlをSSIのように実行するほうほうをおしえてぇぇぇ
たとえば、アクセスログで
access.pl //アクセスログを環境変数とともに、ファイルに書き込む
をPHPで実行する場合h?
ssiだと、
<exec cmd"./access.pl">
でOKですが、PHPで
exec "./access.pl";
とすると、一応実行はされるのですが
環境変数等が記載されません。
タチケテェプロ
- 81 :電動ナナシ : 2001/03/25(日) 07:24 ID:???.net
- >>80
よく分からないけど(特に Perl)、exec/system だと HTTP 関連の
環境変数が渡されないみたいだね。
必要な変数を putenv() 使って渡せばいいみたい。
例えばこんな感じ。
putenv("REMOTE_ADDR=" . $HTTP_SERVER_VARS["REMOTE_ADDR"]);
exec "./access.pl"
- 82 :ガシガシ:2001/04/27(金) 17:39 ID:vZWj/rt6.net
- 以下のスクリプトでファイルの先頭に書き込んでるつもりなんですが、
どうも上手くいきません。rewind()をつかっても駄目でした。
どうすればいいんでしょう。
--
<?
$fp = fopen("txt", "a+");
$date = date("Y/m/d H:i:s");
fseek($fp, 0);
fputs($fp, "$date\n");
fclose($fp);
?>
- 83 :電動ナナシ:2001/04/30(月) 06:28 ID:???.net
- >>82
ん?それで書けたけど。
Permission の問題じゃないの?
httpd が動作しているユーザーに書き込み権限はある?
- 84 :まじまじ:2001/05/01(火) 00:43 ID:m6M39drc.net
- PHPLIBの使い方がわかんない厨房です。
Webをいろいろ探したんですが、やっぱよくわがんねっす。
どうか厨房でもわかるように教えてけろ
- 85 :電動ナナシ:2001/05/01(火) 04:58 ID:???.net
- 今から覚えるなら 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 :電動ナナシ:2001/05/01(火) 05:33 ID:???.net
- >>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 :ガシガシ:2001/05/01(火) 09:46 ID:KK6/m1p2.net
- >>86
これでできましたが、テンプファイルに書き込み、コピーというやり方になって
しまうみたいですね。(他のスクリプトもそうだった)
どうもありがとうございます。
- 88 :電動ナナシ:2001/05/01(火) 17:33 ID:???.net
- >>87
ロックはきちんとしようね。
- 89 :名無しさん@お腹いっぱい。:2001/05/01(火) 17:55 ID:???.net
- >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 :電動ナナシ:2001/05/01(火) 18:30 ID:???.net
- >>89
それも考えたけど
fclose($fp);
:
fclose($fp);
の間でエラーが出て処理が中断されたらファイルが壊れてまずいかなーと
思ったので・・。上のバージョンなら処理が中断されても元ファイルは
無事で残る。
- 91 :名無しさん@お腹いっぱい。:2001/05/11(金) 23:38 ID:NVqhj/3Y.net
- 正規表現の質問なんですがお願いします。
[URL yahoo]といれたとき、
<A HREF=”URL”>yahoo</A>
となってほしいんですが・・
いまは、
‘¥(¥[http:[^ [¥]]*¥] \([^¥]¥[]*¥)\]'
とやってみたんですがうまくいきません・・・
- 92 :名無しさん@お腹いっぱい。:2001/05/12(土) 00:10 ID:???.net
- 全角だからじゃない?
- 93 :T女の竹田:2001/05/12(土) 13:44 ID:???.net
- うーん、よくわからないけど、
s/\[(http:\/\/[^\s]+)\s+([^\]]+)\]/<A href=\"$1\">$2<\/A>/;
こういうことかな?
- 94 :91:2001/05/12(土) 14:36 ID:VCpRGYtI.net
- >>92
うまく表示されないかなーとおもい全角にしたんですが・・・
>>93
$fom = "s/\[(http:\/\/[^\s]+)\s+([^\]]+)\]/";
$rep = "/<A href=\"$1\">$2<\/A>/";
eregi_replace( $fom , $rep , $str );
ということでしょうか?。うまくいきません・・・
エディッターでやってみるとうまくいくんですが。
そこいらの言語よりよっぽどむずい!!(正規表現)
- 95 :T女の竹田:2001/05/12(土) 14:49 ID:???.net
- はぅっ
思わずPerlのことだと勘違いして答えてしまった…PHPのことは
よくわからないです、ごめんなさぁぁい(大汗
- 96 :あんてぃーく:2001/05/12(土) 15:28 ID:J8qUjUM6.net
- <?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 :91:2001/05/12(土) 17:43 ID:VCpRGYtI.net
- >>95
いえいえありがとうございます^^
>>96
自宅サーバーで思ったとうりになったことを確認したんですが、
借りているサーバーが、PHP3.06なんです^^;;;(ふるすぎ・・)
perlの正規表現となにが違うのか調べてみます。
ありがとうございました。
- 98 :電動ナナシ:2001/05/13(日) 00:36 ID:???.net
- それセキュリティホールがあるから最新のやつにバージョン上げるように管理者に
言ったほうがいいよ。
- 99 :96:2001/05/13(日) 04:34 ID:???.net
- 同意。その方が双方幸せになれる。
- 100 :91:2001/05/13(日) 12:33 ID:E.Jy.HWU.net
- >>98
うは、そうなんですか。
>>99
ですね。
44 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★