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

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

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2006/08/07(月) 13:11:50ID:???
PHPに関するくだらねぇ質問用スレです。ここならお前の下らない質問に回答があるかも知れません。

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え。理解できないならムリに使うな。
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0951nobodyさん2006/08/22(火) 17:57:28ID:???
あるよ
0952nobodyさん2006/08/22(火) 18:05:04ID:???
>>943
先生!PHP却下です!!
>本選ではC/C++とJavaだけが使えます
0953nobodyさん2006/08/22(火) 18:09:08ID:???
だからあえてPHPで解くんじゃないの
0954nobodyさん2006/08/22(火) 18:16:11ID:???
>>952
はきっと自己判断が出来ないって言われるタイプなんだろうな
0955nobodyさん2006/08/22(火) 18:27:18ID:???
>>950
foreachを抜け出す処理をするユーザ関数を見てみたい
0956nobodyさん2006/08/22(火) 18:33:58ID:???
>>955
function hogehoge
{

foreache($hoge as $var)
{
return $var;
}


}
0957nobodyさん2006/08/22(火) 18:45:39ID:???
百歩譲ってそれ何に使うの
0958nobodyさん2006/08/22(火) 18:52:24ID:???
>>957
無理して使う必要は無いんじゃない?
0959nobodyさん2006/08/22(火) 18:55:23ID:???
>>941
そりゃチーム開発にはOOPだのユニットテストだの必須だが、
別にそれが必ずしも優れてるとか絶対とかってわけじゃないだろう

自己過信気味で頭が硬直化してるのはむしろ喪前では?
0960nobodyさん2006/08/22(火) 19:10:44ID:???
文法ミスりまくりだし
ただ一つ目の要素返して終わりで何をしたいのかわからない
0961nobodyさん2006/08/22(火) 19:13:55ID:???
>>949
うそこくでねえだ
全部判定したら4 1 2 1だ
0962nobodyさん2006/08/22(火) 19:52:15ID:???
途中である条件を満たしたら中断したいようなループは
while使いたいな。
0963(^ω^)2006/08/22(火) 20:01:16ID:???
解答書くお
0964(^ω^)2006/08/22(火) 20:04:57ID:???
<?php
$file_name = "01.txt";
/* ここからプログラム */
$tri = 0; // 三角形
$r_tri = 0; // 直角
$a_tri = 0; // 鋭角
$o_tri = 0; // 鈍角
$fp = fopen($file_name, "r") or die("ファイル読めねーよ馬鹿");
while(true) {
 $res = sscanf(rtrim(fgets($fp)), "%d %d %d");
 //値の数が3以下なら終わり
 if (count($res) != 3)
  break;
 sort($res);
 // 三角形でなければ、さようなら
 if ($res[0] + $res[1] <= $res[2])
  break; // 終わり
 ++$tri;
 // 直角三角形
 if ($res[0] * $res[0] + $res[1] * $res[1] == $res[2] * $res[2])
  ++$r_tri;
  continue;
 // 鋭角三角形
 if ($res[0] * $res[0] + $res[1] * $res[1] > $res[2] * $res[2])
  ++$a_tri;
  continue;
 ++$o_tri;
}
fclose($fp);
echo join(" ", array($tri, $r_tri, $a_tri, $o_tri));
?>
0965(^ω^)2006/08/22(火) 20:07:23ID:???
ごめん、直角三角形と鋭角三角形の部分に{ }が必要だった
0966nobodyさん2006/08/22(火) 20:14:52ID:???
DOMDocumentでファイルにXMLツリーを書き出すときの排他制御は
どうやるんですか?
0967nobodyさん2006/08/22(火) 21:07:08ID:???
そういえば、WinのApache 2.2.3でPHP5は使えるようになったのでしょうか?
0968nobodyさん2006/08/22(火) 22:00:57ID:???
開発のテストだけどさ、テストを行う根本的な理由はさ、運用開始したときにバグが発生してまいったなこりゃ
ってことにならないように行うものだよ

だからさ、バグがありませんよって示せるようなテスト結果があればいいってことだよ

単体テスト、結合テストってプロジェクトの規模によって複数階層別になるし
ほかのみんなが言っている単体テストを質問者のプログラムに直接対応させるのは
おかしいと思う

単体テスト=個々の機能テスト
結合テスト=複数の連携テスト

ようはバグがあとあとでてこないように、発生しうるルートをすべて網羅できるように、
小さい機能から先にテストしておきましょうってことかな

複数の機能が連動するようなテストだと、すべて網羅することは難しいからね
0969nobodyさん2006/08/22(火) 22:35:57ID:pY0h5YuJ
質問でございます〜  環境はPHP5, Mysql5, Fedora5

