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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/03/09(月) 02:14:28ID:HyrthkeE
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 81
http://pc11.2ch.net/test/read.cgi/php/1234958956/

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

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

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

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
0545nobodyさん2009/03/22(日) 18:09:39ID:???
exitしてるからログは書き込まれないよ
それはそうとまずHTMLを理解しないと
0546nobodyさん2009/03/22(日) 18:12:30ID:XWTxCtFo
すみません…。あまりにも無知でした。exitすると処理が終了するということはリファレンスサイトで見たはずなのに…。恥ずかしいです。
HTMLにも理解がありませんでした。重ね重ね恥ずかしいかぎりです…。
0547nobodyさん2009/03/22(日) 18:17:48ID:XWTxCtFo
できました!ご教授下さった方のいう通りにしたらlog/200902.htmに書き込むことができました!
本当に無知な私にここまで親身になってくれてありがとうございました。本当に感謝します。
また何かわからないことがあったら自分で調べて、それでもわからなかったらまたこのスレにお世話になると思います。その時はどうか暖かい目で見てやってください…
0548nobodyさん2009/03/22(日) 18:27:06ID:???
ログファイルがhtmってのなんだかな〜
0549nobodyさん2009/03/22(日) 18:34:08ID:XWTxCtFo
はい。htmlにさせて頂きました...
0550nobodyさん2009/03/22(日) 18:45:54ID:???
いやそういうことをいってんじゃないんだけど
まあいいや
0551nobodyさん2009/03/22(日) 19:52:51ID:???
普通はログはテキストのまま、つまり記事本文だけを保持する。
例えば2chは、以下のようなテキスト形式でデータを保存している(本当は違うんだが、まあ割愛)。
 nobodyさん<><>2009/03/22(日) 18:34:08 ID:XWTxCtFo<> はい。htmlにさせて頂きました... <>
そのログファイルの内容を読み込んで、HTMLとして整形して書き出すPHPで本文を表示させるわけだ。

HTMLで保持しない理由はいくつかある。パッと思いつくのは
柔軟性
 例えば、表示されるHTMLを別の形にしたいとか、RSSも書き出したい、という時に再利用しづらい。
 記事削除passをつけたいとか、データ保持先をDBにしたいとか、色んな拡張性が失われたりもする。
セキュリティ
 本文に<script>alert('うけけけけけ');</script>と書かれたらどうなる?とか。
 どちらにせよ対策は必要なのだが、ログをHTMLとして持っていると、どこで対策すりゃいいのかが曖昧になりやすい。
容量
 無駄にデカくなる。大した問題じゃないが。
0552nobodyさん2009/03/22(日) 20:56:06ID:???
実体参照化してからHTML化すれば?
0553nobodyさん2009/03/22(日) 23:17:35ID:???
やり方にもよるかな
ログをhtmlとして書き出す掲示板はkentも作ってたな
0554nobodyさん2009/03/22(日) 23:23:17ID:???
やり方にもよるって・・

ログをHTMLとして書き出しておくのは
論外といったら失礼かもしれないけど、
明らかに保守性なさすぎじゃないか?
05555542009/03/22(日) 23:29:53ID:???
書き出しておく・・じゃなくて
保持しておくだった
0556nobodyさん2009/03/22(日) 23:30:00ID:???
テンプレートとログを分けておいて、記録するときにテンプレートを元にhtml化すればおkだけどな
0557nobodyさん2009/03/22(日) 23:30:47ID:???
XMLみたいなもんと思えば、アリじゃないかとも思う。
一件一行で、ヘッダとフッタを除いた状態で保存するなら、そんなに保守性もわるくないと思うが。
0558nobodyさん2009/03/22(日) 23:34:55ID:???
閲覧が多くて書き込みが少ないのならhtml化してもいいかな
0559nobodyさん2009/03/22(日) 23:43:37ID:???
あめぞうスクリプト見れ
0560nobodyさん2009/03/22(日) 23:49:52ID:cLpptsUH
現在自分が作成しているPHPとMySQlを使ったログイン認証システムで
穴がないか不安になってきたので、質問します。
要点のみを記載します。

・ID(又はメールアドレス)とパスワードをフォームに入力して、
 MySQL内の情報を照合
