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

このエントリーをはてなブックマークに追加
952nobodyさん:2011/11/28(月) 01:02:08.85 ID:FBsM2dj0
PHPで商品管理ツールを作っているんですが、設計でどうしようか悩んでいます。
商品が1・2・3・4・5・6・7・8・9と9個あった場合

商品カテゴリA
1・3・5・7・9
商品カテゴリB
1・2・3・4・5
商品カテゴリC
2・4・6・8

とカテゴリを複数登録することができます。
商品ごとにウェイト付けをしてるんですが、並び替えをどうしようか迷ってます。
ツールで、カテゴリ毎に商品の並び替えをする場合、どのようにしたらいいとおもいますか?

スレチだったらすいません。よろしくお願いします。
953nobodyさん:2011/11/28(月) 01:14:26.13 ID:???
>>952
テーブル設計が聞きたいの?
954nobodyさん:2011/11/28(月) 01:15:29.41 ID:0WCVNoA5
>>951
どうやってやるの?

webサーバーでlistenしてアクセスがきたらfork

forkした後に、URLをパースして、目的のファイルを探した後に
実行ファイルのパスと実行結果をphpプロセスとパイプで共有することになる
んでしょうか。

この場合、phpは常駐してイメージではforループで待ち受けている感じになるの?
955nobodyさん:2011/11/28(月) 01:21:48.16 ID:HiuRKhp3
$size=@filesize($upload_name)/1024;$size=round($size);
というように1024で割ってKBにしてますが、
1024で割るのであってますよね?
956nobodyさん:2011/11/28(月) 01:22:01.41 ID:???
それ結局リクエストごとにプロセス起動してるじゃん
957nobodyさん:2011/11/28(月) 01:24:08.71 ID:???
この前から知ってることを質問してるアフォがいねぇか?
958nobodyさん:2011/11/28(月) 01:34:04.00 ID:0WCVNoA5
>>956

よくわからないのですが、phpってC言語を利用して構文解析を行って
その結果を実行して標準出力する訳ですよね

こいつをリクエストごとに"起動して終了"という一連の動作を省略させて
使い回しを行うには、どうすればいいのでしょうか?

小生はあまりプログラムが得意ではありません。ましてOS周りには疎いので
伝わりにくいかと思いますが、お願いします。
959952:2011/11/28(月) 01:38:18.80 ID:FBsM2dj0
>>953
設計というか、アルゴリズムに近いですかね。
カテゴリA内をツールで順番代えたら、カテゴリBと重複しているものは、並べ替えの影響をどうしようかなとか・・・
という感じです。
960nobodyさん:2011/11/28(月) 02:13:46.61 ID:???
優先順位付けを行えばいいのでは?
自動で決めたいってならカテゴリ登録数が少ないやつを上位にするとか
(少ない=その商品との関連が強いということだから)
961nobodyさん:2011/11/28(月) 02:25:22.15 ID:???
>>959
それは、どうしたいかによると思うが・・・
962nobodyさん:2011/11/28(月) 05:05:54.70 ID:???
>>958
リクエストごとに、リクエストされたphpを解析して結果を返せばよくね
apacheはhttpdプロセスを複数起動していて、各子プロセスはシングルスレッドで動いてると思うよ
963nobodyさん:2011/11/28(月) 05:23:45.45 ID:???
スレ違いだけど、思ったより簡単に作れるんだな
http://codezine.jp/article/detail/2502
964nobodyさん:2011/11/28(月) 08:17:53.50 ID:7HJ2BA72
PHPの問題かどうかわからないんだけど
あるURLに、GETではアクセスできるけどPOSTでアクセスすると404になる
何故だかわかりません
Apacheのログ見ても普通に404になってて、エラーログなし

何が起きてるんでしょうか…
965nobodyさん:2011/11/28(月) 09:31:58.84 ID:???
GETで何もないときに、存在しないページに飛ばすだけでそうなるな
966nobodyさん:2011/11/28(月) 10:32:53.78 ID:HiuRKhp3
「php」って名前のリア充感とオサレ感は異常。
プログラミング言語で一番のリア充が使う言葉のような
響きがあると思います。みなさんどう思いますか?
967nobodyさん:2011/11/28(月) 11:09:38.61 ID:???
つphp研究所
http://www.php.co.jp/

