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

【PHP】下らねぇ質問はここに書き込みやがれ 31

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/10/25(水) 08:45:46ID:???
PHPに関するくだらねぇ質問用スレです。ここならお前の下らない質問に回答があるかも知れません。

まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

【前スレ】
 【PHP】下らねぇ質問はここに書き込みやがれ 30
 http://pc8.2ch.net/test/read.cgi/php/1159979905/

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しない)
・ サーバーのOS、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
03823752006/10/29(日) 03:51:15ID:???
参考文献みつけました
ttp://side-b.sto.co.jp/weblog/archives/14
0383nobodyさん2006/10/29(日) 04:09:17ID:???
>>368
uasortの比較関数でランダムに返してやりゃいいんじゃね?

uasort($arr, 'cmp_rand');
function cmp_rand() {
 return rand(0, 2) - 1;
}
0384nobodyさん2006/10/29(日) 04:09:39ID:???
$r = mt_rand(0, count($array)-1);
$i = 0;
foreach ($array as $v)
{
if($i == $r) {echo $v."<br>"; break; }
$i++;
}
0385nobodyさん2006/10/29(日) 04:21:17ID:???
>>363
phpのバージョンとphp.iniを確認汁
0386nobodyさん2006/10/29(日) 04:47:03ID:???
しました。
0387nobodyさん2006/10/29(日) 04:59:09ID:hbSphBwD
PHPのセッションってデフォルトでブラウザ閉じるまで有効になってるはずだよな?
何か時々セッションが切れてしまうんだが・・・
ちなみにバージョンはPHP 5.1.1(Linux)
0388nobodyさん2006/10/29(日) 05:00:45ID:bPIXuHP3
php5.0.1
Apache2.2.3 を使ってphpを始めた者です。windowsXPです。

sqliteを使いたいのですが、ファイルのオープンの時にエラーが出てしまいます。
Fatal error: Call to undefined function sqlite_open()
in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\nenpyou\schedule.php on line 2

2行目のコードは、
$db=sqlite_open("schedule.sqlite",0666,$err);   
です。

php.iniは、
; Directory in which the loadable extensions (modules) reside.
extension_dir = "c:/php/ext"

;extension=php_sockets.dll
extension=php_pdo.dll
extension=php_sqlite.dll
;extension=php_sybase_ct.dll

のように変えています。
初心者なので右も左も分からない状態ですが、よろしくお願いいたします。
0389nobodyさん2006/10/29(日) 05:19:21ID:hbSphBwD
>>388
undefinedが出てるって事は間違いなくphp.iniの設定が間違ってるな
PHPがお前にsqlite_open()って言う関数がが見つからないよ!って教
えてくれてるんだ

まずapacheはちゃんと再起動したか?
03903872006/10/29(日) 06:08:50ID:hbSphBwD
あ〜・・・色々凄い勘違いしてたみたい・・・

ちょっとまとめて出直してくる
0391nobodyさん2006/10/29(日) 08:03:36ID:???
> セッションで実装はずいぶん前にやってましたが、
> URL直リンができないので不便すぎて廃止しました。
>
> 今は一応hiddenでやってますが、以前書いたようにフォルダ階層が分かりにくい。

こいつのおおもとの質問を読む限り、
こいつが探しているものは $_SERVER['PATH_INFO'] なのかな、って気がするが。

ただ持って回るのが検索履歴なら直林しなきゃいけない理由もよくわからんし
セッションに入れとけばって感じだけど。
携帯かなんかなのかな? あ、セッションIDをURLに入れとくように設定しとけば直林できるんでは
0392nobodyさん2006/10/29(日) 09:43:30ID:???
315は「履歴」という日本語の意味を知らないんじゃないか?
履歴とかではなく、単にカテゴリ分けされた「現在地」にあたるものを、ファイルシステムのパスみたいにスラッシュ区切りで表示したいだけだと思われ。
セッションを使う必要すらない。
URLの見た目も階層的にするなら、mod_rewriteで終了。
0393nobodyさん2006/10/29(日) 10:07:10ID:???
一意な数を取得したい場合、どうやってますか?
カウントファイル用意するか、
SQLでカウンタ用テーブル作成するか、
の方法取ってるんですが、もっとスマートな方法はないでしょうか?
0394nobodyさん2006/10/29(日) 10:12:11ID:???
>>393
一意ってのが後にも先にも一意っていうなら
そりゃやっぱどこかに既存値を保存しないとムリあるから
ファイルかDBになるんでないの?

