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

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

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

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

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

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

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
0404nobodyさん2012/12/08(土) 00:45:40.49ID:???
>>402
配列を渡せるようにしろ

>>403
PHPが欠陥だらけのゴミ言語だから
0405nobodyさん2012/12/08(土) 05:36:41.06ID:???
>>403
どんなプロセスで学習したらそんな質問が出るのか、
それがむしろ気になるわ
04064032012/12/08(土) 10:02:38.58ID:???
>>405
@学習用の本を購入
Aその本に記述しているSAMPLEコードを入力
B模写してるのにエラーが出る。
C原因箇所を修正して、実行するとエラーがなくなる。
D何で全角スペースは駄目なんだろう?   ←今ここ

という流れです。
0407nobodyさん2012/12/08(土) 10:11:29.83ID:???
>>402
(object)array("name"=>"yamada","sex"=>"m")

>>403
全角の空白を使えるのって、C#とかjavacriptぐらい?
perlなんて、文字列中の全角スペースすら後ろのバイトが@なもんだから変数展開がおきたりしてた
0408nobodyさん2012/12/08(土) 11:06:21.83ID:???
>>406
どうせ箇条書きに丸数字を書いてるんだろw
まる1とまる2の間を詳しく
0409nobodyさん2012/12/08(土) 11:14:10.51ID:ZdBWbcl6
>>406

学習机の購入のあたりからお願いします。
0410nobodyさん2012/12/08(土) 11:19:32.68ID:???
>>406
そう定義されてるからだよ
お前の言ってることは
なんで1 + 4 は良いのに1 たす 2 はなんで駄目なんだろうっていうのと一緒
+の読み方なんてplus たす プラス + +とか色々あるんだから一々考慮してられないし誤表記による誤動作が増えるだろ?
ましてや全角スペースなんて対応文字コードが限られてるんだから省かれるのは当たり前
0411nobodyさん2012/12/08(土) 11:49:24.30ID:???
>>403
だって全角スペースっという不正な文字をおいてるんでしょ?そりゃエラーになる。
「printあ("Hello");」がダメだってことは分かる?
0412nobodyさん2012/12/08(土) 13:48:31.39ID:???
全角も半角も空白だ
差別すんなハゲ
04134032012/12/08(土) 13:59:02.36ID:???
>>408-409
何を知りたいのかさっぱりわかんね。

>>410-411
なんとなく分かりました。PHPは全角スペースを一つの文字として認識するからそうなるのかな。
ありがとうございます。
0414nobodyさん2012/12/08(土) 14:24:31.49ID:???
>>413
普通、参考書買ってサンプルコード書く間に
基本的なルールの説明だとかがあるだろうってことだ
初心者向けの参考書ならswitch書かせるまでに説明あるだろ普通。

AVで前戯のシーンをスキップばっかしてるからそういうふうに
途中がごっそり抜け落ちちゃうんだよ。
つまらないと思っても早回しでいいからざっと目を通さないと。
04154032012/12/08(土) 14:37:33.47ID:???
>>414

ところがどっこい、書いてなかったのです。
0416nobodyさん2012/12/08(土) 14:44:03.33ID:???
>>415
なんて本?
0417nobodyさん2012/12/08(土) 14:44:17.69ID:???
どの本か書いてよ
勧めないようにするから
0418nobodyさん2012/12/08(土) 14:44:35.37ID:???
あ、あと、ID出してね
04194032012/12/08(土) 14:58:45.36ID:YANMBvR5
>>416-418

その辺は内緒です。例え叩かれようが、著者に迷惑がかかることはしません。
0420nobodyさん2012/12/08(土) 15:48:29.39ID:???
403の存在が迷惑
0421nobodyさん2012/12/08(土) 17:28:23.94ID:???
言わないということはその著者への濡れ衣が晴れないまま、ということか・・・恐ろしい
04224032012/12/08(土) 17:48:22.42ID:YANMBvR5
>>421
著者への濡れ衣と言うか、どの著者に濡れ衣がかかっているかも分からないんだがら問題なし。
0423nobodyさん2012/12/08(土) 17:49:16.99ID:???
初めてコードを書く人用の書籍ならインデントに使える文字等を記載するだろうけど
少し触った人ならそのレベルの話は書かなくても理解出来るからなぁ

