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

【PHP】下らねぇ質問はID出して書き込みやがれ 107

■ このスレッドは過去ログ倉庫に格納されています
0001 忍法帖【Lv=40,xxxPT】 2011/06/05(日) 07:56:02.79ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 105
http://hibari.2ch.net/test/read.cgi/php/1304064660/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0713nobodyさん2011/06/25(土) 16:48:13.01ID:???
ODER BYとかだろ
0714nobodyさん2011/06/25(土) 16:49:02.22ID:???
降順縛ってるの?
0715nobodyさん2011/06/25(土) 16:50:14.12ID:???
Sqliteのケースでは、これとLIMIT追加。
ORDER BY ROWID DESC
0716nobodyさん2011/06/25(土) 16:54:11.87ID:Y32aucUY
>>714
2chのように表示を昇順に
そして表示件数を指定した際に最新50が表示できるようにしたい
わかりづらいかもしれませんが
0717nobodyさん2011/06/25(土) 17:13:32.69ID:???
理解した
これより前のレスを省略しましたみたいなやつか
配列使いまわすならcountで配列数取得してarray_sliceで削るとか?
パフォーマンス的にどっちがいいかわからんが
0718nobodyさん2011/06/25(土) 17:19:56.34ID:???
curl_multi_initを使って複数のリクエストを同時に投げる事は出来ますが
投げる前に全てのURLを決めて、全てのURLが返って来るまでスクリプトは停止してしまいますよね

投げた全てのリクエストが帰って来るまでに、新しいURLをリクエストする
例えば、URL1、URL2でリクエストを投げて、URL1が帰ってきたら(URL2が返って来るのを待たずに)URL3のリクエストを投げる。
URL3を含む全URL1〜3が返ってきたらコードが進む。
つまり並列ダウンローダーの様な動作をさせるにはどうしたらよいのでしょうか
0719nobodyさん2011/06/25(土) 17:42:01.26ID:???
むり
0720nobodyさん2011/06/25(土) 17:43:36.99ID:???
phpはマルチスレッドプログラム非対応
0721nobodyさん2011/06/25(土) 17:45:16.68ID:???
curl_multi_execでできるよ
0722nobodyさん2011/06/25(土) 17:47:24.15ID:???
クラスの中のメソッドに直接アクセスしようと、ClassName::hogefunction();とアクセスしようとしたら
// 注意: E_STRICT が有効な場合、次の行で警告が発生します
と警告されてしまいました。正式な方法でクラスの中のメソッドに直接アクセスするにはどうすれば良いのでしょうか
0723nobodyさん2011/06/25(土) 17:48:46.30ID:???
IDは?
0724nobodyさん2011/06/25(土) 17:51:16.16ID:ALxmGxKI
>>710
うーん、かっこいいけど一瞬で表示されてるのでわからないです
lifhackerとかアクセスするとまず左上のロゴの辺りが表示されて、それからどんどん他のコンテンツも表示されて、
みたいな、スクロールバーがどんどん小さくなるあの感じ。。。
僕のページは何も工夫が無いからか少し真っ白の画面で待ってから全てがバッて表示されるの。
説明下手すぎて泣いた

>>711
PHP PEARというライブラリ使うとできるんですか?ちょっと試してみます・・・・
0725nobodyさん2011/06/25(土) 17:52:14.76ID:qLdraW+2
>>723
失礼しました・・。
0726nobodyさん2011/06/25(土) 18:14:09.74ID:???
>>722
コード出さないとなんともいえないけど
違うとこで警告でてるんじゃね?
static修飾子つけてクラスメソッドにしてるなら
その呼び方は普通にできる
インスタンスメソッドでもメンバ変数を使っていないなら
その呼び方が可能
0727nobodyさん2011/06/25(土) 18:29:24.36ID:qLdraW+2
>>726
それでした。低レベルな質問ごめんなさい・・・
0728nobodyさん2011/06/25(土) 20:24:58.32ID:P4/ddFrn
PHPでWebサイトを作りたいのですが、最近の流行が分からないので教えてください。
規模としては、ごくシンプルなブログといった感じです。
CakePHPを使って構えて開発するような規模のサイトではなく、
レスポンスのスピードも優先させたいので重いフレームワークは使いたくありません。
しかし今時フレームワーク無しの開発というのも不安があります。