自分でやるならまずその数字の使用目的と生成頻度から
本当に一意である必要があるかを問うとこからはじめる。
0395nobodyさん2006/10/29(日) 10:26:57ID:???
>>393
大概のDBには連番発行のための仕組みがあるからそれを使う
0396nobodyさん2006/10/29(日) 12:14:56ID:XBhnfX09
一意ってのがどんなもんなのかよくわからん
394と同じく使用頻度に重点を置くのが一番かと
0397nobodyさん2006/10/29(日) 13:45:32ID:c2r4qYBN
すいません、下らなくない質問ですが、本スレがないらしんでここで。

PHP側でHTTPリクエストのリクエスト内容を取得する方法ってありますか?
(HTTP 1.0/1.1 のリクエストヘッダーを取得する方法です。)
0398nobodyさん2006/10/29(日) 14:06:22ID:???
>>397
下らねえよ
$_SERVER['HTTP_*']
apache_request_headers
nsapi_request_headers
03993882006/10/29(日) 14:36:38ID:Vho0F98z
>>389
レスありがとうございます。
ApacheはRestartしました。

php.iniで、ほかにsqlite_openに関係するところがあるのでしょうか?
0400nobodyさん2006/10/29(日) 15:10:39ID:???
それでちゃんとextension_dirにdllがあれば動くはず
0401nobodyさん2006/10/29(日) 15:55:46ID:???
apache2.2.3って
phpディレクトリにちゃんとphp5apache2_2.dllが入っていることが前提で質問してるんだろうな?
04023882006/10/29(日) 17:20:07ID:t7v+PkcA
>>400,401
Cのphpのextに両方のファイルがあります。
php5apache2_2.dllも、phpに入っているのを確認しました。

さっきももう一度パソコン再起動して試してみましたが、同じ症状です。
0403nobodyさん2006/10/29(日) 17:26:15ID:???
PHPIniDirは?
0404nobodyさん2006/10/29(日) 17:26:56ID:???
って2.2ってPHP対応してなくなかったっか?忘れたけど
0405nobodyさん2006/10/29(日) 17:27:27ID:???
ぶっちゃけ、ここにいる回答者ってまともなもの作ったことないべ?
0406nobodyさん2006/10/29(日) 17:54:15ID:???
ぼうや、良く気付いたね!
その年でそこまで分かるなんて本当に大したもんだよ、うん。
0407nobodyさん2006/10/29(日) 18:13:22ID:???
ここのスレはいい人ばかりで大好きです。
ありがとう。
0408nobodyさん2006/10/29(日) 18:31:59ID:???
>>404
非公式で配布されてるよ。
0409nobodyさん2006/10/29(日) 18:33:21ID:???
>>402
まさかとは思うが公式版のapacheつかってないだろうな?
04103882006/10/29(日) 19:02:32ID:t7v+PkcA
>>403
phpIniDirとは、httpd.confのどこかに書くのでしょうか?

>>408,>>409
たぶん公式版を使っています・・・
ttp://httpd.apache.org/download.cgiからダウンロードしました。

簡単なsqlite以外は動作していたのですが。
非公式で配布されているのは、どこででしょうか?
0411nobodyさん2006/10/29(日) 19:18:20ID:???
公式版使ってるなら2.0か1.3にしな。
非公式ぐらい自分で探せないなら公式版つかってたほうが無難。
04123882006/10/29(日) 19:20:00ID:t7v+PkcA
すみません、410の、「簡単なsqlite以外」は、
「phpそれ自体(簡単なphpコード)」という意味です。わかりにくくてすみません。
0413nobodyさん2006/10/29(日) 19:57:41ID:???
無理に2.2.3を使う必要はない。やめとき
0414nobodyさん2006/10/29(日) 20:20:33ID:???
すいません。教えてください。
windows環境でPHP5.1.6を動かしてます。
mysqliを試してみようと思ったのですが、上手く動きません。
とりあえずphp.iniの
;extension=php_mysqli.dll
のセミコロンを外して再起動したんですが全く無反応です。
Apacheのエラーログに以下のようなメッセージが書かれてました。
PHP Warning: PHP Startup: Unable to load dynamic library 'c:\\php\\ext\\php_mysqli.dll'

