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

【PHP】質問スレッドpart30【php】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/10/25(火) 06:50:06ID:Q4oGlTH3
PHP全般の質問スレです。
【基本ルール】
・新規質問の方は上げてください。age進行でお願いします。
・質問者は2回目以降、最初のレス番号を名前欄に入れてください。
・回答者は質問者に対して>>(アンカー)をつけてください。
・煽り・荒らしは放置。荒らしに反応した香具師も荒(ry
・解決しなくてもこたえてもらったら礼を。
【質問テンプレ】
・マニュアルを調べたか、google検索したか(調べたキーワード)
・タイトル(禁:教えてください!etc) 例:requireとinclude
・内容 例:requireとincludeはどう違うのですか?
・質問する際には環境も明記。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
【PHP マニュアル】
http://www.php.net/manual/ja/
※マニュアル上部の「search for」から検索を活用すべし(便利)。

過去スレ、関連リンク、FAQ等>>2-10辺り
0696nobodyさん2005/11/18(金) 16:17:39ID:???
RFCって必要になった時点で読むものでしょ。
06976922005/11/18(金) 16:38:29ID:s0p1oegi
>>693
色々なサイトを見て勉強しているのですが、PHPの説明の中にRFCを参照のようなことがいたるところに書いてあったからです。

>>694
どのような局面で必要とされるのでしょうか?

>>695
ごめんなさい。まだRFCに精通していないのでうまく理解できませんでした。

>>696
なるほど。必要になるときが来るのですね。
例えばどのようなことを実現するために必要になりますか?
0698nobodyさん2005/11/18(金) 16:44:07ID:???
>>697
このレスの仕方はつい最近見たような気がするが・・・。

RFCが何かは知ってて読んでるんだよね?
0699nobodyさん2005/11/18(金) 16:47:26ID:???
>>697
RFCを全部理解してからphp組むなんてのは、広辞苑全部呼んでから作文するのと同じ。
組んでいる途中で必要になったらRFCの該当文書を見ればいいだけ。
でもおまえが何組んでるかも知らんのに「必要になるとき」なんて答えようが無い。
0700nobodyさん2005/11/18(金) 16:58:51ID:???
>>698
みんなで釣られてしまえ
0701nobodyさん2005/11/18(金) 17:42:29ID:???
>>697
>色々なサイトを見て勉強しているのですが、PHPの説明の中にRFCを参照のようなことがいたるところに書いてあったからです。

だから、どんな説明の時に参照するって書いてあったんだ。
その説明の部分で、それ以上詳しいことが必要なら参照すりゃいいだろ。
07026922005/11/18(金) 17:47:58ID:s0p1oegi
そうなのですか。わかりました。
http://www.spencernetwork.org/memo/tips-3.php
ここに出てくるContent-typeやContent-lengthといったものが
ftp://ftp.isi.edu/in-notes/rfc2068.txt
RFCに載っていたので、このようなプログラムを自在に書けるようになるために必要な情報だと思いました。
そうなるとRFCを理解しなければそれを必要になる場面に出会うことすら難しいため、一歩進んだプログラミングの習得ができない気がしてしまいます。
みなさんはきっとそういう逆境を乗り越えたのですね。
できたらその時の思考プロセスを話してもらえませんか?
0703nobodyさん2005/11/18(金) 17:54:47ID:???
>>702
そもそもRFCが何か理解しているかい?
0704nobodyさん2005/11/18(金) 17:56:54ID:???
RFCという釣餌
0705nobodyさん2005/11/18(金) 18:02:29ID:???
>>702
オマイ自身が答えを書いているじゃん。

PHPで作成された簡易HTTPクライアントのサンプルがあって
このようなプログラムを自在に書けるようになるために必要な情報だと思いましたので
RFCを理解しようとしています。

オマイの思考プロセスは上記で正しい。他人に聞く必要はない。
以上
0706nobodyさん2005/11/18(金) 18:13:07ID:???
以下
0707nobodyさん2005/11/18(金) 18:18:42ID:???
思考経過の妥当性がアプリオリに決定されるわけないじゃん
0708nobodyさん2005/11/18(金) 18:37:57ID:???
>>702
アンケートは自分のサイトでやってくれる?
0709nobodyさん2005/11/18(金) 18:40:36ID:???
まぁまぁ、まぁまあ、

マーライオン       , ―‐ 、
             /r‐' ,ェェr‐..、
               | l |   ____Y)........
               | l ヽ  ┴‐┬'''''''''' ::::.........
               | l  l `ー‐1      ::::::::.......
             7レヘ!    /        ::::::::::::.....
             l |. |    /           :.:.:.:::::...
             /7ーー7777!             :.:.:.:::::....
            T--l⌒ヽ{ l               :.:.:.:.::::::...
               |vv'レ⌒!'ー!                :.:.:.:.::::::...
              |vv'ヽソー1                 :.:.:.:.::::::.
           _ヽVVVー7__               :.:.:.:.:::::..
         ,〜〜〜〜〜〜〜ヽ  ヽ、             :.:.:.:.:.:..::..
        ∠二二二二⌒二二二二二二ユ            :.:.:.:.:.::::::...
0710nobodyさん2005/11/18(金) 19:52:41ID:AXpGNMBT
DIVタグで#top #left #right #mainとレイヤーを分けて、index.phpを作り、
その際、#top #left #rightのところのタグが他のページのphpで使いまわしになるので,
それぞれをtop.php、left.php、right.phpとして、includeして見やすい様にしたのですが
これはセキュリティとかphpの使い方として、問題あるんでしょうか?
一応、使えてはいるんですが、心配で。
0711nobodyさん2005/11/18(金) 20:00:01ID:???
>>710
その内容から判断する限り問題はないと思う。
ただしtop.phpとかに直接アクセスされる可能性を考慮すべし。
07127102005/11/18(金) 20:17:09ID:AXpGNMBT
>>711
ありがとうございます。
top.phpとかには直接アクセスされないように配慮してみます。
0713nobodyさん2005/11/18(金) 20:17:25ID:???
1.呼び出し側のindex.phpでdefine使って定義。
2.呼び出される側では、definedで定義済みかチェック。
3.もし未定義であれば、不正な呼び出しとしてエラー吐くなり何なりやって終了

-index.php-
<?php
define('_VALID', '');
include('top.php');
?>

-top.php-
<?php
defined('_VALID') or die ('Error msg');
echo 'top.php';
?>
0714nobodyさん2005/11/18(金) 21:54:44ID:???
プロクシ規制を考えているのですがサンプルになるようなものを
配布しているサイトをご存知ないでしょうか?
プロクシリストを更新するものではなく逆引き等によって制限できる
物を探しております
0715nobodyさん2005/11/19(土) 12:34:18ID:???
エスパー呼ぶ?
0716nobodyさん2005/11/19(土) 14:04:33ID:???
>>715
エスパーだけど、何か用?
0717nobodyさん2005/11/19(土) 14:10:57ID:???
>>716
なら頼んだ
0718nobodyさん2005/11/19(土) 15:00:44ID:???
むしろ今必要なのは一休ではないか
0719nobodyさん2005/11/19(土) 15:09:54ID:???
>>714
で、それとPHPとなんの関係が?
0720nobodyさん2005/11/19(土) 15:25:59ID:???
なに休んでんだよ
0721伊東2005/11/19(土) 17:56:46ID:???
エスパーですけど何か?
0722nobodyさん2005/11/19(土) 18:26:19ID:???
エスパーさん、俺の名前当ててください。
0723エスパー伊藤2005/11/19(土) 18:28:38ID:???
キンコツマンだろ?
0724nobodyさん2005/11/19(土) 18:34:06ID:???
>>723
なぜ分かった?
しかも、投稿日の数字(18:28:38)が素晴らしい!

流石エスパーさん!!
0725nobodyさん2005/11/19(土) 18:39:41ID:???
何が素晴らしいんだ?
0726nobodyさん2005/11/19(土) 18:43:23ID:???
自演がだろ
察しなさい
0727nobodyさん2005/11/19(土) 18:47:53ID:???
>>723の投稿日時を見よ。
0728nobodyさん2005/11/19(土) 20:38:03ID:???
その日時のどこが素晴らしいのかと
0729nobodyさん2005/11/19(土) 21:07:14ID:???
空気読めてない
0730nobodyさん2005/11/19(土) 21:15:21ID:???
質問スレなんだから、あまりネタにレスつけんなよ・・・
0731nobodyさん2005/11/19(土) 21:27:45ID:???
質問する時、くだ質とこのスレのどちらで聞けばいいか迷うよね。
でも、「くだらない」かなんて分かるもんでもないし…

なんだか統一しても良くなってきた。。
0732nobodyさん2005/11/19(土) 21:43:22ID:???
おいらは質問した事が無いのでその辺りの葛藤はよく分からんが、
くだ質スレで答える時には基本的な部分も含めて回答し、
こっちではその辺りをすっ飛ばして答えるようにしている。
そうすると自然と向こうではくだらない質問にだけ答えるようになり、
こっちではくだらない質問はマニュアル嫁と思って答えなくなる。
0733nobodyさん2005/11/19(土) 22:03:21ID:???
>>732
なるほどね。
0734nobodyさん2005/11/19(土) 23:16:53ID:???
ここで聞いていいのかわからんのですが、
ホスティング業者で複数のPHPのヴァージョンを使えるような
ところってないですか?
たとえば、
フォルダ1 PHP4.3.11 register globals=on
フォルダ2 PHP4.4.1 register globas=off
みたいな感じで使い分けたいんですけど・・・
0735nobodyさん2005/11/19(土) 23:30:53ID:???
>>734
レンサバ板いったほうがいいんじゃね?
0736nobodyさん2005/11/20(日) 00:59:57ID:???
>>731
つか単純に

マニュアル読める人はこっち
マニュアルに不慣れな人はあっち

でいいじゃん。
そうすりゃ本スレはマニュアルに載ってないor見つかりにくい内容、くだスレはマニュアルレベル(=初心者レベル)になるし。
本スレもくだスレも次スレ立てるときは1にそれを明示するべき。
0737nobodyさん2005/11/20(日) 02:22:49ID:???
>>736
大丈夫。ここに質問しに来るような奴は最初から>>1なんて読まない。
0738nobodyさん2005/11/20(日) 02:34:26ID:???
質問しに来る奴が読まなくても>>731みたいなときに読めばいい
0739nobodyさん2005/11/20(日) 02:45:19ID:???
回答側がガタガタいったって仕方ない。それが質問スレの宿命。
0740nobodyさん2005/11/20(日) 02:51:24ID:???
>>739
質問スレの宿命って何?
0741nobodyさん2005/11/20(日) 02:52:27ID:???
お前にはあの★が見えないのかい?
0742nobodyさん2005/11/20(日) 02:57:43ID:???
エスパーか!?エスパーなのか!?
0743nobodyさん2005/11/20(日) 02:59:07ID:???
>>1なんか回答側の予防線として使えるんだから書きたいだけ書いときゃいいじゃん
0744nobodyさん2005/11/20(日) 05:20:34ID:???
どうせなら、むしろこっちに
中級以上
とか書くと、初心者はくだ質にいくんじゃね?
0745nobodyさん2005/11/20(日) 05:42:38ID:???
>>744
「中級」じゃ何のことだかわからなくないか?
むしろマニュアルきちんと読んだ上でググった上での質問ならこっちに来た方がいい希ガス。
本スレとくだスレの関係を双方にはっきり書いておくのは同意。
0746nobodyさん2005/11/20(日) 05:47:17ID:???
判断基準の明記だね。
現状だと質問者が自分の脳内でくだらないかどうか判断してるんじゃない?
あと、スレの雰囲気も重要だと思う。
向こうとこっちじゃ空気が違うから。
初めてWebprog板を覗いた人には関係ないけど、
何度も質問してるような人は雰囲気でスレを選ぶんじゃないかな。
0747nobodyさん2005/11/20(日) 05:48:08ID:???
くだすれの存在意義=くだらない質問書く奴の隔離誘導先
0748nobodyさん2005/11/20(日) 05:52:25ID:???
くだらないかどうかのボーダーライン:

マ ニ ュ ア ル 読 め る ・ グ グ れ る

で決定の方向ですか?
0749nobodyさん2005/11/20(日) 06:02:52ID:???
>>746
実際ここのスレとむこうのスレでどっちに書くか選んでる奴がいるのかどうか知らないが(731以外w)、レベル的には別れていたほうがわかりやすいだろうね。
もし分ける必要がないとしたら1つのスレにまとめた方がいいってことだし。
0750nobodyさん2005/11/20(日) 06:35:46ID:???
>>748
>>549
07517482005/11/20(日) 07:05:55ID:???
>>1に何書いたって馬鹿は馬鹿なんだからその都度誘導が必要。
その時>>1が説得力+便利になるだけの話。
07527442005/11/20(日) 07:06:50ID:lMDh+9MV
>>745
スレタイトル名で判断できないとダメだって。
くだ質する奴なんて>>1-10なんて読まない奴が多いんだし。

スレタイに中級とか上級とかかいとけば
>むしろマニュアルきちんと読んだ上でググった上での質問
でない場合は心理的に入りづらいだろ。

あと、くだ質を隔離扱いじゃなくて、初心者用っていう位置づけなら
初心者歓迎とかスレタイにつけたほうがいいと思われ
0753nobodyさん2005/11/20(日) 07:29:39ID:???
スレタイ変更は同意。
くだ質は隔離でいいと思うけど。
初心者歓迎スレがいると思うなら立てたらいいじゃん。
俺は別にいらんと思うけど。
とりあえず次のスレタイは何がよかっぺ?
0754nobodyさん2005/11/20(日) 07:33:53ID:???
それよりまたスレが出来てしまったぞ。

暇なPHP上級者が初心者の質問に答えるスレ
http://pc8.2ch.net/test/read.cgi/php/1132434138/

PHP質問スレって何個あるんだよwwwwwwwww
0755nobodyさん2005/11/20(日) 07:38:08ID:???
>>752
つーか本スレ入りづらくしてどうすんの?
0756nobodyさん2005/11/20(日) 09:19:02ID:???
>>755
ちゃんと嫁。
レベル別に分けろって書いてるの
0757nobodyさん2005/11/20(日) 09:35:01ID:???
レベルはどのように分けるの?
レベル別に分けるというなら細かく規定しないと意味ないよ。
0758nobodyさん2005/11/20(日) 10:16:23ID:???
>>736はどうよ?
0759nobodyさん2005/11/20(日) 12:57:52ID:???
なんかもう完全に質問者側の立場そっちのけだな
0760nobodyさん2005/11/20(日) 14:00:32ID:???
別にこのスレは質問者側のものでも回答者側のものでもないのでルールさえ守れば何を書いても自由だよ
0761nobodyさん2005/11/20(日) 14:46:31ID:???
レベル、レベルと言ってる奴ほど、実はたいしたレベルではないという罠
0762nobodyさん2005/11/20(日) 16:28:55ID:Tn2gjfrX
phpでそのディレクトリのファイルを拡張子順にソートするにはどうすればいいんですか?
0763nobodyさん2005/11/20(日) 16:36:15ID:???
>>762
いろいろとやり方があると思うが、
・拡張子別に配列(s)に取り込む。
・それぞれの配列に対してソートをかける。
つーのが直感的に分かり易くていいんジャマイカ?
0764nobodyさん2005/11/21(月) 00:41:50ID:???
>>762
効率的じゃないけど短く書くなら
$files = ファイル名の配列
$tmp = array();
foreach ($files as $file) $tmp[$file] = strrchr($file, ".");
asort($tmp);
$files = array_keys($tmp);
0765nobodyさん2005/11/21(月) 01:42:09ID:???
>>761
みんな低いなりに頑張ってるんだよ
0766nobodyさん2005/11/21(月) 17:02:24ID:???
そうだよ、誰だって通る道なんだよ。
0767nobodyさん2005/11/21(月) 21:08:48ID:???
http://www.php.net/manual/ja/language.oop.newref.php
(PHP 4以降ではリファレンスカウンティングを使用しているため、)参
照ではなくコピーを返すことで性能が低下することはありません。逆に
多くの場合、参照を使うよりも単純にコピーを使った方が良い結果とな
ります。これは、参照の作成には時間がかかりますが、コピーの作成に
は理想的には時間が全くかからないからです。(ただし、大きな配列ま
たはオブジェクトでその一つが変更されると、次々に参照先の他の要素
に参照先に波及するといった場合を除きます)

newする時&=はしない方が良いのでしょうか?
0768nobodyさん2005/11/21(月) 22:26:54ID:???
phpを利用して、フォームに入力した内容を
mailto アンカーのbodyに送るにはどうしたらいいですか?
0769nobodyさん2005/11/21(月) 22:32:52ID:???
>>768
PHPは鯖で動くもので、mailtoスキーマはブラウザ側で動くもの。
web制作板に誘導したい所だけど、もうちょっと詳しく書かないと罵倒されて終わりと思われ。
0770nobodyさん2005/11/21(月) 22:34:03ID:???
<form action="mailto:">
だったかな?
PHPで出来るわけない。
07717682005/11/21(月) 22:45:56ID:???
言葉足らずで申し訳ございません。
現在、sendmailを使ってメールフォームを作っているのですが、

フォームに記入した文字をメーラーにて送信
1.フォームに記入して、画面下の送信ボタンを押してもらう。
2.1の内容を画面表示する確認画面。
3.2の画面の送信ボタンを”mail to” のボタンに変更
 <a href="mailto:[email protected] ?Subject=無題&body=[なにがし](引数)[なにがし]">メールを送る</a>

のようなことをできると知人から聞いたのですが、
詳しいやり方が分かりません。
今は、知人に聞くこともできず、
いろいろ調べていたところです。

このような方法は、無理なのでしょうか?
よろしくお願いします。
0772nobodyさん2005/11/21(月) 22:49:08ID:???
>>771
言葉足らずというよりも知恵足らず…
もう少し、頭は使ったほうがいい。
というより、まずはフォームに入力したものを画面に表示するところから。
(ってか、それが出来れば問い自体が終了か…)
07737682005/11/21(月) 22:52:48ID:???
>772
有り難うございます。
ただ、現在、sendmailを使ったメール送信は機能しております。
それを、mailtoを使ったものに変更したいんです。
フォームに入力したものを画面に表示することはできています。
0774nobodyさん2005/11/21(月) 22:54:29ID:???
>>771
"<a href="mailto:...略" を echo で出力してやるだけのことなんだが…
"フォームから入力" → "確認画面" → "送信" でメーラーが開いてユーザーが送信するって変ぢゃまいか?
メール送信フォームとして、ホントに正しいのか?
07757622005/11/21(月) 23:22:32ID:Aq1woluR
>>763-764
おくれましたがとってもありがとうございました。
0776nobodyさん2005/11/21(月) 23:24:29ID:???
こういう感じにしたいんじゃないかな。

フォーム表示 form.html bodyを入力

確認画面 confirm.php
<form method="mailto:〜">
<input type="hidden" name="body" value="<?= $_POST['body'] ?>">
<input type="submit">
</form>
んでも、できないね。コレ。
0777nobodyさん2005/11/21(月) 23:31:13ID:???
>>773
いみわかんねぇな…
フォームの入力内容を画面に表示できるのなら、
<a href="mailto:[email protected] ?Subject=無題&body=[なにがし](引数)[なにがし]">
の「なにがし」をその内容にすれば良いだけだろうに。
・・・まてよ?ひょっとして「urlencode」が知りたいのか?
それとも釣りか?
0778nobodyさん2005/11/21(月) 23:39:42ID:???
>>767
コンストラクタで何してるか判らないクラスは
与り知らない場所で勝手にコピーされると問題になるかもね。
コンストラクタ内で register_shutdown_function してる時とか。
しっかり参照で受け取っておきましょう。
0779nobodyさん2005/11/22(火) 03:42:47ID:???
>>777
さすがにそこまでエスパーしなくていいのでは?
もしかすると、文字列結合とかができないんじゃないの?
0780nobodyさん2005/11/22(火) 04:37:13ID:S56rw+w2
スレタイに「エスパー常駐」とか「トンデモ質問箱」とか書いて隔離したほうがとオモタ。
07817732005/11/22(火) 09:41:40ID:???
いろいろ有り難うございます。
一応、

<form action="mailto:[email protected]?Subject=ああ&body=
<?php
foreach($_POST as $key=>$var) {
echo($key." --- ".$var."\n");
}
?>
" method="POST">
以下略

という形で、一応希望の動作にはなりました。
ただ、メーラーに送る際、\nが認識されずに
改行がうまくいきません。
どうしたらいいでしょうか?
07827732005/11/22(火) 09:51:16ID:???
解決しました。
0783nobodyさん2005/11/22(火) 10:01:00ID:???
ひょっとしてmailtoで開くメーラの本文に、フォーム上で編集した本文を入れた状態で立ち上げたいとか
0784nobodyさん2005/11/22(火) 10:01:39ID:???
>>781
PHPの話じゃなくてhtmlの話なんで、そっちを勉強なさい。
つ[RFC2368,RFC1738]

ま、RFCに準拠した動作をしないソフトはMS製に限らず多くある訳だが
0785nobodyさん2005/11/22(火) 14:26:59ID:NrH69ETF
PHP5でnamespaceが却下された理由ってどなたかご存知ですか?
実用上の話題ではなく興味上の話題で申し訳ないのですが。
Web上でソースを見つけることができなかったので教えていただけると幸いです。
0786nobodyさん2005/11/22(火) 14:42:53ID:???
>>785
php.internalsの過去ログを漁れば見つかると思うけど、確かZeevの鶴の一声で却下。
6での導入が再検討されてるみたいね。
http://news.php.net/php.internals
0787nobodyさん2005/11/22(火) 14:46:06ID:???
確かパフォーマンスが著しく悪化したからとか何とかだった希ガス
0788nobodyさん2005/11/22(火) 15:24:10ID:???
そうそう、で今のCVS HEADでは改善されてるんだっけ?
07897852005/11/22(火) 15:37:58ID:NrH69ETF
>>786-788
レスどうもありがとうございます。
とりあえず>>786さんのリンクを漁ってみます。
量が膨大ですね(^^;
namespaceでパフォーマンス悪化ですか。
それよりも実装を優先して欲しかったですね。
PHPのパフォーマンスってコンパイル時よりも実行時の方がウェイトが高そうですし。
(測ったことないですが・・・)
PHP6で実装されることを切に願うばかりですね。
0790nobodyさん2005/11/22(火) 15:44:05ID:S56rw+w2
大規模サーバではパフォーマンスの方が大事だろうよ。
PHPなんて採用されてなんぼだし。
0791nobodyさん2005/11/22(火) 15:57:58ID:???
>>789
スクリプト言語だし。
0792nobodyさん2005/11/22(火) 17:50:59ID:???
>>790
namespace導入でPHP採用をやめるとこがあるほどパフォーマンス落ちするものですかな?
それなりにOOできるんだしnamespaceくらいあってほすぃ
0793nobodyさん2005/11/22(火) 19:40:06ID:???
環境(すべて/usr/local配下にinstall)
OSX10.4.3
PHP.5.0.5
Apache2.0.55
sqlite3.2.7

初心者お約束の郵便番号データをsqliteコマンドから
流し込んでdbを作成して

define('DB', '/path/to/zip_db');
$db = sqlite_open(DB, 0666) or die(DB . " DBが開けません!¥n");

としたんですが

PHP Warning: sqlite_open(): file is encrypted or is not a database

と怒られちゃいました。zip_dbのファイルは確かにpathの位置にあります。
PHPは--with-eqliteと--enable-sqlite-utf8をつけてコンパイルしてます。
どーしてこうなってしまうのでしょうか?

phpからsqlite_open()で動的に作成したdbがsqliteコマンドからは
encryptedと言われるのは判りましたが、同じ仕様だとphpからsqliteを
使う場合は常に動的に作成しないとダメということでしょうか?
0794nobodyさん2005/11/22(火) 19:47:28ID:???
>>793
PHP5はSQLite Ver2系にしか対応していないので、Ver2系をインストールして
データベースを再作成する。
または、PDOではVer3系に対応しているので、PDOをインストートルして
PDO経由でデータベースを扱う。
0795nobodyさん2005/11/22(火) 19:55:38ID:???
>>794
ぬおっ!?そうだったのですか…勉強不足でした。
勉強してきます。ありがとうございました
■ このスレッドは過去ログ倉庫に格納されています