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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/11/25(金) 21:16:56ID:???
PHPに関するくだらねぇ質問用スレです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい

・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
【PHP】くだらねぇ質問はここに書き込みやがれpart8
http://pc8.2ch.net/test/read.cgi/php/1123431535/
【PHP】くだらねぇ質問はここに書き込みやがれpart9
http://pc8.2ch.net/test/read.cgi/php/1125716012/
【PHP】下らねぇ質問はここに書き込みやがれpart10
http://pc8.2ch.net/test/read.cgi/php/1127581425/
【PHP】下らねぇ質問はここに書き込みやがれpart11
http://pc8.2ch.net/test/read.cgi/php/1129582431/
【PHP】下らねぇ質問はここに書き込みやがれpart12
http://pc8.2ch.net/test/read.cgi/php/1130835396/
0263nobodyさん2005/11/30(水) 15:16:07ID:???
>>262
なんで?
0264nobodyさん2005/11/30(水) 15:21:18ID:???
>>263
無理だから
0265nobodyさん2005/11/30(水) 15:21:30ID:???
<?php
 if( ){
  // なんか処理
  if(! 条件){
   // なんか処理続き
  }
 }
?>
でいいじゃん。
0266nobodyさん2005/11/30(水) 15:23:15ID:???
>>261
抜けるというのがスクリプトを終了、って意味なら exit
if の次の処理へ、ってのならスマートな方法はないと思う。パッっと思いつくのはこれぐらい。
 if 内の処理を工夫(フラグ、else 等を駆使)して、抜けたい箇所以降が実行されないようにする
 if() {〜} を別関数にして抜けたい箇所で return
 PHP5 であれば例外をスロー
他になにか方法があればよろ
0267nobodyさん2005/11/30(水) 15:30:49ID:???
>>264
知らないならレスしないでね^^
>>265
それでもいいんですけど入れ子がウザイ時に抜けたいこともあるので
>>266
exitでしたか。関数からreturnで抜けるのは知っていたんですよ。
0268nobodyさん2005/11/30(水) 15:35:52ID:iYNQpBXP
・外側のif文の代わりに for とか break;で抜けれるのを使う。
・goto < PHPには無いのか。
・そんなこと気にしなきゃならない設計が悪いんだ。
0269nobodyさん2005/11/30(水) 15:39:28ID:???
while ($俺->もよおしてる)
{
 $俺->おしっこ();
 if ($俺->残尿感 == 0) break;
 $俺->振ってみる();
 if ($俺->残尿感 == 0) break;
 $俺->ティッシュで拭く();
 $俺->包茎 = true;
 break;
}
0270nobodyさん2005/11/30(水) 15:51:17ID:???
>>267
知ってるよ、ばーか。

case文でbreakすりゃいいじゃん。
0271nobodyさん2005/11/30(水) 15:52:05ID:???
>>270
知らないならレスするなって言ったろ?
それじゃ馬鹿丸出しじゃんww
0272nobodyさん2005/11/30(水) 15:56:10ID:???
めずらしく綺麗に釣れてるな
0273nobodyさん2005/11/30(水) 16:02:59ID:???
逃げ場が無くなったチキンが言う台詞