>>403は自分の技量に合わない書籍を買ったんだろう
04244032012/12/08(土) 17:57:57.22ID:YANMBvR5
>>423
そうかもね
0425nobodyさん2012/12/08(土) 19:37:37.56ID:???
>>424
かもじゃなくてそうだね
0426nobodyさん2012/12/08(土) 19:41:01.49ID:???
ちゃんと読んだら書いてあったってオチかw
0427nobodyさん2012/12/08(土) 20:39:04.96ID:???
>>403の存在が迷惑
0428nobodyさん2012/12/09(日) 03:08:25.03ID:ulB7TX+D
webサイト等で広告貼る時に、javascriptと〜.phpのurlで
やってますか、あれって何て手法なんでしょうか?
どうやってやってるのでしょうか?
0429nobodyさん2012/12/09(日) 03:15:36.25ID:???
>>428
非同期通信ってことでいいのかね?
0430nobodyさん2012/12/09(日) 03:20:27.29ID:ulB7TX+D
>>428
たとえば、webサイトに
<script type="text/javascript" charset="euc-jp" src="http://〜ads.php?aid=1234">
</script>
を貼ると広告が表示される仕組みが知りたいです。
0431nobodyさん2012/12/09(日) 03:22:37.34ID:???
javascirptで表示してるだけでは?
0432nobodyさん2012/12/09(日) 03:27:15.78ID:???
>>430
そのphpを直接アクセスしてみたら?
js返してるでしょ
0433nobodyさん2012/12/09(日) 11:28:10.48ID:???
JSの内容をサーバ側で変更したいときだ
0434nobodyさん2012/12/09(日) 23:13:38.53ID:ulB7TX+D
URLを直接開くとdocument.write('<style type="text/css">中略〜table>');
というソースコードでしたこれってechoやprintなどで表示してる
だけでしょうか?
<script type="text/javascript" charset="euc-jp" src="http://〜ads.php?aid=1234">
</script>
のように使う時webサイトhttp://〜ads.phpに負担がかかるのでしょうか?
0435nobodyさん2012/12/09(日) 23:19:19.80ID:???
>>434
PHPの基礎から学んだ方がいいと思うよ
0436nobodyさん2012/12/09(日) 23:20:11.42ID:???
やばい何言ってんのか全くわからない
0437nobodyさん2012/12/09(日) 23:21:43.97ID:???
>>434
色々作ってるうちに、そのうち分かるよ
0438nobodyさん2012/12/09(日) 23:53:56.42ID:???
意味不明
0439nobodyさん2012/12/10(月) 19:39:50.60ID:K34L/8wn
ユーザーデータの保存 取得についてです
今は1ユーザー1ファイルで管理していて、md5(ユーザーid."solt")でファイル名を作ってfile_get_contentsして読み書きしています
大体千人くらい居て1リクエストで読み書きは1回〜数回です

これ、mysqlのDBにした方がよいでしょうか?パフォーマンス的な意味で。
mysqlはデータベース・サーバーと通信しないといけないから、ファイルを直接読み書きするより遅くなるのかな?とも思いますし
現在の1ユーザー1ファイルでも一つのディレクトリに1000個ファイルがあるからちょっと付加がかかるかなとも思いますし
0440nobodyさん2012/12/10(月) 20:19:41.58ID:???
>>439
しろ
いいから問答無用でしろ
0441nobodyさん2012/12/10(月) 20:39:40.87ID:???
>>439
そのくらいならしない方がいいかな
管理対象は少ない方がいい
0442nobodyさん2012/12/10(月) 21:01:30.99ID:???
>>439
連携しないんならそれでいいんじゃない?
でも適切なインデックス付けたmysqlとか早いよ
0443nobodyさん2012/12/11(火) 03:38:32.16ID:???
>>439
書きが数回で1000件ならsqliteがいい。
数回なら関係ないけどfile_get_contentsは遅いよ。
0444nobodyさん2012/12/11(火) 10:17:32.57ID:???
>ファイルを直接読み書きするより遅くなるのかな?

