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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/08/25(土) 22:11:08ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 52
http://pc11.2ch.net/test/read.cgi/php/1186794483/

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

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

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0503nobodyさん2007/09/01(土) 18:30:27ID:epTGamb+
>>501
値を出力するときは常にhtmlspecialcharsを通す。
htmlspecialcharsを通された値が代入されていることが分かる変数であれば、 そのまま出力する。

echo $_POST['name']; // これは危険

echo htmlspecialchars($_POST['name'], ENT_QUOTES); // これは安全

echo $safeName; // htmlspecialcharsに通された値を 「safe」 が付く変数に代入するという規則が決めてあれば、 これは安全

参照:
間違ったコードは間違って見えるようにする
(http://local.joelonsoftware.com/mediawiki/index.php/%E9%96%93%E9%81%95%E3%81%A3%E3%81%9F%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AF%E9%96%93%E9%81%95%E3%81%A3%E3%81%A6%E8%A6%8B%E3%81%88%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B)
0504nobodyさん2007/09/01(土) 18:34:42ID:???
↑つながらん
0505nobodyさん2007/09/01(土) 18:52:25ID:???
>>501
元々のデータをそのまま使うなら$_POSTのまま、
データを様々加工する場合は別途変数に入れて、
としてる。

そのまま扱うのに別の変数に入れるってのは意味が分からん。
加工がある場合は元データを消失する構造にしてると
後の仕様変更で困ることが多いのでこれは別変数とする。
セキュリティはDB登録時やHTML出力時にそれぞれに合った形で
逐次エスケープするわけだから、別変数に入れる必要は全くない。
0506nobodyさん2007/09/01(土) 19:49:34ID:Ca6l/pzb
とりあえず変数(ローカル)に叩き込む派。
無駄でもなんでも変数ぐらいわかりやすく使えよ。さほどメモリ減るもんじゃなし。

自分の言い訳を考えるに、 読み込み→加工→出力 の一般的プロセスを分かりやすくするため
最初にリードしてる気分でローカル変数に叩き込んでる、つーかんじなのかもしれん。

グローバル変数で受け取る?つーかグローバル変数使うなんて阿呆のすることだと思うが?
05075012007/09/01(土) 20:12:35ID:???
皆さん、ありがとうございます。自分は今まで505さんの言う方法をしていました。
それでふと「他の変数に入れた方が、わかりやすいんじゃないか?」っと
思って、他の方はどうしているか気になった次第です。

とりあえずこれまで通り、加工しない場合は$_POSTのまま出力し、
加工する場合は、別途変数に入れる出力方法で行きます。
ちなみにhtmlspecialcharsは常にやっています。
0508nobodyさん2007/09/01(土) 20:15:41ID:???
>>506
またすごい奴来たなwグローバル変数使ってると阿呆だって言い切ってるしw
0509nobodyさん2007/09/01(土) 20:29:33ID:???
そんなそんなグローバル変数がどこで入力されて、内容が加工されて、出力されてるか
プログラムを瞬時に理解できてミスもしない神プログラマーの>>508さんには間違っても勝てませんて。
0510nobodyさん2007/09/01(土) 20:44:02ID:???
必要時にローカル変数化するならともかく、「とりあえず変数に叩き込む」レベルで
そのローカル化したという変数がどこで加工されて出力されてるか把握できるのもすごい。
というか、ローカルって言うけどPHPの先頭がいきなりmain()とかの関数呼び出しになってるの?
関数内ならともかく、PHPのメイン処理で変数にぶち込んだらそれグローバル変数だと思うんだけど。
0511nobodyさん2007/09/01(土) 20:47:14ID:???
神ではないが普通にグローバル変数使うときは、変数破壊には注意を払うね。
全く使わないというのは無理。
0512nobodyさん2007/09/01(土) 21:00:50ID:???
グローバル変数の意味とりちがえてるかも。
少なくとも俺はPHPはじめてglobal宣言はサンプル以外で書いたことはない。
全部関数に引数与えて処理してるし、スコープ考えて処理してる。
main()て書いて、いきなりスコープかましてるわけではないけど、

入力したデータはなにで、どこでしてるか
加工はどこでしているか
出力してるとこはどこか
ぐらいは簡単になるまで関数化、引数として何が必要か明確にしてるけど。

つか、そうそうソースの中のルートに書いた変数を関数内で扱う事に抵抗が無いわけ?
それじゃ簡単なものは作れても後々こまってくるとおもうんだが?
0513nobodyさん2007/09/01(土) 21:26:07ID:???
>>512
関数に引数として渡すこと=ローカル変数化、って言ってるの?
だったらこっちも同じだよ。
ってかふつーそんなの「とりあえず変数に叩き込む」って言わないだろう。
0514506,509,5122007/09/01(土) 21:38:22ID:???
んーまた物議を醸し出しそうでこわいが、(w)
ほぼオレの書いたソースはこれに近い形になってる(してる)んだが。
やっぱオレ間違ってる?なんか説明まちがった?よろしくw

<?php
//入力
$a=$_POST[〜]; //←変数に叩き込み
//処理
$b=process($a);
//出力
output($b);
function process($aa){

}
function output($ab){

}
?>
0515nobodyさん2007/09/01(土) 21:42:29ID:???
>>514
確かに「とりあえず”グローバル変数に”叩き込んでる」のね。

> $a=$_POST[〜]; //←変数に叩き込み
> $b=process($a);

…これって意味あるのか?($a代入)
セキュリティ以前に開発ミスを防ぐって意味でも。

セキュリティ的な意味合いでは「それが外部から来たデータであること」を
常に意識できる形になってないと極めて危険、というのが俺の経験則。
0516nobodyさん2007/09/01(土) 21:45:27ID:???
>>514
global宣言したものをグローバル変数というのではなく、
グローバルスコープの変数をグローバル変数というのだよ。

$_POSTのままの方がユーザー入力だと解りやすいと思うけどね。
0517nobodyさん2007/09/01(土) 21:54:34ID:???
なーんかオレが劣勢っぽいけどw

もちろんprocess関数内では「グローバルとしては扱ってない」よ。
$aが外からきた変数の明示 ($a=_POST[〜];)と
加工部内でその$aが使われている証明($b=process($a);)
があるからいいんじゃね?

もしprocess内で$_POST[]がつかわれたらそれこそどこの環境の
どのデータとってきてるんだってことになるとおもうが?

どのデータを処理に使ってるか処理順序で明示してやるほうが分かりやすかろう
とおもってこうしてるわけだが。

>>516 んではサンプルのprocess内でも$_POSTで値とってきたほうが分かりやすいのか?
0518nobodyさん2007/09/01(土) 22:00:47ID:???
$_POSTにポストデータ以外の出所なんてあるのか。
0519nobodyさん2007/09/01(土) 22:03:40ID:???
ああ、あと一つ。

もし$_POSTをprocessにかける前に加工する必要性がでたら・・・・


おまえらソース書き換え大変だろwwwww
0520nobodyさん2007/09/01(土) 22:10:14ID:???
>>517
なんで関数内からグローバル変数を参照することを前提に書いているのか謎だが、
>>501が質問したのは$a=$_POST[〜];が必要かどうかってことでしょ。
>>502の直接参照出来るってのは利点として挙げただけでそうしろってことではないでしょ。
それに関数内からグローバル変数を参照することはほとんどないといってもケースバイケースだし。
0521nobodyさん2007/09/01(土) 22:14:31ID:qAbTQU9w
今まで、自分の考えていることに間違えなんて無いと思っていたけど、
このレスに来て、俺にも間違えが生じることがあることに気付かせてくれた。
悔しいけど、ありがとう。
0522グローバルは馬鹿っていってごめんなさい。とはいうものの2007/09/01(土) 22:28:54ID:???
> >>517
> なんで関数内からグローバル変数を参照することを前提に書いているのか謎だが、
ああ、これはオレのグローバル変数の取り違え。正直すまんかった。
わざわざスーパーグローバルと同じ動きさせるために global $a; $a=$_POST[]なんてやんのか?
とかおもったんでアホか!っておもって書いた^^;

> >>501が質問したのは$a=$_POST[〜];が必要かどうかってことでしょ。
>>519で論破でいいか?

> >>502の直接参照出来るってのは利点として挙げただけでそうしろってことではないでしょ。
べつにおれもそうしろとはいってないよ。アホだとはいってしまったけど。^^;
プログラムはうごきゃいいんだよ。保守性なんて保守する必要なければ必要ないしね。
でも分かりやすく、ミスなく、とかおもったら俺の経験則でこうなったが。

> それに関数内からグローバル変数を参照することはほとんどないといってもケースバイケースだし。
ケースがないわけないじゃない。globalが用意されてんだから。
でも明示してないものを関数内で入力として使う危険性のほうがおれは経験則で怖いんで俺は明示するよ?
というかんじかな。

>>521 >>519で論破でOK?
0523nobodyさん2007/09/01(土) 22:33:07ID:???
もう、完敗宣言しているんだから、勘弁してやれよw
0524nobodyさん2007/09/01(土) 22:44:58ID:VWNhFO8z
PHPスクリプトを配布しているおすすめのサイトを教えてください。
ソースを見て勉強したいと思っています。
0525nobodyさん2007/09/01(土) 22:51:55ID:???
>>524
PEAR
0526nobodyさん2007/09/02(日) 00:23:30ID:???
俺はglobal宣言せず、どうしても必要なら$GLOBALを使う派。
global宣言した変数ってコード追ってるときに判別しづらくて
バグの元にならない?
0527グローバルは馬鹿っていってごめんなさい。とはいうものの2007/09/02(日) 01:20:55ID:???
つかったことないけど、俺がそんな状況におちいったら
変数名$gblABCとかって接頭文字くっつける

かもしれない。
0528nobodyさん2007/09/02(日) 01:44:25ID:???
>>527
変数名にプリフィックス付けるなんて、VBじゃないんだから止めろよバカ
お前の頭は、10年前から進歩ないのかよ
0529nobodyさん2007/09/02(日) 02:02:17ID:???
>>528
お前、まさかハンガリアン記法とプリフィックスを
ごっちゃにしてないよな?

型を示すプリフィックスのハンガリアン記法は否定されているが、
スコープを示すプリフィックスは否定されてねーよ。

Javaだってメンバ変数の前かあとに _ をつけたりしてるだろ。
0530nobodyさん2007/09/02(日) 02:14:22ID:QvprOJVv
お揉めのところ申し訳ないのですが、質問です。

アクセス解析をつくっているのですが、ユニークをどうやって取得・カウントすればいいか検討もつきません
つまらない素人質問で恐縮ですが、ご教示願います
0531nobodyさん2007/09/02(日) 02:26:42ID:???
その日アクセスされたIPと照合
0532nobodyさん2007/09/02(日) 02:32:34ID:QvprOJVv
レスありがとうございます。
そこまでは自力でわかりましたが、具体的にどのようにすれば良いのでしょうか?
0533nobodyさん2007/09/02(日) 02:36:52ID:???
ifで条件判断すりゃいいだろ。
そこまでわかってんなら書け
0534nobodyさん2007/09/02(日) 03:05:17ID:t27ykBXA
apacheユーザで動かしているwebサーバ上でphpを使用しwebmailを作ろうと思っているんですが、
システムユーザを作らないとユーザが作成できません。
rootユーザでapacheを動かせば作れるんですが。。。。。

一時的にrootで動かすにはやっぱりsudoを使わなければならないでしょうか?
宜しくお願いします。
0535nobodyさん2007/09/02(日) 03:07:12ID:???
>>534
ちょwww 人が眠ろうとしているときにメールするなよ!!
0536nobodyさん2007/09/02(日) 03:26:09ID:???
答えられないのに無理に答えなくてもいいと思うよ
05375342007/09/02(日) 03:27:06ID:t27ykBXA
>>535
( ゚д゚)ダレニモメールシテナイヨ
0538nobodyさん2007/09/02(日) 03:40:21ID:QvprOJVv
>>533
ありがとうございました
0539nobodyさん2007/09/02(日) 03:45:09ID:???
>>534
webmail とシステムユーザの作成に何の関係が?
たぶんシステムのユーザのメールボックスを使いたいのだろうが、
エイリアスで不足な理由は?

やっぱり使わなきゃダメかなぁみたいなノリでroot権限を使わない方がいいよ。
05405342007/09/02(日) 03:49:52ID:t27ykBXA
>>539
Web上でユーザの作成、削除をしたいんです。
formにて必要な情報を管理メールアドレスへ送ればいいのでしょうけど、
リアルタイムで作成したいと思っています。(yahooやgmailのような仕組み)
なのでやっぱりsudoとshellscript又はsystem()関数を使わなければいけないかなと思ったんですが。。。
0541nobodyさん2007/09/02(日) 03:54:37ID:???
>>540
いやいや、だからメールボックスだけが必要なら、
システムのユーザを作る必要はどこにもないんだよ?
エイリアスで十分でしょ。

postfixなどには、エイリアスをデータベースに格納する設定があるから、
まずはそいつを調べるんだ。
0542nobodyさん2007/09/02(日) 04:06:36ID:???
array(5,6,7,8,9,10)とか
連番の配列を作るにはどうしたらいいですか?
0543nobodyさん2007/09/02(日) 04:11:49ID:???
>>542
for($i=5; $i<=10; $i++){
$array[] = $i;
}
05445342007/09/02(日) 04:11:50ID:???
>>541
Postfixにそんな機能があったのか、thxです!
ちょっと調べてみます。
ありがとうございました。
0545nobodyさん2007/09/02(日) 04:24:42ID:???
>>542
range(5,10)
0546nobodyさん2007/09/02(日) 04:54:05ID:???
>>543
それならできます
>>545
ありがとうございました
0547nobodyさん2007/09/02(日) 04:55:15ID:???
こんなに優しくされたの初めてです♪
0548nobodyさん2007/09/02(日) 11:59:26ID:IAvjtU3B
【やりたい事】
・HTMLのフォームに初期値を表示したい。
・初期値は別のテキストファイルからphpで呼び出したい。
・下記のソースではフォームに「$file_data[0]」,「$file_data[0]」と表示されてしまいます。
・本当に表示させたいメッセージは「名前を入力してください」,「問い合わせ内容を入力してください」です。

【data2.txtの中身】
名前を入力してください
問い合わせ内容を入力してください

【環境】
サーバーのOS:CentOS 4.5
Webサーバー:Apache 2.0.52
PHP:5.1.6
0549nobodyさん2007/09/02(日) 12:00:44ID:IAvjtU3B
>>548の続き
【index.htmlの中身】
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd";>
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>フォームに初期値を表示する</title>
</head>
<body>

<?php
$file_data = file("data2.txt");
?>

<form method="post" action="form.php">
お名前:<input type="text" name="name" value="$file_data[0]">
<br>
問合せ:<input type="text" name="contact" value="$file_data[1]">
<br>
<input type="submit" value="送信">
</form>

</body>
</html>
0550nobodyさん2007/09/02(日) 12:09:48ID:???
>>549
お名前:<input type="text" name="name" value="<?php echo $file_data[0] ?>">
問い合わせも同様
0551nobodyさん2007/09/02(日) 12:22:39ID:IAvjtU3B
>>550
ありがとうございます。
正常に動作する事を確認しました。

※補足
>>550さんの記述+index.htmlをindex.phpにする事で動作しました。
何となく過去の経験上、phpは拡張子がhtmlでも動作した気がしたのですが、htmlのままでは動きませんでした。
0552nobodyさん2007/09/02(日) 12:30:49ID:???
>>551
AddType application/x-httpd-php .php .html
0553nobodyさん2007/09/02(日) 12:44:03ID:3ZNK8eVt
テキストファイルに"5"が見つかったらその上の行を表示するようにしたいんので

$file = fopen("xxx.txt","r");

while (!feof($file)) {

$line = fgets($file,1024);

if ($line == 5){

fseek($file, $get);

$line = fgets($file,1024);

echo ("$line<br>");
}

$get = ftell($file);
}


fclose( $file );

これじゃできないんです。どうすればいいでしょうか
0554nobodyさん2007/09/02(日) 13:33:02ID:???
if(strpos($line,'5') !== false)
0555nobodyさん2007/09/02(日) 13:37:02ID:IAvjtU3B
>>552
ありがとうございます。
ググッて意味が理解でき、htmlでも動作するようになりました。
0556nobodyさん2007/09/02(日) 15:36:12ID:bbqIMTHD
ここに書いてある方法でphp.ini設定してもphpファイル読み込めば勝手に西ヨーロッパ言語(ISO)でエンコードされて文字化けしてしまう
http://allabout.co.jp/internet/database/closeup/CU20050321A/index5.htm
まあ読み込むたびに手動でエンコード変えればちゃんと見れるのだが・・・
どうすりゃデフォルトでShift-JISやEUC-JPで読み込んでくれるのよ?


0557nobodyさん2007/09/02(日) 15:50:42ID:???
htmlの勉強をしてください。
0558nobodyさん2007/09/02(日) 15:56:19ID:???
>>556
今時ブラウザの自動判定に頼らずに、
ちゃんと文字エンコーディング情報を伝えてあげてください。
0559nobodyさん2007/09/02(日) 16:06:39ID:bbqIMTHD
IEの自動判定ってどこで設定すんだよ
FFxだとうまく表示されるんだがIEだとなぜか西ヨーロッパ言語(ISO)になっちまうんだよ
ちなみにFFxだとエンコードはうまくいってるのにPHP5がちゃんと動作しない
どうすりゃいいのさ
0560nobodyさん2007/09/02(日) 16:10:25ID:???
だからhtmlの勉強をしろ。
0561nobodyさん2007/09/02(日) 16:11:35ID:???
>>559
>ちなみにFFxだとエンコードはうまくいってるのにPHP5がちゃんと動作しない
なんでPHPがブラウザに依存するんだよ
0562nobodyさん2007/09/02(日) 16:15:54ID:???
ずるぽんあぷろだのソースはもう配布されてないのですか?
どこかに落ちてませんか?
0563nobodyさん2007/09/02(日) 16:16:38ID:???
あんなもん1から作った方がいい。あれソース汚すぎ。
0564nobodyさん2007/09/02(日) 16:25:36ID:cq55lstZ
function jikan(){
$jikan = time();
$_SESSION['jikan'] = $jikan;
}


jikan();
echo $_SESSION['jikan']

jikan関数を定義して、$jikanに現在の時間を入れて、$getに$jikanを代入したのですが、
ブラウザを更新するたびに$getの値が変わってしまいます。
$getにはtime()って関数がそのまま代入されてるからでしょうか?
$getにはじめに取得した時間のまま値を変えずにするにはどうしたらいいのでしょうか?
0565nobodyさん2007/09/02(日) 16:32:35ID:???
>>564
$_SESSION['jikan']が存在すればjikan();に行かないようにすればおk
0566nobodyさん2007/09/02(日) 16:34:15ID:cq55lstZ
アドバイスくださったとおりでした。
なんども定義関数を呼び出してました。
ありがとうございました。
0567nobodyさん2007/09/02(日) 16:37:14ID:???
ソースから余分な改行等を抜いてつめつめにしたら
高速化できますか?
0568nobodyさん2007/09/02(日) 17:06:14ID:???
できるよ
0569nobodyさん2007/09/02(日) 17:08:25ID:???
なるんじゃね?

1GhzのCPUは一秒間に1000000000の命令を実行できるから
改行一つ当たり0.00000001秒ぐらい。
0570nobodyさん2007/09/02(日) 17:13:53ID:???
>>569
CPUの命令の意味が全然分かっていない、知ったか厨
0571nobodyさん2007/09/02(日) 17:15:13ID:???
>>570
本当はお前がわかっていないんだろうなw
反論するときは、その理由を書くもんだよ。
0572nobodyさん2007/09/02(日) 17:16:21ID:???
>>571
その手に乗らねよ、厨www
知りたかったら自分で調べろ。
0573nobodyさん2007/09/02(日) 17:22:33ID:???
お前の(間違った)考えを
ネットで調べろとは、また無茶なことを言うな。

ほれみろ、反論できやしない。
0574nobodyさん2007/09/02(日) 17:25:14ID:???
>>573
馬鹿丸出しw
0575nobodyさん2007/09/02(日) 17:25:48ID:???
>>570
たかが改行を一つ飛ばすぐらい。
機械語でも、比較命令・アドレス加算、ジャンプの
数命令程度ですむわけだが?
0576nobodyさん2007/09/02(日) 17:26:27ID:???
コードキャッシュ入れたら無意味になるけどな。
0577nobodyさん2007/09/02(日) 17:27:00ID:???
>>573は、自分の疑問を他人に調べさせようとしています。
以後、餌をあげないように。
0578nobodyさん2007/09/02(日) 17:28:14ID:???
>>570はPHPの1命令は機械語に直すと
もっとかかると言いたかったのだろうが、
改行を飛ばすコードなんて機械語でもほんの数命令でしか
ないことに気づかなかった馬鹿ということでFA?
それ以外に何を言いたいのかわからない。
0579nobodyさん2007/09/02(日) 17:29:36ID:???
盛り上がってまいりました
0580nobodyさん2007/09/02(日) 17:29:40ID:???
>>577
お前さ、自分で反論していて、
その反論の理由をいえないなんて恥ずかしくないの?

私はあなたの意見の反論する。
その理由はお前がググレ。

これを議論の場で言ったら恥をかくだけだと思うよ。
0581nobodyさん2007/09/02(日) 17:32:58ID:???
これでどっちが知ったかかはっきりしましたねw

もちろん>>570のことですよ。
0582nobodyさん2007/09/02(日) 17:33:18ID:???
とりあえずネットよりまずPHPのC言語ソースを調べろと。
スクリプトの解析処理がどういう仕組みになってるかによって
改行コードの有無による処理コストは変わってくるし、
そこを調べずに論議してもまるで無意味。

でも多分、改行コードは単独で判定されてるわけじゃなく、
正規表現での構文解析で他の記号とまとめて処理されてると思うので、
構文解析としては改行があっても無くても速度はまるで変わらず、
差が出るのはディスクから読み込むときにバッファが小さくて済み、
サイズが数十〜数100バイト小さい分だけディスクI/Oが早く完了する、
という点に尽きると思う。
この速度差はCPUのクロックだけじゃなく、ディスクのI/O速度にも依存する。
0583nobodyさん2007/09/02(日) 17:36:40ID:7yTluSfa
PHP4+Apache+MySQL(PostgreSQL)+Smartyが使用できるおすすめのフレームワークを教えてください
できればデファクトスタンダードになりそうなので
0584nobodyさん2007/09/02(日) 17:37:22ID:???
>>583
今更PHP4がデファクトスタンダードになるわけないじゃん。
公式サポートはもう終了しちゃったよ。
0585nobodyさん2007/09/02(日) 17:37:49ID:???
>>582
正規表現といっても、結局は最終的には
単純な機械語による比較とループとして実行されるわけで、
結局改行一つで増加するコードは10命令文にもならないだろうな。
0.00000001秒は妥当なんじゃね?むしろそれ以下。

0586nobodyさん2007/09/02(日) 17:40:01ID:cq55lstZ
$array = array("aa"=>"1234","bb=>"2314","cc"=>"5814","dd"=>"3501");

$arrayに格納された値に含まれる1を削除したいのですが、
以下のコードよりももっと良い書き方ありませんでしょうか?

foreach($array as $k => $v) {
$hairetu[] = str_replace("1", "", $v);
}
0587nobodyさん2007/09/02(日) 17:41:55ID:???
>>584
> 今更PHP4がデファクトスタンダードになるわけないじゃん。

デファクトスタンダードになりそうな
フレームワークを聞いてるんだろ。

お前は日本語もわからんのかw
0588nobodyさん2007/09/02(日) 17:43:55ID:???
>>583
CakePHP
05895832007/09/02(日) 17:47:43ID:7yTluSfa
>>584
Zend FrameworkのようにPHP5のみじゃなくて
現状でPHP4が使えて今後デファクトスタンダードになりそうなフレームワークということです。
0590nobodyさん2007/09/02(日) 17:49:19ID:???
改行を全て削除したらファイルサイズが1割くらい減るから
1割くらいは高速化するだろう
0591nobodyさん2007/09/02(日) 17:50:01ID:???
スカスカのプログラムだなw
0592nobodyさん2007/09/02(日) 17:50:17ID:7yTluSfa
>>588
ありがとうございます
試してみます
0593nobodyさん2007/09/02(日) 17:51:07ID:???
>>590
お前は>>570か?w
0594nobodyさん2007/09/02(日) 17:52:23ID:???
>>590
しねーよw
0595nobodyさん2007/09/02(日) 18:05:50ID:???
>>586
コールバック関数使うとか参照foreachとか。
0596nobodyさん2007/09/02(日) 18:25:02ID:???
>>586
それで十分じゃないのか?
0597nobodyさん2007/09/02(日) 18:37:55ID:SjqAaNKw
内容:
初心者です 参考書を片手に勉強中なんですが
PHP mysqlでチェックボックスを使い フォームでチェックされた名前のも
のだけを取り出したいのですが 上手くいきません
チェックボックス側
<form method="GET" action="./hoge.html" >
<table width="778" border="0" cellpadding="0" cellspacing="1" bgcolor="#999999">
<tr> <td width="70" height="32" valign="top" bgcolor="#FFFFFF" class="unnamed2"><b>名前</b></td>
<td valign="top" width="229" bgcolor="#FFFFFF" class="unnamed2">
   <?php
for ($si = 1; $i <=10; $i++) {
echo <input type=\"checkbox\" name=\"c1[]\" value=\"{$row['id']}\">{$row['id']};
}
?>
表示側
//データーを受け取る
$c1 = @$_POST["c1"];
$sql = "SELECT * FROM hoge";
//データーが選択されているときはWHERE以下を組み立てる
if (count($c1) > 0) {
//分割されたここのキーワードをSQLに反映
$where = "WHERE (id IN (";
for ($i = 0; $i < count($c1); $i++) {
$where .= $c1[$i];
if ($i < count($c1) - 1) {
$where .=","; }
else {
$where .= "))"; } } }
for ($i = 0; $i < count($c1); $i++) {
echo "$c1[$i]"; }
echo "<p>e".$sql.@$where;
0598nobodyさん2007/09/02(日) 18:38:39ID:SjqAaNKw
↑よろしくお願い致します。
0599nobodyさん2007/09/02(日) 18:44:42ID:???
何が上手くいかないんだよ
何を教えてほしいんだよ
ひどい質問だ
0600nobodyさん2007/09/02(日) 18:46:15ID:???
とりあえず、inputのvalueを改ざんされて
" 1 )); delete * from hoge; --"
とか送ってこられたら楽しいことになるぜ。へっへっへと
関係ないことを指摘しておく。
0601nobodyさん2007/09/02(日) 18:47:16ID:???
@$_POST["c1"];
.@$where;

何言語?
0602nobodyさん2007/09/02(日) 18:49:26ID:???
>>586
array_map
■ このスレッドは過去ログ倉庫に格納されています