こういった場合、どのような開発方法が良いでしょうか。
最近あまり聞かないですが、シンプルなSmartyを使うというのも選択肢としてアリですか?

アドバイスを頂けると嬉しいです。よろしくおねがいします。
0729nobodyさん2011/06/25(土) 20:28:03.64ID:???
フレームワークいらねえ。ソフト開発が目的でないならワードプレスでいいし。
オープンソースだし改造も出来る。
0730nobodyさん2011/06/25(土) 20:41:54.73ID:???
流行で選ぼうとしてる時点で終わっトル
0731nobodyさん2011/06/25(土) 20:53:02.02ID:???
>>728
書き込むときはテキストに書き込み
ページを開いたらテキストのまま表示
0732nobodyさん2011/06/25(土) 21:03:25.58ID:???
>>712
降順トップ10件の昇順
0733nobodyさん2011/06/25(土) 22:34:50.10ID:???
>>728
個人的なものなら無理にフレームワーク使う必要ないんじゃ?
俺はSmarty嫌いじゃない。嫌う人多いけどね。
シンプルなブログならSQLとAjaxでそれなりに高速だよ
もちろんサーバーによるけどね
07346772011/06/26(日) 03:20:03.64ID:???
>>688
遅くなりましたが、レスありがとうございます。
いきなりフレームワークは敷居が高そうではありますが、
サイトを拝見したところ解説なども充実してそうだったので検討させていただきます。
また、非推奨のアプリケーションも教えていただいてありがとうございます。

海外の掲示板でも同じような質問をしている人がおり、そこではphpBBやoscommerceはやめておけという意見などがありましたが、
学習用の手頃な規模のアプリケーションというのは見つかりませんでした。もうしばらく情報収集してみたいと思います。
07356772011/06/26(日) 03:21:26.94ID:???
・・・続き (規制で長いって言われますorz)

基礎学習を疎かにして良いなどとはもちろん思わないのですが、
マニュアルに書かれている内容やサイトで紹介されているTipsなどがアプリケーション全体において
どのように反映されるのかを知りたいという需要は無いものなのでしょうか。

身近に熟練した人がいて正しいコーディングスタイルを学べる環境にある人は良いと思うのですが、
自分の教育者が正しいスタイルを持っていなかったり、独学で学んでいる人にとっては
何かしら模範となる学習用のアプリケーションがあっても良いのになと思った次第です。
(「まずはこれを見ろ」というモノがあれば、基本的なセキュリティホールを作ってしまったり、
スパゲティコードを書いてしまったりということは減るのではないかと思うのですが・・・)

他にもご意見くださった方ありがとうございました。
0736nobodyさん2011/06/26(日) 03:27:28.29ID:???
自分で掲示版作ってみるくらいのことをやってみてから、有名なアプリケーションの
「美しく機能的なコード」を読んだら?
もちろんスパゲッティコードになるかも知れないけど、
自前のコーディングの不安さや物足りなさを経験したあとの方が
効率的で安全なコーディングの良さを深いところまで理解できるんじゃないかとおもうが
0737nobodyさん2011/06/26(日) 03:34:02.74ID:???
有名なオープンソースのアプリのソースを読むというのは
基礎的な知識を完全に身に付け、自分である程度のシステムを開発したことがある人が
いわば総仕上げ的な意味合いで行う勉強方法であって、
初心者がソース見て勉強しても身にならない所か悪影響を及ぼすぞ。

