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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん04/09/16 18:17:37ID:/HV017tY
・PHP全般の質問スレです。
・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。


■本家
 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-4
0756nobodyさん04/10/01 13:48:07ID:???
>>755
うまくいったん?
075770104/10/01 14:16:05ID:???
>>755
はい
配列にファイル名を格納してソート、count()で配列数を数え
countの数だけテーブルを作りました

ここの人が見たらさぞかし汚いソース何だろうな、と
0758nobodyさん04/10/01 14:25:30ID:???
>>757
よかった。よかった。
0759nobodyさん04/10/01 16:55:07ID:???
ほのぼのしていいな。
0760nobodyさん04/10/01 17:06:45ID:???
PHPでhtmlメールを送りたいんですが、普通にメール本文にタグ書けばいいんでしょうか?
0761軟式PHP04/10/01 17:26:35ID:???
>>760。・゚・(Д`(⊂(゚Д゚ つ⌒
076276004/10/01 17:32:44ID:???
違うみたいですね。
もしよろしければ教えて下さい。お願いします。
0763nobodyさん04/10/01 17:45:29ID:???
マニュアル読め
0764nobodyさん04/10/01 19:21:08ID:???
クライアントのリクエストヘッダをそのままの形で取得する方法はありますか?
$_SERVER[HTTP_REFERER]等のように個々に指定するのではなく、
まとめて取得したいのですが。
0765nobodyさん04/10/01 19:40:35ID:???
何でマニュアル読まないのかなぁ、
読んだ方が早いのに・・・・・・
0766nobodyさん04/10/01 19:48:01ID:???
答えすぎ甘やかしすぎってことかな
0767nobodyさん04/10/01 19:54:38ID:???
日教組教育のせいって事でつな!
0768nobodyさん04/10/02 00:22:35ID:???
>>751
なんでそんなことしたいのか分からないけど、

$_SERVER["QUERY_STRING"] をごにょごにょいじれば?
0769カポコン04/10/02 00:30:21ID:???
 マ ニ ュ ア ル に 載 っ て い る ・ ・ ・ 。

 ど ん な マ ニ ュ ア ル で し ょ う か (ドキドキ)?
0770nobodyさん04/10/02 00:39:13ID:???
なんか辞書に載ってるからミロ!
と同じだな

辞書の使い方が分からなければ、分からない
辞書引いても、用例が分からなければ分からない
0771nobodyさん04/10/02 00:46:44ID:???
ダブルクリック出来れば読めますよ。
0772nobodyさん04/10/02 00:48:10ID:???
>>764
そのままの形っていう意味がわからん。
配列からすべての読み出し方がわからないのか?
0773nobodyさん04/10/02 00:50:33ID:???
京都府警レベルでも読めるってことだな
0774nobodyさん04/10/02 00:54:10ID:???
>>764
$_SERVERにまとまってるわけだが。
あるいはこういうのか? http://jp.php.net/apache
0775nobodyさん04/10/02 00:54:13ID:???
    ワカリマチェェェン
   ∩___∩      
   | ノ      ヽ/⌒) あばばばばばば
  /⌒) (゚)   (゚) | .|  
 / /   ( _●_)  ミ/   ∩―−、
.(  ヽ  |∪|  /    / (゚) 、_ `ヽ ヨメマチェェェン
 \    ヽノ /      /  ( ●  (゚) |つ
  /      /      | /(入__ノ   ミ   あばばっあびゃばびゃばば
 |       /       、 (_/    ノ  
 |  /\ \       \___ ノ゙ ─ー
 | /    )  )       \       _ >>770    
 ∪    (  \        \     \
       \_) >>769
0776nobodyさん04/10/02 00:56:48ID:???
764にしたって知りたい言葉入れてエンター押すだけじゃん
ぱそこんの使い方ならよそで教わってこいよ
0777nobodyさん04/10/02 01:09:07ID:???
例えばさ、メールする時にしても確実に使う関数、必要だろうと思われる関数、いらないが
勉強すれば便利になる関数とかあるじゃん?

そういうのをさらっと書いてあれば便利なんだが。


それとも全部読まなきゃいけないのか?
辞書を全部読まなきゃいけないみたいで嫌だ
0778nobodyさん04/10/02 01:13:35ID:???
他力本願寺はここでつか?
0779nobodyさん04/10/02 01:17:41ID:???
でもみんなはどう勉強してるのか気になる

普通、あれをしてみたい!と一番初めに思うよね
そうしたら、それに関係する関数を探すの?

そのつど、辞書全部引いて探すの?
どうしてる?
078076404/10/02 01:18:16ID:???
>>774
まさにこんな感じです。ありがとうございました。
$_SERVERでなく、クライアントがサーバに渡すヘッダだけ拾いたかったのです。
0781nobodyさん04/10/02 01:22:49ID:???
>>779
> そのつど、辞書全部引いて探すの?
辞書全部って発想がアメウマ臭いなお前。
0782軟式PHP04/10/02 01:42:03ID:???
>>779
パッと作れる人は過去の経験からパズルみたいに組み合わせて作ります。
0783nobodyさん04/10/02 01:45:23ID:???
上にでてきたメールの話をとりあげれば、

メールしたい -> マニュアルの目次を見る -> メール関数発見 (終)

Fromに日本語を入れたい -> MIMEヘッダ(常識) ->
 mimeで検索或いは文字変換関係の関数を調べる -> mb_encode_mimeheader()

マニュアルとWebProg(更にはWeb以外のプロトコルも)の知識がありゃ
自力でもなんとかなるもんだよ。
そこを吹っ飛ばした質問が多いから飽きれてきつく言う人もいるんでないの?
0784nobodyさん04/10/02 02:45:37ID:gzZ8+fHB
クラスってどうゆうメリットがあるんですか?
ユーザ関数とは違うんですか?
0785nobodyさん04/10/02 02:47:15ID:???
つかPHP逆引きマニュアルマダー
0786nobodyさん04/10/02 03:11:17ID:???
779書いたけど、今マニュアル全部読んでる。一応

なんかホームセンターの中を回ってる気分
想像力が膨らんできた
0787nobodyさん04/10/02 03:17:27ID:???
つーかPHPやり始めの人間がマニュアル読まないでどうやって学んでるんだ
0788nobodyさん04/10/02 03:19:54ID:???
じゃ、次からマニュアルのココを読め!で
いいじゃん
マニュアル嫁じゃ分からんだろ。全部調べなきゃならなくなる
0789nobodyさん04/10/02 03:19:59ID:???
当てずっぽで関数探すとか?
0790nobodyさん04/10/02 03:29:35ID:???
>>788
甘えるのもいいかげんにしろ。
0791nobodyさん04/10/02 03:32:33ID:???
>788
んー…。
何がしたいのかが分かれば、全部調べなくても良い。
ある程度は絞れる。
文字を表示したい。で例えると…
http://www.php.net/manual/ja/funcref.php
           ↓
http://www.php.net/manual/ja/ref.strings.php
っと、言った感じで。783と言ってること殆ど変わりないけど。

「マニュアルのココを読め」と答えるか、「マニュアル読め」と
答えるかどうかは、答える人が決めても良いと思うけどな。
0792nobodyさん04/10/02 03:32:36ID:???
だから、分からない香具師は「何が分からないか」が分からない。

それが分かっていたら、自分で調べるだろ
0793nobodyさん04/10/02 03:36:24ID:???
いや、だから。
どう答えるかは、本人の自由かと。
0794nobodyさん04/10/02 03:38:41ID:???
子供に勉強しろ!と叱る親みたいだな。ココ

自分のポジションを明確にしたい為に質問してるのに、
マニュアル嫁はない。
0795nobodyさん04/10/02 03:41:09ID:???
あっそ。
0796nobodyさん04/10/02 03:42:30ID:???
おまえら、もっと検索エンジンとか使えよ
そもそも何も分からん奴はとりあえず書店行け
0797nobodyさん04/10/02 03:44:04ID:???
>>794
勉強する気のない奴は誰の役にも立たない邪魔者だし
0798nobodyさん04/10/02 03:45:41ID:???
>>797
やる気ないんだったら、そもそも質問なんてしないだろが。
分からんやっちゃなw
0799nobodyさん04/10/02 03:46:32ID:???
質問の回答得られなくて困るのは回答者じゃないし
0800nobodyさん04/10/02 03:49:13ID:???
>>798
きっと勉強せずにカンニングするタイプなんだろ
0801nobodyさん04/10/02 03:53:01ID:???
答える側にもメリットはあると思うが。



いや、例えば○○がしたいんだけど、どうしたらいい?という質問があったら
じゃ、マニュアルのココとココをココを読めば?でいいやん。
1つの事柄について、マニュアル全部読むなんて非効率でかなわん。
0802nobodyさん04/10/02 03:55:54ID:???
>>792
それを自分で超えられるかどうかなんでないの?
まあ俺は友達や先輩に聞きながら覚えたが、
最終的には自分で乗り越えられるかどうかだよな。
2chに友達や先輩の役割を求めてる人が多いって事なのかね。

なんかしら一個言語覚えちゃえば、後は楽なんだけどな。
あの関数はどこだろうなーみたいなおおよそのアタリをつけて調べられるし。
0803nobodyさん04/10/02 04:01:26ID:???
>>801
それのどこがメリットなの?
0804nobodyさん04/10/02 04:25:28ID:???
>801
質問者と回答者の考え方から勉強したほうがいいよ
0805nobodyさん04/10/02 04:28:20ID:???
>>803-804

なんの為に4行もレスが離れてると思ってるのか、考えろ
文の読み方から勉強したほうがいいな
0806nobodyさん04/10/02 04:46:38ID:???
↑まぁ教えてくれなかったからってそうカッカすんな
0807nobodyさん04/10/02 05:15:29ID:4Xpk7UM0
お前だけそうしてろ。
調べる方法はなにもマニュアルだけじゃない。
グーグルもある、本だってある。
くだらない質問してくる奴は大抵、辞書も満足に使いこなせない奴だろ。
俺はそう思ってるし、それでなんとかやってこれてる。

おまえの考えを押しつけるな。
0808nobodyさん04/10/02 05:27:01ID:???
過去ログみてて思ったのだが
スレ番的に、なちじょあ ◆yEbBEcuFOU=軟式?

どうでもいいが(´_ゝ`)
0809nobodyさん04/10/02 05:28:05ID:Y9+HS0d0
> おまえの考えを押しつけるな。
禿同。
0810nobodyさん04/10/02 07:49:51ID:???
質問も回答もした事があるけど、
自分である程度調べたら質問文もそれなりに要領を得た物になるんだよね。

質問が間違った知識を元に的を外している、
もしくは複数の意味に捉えられるような書き方した場合は
「マニュアル嫁」で却下される場合が多いな。

>>764は最初の質問が後者のパターンだった、と。
最初から>>780の聞き方をしてれば良かったんだけど
httpリクエストヘッダはhttpサーバを経由して得る、という考えに至らなかったと。
0811nobodyさん04/10/02 08:35:58ID:ze3q/U93
cont2.php?%E9%01%EE%9A%15%EE%83%D2h%E9v%D4%FD%3DeJ%FA%02%A0%DF%BBM%9D_%A0%DE%B1%E7%8D%FD%E9%9A%96%E1%D0X%18m%84%D1%0A%A9%0AoF%9E%09%0A
をデコードできますか??
0812nobodyさん04/10/02 08:54:29ID:???
遊ぶならこっちで

エンコード文字列だけのスレ
http://pc5.2ch.net/test/read.cgi/php/1065258181/l50
0813nobodyさん04/10/02 08:59:42ID:???
>>811
俺の知ってるエンコードがなされたものかも知れないが、
実際になされたエンコード方式を教えてくれないとデコードの可否は回答できない。
0814nobodyさん04/10/02 09:48:48ID:???
http://www.google.com/search?hl=ja&ie=EUC&oe=EUC&q=%E9%01%EE%9A%15%EE%83%D2h%E9v%D4%FD%3DeJ%FA%02%A0%DF%BBM%9D_%A0%DE%B1%E7%8D%FD%E9%9A%96%E1%D0X%18m%84%D1%0A%A9%0AoF%9E%09%0A
0815nobodyさん04/10/02 11:16:59ID:???
>>813
あるサイトのURLだそうです
0816nobodyさん04/10/02 11:53:08ID:uhB5BMdp
トラックバックの受信機能を日記につけようと思っています。

PEARから
http://pear.php.net/pepr/pepr-proposal-show.php?id=48
を探してきたのですが、使い方がいまいちわかりません・・・

トラックバックを受信した時トラックバックのデータを保存するにはどうすればいいか
教えていただけませんか。

具体的には

他のblogからトラックバックを私の日記へ送信。
↓
トラックバックを受信(受信した場合の保存方法がわかりません。。)
↓
日記に私のトラックバックを表示


どうかよろしくお願いします。
0817nobodyさん04/10/02 12:06:35ID:???
>>816
取り合えずソースの頭に書いてあるサンプルぐらいは試してみたか?
0818nobodyさん04/10/02 12:14:20ID:uhB5BMdp
>>817
なんどか試してみたんですが・・・、
// store data in your storage
のところで保存処理を行えばいいと思ってたんですが、
どうもうまくいきません。

私だめですね;;
0819nobodyさん04/10/02 12:26:09ID:???
>>818
だめじゃなよ、頑張りな。
君はやればできる子なんだから
0820nobodyさん04/10/02 12:29:06ID:???
>>818
それで合ってるよ。どの辺が判らない(うまくいかない)?
先ずは戻り値の$data配列の中身でもvar_dump()してみ。
0821nobodyさん04/10/02 13:32:37ID:XE0I1+gL
PHPにてユーザー認証のあるwebサイト(YAhoo等)の
認証後に表示されるデータなどを取得したいのですが
どうすればよいのでしょうか?
当然、ユーザー名やパスワードは自分のものを使ってです。
0822nobodyさん04/10/02 13:46:39ID:???
>>821
どうすればいいって・・・とりあえず自分でやってみれ。
HTMLを読んでAction属性で指定されたドキュメントに必要な値をPOSTすればいい。
書式は認証機構による。初心者はブラウザのHTTPリクエストとレスポンスを
横取ってながめてみるといい、というあたりが一般常識かな。
0823nobodyさん04/10/02 13:55:44ID:???
>>821
認証がBASIC認証だったら、それに対応したHTTPクライアントライブラリを利用する。
認証フォームを使ってPOSTで送ってるタイプの認証も同様にPOST送信が可能なライブラリを利用。
どちらもPEARにある。また他にも公開されてるライブラリがある。

自分でSOCKET通信しても良いと思うけど、既に有用なライブラリがあるんだから
それ使うのが良いでしょうな。

他には外部の対応しているプログラム(例えばwget)を利用する手もある。
0824nobodyさん04/10/02 14:05:29ID:???
漏れはpearのじゃなく でつ 使ってる。思いっきりなネーミングが好きだw
http://sourceforge.net/projects/snoopy/

あと、最初は全部自分で書いてみた方がいいね。コーディング量もたいしたこと無い。
エラー処理が必要な個所や、とくにHTTP/1.1の決まりごとはざっと知っておく必要がある。
Socket関数は無理だろうから、fsockopenかstream_socket_clientを使って。
0825nobodyさん04/10/02 14:22:25ID:???
せっかくPHPなんだからどのみちソケット関数はないだろう
まずはfsockopenのサンプル使ってPOSTを成功させてみるところからじゃないの
0826nobodyさん04/10/02 14:22:55ID:???
A
<?php
$a = "abc";
if (ereg($a, abcdef)) {
echo "1";
}
?>

B
<?php
if (ereg("abc", abcdef)) {
echo "1";
}
?>

AとBは、目に見える結果としては同じになると思うのですが
実行速度やメモリ使用量などの観点から見ると
どちらのほうがメリットが大きいのでしょうか?
それともまったく変わらないのでしょうか?ご教授ください。
0827nobodyさん04/10/02 14:40:00ID:???
A, Bともに未定義の定数abcdefが存在するためエラー処理のロスがある。
A, Bともにダブルクウォートを使用しているためパースされるロスがある
Bは変数に代入してい分早くメモリ消費も少ない

以上はマニュアルと常識的な思考ができれば自明。
A, Bの差異はエラーを除いて誤差の範囲であり、実際上無意味なので気にするのはナンセンス。
初心者ほど速度や負荷ネタで盛り上がるが、答える方は無意味な質問に答えされられるため
大変うざったく死んでほしいといつも願っている。
0828nobodyさん04/10/02 14:44:19ID:???
速度比較するならベンチ取るぐらいしてから聞けよ。
早い糞コードより読みやすく移植性の高いコードを書けよ。
毎度毎度毎度同じ回答で申し訳ないとは思うがね。
0829nobodyさん04/10/02 14:45:40ID:???
>>824
でつって商標登録されてんだろうと思ってたが、、、。
大丈夫なのかw
0830nobodyさん04/10/02 14:49:21ID:???
>>827
おおかた自分が予想していたとおりの答えが得られて満足しました。
どうもありがとうございました。
0831nobodyさん04/10/02 14:51:28ID:???
そういや正規表現はPosixよりPCREのほうが早いって書いてあったけど、あれどうなったん?
別ライブラリつかってるままなんだっけ?
083282704/10/02 14:52:48ID:???
>>830
このソースならstrstrを使え、というのもあるがな。
何にしろ腹立たしいアホだ。
0833nobodyさん04/10/02 15:03:18ID:???
>>831
そのままじゃない
どっちもeregだから関係ないけど

ここの質問見てるとereg使ってる人が妙に多いけど、なんの影響だろうね
0834nobodyさん04/10/02 15:05:31ID:???
>>832
なるほど。改良点はたくさんあるわけですね。
勉強になります。
0835nobodyさん04/10/02 15:07:49ID:???
>>831-832微妙にいい人 ( ´_ゝ`)ウフーン
0836nobodyさん04/10/02 15:22:02ID:???
いや俺はホントに腹立ってるんだって。
メモリの使用なんてPHPをソースハック出来るレベルになって初めて分かることだろ。
理由わからずにどっちが速いなんて丸暗記してどうすんの。
正攻法で学べよと思う。
速度にしたってmicrotime()でベンチとればいいだけだし、""のパースとかでかい変数は
参照渡しにするとかDBの正規化とかっていうのはいちいち聞かれてたらたまらんつーの。
基礎の組み合わせなんだから、ベンチやって人のソースを読んでマニュアル読んで少しずつ
分かっていけばいいのにさあ。
やってみて巨大なボトルネックが出来て質問されたなら答える方も挑戦してみようと思うじゃない。
マニュアルに書いて有るようなレベルで速度がどうとか聞かれてもうざいだけだわ。
つーかなんだこの分量バカだろ俺はほんとに
0837nobodyさん04/10/02 15:24:24ID:???
>>836
どこ縦?
0838nobodyさん04/10/02 15:27:00ID:???
>>836
普通の初心者はそういうこと聞かないマナーは心得てるよ
PHPはたまたま池沼がおおいだけだ
あまり気にするな

http://pc5.2ch.net/test/read.cgi/php/1077753522/271-n
気にしちゃだめだぞ
0839nobodyさん04/10/02 15:46:24ID:f1jlg8jO
文字列中の「"」や「\」の前に\を付けて「\"」や「\\」にしたいんですけど、
$changed = preg_replace( "/([\"\\\])/", "\\ \\1", $str );
こうすると「\ "」「\ \」となるんですが、置換文字列のスペースを詰めて
$changed = preg_replace( "/([\"\\\])/", "\\\\1", $str );
とするとうまく行きません。
どうしたら良いでしょうか?
084083904/10/02 15:50:41ID:f1jlg8jO
たぶん、
$changed = preg_replace( array("/\"/", "/\\\/"), array('\"', '\\'), $str );
こんな感じにすれば動作はすると思うんですが、見た目がややこしいのでもっと簡潔に書きたいんです。
どなたかよろしくご教授お願いします。
0841nobodyさん04/10/02 15:50:42ID:???
>>836
たしかにおまいはバカだがいいやつだ。
0842nobodyさん04/10/02 15:53:09ID:???
やってないけど preg_replace('/([\"\\\])/', '\\\\\\1', $str); の間違いじゃないの。
0843nobodyさん04/10/02 15:58:44ID:???
おおスマン。
'/(["\\\])/' か "/([\"\\\])/" どっちかだな。
細かいことは正規表現スレのリンク読めば分かるかな。
# そもそも正規表現の仕事じゃないような気がしないでもないが。
0844nobodyさん04/10/02 16:26:08ID:UuykfYQH
実運用でPHP5使っている方います?
まだ安定性にも不安があるしバージョンアップの間隔も短いので、
やっぱりPHP4で作る方が安心ですよねぇ。
PHP4のクラスは、インスタンスごとにメソッドまで作る(共有しない)らしいので
インスタンスをたくさん作るプログラムはPHP5の方がよさそうですが…
084583904/10/02 16:30:35ID:f1jlg8jO
>>843(842)
ありがとうございます。
ヽ(´▽`)ノ
# それにしても \\\\\1まではやってみたんですが、\6個だったとは...ムズカシイ orz
0846nobodyさん04/10/02 16:30:42ID:???
simpleXMLが使いたかったのでPHP5にしてみた
今はちょっと反省している
0847nobodyさん04/10/02 16:42:00ID:???
リテラル\一個に対して \\\\ ね。参照が \\1 なので計6個。
$1で参照するなら \\\\$1 の4個。
後者推奨とマニュアルにはある。
0848nobodyさん04/10/02 16:45:51ID:???
ねぇねぇ、ダウンロードしてきたPHPマニュアルが
文字化けしてるときはどしたらいいの?
ねぇねぇ
0849nobodyさん04/10/02 16:47:16ID:???
>>848
折角だから文字コードについて学ぶ
0850nobodyさん04/10/02 16:49:20ID:???
>>848
winのchmだろ。散々既出なんで自分で治せ。
0851nobodyさん04/10/02 17:42:51ID:???
質問です。
ファイルへの書き込みで、
ファイルの先頭へ書き込みたいんですが、
うまいやり方がわかりません。
w モードで開いて、新しく全部書き込む方法は
行数が増えた時に負荷も大きくなりそうで心配です。
行数が増えても負荷を小さくして書き込むことはできないでしょうか?
お願いします。
0852nobodyさん04/10/02 17:52:33ID:???
>851
'a' 書きこみのみでオープンします。ファイルポインタをファイルの 終端に置きます。ファイルが存在しない場合には、作成を試みます。
これの意味分かるか?
085385204/10/02 17:53:52ID:???
>851
いや、スマン。
読み間違い。
'x' 書き込みのみでオープンします。ファイルポインタをファイルの先頭に置きます。
こっち。
0854nobodyさん04/10/02 17:57:26ID:???
え、、えっくす




知らなかったよ



どうもありがとう


バカ!
0855nobodyさん04/10/02 17:58:49ID:???
なんだかよく分かりませんが、
どこにファイルポインタを置こうが今回の件に関しては関係無いのではなくって?
■ このスレッドは過去ログ倉庫に格納されています