【PHP】下らねぇ質問はここに書き込みやがれ 54
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/09/09(日) 12:42:57ID:64tYOx8RPHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 53
http://pc11.2ch.net/test/read.cgi/php/1188047468/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0052nobodyさん
2007/09/10(月) 14:25:24ID:nbKfi6vV変数は[ ]の中にいれるんでしょうか?
<?php
echo $_SERVER["REMOTE_ADDR".$_POST["ip"]] ;
?>
0053nobodyさん
2007/09/10(月) 15:04:53ID:???src="フラッシュファイル名?ip=<?php echo urlencode(gethostbyaddr($_SERVER["REMOTE_ADDR"])); ?>"
じゃないのかな。
他にも値の渡し方はいくつかあるけど。
0054nobodyさん
2007/09/10(月) 15:18:59ID:???$_SERVER["REMOTE_ADDR"]がIP調べるの定義済み変数だろ
そんくらい調べろ
echo $_SERVER['REMOTE_ADDR'] . "<br>\n" . gethostbyaddr($_SERVER['REMOTE_ADDR'];
0056nobodyさん
2007/09/10(月) 18:17:34ID:???IDも出さない馬鹿には誰もまともに答えないよ
0058nobodyさん
2007/09/10(月) 21:10:18ID:nbKfi6vV>>53さんの方法でもPHPの変数が渡せるんですね。文字列としてやった事はあるんですけどね。
拡張子をphpにして、param と embedを修正したら表示できました。同じようにURLを入れて見たら文字列としてURLが表示しました。
他の方法も是非ご教授お願いしたいです。
>>54さん勉強不足ですみません。何故だか何度やっても表示しないんですよねー。
0059nobodyさん
2007/09/11(火) 01:40:40ID:j/8aPw/kimgタグののsrcやaタグのhrefをルートからのパスで書くことができますよね
例)http://www.example.com/images/a.gif→src="images/a.gif"
例)http://www.example.com/a/b/c/→href="a/b/c/"
このbase hrefはphpのincludeには反映されないようなのですが、
includeでも同じような書き方を可能にする方法ありますか?
./や../などを使いたくないのです
0060nobodyさん
2007/09/11(火) 01:59:53ID:???0061nobodyさん
2007/09/11(火) 02:02:18ID:j/8aPw/k何かいい方法があればと思って聞いてみたんですが
006242
2007/09/11(火) 03:04:39ID:zytLbqiKだれかよろしくおねがいします
0063nobodyさん
2007/09/11(火) 05:54:29ID:???>>60
っていうかimages/a.gifも相対パスな罠。
普通にinclude("aaa.php");とか書けばいいじゃん。
相対パスだからって「./」は必須じゃない。
実行ディレクトリが違うという話なら最初に
chdir("基準ディレクトリ");すればいい。
006559
2007/09/11(火) 10:40:52ID:???相対パスが嫌な訳ではなく、../../など、階層をページによって書き直すのが嫌なのです
深い階層にいくと、./なのか../なのか、../がいくつ必要なのかよくわからなくなるので
ありがとうございます、調べてみます
0066nobodyさん
2007/09/11(火) 10:53:33ID:TKViiXpyswitch文で1つのswitchが60個x12って1ファイルだと多すぎでしょうか?
キチンと動いてるのですが、たまに12箇所で同じ部分が表示されない時はあるのです。
0068nobodyさん
2007/09/11(火) 10:56:22ID:???htmlの下質だな、スレ違いに気づけ。
0069nobodyさん
2007/09/11(火) 11:02:47ID:???0070nobodyさん
2007/09/11(火) 11:31:38ID:???switchが12個でそれぞれにcaseが60個という意味か
そんなに書いたことないなー
状況がわからないけど自分ならもっとスマートに書けそうな気はする
0073nobodyさん
2007/09/11(火) 11:48:32ID:???0074nobodyさん
2007/09/11(火) 12:20:06ID:???普通に動きそうな気はするが、ものすごく読みにくくて
バグがあっても気付きにくい構造になっちゃってる気はする。
0075nobodyさん
2007/09/11(火) 12:28:30ID:???case 1: echo "1";break;
case 2: echo "2";break;
.
.
とかすごく無駄なことをしてそう
0076nobodyさん
2007/09/11(火) 13:13:35ID:???> 12箇所で同じ部分が表示されない
これが少し気になるんだが、そのx12のswitchって
ひょっとして同じ条件を12回も再評価してるのか?
配列変数を使うとか、もう少し何とかならんのかそれ?
0077nobodyさん
2007/09/11(火) 13:25:17ID:???720行ものcase文を書き上げた根性だけは立派だよ。
スキルを身につければきっと伸びる。
0078nobodyさん
2007/09/11(火) 14:13:16ID:???> 720行ものcase文を書き上げた根性
同じ判定を12回やる内容ならコピペでしょ、ふつー。
わざわざ手で全部書いたのならそれこそバカかと。
0079nobodyさん
2007/09/11(火) 15:11:05ID:???/*===以前===*/
$min=現在時間
if(($min >="00")||($min <="15")){
$txta=現在時間00分;
$txtb=現在時間15分;
}else{
$txta=1時間+現在時間00分;
$txtb=1時間+現在時間15分;
}
/*===現在===*/
switch(date("i")){
case 00:
〜〜〜〜省略〜〜〜〜
case 15:
$txta=現在時間00分;
$txtb=現在時間15分;
break;
case 16:
〜〜〜〜省略〜〜〜〜
case 59:
$txta=1時間+現在時間00分;
$txtb=1時間+現在時間15分;
break;
default:
$txta="error";
$txtb="error";
break;
}
以前はifのものでやっていましたが他の条件のもので取得した時間で前後1時間のずれがあったりしていたのでswitchに変更しました。
このほかにそれぞれの時間を表示する時に使うcssやそのほかのテキストも同じswitch内に入れています。
ifでやる方がシンプルだと思うのですが、どうしてかうまくいきませんでした。
0081nobodyさん
2007/09/11(火) 15:30:20ID:TKViiXpyいえいえ省略したcaseの部分はbreak; してませんよ。
他にcssや他のテキストも入れていますので実際は省略する部分も少ないですが。
0082nobodyさん
2007/09/11(火) 15:32:16ID:dkCdLSVp0084nobodyさん
2007/09/11(火) 15:41:10ID:???現在の時刻で分の部分が0-15なら
$txta = "現在時間00分"
$txtb = "現在時間15分";
それ以上なら
$txta = "1時間+現在時間00分";
$txtb = "1時間+現在時間15分";
を代入したいんだと思うがその使い道はまったく見当がつかない
0085nobodyさん
2007/09/11(火) 15:44:50ID:???0086nobodyさん
2007/09/11(火) 15:46:05ID:TKViiXpyttp://apcube.net/ffxi_memo/chocobo_circuit/index.html
の表の部分です。
ttp://www.playonline.com/pcd/update/ff11/20070828N71VL2/ch04jp.jpg
を元にしています。
やはりifで作る方がいいのかな。
0087nobodyさん
2007/09/11(火) 15:46:09ID:dkCdLSVp何故一気に1時間飛ばすのかな
0088nobodyさん
2007/09/11(火) 15:49:40ID:TKViiXpyサイトを見てもらえばわかるのですが、
4コースのレースがあってそれぞれ1時間で1回のレースを行ってます。
なので、1レースが終わると次回は1時間後なのです。
0089nobodyさん
2007/09/11(火) 15:49:41ID:???if($min >='00'&&$min <='15'){
$txta=現在時間00分;
$txtb=現在時間15分;
}else{
$txta=1時間+現在時間00分;
$txtb=1時間+現在時間15分;
}
0090nobodyさん
2007/09/11(火) 15:53:03ID:???0091nobodyさん
2007/09/11(火) 15:58:25ID:TKViiXpyどうもです。
以前までそのやりかたで書いてたのですが、
レース時間が、00:45〜01:15など時間をまたいだレースなどで
うまく取得できない場合がありました。おそらく条件式をうまく使えてないのが原因だと思うのですが。
if($min >='45'&&$min <='59'&&$min >='00'&&$min<='15'){
のような感じで書いてました。
0092nobodyさん
2007/09/11(火) 16:01:21ID:Al3TIDzdDBの設計を学びたいたいです。
とりあえず練習としてMySQL+PHPで掲示板を作りたいのですが、
どういうカラムが必要なのかとかがわかりません。
MySQLスレで過去に聞いてみたのですが返答もらえませんでした。
強引にPHPと結び付けてるようで申し訳ないですが、
MySQL+PHPでDB設計を学べるようなサイトがあったら教えていただけませんか?
また、DBを使った掲示板を作る場合、
自分ならどういったカラムを作るかなど、助言いただけたらよろしくお願いします。
0094nobodyさん
2007/09/11(火) 16:10:03ID:???forで時間分だけ回して、インクリメントで分を足して行って、
該当分にだけ処理させるように記述すれば良いんじゃないかな?
0096nobodyさん
2007/09/11(火) 16:50:09ID:???0097nobodyさん
2007/09/11(火) 16:57:38ID:???0098nobodyさん
2007/09/11(火) 17:00:59ID:???× if ( ($min >='45' && $min <='59' ) || ($min >='00' && $min<='15')){
○ if ( $min >= '45' || $min <= '15' ){
0099nobodyさん
2007/09/11(火) 17:04:34ID:???if ( $min >= '45' || $min <= '15' ){
これ有効なんですか!以前のものを修正してみます。
0100nobodyさん
2007/09/11(火) 17:13:54ID:???0101nobodyさん
2007/09/11(火) 17:18:09ID:???必要なカラムは表示させたい内容や処理させたい機能によるので
「掲示板だからこのカラム」なんてパターンは無い。
まず掲示板ってどういう仕組みで成り立ってるのかから勉強してこよう。
必要な機能とデータを列挙する段階はPHPやDB以前の問題だ。
その上で、列挙された機能とデータから仕組みを設計するのがPHP(というかWebアプリ)の勉強。
それができた上で、さらにそのデータを効率化・最適化するのがDBの勉強。
010237
2007/09/11(火) 18:22:10ID:dkCdLSVp0104nobodyさん
2007/09/11(火) 18:39:49ID:???初めはきちんとDBの勉強したほうがいいと思うよ。
アルゴリズムとデータ構造や、リレーショナルデータベースの科目取るとか、教科書読むとか
0106nobodyさん
2007/09/11(火) 18:54:52ID:???こんな漠然とした内容で「精度を上げたい」と言われても
どういう場合に本文が抽出できないのかさっぱり分からんよ。
010792
2007/09/11(火) 19:12:38ID:Al3TIDzd他人のソースは正直何がなんだかわからなくて敬遠しがちです。
理解できるかは不明ですが、適当なものを探してみたいと思います。
>>101
どうもご丁寧にありがとうございます。
アドバイス通り掲示板にとって必要な機能とデータがどういうものなのか、
考えてみたいと思います。
考えてみたデータを生かしきれるかはわかりませんが、
不要なデータがあっても、とりあえず動けばいいみたいなスタンスで頑張ってみます。
>>104
そうですね。いくつか初歩的な構文は理解してるのみで、
詳細な部分は全く知らないので、いろいろ勉強してみたいと思います。
とりあえず学生ではないので授業は受けれませんw
文系だったのでそういった類の教科書も持っていないので、サイト巡回や本で勉強したいと思います。
0109nobodyさん
2007/09/11(火) 19:59:16ID:???掲示板なんてWebプログラムの初歩じゃないか。
0110nobodyさん
2007/09/11(火) 20:02:39ID:???011192
2007/09/11(火) 20:16:24ID:Al3TIDzdよろしければどの辺を見てそう感じたか教えてください。
今後の質問の仕方の参考にしますので。
DBに関しては初歩レベルでさっぱりですが、
一応プログラムの初歩的なことに関しては理解してるつもりです。
0113nobodyさん
2007/09/11(火) 20:31:17ID:WeIbshbrJISで送信すると、ヤフーメールで見たら文字化けしています。
「$BHdO*1c1i=P$N$4A*6J$*Hh$lMM$G$7$?!#(B」のようになっているのでJISになっています。
おそらくYahoo側でEUC-JPで表示していると思うのですが、
メールを送信するときにどの文字コードで表示するか設定できるのでしょうか?
それとも、メールが届いた側で判別されるのでしょうか?
0114軟式PHP
2007/09/11(火) 20:37:11ID:???喧嘩はイクないよ^^
掲示板は勉強になるから最初に作るにはいいと思う。
特にDB絡めるのなら、いい勉強になるよ。
とりあえず以下のように機能を列挙したらどうかな。
そして、機能を実装するのに必要なテーブル設計を考えてみる。
簡単なやつだったら1つのテーブルだけで作れるから。
●付ける機能
・記事を書き込む
・記事を読み込んで一覧にする
●拡張するなら…
・記事にレスをつけれる。
などなど
0115nobodyさん
2007/09/11(火) 20:40:26ID:???とりあえず悩む前に作るのが一番いいよ
PK、名前、内容のフィールドを作って2〜3個のテストデータでもいれておいて
ちょっとつくってみて足りないものがあればどんどん付け足していくのでもいいから
とにかく思いついたものから作っていけばDBを使ったWEBアプリとは
大体どんなものか把握できるんじゃないか?
0117nobodyさん
2007/09/11(火) 20:58:11ID:WeIbshbrありがとうございます
Content-Typ: text/text; charset=JIS
で解決しました。
011892
2007/09/11(火) 21:00:47ID:Al3TIDzdどうもアドバイスありがとうございます。
簡単な設計まで考えていただきありがとうございます。
作りながらDBの勉強をしたいと思います。
環境の再構築(DBインストールと設定)が今終わったので、
早速思いついたものからデータを入れて、取り出すテストからしてみたいと思います。
どうもお付き合いいただきありがとうございました。
0119nobodyさん
2007/09/11(火) 21:18:19ID:???志望フラグ乙
0120nobodyさん
2007/09/11(火) 21:19:41ID:???DBはDBで
各ある程度理解したらPHP+DBがいいかも
012137
2007/09/11(火) 21:29:32ID:Ftl8Pgh5ttp://www11.axfc.net/uploader/20/so/He_32859.zip.html
ソースと出力結果(文字のみ)です。出力の元は
ttp://www.100shiki.com/archives/2007/09/password_protector_sd.html
このページです。
記事本文と出力結果を比較して、出力結果の下のほうに要らない部分があります。
その部分を削れるようにして、なおかつ他のページの本文も正しく取得できるようにするにはどうすればいいでしょうか?
まとめると、
・ブログやニュースサイトの本文部分のみ取得したい。
・サイドバーなどのナビゲーションやリンク、広告は含めない
・ほとんどのサイトで本文部分のみ取得できるよう精度を上げるにはどうすればいいか
ということです。
一般化といわれてもよくわからないですが、このような感じで良いのでしょうか?
0122nobodyさん
2007/09/11(火) 21:33:22ID:???そんな切り離してやるもん?
PHP+DBっていう1つの分野って考えてもいいんじゃない?
HTMLとCSSの関係みたいなもんだと思うんだけど
0125nobodyさん
2007/09/11(火) 21:38:57ID:???012637
2007/09/11(火) 21:43:03ID:dkCdLSVpウイルススキャンした後UPしてます
書き忘れましたが、パスはphpです。
012866
2007/09/11(火) 21:54:26ID:TKViiXpyifでキチンとした時間などが出なかった理由は分の値の勘違いでした(;´д⊂)
caseに比べると半分ほどのファイルサイズになりましたw
みなさんアドバイスありがとうございました!
0130nobodyさん
2007/09/11(火) 22:29:57ID:???それは型から入って体現できる礼儀作法を学ぶには有効なんだ
しかし、プログラミングは頭使って考えなくちゃならん
初学者の陥る罠はなんでも他人に聞いて一時的に理解した
つもりになって、本当のところは何も理解していないんだ
それがとても悲しくなるときがある
0131nobodyさん
2007/09/11(火) 23:36:08ID:???0132nobodyさん
2007/09/12(水) 07:31:05ID:???0133nobodyさん
2007/09/12(水) 09:44:36ID:xkG1TV3g0134nobodyさん
2007/09/12(水) 10:24:27ID:???0137nobodyさん
2007/09/12(水) 12:19:53ID:???0138nobodyさん
2007/09/12(水) 12:33:59ID:???逆の場合も時々あります。
0139nobodyさん
2007/09/12(水) 12:39:23ID:???「上手く動かない」の状況が分からんよ。
その2つは全然意味が違うし。何をやろうとしたんだ。
単純にそれぞれで判定できないものを無理に判定しようとしただけで
ようするにマニュアルよく読みやがれこのカス野郎って話じゃないの?
0140nobodyさん
2007/09/12(水) 12:45:54ID:rYUimiSOご教示いただけますと幸いです。
0144nobodyさん
2007/09/12(水) 14:13:55ID:???0146nobodyさん
2007/09/12(水) 14:58:02ID:???読んだらこんな質問は出ないはず
http://jp.php.net/ja/empty
の例に書いてあるし
0148nobodyさん
2007/09/12(水) 15:20:46ID:???君は読解力がついてないみたいでかわいそうだね。
>PHPマニュアルを読むクセをつけます。
というのはちゃんと読むことを指してると思うんだが
0149nobodyさん
2007/09/12(水) 15:33:58ID:???常識的に考えて「マニュアルを読む癖をつけます」っていう言葉からは
今までマニュアルを読んでいないとは断定できないが
今まで読んでいたとも断定できない
つまりどっちともとれる表現であるというのが結論
つまり>>145の言ってることも正しいし>>147の言ってることも正しい
0150nobodyさん
2007/09/12(水) 15:40:01ID:???0151nobodyさん
2007/09/12(水) 16:33:10ID:???■ このスレッドは過去ログ倉庫に格納されています