ましてや、がむしゃらに吸収する人ならまだしも、手を動かす前に口を動かしてしまう人にはまず向かない。
0738nobodyさん2011/06/26(日) 03:50:56.46ID:???
>>648
C++ / VB.net / C# / PHP / Perl / Cshell...etc
色々やったがどうしても Python の変な記述文法が好きになれない。
0739nobodyさん2011/06/26(日) 07:12:19.24ID:???
ありえんわ
変な記法ならVBのほうが上でしょうに
0740nobodyさん2011/06/26(日) 07:15:30.66ID:???
PHPってCのラッパー言語なんでしょ?
0741nobodyさん2011/06/26(日) 07:32:21.77ID:???
まあ実際WebプログラミングにおいてPythonはちと微妙な感じはする(VBも微妙だが)
どうせWeb特化でない言語で書くなら、高速なCか
Perlみたいな文字列処理が楽に書ける言語で書きたいな
シェルでCGIってのはPerl/CGIが流行るより昔には実際に行なわれてたらしいな…
0742nobodyさん2011/06/26(日) 09:38:47.69ID:/pJHPvpJ
質問です。フォームの入力値検証で、半角英数字と日本語のみを許可
…というより、半角記号とスペースを禁止にしたいんですが、どう書いたら良いでしょうか?

ttp://ref.layer8.sh/ja/entry/show/id/1121
調べていてこのページを見たら、
 半角記号を削除して表示する
 echo preg_relace('/[\@-\/]/i', '', 対象文字列);
と書いてありますが、これだと<とか>とか?のチェックが出来てるのかなと
疑問なのですが…
0743nobodyさん2011/06/26(日) 10:08:39.20ID:???
http://www.google.co.jp/search?hl=ja&q=preg_match+入力チェック
0744nobodyさん2011/06/26(日) 10:26:03.47ID:???
>>742
質に不満を感じるならASCIIコード表から必要な文字を抽出すればいいんじゃないかな
http://www.ascii-code.com/
0745nobodyさん2011/06/26(日) 10:41:46.19ID:???
>>677
キミは、数学を学ぶ前から、数学が社会で何の役に立つの?って文句言うクチかい?

>マニュアルに書かれている内容やサイトで紹介されているTipsなどがアプリケーション全体において
>どのように反映されるのかを知りたいという需要は無いものなのでしょうか。
これはまぁ、そうかもしれん。

数学の喩えを引くと例えば「積分に関しては○○先生の××って書籍が分かりやすい」とかいうのはあるとおもうが、PHPに関してもそういうのがあってもいいと思う。
だが、そういうものが刊行されたりするには、数学に比べてずいぶんと歴史が浅いと思わんかね?
数学にしたって、数千年の歴史があるにもかかわらず、万人がコレだ!って薦めてる本って無いだろ?
0746nobodyさん2011/06/26(日) 11:07:58.20ID:???
>>745は少し的外れな気がするな
数学とプログラミングでは畑違いだろう
0747nobodyさん2011/06/26(日) 11:11:27.88ID:???
そもそもIDだしてないのに答えるなカス
0748nobodyさん2011/06/26(日) 12:19:29.34ID:???
>>743-744
ありがとうございました
記号ってこんなにあるんですか…
チャレンジしてみます
0749nobodyさん2011/06/26(日) 12:39:09.90ID:???
Pythonの文法の方がむちゃくちゃ
0750nobodyさん2011/06/26(日) 12:46:42.35ID:???
PHPだけやっときゃええがな
0751nobodyさん2011/06/26(日) 12:47:27.15ID:???
PHPも中途半端なのに同じ分野の言語覚えても仕方ないのにねぇ
やるならJavaとかCと似てない奴やれよ
0752nobodyさん2011/06/26(日) 14:13:29.05ID:Yv8I1zOT
プロセスのタイムアウトの時間はどこで設定するのでしょうか