釣り
0274nobodyさん2005/11/30(水) 16:06:50ID:???
全くの部外者だよ
元々どこに逃げる必要もない
0275nobodyさん2005/11/30(水) 16:11:10ID:???
めずらしく綺麗に釣れてるな
0276nobodyさん2005/11/30(水) 16:17:14ID:???
なるほど、逃げ場がなくなったわけだ
0277nobodyさん2005/11/30(水) 16:19:37ID:???
ほらね?
0278nobodyさん2005/11/30(水) 16:20:27ID:???
しかもこいつ>>275の場合釣りと言えるロジックもないしなw
0279nobodyさん2005/11/30(水) 16:23:32ID:???
ロジックロジックロジックロジックロジックロジックロジックロジックロジックロジックロジックロジックロジックロジック
ロジックロジックロジックロジックロジックロジックロジックロジックロジックロジックロジックロジックロジックロジック
ロジックロジックロジックロジックロジックロジックロジックロジックロジックロジックロジックロジックロジックロジック
ロジックロジックロジックロジックロジックロジックロジックロジックロジックロジックロジックロジックロジックロジック
ロジックロジックロジックロジックロジックロジックロジックロジックロジックロジックロジックロジックロジックロジック
ロジックロジックロジックロジックロジックロジックロジックロジックロジックロジックロジックロジックロジックロジック
0280nobodyさん2005/11/30(水) 16:26:05ID:???
どうでもいいけど>>277って自爆的敗北宣言だよな
「私は逃げ場がなくなったので釣りって事にしました」っていう
0281nobodyさん2005/11/30(水) 16:38:38ID:???
>>269
残尿感がないからといって、すぐにチャックをあげるのはセキュアじゃないぞ。
パンティ・インジェクションしてしまうかもしれない。
0282nobodyさん2005/11/30(水) 16:47:05ID:???
負け犬に限ってしつこく食いついてくるよね>>280みたいに
0283nobodyさん2005/11/30(水) 16:54:29ID:???
goto って一時、実装されてたけど、外されたんだよね。
現状、finally がないんで、クリーンアップ処理なんかで goto 使えると便利だわな。
0284nobodyさん2005/11/30(水) 16:58:24ID:???
>>282
「逃げ場がなくなる」→「釣り宣言」→「ほらね?」っていう身を削った
赤っ恥一人コントは笑わせてもらったよ
レッテル貼りだけじゃなく、論理的に反駁出来るようになったらまたおいで
0285nobodyさん2005/11/30(水) 16:59:24ID:???
クリーンアップ処理にはGOTOいらんべ
スイッチにはあってもいいかなーと思う
0286nobodyさん2005/11/30(水) 17:04:01ID:???
>>285
関数コール+breakと何が違うの?
0287nobodyさん2005/11/30(水) 17:10:23ID:???
>>284
 >>282
0288nobodyさん2005/11/30(水) 17:10:39ID:???
SwitchのGotoとラベルへのジャンプは別物だろ
0289nobodyさん2005/11/30(水) 17:21:08ID:???
>>285
個人的にはあまり好きではないけど break で抜ける回数を指定すればいいんぢゃないの?
0290nobodyさん2005/11/30(水) 17:24:28ID:???
>>287
今度は「ボクは負け犬なのでしつこいでしょ」か
そして論理的に反論出来きずにレッテルを貼るだけの負け犬っぷりを強調する
自虐的なやり方が得意なのは分かったが、あまり自分を批判するなよ
0291nobodyさん2005/11/30(水) 17:29:07ID:???
いや多分Switch云々はC#の独自実装の話だと思う
あれはキモい。いらねえ
0292nobodyさん2005/11/30(水) 17:34:05ID:???
考えたら各CatchからGotoで逃げるのも結構キモいな
結局メソッドの代わりGoto文は書かなきゃいけないわけだし

冗長でも尻拭きはそこに書いといたほうがいい希ガス

そういう事じゃなかったら勘弁な
0293nobodyさん2005/11/30(水) 17:45:40ID:???
>>292
お前もマジきめぇ
0294nobodyさん2005/11/30(水) 18:03:00ID:???
ああそうかよorz
0295nobodyさん2005/11/30(水) 18:19:32ID:???
http://php.s3.to/man/function.strstr.html
のstrstrの説明に
「haystackの中でneedleが 最初に現れる場所から文字列の終わりまでを返します。」
とありますが
最初に現れる場所から文字列の先頭までを返す関数はないでしょうか?
0296nobodyさん2005/11/30(水) 18:22:43ID:???
ない
0297nobodyさん2005/11/30(水) 18:27:43ID:???
>>295
strposとsubstrを組み合わせる
0298nobodyさん2005/11/30(水) 22:49:18ID:tQakw/gy
いきなり悪いが
数値にコンマを振る関数number_format()は知ってるが、
1000000(100万)→"1,000,000"ではなく、
"10,000,00"や"100,000,0"みたいにコンマをうつ位置を変えることってできます?
数値のあとに「万」とか「00」が標準で表示されるところに使いたいのですが。
0299nobodyさん2005/11/30(水) 22:50:16ID:???
やべ・・
くだらんことにageてスマソ
0300nobodyさん2005/12/01(木) 00:57:38ID:LGGjP7w6
ユーザー関数を定義する場合に引数に配列を使う事は出来ないんでしょうか?