このサイト見てみたら
ttp://php.s3.to/man/install.windows.extensions.html
libmysqli.dllが必要(バンドル)と書いてありますが、そのようなファイルは見当たりませんでした。
どうしたらいいでしょうか?お願いします
0415nobodyさん2006/10/29(日) 20:28:41ID:???
mysqlインストールしてるか?
0416nobodyさん2006/10/29(日) 20:34:12ID:???
>>414
・extension_dirを設定しているか
・extension_dirで設定したディレクトリにdllがあるか
04173882006/10/29(日) 21:47:30ID:uuNUd04h
apache2.0.59を入れてみたのですが・・・
同じメッセージが出てしまいます。

httpd.confは、
LoadModule phhp5_module c:/php/php5apache2.dll
AddDefaultCharset none
AddType application/x-httpd-php .php
の設定にしています。
0418nobodyさん2006/10/29(日) 21:53:00ID:???
phhp
0419のぐち2006/10/29(日) 22:02:14ID:???
なおってなかったら
とりあえずもう一度apacheとphpをいれなおせ。
いれなおしたらレスしれ
04204142006/10/29(日) 22:08:57ID:C/SNmSN3
>>415
今まで通常のmysql_connectで繋いでたんでMySQL側の原因ではないと思います。
>>416
extension_dir = "c:\php\ext\"
としてあって同ディレクトリにphp_mysqli.dllが置いてあります。
libmysqli.dllはみんな存在してないんですか?
libmysql.dllはあるんですが・・・。
0421nobodyさん2006/10/29(日) 22:33:18ID:0I0yeegj
ダウンロードカウンタの仕組みについて質問です。
リンクをクリックしてファイルをダウンロードさせたいのですが、
ファイルのリンクを踏んだらカウントするって考えでよろしいのでしょうか?
クライアントが保存をキャンセルした場合もカウントされるものですよね?
0422nobodyさん2006/10/29(日) 22:43:20ID:???
>>388
403で出てるけど、php.iniの場所は確認した?
PHPのインストールディレクトリに入ってるだけじゃだめだよ(PATHが通っているかどうかは無関係)。

・C:\WINDOWSに入れる
・httpd.confでPhpIniDirを設定する

のどちらかをやればおk。
0423nobodyさん2006/10/29(日) 22:44:24ID:???
>>420
apache再起動はしたか?エラーメッセージはどうなった?
Unable to load dynamic library ならまだ読み込めない原因があるはず

http://php.net/manual/en/install.windows.extensions.php
libmysqli.dll はphp 5.0.3以降 libmysql.dll に
統合されたみたいなので問題ない

ていうかmysqliなんて使わずpdo_mysqlにした方がいいと思うよ
04244142006/10/29(日) 23:10:30ID:C/SNmSN3
>>423
はい。何度も再起動しました。
Apacheのエラーログに
PHP Warning: PHP Startup: Unable to load dynamic library
'c:\\php\\ext\\php_mysqli.dll' - \x8ew\x92\xe8\x82\xb3\・・・
(中略)
in Unknown on line 0
と出てます。あきらめようかなorz

pdo_mysqlですか。
ちょっと勉強してみます。
0425nobodyさん2006/10/29(日) 23:20:57ID:???
PHPを最近使い始めた初心者です。(C/C++経験はあり)
PHPの関数・クラス定義・変数のスコープについて悩んでいます。
関数やクラスをファイルに分けて定義し、include/requireした場合に名前衝突を起こす問題を極力避けたいと思っています。
現状では関数/変数をクラス内static定義にする事によって極力名前衝突を起こさないようにしています。
(C++でのnamespase的に使用しています。PHP5で実装予定であったものがされなかったとかなんとか・・・)

こうしてある程度クラスに名前を閉じ込めたものの、クラス定義名の衝突だけは回避出来ずに困っています。
今作成している物に後からモジュール的にコードを追加して行く予定の為どうしても名前衝突問題を回避しなければ・・・