while(1){
print2(file_put_contents("test.txt",date("H:i:s.u")."<br>\n",FILE_APPEND | LOCK_EX));
sleep(1);
}
としたら1分以上も動きつづけています。30秒で終わるのかと思ってた
0753nobodyさん2011/06/26(日) 14:48:22.51ID:???
$i=0;
while($i < 60){
$i++;
sleep(1);
}
0754nobodyさん2011/06/26(日) 14:50:02.09ID:???
max_execution_time
0755nobodyさん2011/06/26(日) 14:50:13.21ID:Yv8I1zOT
ああごめんなさい、コードはぶっちゃけ関係ないです
php自体の、タイムアウト秒数はどのように設定するのでしょうか
0756nobodyさん2011/06/26(日) 14:53:20.83ID:???
>>755
>>754
0757nobodyさん2011/06/26(日) 15:42:22.22ID:W+AeykF5
「はい」か「いいえ」のラジオボタンで10問くらいのアンケートを作って
「はい」と答えた個数の合計を表示
それに応じたコメントを表示させたいのですが
まず、合計を表示させるところで生き詰まってます

<input type="radio" name="Q1" value="1">はい
<input type="radio" name="Q1" value="0">いいえ
<input type="radio" name="Q2" value="1">はい
<input type="radio" name="Q2" value="0">いいえ
これをpostでphpに送って結果を表示させたいのですが・・
色々やっても駄目でした
親切な方教えてください
0758nobodyさん2011/06/26(日) 16:08:51.77ID:???
何をどうやってダメだったのかコードを書かないと作成依頼になりますよ
0759nobodyさん2011/06/26(日) 16:21:32.88ID:???
>>757
ダメって何をやってどうダメだったの?
あと「親切な方」とかやめるように。
0760nobodyさん2011/06/26(日) 16:37:12.43ID:???
>>757
親切な俺が教えてやるよ

<input type="radio" name="Q1" value="1">はい
<input type="radio" name="Q1" value="0">いいえ
<input type="radio" name="Q2" value="1">はい
<input type="radio" name="Q2" value="0">いいえ
<input type="text" name="count" value="">「はい」と答えた個数の合計を入力してください
0761nobodyさん2011/06/26(日) 16:40:30.19ID:W+AeykF5
>>758
駄目なソースは消してしまったので・・
if($_POST["Q1"])
{
if($_POST["1"]) {$1=1}
if($_POST["0"]) {$1=0}
}
と一問づつ設定して
最後にprint $1+$2+$3+・・・・
で合計を出すとこんな感じだったと思います
0762nobodyさん2011/06/26(日) 16:43:56.92ID:W+AeykF5
>>760
助かりました親切な方

できればphp側で合計を出せるようにしたいんです
0763nobodyさん2011/06/26(日) 16:45:30.60ID:???
>>762
ダメじゃなくて計算出来てるんじゃん?
ダメって言ってたのは何?
あと変数名に1は使えないと思う
あとダメなソースを消しちゃ勉強にならないと思う
0764nobodyさん2011/06/26(日) 16:57:22.42ID:???
phpの基礎を勉強していませんね
http://www.php.net/manual/ja/language.variables.external.php
見て勉強してください
ここみて勉強したら分かるほどの低レベルすぎる質問で寸
0765nobodyさん2011/06/26(日) 17:02:44.30ID:W+AeykF5
>>763
それが、できてないんですよ
if文がうまく書けていないのか
エラーで表示されません
わかりました次はダメなソースは消しません

>>764
す、すいません
勉強してきま寸
0766nobodyさん2011/06/26(日) 17:10:55.10ID:???
>>765
エラーを読めよ・・・
0767nobodyさん2011/06/26(日) 18:25:18.90ID:npr5oXlM
>>739
ObjectiveCが断トツに使いにくかった
0768nobodyさん2011/06/26(日) 18:43:30.57ID:???
>>767
それはたぶん、先に他の「オブジェクト指向」の言語習った為、じゃないかと思う。
ObjectC自体は面白い言語だよ。
0769nobodyさん2011/06/26(日) 18:56:09.57ID:???
prototypeのJavaScriptが変に感じるのと同じだな
0770 忍法帖【Lv=14,xxxPT】 【東電 72.7 %】 2011/06/26(日) 20:10:02.66ID:vOsyilAC
任意のhttpヘッダを送って、そのレスポンスを取得する関数かクラスってないですか?

例えば、ボクが

GET /foobar.htm HTTP/1.1
Host: example.com
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