function shop( $book[], $book[], $book[], $book[], $pen[], $pen[] ){
 (中略)
}

こんな感じで定義したいんです。
func_get_argsは全部同じ配列に放り込まれるようなので用途と違う感じ。

最悪同じ配列でもキーの数で場合分ければ平気っぽいですが、
よりスマートな方法があれば知りたいです。
0301nobodyさん2005/12/01(木) 01:03:25ID:???
>>298
こんなんでどう、ちょっと苦しいか
number_format(1234500/1000,1,",",",")
->1,234,5
0302nobodyさん2005/12/01(木) 01:13:25ID:???
>>300
function shop($book, $pen){
 (中略)
}
じゃ、いかんのか?
0303nobodyさん2005/12/01(木) 01:14:03ID:???
>>300
配列を渡すだけじゃだめなの?
shop($book,$pen)
0304nobodyさん2005/12/01(木) 01:20:08ID:???
あ、渡す値は普通の変数なんです。ごめんなさい。

使う時は
shop($koujien, $haripota, $book1, $book2, $drgrip, $mannenhitsu);
とかまぁそんな感じで適当な変数が放り込まれるんです。
03053002005/12/01(木) 01:41:59ID:???
う、
>>300 = >>303 です。
たびたびごめんなさい。
0306!omikuji2005/12/01(木) 02:05:47ID:RXgvGwfN
あ
0307nobodyさん2005/12/01(木) 02:48:34ID:Yh8Cr0vg
関数内も知りたいところ
0308nobodyさん2005/12/01(木) 06:57:17ID:???
>>304
function shop($array_book, $array_pen)
{
}

shop (array($koujien, $haripota, $book1, $book2), array($drgrip, $mannenhitsu))
0309nobodyさん2005/12/01(木) 17:16:21ID:???
日付について質問させてください。
日付データを

Y = 2005;
M = 12;
D = 1;

という変数を合体させて 20051201 という結果にしたいのですが、
どうしても月や日付が1桁の場合、 2005121 となってしまいます。

どうしたら一桁のとき、前部分に"0"を代入させることができるでしょうか。