おっさん臭ささしかしない
968nobodyさん:2011/11/28(月) 11:22:33.03 ID:???
ネタにマジレスw
969nobodyさん:2011/11/28(月) 11:50:37.98 ID:???
え?
970nobodyさん:2011/11/28(月) 18:39:46.51 ID:HTuNqc32
php関連でオススメの本とかってないですか?
971nobodyさん:2011/11/28(月) 18:40:39.92 ID:HTuNqc32
あ、宣伝だとあれなんで
どういうところがいいとかも言ってくれるとうれしいです。
972nobodyさん:2011/11/28(月) 18:49:57.39 ID:???
>>971
K&R
973nobodyさん:2011/11/28(月) 19:17:06.30 ID:???
webフレームワークデザインみたいな本ないかねえ・・・
974nobodyさん:2011/11/28(月) 20:23:41.64 ID:???
>>971
このスレ的にはphpマニュアル>>>phpの書籍
って感じでphpの本なんて住民が徹底的にdisってるからな。
君がphpをどの程度理解してるかでも変わってくる。
phpの初心者向けの本なんて、htmlの説明して、webサーバの
アパッチ、AN HTTPD(1.42p)、xampp、mysqlの説明で1/4〜1/3
くらいページ取ってるしな。
975nobodyさん:2011/11/28(月) 20:45:46.38 ID:FBfO9m/G
levenshtein()はマルチバイトには対応していないようですが、ライブラリだとか何かいい方法とかありませんでしょうか?
976nobodyさん:2011/11/28(月) 21:31:08.85 ID:???
>>975
レーベンシュタイン距離の計算アルゴリズムは各所で入手できるから
関数を自作するのがいいんじゃね。
つーかプログラマならそれぐらいやれ。ライブラリばかりに頼るな。
977nobodyさん:2011/11/28(月) 22:30:17.76 ID:???
mb_levenshteinで検索
978nobodyさん:2011/11/29(火) 02:01:12.98 ID:???
車輪の再発明はご遠慮願います
979nobodyさん:2011/11/29(火) 03:48:19.96 ID:???
児童ポルノ画像を集めるためphpを勉強して
ケータイサイト作って、貼られる画像を保存してる
変態友人がいる。
980nobodyさん:2011/11/29(火) 04:12:11.75 ID:???
俺も似たような目的で無料掲示板サービスを運営してたな
携帯持ってなかったのに携帯3キャリアとPCで絵文字相互変換ライブラリを書いた
ガキどもが「絵文字使えねーし」って騒いでたらデバッグしてたw
981nobodyさん:2011/11/29(火) 06:58:15.04 ID:???
>>979
法整備進んでなかった数年前ならまだしも
もうそれ逮捕されますから
通報しとけ
982nobodyさん:2011/11/29(火) 10:00:54.03 ID:WD7XMt4a
.htaccess、configファイルの設定など、
ローカル側とサーバー側で 設定が違う場合
いっぺんにアップしたりダウンしたりすると、
誤動作を起こしてしまうことがありますが、
この差を意識することなくアップしたりダウンしたりする
うまい方法はないですか?
983nobodyさん:2011/11/29(火) 10:27:36.46 ID:???
FTPソフトで設定ファイルはアップ・ダウンしないよう除外設定すれば?
984nobodyさん:2011/11/29(火) 13:19:08.42 ID:pb/9Q2Ix
$tab = (isset($_SESSION['tab'])) ? $_SESSION['tab'] : '';