構成的に以下のような物を予定しているます。
[メインphp]
 |---[モジュールAphp]
 |---[モジュールBphp]
 |---[モジュールCphp]
 |---[追加予定モジュールXphp]
 |---[追加予定モジュールXphp]
・・・・
メインphpが上から順番にモジュールPHPを読み込んで行くような構成です。

このような構成で、[モジュールXphp]各々がクラス定義phpファイルをinclude/requireすると
自身のモジュールでだけ使用する比較的どうでも良い様な物までグローバルスコープに名前が追加されていってしまうようで、
後に読み込まれるモジュール程名前の幅が狭まっていってしまいます・・・
関数内でクラス定義をinclude/requireしたりと色々試したのですが、どうしても定義はグローバルになってしまうようです。

現状ではモジュールそれぞれがクラス名にプレフィクスを付ける規約みたいな物を作る方法しか思いついていません。
class ModuleA_class1{ }
class ModuleA_class2{ }
class ModuleB_class1{ }
class ModuleB_class2{ }

なにか良い方法はありませんでしょうか(´・ω・`)
0426nobodyさん2006/10/29(日) 23:26:00ID:???
>>424
なんか回答とその対応が混乱してるように見えるんだけど、
>>423にあるようにlibmysqli.dllが必要なのは5.0.2まで。
だからそもそも>>414の
>とりあえずphp.iniの
>;extension=php_mysqli.dll
>のセミコロンを外して再起動したんですが全く無反応です。
これ自体が間違ってると思うんだがどうよ?
extensionに必要なのはlibmysql.dllだけじゃないの?
0427nobodyさん2006/10/29(日) 23:35:11ID:???
>>425
はっきり言おう、ない
クラス名に一意のprefixをつけるくらいしかない
メジャーなPHPフレームワークも大概そうしている
例えばZend Frameworkなら全クラスに
prefixで「Zend_」がついてその後にモジュール名がくる
04284252006/10/30(月) 01:15:22ID:???
>>427
情報ありがとうございます。
クラス(関数/変数)にprefixを付ける制限的規約を設けることにします。

おかげさまで気持ちがスッキリ割り切る事が出来ました。
これで思う存分コードを書きまくる事が出来ます(`・ω・´)

0429はじめまして2006/10/30(月) 02:33:13ID:zWlXBO6n
すみません。
ある文字列をmb_convert_encodingを使いEUC-JPに変換したいのですが、
何を指定しても常にASCIIになります。
なにか他に設定あるでしょうか?よろしくお願いいたします。

ソース:SJIS
入力値(test):"あああ"
mb_detect_encoding($_POST['test'])で取れる値:SJIS

 $strEuc = mb_convert_encoding($_POST['test'], "EUC-JP", "SJIS");を実行
 ※ちなみに変換前のコードのとこをautoやほかのにしてもだめでした・・・

mb_detect_encoding($strEuc)で取れる値:ASCII
04300x3f(笑)2006/10/30(月) 02:41:05ID:???
php.iniにmbstringの項目あるじゃん、書け
0431nobodyさん2006/10/30(月) 02:45:29ID:???
>>429
実際は変換結果はどうなってんのよ。出力して確認したのか?
「変換できてない」のと「detectでEUCが判別できない」のとでは
全然意味が違うし、どっちの可能性が高いかったらdetectの方が怪しい。
0432nobodyさん2006/10/30(月) 03:06:28ID:???
>>429
mb_detect_encodingは短い文字列に対しては、期待通りの結果にならないこともあるので(内部のバイナリレベルでは人間にもコンピュータにも区別つかなかいこともあるし)、基本的に信頼をしたらだめ。
飽くまで補助的な目的に使う。
mb_convert_encodingは第2引数と第3引数が正しければ、信頼はできる(内部にバグがない限りは)。
0433nobodyさん2006/10/30(月) 04:14:32ID:???
>>429
自分でコンバート処理かけば解決。
世の中にはメールアドレスの正規表現を書いたものすごい人もいるんだから
やってみればいいじゃん
0434nobodyさん2006/10/30(月) 05:11:29ID:???
PerlならともかくPHPでそんな処理書いたら遅すぎて大変な気もするけどな。
0435nobodyさん2006/10/30(月) 05:39:04ID:???
んなこたあねえよ
0436nobodyさん2006/10/30(月) 05:47:50ID:???
文字コードの変換って、基本的にテーブルを参照しながら端から端まで1方向にスキャンするだけだから、PHPで書いてもそれほど遅くはならないと思うよ。
まあ実装しても車輪の再開発にしかならないけど。
04373882006/10/30(月) 05:49:57ID:QeG77sZU
>>419,422
Apache2.0.53とphp5.0.4を入れ直したら、
解決しました。
このバージョンでは、php.iniでsqliteの設定をしなくても
大丈夫でした。
ご協力下さった皆様、本当にありがとうございました。
0438nobodyさん2006/10/30(月) 06:17:39ID:???
変数を使ってincludeするファイル名を指定する場合、どうすればいいですか?

