トップページ⇒php
1001コメント324KB

【PHP】質問スレッド Part4

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん02/06/02 15:32ID:f3afNVBG
レスは気長に待つのが良い感じかも。


<<参考>>

■本家
http://www.php.net/

■日本 PHP ユーザ会
http://www.php.gr.jp/

■PHP マニュアル
http://www.php.net/manual/ja/

■PEAR マニュアル
http://pear.php.net/manual/ja/


過去スレ, 関連スレは>>2を見よう。
00321902/06/05 22:02ID:JGd9rG/R
いや確かに本家のマニュアル読めば一発でした。。
ただうちの共用サーバーはhtaccessじゃ設定できなくしてあるっぽいです。
うーん。。
0033nobodyさん02/06/05 22:39ID:Bl/EL1d3
>>19
じゃあ
>>20さんのおっしゃるように、まずは自分で気をつけては?
初期化しない変数を使わなきゃいいだけな気が。

>>28
ディレクトリのパーミッションは707でしょうか?
0034nobodyさん02/06/06 00:52ID:???
>>33
いえ、777です。
0035nobodyさん02/06/06 01:08ID:hbHT1ZtS
カウンタ、BBS、簡易なページ自動生成スクリプトを
作ることを目標としてPHPをはじめたところなんですが、
flockに関して質問があります

理屈で言えばすべてのプロセスがflockを使用していれば
排他制御は正しく行われるはずですが、ネット上でのCGI講座などで、
Parlの場合はファイルのロックにはロックファイルを置く方法をよく見かけます。
PHPの場合だとflockを積極的に利用しているように見受けられました。

とするとPHPでのflockの信頼性は、Parlのより高いと勝手に想像してるのですが
実際のところはどうなんでしょうか?
抽象的な質問で申し訳ないですが、私見でも構いませんので
どなたかレスお願いします。
0036nobodyさん02/06/06 01:28ID:???
ぁぅぁぅぉー

http://pc.2ch.net/test/read.cgi/php/997199513/l50
0037nobodyさん02/06/06 01:42ID:???
>35
まず、Parlとは何かを小一時間ほど問い詰めたい。
その後、flockとは何かを小一時間ほど調べてみることをおすすめする。
00383502/06/06 02:53ID:???
>>36
ざっと目を通しました
色々参考になりました
ありがとうございます

>>37
失礼しました、Peal、綴り間違いです

POSIX準拠のflockが動作しているのなら
PealもPHPも、ロックをすり抜けられる可能性は
同じだということでしょうか。

私、勘違い&見当違いですかね…
とりあえずもっと勉強してから出直します
ありがとうございました
0039nobodyさん02/06/06 03:57ID:???
> Peal

