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

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

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

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

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

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0778(498===523===525)===(498=523=525)2012/03/14(水) 17:16:18.79ID:suCVTKUm
>>774
JavaでOOPを覚えました。
Javaのオブジェクトツリーが美しくて明確で理解しやすくて好きです。
PHPは語るに値しない気がします。

違いのうちで一番イヤなのは、PHPのシンボルテーブルとJavaのオブジェクト参照です。
http://php.net/manual/ja/features.gc.refcounting-basics.php
0779(498===523===525)===(498=523=525)2012/03/14(水) 17:26:28.21ID:suCVTKUm
>>776
?>[LF][EOF] にしてる。
最後に改行を書かないのはなんか気持ち悪い。そんだけの理由。

>>777
そうですね。
でも仕事ってのは、そんなに自由に選べるもんでもない。
チームを纏めなくてはいけなかったり、他のメンバーができない部分を
やらざるを得なかったり(コードは書けるが、DBやインフラが弱いやつらが多かった)。
ここしばらくは結構自由にやってるけど。
0780nobodyさん2012/03/14(水) 17:29:08.22ID:???
>>779
エディタで見たときに、最後に空行が1つある状態じゃないと気持ち悪いって事かな。
0781(498===523===525)===(498=523=525)2012/03/14(水) 17:37:21.97ID:suCVTKUm
>>780
Windowsのエディタなんかで扱うときに、最後に改行が無いと、
行範囲選択がしにくいってことからかも。
0782nobodyさん2012/03/14(水) 18:05:48.25ID:???
出力開始タグだしな
不要な開始タグって気持ち悪くね
0783nobodyさん2012/03/14(水) 18:22:45.77ID:???
PHPに終了タグは書くな!!!!!!!!!!!!!!!!!
0784nobodyさん2012/03/14(水) 21:13:17.09ID:???
何の終了タグだよ
0785nobodyさん2012/03/15(木) 03:03:13.57ID:???
?>だろ
常識
0786nobodyさん2012/03/15(木) 05:27:55.01ID:potSg07V
データファイルってどうやって置いたらダウンロードされない?