試してもいないことがわかるな。
何で試してないかというとわからないからだろ?
0445nobodyさん2012/12/11(火) 11:45:58.85ID:???
>>444
お前のレスが一番無意味だ
0446nobodyさん2012/12/11(火) 12:16:51.47ID:???
DB使う脳がないならファイルで一生やるしかないな
0447nobodyさん2012/12/11(火) 12:27:29.61ID:???
むしろファイルよりDBの方が導入しやすい
0448nobodyさん2012/12/11(火) 12:55:32.78ID:???
まずDBを7つ集めろ
0449nobodyさん2012/12/11(火) 13:12:18.50ID:???
そしてテーブルを77個作れ
0450nobodyさん2012/12/11(火) 13:15:41.41ID:???
さらに777件INSERTしろ
0451nobodyさん2012/12/11(火) 13:17:49.33ID:???
そして願い事をinsertしたら願い事がかなう
0452nobodyさん2012/12/11(火) 14:15:50.34ID:???
まんこ得たら考える。
千のくらいじゃ何使っても大差ない。
0453nobodyさん2012/12/11(火) 15:09:48.72ID:???
我が名はシェンロン…
さあ願いを言え…
どんな願いも一つだけ叶えてやろう…
なお、[免責事項]もお読み下さい

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
0454nobodyさん2012/12/11(火) 17:58:11.39ID:???
die;
0455nobodyさん2012/12/11(火) 17:59:14.51ID:???
You must die.
0456nobodyさん2012/12/11(火) 18:07:10.56ID:???
>>452
全然変わるよ、いろんな事が
0457nobodyさん2012/12/12(水) 23:31:42.90ID:???
質問です。サークルのゲームを作ってます。
ゲーム本体はphpですが、開発バージョンを公開バージョンに上書きする際、
たまたま誰かがアクセスするとクライアント側でエラーを起こすようです。
てっきり上書中はファイルシステムがロックしていると思ったのですが、
そうでもないのかな?と思いましたが私の勘違いなのでしょうか?

開発バージョンを公開バージョンに切り替える動作はゲームに限らずよくある
と思いますが、どうやって切り替えるのが正しいのでしょうか?

ときどき見る「スイッチ(フラグ)をファイルに置いて切り替える」というのも
そのフラグを格納しているファイルの更新中にアクセスされるとどうなるのか気になるし、
DBにスイッチをおいて参照するというのも考えましたが、オーバーヘッドが好ましくないため
できれば避けたいです。

なお、当方 CentOS5.5 php5.2 apache2 に WinSCP 4.3.5 でアップしてます。
アクセラレータは eaccelerator-0.9.6 を使っています。
0458nobodyさん2012/12/13(木) 00:08:15.55ID:???
切り替え中にエラーをおこしたくないなら、
リリース時に、ファイルをすべて別ディレクトリにアップして
ドキュメントルートのディレクトリのリンクを変えるとかどう?
0459nobodyさん2012/12/13(木) 00:37:33.68ID:???
>>458
さっそくありがとうござい鱒。なるほどー。
その方法は確実である上、バージョン管理もまとめてできる魅力がありますね。
特に開発版を公開版にいちいち上書きしなくても、開発版のディレクトリを
そのまま公開版とすることでいろいろと捗りそうですね。これにしようかな・・・。

ちなみにその場合だと アパッチの restart かけるわけでしょうから、
別ディレクトリにアップしない場合でも 一度 apache を stop させて
変更したファイルをアップして、restart する方法もありえますね。

ほかにうまい考えあります?
0460nobodyさん2012/12/13(木) 02:18:44.56ID:???
>>459
apacheのrestartなしで、シンボリックリンクを変えるだけだから、大丈夫だとおもうよ

元に戻すときに、すぐrollbackできるから
バージョン管理を使ってないならいいかもね。
ホントはsvnなりgitは使った方がいい
0461nobodyさん2012/12/13(木) 02:28:22.15ID:ur824Bvh
あまり詳しくなさそうだから、ちょっと補足。要するにこう。

リリース前
/var/www/html -> /srv/release/2012121210/

リリース後
/var/www/html -> /srv/release/2012121302/

DocumentRootが/var/www/htmlだとしたら、それは変えないから、
apacheのリスタートはいらない。
/srv/release/2012..../が毎回SCPする先。
で、リリースの時にリンクを変える
/srv でも、どこでも、好きなところにreleaseディレクトリ作ったらいい。
ってか、PHPじゃねーな。
0462nobodyさん2012/12/13(木) 04:09:44.97ID:???
>>461
なるほど、apache の設定を変えるわけじゃなくて、シンボリックリンクを変えるのですね。
これならいけそうです。事細かに教えてくださってありがとうございます!

確かに、PHPじゃないね。
0463nobodyさん2012/12/13(木) 05:17:54.82ID:???
>>1
質問する側は勿論、回答する側もルール守れよクソ野郎
0464nobodyさん2012/12/13(木) 11:16:00.74ID:???
アプリの作りによる
Ajaxの有無とか
04654572012/12/13(木) 11:27:25.87ID:???
もう答えもらったからいいです
0466nobodyさん2012/12/13(木) 13:36:33.63ID:SZPRAQln
気軽に質問版では無視されたのでこっちでも質問させていただきます

