【PHP】下らねぇ質問はここに書き込みやがれ 45
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/05/12(土) 16:42:48ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 45
http://pc11.2ch.net/test/read.cgi/php/1177635762/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0042nobodyさん
2007/05/28(月) 15:18:08ID:ywe2HeV40043nobodyさん
2007/05/28(月) 15:35:38ID:???0045nobodyさん
2007/05/28(月) 15:39:13ID:???自分が別の時に書いたものの改造なので・・・
>>44
2行目については把握しています
1行目の意味することが理解できません
0046nobodyさん
2007/05/28(月) 15:46:36ID:???へ?自分が別の時に書いたものの改造だからなんでprint_rやvar_dumpができないのか詳しく説明してくれ
0047nobodyさん
2007/05/28(月) 15:48:22ID:ywe2HeV4失礼しました
0048nobodyさん
2007/05/28(月) 15:57:28ID:???解決してあげようと回答者が聞いてるのに無視
「荒れた」とかいう原因は自分なのに放置
多くの人の時間と手間を無駄にしておいて自分勝手に終わらせる無責任さ
一言礼すら無し
お前最悪すぎるよ・・・
0049nobodyさん
2007/05/28(月) 16:01:25ID:ywe2HeV4これはない
> 「荒れた」とかいう原因は自分なのに放置
原因が云々の問題?
> 多くの人の時間と手間を無駄にしておいて自分勝手に終わらせる無責任さ
> 一言礼すら無し
この点は本当にごめんなさい
みなさんありがとうございました
0050nobodyさん
2007/05/28(月) 16:05:58ID:???0053nobodyさん
2007/05/28(月) 16:09:46ID:???0054nobodyさん
2007/05/28(月) 16:11:45ID:ywe2HeV4ごめんなさい・・・
>>46の質問は解決のための質問とは思えない、という意味です
都合の悪い、という意味がわかりませんが
0056nobodyさん
2007/05/28(月) 16:19:50ID:???どうすれば解決するか分からないから質問しに来たくせに、そういうことは分かってるつもりなんだw
大体>>46は>>45でキミが意味不明な返答したから言われてんじゃん。
改造だからprint_rやvar_dumpが使えないってのは君の中では論理的な考えになってるのか?
もしそうならそれに興味があるから是非教えてほしい。
0057nobodyさん
2007/05/28(月) 16:19:49ID:ywe2HeV4> へ?自分が別の時に書いたものの改造だからなんでprint_rやvar_dumpができないのか
> 詳しく説明してくれ
詳しく教えて何か意味がありますか?
言い方にも問題があると思いますよ
0058nobodyさん
2007/05/28(月) 16:21:09ID:ywe2HeV4改造だから使えないんじゃなくて、改造だから使っていなかった、という意味です
いろいろなみなさんにご迷惑おかけして申し訳ありませんでした
0059nobodyさん
2007/05/28(月) 16:22:54ID:???0060nobodyさん
2007/05/28(月) 16:25:48ID:8Nb4gWX5おかげで色々な問題を自分で解決できるようになりました
本当にありがとうございます
006130
2007/05/28(月) 16:26:32ID:pAImQaIBここのひとたちは、きっとぉんなのこが困ってると、気持ち悪く
てとりあしとり、ょぶんなことまで、ぉしぇてくるの。。ほんとうはきもちゎるぃのに・・
でも、きのょゎぃぉとこのこぁぃてだと、ばかみたぃにぃばりくさってるの。
そぅぃぅ、ぉとこの人って、かすょね。ゎたしのしょくばにもたくぁんいるの。そぅぃぅ、ぉとこのひと。
だから、かのじょもできなぃんだょ♥
0062nobodyさん
2007/05/28(月) 16:26:39ID:???0063nobodyさん
2007/05/28(月) 16:26:53ID:???空の配列とは$_POST = array();
>>41
これは$_POST = array("hoge"=>"");
print_rやらvar_dumpすればすぐ分かること
0064nobodyさん
2007/05/28(月) 16:28:20ID:???print_rやvar_dumpを使用すれば解決が早まる
↓
しかし質問者は改造だから使用できないという
↓
理由を聞く
もしかしたら勘違いかもしれないし、別の方法があるかもしれない
何かおかしいですか
回答者は質問者に対して逆に問いを発してはだめですか
質問者の要求に従ってロボットのように知識を出して検索して推測して答えを出さなきゃだめですか
>>58
いや、使えば?
新規作成でも改造でも使えばいいと思う。
何が障害なのか知らんが。
0068nobodyさん
2007/05/28(月) 16:30:01ID:???0069nobodyさん
2007/05/28(月) 16:30:33ID:???例えば【<H3>${KoMidasi}</H3>】という風に、処理する度に違う値が$KoMidasiに入る感じになるとします。
ですが、
for($i=0; $i<100; $i++){
$KoMidasi を定義する処理
$OUT_HTML .= $(HTMLの雛形);
}
と書いた場合「$(HTMLの雛形)」中の$KoMidasiには、外部ファイルが、includeされた時点での変数値が入ります。
ですのでforの1-2行目に include $(HTMLの雛形)があるファイル.php; と書けば問題ありませんが、100回も取込を行わなければなりません。
取込対象は大した容量ではありませんがやはり綺麗な処理とは言えないので、
どうにか一回取り込んで後は動的に変数値を置き換えたいのですがどうすれば宜しいでしょうか。
説明べたでスミマセンが宜しくお願いします。
007067
2007/05/28(月) 16:31:27ID:???0071nobodyさん
2007/05/28(月) 16:32:00ID:8Nb4gWX5お疲れ様です、みたいなことでも言って欲しかった?
こういう人いるから質問をしたくないんですよね
0073nobodyさん
2007/05/28(月) 16:34:50ID:???「だから何?」って聞きたかっただけなんだけど
一体お前が何を言いたいのか解らない
聞くな答えるなって言いたいのか?
007469
2007/05/28(月) 16:37:55ID:???今回は例ですので実際は○月の日別集計を表示する感じで日毎の雛形に集計結果を変数値として代入して返す風な処理です。
なので100回とか回数は飽くまで同様の処理を多数行う必要があるということをそれとなく表してるだけです。
<OL>
<LI>05/28(月) →$DAY
<LI>02:00 - 荒らしと遭遇 → $TIME[($LIST[$i])]
|
<LI>23:45 - 就寝
</OL>
こんな感じです。(実際は全然違いますが)
0075nobodyさん
2007/05/28(月) 16:40:37ID:???とりあえず書かせるだけで誰も答えないスレってどうよ?w
0079nobodyさん
2007/05/28(月) 16:44:58ID:???情報を出し惜しみしないで実際の例で出してくれ
非常に理解しづらいし
抽象的な話されても実際に役に立つアドバイスが出せるか不明だし
つかまぁ俺だったらテンプレートエンジン使うけどな
0082nobodyさん
2007/05/28(月) 16:53:39ID:???008369
2007/05/28(月) 17:09:34ID:???行数の関係で読みにくいですが、どうかご指南お願いします。
―inc.php―――――――
$HTML = <<<TEXT
<H3>${Komidasi}</H3>
<OL>
<LI>${DAY}
<LI>${TEXT}
</OL>
TEXT;
―――――――――――
―data.xtx――――――
100円拾った<>13<>今日は机の中で100円拾った
今日も2ch<>25<>一日vipでネカマになって遊んだ有意義だった
―――――――――――
―index.php――――――
include inc.php;
$data = file("data.txt");
for($i=0; count($data)>$i; $i++){
list($Komidasi, $DAY, $TEXT) = explode("<>", $data[$i]);
$OUT_HTML .= $HTML;
}
―――――――――――
index.php の1行目でコールすると変数値は空なのでforの2行目でコールしなければならないというのが>>69で言いたかった内容です。
どうか1回コールして動的に変数値を置き換える方法はありますでしょうか。
因みにSmartyの利用も考えましたが、色んな環境で動くことを考慮して利用せずに組もうと思います
0084nobodyさん
2007/05/28(月) 18:13:09ID:ni3tLdmG0086通りすがり
2007/05/28(月) 19:44:58ID:???1 <?php
2 class tmpA{
3 var $m_html="";
4 function tmpA($fpath=""){
5 //本当はここでfopen fcloseでファイル読み込み
6 $this->m_html = "<H3>__KMD__</H3> <OL> <LI>__DAY__ <LI>__TXT__ </OL>";
7 }
8 function tmpB($row){
9 list($k, $d, $t) = explode("<>", $row);
10 $ret = preg_replace("/__KMD__/i",$k,$this->m_html);
11 $ret = preg_replace("/__DAY__/i",$d,$ret);
12 $ret = preg_replace("/__TXT__/i",$t,$ret);
13 return $ret;
14 }
15 }
16 $c = new tmpA();
17 $OUT_HTML = "<html><head></head><body>";
18 $data = file("data.txt");
19 for($i=0; count($data)>$i; $i++){
20 $OUT_HTML .= $c->tmpB($data[$i]);
21 }
22 $OUT_HTML .= "</body></html>";
23 echo $OUT_HTML; </xmp>
0089nobodyさん
2007/05/28(月) 22:30:20ID:???$data = file("data.txt");
for($i=0; count($data)>$i; $i++){
list($Komidasi, $DAY, $TEXT) = explode("<>", $data[$i]);
$OUT_HTML .= <<<TEXT
<H3>${Komidasi}</H3>
<OL>
<LI>${DAY}
<LI>${TEXT}
</OL>
TEXT;
}
で、いいじゃん。
0090nobodyさん
2007/05/28(月) 22:52:21ID:???>>86はどうか知らんが、純粋なOOPやってる人ならclassに入れるのはあたり前。
使う必要があるとかそういったことは手続き型脳の視点だから。
俺ならmainメソッドも書いて、最後にそれだけ実行するようにするけど。
0091通りすがり
2007/05/28(月) 23:07:30ID:???クラス化しておいた方が、メンテと拡張はしやすいと思ってるだけ。
ログやぶっこ抜いたhtmlに応じてテンプレートを切り替える時とかね。
0092nobodyさん
2007/05/28(月) 23:16:31ID:???理由も持たずに何でもクラスに入れりゃいいと思い込んでるならOOP脳だろ
例のクラスはオブジェクト設計的に何の意味も持ってないしクラスにした価値もない
よって>>89のようにやるのが正解 (つーかロジック示せば十分だろ)
0093nobodyさん
2007/05/28(月) 23:18:57ID:???0094通りすがり
2007/05/28(月) 23:25:53ID:???ま、俺の場合は、
>>予め外部ファイルに作っておいたHTMLの雛形の特定の場所に変数を置き換えて表示する処理にて、
ってな第一要件をふまえると、ループ内に直にひな形を書くのはNGだと思ったから。
んで、外部にひな形が有るすなわち、テンプレートは切り替わる可能性がある。と
だからテンプレート切り替えの処理はまとめておいた方がいいよなぁ。→クラス作っておくこうか
となると
0095nobodyさん
2007/05/29(火) 00:10:52ID:7xq0Zk/Psmartyが使えない環境ってどんな環境?
って、このスレの常連みたいな意地悪な解答はおいといて
知ってるかもしれないけどsmartyなどPHPでできたテンプレートエンジンは
パスさえ通せば動くので、よほど特殊な環境じゃなければ
動かせるので、素直に使った方が楽だと思うけどなあ
0096nobodyさん
2007/05/29(火) 00:26:02ID:???全てをオブジェクトにしないと使えない言語だってあるわけですよ。
PHPしかやったことない人間は知らんが、
Javaしかやったことないような人間が、
中途半端OOPもできるPHPに移行してきた場合、
必然的に全てオブジェクトになってしまうだろ。
0098nobodyさん
2007/05/29(火) 01:49:36ID:???ただ他人のコードを幾つかいじった経験からいうと
・ロジックが画面半分超える場合は分離してくれ
・Perl風に書くのだけはやめてくれ、つかPerlで書けよ
と思うときはある。
とりあえずヒアドキュメントでHTML書くのはやめてくれ、マジデ orz
0100nobodyさん
2007/05/29(火) 02:16:01ID:???PHP4とPHP5とでは記述の違いはありますか?
0101nobodyさん
2007/05/29(火) 02:30:48ID:???4の書き方にあわせれば当然5でも使える。
5から使えるようになった機能や関数があるから、
5の書き方をした場合、4で使えるとは限らないのもまた当然。
0102nobodyさん
2007/05/29(火) 05:30:24ID:???<H3>..</H3>
phpとは関係ないけど、htmlの「タグ」は小文字<h3></h3>で書く癖つけたほうがいいよ
0103nobodyさん
2007/05/29(火) 06:26:11ID:???いやいや大文字がいいよ
0105nobodyさん
2007/05/29(火) 07:49:20ID:???0106nobodyさん
2007/05/29(火) 08:24:04ID:???俺は小文字で書くけど。
0107nobodyさん
2007/05/29(火) 08:50:19ID:???0108nobodyさん
2007/05/29(火) 10:19:59ID:nFUqZanjとりあえず確認したところではrequireやsession_startなどの行を入れて
ブラウザからソース見るとその部分に?が入っているのですが
これはいったいどういうことなのでしょうか?
0109nobodyさん
2007/05/29(火) 10:34:41ID:???htmlの知識もある程度あったほうがよろしい。
phpもだんだん手続き型からオブジェクト型に変化してるように、
htmlも進化しているのさ。
時代に即した書き方を覚えるのもプログラマとしてはよい心がけだと思うぜ。
まぁhtmlの場合はブラウザに実装任せてるから滅茶苦茶でも動くんだけどね。
0111nobodyさん
2007/05/29(火) 10:55:15ID:nFUqZanjなるほど、ありがとうございました。
0112nobodyさん
2007/05/29(火) 11:56:20ID:4MbNvczKこれってどうしてなんでしょうか?
0113nobodyさん
2007/05/29(火) 12:06:27ID:???0114nobodyさん
2007/05/29(火) 12:32:07ID:???0115nobodyさん
2007/05/29(火) 12:39:43ID:???ttp://e-words.jp/w/E99D99E79A84E5A489E695B0.html
ttp://e-words.jp/w/E382B0E383ADE383BCE38390E383ABE5A489E695B0.html
0116nobodyさん
2007/05/29(火) 12:56:15ID:4MbNvczKなるほど
0117nobodyさん
2007/05/29(火) 13:03:50ID:05UZMunqfunction __construct($mode) {
$this->{$mode}();
}
…
}
この{$mode}を__constructに渡した任意の文字列に置き換えて
そのメンバーmethodを実行したいのですが、可能でしょうか?
やりかたをおしえていただけますでしょうか?
0118nobodyさん
2007/05/29(火) 13:15:40ID:xx8sT90w/ ヽ
( ノ⌒〜⌒〜⌒ヽ、 )
ヽ/ \, ,/ i ノ
| ≧ , ≦ |
| 、 ,,,,(、_,),,,, ノ|
ヽ ト=ニ=ァ /
\ `ニニ´ /´ ̄ヽ
/ ̄`┻━┻' '´- }
r' f{ _ノ癶_ ノ} /
/ ハ`l´/,ゝ' /,r‐-、 j
〈´7'{ V'´ '/ />’
`7 ヽ ヽ / / l | __ ,.- ._
/ ハ ヽ/ / ,ヽ/ ̄ /´¨'´‐、 `ヽ プッー
/ / 丶.,′ / ' /  ̄7 ヽ.、_ ', ´⌒`::`)
. ,' / ,' /! ,'ヽ \`7 ≡⌒;;⌒`)
/ / / / ヽ_ /、 / , ,' ::⌒`;; )
/ / / ハ ,イ、 `ヽ._/ .X / /
/ ./_ / ./ ` } }、ー- -'´ ,イヽ _,.イ
/ ,.-_ヽ〉、./ / / /l ` ′l,.-ヽ''´ ,'
ヽ `^_ヾ、 / 丶-、| _,ィ'´ ,'
`ーr_'二`._/ 「 ̄ l /
| | /
| ! /
| l /
l | /
0119nobodyさん
2007/05/29(火) 13:25:46ID:???何がやりたいのかサッパリ。
>$this->{$mode}();
何これ?
>そのメンバーmethodを実行したいのですが
どのmethod?
class Hoge {
private $mode;
function __construct($mode) {
$this->mode = $mode;
}
function foo() {
return $this->mode;
}
}
$obj = new Hoge("ちんこ");
echo $obj->foo();
0121nobodyさん
2007/05/29(火) 13:32:23ID:???0123nobodyさん
2007/05/29(火) 14:45:00ID:???0124nobodyさん
2007/05/29(火) 15:00:12ID:???ていうか、スキル以前に頭が悪い(藁
ほんと使えない。
ここ以外にPHPの質問板を紹介しろ。
0125nobodyさん
2007/05/29(火) 15:04:38ID:???___ ━┓ ___ ━┓
/ ― \ ┏┛/ ―\ ┏┛
/ (●) \ヽ ・. /ノ (●)\ ・
/ (⌒ (●) /. | (●) ⌒)\
/  ̄ヽ__) / | (__ノ ̄ |
/´ ___/ \ /
| \ \ _ノ
| | /´ `\
0126nobodyさん
2007/05/29(火) 15:04:57ID:???http://pc11.2ch.net/test/read.cgi/php/1158647441/
0127nobodyさん
2007/05/29(火) 15:10:04ID:6paIllMGページの特定の場所にジャンプしたいとき、
<a href="#foge">
リンクの場合には、上記のようにしますが、
ボタンフォームの場合にはどうすればいいのでしょうか?
<form method="POST" action="#foge">
このようにしてもダメでした。
0129nobodyさん
2007/05/29(火) 15:12:48ID:???ここがなんのスレか理解できるまで>>1を読んだ後、
http://pc11.2ch.net/test/read.cgi/hp/1178272099/
こっちにいってくださいね。
0130nobodyさん
2007/05/29(火) 15:15:12ID:???値をセットしてゲットしてechoするだけのクラスを書いて117に対して何を言いたいのかさっぱり?
ほんと低脳という言葉がぴったりだな・・・
0131nobodyさん
2007/05/29(火) 15:16:01ID:6paIllMGすみませんでした。そちらできいてみます。
0132nobodyさん
2007/05/29(火) 15:27:04ID:???この時間帯はヘボ回答者と煽ることしかできない馬鹿しかいないから、
夜聞くといいよ。なんせニートが元気な時間帯だからな。
0133nobodyさん
2007/05/29(火) 15:28:23ID:???0134117
2007/05/29(火) 15:33:03ID:05UZMunq>>121さんの言うとおり、可変メソッドがやりたいのです。(言葉を知らなくて的確に説明できませんでした)
ですので、>>119さんのでは意図した動きをしません。(ありがとうございます)
調べてみると、
$val = 'hoge';
$this->$val();
これはできるようなのですが、(試してはいません)
$val = 'hoge';
$this->Method$val();
これはできないのでしょうか?
ブラケットをいれてもパースエラーになります
0136nobodyさん
2007/05/29(火) 16:32:41ID:dXtsAnsD今、ユーザー登録のフォームを作っていますが、
入力された情報をテキストに保存するかデータベース(mysql)に保存するか迷っています
レコードの取得や削除を考えれば圧倒的にデータベースが有利ですが、
テキストのメリットは何があるのでしょうか?
フォームに自由記入欄があったあっとして、そこで全角200文字くらい打ったりする人がいる場合、
それはテキストに保存した方がよかったりしますか?
0139nobodyさん
2007/05/29(火) 16:49:10ID:???煽りではない。分かってない奴に対する単なる指摘。
お前みたいのが頭の悪い煽り。
能力ないならもっと謙虚になれ。
>>136
データベース使うべし
0140nobodyさん
2007/05/29(火) 17:17:44ID:???その説明ではどういうことをしたいのかわからないが、
>>117でやりたいことはマニュアルに書いてる通りでできるはず。
>>136
テキストのメリットなんてDBが使えない鯖でも動くとか、
セキュリティにDBほど考慮する必要がないってことぐらい。
DBがどういう目的で作られたかを考えれば、
DBがテキストよりもあらゆる面で優秀なのはわかる。
何より楽だからね。あえて難しい道を進みたいならテキストで。
>>138
$val = '';の間違いかな。
その場合$valがメソッド名だからいらない気もするけど。
>>139
どうみても煽りだろ。煽りじゃなくて指摘とか言い分が馬鹿すぎる。
ていうか何だその回答は。簡単な質問にどうでもいい答えしやがって。
偉そうなこといっといてヒドイなこれはwwwwww
0141nobodyさん
2007/05/29(火) 17:22:57ID:dXtsAnsDありがとうございます
みなさん親切で助かりました
■ このスレッドは過去ログ倉庫に格納されています