・正しければトークン用のコードを発行し、ユーザ情報を更新
 (テーブルのtokenフィールドに作成した値を追加)
・その他、セッション変数にはログイン時のUAとIPアドレスを代入
・各ページアクセス毎にセッション情報が正しいかをIFで調べる
(会員情報編集などの場合、ユーザIDとトークンコードが正しいか照合)
・パスワードはmd5で保存

と言うことをしています。他に「これもしろ」と言うことはありますでしょうか?
0561nobodyさん2009/03/22(日) 23:50:51ID:???
ソースを見せるのが早い
0562nobodyさん2009/03/22(日) 23:51:39ID:???
ID(又はメールアドレス)とパスワードをフォームに入力して、
 MySQL内の情報を照合


(1)この時に、SQLインジェクション対策はされているのか?
0563nobodyさん2009/03/22(日) 23:52:30ID:???
md5は破られるのでsha2にしたほうが無難
0564nobodyさん2009/03/22(日) 23:52:40ID:???
>>560
そういうしつもんすると>>562みたいな質問がきりがなく出てくるのでソース出したほうが早い
0565nobodyさん2009/03/23(月) 00:10:54ID:???
>>533
やっぱり再帰ですね
ありがとうございました
05665602009/03/23(月) 00:16:39ID:???
>>562
しています。まず入力値にhtmlspecialcharsをかけて
DBアクセス時にmysql_escape_stringをしています。

ソースに関してですが、莫大な量になるので掲載を控えます。
それにソースや構文の組み立てを聞きたいのではなく、
自分の足りない知識・誤っている知識を指摘していただきたく思い、質問しました。
0567nobodyさん2009/03/23(月) 00:29:46ID:???
( ゚д゚)
0568nobodyさん2009/03/23(月) 01:02:57ID:???
>>566
>まず入力値にhtmlspecialcharsをかけて

らめぇええええ
0569nobodyさん2009/03/23(月) 01:35:27ID:???
>>565
否。ただのループ。
0570nobodyさん2009/03/23(月) 02:53:59ID:RPfvHZ0v
test.txt
> 0123456789

test.php
> $fp = fopen("test.txt", "r");
> while(!feof($fp)) {
>   print fread($fp, 1);
>   flush();
>   sleep(1);
> }
> fclose($fp);

test2.php
> $fp = fopen("test.txt", "w");
> fwrite($fp, "aaaaaaaaaa");
> fclose($fp);
>
> $fp = fopen("test.txt", "r");
> print fread($fp, 10);
> fclose($fp);

test.phpが走ってる最中にtest2.php走らせても
test.phpの出力にtest2.phpの書き換えは反映されなかった。

読み出しに関してはルーズな実装してもOKって事?
0571nobodyさん2009/03/23(月) 05:27:55ID:???
flushされるタイミングの都合で、たまたまじゃないかなぁ。
0572nobodyさん2009/03/23(月) 05:29:12ID:???
良く見たら明示的にflush は、してるのか。
ごめん。
0573nobodyさん2009/03/23(月) 22:30:27ID:???
>>560とは別人で悪いんだけど、気になったからよこやり入れさせて。

>>568
ID(もしくはメールアドレス)は、必ずしもブラウザで表示するわけじゃないから、
 ・DB内の情報と照合する時 → mysql_escape_string(mysql_real_escape_string)
 ・ブラウザに表示する時   → htmlspecialchars
みたいにする、ってことでおk?
じゃないと、ID(もしくはメールアドレス)を更新する際に、'<'が'<'って保存されてしまうからっていうことかな。
見当違いだったらすまん。
0574nobodyさん2009/03/23(月) 22:33:45ID:???
連続書き込みスマソ

