トップページ⇒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カテゴリ)の各スレで
0528nobodyさん2007/10/29(月) 13:58:51ID:???
>>527
それって人に聞かなきゃ分からない話か?
それとも何でも人に聞かなきゃ物事を進めれない人?
「一年間トイレに行ってないのですがやはりトイレは行ったほうがいいでしょうか?」
こんなこととか聞く人かな?
0529nobodyさん2007/10/29(月) 13:59:28ID:???
>>527
あ。本の宣伝だったのね・・・・
0530nobodyさん2007/10/29(月) 14:06:22ID:???
>>529
宣伝じゃないよ!

>>528
どうして「?>」で閉じてないけど、どうしてこれでいいのか分からなかったんです。
私が知っているPHPは「?>」で閉じるものだ、って理解していましたが
こういう本を読んでみたら?>で閉じてないからどうしてかなと思ってですね。

トイレでもなんでも聞きますんで、教えてください。
0531nobodyさん2007/10/29(月) 14:18:29ID:???
>>530
省けるか省けないか
<? phpinfo();
としてみれば分かるだろう。
それともここの人にそれをやって俺様に報告しろってことか?
0532nobodyさん2007/10/29(月) 14:19:41ID:???
たまに著者もここみて宣伝にくるから気をつけろよ初心者ども
売れない本=わかりずらい本
0533nobodyさん2007/10/29(月) 14:27:21ID:???
わかりずらい(←何故か変換できない)
0534nobodyさん2007/10/29(月) 14:28:44ID:???
>>531
そうでしたね。
すいませんです。
ありがとうございました。

>>532
まじで宣伝じゃないって!

でも?>を省くなんて、入門本としてはイクナイと思う。
普通は<?php 〜 ?>って書くもんね。
0535nobodyさん2007/10/29(月) 14:29:00ID:???
googleで PHP 閉じない
で検索するだけで、大量の情報を得られるだろ
んなことを、しれっと質問するから宣伝乙
っていわれるんだバカやロー
0536nobodyさん2007/10/29(月) 14:34:36ID:???
なんか盛り上がってる奴がいるなあ
0537nobodyさん2007/10/29(月) 14:37:11ID:???
>>530
PHPってのはもともとHTMLがあって
その一部にPHPコードを埋め込むというもの。

つまり、
<html>
<?php 〜〜〜 ?>
</html>

とあったとき<?php 〜〜〜 ?>の外側の<html>、</html>が”出力”される。

もし<?php 〜〜〜 ?>の外側にスペース・改行があったとしたら・・・。
<?php の前にスペース・改行があったらすぐに気づくが、
?>の後にスペース・改行があっても気づかないもの。

その場合に余計な空白が出力されてしまうことになる。
これが問題ない場合もあるが、出力された文字をデータとして扱う場合に
問題が出ることもある。そのため?>を省いており、
また、省くことができる仕様になっている。
0538nobodyさん2007/10/29(月) 14:38:19ID:???
>>535
いや、その検索ワードはちょっと思いつかないよ。
タネを知ってたら思いつくだろうけど。

あと、スレタイが「くだらない質問〜」って書いてあるからいいかなと思ったんだけど。

それにしても?>を意図的に書かないって言うテクがあったんですね。
知らなかったヨ。

