【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カテゴリ)の各スレで
001210
2007/05/15(火) 17:02:38ID:6TG+QTaBすばやい回答ありがとうございます。
今試して見ました。
if(eregi('$',$_POST['data'])){
return false;
}else{
return true;
}
と言う事ですよね、やっぱりダメでした。
詳しく言うと、$が入っていようが無かろうがここで必ず
引っかかってfalseを返すようなのです。
\の方は\が入ってなかろうが必ずtrueを返すみたいです。
しかも$_POST['data']のなかに\しか入れてないのに、print('$_POST['deta']');
したときに、おかしなことに\\と置き換わって表示されている事です。
そのほかの記号#$%等はうまくはじけるので、このレンタルサーバだけの
しようかもしれないと思っております。
001310
2007/05/15(火) 17:09:43ID:6TG+QTaBprint("$_POST['deta']");
シングルとダブルクオートの使い分けをレスに書いておらず
訂正させていただきます。
0014nobodyさん
2007/05/15(火) 17:11:47ID:???むこうでやれよ。お前。向こうの質問と、こっちの質問、重複して、しかも違うところあるだろが。
そもそもここはオチスレだ。
001510
2007/05/15(火) 17:17:54ID:6TG+QTaBこちらに書いた質問は取り消します。
0016nobodyさん
2007/05/15(火) 17:21:06ID:???0018nobodyさん
2007/05/15(火) 18:40:28ID:???http://qb5.2ch.net/test/read.cgi/saku/1030275652/
0019nobodyさん
2007/05/26(土) 20:39:03ID:zAGWqET90020nobodyさん
2007/05/27(日) 10:22:46ID:24TJO5qastrpos使えば?
0021nobodyさん
2007/05/28(月) 10:05:36ID:efvDy8q41列目は通しナンバー、2列目しなもの、3列目金額です。
↓画面はこんな感じです。
1,バナナ,100
2,おかし,150
3,牛乳,200
4
品物:[ ]
金額:[ ]
[登録]
カンマ区切りのデータです。
1列目は自動でナンバーを振りたいです。
$data01 = file("data01.txt");
print"$data01[1]<br>";
print"$data01[2]<br>";
print"$data01[3]<br>";
こうすると1行ずつ表示されました。
foreach($data01 as $strdat_data01)
$strbuf_data01 = split(",", $strdat_data01);
print"$strbuf_data01[0]<br>";
print"$strbuf_data01[1]<br>";
print"$strbuf_data01[3]<br>";
これは1行目だけ1つずつ表示されました。
うまくいきません!
どうしたらいいでしょうか?
0022nobodyさん
2007/05/28(月) 11:07:00ID:???>これは1行目だけ1つずつ表示されました。
>うまくいきません!
>どうしたらいいでしょうか?
ハァ?
0023nobodyさん
2007/05/28(月) 11:30:57ID:IWdKxl1zDBにあるひらがなのデータを引き出して、PHPであいうえお順に並べたいのですが、何かいい方法はありませんでしょうか?
宜しくお願いします。
0024nobodyさん
2007/05/28(月) 11:33:57ID:???0027nobodyさん
2007/05/28(月) 11:53:00ID:IWdKxl1z回答ありがとうございます!
なるほど!DBで引きださないといけないんですね。
今調べているんですが、ネットじゃ見つかりませんorz
探し方が悪いな。。。
002821
2007/05/28(月) 11:53:02ID:efvDy8q40030nobodyさん
2007/05/28(月) 12:11:01ID:pAImQaIB$_POST配列についてだけんども、フォームからの情報が空のまま送信されてきたときは、
$_POSTは空の配列という認識でええんかな?ようするに$array=array()で作成された空の配列と
同じと考えていいのかな?
教えてくさい。おながいします。
0034nobodyさん
2007/05/28(月) 12:20:24ID:???×emptyはtrueで返ってきたりする
○emptyはfalseで返ってきたりする
003530
2007/05/28(月) 12:26:45ID:pAImQaIB>>33 ですよね?わけわかんないです(><#)
0036nobodyさん
2007/05/28(月) 12:46:48ID:???「おしえれ」「教えてくさい」「おながいします」「ふざけた顔文字」
この時点でまじめに質問しようとしてないことが見て取れるので却下
0037nobodyさん
2007/05/28(月) 13:40:41ID:ywe2HeV4$_POSTは空の配列という認識で良いのですか
0041nobodyさん
2007/05/28(月) 15:17:16ID:ywe2HeV4汚いソースで申し訳ありませんが・・・
<?
/* test.php EUC-JP ?>*/
?>
<html lang="ja">
<head>
<meta http-equiv="content-Type" content="text/html; charset=EUC-JP">
</head>
<body>
<fieldset>
<form action="test.php" method="post">
<input type="text" name="hoge" />
<input type="submit" />
</form>
実行結果<br />
<?
echo $_POST['hoge']; //blank
if(empty($_POST['hoge'])) echo"empty" ; //TRUE
if(isset($_POST['hoge'])) echo"isset" ; //TRUE
if(!empty($_POST['hoge'])) echo"!empty"; //FALSE
?>
</fieldset>
</body></html>
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の場合はブラウザに実装任せてるから滅茶苦茶でも動くんだけどね。
■ このスレッドは過去ログ倉庫に格納されています