クライアントの要望で、PHP、SQLの環境で、スプレッドシート(セル)形式のUIを作って欲しいと。
なぜか? と聞いたら、取引先のxlsからコピーできたりしたら、素晴らしいことでしょ? それとライセンスの関係でエクセルが無いPCがあるので、エクセルに依存してるのは駄目だと。
との答え。
はい。 途方にくれました。

まず、エクセル以外のスプレッドシート… 思い浮かびません。色々調べたけど、英語過ぎて分からなかった。ライセンス激高いソフトは発見したけど、SQLの兼ね合いがまるで不明。
それになんらかのスプレッドシートを作ってもSQLから出力できるのかと。

明日一日調べる予定だけど、英語てんでだから、難しいだろうなぁ;;
皆さんお知恵があれば、助けてください;;

0970nobodyさん2006/08/22(火) 22:39:53ID:???
>>969
それ、いくらで作るの?100万とかじゃないよね。
まぁ、そんなあなたに
つ Google Spreadsheets
0971nobodyさん2006/08/22(火) 23:18:42ID:pY0h5YuJ
>970
100ってことはないと思いますね。PMと営業にまだ聞いてないので、詳しくは知りません。
Google Spreadsheetsですか〜 ちょっと調べてみます〜
HTMLにさえ入れられれば… ☆(ゝω・)vキャピ
0972nobodyさん2006/08/23(水) 00:07:29ID:???
CSRF対策で、リファラのチェックってどうやるのがベストですか??

一応考え付いた方法は、$_SERVER['HTTP_REFERER']と$_SERVER['HTTP_HOST']を
取得して、$_SERVER['HTTP_REFERER']の文字列の中に$_SERVER['HTTP_HOST']が
含まれてるかどうかをチェックするというもの。

これだと何かマズイ点とかありますでしょうか?
0973nobodyさん2006/08/23(水) 00:17:37ID:???
>>972
リファラのチェックはそれでも良いだろうが、リファラなんて
簡単に偽装出来てしまうぞ。
0974nobodyさん2006/08/23(水) 00:24:27ID:???
>>973
CSRF対策での話なので、リファラ偽装は関係ないと思いますが・・・。

CSRFによる被害を受けちゃう本人がリファラを偽装してる分には
その人自身の責任ですからね。
0975nobodyさん2006/08/23(水) 00:40:33ID:???
リファラなんて返さない人も多いのに、対策でアテになんのかそれ。
0976nobodyさん2006/08/23(水) 01:01:54ID:???
次スレ:


【PHP】下らねぇ質問はここに書き込みやがれ 27
http://pc8.2ch.net/test/read.cgi/php/1156262092/
0977nobodyさん2006/08/23(水) 01:16:21ID:???
PHPでメールを送るときにmail関数を使ってるんだけどなぜか件名だけ文字化けする・・・
=?iso-2022-jp?B?".base64_encode(mb_convert_encoding("ここに日本語の件名","JIS","EUC-JP"))."?=";
って言う指定をしたらある程度文字化けを防げるようになったんだけど、一部の人間はまだ文字化けしてるって言ってる。

誰かヒントください!
0978nobodyさん2006/08/23(水) 01:42:08ID:???
>>975
リファラを返さないようなキモヲタには
そもそもシステムを使わせませんので大丈夫です。
0979nobodyさん2006/08/23(水) 02:12:57ID:???
>>978
ノートン入れて標準の設定で使ってたらキモオタかよ…頭大丈夫か?
0980nobodyさん2006/08/23(水) 02:14:11ID:???
>>969
話からすると、会社的にもうその仕事は受けちゃってるんだね。乙。
自分なら断るけど。
0981nobodyさん2006/08/23(水) 02:28:49ID:???
>>969
そのクライアントがスプレッドシートに何を期待してるんだか分からん。
単に縦横にカラムが並んでればそれだけでいいのか?
0982nobodyさん2006/08/23(水) 02:54:17ID:???
>>979
まあノートン自体がキモいというかウザいけどね。
0983nobodyさん2006/08/23(水) 02:56:31ID:???
でもノートンをウザがるのがむしろオタクだよな。普通の人はそんなの気にしない。
0984nobodyさん2006/08/23(水) 03:02:58ID:???
>>983
それはあるな。
ただ、一番最初のIEの起動でさえ止めようとするあの男気には天晴れというほか無い。