>>573訂正
じゃないと、ID(もしくはメールアドレス)を更新する際に、'<'が'&lt;'って保存されてしまうからっていうことかな。
0575nobodyさん2009/03/23(月) 22:38:01ID:???
そうやって保存されてしまうからっていうのと、
保存されてしまうことによって再利用するとき不便になるからだね
0576nobodyさん2009/03/23(月) 22:58:16ID:???
test
0577nobodyさん2009/03/23(月) 23:07:14ID:???
>>575
なるほど、いい勉強になった。
ありがとう。
0578nobodyさん2009/03/23(月) 23:45:08ID:uVBii4+5
サーバを再起動したらapacheのerr.logに
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\\PHP\\ext\\php_curl.dll'
と同じようなログがたくさん出ます。
でも、該当のファイルは存在します
何が原因でしょうか?
0579nobodyさん2009/03/23(月) 23:53:02ID:???
>>573-575
でもさ、ID・メールアドレスを更新する時に<を使う場合ってあるの?
IDはだいたい半角英数字だし、メールアドレスもそうでしょ?
0580nobodyさん2009/03/24(火) 00:01:55ID:???
どこでサニタイズするかは勝手だが、
100%ってことはないので出口でサニタイズしろってエロい人が言ってた
0581nobodyさん2009/03/24(火) 00:17:34ID:???
サニタイズニダ!
0582nobodyさん2009/03/24(火) 00:41:05ID:???
>>578
PHPのバージョンは?

DOS窓から、php -mや、php -iって打っても、エラー出る?

5.2.9-1なら
> Please note that the cURL related function is disabled when open_basedir or safe_mode enabled.
ってニュースが出てたけど、関係しそうなとこある?
0583nobodyさん2009/03/24(火) 04:21:02ID:???
すいません。PHP勉強して半年になります。順調に進んでいたのですが
echo $a[0] = 'aaa';
echo $a[0][0] = 'news';
こうすると、なぜかバグルのですが、なぜですか?
0584nobodyさん2009/03/24(火) 04:25:00ID:???
そりゃechoですからね
出力だけしてくださいよ
0585nobodyさん2009/03/24(火) 04:25:16ID:???
それは、君が>>1を読めない子ちゃんだから。
0586nobodyさん2009/03/24(火) 04:26:30ID:???
すいません、なぜこれでバグになるかわからないんです
echo $a[0] = 'aaa';
echo $a[0][0] = 'news';
print_r($a);
↓結果
Array ( [0] => jaa )
0587nobodyさん2009/03/24(火) 04:26:58ID:???
>>584
おまいさんは、輪をかけてドアホーみたいだけどな
0588nobodyさん2009/03/24(火) 04:28:52ID:???
>>586
バグってないじゃん。仕様通り
文字列の1文字目を置換してる
0589nobodyさん2009/03/24(火) 04:30:23ID:???
バグって増すよ
<?php

$a[0] = 'aaa';
$a[0][1] = 'jjjjk';

print_r($a);
Array ( [0] => aja )
0590nobodyさん2009/03/24(火) 04:32:35ID:???
>>589
バグじゃないよ。
$a[0]は文字列
$a[0][1]はその2文字目を代入しようとしてる文字列の1文字目で置換せよ
だから、$aは1要素配列のまま。
そんだけ。
0591nobodyさん2009/03/24(火) 04:34:04ID:???
>>590
そうなるんですか。知りませんでした。今までやってきて
そんな配列あったんですか 適当に使ってました
0592nobodyさん2009/03/24(火) 04:34:50ID:???
>>591
マニュアルに書いてあるよ。
0593nobodyさん2009/03/24(火) 04:35:22ID:???
自分は初心者なので、配列=箱としか書いてあるものをみたことが
なかったんです。助かりました>>1-589
0594nobodyさん2009/03/24(火) 04:39:30ID:???
変数を array で初期化しないで、いきなり配列として使うのは、どうも生理的・本能的にダメ。
0595nobodyさん2009/03/24(火) 04:42:07ID:???
arrayで初期化しても置き換えられますよ
自分初心者だったのでこんなのあったんだとびっくりしました
0596nobodyさん2009/03/24(火) 04:46:27ID:???
残念ながら>>594が言ってるのは次元の違う話だ
PHP使いは適当がモットーだから気にしなくていい
0597nobodyさん2009/03/24(火) 04:49:11ID:???
>>596
そうですか。今まで掲示板とブログ作ったんですか
そのような配列の使い方を書いてあるのがみたことなくて
気になりました
0598nobodyさん2009/03/24(火) 07:45:46ID:???
2重配列って呼び方であってる?
0599nobodyさん2009/03/24(火) 07:53:32ID:???
2次元配列じゃないよ。そのケース。
単に、1次元配列の要素が文字列で
その文字列にstring offsetでアクセスしてるだけ
06005862009/03/24(火) 08:34:05ID:???
難しいなあそんなの出てこなかった
初心者本には、
あくまで 配列は個々の箱だと意識してました
データ型を指定しなくていいように、箱も好きに使っていいと
思ってました。
0601nobodyさん2009/03/24(火) 08:34:37ID:???
そりゃ初心者本だからだろ
0602nobodyさん2009/03/24(火) 08:52:05ID:???
>>589
バグ

