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

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

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

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

◆質問する時の注意
・ sage進行(メール欄にsageと記入すること)「sage進行」とはスレを目立つ上部に上げないことによって、荒らしが発見できないようにすることです
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
・ 書き込むときには、「公式マニュアル、リファレンス本は読みました」と明記すること
(でないと、公式マニュアル読めと煽られます)

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

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
・質問者が「公式マニュアル読んだ」と書いていないからといって、
公式マニュアルに書いてもいないのに、公式マニュアルよめと適当なことを言わないこと。
質問者は公式マニュアルを読んでいるかもしれない。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0587nobodyさん2007/10/30(火) 02:47:58ID:???
>>580
PHPのクラスメソッドから他のクラスメソッドを呼び出すには、クラス名を指定する必要があるから、うまく行きません。

>>581
普通の実装じゃないといいきる理由は?
>クラスメンバの原義を考えれば当然
これってJavaでのクラス変数のことをいってるのかもしれないけど、PythonでもRubyでもクラスインスタンス変数というのがあって、これを使うと「クラス変数なんだけどクラスごとに別の値を取れる変数」が使える。
これが使えるなら使った方が自然な設計ができますよ。
Model1::select() はインスタンスメソッドではなくクラスメソッドにすべきだから(だってインスタンスを取ってくるメソッドだからね)、select()が使う変数はクラスに対して設定する必要がある。
だからテーブル名はクラス変数(またはクラスインスタンス変数)で設定したい。
それ以外にいい方法があるなら教えてください。

>>584
他の言語でできてPHPでできないことがあったからって、なんでこんなこというかな。
ここってPHPの質問するところでしょ?PHPでできますかと聞いて、できないと答えた、ただそれだけでいいのになんでこんなひがみが出てくるの?
だれもPHPを非難してないでしょ?質問の意図を説明するために他の言語を例として出したまでなのに、すぐ被害妄想になるやつ大杉。できないならできないって答えて、そうですかで終わりじゃん。
0588nobodyさん2007/10/30(火) 02:53:26ID:???
>>587
いや、自分でstaticって指定してるやん・・・どうしたの自分
0589nobodyさん2007/10/30(火) 02:58:50ID:???
だいたいPHPどうのっていう問題じゃないでしょ
コードが異常
もっと”まとも”なコード書いてください
0590nobodyさん2007/10/30(火) 03:03:31ID:???
>>586
日本語はmbstringが統合されるだけでしょ?
既存スクリプトのリテラルの変更とか必要になるのカナ
0591nobodyさん2007/10/30(火) 03:07:20ID:???
>質問の意図を説明するために他の言語を例として出したまでなのに

これが蛇足ってやつだね

>できないならできないって答えて、そうですかで終わりじゃん。

