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

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

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

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

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0177nobodyさん2012/01/04(水) 18:43:44.40ID:???
>>176
【Apache】mod_rewriteについて語るスレ
http://kohada.2ch.net/test/read.cgi/php/1023791370/
0178nobodyさん2012/01/04(水) 18:43:46.89ID:???
>>176
すごくちがいます
失礼ですが、これ以上説明しても理解できるレベルじゃないと誰もが思ってると思います
ですのでもう少し自分なりに学習してください
0179nobodyさん2012/01/04(水) 18:47:20.75ID:???
年末になると決まって変なの湧くな
そして正月終わっても定着しちゃうんだよね┐(´д`)┌
0180nobodyさん2012/01/04(水) 19:32:06.64ID:???
PHPerはアホばかりw
0181nobodyさん2012/01/04(水) 19:32:56.14ID:UqtcALC3
初心者で基礎的過ぎる質問ですがお願いします。

PHPでフォームを作成しているのですが、データの受け渡し方法が分かりません。
「PHPの絵本」という本を見ながらやっているのですが、
<form action="実行するPHPのURL" method="post">と書かれてあります。
この「実行するPHPのURL」というのがよくわかりません。
あらかじめ「実行するPHPのURL」というものを用意しておくということでしょうか?
まだプロバイダー申し込み等していないのですが、それをしてからということでしょうか?
0182nobodyさん2012/01/04(水) 19:40:16.39ID:???
PHP関係ねぇ
0183nobodyさん2012/01/04(水) 19:44:24.86ID:???
>>181
マジで初心者だな。

実行するPHPのURL=hello.phpとする
<form action="hello.php" method="post">
を書いたhtmlを入れてあるファルダにhello.phpを入れる。

例えばhello.phpを
<?php
echo "hello"\n;
?>
としてブラウザには正常に表示されない。
普通はサーバーソフトを自分のpcで立ち上げ、
urlはhttp://localhost/にアクセスする。
0184nobodyさん2012/01/04(水) 19:47:35.63ID:???
>>181
フォームを受け取るPHPのURLってことだよ
そのフォームを表示するhtmlからの相対パスで指定しとけばおk
<form action="form.php" method="post">

実際にフォームの受け渡しについてテストするなら
xamppとか入れてローカルでテストする

ところで今はどうやってphpテストしてる?
コマンドラインならform.phpの最初の方で
$_POST['key'] = "値"; // <input name="key" value="値">
ってしとけばローカルサーバー不要でテストできるね
0185nobodyさん2012/01/04(水) 19:47:47.36ID:???
[hoge.php]
<?php
echo $_POST['hoge'];
?>

[index.html]
<form action="hoge.php" method="post">
<input type="text" name="hoge">
<input type="submit">
</form>

あとは
<body onload="alert('Hello')">
と入力して送信おしてHelloと出てきたら成功です
0186nobodyさん2012/01/04(水) 19:50:21.70ID:???
>>181
<form action="hello.php" method="post>
を書いてあるのがhello.htmlとして
http://localhost/hello.htmlにアクセスするんだよ。
たとえばxamppならC:\xampp\htdocsにhello.htmlとhello.phpを入れとく。
0187nobodyさん2012/01/04(水) 21:16:20.20ID:UqtcALC3
>>181です。
みなさん、ありがとうございます。
教えていただいた通りにやったらできました!!
0188nobodyさん2012/01/04(水) 21:30:54.32ID:???
いいってことよ
0189nobodyさん2012/01/04(水) 23:21:41.75ID:s9lYOiI4
現在のページの下位置って取得できる?javascriptでもいいけど
0190nobodyさん2012/01/04(水) 23:48:16.96ID:???
スクロール位置の事だったら(innerHeight + pageYOffsetとか)
クライアントサイドの仕事だからJavaScriptスレで聞いたほうがいいよ
0191nobodyさん2012/01/05(木) 00:17:41.50ID:YvCiXMC9
phpでmemcachedなど外部キャッシュを利用せずに
アプリケーションスコープ相当を実現することはできますか?
0192nobodyさん2012/01/05(木) 00:39:35.64ID:???
またお前か
0193nobodyさん2012/01/05(木) 00:52:10.76ID:???
>>191
PHPだけじゃ無理なんで、なんか工夫する
0194nobodyさん2012/01/05(木) 00:59:15.22ID:YvCiXMC9
>>193
具体的に方法はありますか?
0195nobodyさん2012/01/05(木) 01:04:20.51ID:???
具体的にどういう設計を考えてるのか説明してくれないとなんとも言えん
0196nobodyさん2012/01/05(木) 01:07:57.28ID:YvCiXMC9
>>195
ケースバイケースになるくらい難しいことですか?
0197nobodyさん2012/01/05(木) 01:10:10.17ID:YvCiXMC9
ちなみに静的ファイルを作るという手法は試しています。
0198nobodyさん2012/01/05(木) 01:16:29.08ID:YvCiXMC9
>>195
他のサーバーサイド言語では主に3つのスコープがあります。
1.リクエスト
2.セッション
3.アプリケーション

私見だとPHPには1,2相当はありますが3がないので困っているのです。
どうしたらよろしいでしょうか?3がないとすると大幅にパフォーマンスが
変わりかねないので悩んでいるのです。
0199nobodyさん2012/01/05(木) 01:20:01.65ID:???
>>198
>大幅にパフォーマンスが 変わりかねないので悩んでいるのです。
ほう、それは具体的にどういうケースでパフォーマンスの低下が発生するの?
実装次第で回避出来るかもしれんよ。
0200nobodyさん2012/01/05(木) 01:25:30.10ID:YvCiXMC9
>>199
サイトへアクセスする全員が利用するデータがDBにあります。
0201nobodyさん2012/01/05(木) 01:27:30.94ID:???
>>194
自分で書いてるようにmemcachedを使うのではだめなの
0202nobodyさん2012/01/05(木) 01:28:43.46ID:???
>>200
ん?DBにあるものでいいのなら別段困ることはないような。すでに外部依存でしょ
0203nobodyさん2012/01/05(木) 01:29:24.23ID:YvCiXMC9
>>199
たとえば一定期間に1000人がアクセスしたとします。
最低1000回DBへのアクセスが発生します。
データは共通なのだから本来であればDBへのアクセスは1回で
よいはずです。
0204nobodyさん2012/01/05(木) 01:32:17.91ID:YvCiXMC9
>>202
基本的にPHPは重いしサーバーのメモリを食うのでできる限り
使用したくないのです。
そこで、jsonなどの静的ファイルに置き換えてjsで読むという方法は
取っていますが、結局サーバーサイドとクライアントサイドで書く必要
があるのでめんどくさいのです。
0205nobodyさん2012/01/05(木) 01:32:25.82ID:???
>>200
それは絶対にDBになくちゃいけないのか?
静的ファイルで出来るなら設計から見直した方がいいだろう。
0206nobodyさん2012/01/05(木) 01:34:30.08ID:???
>>203,204
Webサービス化+キャッシュ(orプロキシ)を使うではダメ?
0207nobodyさん2012/01/05(木) 01:35:26.23ID:???
補足 サービスはJSONまたは部分的なHTMLを返却するものをつくって。
0208nobodyさん2012/01/05(木) 01:42:34.82ID:YvCiXMC9
>>205
使う側の利便性を考えるとやはりDBです。

やっぱり方法は無いんでしょうね。
memcachedと使うという手法は知っていますが、
PHPの仕組み上ではどうしてもサーバーに負荷がかかってしまう。

アプリケーションスコープがある言語にどうにかして切り替えます。
ありがとうございました。
0209nobodyさん2012/01/05(木) 02:35:16.36ID:???
新年早々大丈夫か(精神的に)
0210nobodyさん2012/01/05(木) 02:43:39.22ID:???
>>209
くやしいのうwww、くやしいのうwww
0211nobodyさん2012/01/05(木) 03:05:43.15ID:???
>>203>>204>>208
悪いけど究極的にウンコみたいな設計だな。
根本的におかしい。
どうやったらそんな謎設計になってしまうのか詳しく聞きたい。
0212nobodyさん2012/01/05(木) 03:16:02.50ID:???
>>211
代替案をどうぞ
0213nobodyさん2012/01/05(木) 03:17:13.41ID:???
>>211
代替案を出せなかったら>>211がウンコだなwwww
0214nobodyさん2012/01/05(木) 03:19:25.31ID:???
>>211
さあ、どうでるか。ヒヒヒwwww。
0215nobodyさん2012/01/05(木) 03:23:45.71ID:???
なるほど、つれなかったときはこうなるのか…
0216nobodyさん2012/01/05(木) 03:24:40.47ID:???
>>211
「おかしなコードを書くことを助長する言語」
by まつもとゆきひろ

ヒヒヒwwww。

0217nobodyさん2012/01/05(木) 03:25:36.35ID:???
>>211
なんでおかしなコードになるんでしょうか?
ヒヒヒwwww。
0218nobodyさん2012/01/05(木) 03:25:37.26ID:???
>>212>>213>>214
そうあわてんなって。
こんなウンコみたいな設計で動いてるサイトの詳細ってお前らも知りたくないか?
本人が来たら詳しく聞いてみようぜ。
0219nobodyさん2012/01/05(木) 03:26:40.76ID:???
>>218
もういいから早く代替案を答えて。
ヒヒヒwwww。
0220nobodyさん2012/01/05(木) 03:27:43.85ID:???
>>218
ねぇ、質問していい?
なんどfacebookって今C++になったの?
ヒヒヒwwww。
0221nobodyさん2012/01/05(木) 03:28:57.55ID:???
>>215
そういいながら、釣られたお前。
ヒヒヒwwww。
0222nobodyさん2012/01/05(木) 03:30:09.30ID:???
>>211
代替案まだ?
ヒヒヒwwww。
0223nobodyさん2012/01/05(木) 03:33:34.93ID:???
こりゃ、だめだ。
レベル低すぎ。
0224nobodyさん2012/01/05(木) 03:38:42.21ID:???
>211
「PHPはおかしなコードを助長する言語」
同意だよね。ヒヒヒwwww。
0225nobodyさん2012/01/05(木) 03:39:35.00ID:???
>>220
facebookってCじゃなくてC++採用したんだ?
0226nobodyさん2012/01/05(木) 03:41:49.18ID:???
>>225
HipHop for PHP

言語の選択に間違えたfacebookの苦肉の策。
0227nobodyさん2012/01/05(木) 03:43:26.68ID:???
>>211
ねぇ、まだ?
0228nobodyさん2012/01/05(木) 03:46:05.91ID:???
>>226
あらあらなるほど
ちゃっちゃと作る分にはPHPは楽だからな。
人が集まった時点で作り直せばよかったんだろうけどなぁ。
0229nobodyさん2012/01/05(木) 03:47:09.77ID:???
って、それ自体がfacebookの成果物だったんだな。
無知ですまんかった。
0230nobodyさん2012/01/05(木) 03:50:18.84ID:???
>>226
そんなわけがわからないものを作るよりは
初めからC++で作っとけば良かったんだ。
HipHopにしてもネイティブのC++に比べると
オーバヘッドがあるわけでムダだよね。
0231nobodyさん2012/01/05(木) 03:56:56.20ID:???
>>230
まったくだな

まあこっちのほうが遙かにわけわからないけどねw
>>203
>>204
>>208
0232nobodyさん2012/01/05(木) 03:58:28.05ID:???
>>230
C++で作ったからといって、1000ユニークアクセスに対して1000DBアクセスが発生しなくなるわけじゃあないからな。
なんの工夫もなしにそれは変わることはない
0233nobodyさん2012/01/05(木) 04:44:02.06ID:???
すげー自演だなw
0234nobodyさん2012/01/05(木) 04:50:42.28ID:???
自演としても成立してないよ
HipHopはPHPの開発ツールとしての優位性が強まる、つまり「PHP最強だろ!」って話だからね
PHP憎しで完全に狂ってるけど、はたから見ると面白い
0235nobodyさん2012/01/05(木) 08:46:23.61ID:???
>211
もういいから早く代替案を答えて。
0236nobodyさん2012/01/05(木) 08:57:14.69ID:???
>>234
C++で作ったからといって、1000ユニークアクセスに対して1000DBアクセスが発生しなくなるわけじゃあないのに、
なぜHipHopで「PHP最強だろ!」になるのですか?
0237nobodyさん2012/01/05(木) 09:06:53.72ID:???
>>232
PHPってそんなこともできないの?
0238nobodyさん2012/01/05(木) 09:14:31.17ID:???
一人で一生懸命ごくろうさん
よく死にたくならないなと感心するよ
0239nobodyさん2012/01/05(木) 09:22:13.73ID:???
>>238
もういいから早く代替案を答えて。
0240nobodyさん2012/01/05(木) 11:42:14.54ID:ACIe1UJA
標準関数を自分で定義したものに置き換える方法ありませんか。
0241nobodyさん2012/01/05(木) 11:48:53.94ID:???
PHPのソース書き換えてビルドかな
じゃなければmyTrim()とかmyPhpinfo()みたいにプレフィックスでも付けて差別化するしかない
0242nobodyさん2012/01/05(木) 11:55:13.54ID:ACIe1UJA
ソース書き換えなしで不具合の出る関数の動作を修正したかったのですが。
PHPコードからではできないですか。
諦めて別名でやってみます。
0243nobodyさん2012/01/05(木) 12:05:52.58ID:???
>>230
それはC/C++ソースをコンパイル時にアセンブラ出力して書き換えるようなもの。
無駄をなくすとすれば機械語、アセンブラにたどり着く。
しかし開発効率からそのあたりには手を出さず、PHPやC/C++のコードの範囲でできる事をした方が良い。
0244nobodyさん2012/01/05(木) 12:15:28.46ID:???
いま荒らしてる人ってMatzを「まともと」「まともと」って言ってた人か
Matzも知らないから素人なんだろうと思ってたけど納得だわ>>218
facebook級のサイトのを運営してるSEというなりきり設定がワロタ

PHPの高速化に HipHop vs APC てのがあるみたいだけど
現時点でほとんど性能は変わらないようだし安定性の面でAPCに軍配が上がるのかな。
サクッと作って高速で動かすという技術はPHPが先を行ってる感じ
http://blog.candycane.jp/archives/491
http://dsas.blog.klab.org/archives/51978647.html
0245nobodyさん2012/01/05(木) 12:28:51.85ID:???
HIPHOPの実行ファイルはPHP上で動くんじゃないだろ。
どれだけPHPが高速化できたとしても、リソースの少なさ、速度の速さではネイティブ実行形式が上だろ。
0246nobodyさん2012/01/05(木) 12:43:16.59ID:WqkweKyi
結局のところ、アプリケーションスコープの代替ってみなさんどうされています?
0247nobodyさん2012/01/05(木) 12:50:18.95ID:???
ニートが目覚めたな
0248nobodyさん2012/01/05(木) 12:52:26.30ID:???
いい歳して可哀想なもんやで
0249nobodyさん2012/01/05(木) 12:57:19.29ID:???
Javaで挫折したニートのオッサンだろう
シングルトン・マルチスレッド・アプリケーションスコープ、全部理解してないからな
0250nobodyさん2012/01/05(木) 13:02:42.94ID:???
まぁプログラマーはここにいるおっさんのように池沼になるリスクをはらんでるよな
精神病むには最適な職種と言える
0251nobodyさん2012/01/05(木) 14:48:43.61ID:r8xFdMd/
配列のキー指定で
$ary[expr1 ? expr2 : expr3]ってしたとき
expr3の結果を$ary[]にする方法ってないよね

ちなみにnullや''は空文字列で[]とは違う
0252nobodyさん2012/01/05(木) 14:56:30.73ID:FPSYlk7p
あるソースを読んでいる中で
class SQLというのがありまして

function getRecord($limit = NULL, $offset = 0) {

if ($limit) return array_slice($this->record, $offset, $limit);
else return $this->record;
}

というファンクションがあったんですが、
$this->record;のrecordが何を指しているかがわかりません。
recordてもともとPHPに用意されているファンクションなんでしょうか?
0253nobodyさん2012/01/05(木) 14:57:37.19ID:???
だれか翻訳頼む
0254nobodyさん2012/01/05(木) 14:58:56.94ID:???
class SQLのメンバ
0255nobodyさん2012/01/05(木) 15:09:18.10ID:???
$this->の時点で気付こうよ
0256nobodyさん2012/01/05(木) 15:09:19.83ID:???
一回PHPのクラスで何が出来るか勉強してくるべき
0257nobodyさん2012/01/05(木) 15:20:05.60ID:???
クラスを知らないか、理解していない人の相談なんです。
0258nobodyさん2012/01/05(木) 15:22:06.79ID:FPSYlk7p
すみません。クラスをちゃんと理解していませんでした
class SQLの中にrecordというファンクションがなかったので
もともと用意されている何かだとおもったのですが
ググってもでてこなかったので聞いてみました。

まだよくわかっていないのでちょっとクラスについて調べてきます
0259nobodyさん2012/01/05(木) 15:25:35.51ID:yQXwn+vl
DBを使ったサービス作るんだけど、
DB操作しやすいライブラリとかでおすすめないかな?

プログラム自体は大したことないのに、
テーブルやらカラムやらを大量に作らなきゃいけない予定なんで、
SQLで書くのめんどくさいから、
ソースコードだけで片付くものを探してるとこなんだけど
0260nobodyさん2012/01/05(木) 15:26:13.26ID:???
もっと頭を柔らかくしようよ
$this->recordが必ずしもファンクションとは限らないのにファンクションと決めつけてるだろ
そんなことだといつまでも謎のままだぞ

>if ($limit) return array_slice($this->record, $offset, $limit);
これ見たらあー配列なんだなってわかるし
つーことは、名前からしても$this->recordにはどこかでSELECTの結果かなにかを配列としてセットしてるメンバだとわかるだろう
0261nobodyさん2012/01/05(木) 15:26:51.23ID:???
>>258
recordというデータメンバもないですか。
親クラスがあればそちらにも
02622522012/01/05(木) 15:29:33.28ID:FPSYlk7p
class SQL {
private $count = 0;
private $host = "localhost";
private $error = null;

protected $link = null;
protected $record = null;

function connect() {
$this->link = mysql_connect($this->host, "???", "?????");
if (!$this->link) return false;
if (!mysql_select_db('recnomi', $this->link)) return false;
return true;
}

function disconnect() {
mysql_close($this->link);
}

function getRecord($limit = NULL, $offset = 0) {

if ($limit) return array_slice($this->record, $offset, $limit);
else return $this->record;
}
0263nobodyさん2012/01/05(木) 15:30:55.18ID:???
>>259
そーゆーことならフレームワークのスレへ
ただSQL書かないで最適なクエリを発行することはまず無理だと思う
DB抽象化ライブラリがインデックスまで把握して最適なクエリを発行してくれるものがあればオレも欲しい
02642522012/01/05(木) 15:31:28.29ID:FPSYlk7p
ソースは262なんですけど
5行目のprotected $record = null
で定義しているからしたで使えているということなんですか?;
0265nobodyさん2012/01/05(木) 15:31:53.77ID:???
>>262
>protected $record = null;

メンバとして定義されてるじゃん
0266nobodyさん2012/01/05(木) 15:33:04.94ID:???
>>264
まぁいい
とりあえずクラスってなぁに?どう使えてどう動くの?ってことを30日間勉強して
02672522012/01/05(木) 15:35:46.96ID:FPSYlk7p
そうですか。。。
$this->recordでrecordに$がついてなかったので
ファンクションだと思ってました。。
勉強してきます
0268nobodyさん2012/01/05(木) 15:36:05.47ID:???
>>263
了解
おもしろそうだから、一回自作できるか挑戦して、それでもダメだったらどこかのFW探してみます
0269nobodyさん2012/01/05(木) 15:38:38.34ID:???
>>268
使う機能だけを関数化すればよい。
SQLはコマンドラインでも動作する。難しければそこからやってみてそのあとPHPにするというのもある。
0270nobodyさん2012/01/05(木) 15:44:23.54ID:???
>>269
何言ってるのこのひと
すごく的外れ
02712522012/01/05(木) 15:45:28.44ID:FPSYlk7p
すみません。最後に一個ききたいんですが
5行目のprotected $record = nullでは配列が入っていないとおもうんですが
recordには配列はどうやって入れているのでしょうか?
0272nobodyさん2012/01/05(木) 15:50:04.64ID:???
$this->recordやrecordでソースを検索したら代入しているところが出てくる。
02732622012/01/05(木) 15:51:51.85ID:FPSYlk7p
ありがとうございます。もう一度調べてみます
0274nobodyさん2012/01/05(木) 16:09:56.66ID:???
$this->$recordと記述してしまうと、
$recordという変数を探して、
名無しの変数なんてねえよ。とわめいたり、
素知らぬ顔で空データ返してくれるPHPを見てると
ちょっと萌えるよね。
こんな技法滅多に使わないけど。
0275nobodyさん2012/01/05(木) 16:19:40.25ID:???
自分でフレームワークライクなもの書いたりする場合によく使うよ
/hoge/fugaというアクセスはclass hogeのfugaメソッドを実行とかね
どんな名前でアクセスしてくるかわからないものを一箇所で処理しようと思ったら便利でしょ
0276nobodyさん2012/01/05(木) 16:26:11.82ID:???
つか、>>262のクラスひどくね?w

>if ($limit) return array_slice($this->record, $offset, $limit);
クエリ発行時点でoffsetとlimitつけとけよ…
これごっそりレコード取って後から切り出してるだろ
とりあえずこんなクソコード捨てちまえ
■ このスレッドは過去ログ倉庫に格納されています