ってことは、あの本は良い本ってことで。
(宣伝じゃないよ)
0539nobodyさん2007/10/29(月) 14:38:32ID:???
PI閉じタグ直後の改行は削除される仕様です
0540nobodyさん2007/10/29(月) 14:40:32ID:???
>>537
詳細サンクスです。
今回の件はとても勉強になりました。
スレ汚しすいませんでした。
0541nobodyさん2007/10/29(月) 14:41:07ID:???
すまん。俺も悪かった。
0542nobodyさん2007/10/29(月) 14:44:37ID:z+kol6j9
call_user_func_array()とcall_user_func()の違いがわかりません。
マニュアル見ても同じような気がするんですが、違うものなんでしょうか?
0543nobodyさん2007/10/29(月) 14:46:43ID:???
>>542
引数の数が不明だった場合に_arrayを使う
0544nobodyさん2007/10/29(月) 14:58:17ID:/8Ez3TkO
PEARって自動的にエスケープしてくれるもんだと思ってたorz
autoExecuteのみ必要に応じてエスケープしてくれるのか・・・
普通にSELECTするときは自分でエスケープしないといけないんですね
0545nobodyさん2007/10/29(月) 15:11:43ID:???
データベース使うなら、PEARなんか使わずに
素直にフレームワーク使ったほうが良い
0546nobodyさん2007/10/29(月) 16:26:46ID:???
>>540
zendのコーディング規約に書いてあるよ
0547nobodyさん2007/10/29(月) 16:43:06ID:ugb+n0gS
内部エンコードはinternal_encodingですが
表示用エンコードは何ですか?
変数名で迷ってます
0548nobodyさん2007/10/29(月) 16:51:06ID:???
not_internal_encoding
0549nobodyさん2007/10/29(月) 17:04:51ID:???
特定ディレクトリの中のファイル全てを削除する方法を教えて下さい。
05503162007/10/29(月) 17:19:32ID:???
PHPが表示されないのは、以下が原因だったようです。
×<? phpinfo(); ?>
○<?php phpinfo(); ?>
ttp://blog.codezine.jp/editor/2007/05/phpinfo.php
PHPのどこかのバージョンからか、変更になったようです。
0551nobodyさん2007/10/29(月) 17:21:27ID:???
>>549
ここはプログラムを組む人用のスレなので、丸投げなら他へどうぞ
05526282007/10/29(月) 17:42:19ID:???
php からMYSQLを操作しますが
updateクエリーを実行結果を取得するのって
mysql_fetch_arrayとかmysql_data_seekとかで取得できないんですけど
取得できる関数ってありますか?
updateしてからselectクエリーを実行して結果を取得しないといけないんですか?
教えてください偉い人
05535522007/10/29(月) 17:44:42ID:???
補足
updateしたレコードを取得したいんです
0554nobodyさん2007/10/29(月) 17:46:29ID:???
>>552
>SELECT, SHOW, DESCRIBE や EXPLAIN 文、その他結果セットを返す文では、 mysql_query() は成功した場合に resource を返します。
0555nobodyさん2007/10/29(月) 17:47:27ID:???
>>553
mysql上で送るクエリーが分かってれば、それを送るだけだよ。
0556nobodyさん2007/10/29(月) 17:50:21ID:???
>>316
そ、それは、ショートタグ可否のデフォルト設定の違い
なだけでは?
05575522007/10/29(月) 17:50:49ID:???
>>555
レコードをupdateでクエリーを送ってから、selectでクエリーを送って結果を取得するので?
あたま悪くてスマソ
0558nobodyさん2007/10/29(月) 17:56:01ID:0Yij708s
>>557
それでOK
05595522007/10/29(月) 17:56:47ID:???
なるへそ
面倒だな
ありがとうございます
0560nobodyさん2007/10/29(月) 18:07:13ID:???
>>559
面倒だと思ったところは関数作って使いまわしできるようにするといいよ
0561nobodyさん2007/10/29(月) 18:52:59ID:???
updateで返ってくる値なんて行数だけだろ。何言ってんだか。
0562nobodyさん2007/10/29(月) 20:10:23ID:???
sqlite3で作ったデータベースなんですが、
<?php
$db = sqlite_open('zip.db');
?>
を実行すると
sqlite_open(): file is encrypted or is not a database
と出て実行できません。
どうすれば回避できるでしょうか?
0563nobodyさん2007/10/29(月) 20:33:39ID:???
書かれている通りです
0564nobodyさん2007/10/29(月) 21:18:50ID:???
精子表現について質問させてください。
精子を精製してチンコに返してやりたいのですが、
たまに不純物が混じるので精子のチェックをしたいです。
どのように書いたらいいでしょうか?
0565nobodyさん2007/10/29(月) 21:33:30ID:???
↓ってどう?
ttp://www.hkvstore.com/phpmaker/
0566nobodyさん2007/10/29(月) 21:58:04ID:???
使ったこと無いけど$99の割にはしょぼい気が・・・Cakeでよくね?
0567nobodyさん2007/10/29(月) 22:07:03ID:???
オープンソースのFW使えって話だな
05685222007/10/29(月) 22:32:40ID:???
>>525
ありがとうございます。