>>590は下のコードと勘違いしてるんじゃないのかね
$str = "12345";
$str[0] = "a";
echo $str; // a2345
0603nobodyさん2009/03/24(火) 08:55:32ID:???
>>602
いや、だからそれとやってることは一緒だろ
0604nobodyさん2009/03/24(火) 08:56:49ID:???
602が勘違いしてるんじゃないのかね
0605nobodyさん2009/03/24(火) 09:01:48ID:???
コンパイラ言語はデータ型ちゃんと指定するから
静的な変数(配列)の型定義というのは
型に応じたメモリ領域を確保するということ(Javaでint型なら4バイトlong型なら8バイト等)
PHPはインタプリタだからその辺を動的にやってるわけ
この辺をちゃんと理解してないと正しいイメージはわかない
配列は箱ではなく連続したデータというイメージが正しい
メモリ上ではそのように配置されている
0606nobodyさん2009/03/24(火) 09:45:45ID:VfITkfEn
>>582
versionは5.2.3だったと思います
C:\php>php -m としたら、「isqlt09a.dllが見つからなかったため、このアプリケーションを開始できませんでした。
インストールし直すと解決する場合があります」 とアラートが出ました

C:\php>php -m
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\PHP\ext\php_ifx.dl
l' - 指定されたモジュールが見つかりません。
in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\PHP\ext\php_oci8.d
ll' - 指定されたモジュールが見つかりません。
in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\PHP\ext\php_pdo_oc
i.dll' - 指定されたモジュールが見つかりません。
in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\PHP\ext\php_pdo_oc
i8.dll' - 指定されたモジュールが見つかりません。
in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\PHP\ext\php_pspell
.dll' - 指定されたモジュールが見つかりません。
in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'C:\PHP\ext\php_sybase
_ct.dll' - 指定されたモジュールが見つかりません。

C:\php>php -pでも同じ結果です
見つからないって言われてるモジュール、extの中にちゃんと存在してるんですが、、
06075862009/03/24(火) 19:06:44ID:???
誰かプロの人
$aiueo[0] = "a";
$aiueo[0][0] = "aa";
とPHPで入れると置き換わったりする理由を書いて下さい
0608nobodyさん2009/03/24(火) 19:09:04ID:???
>>606
記憶違いかも知れんが、依存関係の都合でライブラリを読み込む順序によって、
そんなメッセージがでたかも。

以前、Windows版のPHPってサンプルのphp.iniの順番だとエラーが出てずいぶん
悩んだことがある。
0609nobodyさん2009/03/24(火) 20:03:31ID:???
>>607
>>1
0610nobodyさん2009/03/24(火) 20:04:24ID:???
>>606
書いてないから確認しとくけどinclude_pathの設定は?
0611nobodyさん2009/03/24(火) 20:09:50ID:???
>>607
置き換わる理由は仕様だから。それだけ。

$a[0] = 'abc';
$as = 'abc';
if ($a[0][0] === $as[0]) {
echo ' $a[0][0] equal $as[0]' . " <br />\n";
}
echo "target :" . $as . " = " . $a[0] . " <br />\n";
echo "offset0:" . $as[0] . " = " . $a[0][0] . " <br />\n";
echo "offset1:" . $as[1] . " = " . $a[0][1] . " <br />\n";
echo "offset2:" . $as[2] . " = " . $a[0][2] . " <br />\n";

$as[1] = $a[0][1] = 'xxxxxxx';
if ($a === array($as)) {
echo ' $a is array of $as' . "<br />\n";
}