この一行で?はどんな役割をしているのですか?
985nobodyさん:2011/11/29(火) 13:27:12.16 ID:???
$_SESSION['tab'] があるかどうかチェックしてる
986nobodyさん:2011/11/29(火) 13:27:30.20 ID:???
>>984
三項演算子
987nobodyさん:2011/11/29(火) 13:42:39.53 ID:???
phpの初心者向けマニュアルは、Cを知っている前提で書かれているものばかり
>>971 さんお薦めのK&Rとか、Cの本を読んでからじゃないと
何が何だかわからないw
988nobodyさん:2011/11/29(火) 14:52:58.58 ID:???
>>987
PHP勉強するのにCの知識は必要ないと思うけど。ポインタの概念とか不要だし。
初心者向けのPHP本を読んでも理解できない人はきっとプログラミングに向いてない。
そういう人はN88BASICから勉強するのを勧める。
989nobodyさん:2011/11/29(火) 17:43:11.35 ID:???
phpマニュアルがわからないっていうなら何読んでも理解できないだろ
関数リファレンスの読み方がわからなかったけどそれも慣れの問題
990nobodyさん:2011/11/29(火) 17:49:21.36 ID:???
何でもいきなり読んだだけじゃなかなかわからんよ
やってみないとな。
991nobodyさん:2011/11/29(火) 18:06:34.98 ID:dAGutuld
【PHPのバージョン】5.2
switch(true){
case strcmp($param,'a') == 0:break;
case strcmp($param,'b') == 0:break;
default:break;
}
$paramに何も入っていない時に、defaultに飛ばしたい
・if文[if(isset($param)){swicth(true){〜}}else{〜}等]
・isset($param) && strcmp($param,'a')
・関数
これらを使用せず、エラー表示(Notice: Undefined index、レベル下げ×)
させずにdefaultに飛ぶ簡潔な書き方はありませんか?
992nobodyさん:2011/11/29(火) 18:08:28.53 ID:???
PHPはC++の簡易版、スクリプト化といえる。
993nobodyさん:2011/11/29(火) 18:20:10.53 ID:???
>>991
ありません。
994nobodyさん:2011/11/29(火) 18:45:15.71 ID:???
>>993
ID変わりましたが991です
諦めてisset($param) && を使うことにします
回答ありがとうございました
995nobodyさん:2011/11/29(火) 19:25:01.74 ID:???
switch(true){
case isset($param) && strcmp($param,'a') == 0:break;

まさかこうしたんだろうか…
996nobodyさん:2011/11/29(火) 19:50:35.59 ID:???
>>988
ポインタ以前の話で
初歩的なことで言えば、逐次処理、ループ、条件分岐なんかは
Cの初歩の本の方が詳しく解説しているのに対して、PHPでは知ってて当然になってるし
関数の使い方も、Cで学んでいることが前提になっている(引数の渡し方、受け取り方など)
挙句の果てに、C言語では○○に相当するとか、C言語で言うところの○○であるとか
初心者向けには全然解説になってない解説が書いてあったりw
PHPの本を読んでもちんぷんかんぷんだったけど、Cの初歩の本を読みながら
簡単なテキストエディタくらいが書けるようになってからPHPに戻ったら
スラスラ書けたし、マニュアルもすんなり入ってくるようになった
オブジェクト指向的な作り方も、C++がちょっと書けるようになってから戻るとマジ捗る
歴史が古いから、解説できる人材が多いからなんだろうか?
997nobodyさん:2011/11/29(火) 19:51:57.95 ID:???
>>995
そのまさかだ 俺の頭で他の方法になるとswitchの前にifしか出てこない
if(isset)の分岐はelseとdefault両方に同じコード書くことになる
それなら面倒でもisset($param)をcaseに入れてdefault一つに纏めようかと

それかswitchの前にif(!isset($param)){$param = null;}も考えていた
998nobodyさん:2011/11/29(火) 19:58:14.43 ID:???

http://hibari.2ch.net/test/read.cgi/php/1322564127/

>>980はちゃんと立てるか他のやつ指名しようぜ
999nobodyさん:2011/11/29(火) 21:38:51.60 ID:???
そんなミクロなところにこだわって意味あんの
1000nobodyさん:2011/11/29(火) 21:53:28.42 ID:???
>>998
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。