何卒宜しくお願いします。
0310nobodyさん2005/12/01(木) 17:18:06ID:???
>>309
つ http://jp.php.net/manual/ja/function.date.php
0311nobodyさん2005/12/01(木) 17:19:42ID:???
>>309
いろいろ方法はあるけど、月や日の変数をprintfすれば
0312nobodyさん2005/12/01(木) 17:21:39ID:???
フォーマット(整形)したいってことなら、sprintf("%04d%02d%02d",$y,$m,$d) ってな感じでいいんでないかい?
0313nobodyさん2005/12/01(木) 17:25:31ID:???
date("Ymd", mktime(0, 0, 0, $d, $m, $y)
0314nobodyさん2005/12/01(木) 17:35:59ID:???
>>313
日付演算って結構コスト高なのよ
03153092005/12/01(木) 17:41:44ID:CokOaVcL
>>312
ありがとうございました。
おかげさまでうまく行きました!

>>313
$dと$mの位置が逆だったので、入れ替えたらうまくいきました!


0316nobodyさん2005/12/01(木) 19:02:53ID:???
方法としては
イフ(日<10){日="0".日;}
もあり
0317nobodyさん2005/12/01(木) 20:07:59ID:???
質問です。
タブブラウザを使って複数のサイトを開いている場合です。

タブ1で、セッションを使ったページ(管理者専用のページとか)にアクセスしている場合、
タブ2(別のサイト)でsession_unset();を使うと、タブ1の方のセッションもクリアされますか?
それとも、タブ2のセッションだけクリアされますか?
0318nobodyさん2005/12/01(木) 20:15:17ID:???
サイト?
セッションを共有しているのなら当然クリアされる
別のセッションを使っているのなら当然クリアされない
03193002005/12/01(木) 20:24:13ID:???
>>307
”こういうのが出来ると楽そうだけどできるのかなー”、
と言うまだ思いつき程度で質問したので関数内は決まってませんでした。

>>308
確かに渡す時に配列にしちゃえば>>302、>>303で言われたとおりの事が出来ますね。
自分頭固いですね。もう少し色々勉強していこうと思います。

どうもありがとうございました。
0320nobodyさん2005/12/01(木) 20:24:59ID:???
>>317
やってみたらいいだけじゃ・・・・
0321nobodyさん2005/12/01(木) 20:31:45ID:???
PHPにとっちゃ、誰がどんだけの数を接続してるのかなんて気にしないよ。
セッションidが渡されている時にsession_unset()が実行されたなら、そのセッションを破壊するのみ!
0322nobodyさん2005/12/01(木) 21:50:06ID:???
>>317
別のサイトの処理に影響受けたらえらいことになるだろ
0323762005/12/02(金) 02:59:17ID:z2yJckIH
質問投げっぱなしにしてしまいすいません。
いまさらですが上手く行きません。
>>81
古い携帯はスルーにしてUnicodeで対応することにしました。
ありがとうございます。

絵文字の受け取りで内部文字コードSJIS環境なら取れるのですがEUCだと
SJIS→EUC変換時に消えてしまいます。

1.やりたいことは掲示板のように絵文字を受け取ったらUnicode表記(?x\\\\;)に変換して保存。
2.保存したUnicode表記をそのまま表示。

すでに完成してるシステムをi-mode対応させたいのですが、EUCでやってる限り無理なのでしょうか?
どなたか経験のある方いらっしゃいませんか?

よろしくお願いします。
0324nobodyさん2005/12/02(金) 04:00:24ID:???
>>323
mbの環境がどうだかわからんけど出力をSJISにすればどう
echo mb_convert_encoding($out, "SJIS", "EUC-JP");
みたいに。というかi-modeは基本的にSJISでしょ?(絵文字の表記とは話は別)
php.iniでmb関連の設定を変えればいいかもしれない。

参考になりそうなとこ
http://ns1.php.gr.jp/pipermail/php-users/2004-November/024072.html
http://www.sound-uz.jp/php/tips/mobile.html
03252982005/12/02(金) 04:13:52ID:???
>>301
なるほど・・・
そんな都合の良い関数の定義はないんですね。。。
0326nobodyさん2005/12/02(金) 09:50:32ID:???
>>325
自分で関数かきゃいいじゃん
0327nobodyさん2005/12/02(金) 10:34:05ID:WMTYlWe/
>>326 が正論だと思うが…
「こんな関数ないだろ」と思って作成すると、標準関数としてあったりするのがPHPクォリティ。
0328nobodyさん2005/12/02(金) 10:37:50ID:???
>>327
あるかないか探すのは当然として、
ないんですね
で諦めたようにみえたから、書けば?といったまで。
0329nobodyさん2005/12/02(金) 13:50:35ID:???
質問です
掲示板作ってるのですが
書き込みさせるときに必要なコンバート処理って
htmlspecialchars以外に何かありますか?
よかったら教えてください。
ご教授よろしくお願いします。
0330nobodyさん2005/12/02(金) 14:22:21ID:???
書式とか何に書くのかとかで変わるからなんとも胃炎ね
0331nobodyさん2005/12/02(金) 15:41:27ID:???
>>330
レスありがとう。
普通の掲示板(2chのような)です。
htmlspecialcharsやってるんですが、これだけでいいのかな?
と思って書き込みしてみました。
0332nobodyさん2005/12/02(金) 15:42:42ID:???
XSSの実例とかググって参考にしてみるといいかも
03333292005/12/02(金) 16:09:43ID:???
難しい話は抜きでお願いします^^;
0334nobodyさん2005/12/02(金) 16:11:22ID:???
>>333
そんなこというなら、やめておいた方がいいよ。
XSS対応した掲示板スクリプト拾ってきた方が早いよ。
0335nobodyさん2005/12/02(金) 16:19:09ID:???
自分が理解していないのにマネごとだけでXSS対策した所でたかが知れてると思う
変な穴作って攻撃食らうのがオチ
0336nobodyさん2005/12/02(金) 16:50:26ID:???
PHPのソースコードを片っ端からクラスにして、ページの表示は、クラスの宣言と同時にコンストラクタで行うってのは、なにか不具合が発生するでしょうか?
0337nobodyさん2005/12/02(金) 16:53:10ID:???
特に何も。
0338nobodyさん2005/12/02(金) 16:55:36ID:???
>>336
試してみ
0339nobodyさん2005/12/02(金) 17:11:50ID:???
>337
>338
いや、既に実装をすましたんですけど、後々管理で不具合起きるかどうかで…
バージョンアップが恐いですけど、メンバ、メソッドの利用以外は継承どころかカプセル化さえ行っていません
0340nobodyさん2005/12/02(金) 17:16:02ID:???
何でもいいから猿でも分かる系のOO本読め
0341nobodyさん2005/12/02(金) 20:08:14ID:???
開始日と終了日が設定されているデータの扱いについて教えてください。
すでに複数登録されているデータには、開始日と終了日というフィールドが登録されています。
→ "開始日","終了日","箱1","箱2"
→ "051101","051130","a1","a2"
→ "051201","051231","b1","b2"
新しいデータを追加する際、すでに登録された期間に被っていた場合はエラー表示させたいのですが、そのやり方がわかりません。
(※12月1日〜12月31日までというデータがすでに登録されていた場合、11月1日〜12月15日というデータは登録できない、という感じです)

一応、下記みたいにやってみましたが、ダメでした。。。
$hoge = "SELECT * FROM table_name WHERE ( date_start<='"$start_data"' AND date_end>='"$start_data"' ) OR ( date_start<='"$end_data"' AND date_end>='"$end_data"')";
$db_query = sql_query($hoge,$ID);
$array_result = mysql_fetch_array($db_query);
if(empty($date_start_check) != TRUE ) { die("この期間内のデータはすでに登録されています。");}

よろしくお願いしますm(_ _)mペコリ
0342nobodyさん2005/12/02(金) 20:24:34ID:???
それはPHPの不具合なのか?
$hogeに入ってるSQLを直接DBに投げて実行してみたか?

SELECTの結果が空だってんなら
テーブルの構造とかも晒さないと判断できないしそもそもスレ違いって話だ
0343nobodyさん2005/12/02(金) 21:07:38ID:???
>>341
date("U")(←これは現在のタイムスタンプだけど)の形式を使った方が簡単。
0344nobodyさん2005/12/02(金) 21:12:30ID:???
なにその顔ふざけてるの?
0345nobodyさん2005/12/02(金) 21:21:09ID:???
("U")
< >
| |
03463412005/12/02(金) 21:25:28ID:v0LQzo7j
>>342
いえ、結果は正確にきてるんですが、
どうも条件文がダメのうようで・・・涙


3は1以上5以下であり、かつ7は1以上5以下ではないデータはあるか?

って感じの条件はどうしたらいいでしょうか・・・
03473412005/12/02(金) 21:27:05ID:???
あと、上記ではSELECT文で読み出した後に、mysql_fetch_arrayを使って配列として
取得した後、取得できたならエラーというの作業をしていますが、
クリエ実行段階でデータがあればFALSEを返すみたいなものがあれば、
そこでエラーを出せる気がしたので、他にそのようなやり方があれば教えてくださいm(_ _)mペコリ
0348nobodyさん2005/12/02(金) 21:27:10ID:???
>>346

SQLの質問だろ
示したソースもエラーだし。ぼろぼろ
いちおうヒントはおいといてやる

WHERE
'051130' BETWEEN s AND e OR '051231' BETWEEN s AND e
0349nobodyさん2005/12/02(金) 21:36:10ID:???
mysql_num_rows()
でいいんちゃうの

それと342,348
エラーになりそうだが
03503492005/12/02(金) 21:37:14ID:???
それと342,348
エラーになりそうだが
↓
それと342,348の言うように
エラーになりそうだが
0351nobodyさん2005/12/02(金) 21:41:20ID:???
どういう環境で開発してるのかわからんが
まず実行時のSQLを検証するところからはじめようや

SQLのエラーなのかPHPのエラーなのか判断できるようにならないと
お話になりませんよ
0352nobodyさん2005/12/02(金) 22:02:13ID:???
>>351
まずはSQLが正しいのかどうか検証しなよ。
03533412005/12/02(金) 22:32:01ID:???
>>348
ありがとうございます!
BETWEENをつかえばいいんですね。
思ったとおりの結果がでましたm(_ _)mペコリ


>>349
ありがとうございます。
mysql_num_rows() 、もしくはmysql_num_fieldsを使った方がいいですよね。
ちなみに、レコード数とfields数だと、fieldsの方が早いのかなとも思ったんですが、
そんなことはないのでしょうか?
0354nobodyさん2005/12/03(土) 00:00:20ID:???
すみません。
PHPが全く初めてなので、どなたか作業におけるキーワードやヒントを教えてください
ませんでしょうか?

やりたいことは,
とあるホームページ上でリンクは張られていないが,手入力でURLを入れられた場合
閲覧出来てしまうページを閲覧不可にしたい、というものです。
PHPのソースを書き換えることで実現するのらしいですが、どのようにするのでしょうか?
よろしくお願いします。
0355nobodyさん2005/12/03(土) 00:15:11ID:???
>>354
手法の話なのでPHPに限定されないのだが、
REFERERとかSESSIONとかで、直リン(ク)関連を調べてみな。
0356nobodyさん2005/12/03(土) 00:21:18ID:???
>>354
リンクが張られていなくて、且つ手入力でも閲覧できないページなんか
置いておく必要があるのだろうか…オマイさんも見れないだろうに…

と、野暮な突っ込みはここまでにして、
つ[BASIC認証]
ってのはどうだ?
PHPでも実現は可能だけど、.htaccessの方が楽だね。
03573542005/12/03(土) 00:38:22ID:???
>>355,356
即レスありがとうございます!!
入社二日目で言われて,なにから手をつけていいのかさっぱりだったので助かります。
さっそくググッてみます。

>>356 そうですね。言われて見れば確かにそうです。
なんでなのかなぁ。
0358nobodyさん2005/12/03(土) 00:49:14ID:???
>>354
入社2日目か
なんか354見るとphpソースとか書いてあるし
言われたことを理解してないんじゃないかい?
確認をしたほうがいいかも
03593542005/12/03(土) 01:08:01ID:???
ですね。もう一度聞いてみます。
03603232005/12/03(土) 02:06:12ID:???
>>324
ありがとうございます。
出力時ではなくフォームからの値受け取り時に
i-modeのSJISからEUCへの自動変換時に絵文字部分は消されてしまうのです。
受け取り時に文字コード変換をしなければ良いみたいですが、
それだといちいち自分でコンバートしなきゃいけないですよね。
始めにパラメータを変換するフィルタ的なつくりにしてみます。

どうもありがとうございます。
0361nobodyさん2005/12/03(土) 02:58:29ID:???
phpに限らない質問ですが・・・・・・
携帯からのアクセスがあった場合にフルブラウザかどうかを判断する方法はありますか?
全機種登録してリファラで振り分けるしかありませんか?
0362nobodyさん2005/12/03(土) 03:09:27ID:???
UAだろ?
■ このスレッドは過去ログ倉庫に格納されています