echo "replaced:" . $as . " = " . $a[0] . " <br />\n";
echo "offset0 :" . $as[0] . " = " . $a[0][0] . " <br />\n";
echo "offset1 :" . $as[1] . " = " . $a[0][1] . " <br />\n";
echo "offset2 :" . $as[2] . " = " . $a[0][2] . " <br />\n";
0612nobodyさん2009/03/24(火) 20:14:05ID:???
>>606
併せて、php.iniで、extension_dirがC:¥PHP¥extになってるか確認してみて。
0613nobodyさん2009/03/24(火) 20:15:53ID:???
すまんinclude_path関係ないね
0614nobodyさん2009/03/24(火) 20:36:16ID:???
>>606
phpinfo()を実行してみて、php.iniをどこから読み込んでいるのかも確認してみて。

以前、WINDOWSディレクトリと、phpの展開先の両方に異なる設定のphp.iniを置いていて、はまったことがあるので。
0615nobodyさん2009/03/24(火) 20:37:10ID:???
始めの頃ありがちw
0616nobodyさん2009/03/24(火) 21:07:22ID:/zsLtnA9
クラスの数が多くなってきたので(__autoloadで読み込み)
複数クラスを一つのファイルにまとめたら速くなるのではと
思うのですが、それって実際どの程度の効果があるでしょうか?
まとめなくても、元来OSがファイルキャッシュするので、
あんまり変わらない気もします
0617nobodyさん2009/03/24(火) 21:09:24ID:???
計れば良いのでは?
0618nobodyさん2009/03/24(火) 21:18:30ID:???
>複数クラスを一つのファイルにまとめたら速くなるのではと
再利用とか無視して一人で使うんだろうから別にいいとは思うけど
それでも基本どおり1クラス1ファイルにしときな
06196062009/03/25(水) 00:12:15ID:4yhBz/QX
みなさんたくさんのレスありがとうございます

>>612
そうなってました
>>614
C:\WINDOWS  でした。正しいですよね…

>>608さんの書いてる原因かなぁ
もうwindowsで作るの自体やめよっかな
0620nobodyさん2009/03/25(水) 00:32:37ID:???
>616
ボトルネックがわかっていない状態でチューニングをしてはいけない。
まずは測定。

ファイル数云々というより、__autoload()の呼び出し回数が減ることによる高速化は一応期待できるかな。
マジックメソッドの類は総じて重い。
まあ、DBやファイルへのアクセスがあるならそっちがボトルネックになってるとは思うけど。
0621nobodyさん2009/03/25(水) 01:59:46ID:???
>>616
環境いじれるなら、APCとか使うのが良いんじゃないかなぁと思う。
ソースコードは扱いやすい単にしておいた方が、いろいろ良いし。

自分ははクラスはモジュールぐらいの単位の方が扱いやすいんで、
1クラス1ファイルにはしてないけど。
0622nobodyさん2009/03/25(水) 11:16:26ID:yQlt60AA
PDOで永続接続を使っている場合、prepareを使うと2回目以降の実行が効率化するんでしょうか
それとも実行のたびに毎回prepareステートメントを発行するから意味無いんでしょうか
0623nobodyさん2009/03/25(水) 11:18:39ID:???
prepareって接続してんの?
0624nobodyさん2009/03/25(水) 15:06:05ID:Ijn9qBql
htmlspecialchars($var, ENT_QUOTES, 'utf-8')
でhtmlエスケープしていたのですが、
アンパサンドがエスケープされるので、
数値実体参照が「&#〜;」という文字列として表示される
ということが分かりました。
数値実体参照の場合は生で表示するにはどうしたらいいですか?
0625nobodyさん2009/03/25(水) 15:15:24ID:???
出力するときに&に置換すればいいじゃん
0626nobodyさん2009/03/25(水) 16:45:47ID:???
フォームの処理でmethodがpostの場合、
一度submitで送信した後、更新ボタンを押すと
再度送信するようなアラートが出ますが、
これを出さないようにする方法はないでしょうか?

header関数で送信元のページにリダイレクトして戻す方法以外で教えて下さい。
06276262009/03/25(水) 16:47:05ID:7ip+uIiL
すみません、ID隠してました・・・
0628nobodyさん2009/03/25(水) 17:24:35ID:???
>>626
ブラウザの仕様なのでPHPでどうこうできる問題じゃない
0629nobodyさん2009/03/25(水) 19:52:08ID:Ut4OfJaE
俺のマシンはwinXPの32ビットで4Gのメモリを積んでます。
システムのプロパティで見ると3.25GB認識してるのですが
PHPでどんなに重い処理をしてもタスクマネージャで見ると700MB位しか使っていません。
PHPのメモリリミットは-1の無制限にしてるのに何で?
もっとメモリ使ってくれたら速くなりそうなんだが。