(´д⊂
0040nobodyさん02/06/06 06:33ID:???
すいません、PHPのクラスについて教えて下さい。

 今個別データベース非依存のデータベース操作APIを作っているんですが、
基底クラスもどきを作り、いざ継承という段階で躓いてしまいました。
 質問は親クラスのプロパティ(クラス変数)をダイレクトに取得する方法が
ないか?ということです。
 ものの本では、var定義されている変数はスコープ内(=すなわちクラス内)
でしか通用しないし、そもそもPHPは関数であり、クラスによる設計はあくま
でもオプション程度のものと書いてあり、実際にparent::やhoge::とか、
試してみましたがだめでした。
 それではと思って、親クラスに親クラス自信のプロパティを取得し、連想配列
で戻り値を返すメソッドを作り、それを子クラスで参照する方法もやってみた
のですが、値が(=連想配列の値の部分)NULLで返ってきます。

 何か見落としている点とかやはりあるんでしょうか?教えて下さい。
(環境:Win98 + An HTTPd + PHP ver4.1.2)
0041名無しさん02/06/06 09:23ID:???
毎回ちゃんとflockするようにすれば大丈夫じゃないの?
まあ、作法を守らないプログラムが他にあれば問題だけど。
0042nobodyさん02/06/06 12:51ID:???
PerlもPHPもflockはUNIXのflockシステムコールを使っているだけじゃないの?
0043nobodyさん02/06/06 13:06ID:???
NTサーバでもflockできますが・・・
0044名無しさん02/06/06 14:26ID:???
POSIXのflockが正しいのかな?
0045nobodyさん02/06/06 15:34ID:???
WindowsでPHP ( ´,_ゝ`)プッ
0046nobodyさん02/06/06 21:10ID:???
>>45
何か?
0047キム02/06/06 21:48ID:HEq09nZx
ファイルが入っているディレクトリを
707でパーミッションの設定をしたら
ファイルを作成する事が出来ました。
しかし、そのファイルにはパーミッションがないので
書き込む事が出来ません。
どしたらよいのでしょうか???
0048nobodyさん02/06/06 22:25ID:???
>>47
>パーミッションがない
(゚Д゚)ハァ?

PHPとの関連は?
0049nobodyさん02/06/06 22:46ID:auwDQifb
いままで動いていた index.php を CGI として動かしたいのですが、
先頭に #!/usr/bin/php4 という行を追加して index.cgi という名前にして実行属性をつけるだけではダメなのでしょうか?

エラー 500 (Internal Server Error) が出てしまいます。

Debian GNU/Linux 3.0 (x86) + Apache です。
0050 ◆AngelBlk 02/06/06 22:57ID:???
>49
もの凄い勢いで質問なんですが
PHPのCGI版をインストールしてありますか・・・。

/usr/bin/php4が存在しないとか言ったら
大笑いですよ・・・。
0051nobodyさん02/06/06 23:00ID:auwDQifb
>50 which php4 ではでてくるのと、./index.cgi を実行するとちゃんとレスポンスヘッダと HTML 本体が出力されるのは確認してるんですが、なぜか Apache 経由で CGI として実行するとエラーログに Premature end of script headers と出力されるんです…

もうちょっと調べてみます。
0052 ◆AngelBlk 02/06/06 23:12ID:???
>51
流石にインストールしてないなんて事無いですか(苦笑。
んー、じゃあ可能性だけど。
index.cgiの文字コード/改行コードは?


//というか、php4なんて名前で入るのか・・・。
//php4.1.2の時にCGI版入れた時
//バイナリファイルの名前phpだったけど変わったのかな。
0053nobodyさん02/06/06 23:44ID:zHub/sfn
「php4 徹底攻略」 のPDFから ex4 (p144-p149まで) をコピペしてサーバーにアップし、
ブラウザから参照すると、必ずpgconnect.iniの中身が表示され、一番下に
Fatal error: Class mypgselect: Cannot inherit from undefined class pgselect in /usr/home/takeshi04/public_html/ex4.php on line 11
となり動作しません。

同じような現象起きた人いますか? もしくはどのような対処法がありますでしょうか?

ちなみにex1〜ex3まではうまく動作しました。
0054nobodyさん02/06/07 00:30ID:???
タケシーーー
0055nobodyさん02/06/07 00:36ID:???
呼んだ?
0056nobodyさん02/06/07 00:55ID:???
echo "$yonde-naiyo!";
0057nobodyさん02/06/07 01:53ID:kC35ouJd
$month = (isset($month)) ? $month : date("n",time());

これはどういうことを意味するのでしょうか?
0058nobodyさん02/06/07 02:43ID:???
あなたにはマニュアルを読むことをお勧めします。
キーワードは「isset関数」「三項演算子」「date関数」です。
ガンバレ
0059nobodyさん02/06/07 03:48ID:???
>>58さん

三項演算子と言うのですね。
マニュアル読んでみましたが、
if 文で書き換えると↓のような感じということでしょうか?

if(isset($month)) {
$month = $month;
} else {
$month = date("n",time());
}
006057 = 5902/06/07 03:49ID:???
あっ、、、57 = 59です。
0061nobodyさん02/06/07 05:32ID:FyQSs3TI
やっぱこれからはセッション管理をなるだけ使わない方向になっちゃうんですか?
0062nobodyさん02/06/07 10:35ID:???
>>61
なぜ?

漏れはこれから使おうと思っていたのに(w
0063nobodyさん02/06/07 10:48ID:lJP0VltF
PHP にも、Java でいうところの JDBC や Perl, Ruby の DBI みたいな
データベースに依存しない、使いやすいデータベース利用のための
ライブラリは存在するのでしょうか。
00643302/06/07 11:02ID:???
>63
PEARのDBクラスじゃ駄目なのですか?
0065nobodyさん02/06/07 11:47ID:RmSLRVAQ
PEAR(・∀・)???
0066 ◆AngelBlk 02/06/07 11:53ID:???
>65
http://pear.php.net/
これ。
後からDB変えた時とか、ほとんどコードの変更いらなくて便利。
0067 ◆AngelBlk 02/06/07 11:54ID:???
補足。
ttp://www.avantexchange.com/php/pear_tut.php

後はこことか参考にするといいと思うよ。
0068ジー子02/06/07 16:02ID:mUQr0G4t
$array = array("A"=>"aデス","B"=>"bデス。");
という配列の中身を、
一関数で全て出力するという関数って何でしたっけ。
おしえてくだsちい。
0069 ◆AngelBlk 02/06/07 16:32ID:???
>68
http://www.php.net/manual/ja/function.array.php
http://www.php.net/manual/ja/function.print-r.php
このくらい自分で調べようよ・・・。
公式マニュアルの配列の所にそのまま書いてあるんだしさ。
0070ジー子02/06/07 16:51ID:mUQr0G4t
>>68
print_r()じゃねえの?
百済ねえ質問し点者ね絵よ。
0071nobodyさん02/06/07 17:12ID:???
>>70
くだらねえ誤字してんじゃねえよ。
0072nobodyさん02/06/08 03:28ID:u5/r5db4
正規表現で最短マッチするにはどうすればいいのですか?
0073nobodyさん02/06/08 05:59ID:???
PHP のマニュアルを勝手に自分のサーバにおいて
誰でも閲覧できる状態にしても構いませんか?
0074nobodyさん02/06/08 13:53ID:???
>>72-73
タイーホ
0075nobodyさん02/06/08 15:12ID:???
>>74
おまえもまとめてタイーホダ-
0076nobodyさん02/06/08 17:25ID:VO8Wct1A
すいません。質問させてください。
http://php3.de/manual/ja/function.each.php
each って、
$bar[0] == $bar[key] で、 $bar[1] == $bar[value] のよーなのですけど、
同じ値なのだったらkey,valueか、0,1かの
どっちかのペアだけでいいと思うんだけど。
4つある意味はなんで?
0077nobodyさん02/06/08 22:27ID:???
$bar["key"]や$bar["value"]でキーと値を連想配列として使うのと、
list($key,$value)=each($bar);
で通常の配列として使うこともできるからでは?
0078nobodyさん02/06/09 00:39ID:QolOb+V5
質問なんですが。
ネットにアップロードされているファイルをfopenの読み込みモードで読み込んで、それをprintで出力しようとしても
Resource id #1と出ます。

これはどういう意味なんでしょうか?
0079nobodyさん02/06/09 00:58ID:???
…ひょっとして
$fp=foepn("http://****","r");
echo $fp;

とかやってないですか?(汗)
接続IDです。>Resource id #1
00807902/06/09 00:59ID:???
自己レス
>$fp=foepn("http://****","r");

foepnって…(恥
fopenですスイマセン。
0081nobodyさん02/06/09 01:14ID:???
>>79-80さん
・・やってます・・・・
どういう書き方をすればいいんでしょうか?

それと、差し支えなければ接続IDというのも教えて頂きたいのですが・・・。
00827902/06/09 01:31ID:???
マニュアル読みましょ…。
普通にファイルを開くのと同じようにできますよ。
キーワード:ファイルハンドル fopen fread(fgets)
などなど。
fgetsやfreadの例を見た方がわかりやすいかもです。
http://www.php.net/manual/ja/ref.filesystem.php
00837602/06/09 01:34ID:A3vcjjB5
>>77
>list($key,$value)=each($bar);
これって、
$key=key($bar);
$value=current($bar);
next($bar);
と同じことですよね。
となると、listで簡略化できるから、ってことで納得しますです。
ありがとうでしたー。

>>78
レッツphpのチュートリアルにあるやつはどう?
ttp://php.s3.to/tt/tt6.php
00847802/06/09 01:41ID:QolOb+V5
>>82
すいません、よく読んでおいたつもりなんですが・・・出直してきます

>>83
熟読してきます。ありがとうございました。
0085nobodyさん02/06/09 07:06ID:???
何行かある文字列から、
[begin] と [end] に挟まれた部分を
取り出すにはどうすれば良いでしょうか?

-----------------------
あああああ
いいいいいいいいい
[begin]ほげほげ[end]
ううう
ええええええ
おお
-----------------------

だとしたら、「ほげほげ」を取り出したいのです。
分かりにくくてすみません。
0086nobodyさん02/06/09 08:26ID:???
>>85
strpos + substr使うなり正規表現使うなりご自由にどうぞ。
0087nobodyさん02/06/09 13:27ID:A3vcjjB5
PerlからPHPに変えるソフトってない?
JavaからC#に変換してくれるみたいなやつ。
0088nobodyさん02/06/09 14:48ID:???
まだまだ駆け出しなんですが、気になったので質問します。
可変変数ってどういう使い方があるんですか?
0089nobodyさん02/06/09 16:12ID:???
>>85
変数に全行を代入する
[begin]で区切る
[end]で区切る
完
0090nobodyさん02/06/10 18:53ID:WsKMKNfu
php4.2.1にバージョンアップしたら、フォームからメールを送ることができなくなってしまったのですが、どこをどのようにいじったら直りますか?
初心者なのでよろしくお願いします
0091名無しさん02/06/10 21:21ID:???
>>90
phpのバージョンを元に戻してください。
0092nobodyさん02/06/10 21:45ID:WsKMKNfu
>>90
ひ〜っ。
その方法しかないでしょうか、、、。

できれば、emacsとか使うことはできるので、設定ファイルのいじり方とかを教えていただきたいのですが、、、、。
0093nobodyさん02/06/10 21:45ID:WsKMKNfu
>>91でした。
間違えました。
0094戊寅02/06/10 22:47ID:???
>>90
php.ini の register_globals = を on に設定してみてokならば、
http://www.php.net/manual/ja/security.registerglobals.php
を参考にスクリプトを修正する。

sendmail_path = が適切に設定されているか否かを確認。

この2つくらいしか思いつかないっす。

前のバージョンはいくつか? 環境は? スクリプトの具体例は?
などを書くと、識者がアドバイスしてくれると思うです。
0095nobodyさん02/06/11 00:08ID:fQRftcxO
header("Location: http://hoge");
を使うと鯖負担大なの?

既出でしたらすみません。
0096nobodyさん02/06/11 01:40ID:???
>>95
へ?なんで?
00979502/06/11 02:02ID:fQRftcxO
>>96
以前Perlで
print "Location: http://hoge\n\n";exit;
だけのCGI(URL転送のみ)を使ってたら、レンタル鯖屋さんに
高負担かかってますと怒られた事と、

最近PHPで一日7万弱アクセスのページに
header("Location: http://hoge");
これ使ったら、鯖負担がかなり高くなったから…
まぁ、ほかのPHP処理で高くなったのかもしれないけど、
かなり低負担重視で作ったから、あとはコレかな?と…
0098nobodyさん02/06/11 03:57ID:???
>>97
URL転送のみってのが嫌がられたんじゃないの?
print "Location: http://hoge\n\n";exit;は文字列を表示して終了するだけだし。
0099nobodyさん02/06/11 04:10ID:fQRftcxO
>>98
TOPコマンドで高負荷確認済み

>文字列を表示して終了するだけだし
(゚Д゚)?
0100nobodyさん02/06/11 04:19ID:???
>>99
あんたまさかLocationをPerlが理解すると思っているのか?
URL転送ということは他サイトに飛ばしていたんだろ?
010110002/06/11 04:22ID:???
s/Perlが/PerlやWebサーバーソフトが/
0102nobodyさん02/06/11 08:53ID:???
>>99
RFC2616読んで、出直してこい。

>>90
とりあえず引数をハードコーディングした場合、mail関数は成功するか?
以下のスクリプトで成功するなら、メール送信そのものは動いてる。
その場合はmail関数の引数をチェキしる。

<?php
mail( "[email protected]", "Test", "Test" ); //メールアドレスは自分のアドレスに入れ替えれ
?>
0103nobodyさん02/06/11 09:30ID:yLQsThBf
http://www.php.gr.jp
つながんないです。
松下ナントカの圧力でしょうか?
0104nobodyさん02/06/11 14:32ID:g7ykEoe9
>>94,102
返答ありがとうございました。
これからがんばってみます
0105nobodyさん02/06/12 08:39ID:???
class 化すると、どういう良いことがあるのですか?
0106nobodyさん02/06/12 08:54ID:???
>>105
コードの再利用がしやすい。
0107nobodyさん02/06/12 12:14ID:???
オブジェクト指向が分からない〜♪
0108nobodyさん02/06/12 14:07ID:???
>>106
盗用?
0109nobodyさん02/06/12 14:26ID:???
>>108
?
0110nobodyさん02/06/12 16:40ID:???
ああ、携帯用サイトをセッション使ってつくってまった。。。鬱
0111nobodyさん02/06/12 16:45ID:lexh1GXn
phpの使える無料ウェブスペースってないんでしょうか?
0112nobodyさん02/06/12 17:52ID:???
ある。
0113nobodyさん02/06/12 20:14ID:rqNQKIVd
PHPEdit(ttp://www.phpedit.net/)以外の
無料でお勧めの統合環境のソフトないすか?
0114 ◆AngelBlk 02/06/12 20:59ID:???
>113
ZendStudio2.01Personalが非商用に限りだけどフリーになったような。
流石に本家だけあって文字エンコードもSJIS/EUC-JP/UTF-8とか対応してるし
割といいかもしれない。
0115nobodyさん02/06/12 21:34ID:GkccyYwt
>>114

嘘つけ。証拠みせろ。

0116nobodyさん02/06/12 21:44ID:rqNQKIVd
ttp://www.zend.com/store/products/zend-studio-personal.php
これですか?
0117 ◆AngelBlk 02/06/12 22:32ID:???
>115
何が嘘なのかな?

>116
はい、それです。
コード補完もしてくれるし割といいと思う。
ちょっと重い気がするけど。
0118nobodyさん02/06/12 22:42ID:tyywLjto
兆初心者なんですが
PHPの設置はどうすればいいのですか?
教えてください
よろしくお願いします
0119親切な人02/06/12 22:44ID:???

ヤフーオークションで、凄い人気商品、発見!!!

「 RX-2001 」がパワーアップした、
「 RX-2000�V 」↓
http://user.auctions.yahoo.co.jp/jp/user/NEO_UURONNTYA#.2ch.net/

ヤフーオークション内では、現在、このオークション
の話題で、持ちきりです。

ヤフー ID の無い方は、下記のホームページから、
購入出来る様です↓
http://www.h4.dion.ne.jp/~gekiyasu/#.2ch.net/
0120nobodyさん02/06/12 22:52ID:???
>>118
マニュアル嫁
0121nobodyさん02/06/12 22:54ID:tyywLjto
>>120
?
0122nobodyさん02/06/12 22:59ID:???
>>117
Javaですか?妙に重い。
0123nobodyさん02/06/12 23:03ID:tyywLjto
>>118
はリア厨なので英語が読めません
0124nobodyさん02/06/13 00:26ID:???
>>123
PHPのマニュアルは日本語化されてるが‥‥↓
http://jp.php.net/manual/ja/
0125nobodyさん02/06/13 08:17ID:???
>>113
PHPごときで統合開発環境を必要とするとは・・・
0126anonymous02/06/13 16:45ID:???
初心者です。
PHPの"include()"関数をつかって、クライアントのブラウザに
HTMLファイルを表示させてやろうと思うのですが、意図したのとは違う
フレームに表示されてしまって困っています。
TARGETのフレームを指定するいい方法はないでしょうか?

それとも、HTMLのコードの中に埋め込むべきなのでしょうか?
だとしたら板違いですね・・・
0127anonymous02/06/13 16:58ID:???
解決しました。
0128nobodyさん02/06/13 22:46ID:o2iA2r6w
ちょっと教えてください。

$h=array("h6"=>2,"h5"=>7,"h7"=>1);

という連想配列をURLにくっつけて渡したい場合

print("<a href=test2.php?h[]=$h[]>テスト</a>\n");

とやってみてもだめなんですが渡せないんでしょうか?
ずっとやってて煮詰まってしまいました。
0129nobodyさん02/06/13 23:26ID:???
>>128
配列ってそのまま渡せるのかな?
俺はURLにくっつけてやったことはないけど、formからpostで送るときには
foreach($h as $value)
 echo "<input type=\"hidden\" name=\"h[]\" value=\"$value\">\n";
みたいな感じにしてる。
確かに、あんま賢い方法ではないような気もするんだけど・・・
配列をそのまま渡す方法があるなら俺も知りたいので識者の方、おながいします。
0130nobodyさん02/06/13 23:41ID:g7mthRrE
>>129
serializeしてbase64_encodeとか
0131nobodyさん02/06/13 23:58ID:AgZxqh7j
sessionじゃだめですか。
0132nobodyさん02/06/14 01:25ID:WdA4+PT5
Perlでシーザー暗号を利用する時は、
$str =~ tr/a-zA-Z/b-zA-Za/;
ですが、PHPの場合はどうなるんでしょうか?
■ このスレッドは過去ログ倉庫に格納されています