PHPのコードをデータベースに格納して、必要なときに呼び出して実行しようと思ったんですが、
evalって関数がそれにあたるようです
この関数って速度的に問題とかありますか?
0467nobodyさん2012/12/13(木) 13:43:41.60ID:???
>>466
evalは速いよ?
0468nobodyさん2012/12/13(木) 13:44:46.21ID:???
evalは関数じゃなくて言語構造だ
0469nobodyさん2012/12/13(木) 13:50:17.33ID:???
>>467-468
ありがとうございます。
こういうやり方って大手のサイトでは普通に行われていることなんでしょうか?
それともurlごとにファイルを作ってコードを書く方が一般的なんでしょうか?
0470nobodyさん2012/12/13(木) 13:59:47.14ID:???
evalの速度よりもデータベースにコード取りに行ってる時間の方が遥かに遅いよ
0471nobodyさん2012/12/13(木) 13:59:59.28ID:???
eval自体一般的に使われない

>PHPのコードをデータベースに格納して、必要なときに呼び出して実行しようと思ったんですが
こういうことも普通しない
あらかじめPHPファイルとして用意してincludeなりすればいいだけでは?
0472nobodyさん2012/12/13(木) 14:02:29.85ID:???
evalはバックドアとして使ったりするよね
0473nobodyさん2012/12/13(木) 14:04:31.54ID:???
>>470-472
なるほど。。
やっぱり個別にファイル作ったほうがよさそうですね
ありがとうございました
0474nobodyさん2012/12/13(木) 14:08:15.38ID:???
一瞬ストアドプロシージャのことかと思ったが違うか
0475nobodyさん2012/12/13(木) 14:28:23.77ID:???
フレームワーク使うほうがいいと思うよ
他の言語行くときもフレームワーク使うのが普通だし、PHPで慣れておいても悪くない
0476nobodyさん2012/12/13(木) 15:20:25.05ID:???
evalだとどんなコードも実行するから危険
0477nobodyさん2012/12/13(木) 17:34:02.19ID:w+I6Bs3d
PDOのインスタンスを作成する際のコンストラクタの内容は暗号化されますか?
コンストラクタ内にはユーザ名やパスワードなども含まれていると思うのですが、平文で通信されているのでしょうか?
そうなると外部ホストのMysqlはどのように接続するのが正しいのでしょうか?
0478nobodyさん2012/12/13(木) 18:33:57.34ID:???
PHPもPDO関係ないっすよ?PDOが独自に暗号化してたらMySQL側が困るだろ?
簡潔に答えるとパスワードが平文で送られることはない、だがデータは盗聴可能
それが困るならMySQLサーバにSSL接続すりゃいいじゃん?
0479nobodyさん2012/12/13(木) 19:21:11.74ID:???
平文で通信してまずいのはクライアント側で無線LANを使ってサーバにログインした時だ
0480nobodyさん2012/12/13(木) 19:31:53.04ID:???
盗聴対策、成りすまし対策
0481nobodyさん2012/12/13(木) 20:48:00.85ID:???
>>479
本気でそれだけだと思ってるの?
0482nobodyさん2012/12/13(木) 21:45:39.87ID:???
eval なんて初めて知ったわ。サンクス。
アクセラレータが効かないだろうと思うと速度が不安になる。
0483nobodyさん2012/12/13(木) 21:56:42.27ID:???
>>474
全くスレチだが、最近ストアドファンクションを使うようになった。
phpから複数のSQLを発行するとそれだけで時間がかかっていたが、
1回のSQLで一連の処理を行うようにしたら鼻血が出るほど早くなってびびったわ。
ただ、いまつかってるのが PostgreSQL で、 PL/pgSQLなんだな。
大分慣れてきたけど、思い通りに書きづらい・・・
こんどPL/phpでもインストールしようかな、とおもってるけど、やってる人いる?
0484nobodyさん2012/12/14(金) 20:27:59.49ID:9UEb71lr
scandir()でディレクトリのファイル一覧を取得して画像ファイルだけを抜き出すとき、
スマートに書くには結局、正規表現を使うしかないのかな?