>>977
あんまりメール系やらないから分からないけどmb_send_mailとかじゃダメなの?
0985nobodyさん2006/08/23(水) 03:59:18ID:???
>>977
この話題 1 ヶ月に 3 度は出るね。
MIME エンコードしろ。
0986nobodyさん2006/08/23(水) 06:01:23ID:???
>>985
ここ最近の過去スレでこの質問出てたっけ??
0987nobodyさん2006/08/23(水) 06:09:20ID:???
>>986
少なくとも 7/21 に出てた
0988nobodyさん2006/08/23(水) 06:10:44ID:???
1ヶ月以上前じゃないか
0989nobodyさん2006/08/23(水) 06:13:19ID:???
>>988
範囲の起点が違うんじゃね?
どーでもいい。とにかく FAQ だ。
0990nobodyさん2006/08/23(水) 06:15:02ID:???
次スレ
【PHP】下らねぇ質問はここに書き込みやがれ 27
http://pc8.2ch.net/test/read.cgi/php/1156262092/
0991nobodyさん2006/08/23(水) 07:45:29ID:???
WEBの1画面で、実行するSQLの数ってどのくらいだろう

カテゴリを表示する処理で、
カテゴリA10 x カテゴリB10(カテゴリA1つの付10個存在) で = 100回もの
SQLを発行することになったんだけど、これって効率悪いですよね

最終的には下のように表示したいので、それぞれカテゴリA、カテゴリBの配列があればいいかな
って思ってこうやったんですが、何かうまい方法ってないんでしょうか

カテゴリA名1
  カテゴリB名1、 カテゴリB名2、 カテゴリB名3 ....

カテゴリA名2
  カテゴリB名1、 カテゴリB名2、 カテゴリB名3 ....

0992nobodyさん2006/08/23(水) 08:08:35ID:???
>>991
SQLの内容にもよるよ。軽いSQLなら100回くらいやっても別に問題ない。
回数よりトータルの待ち時間と、実行中のDBサーバー負荷が肝心。

それが過負荷になってるならカテゴリBの取得をまとめてやっておいて
PHPの配列処理で分配する方法も効果があるが、そういうのは
現物でベンチマークでも取りながらチューニングしないと何とも言えんよ。

で、とりあえず質問するならカテゴリAとBがDBのテーブルにどういう風に格納されてて
どんなSQLで拾ってるのか書いてくれんことにはアドバイスのしようがない。
多分、カテゴリBのSQLと配列への格納の仕方を手直しすれば一発で引けるとは思うが。
0993nobodyさん2006/08/23(水) 08:12:43ID:???
>>991
> カテゴリA名1
>   カテゴリB名1、 カテゴリB名2、 カテゴリB名3 ....
> カテゴリA名2
>   カテゴリB名1、 カテゴリB名2、 カテゴリB名3 ....
カテゴリA名1内のカテゴリB名1と、カテゴリA名2内のカテゴリB名1ってのは同じなのか?別物なのか?
0994nobodyさん2006/08/23(水) 09:55:52ID:???
>981
>単に縦横にカラムが並んでればそれだけでいいのか?
そういうニュアンスのことを言われました〜。
Google Spreadsheets ちょっと見てみたけど、ヒントをくれた方は、JavaScriptでHTMLの中に入れてやれってことだったのかなぁ。
色々やってみたけど、上手い使いまわしはできなかたぁ〜。
0995nobodyさん2006/08/23(水) 10:05:03ID:???
>>994
そういうニュアンスだと「xlsからコピーできたら素晴らしい」とはならん気がするんだが…
どうやってコピーする気なんだよ、それ。
なんかクライアントが壮絶な勘違いと過大な期待をしてるような気がして仕方がない。
0996nobodyさん2006/08/23(水) 11:13:00ID:???
>>995
俺もそう思う
お馬鹿な客っぽいから、グラフなんかもCOPYさせろとか言われそうw

素直にxlsファイル読み込みで、テーブルに表示させて、ゴリ押しだな
0997nobodyさん2006/08/23(水) 11:30:10ID:???
>>969
欲しいものがクライアントも理解できていない、典型的な例に見えるね

好意的に解釈するのなら
・スプレッドシート形式のUIが欲しい
・xlsファイルのインポート機能も欲しい
・だからと言って、まずxlsファイルを編集して、インポートする機能だけのものは駄目だ
 また、エクセルをインストールしないと使えない処理も不可
と言うことじゃないかな

それでも、まともなスプレッドシート機能を実現するのはかなりめんどうだとは思うが
動的な列や行の追加やらなんやら…
0998nobodyさん2006/08/23(水) 11:35:53ID:???
>>997
OpenOfficeをお薦めすればいい
まぁかなり使い勝手悪いけどな
0999軟式PHP2006/08/23(水) 11:54:09ID:???
すれ違いだが、どっかの役所はOpenOffice使ってるって前TVで見たなぁ。
1000(^ω^)2006/08/23(水) 12:11:06ID:???
1000なら明日PHP5.2.0発表
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。