を送りたいとして、その返事(HTMLデータ等)を取得したい。という感じです。
ないとしたら、やっぱりsocketにwriteするの自分で作るしかないのかな。
0771nobodyさん2011/06/26(日) 20:13:05.40ID:3TwWQZaU
【OS名】XP
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL
【質問内容】opendirでfilesフォルダの中を開くと、filesフォルダの中身は数万個あるにも関わらず、70個程度しか開けていません。
どういった原因が考えられますか?
0772nobodyさん2011/06/26(日) 20:22:48.04ID:???
>>770
curl
まぁ内部でやってることはソケット通信だよ
0773nobodyさん2011/06/26(日) 20:25:42.40ID:???
curl or fsockopen+fwrite+feof+fread
0774nobodyさん2011/06/26(日) 20:28:52.45ID:1bpDkxSm
http://localhost/a.phpにアクセスするとクッキーを発行します
http://localhost/b.phpに発行したクッキーを送ります
これをソケット通信で行っているサンプルが載っているサイトってありませんか?
0775nobodyさん2011/06/26(日) 20:34:20.78ID:???
googleに「ソケット通信 クッキー」
0776nobodyさん2011/06/26(日) 20:35:39.06ID:???
甘えるな
悪いことしたいなら自分で勉強しろ
0777nobodyさん2011/06/26(日) 20:48:06.47ID:???
何故ソケット通信が悪いことなのか超疑問
0778nobodyさん2011/06/26(日) 20:52:15.32ID:???
ソケット通信が悪いことと読み取ってしまうあなたの頭が超疑問
0779nobodyさん2011/06/26(日) 21:03:17.95ID:???
>>778>>776宛てね
07807702011/06/26(日) 21:13:50.58ID:vOsyilAC
>>772
>>773 あざーーーーーーーーーーす
0781nobodyさん2011/06/26(日) 21:24:32.52ID:???
>>778>>777宛てだよ
0782nobodyさん2011/06/26(日) 22:25:14.04ID:yPaZokgH
class A{
function addp($lst){//←ここ2
$lst->add(new A("その2"));
}
}
class B{
var $lst=array();
function add($newClass){
$this->lst[]=$newClass;
}
function Fire(){
$this->lst[0]->addp(&$this);//←ここ1
print_r($this->ls);
}
}

$c=new B()
$c->add(new A("その1"))
$c->Fire();

上記のようなコードで、$c->Fire();時に$Cのthis->lstにその1とその2を入れたいと思っています
矢印ここ1の箇所の"&$this"でクラスBの$lstを参照渡しして、クラスAで$lstに追加をしているのですが
"&$this"を記述しないで、ここ2の関数内でparent->lst->addみたく参照出来ないでしょうか
ここ1の箇所は何度も書く予定で、"$this->lst[0]->addp(&$this);"を出来れば"$this->lst[0]->addp();"こう、スマートに書きたいなと思いまして。
0783nobodyさん2011/06/26(日) 22:28:14.58ID:???
>>782
>矢印ここ1の箇所の"&$this"でクラスBの$lstを参照渡しして
$thisはBのインスタンスでBの$lstじゃないと思うけど
0784nobodyさん2011/06/26(日) 22:28:42.84ID:???
>>779>>777宛てね
0785nobodyさん2011/06/26(日) 22:30:13.87ID:???
>>778>>776宛てだよ
0786nobodyさん2011/06/26(日) 22:32:06.63ID:???
いや>>779>>776宛てだろ
0787nobodyさん2011/06/26(日) 22:50:05.81ID:???
へー
0788nobodyさん2011/06/26(日) 22:51:05.15ID:???
779のようなことを書き込んじゃう777が可愛いw
0789nobodyさん2011/06/26(日) 22:58:56.39ID:???
776 名前:nobodyさん[sage] 投稿日:2011/06/26(日) 20:35:39.06 ID:???
甘えるな
悪いことしたいなら自分で勉強しろ