スペックはアパッチ、PHP5
0630nobodyさん2009/03/25(水) 20:13:46ID:???
>>629
んなこたーない
0631nobodyさん2009/03/25(水) 20:38:00ID:???
メモリ使ったら速くなる?
0632nobodyさん2009/03/25(水) 20:47:09ID:???
>>626
「リロード対策」というキーワードでググると
情報が出てくる。

だが、自分には複雑すぎて理解できなかったが。
0633nobodyさん2009/03/25(水) 21:30:14ID:POBIuYee
問題の切り分けレベルですいませんが
http://kokusan.syokuryo.jp/blog_parts.html
このblogパーツですが中身のjs↓
http://kokusan.syokuryo.jp/blogparts/kokusanParts.js
を機能丸ごと再現してみたいのですが(用途は勉強、兼遊びで)

再現するのに
■サーバサイドの技術は何が必要か
■ローカル側は.jsだからとりあえずはコピペで十分?
という所で(入口ですが)詰まってます。
どなたかご助言plz
0634nobodyさん2009/03/25(水) 21:32:29ID:???
まずJavaScriptの基礎から学ぶといいかと
0635nobodyさん2009/03/25(水) 21:50:38ID:???
>>629
画像データをメモリ上に読み込んだりしない限り
そんな使うことはないだろ
重い処理なんていってもPHPの場合たかがしれてる
0636nobodyさん2009/03/25(水) 23:08:42ID:???
>>625
そうですね
そもそも&までエスケープする仕様はやりすぎのような・・
2chでも&はエスケープしてないし。googleも。
0637nobodyさん2009/03/25(水) 23:23:27ID:???
>>636
xmlデータにおいては、&は実体参照必須だけどね。
0638nobodyさん2009/03/26(木) 00:04:21ID:???
>636
気に食わないなら文句言ってないで自分で実装すりゃいいじゃん。
単純に置換するだけだから、str_replace一発でできるぞ。

俺はやりすぎとは思わないな。入力文字列をそのまま画面に出力したいなら、&の置換もしたほうがいい。
0639nobodyさん2009/03/26(木) 00:25:15ID:l1PHOXdz
数値を0.5刻みでフォーマットしたいのですが、
何かスマートな方法はありますでしょうか?

(例)

1.0以上1.5未満 => 1.0
1.5以上2.0未満 => 1.5
2.0以上2.5未満 => 2.0

よろしくお願いします。
0640nobodyさん2009/03/26(木) 00:35:55ID:???
>>639
2倍にして切り捨てて半分にする
0641nobodyさん2009/03/26(木) 00:39:42ID:???
>>639
四捨五入じゃなくて?
0642nobodyさん2009/03/26(木) 00:39:59ID:???
>>638
安全にこしたことはないですが、今回は実体参照を頃されてしまうのが問題なので・・
それにしても、エンコードを意識せず、単に置換したらいいだけなんですか?
だとしたら、htmlspecialcharsのエンコード指定は何に使われているんだろう
0643nobodyさん2009/03/26(木) 00:55:11ID:???
>>639
round
0644nobodyさん2009/03/26(木) 01:05:32ID:fG8U3yBv
MySQLのSQL文のWHEREを
$where_ary = array("id"=>"1","name"=>"あああ");
foreach($where_ary as $key=>$value){
$array[] = $key."='".$value."'";
}
$where = join("&",$array);

と言うように連想配列を使って生成しています。
上記のようにすると、変数に値が入っている場合は大丈夫なのですが、
MySQLの関数(NOWやDATE_FORMATなど)を使いたい時、使えません。
かといって値の部分に関数を記述しても文字列となります。

もっと効率よく生成するには、どのようにすれば良いのでしょうか?
0645nobodyさん2009/03/26(木) 01:07:24ID:???
>>642
指定はできるけど、何も使われていない、って情報が
どっかのブログに書いてあった
■ このスレッドは過去ログ倉庫に格納されています