> Model1::select('Model1');

これがちょっといけてないので、Model1::select(); と書ける魔法なんかないでしょうか。
0569nobodyさん2007/10/29(月) 22:55:24ID:???
FWは自分で書くものだよ。ウシシ
0570nobodyさん2007/10/29(月) 22:58:17ID:htv8blfh
>>563
>書かれている通りです
書かれている通りとは?
0571nobodyさん2007/10/29(月) 23:24:01ID:???
>>568
よく出る話題だがbacktrace()からコールしたクラス名得て>>525的にやるくらいしかない

サブクラスでselect()を再定義して、テーブル名を指定してparent::select("table name") のように
すれば表記上は Model1::select() と出来るけど、、、

やはりテーブル名をクラスメンバとして ModelObject に結び付けてるのがおかしいのでは、、、
サブクラスで再定義したいのに、親クラス固有のメンバを参照するような設計になってて矛盾がある
0572nobodyさん2007/10/29(月) 23:37:42ID:???
その辺PHPは練りこまれてないからな。
へたにstaticとか使うとOOとしてはアレ?ということになりがち。
0573nobodyさん2007/10/30(火) 00:18:14ID:+WynKem6
500KB〜1MBぐらいのテキストファイルを100KBぐらいに分割して
表示したいんですが、どうすればよいでしょうか?
0574nobodyさん2007/10/30(火) 00:27:23ID:???
fseek()
0575nobodyさん2007/10/30(火) 00:52:13ID:???
だからオブジェクトにしてsingletonにしてだな
0576nobodyさん2007/10/30(火) 01:10:13ID:???
じーさんそれはさっきも聞いたよ
0577nobodyさん2007/10/30(火) 01:11:48ID:???
夕飯はまだかのー
0578nobodyさん2007/10/30(火) 01:38:57ID:???
おじいちゃん、それはマウスでしょ!
05795222007/10/30(火) 01:40:24ID:???
>>571
>やはりテーブル名をクラスメンバとして ModelObject に結び付けてるのがおかしいのでは、、、
>サブクラスで再定義したいのに、親クラス固有のメンバを参照するような設計になってて矛盾がある

そうなんですかね。RubyやPythonではこれがふつうの設計方法なんですよ。
Model1::select()を呼び出したときに、ModelObject::select()が実行されるのはPHPでも一緒なんですけど
PythonやRubyではちゃんとModel1のクラス変数(またはクラスインスタンス変数)が参照できるんですよ。
おんなじようにPHPでもできるだろうと思ってたんですが、スマートにはいかなそうなので、なんか違う方法考えます。
0580nobodyさん2007/10/30(火) 01:49:18ID:???
>>579
取得する部分をメンバじゃなくメソッドにしちゃえば?
と適当に言ってみる
0581nobodyさん2007/10/30(火) 01:50:20ID:???
>>579
それは知ってるが、普通の実装じゃないよ
クラスメンバの原義を考えれば当然
0582nobodyさん2007/10/30(火) 01:53:06ID:???
手段と目的がひっくり返りつつあるなw
0583nobodyさん2007/10/30(火) 01:57:49ID:???
そろそろstaticの動作に対する誤解もFAQしていいんじゃないか。staticはあくまでstaticでしかないのだと。
0584nobodyさん2007/10/30(火) 02:03:05ID:???
Modelを自前で書いてるのがイミフだが、RubyやPythonでやれよ
PHPなんか使えなくても不自由ない
0585nobodyさん2007/10/30(火) 02:16:02ID:???
Unicode対応って何がうれしいんですか?
0586nobodyさん2007/10/30(火) 02:30:34ID:???
>>585
むしろしばらくは混乱するんじゃないかなあ
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内のグローバル変数にしてゴニョゴニョーって。できないかな。
■ このスレッドは過去ログ倉庫に格納されています