778 名前:nobodyさん[sage] 投稿日:2011/06/26(日) 20:52:15.32 ID:???
ソケット通信が悪いことと読み取ってしまうあなたの頭が超疑問
0790nobodyさん2011/06/26(日) 23:00:19.35ID:???
>>789
ソケット通信が悪いことと読み取ってしまうあなたの頭が超疑問
0791nobodyさん2011/06/26(日) 23:06:24.30ID:yPaZokgH
>>783
あっごめんなさい、クラスBの$lstを渡すとすれば
$this->lst[0]->addp(&$this->lst);//←ここ1
と、なりますね

となるとますます長くなるので
$this->lst[0]->addp();で済ます方法というのがあれば教えて欲しいです
0792nobodyさん2011/06/26(日) 23:08:07.51ID:???
ところで>>776は何で悪いことしたいと思ってるんだろう
0793nobodyさん2011/06/27(月) 00:34:08.52ID:???
俺以外全員氏ね
0794nobodyさん2011/06/27(月) 00:49:24.56ID:???
vipと同じにおいがするんだが
0795nobodyさん2011/06/27(月) 00:55:33.51ID:???
>>793
while(true){
die();
}
0796nobodyさん2011/06/27(月) 01:09:05.01ID:???
>>791
$thisが付いてるとスマートじゃなくて$thisが付いてないとスマートじゃないというのが良く分からん
別に自身のインスタンス変数を引数で渡すというのは必要がある場合なら別におかしなことじゃないと思うが。
今回のはクラス間関係がないのでただ関数に渡してるのと同じ。
0797nobodyさん2011/06/27(月) 01:09:34.85ID:???
間違った後半のは「スマートじゃない」ではなく「スマート」
0798nobodyさん2011/06/27(月) 02:11:14.83ID:???
自動ログインプログラムなんて大抵ろくなもんじゃない
0799nobodyさん2011/06/27(月) 04:22:17.34ID:???
>>770
http://php.net/manual/ja/function.file-get-contents.php#example-1930

>>782
http://php.net/manual/ja/function.debug-backtrace.php
で出来る事は出来る
が、誤ったアプローチなので設計から見直した方がいい
コードから何をしたいのか汲み取れないので目的を書くべきだなー
0800nobodyさん2011/06/27(月) 04:33:58.97ID:pkVc30mh
phpで、例えばカウンターで数値を数バイトだけ保存しておきたい時でも
fopenやファイル名の衝突回避、どこでserializeするのかどこでunserializeするのか、ファイルロックは適切か・・・
と悩むところが多いですが、phpの組み込み機能で手軽に設定を保存出来る機能はありませんでしょうか
$_SESSIONの全ユーザー共通版のような感じです
08016992011/06/27(月) 06:27:59.66ID:???
解決?したら報告するのが礼儀かと思うので
http://www.php.net/manual/ja/function.sleep.php#95164
このコードを試してみたらそれっぽいことができました。
どうやらflushするときにバッファに充分な文字数が無いとダメみたいです
$buffer=str_repeat(".",1024);に変えるだけでうまく動かないので。。
0802nobodyさん2011/06/27(月) 16:58:07.84ID:???
>>757 のを書いてみて、いちおう動くものはできたのですが
間違っているところやもっとスマートな書き方があれば教えて頂きたいです。
<form action="goukei.php" method="post">
<?php
for($i=1;$i<6;$i++) {
print <<< EOF
<input type="radio" name="q{$i}" value="1">はい
<input type="radio" name="q{$i}" value="0">いいえ<br>\n
EOF;}
?>
<input type="submit" name="submit" value="登録">
</form>
<?php
if(isset($_POST["submit"])) {
$errors = array();
for($i=1; $i<6; $i++) {
if(!isset($_POST["q{$i}"])) {
$errors[$i] = $i . "番が選択されていません。" . PHP_EOL;
}
}
if(!count($errors)) {
$sum = 0;
for($i=1; $i<6; $i++) {
$sum += $_POST["q$i"];
}
echo '合計:' . $sum;
}
foreach ($errors as $error) {
echo $error . "<br>";
}
}
?>
0803nobodyさん2011/06/27(月) 17:01:54.73ID:???
>>802
あなたは既にこのスレの住人のレベルを超えました。
このスレで教わるものはこれ以上何もないでしょう。
08048022011/06/27(月) 17:05:41.17ID:xqyiNAlq
>>802 ID出し忘れました。すみません。
<form action="goukei.php" method="post">
<?php
for($i=1;$i<6;$i++) {
print <<< EOF
<input type="radio" name="q{$i}" value="1">はい
<input type="radio" name="q{$i}" value="0">いいえ<br>\n
EOF;}
?>
<input type="submit" name="submit" value="登録">
</form>
<?php
if(isset($_POST["submit"])) {
$errors = array();
for($i=1; $i<6; $i++) {
if(!isset($_POST["q{$i}"])) {
$errors[$i] = $i . "番目が選択されていません。" . PHP_EOL;
}
}
if(!count($errors)) {
$sum = 0;
for($i=1; $i<6; $i++) {
$sum += $_POST["q$i"];
}
echo '合計:' . $sum;
}
foreach ($errors as $error) {
echo $error . "<br>";
}
}
?>
0805nobodyさん2011/06/27(月) 17:31:42.80ID:lGcvt27/
function bbb() {
return "bbbb";
}
$hoge = 'aaabbbccc';
$hoge = preg_replace('/aaa(.*)ccc/', $a='\\1',$a(), $hoge);