例えば、
$mode = "text"
の時に"file_text.inc"をincludeしたいのですが、どうすればいいのでしょうか?
0439nobodyさん2006/10/30(月) 06:17:53ID:???
いえいえ、朝飯前ですよ。こまったことがればまた質問してください。
04404382006/10/30(月) 06:18:32ID:CYbz73Go
すみません、IDは表示しなければいけなかったのですね
0441nobodyさん2006/10/30(月) 06:22:26ID:???
>>438
何がわからないんだ・・・?
if ($mode == "text") {
 include "file_text.inc";
}
04424382006/10/30(月) 06:27:12ID:CYbz73Go
>>441
回答ありがとうございます。
説明不足でスミマセン、例ではtextだけを上げましたがtexta,textb,textc・・・という風に生成されていく場合です。
04434382006/10/30(月) 06:28:56ID:???
解決しますた。ご協力ありがとうございますた。
0444441のソースを元に2006/10/30(月) 06:34:46ID:???
#switchつかったほうがいいけどif文でやるなら。


if ($mode == $texta) {
 include "file_text.inc";
} elseif {
 #処理2
} elseif {
省略

ていうか最低限の勉強しないで聞くのは学校ぐらいにしておけクズ。
0445nobodyさん2006/10/30(月) 06:39:21ID:???
>>texta,textb,textc・・・という風に生成されていく場合です。

↑>>444のコードは自分でいじって動かしてみろ。
連想配列の勉強すればわかることだから入門書嫁ボンクラ。
04464382006/10/30(月) 06:40:13ID:CYbz73Go
いえ、そういう意味ではなく変数をファイル名に含んだファイルを呼び出したいんです。
444のコ−ドだとtextxが増えた場合にelseifを自分で増やさなければならないのですが
0447nobodyさん2006/10/30(月) 06:48:16ID:???
最初から最後まで意味のわからない質問だったなwww
0448nobodyさん2006/10/30(月) 06:53:02ID:???
>>438の質問が悪すぎ
0449nobodyさん2006/10/30(月) 06:55:51ID:???
>>446
連想配列をと変数と『.=』を使いこなせば解決します。
何でも聞くんじゃなくて自分なりにためしてみて、
それでも動かなかったらここにコードを書け。
だから質問もロクにできないグズなんだよおまえは
0450nobodyさん2006/10/30(月) 06:57:10ID:???
include "file_".$text.".inc";
include "file_{$text}.inc";
とかってことじゃないの。
↑であってるならば、俺は最初から質問の意味理解できたけど。
04514502006/10/30(月) 06:59:50ID:???
あぁ、$textじゃなくて$modeか。
一気にレスついたから、全部自演に見える。
0452nobodyさん2006/10/30(月) 07:02:42ID:???
まあ解決したらしいので、心機一転、次へ行きましょうか。
0453nobodyさん2006/10/30(月) 08:55:23ID:???
この板のデータおかしくね?
このスレさっきまで下の方にあったのに、すこし上にあがってる。
バグ?
0454nobodyさん2006/10/30(月) 09:08:11ID:???
>>453
その「さっき」っていう時点でスレ一覧をリロードしてなかっただけじゃね?
今のところ、ageられた時間的には

10/30(月) 06:40:13 【PHP】下らねぇ質問はここに書き込みやがれ 31
10/30(月) 03:38:12 IDにPerlが出たら神!PHPが出たらシメジ Part24
10/30(月) 03:37:15 金出すから改造してよvol.3
10/30(月) 02:44:37 SNS作ってみよう
10/30(月) 02:42:36 OpenPNE その4
10/30(月) 01:09:43 【質問】ASP.NETスレ Part3【議論】

って感じで、特におかしなとこはなさげ。
0455nobodyさん2006/10/30(月) 09:31:47ID:???
やっぱり勘違いですね、失礼いたしました。
0456nobodyさん2006/10/30(月) 11:25:37ID:Ji6bSWEi
1行で書いたほうがスッキリしていいのかな?なんて思い、
三項演算子で条件文を書いて、
現役PGの知り合いに見せたら使わないほうがいいと言われました。
理由は聞かなかったのですが、やはり見づらいからという理由なんでしょうか?
一応個人で使う分なので、別の理由かもしれませんが。
もしかしたらパフォーマンス面かな?と思ったので計測したいのですが、
計測の仕方がわかりません・・・
スクリプトの最初と最後でmicrotimeをとって、その差を求めればいいのでしょうか?
0457nobodyさん2006/10/30(月) 11:30:15ID:???
うん、意味わからんから帰れ。
0458nobodyさん2006/10/30(月) 11:43:25ID:???
>>457
煽るだけなら半年ROMってろ。
こんなんがいるから低レベル云々言われるんだよな('A`)
0459nobodyさん2006/10/30(月) 11:48:44ID:???
と、レス忘れた。

>>456
相手がプロなら、コーディング規約に沿った複数人プロジェクトもやってるはず。
となると、仕事柄見やすいソースを意識するんじゃないかと思う。
わざわざ見にくいソースを書く必要がないっていう考えでしょ。
個人で作ってると言っても、聞いてる相手に見せてるんだから、
見やすいソースを渡すべきだと思う。

ベンチマークはPEARのBenchmark
0460nobodyさん2006/10/30(月) 11:52:31ID:???
質問をでっちあげてくるやつが増え出したのはいつの日からであっただろうか@chirashi.no.ura
0461nobodyさん2006/10/30(月) 12:04:41ID:bBR787Fl
認証が必要なページで、CSVをダウンロードしたいです。
認証部分はPEAR::HTTP_Clientを使ってできました。
ですが、取得したHeaderから、ダウンロードしたいファイル名を取り出し、
ローカルに保存するやり方がわかりません。
よろしくお願いします。以下ソースとヘッダーです。
$target_url = "https://xxxxxxxxxxxxxxxxxxxxxxxxxxxxx/aiuro.php";;
$client =& new HTTP_Client( $reqParams);
$client->post( $login_url, $login_params);
$client->get( $target_url);
$response = $client->currentResponse();

print_r( $response);

Array
(
  [code] => 200
  [headers] => Array
    (
      [date] => Mon, 30 Oct 2006 02:31:03 GMT
      [server] => Apache
      [cache-control] => private, max-age=10800, pre-check=10800
      [last-modified] => Wed, 20 Sep 2006 01:47:25 GMT
      [content-disposition] => attachment; filename=item_20061030-113103.csv
      [connection] => close
      [transfer-encoding] => chunked
      [content-type] => application/octet-stream; name=item_20061030-113103.csv //このファイルを保存したい。
    )

  [body] =>
)
0462nobodyさん2006/10/30(月) 12:37:57ID:???
>>461
保存したいも何も、bodyが空じゃん。
0463nobodyさん2006/10/30(月) 12:54:50ID:???
いるよね三項演算子嫌いな人。
ていうか、「そんなもの知らない」って人も結構いるし。
とりあえずPHPは、どんなレベルの奴がかかわってくるかわからんので、
素人向けの一番簡単な入門書で紹介してるレベルの内容で書き換え可能なものは
原則的に素人向けの書き方しといたほうがいいんじゃないかって気がする。
経営的な言い方すると、PGのコストを最小にしてもトラブルが少ないように。
もちろん経営的に全然逆の考え方する人もいるだろうけど。
04644612006/10/30(月) 13:05:21ID:bBR787Fl
>>462
このページは、通常のブラウザで見ると、
CSVファイルのダウンロードページなので、Bodyは無いのだと想います。
0465nobodyさん2006/10/30(月) 13:07:43ID:???
>>456
そもそもどういうのを三項演算子で書き直したんだ。
三項演算子は「条件で変わる代入式」をすっきり書くための演算子で
条件文を1行化するために用いるようなものじゃないよ?
意図の見えないコードは当然読みづらくなるし保守が難しくなるので
そういう意味で誤った使い方をしてるなら避けた方がいい。

ただ、それとは別にCに慣れない人や不勉強な人で
三項演算子を見慣れなくて敬遠してるだけの人も多い。
そういう人が触ることも考慮してコーディング規約なんかで
禁止してる会社も多々あるが、個人的にはどうかと思う。

なお、パフォーマンス的には何の問題もない。
0466nobodyさん2006/10/30(月) 13:11:46ID:???
>>464
は?BODYってファイル本体になるはずでしょ。
04674612006/10/30(月) 13:31:25ID:bBR787Fl
>>466
失礼しました。「ダウンロードページ」ではなくて、
「ファイルのダウンロード」です。
こういうの↓
http://players.music-eclub.com/download.php?sid=116561
0468nobodyさん2006/10/30(月) 13:39:36ID:???
>>467
うん。だからこの場合、BODYはファイルそのものになるはずでしょ。
Content-Lengthが返ってないせいで取得できてないのか?
0469nobodyさん2006/10/30(月) 13:59:27ID:rTiz0489
俺、三項演算子よく使うなぁ・・・
単に
if($_POST['checkbox']){
$checked = 'checked';
}else{
$checked = false;
}
ってだけなら、三項演算子で書いた方がすっきりするから
0470nobodyさん2006/10/30(月) 14:11:46ID:mf7qX0dx
mb_send_mail()を使ってメールを送信するプログラムを作成しているのですが、
本文に指定した文字列の最後に改行が2つ付いてしまうのですが、
これを回避する方法ってありますか?
0471nobodyさん2006/10/30(月) 14:13:39ID:???
俺は三項演算子が大嫌い。

見通しも悪いし、別にパフォーマンスに影響ないし。
「すっきりコンパクト=見通しが良い」ではないよ。
ソースってのはいわば設計図だからな。
シンプルすぎる設計図は、建物の詳細が見えにくい。
0472nobodyさん2006/10/30(月) 14:19:36ID:???
三項演算子のほうが見やすいものには三項演算子を、ifのほうが見やすいものにはifを使えばいい。
頑なにどちらかに固執する必要性を感じない。

>>467
そのリンクだったら普通に取得できるみたいだけど。
$client = new HTTP_Client;
$client->get('http://players.music-eclub.com/download.php?sid=116561');
$response = $client->currentResponse();
04734612006/10/30(月) 14:42:44ID:bBR787Fl
>>468
なるほど、そうなるんですか。どうもです!
>>472
環境の違いでしょうか…。
$client = new HTTP_Client;
$client->get('http://players.music-eclub.com/download.php?sid=116561');
$response = $client->currentResponse();
でも、bodyは空なんですよね〜。
0474nobodyさん2006/10/30(月) 15:34:50ID:???
>>473
俺のとこでは$response['body']に4MくらいのMP3のバイナリデータがばっちし入ってたけどな。
普通のHTMLとかは取得できるの?
0475nobodyさん2006/10/30(月) 15:58:00ID:???
>>471
姉歯物件は三項演算子で出来ているんだよ
0476nobodyさん2006/10/30(月) 16:02:27ID:???
おまえらの三項演算子雑感は聞いてねーんだよ
04774612006/10/30(月) 16:23:10ID:bBR787Fl
>>474
ありがとうございます!
自己解決しました。
HTTP_Clientをインストールしなおしたらいけました。
0478nobodyさん2006/10/30(月) 17:50:21ID:???
PEARってコピーするだけじゃなくてインストール作業が要るの?
0479nobodyさん2006/10/30(月) 17:53:16ID:???
include_pathが通ってるところにコピーするだけでOK
0480nobodyさん2006/10/30(月) 18:19:15ID:???
PHPは、CR+LFで保存すべきですか?
0481nobodyさん2006/10/30(月) 18:26:40ID:???
いいえ。
0482nobodyさん2006/10/30(月) 20:49:08ID:???
>>479
依存関係のことまで考えたらpearコマンドが断然楽じゃね?
■ このスレッドは過去ログ倉庫に格納されています