ドキュメントルートより上に置く 以外で。
0787nobodyさん2012/03/15(木) 05:38:43.62ID:???
アクセスさせなくする
0788nobodyさん2012/03/15(木) 06:18:18.99ID:???
PHP関係なくね
0789nobodyさん2012/03/15(木) 06:27:57.09ID:???
       ____
     /      \
   /  _ノ  ヽ、_  \
  /  o゚⌒   ⌒゚o  \  また今日も、自称優秀なPHPプログラマによる
  |     (__人__)    | 職場からの2chへの書き込みが始まるお
  \     ` ⌒´     /
0790nobodyさん2012/03/15(木) 06:49:29.42ID:E3IxfR1a
群馬県高崎市に住む41歳AB型、製造業界で派遣プログラマーの仕事をしているhekenekoこと、黒飛健と申します。
新日本テクトスという会社を追われ、その後どうしてよいかわからなくなりました。
だけど私の大好きな尾崎豊の歌に励まされ、夢であるプロのクリエイターを目指すことにしました。
何度も挫けそうになりましたが、尾崎豊の歌を聞きながら自分を励ましています。
今も尾崎豊の歌のおかげで、夢を諦めずにCGアニメの製作を続けられています。
とりあえず、以下の動画を見てください。一生懸命作ったもので、自分では既にプロレベルの傑作だと思ってます。
できればみなさんのご意見、ご感想を聞きたいです。
新しいラダニアムの翼(new wing of radaniam part �T) .mp4
http://www.youtube.com/watch?v=PRPJ69rVgbE

題名”ラダニアムの翼その1(A wing of radaniam_part�T).mp4”
http://www.youtube.com/watch?v=WTde4RdA5LU
私の世界観の全てを凝縮した力作です。hekenekoワールドをご堪能あれ。
0791nobodyさん2012/03/15(木) 07:56:59.46ID:???
>>786
拡張子を.cgiにする
0792nobodyさん2012/03/15(木) 07:58:58.27ID:???
htaccessの設定次第で意味ないぞw
0793nobodyさん2012/03/15(木) 08:03:13.59ID:???
データファイル名を推測できない名前にする
0794nobodyさん2012/03/15(木) 09:24:05.17ID:???
>>786
WEB-INFでググるといいよ
0795nobodyさん2012/03/15(木) 09:45:49.68ID:???
>>786
自分で鯖建ててるなら方法はある
0796nobodyさん2012/03/15(木) 09:51:57.52ID:???
スレ違いだし、サーバーの種類もわかんないし、誘導もできない。
0797nobodyさん2012/03/15(木) 10:06:29.18ID:???
ANHTTPd
0798nobodyさん2012/03/15(木) 12:05:30.28ID:???
だからWEB-INF使えって。
言語仕様で決められているから使えるよ。
0799nobodyさん2012/03/15(木) 12:07:11.38ID:???
PHPスレでそれはないわ
0800nobodyさん2012/03/15(木) 12:08:27.48ID:???
>>798
スレを間違えましたか?
もしかして書きこみ先はこちらですか
◆JSP◆
http://kohada.2ch.net/test/read.cgi/php/984840356/
0801nobodyさん2012/03/15(木) 13:12:59.87ID:???
>>798
あえて聞くけど、何の言語の仕様で決まってるの?
0802nobodyさん2012/03/15(木) 13:23:46.60ID:???
英語かな
0803nobodyさん2012/03/15(木) 13:26:57.23ID:???
英語の仕様でWEB-INFを使うとファイルをダウンロードされないように出来るらしい
誰か>>802の頭の中を翻訳してください
0804(498===523===525)===(498=523=525)2012/03/15(木) 14:03:47.02ID:r40AKqz2
>>801
Java Servletの仕様 JSR。PHPとは関係ないですね。
0805nobodyさん2012/03/15(木) 14:48:23.69ID:???
ネタにマジレスするとJava版のPHPならWEB-INFが利用できる。
0806nobodyさん2012/03/15(木) 14:53:13.07ID:???
805は何か勘違いしてるようだ
0807nobodyさん2012/03/15(木) 14:55:41.16ID:???
>>804
言語仕様で決められてる言語があるらしいからあえて聞いたんだよ
08088052012/03/15(木) 14:56:04.21ID:???
>>806
どの点が?
0809nobodyさん2012/03/15(木) 15:16:25.75ID:???
phponjavaか
0810nobodyさん2012/03/15(木) 15:18:42.36ID:???
ほとんど同じソースの複数のPHPファイルを
後から1部分だけ修正したいのですが
手作業でやるとすごく時間がかかりそうです。
ループとかで修正する方法を
教えてください。
0811nobodyさん2012/03/15(木) 15:20:45.37ID:???
sed使うとか
0812nobodyさん2012/03/15(木) 15:31:27.38ID:???
>>808
それはあくまで移植した物であってPHPではない
0813nobodyさん2012/03/15(木) 15:38:57.17ID:???
移植とも違うとおもうが、マジレスというより、ネタレスだな
0814nobodyさん2012/03/15(木) 15:44:03.66ID:???
移植じゃないならなんだよwバカじゃないのw
0815nobodyさん2012/03/15(木) 15:48:56.56ID:jMy7vPK6
ffmpegで動画のサムネイルを切り出したいんだが、
PHPで実行すると何にも出力されない。
関数変えたりスクリプトを読み込ませたりしてみたんだがうまくいかん。
PHPからエラーも出力されない。

シェル上では問題ないんだけどなあ。
似たような現象に心当たりがある人、ヒントください。
0816nobodyさん2012/03/15(木) 15:56:21.58ID:???
>>811
ありがとうございます
調べてみます
0817nobodyさん2012/03/15(木) 16:27:22.41ID:VUkqieq6
CSVファイルからfget_csvで1行ずつ配列に代入するとして、
その配列の文字コードを後から変更したいと思います。

一度に大量の文字列を配列に入れると
メモリエラーになるのですが、memory_limitの数値を増やす以外に
解決策はないのでしょうか?
0818nobodyさん2012/03/15(木) 16:50:38.81ID:???
fget_csvは使うな!!!!!!!!!!
0819nobodyさん2012/03/15(木) 16:58:31.10ID:???
>>812
どういう意味?
C言語による実装とJava言語による実装の違いでは?
0820nobodyさん2012/03/15(木) 17:22:26.75ID:???
>>817
どんくらいの容量の食わせてるの?
0821nobodyさん2012/03/15(木) 17:34:31.07ID:???
文字コード変更しなけりゃいいんじゃね
0822nobodyさん2012/03/15(木) 17:35:01.22ID:VUkqieq6
>>820
memory_limitの上限値までです。
現在はパフォーマンス測定みたいなことをやってまして、
1行1000文字でどのくらいまで配列に代入出来るか?をテストしています。
出来るだけどのサーバでも使えるようなソースの書き方をしたいと思い、
memory_limitの設定に依存しないようなプログラミングを勉強しています。

とりあえず、条件としては>>817ですが、メモリ不足に陥らない方法が
あったら教えて欲しいと思い、質問しました。
0823nobodyさん2012/03/15(木) 17:35:46.00ID:VUkqieq6
文字コードは変更するという前提でお願いします。
逆に文字コード変更するなら一旦、配列に代入しなければ行けない
と言う事なら、それで納得します。
0824nobodyさん2012/03/15(木) 17:40:52.25ID:???
何で後出しなんですか?
0825nobodyさん2012/03/15(木) 17:45:51.27ID:???
>>819
おまえと話してもかみ合わないからどうでもいい
0826nobodyさん2012/03/15(木) 17:54:15.76ID:???
>>822
メモリの容量に依存せず大容量ななんらかのものをつかませておきたいなら
自分でPager組んでそっちに逃がすとか、強引だけど、一旦なんらかのDBに逃がしちゃうとか。
当然パフォーマンスはガタ落ちだけど、言ってしまえばメモリを無視するというわけだから
副記憶装置に押し付けるしかないっぺ。
0827nobodyさん2012/03/15(木) 17:56:40.71ID:RuJGZOGk
session_start()やsession_regenerate_id()でPHPが自動生成してくれるセッションIDはどのような規則で作られていますか?
0828nobodyさん2012/03/15(木) 18:16:52.96ID:???
session.c のphp_session_create_id
spprintf(&buf, 0, "%.15s%ld%ld%0.8F", remote_addr ? remote_addr : "", tv.tv_sec, (long int)tv.tv_usec, php_combined_lcg(TSRMLS_C) * 10);
ハッシュ前のベースは、IPと時間と乱数で文字列つくってるだけだね。 
あとは、session.entropy_fileの設定があったら、それもいれてたり
0829nobodyさん2012/03/15(木) 18:19:29.81ID:RuJGZOGk
すみません

http://d.hatena.ne.jp/do_aki/20100319/1269021432

ここに書いてありました
お騒がせしました
0830nobodyさん2012/03/15(木) 18:19:56.79ID:RuJGZOGk
>>828
ありがとうございます!
0831nobodyさん2012/03/15(木) 18:42:10.70ID:VUkqieq6
>>826
つまりテンポラリファイル的なものを作って
メモリ解放するやり方しかないって事ですね。
それなら納得しました。
0832(498===523===525)===(498=523=525)2012/03/15(木) 18:54:35.96ID:r40AKqz2
>>817
ファイルを全部配列に入れるのではなく、一定行数ごとに処理をすればいいだけではないですか。
0833nobodyさん2012/03/15(木) 20:19:25.13ID:HppzpmUE
OSはWindowsです。
PHPでプロセスに駐留するようなプログラムって作成できますか?
出来るならどのへんの関数を使うかや言葉などヒントお願いします。
やりたいことは現状タスクスケジューラで30秒置きに実行しているスクリプトを、
タスクスケジューラを使用しないで行いたいです。
Windowsで自分のPCなのでプログラム実行権限(ルート)はあります。
0834nobodyさん2012/03/15(木) 20:26:04.03ID:???
普通はsocket_系だと思うけど、
無限ループでsleepと処理を30秒おきに繰り返したほうが簡単
0835nobodyさん2012/03/15(木) 20:26:20.02ID:???
>>833
while(true){
〜
sleep(1);
}
とかすればいいんでね?
08368332012/03/15(木) 20:34:33.55ID:HppzpmUE
>>834-835
なるほど。
タイムアウトなしの設定にもできますしループという手もありますね。
socketを見て無理そうならループにしたいと思います。
どうもありがとうございました。
0837nobodyさん2012/03/15(木) 21:04:42.42ID:???
>>835
こういうのやってても問題ないの?
cronみたいにいかないと思ってるけど。
0838nobodyさん2012/03/15(木) 21:05:09.50ID:???
>>837
問題って何が?
0839nobodyさん2012/03/15(木) 21:16:06.46ID:???
>>825
何か気に障りましたか?
0840nobodyさん2012/03/15(木) 21:46:48.36ID:???
>>838
ソースは出せないんだが、プロセス起動したままだと問題あるとか無いとか・・・
0841nobodyさん2012/03/15(木) 21:49:13.40ID:???
windowsならphp-cliを使ってmysql のテーブル自動更新スクリプトは作ったことがある
Win2K+apache それにcli常駐させて2年程無停止でトラブルは出なかった
0842(498===523===525)===(498=523=525)2012/03/15(木) 21:58:19.58ID:r40AKqz2
>>833
タスクスケジューラで済むなら、それが最適。
CLIをループさせるだけでいいなら、それも簡単。

こういうツールもある。
http://pear.php.net/package/System_Daemon
0843(498===523===525)===(498=523=525)2012/03/15(木) 22:02:04.36ID:r40AKqz2
>>840
いろいろ気をつかってプログラムを書かないと、使用メモリーがどんどん増えていく。
0844nobodyさん2012/03/15(木) 22:20:53.68ID:???
中の処理によるでしょ
変数使わなきゃメモリリークしないし
0845nobodyさん2012/03/15(木) 23:06:25.09ID:???
>>822
>>817だと、配列に入れる時点でメモリエラーになっていると読めるんだけど、それであってる?
0846(498===523===525)===(498=523=525)2012/03/15(木) 23:49:05.12ID:r40AKqz2
>>845
1000文字でメモリエラーになるはずは無いし、fgetcsvはファイルの
行単位にループして使うものだからそういうことでは無いよね。
http://php.net/manual/ja/function.fgetcsv.php

1行1000文字のファイル1行を配列1要素に入れて、それをループしたとき、
ある要素数でエラーになるってことでしょ。
0847nobodyさん2012/03/16(金) 00:00:29.18ID:???
>>812
意味不明
0848nobodyさん2012/03/16(金) 05:27:53.41ID:???
>>846
だから配列に入れる時点だろ?
0849nobodyさん2012/03/16(金) 10:22:22.04ID:TYAnn7Fn
PHPの正規表現で社名から
株式会社、
有限会社、
合資会社、
(株)、
(有)
などの文字を除いた社名を表示したい場合、どのようなパターンにすればいいんですか?
除く文字は社名の先頭にある場合と最後にある場合があるんだけど・・・
0850nobodyさん2012/03/16(金) 10:41:43.97ID:???
正規表現についてはスレ違い

ただ、そんなんだったら 株式会社を ""に置換してしまえ。
0851nobodyさん2012/03/16(金) 10:41:50.30ID:???
>>849
文中から会社名を拾ってとかいうのじゃなくて、
会社名カラムから拾うようなものななら、
それを全部列挙して、消した残りを表示すればいい。
0852nobodyさん2012/03/16(金) 10:51:30.55ID:???
Preg_replaceよりstr_replaceのほうが速い
0853nobodyさん2012/03/16(金) 10:54:30.45ID:+dWmT1P1
質問ではなく相談なんですが、
PHPを知らなかった時代は、HTMLで同じコードをいくつも書くというような
ちょっとした手間のかかるような制作は特に気にならなかったですが
PHPを知ってから、
ちょっとしたコピペも苦痛に感じるようになり、
もっと楽できないものか、もっと楽できないものかと
泥沼にはまってます。

で、楽できてたらそれはそれでいいんですが、
結局コピペや、手動で変換したほうが早いという・・・。
一つのファイルや、設定変数を共有させ過ぎで
例外が入ると、いちいち例外を記述しないといけないという・・・。
0854nobodyさん2012/03/16(金) 11:05:51.60ID:???
?
0855nobodyさん2012/03/16(金) 11:07:43.51ID:???
Zendかcakeを使え
0856nobodyさん2012/03/16(金) 11:07:58.12ID:???
じゃ静的htmlでいいんじゃね?
0857nobodyさん2012/03/16(金) 11:08:31.54ID:???
あとオブジェクト指向勉強しろ
0858nobodyさん2012/03/16(金) 11:25:12.78ID:???
>>853
手動コピペで手間足りる上にPHP組むより早いなら静的htmlでOK
0859nobodyさん2012/03/16(金) 11:33:27.19ID:+dWmT1P1
回答ありがとうございます。

効率を高めようとしているのか横着しようとしてるのかを
見極めていきます。

ちなみに「回答ありがとうございます。」もよく使うので
「かいあり」で辞書登録してます。
0860(498===523===525)===(498=523=525)2012/03/16(金) 12:26:26.19ID:Ny7vUNEa
>>853 >>857
ポリモーフィズム。
0861(498===523===525)===(498=523=525)2012/03/16(金) 12:31:20.84ID:Ny7vUNEa
>>848
はい。配列に入れる以外の処理を書いてないですし。
要素数の問題ですよね。
0862nobodyさん2012/03/16(金) 12:38:53.40ID:???
>>859
プログラムなんてタダのツールだし、学校の課題じゃないんだから、楽なほうでいいんだよ。
二度と触らんようなプログラムに、あとからあれこれ付け足すのを考慮するとかしないだろ?
効率上げるために横着するのが正しい。 効率の上がらない横着は横着じゃない。
できるだけ楽をしてすまそうとすることの方の意味でね。すべきことをしない横着はプログラムでは出来ないんだし。
0863(498===523===525)===(498=523=525)2012/03/16(金) 13:09:18.10ID:Ny7vUNEa
どちらで書いてますか。

switch($var){
  case 'aaa':
}

switch(true){
  case $var === 'aaa':
}

http://www.php.net/manual/ja/control-structures.switch.php#59991
0864nobodyさん2012/03/16(金) 13:12:27.56ID:???
>>863
848じゃねーけど前者

たまに正規表現の一致などにより使う場合に後者
0865nobodyさん2012/03/16(金) 13:13:49.00ID:???
どちらで書いてるって、状況によるだろ
常にどちらか一方で大丈夫だと思ってるなら甘い
0866(498===523===525)===(498=523=525)2012/03/16(金) 13:40:37.20ID:Ny7vUNEa
>>864
なるほどー。

>>865
緩い比較は使わないので、僕は後者しか使ってないです。
後者の書き方を知らなかった時は、switchを使うのがすごくイヤで、ifで書いていたりしました。
0867nobodyさん2012/03/16(金) 15:13:52.02ID:???
caseに書かれた比較条件をswitchに書かれている値になるか緩い比較をしているだけだからなぁ
どちらかを使うって事は無いな
08688672012/03/16(金) 15:14:48.41ID:???
誤)どちらか
正)どちらかのみ
0869nobodyさん2012/03/16(金) 16:30:44.79ID:???
>>861
文字コード変換時にバイト数が増えることがあるのは今考慮しなくていいんだよねっていう確認なんだよ
0870(498===523===525)===(498=523=525)2012/03/16(金) 16:49:38.82ID:Ny7vUNEa
>>869 なるほどー
0871nobodyさん2012/03/16(金) 16:56:26.98ID:e6UkDkcE
>>850
>>851
ありがとうございます。
悩んでいた自分が馬鹿でした。
0872nobodyさん2012/03/16(金) 19:59:09.74ID:???
株式会社アトカブ
マエカブ株式会社
ってネタを思い出した
0873nobodyさん2012/03/16(金) 22:25:23.76ID:90NjddGX
あるライブラリで定義されているグローバル変数の読み込みのことで質問させてください。

// somelib.php
$global_variable = 'golobal variable';
class Somelib {...}

// myclass.php
class Parent {...}
class Child1 extends Parent {...}
class Child2 extends Parent {
 public function some_method() {
  require_once 'somelib.php';
  $somelib_obj = new Somelib();
 }
}

このようにひとつのファイルに複数のクラスを割り当てています。
Child1ではsomelib.phpは不要なので、Child2が使用された場合にのみ読み込もうと、上記のように書きました。
しかし、インスタンス生成は(当然)できるものの、グローバル変数$global_variableは読み込まれません。
somelib.php内に$GLOBALS['global_variable']として呼び出すコードがあるため、そこでエラーとなります。
この場合のルールってどうなってるんでしょうか。
※myclass.phpのグローバル領域にてrequireした場合には問題ありません。
0874nobodyさん2012/03/16(金) 22:39:56.44ID:???
>>873
そりゃsome_methodのスコープになるんだから当たり前だべ
0875nobodyさん2012/03/16(金) 22:55:23.96ID:90NjddGX
>>874
ありがとうです。そうか、ライブラリと同じ(グローバルの)スコープではないんですね。
動作の確認できました。ひとまずrequireの直後に以下のように追加して凌ごうと思います〜。
なんかえらい雑な感じもするけど・・・

$GLOBALS['global_variable'] = $global_variable;
0876nobodyさん2012/03/17(土) 04:06:15.48ID:ErwHrG3p
ttp://9jp.info/archives/11154
↑のサイトのやり方で、ページングの機能をつくりたいのですが、
0からではなく、最初のページを1からにしたいんです。
どなたか教えてください。。。
0877nobodyさん2012/03/17(土) 04:22:39.51ID:???
ループカウントを1からにすればいいだろ
■ このスレッドは過去ログ倉庫に格納されています