これを実行すると\1なんていう関数はないと言われますが、
bbbを呼び出して、bbbbという結果が返ってくるようにするには
どうしたらいいでしょうか?
08068052011/06/27(月) 17:38:00.48ID:???
callback使って自己解決しました。
0807◆oDupeixhZv52 2011/06/27(月) 17:56:11.20ID:???
>>805
$hoge = preg_replace('/aaa(.*)ccc/e', "$1()" , $hoge);
0808nobodyさん2011/06/27(月) 18:39:32.84ID:???
>>802をみて同じ様なコードを書きたくなったw 住人だと同じ案件にどんなコードを書くんだろう
#1
<?php
$TOI = Array(1=>"問題1",2=>"問題2",3=>"問題3");
if($_POST['CMD'] == "送信")
{
A_disp();
}
else
{
Q_disp();
};

function Q_disp()
{
global $TOI;
$HTML = "<form method='POST'>\n<table border='1'>\n";
foreach($TOI as $KEY => $RECORD)
{
$TR = <<< DATA
<tr>
<td>{$RECORD}</td>
<td>はい<input type="radio" name="Q[{$KEY}]" value="1"></td>
<td>いいえ<input type="radio" name="Q[{$KEY}]" value="0"></td>
</tr>
DATA;
$HTML .= $TR;
};
$HTML .= "\n</table>\n<input type='submit' name='CMD' value='送信'>\n</form>";
echo $HTML;
}
0809nobodyさん2011/06/27(月) 18:42:24.84ID:???
#2

function A_disp()
{
global $TOI;
$REQ = $_POST["Q"];
$ANS = 0;
$ERR = "";
foreach($TOI as $KEY => $Q)
{
if(isset($REQ[$KEY]) == true)
{
$ANS += $REQ[$KEY];
}
else
{
$ERR .= "{$KEY} 番目が選択されていません<br>\n";
};
};
echo "合計:{$ANS}<br>\n";
if(strlen($ERR) > 0)
{
echo $ERR;
};
};
?>

自分だとこんな感じか
0810nobodyさん2011/06/27(月) 18:52:10.74ID:xqyiNAlq
>>808-809
関数使うのが上級者ぽい感じですね。
自分はまだまだ初心者なので関数使おうという発想にいたりません。
勉強させていただきます。
0811nobodyさん2011/06/27(月) 19:36:36.20ID:???
Mozilla関連のスレがもっとも活発な板ってどこでしょうか
0812nobodyさん2011/06/27(月) 19:41:00.97ID:???
げ、誤爆かな....

おなじ質問スレでもこっちの方が良かったか???
△▲ WebProg 初心者の質問 Part23 ▼▽
■ このスレッドは過去ログ倉庫に格納されています