で、しっかり自己矛盾してるし。当の本人が終わらせる気まるで無し
0592nobodyさん2007/10/30(火) 03:14:56ID:???
>>562
SQLite関数は2までしかサポートしていません。
SQLite3を利用したい場合はPDOクラスを使用してください。
0593nobodyさん2007/10/30(火) 03:23:42ID:vbqY4O/s
スレッド式掲示板を作ってます。
ログの分け方なんですが、1ファイル1スレッドでわけるか、
1ファイル複数スレッドにいれるか悩んでます。
アクセスは1day/1〜1000程度に耐えられればいいと思ってます。
レンサバなどで、1スレッドごとにファイルを読み込むのは処理が重くなりますかね?
0594nobodyさん2007/10/30(火) 03:37:10ID:???
管理上分けたほうがいいと思う
読み出しの負荷が気になるなら2chみたく書き込み時に静的ファイルを生成するのがええじゃろ
0595nobodyさん2007/10/30(火) 03:49:48ID:???
最適化なんざ、やむにやまれなくなってからやるもんだ
お前は朝起きたたびごとに鯖が落ちていたことあるんかいと
それも俺は寝てるのに、ロリ野郎が朝までお祭り投稿やってたような状況にな
最初は理想でいいんだよ
最適化なんて考えるな
重いもヘチマもアクセスだないと成立しないんだよ
0596nobodyさん2007/10/30(火) 03:53:59ID:???
まあ10や20ファイル開いても以外に早いもんだよな
それより初心者だと fopen('log1.dat', 'w'); flock(... とかやってファイル壊したりとか
XSS脆弱性のこしてたりしないように気を使ったほうがいいかも
0597nobodyさん2007/10/30(火) 04:06:30ID:vbqY4O/s
ありがとうございます。セキュリティなどに気をつけて自分の作りやすい方法をとってみます。
あと、大抵のレンサバはセーフモードで動いてますよね。
あれおをローカルでも実現したいのですが、safe_mode = onとするだけでいいのでしょうか?
0598nobodyさん2007/10/30(火) 04:11:34ID:???
>>597
何事も実験orドキュメント読む
それぐらい直ぐ解る事だろ

レンサバと設定あわせたいなら
レンサバでphpinfo実行してそれと同じ内容になるようにする
configreオプション出てると思うので同じ内容でインストールする
あとはてきとーに設定をあわせる
0599nobodyさん2007/10/30(火) 04:31:22ID:???
スクリプト言語でファイル操作すると、ファイルが壊れることがあるけど、
データベースでデータ操作しても、ファイルが壊れることはないよな。

それは、どうしてなのかと考えてみたが、
データーベースの場合は、OSの何か特殊なファイル(絶対に壊れないファイル)を
使っているから壊れないのでは、と思う。

しかし、スクリプト言語の場合はOSレベルまでの操作ができないから、
その絶対に壊れないファイルを操作することができず、
結果、スクリプト言語はファイルが壊れるんだろうな。

スクリプト言語ではなく、C言語やアセンブラ言語であれば、
このような操作が出来るはずだが、そうなると、もはやスクリプト言語の
存在意義は、開発の効率性の一点だけに求められるような気がする。

つまるところ、効率性が求められる現代において、スクリプト言語が重用される
理由がここにあることになる。
0600nobodyさん2007/10/30(火) 04:44:29ID:???
>>587
クラスメソッドはメモリの節約になるかもしれないが
実行速度は遅いのでインスタンスメソッドの方が
使用頻度によっては良いよ

つーかDBからテーブル情報とかを取ってくる所のクラスなら
別にインスタンスにしてもシングルトンにしときゃーメモリ節約できるんだし
態々ややこい事しなくてもと思ってしまう

>>599
DBはある程度メモリにプールしてたまに書き込みだから
スクリプトとかでがつがつ書き換えるよりかは
書き換え頻度が低いってのもあるんじゃないかな
ここら辺の構造はうろ覚えなので間違ってたらスマン
0601nobodyさん2007/10/30(火) 05:06:15ID:???
ファイルベースでファイルが壊れるなんて、
アクセスカウンタぐらになもんだろw
0602nobodyさん2007/10/30(火) 05:11:34ID:???
お前らあんま恥ずかしい話するなよ
0603nobodyさん2007/10/30(火) 06:45:32ID:???
すいません、マニュアルみてセーフモードの設定をしたのですが、

>セーフモードはオープンしようとするファイルの UIDの比較チェックを行います。

↑これはfopenで新規作成ができないってことですか?
0604nobodyさん2007/10/30(火) 06:54:03ID:???
>>603
ファイルがユーザのものかチェックするって事です。
セーフモードでもfopenで新規作成できますよ。
0605nobodyさん2007/10/30(火) 06:59:46ID:vbqY4O/s
ありがとうございます。ためしてみましたらfopenはできました。
readfileができなくなるのですね。ありがとうございました。
0606nobodyさん2007/10/30(火) 07:01:24ID:???
モジュールとライブラリの意味教えてくれよ
0607nobodyさん2007/10/30(火) 08:17:40ID:???
>>599
妄想どんだけ〜
0608nobodyさん2007/10/30(火) 08:28:54ID:vbqY4O/s
すいません、ログファイルを一箇所のディレクトリにためる場合、
サーバに負担がかかりますか?
ひとつのディレクトリに300〜2000ファイルとか作成しても耐えられますかね?
あと、レンサバはふつうファイル数の制限ってしてますか?
0609nobodyさん2007/10/30(火) 08:35:42ID:???
>>608
最大で2000ファイルくらいなら全然平気。
平均が2000で最大は万を超えるとか言ったら「分けれ」って言いたくなるけど。
0610nobodyさん2007/10/30(火) 08:41:05ID:???
>>608
余程アホなスクリプト書かん限り2000程度のファイルで負荷なんてかからん。
ファイル数の制限についてはレン鯖によって違うからなんとも言えん。
0611nobodyさん2007/10/30(火) 08:45:30ID:???
そろそろPHPの質問も↓
0612nobodyさん2007/10/30(火) 10:41:26ID:???
>>606
PEARがライブラリでPeclがモジュール(うそ)
0613nobodyさん2007/10/30(火) 10:57:31ID:vbqY4O/s
ありがとうございました。気にしないでディレクトリにファイルを作成することにしました。
0614nobodyさん2007/10/30(火) 13:12:11ID:???
クラスやパターン設計に覚えた頃にはまる罠
これらはあれば便利で使うものなのに、さもその通りに行かないといけないと気がすまなくなってくる
それが実行速度的に悪影響を及ぼし、余計な回り道となっていることに気が付かずにw

そして原点回帰で動けばいいことに気が付いた時、今までの経験を元に綺麗なコードが書ける
プログラムなんてそんなもの

rubyの深さを知って生産性は飾りだと気づいたw
0615nobodyさん2007/10/30(火) 13:16:35ID:???
FW使えっていうやつは何使ってるの?
0616nobodyさん2007/10/30(火) 13:45:18ID:???
Rubyが良いのは認めるけど何も別言語のスレにまで出張して布教活動しないで欲しいww
0617nobodyさん2007/10/30(火) 14:32:42ID:???
FireWall?
0618nobodyさん2007/10/30(火) 14:44:11ID:???
>>616
>Rubyが良いのは認めるけど
布教活動しているのは、お前だ!!市ね
0619nobodyさん2007/10/30(火) 14:44:13ID:???
>>607
どこが妄想か教えてくれ
0620nobodyさん2007/10/30(火) 14:49:29ID:???
>>617
マジレスすると
ふれーむわーく。DWがでてくるからFWといったらアレかと思ってた
0621nobodyさん2007/10/30(火) 15:01:59ID:vbqY4O/s
$_SERVER['PATH_INFO']が使えないサーバがあることをはじめて知りました。
そこで代替策として、$_SERVER['REQUEST_URI']でバラして使おうかと思っているのですが、
$_SERVER['REQUEST_URI']も使えないことってありますか?
0622nobodyさん2007/10/30(火) 15:14:36ID:???
ストリームをdup()したい!
06236192007/10/30(火) 15:31:01ID:???
619は無かった事に(´・ω・`)
0624nobodyさん2007/10/30(火) 15:55:46ID:???
>>621
あるかと聞かれればある
こことか独自のHTTPD使ってる
http://monaneko.jog.buttobi.net/info.php
0625nobodyさん2007/10/30(火) 15:56:21ID:???
>>621
大半のサーバーで返してくれるけど絶対ではない。
0626nobodyさん2007/10/30(火) 16:04:26ID:vbqY4O/s
ありがとうございます。いろんなサーバで動くようにしたいのでもう少し代替策を練ってみます。
0627nobodyさん2007/10/30(火) 16:16:46ID:Rzoy8xmc
php6でnamespaceが実装されるみたいだけど、
これをうまく使って、$this->barの$this->を書かなくするようにできそうだな。
メンバ変数を動的にnamespace内のグローバル変数にしてゴニョゴニョーって。できないかな。
0628nobodyさん2007/10/30(火) 16:28:02ID:???
それは無理かと思うが、確かに$thisは何とかしてほしいよな。
0629nobodyさん2007/10/30(火) 16:29:52ID:???
$thisの強制は間違いがなくていいと思っているが
0630nobodyさん2007/10/30(火) 16:34:08ID:???
明示的な型宣言がないと間違いが起こりやすいだのあると面倒だのって話みたいだ
0631nobodyさん2007/10/30(火) 16:47:47ID:???
PHPしすぎたせいでC#やろうと思ってもサッパリわかんねwww
PHPがいかに簡単すぎるかがわかったよ
0632nobodyさん2007/10/30(火) 17:05:20ID:???
>>627
$thisが面倒って話は分かるが、グローバルに扱えるようにするってのは
global宣言と同じ程度にバグの元になるような気がするよ。
あんまり好ましい方策ではないんじゃなかろうか。いくらPHPでもさ。
0633nobodyさん2007/10/30(火) 17:18:08ID:???
RailsのDHHがPHPからRubyに変更した理由が、$thisがめんどかったってどっかで読んだな。
0634nobodyさん2007/10/30(火) 17:30:12ID:???
2ちゃんの掲示板スクリプトを11時間かけて似せて作ったんだけど効率わるい?
500行ぐらい。
0635nobodyさん2007/10/30(火) 17:42:54ID:UpkPLboM
リクエストの文字コード→内部コードの変換ってどうやってますか?
設定による自動変換は推奨されていないし、
決めうちも必ずしも正確とはいえない。
スクリプト内の判定も、文字数や文字列によって誤判定がありそう。
正確にやろうと思ったら「毎回文字コード判定用のダミーパラメータを付加」
くらいしかないような気がしますが、
そんなことをしているという話も寡聞にして知りません
いったいどうするのがベストなんでしょう??
0636nobodyさん2007/10/30(火) 17:50:37ID:???
ベストは知らないけどmb_convert_encoding使ってて困ったことはないかな
0637nobodyさん2007/10/30(火) 19:14:36ID:???
コンバートはmb_convert_encodingでFAだと思います(それ以外知らないし)
エンコード判定→変換の流れが、どうするのがいいのか分からないんですよねー
試しに文章を一文字区切りにして、一文字ずつ判定ルーチンにかけてみましたが
やはり誤判定する文字がありますね
0638nobodyさん2007/10/30(火) 19:15:06ID:???
mb_detect_encoding?
0639nobodyさん2007/10/30(火) 20:49:56ID:???
>>620
DWはWebオーサリングツールであってフレームワークじゃない。
フレームワークっていうのは簡単にいうと、
MVCモデルを実現するための仕組みのようなもの。
必要なデータベースを作り、簡素なModel View Controllerを記述することにより、
あとはフレームワークが複雑な処理をやってくれる。
たとえばCakePHPのチュートリアルにあるとおり、
数行のコードでBlogが作れるようになっているわけだ。
当然FWで作ったアプリケーションはFW上でしか動作しないので、
サーバにインストールする必要があるが、
実体はPHPなので、PHPが使えるサーバならPHPのFWは使えるということになる。
0640nobodyさん2007/10/30(火) 20:58:53ID:???
>>637
jcode.php
0641nobodyさん2007/10/30(火) 21:01:57ID:7j0uTXdo
変数名を付けたいのですが専門用語がわかりません。

$ipaddr = '192.168.0.1';
$subnet = '24';
$??? = '192.168.0.1/24';

$???は何にしたらいいでしょうか?
別になんでもいいのですが他人が見るのでちゃんとした名前にしたいです。
0642nobodyさん2007/10/30(火) 21:04:32ID:???
>>641
ipaddr_cidrじゃね
0643nobodyさん2007/10/30(火) 21:07:09ID:???
>>642
IPアドレスサイダーって聞いたことないけど、正式な名称ってなんだろ?
0644nobodyさん2007/10/30(火) 21:12:26ID:???
その記法のことをCIDRって言うんだよ
0645nobodyさん2007/10/30(火) 21:14:03ID:???
>639

>620 が言ってるのは FireWorks だと思うんだが…
(もっとも >620 の言う「DW が でてくるから」というのは どこだかわからんが)
0646nobodyさん2007/10/30(火) 21:16:44ID:???
>>641
$networkじゃね?
0647nobodyさん2007/10/30(火) 21:21:29ID:???
>>646
範囲広っ
0648nobodyさん2007/10/30(火) 21:26:16ID:???
>>647
じゃあ
$local_network
0649nobodyさん2007/10/30(火) 21:26:45ID:???
フレームワーク=MVCだと思ってるやつは勉強不足
0650nobodyさん2007/10/30(火) 21:29:26ID:???
cidr表記のipアドレスなんだから
ipaddr_cidrでいいだろ
何が不満なんだ
0651nobodyさん2007/10/30(火) 21:32:36ID:???
$aipi-adoresu
0652nobodyさん2007/10/30(火) 21:38:22ID:???
ipaddrつけなくてcidrで良いんじゃ
0653nobodyさん2007/10/30(火) 21:49:27ID:???
だからcidrは表記法だって。
0654nobodyさん2007/10/30(火) 21:57:09ID:???
結局何に使ってるかよるわけじゃん
ホストアドレスを問題にしてるなら>>648も捨てたもんじゃない
0655nobodyさん2007/10/30(火) 22:03:53ID:???
どーせローカル変数だろうから$wkでいいんじゃね?
0656nobodyさん2007/10/30(火) 22:15:39ID:???
正確にはlocal_networkだがnetworkで問題ない
だってネットワークだシナ
0657nobodyさん2007/10/30(火) 22:17:44ID:???
まあいいや、あとはこっちで

クラス名・変数名に迷ったら書き込むスレ。Part11
http://pc11.2ch.net/test/read.cgi/tech/1191250784/
0658nobodyさん2007/10/30(火) 22:18:49ID:???
変数名とかまよったらこっちへ・・・
http://pc11.2ch.net/test/read.cgi/tech/1191250784/l50
0659nobodyさん2007/10/30(火) 22:19:12ID:???
>>658
m9
0660nobodyさん2007/10/30(火) 22:19:26ID:???
(´・ω・`)
0661nobodyさん2007/10/30(火) 22:29:31ID:???
>>645
なるほどFireWorksか。気づかなかった。

>>649
開発性・生産性・拡張性に優れているものを作ろうとすると自然とMVCになるわけで、
=ではないが実際FWのほとんどがそういったものであるのは事実。
よく説明にある、フレームワーク=土台といっても、全く知らない人間には意味不明だから、
わかりやすく説明するために簡素化しすぎたのは悪かったけどな。
0662nobodyさん2007/10/30(火) 22:31:32ID:???
192.168.0.1 -> internet address or inet
24 -> netmask (0xffff00 のことでしょ)
192.168.0.1/24 -> network address or cidr address
06636412007/10/30(火) 22:44:56ID:???
192.168.0.1 -> IPA
24 -> SNM
192.168.0.1/24 -> NWA

ども!これに決めました。
文句があると思うけどSKN!!
0664nobodyさん2007/10/30(火) 22:46:15ID:???
192.168.0.1/24
こんなの存在しないだろ
192.168.0.0/24ならわかるが
0665nobodyさん2007/10/30(火) 23:02:40ID:???
>>664
どうせマスクしたらいっしょだろうが
0666nobodyさん2007/10/30(火) 23:43:22ID:???
>>664
それは、いわゆるブロードキャストアドレスってやつで、
そのアドレスに向けて打つと、そのネットワークに繋がっている
全てのルーターに到達する。スレチだから、詳しくはネットワーク関係の板でも聞け。
0667nobodyさん2007/10/30(火) 23:45:02ID:???
>>664
TCP/IP勉強white!!
0668nobodyさん2007/10/30(火) 23:45:08ID:???
0はブロードキャストアドレスとは少し違うよ
0669nobodyさん2007/10/30(火) 23:47:31ID:???
少し?全然別物だろ
0670nobodyさん2007/10/30(火) 23:54:32ID:???
お前らも実習でつながらないLanケーブル作ったよな
0671nobodyさん2007/10/31(水) 00:06:37ID:???
>>670
なんかリンクアップしないと思ったらお前のせいか。
0672nobodyさん2007/10/31(水) 00:06:54ID:???
ブロードキャストアドレス、ぐぐったら全然違うしw
ウソつきばっかだな
0673nobodyさん2007/10/31(水) 00:23:01ID:???
>>666
久々に凄いデタラメを見た
0674nobodyさん2007/10/31(水) 00:25:07ID:???
>>670
あるあるw
しらんぷりで放置されたのが溜まってる
0675nobodyさん2007/10/31(水) 00:38:45ID:???
お前らなんの話してるの?
難しくてわからない
0676nobodyさん2007/10/31(水) 00:54:02ID:???
>>675
ブロードウェイに出ているキャストのアドレスはどこかを熱く語っているんだよ。
0677nobodyさん2007/10/31(水) 00:57:17ID:???
さすがに192.168.0.1/24のbroadcastと言ったら192.168.0.255なんでネタですよね。
そもそも192.168.0.1/24はCIDRアドレスの簡易表記法=アドレス/プレフィックス長なわけで。
(プレフィックス長=ネットワーク部のビット数)
プレフィックス長を省略して192.168.0.1と表記した場合はホストアドレスとしての解釈。
0678nobodyさん2007/10/31(水) 01:00:34ID:???
どうこう言うより自分とこのルーティングテーブル見るのが手っ取り早い
0679nobodyさん2007/10/31(水) 04:54:27ID:???
会員システムを作っているのですが、
ログイン済みかどうかの判断は

1. ID/PASSWORDをセッションで持ち歩いて移動毎にチェック
2. 一度認証クリアしたらIDのみセッションに入れて、移動毎にIDセッション持ってるか確認
どっちが良いでしょうか?

1の方が安全な気がうっすらとはしますが。
0680nobodyさん2007/10/31(水) 04:56:58ID:???
パスワードをセッション変数に入れる必要がどこにあるのか、逆に聞いてみたい。
0681nobodyさん2007/10/31(水) 05:46:51ID:???
>>679
IDとPWもどちらもいれるなバカ
0682nobodyさん2007/10/31(水) 06:47:01ID:jWccZHnt
配布スクリプトにコードに「echo "はじめまして";」というのを書いてます。
これはユーザーが書き換えることを想定して、htmlspecialcharsをかませるべきでしょうか?
0683nobodyさん2007/10/31(水) 06:48:37ID:???
書き換えなくても通せ
0684nobodyさん2007/10/31(水) 06:54:27ID:???
>>679
ログインフラグたてりゃいいじゃない
0685nobodyさん2007/10/31(水) 07:03:30ID:???
>>635
俺は決めうち
表示エンコードで返ってくるものとしてそもそも変換していない
ダミーパラメーターは聞いたことはあるからそんなに珍しくはないだろう
0686nobodyさん2007/10/31(水) 07:27:03ID:???
>>683
自称回答者おつかれ
■ このスレッドは過去ログ倉庫に格納されています