jpg, jpeg, png, gif, bmpだとして、glob()だと大文字小文字を区別するし、
strpos()とかの文字列操作系の関数だと単一の文字列しか渡せないし
0485nobodyさん2012/12/14(金) 20:29:23.48ID:???
質問なのか独り言なのかはっきりしてくれ
0486nobodyさん2012/12/14(金) 20:29:52.11ID:???
拡張子だけで判断sるのか
0487nobodyさん2012/12/15(土) 18:33:12.06ID:???
Warning: Smarty error: problem creating directory '○○/templates_c/%%45/45E' in ○○/Smarty/Smarty.class.php on line 1088
Warning: Smarty error: problem writing temporary file 'templates_c//%%45/45E/○○' in ○○/Smarty/Smarty.class.php on line 1088
Warning: fetch(templates_c//%%45/45E/○○%%index.tpl.php) [function.fetch]: failed to open stream: No such file or directory in ○○/Smarty/Smarty.class.php on line 1251
Warning: fetch() [function.include]: Failed opening 'templates_c//%%45/45E/○○%%index.tpl.php' for inclusion (include_path='.:/usr/local/lib/php') in ○○/Smarty/Smarty.class.php on line 1251

さくらサーバだと何も出ないのですがスマイルサーバ上でこんなエラー出るんですが何が原因かお分かりになりますでしょうか?
Smarty.class.php内を $smarty->use_sub_dirs = false; にすると回避できるとあったのですが変わりませんでした。
0488nobodyさん2012/12/15(土) 19:18:58.43ID:???
さくらのレン鯖はWarning消してるからな
ディレクトリに全角が入ってるんじゃね ’○○’とか
0489nobodyさん2012/12/15(土) 19:34:58.88ID:3wnazU1p
PHPで毎回DB読みにいくと負荷がかかると思いますが、
ちょくちょく更新するページの場合はどうやって対応してますか?

更新するたびにキャッシュを削除するような仕組みがあればいいんですけど
0490nobodyさん2012/12/15(土) 19:37:49.90ID:???
>>489
Smaryのキャッシュ機能とか
0491nobodyさん2012/12/15(土) 19:58:30.88ID:3wnazU1p
>>490
ありがとうございます
smartyのキャッシュってブラウザに残ったキャッシュを使ってるんですか?
それともサーバ側に作成したキャッシュを表示してるんですか?
04924872012/12/15(土) 20:01:53.92ID:???
○○の部分のディレクトリは全角はないですし他のとこもtemplates_c内の%1D/1D910A%ってのなんですよね。
0493nobodyさん2012/12/15(土) 20:02:53.79ID:???
>>492
知らんけどアクセス権限足りてないんじゃない?
04944872012/12/15(土) 20:41:25.25ID:???
エラー元っぽいtemplates_cはとりあえずパーミッションは777に設定したんですが駄目みたいです・・
0495nobodyさん2012/12/15(土) 20:44:31.63ID:???
>>1もよめないからダメなんだろう
0496nobodyさん2012/12/15(土) 20:53:29.60ID:???
777は悪魔の数字
0497nobodyさん2012/12/15(土) 23:44:02.58ID:???
smartyは3からキャッシュやtplファイルの存在をfiletimeで判断しててそれを@で制御してる。
だからnoticeが出る。
display_errorsを0にするか、error_reportingでnoticeを非表示にする。
04984872012/12/16(日) 01:17:41.02ID:???
>>497
すいません。それだと画面真っ白になるだけで・・
0499nobodyさん2012/12/16(日) 04:07:56.16ID:Wv0oIgsD
class aaa
{
private $_var = null;

public static function factory()
{
$obj = new aaa();
$obj->_var = 'bbb';
return $obj;
}

public function __construct($str)
{
$this->_var = $str;
}
}

これのfactory()でbbbを代入できるんだけど、こういう書き方でいいの??
それともコンストラクタに渡して代入する方がいい??
0500nobodyさん2012/12/16(日) 04:19:27.25ID:???
どっちもありだろ。

そもそもこれで実装が終了するわけでもないだろうから、
その後の展開や見通し次第ってところでしょ。
0501nobodyさん2012/12/16(日) 12:57:31.39ID:???
意味わからん
0502nobodyさん2012/12/16(日) 13:42:36.56ID:REzOWsIO
PHPのmysql系の関数はdisplay_errorsをオフにしててもエラーとして出力されてしまうのでしょうか?
0503nobodyさん2012/12/16(日) 14:12:04.04ID:???
$rs=mysql_ホニャララでエラーキャッチ出来なかったっけ。それでもダメならtry{}
■ このスレッドは過去ログ倉庫に格納されています