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

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

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

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

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0353nobodyさん2010/02/26(金) 14:05:06ID:???
ごめん
0354nobodyさん2010/02/26(金) 14:08:58ID:???
>>352
小さいサイズの画像とかはアップできるん?
03553462010/02/26(金) 14:15:28ID:???
>>354
post_max_sizeあるいはupload_max_sizeを超えなければいける様です。
色々探してて次の様な記述見つけたのでとりあえずの対応策打っておきます。

>・php.ini で post_max_size > upload_max_size にしておかないと、
>スクリプト自体が強制終了して、$_FILES[...]['error'] を見てエラーメッセージを出せないので注意。
>・アップロード form において、hidden input の MAX_FILE_SIZE は
>type="file" な input より手前に書かないと適用されないので注意。

ありがとうございました。お騒がせしました。
0356nobodyさん2010/02/26(金) 17:13:48ID:pmFXcZ0U
MimeTypeのところで出てきたのですが、magicfileって何なのでしょうか?
単にmagicfileで検索しても名探偵コナンばっか出てくるし(苦笑)、それを検索から除去しても良く分かりませんでした
0357nobodyさん2010/02/26(金) 17:23:35ID:???
それはPHPの質問じゃなくApacheの質問くさいが(苦笑)
0358nobodyさん2010/02/26(金) 18:11:59ID:???
>>357
そうなんですか?
分かりました
ではApacheスレに移動します
0359nobodyさん2010/02/27(土) 14:37:21ID:96it23LZ
「PHPは厳密にはオブジェクト指向言語じゃない」
といわれるゆえんは何?

クラスも持ってるしクラスオブジェクトもつくれるしオブジェクト指向言語と呼ばれる資格は
十二分に兼ね備えていると思うんだが(´・ω・`)
0360nobodyさん2010/02/27(土) 14:52:54ID:???
後つけのオブジェクト指向だからでしょ
普通CといったらC++はささないけど
PHPといったらPHP3もPHP5もさすし名称的な問題もあるのかなぁと
今の状態はまだまだなんちゃってオブジェクト指向
オブジェクト指向としての機能が弱かったり足りなかったり
0361nobodyさん2010/02/27(土) 14:59:17ID:???
Javaやれば分かるよ
でも相対的な程度の違いであって
オブジェクト指向かそうでないかと言われれば「YES」になる
0362nobodyさん2010/02/27(土) 15:25:22ID:???
具体的にどこが弱いとか説明できない回答者の発言はスルーでおk
0363nobodyさん2010/02/27(土) 15:35:27ID:???
お前のレスが一番役に立たねぇよw
0364nobodyさん2010/02/27(土) 17:10:35ID:???
<?php
if ((>>360 == >>363 || >>361 == >>363)
echo ">>363=チンピラ乙";
}
?>
0365nobodyさん2010/02/27(土) 17:12:53ID:???
>>364
{ これ忘れないようにしようね^^
0366nobodyさん2010/02/27(土) 17:23:24ID:???
それを言うなら ) { を忘れないようにやろ
0367nobodyさん2010/02/27(土) 17:36:39ID:???
なぜにチンピラ・・・?
0368nobodyさん2010/02/27(土) 17:56:19ID:AeZrDmue
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】apach2.2
【質問内容】
これまで相対パスしか使ったこと無くてドキュメントルートから上にファイル置いたとき、
どんな風に指定すればいいのかわからないよっ
誰かおしえて
0369nobodyさん2010/02/27(土) 17:59:24ID:???
だからphp5.26なんてバージョンはねえしapach2.2なんてソフトはねえんだよ
0370nobodyさん2010/02/27(土) 18:01:01ID:???
/../../dokkano_dir/nankano_file
0371nobodyさん2010/02/27(土) 18:04:48ID:???
>>369
ショボーン(´・ω・`)

>>370
( ・∀・)!?
0372nobodyさん2010/02/27(土) 18:41:30ID:???
>>362
修飾子の使い方が限定的である
オーバーロードができない
多くの関数エラーが例外処理でない
0373nobodyさん2010/02/27(土) 18:43:19ID:???
ググれば3秒で出てくるのにね
0374nobodyさん2010/02/27(土) 19:04:06ID:???
修飾子の使い方が限定的って?
あと例外投げないのが嫌ならエラーハンドリングすればいいのでは?
0375nobodyさん2010/02/27(土) 20:03:19ID:???
クラス内のメソッドからクラスプロパティにアクセスするときって $this-> という修飾子をつけなければ
正しくアクセスできないわけだけど、 $this-> をつけなくてもエラーが返されないって点はこわくね?

うっかり $this-> を付け忘れるとそのメソッド内限定の変数として扱われ、クラスプロパティの値は
全く変えられなくなる。それでいてエラーとかは表示されないわけだからバグ混入の原因にもなる。

以前クラスを作った際にクラスプロパティの値が何やっても変更されなくて数時間の格闘の末
プロパティに$this->を付け忘れただけということが判明した。本当に恐ろしい体験だったぜ・・・

0376nobodyさん2010/02/27(土) 20:03:56ID:???
煽る前にぐぐれって感じだな
チンピラだから仕方がない

>>374
>あと例外投げないのが嫌ならエラーハンドリングすればいいのでは?
本人でないがそれじゃ意味ない罠
わざわざそういうことをしないために元々サポートされるものなんだから
0377nobodyさん2010/02/27(土) 20:13:21ID:???
すぐチンピラにしたがるのは>>376がOCNだから
0378nobodyさん2010/02/27(土) 20:18:20ID:???
>>376
しなくてもいいししてもいい
例外投げてくれたほうがいいと思うならすればいいじゃない
言語に使われるんじゃなくて言語を使わなくちゃだめだよ
0379nobodyさん2010/02/27(土) 20:36:48ID:???
オブジェクト指向が弱いってどういうこと?っていう話をしてるのに何を言ってるのかね君は
0380nobodyさん2010/02/27(土) 21:13:23ID:???
ファイルに読み書きするに際してコンストラクタでファイルをオープンし、
デストラクタでファイルをクローズするのはお行儀のいいプログラムだと思う?

デストラクタを使えば確実にファイルをクローズすることができるし
0381nobodyさん2010/02/27(土) 21:21:12ID:???
そういう設計のクラスならいいんじゃね
0382nobodyさん2010/02/27(土) 21:28:15ID:???
ファイルのオープンはいくつまで出来ますか
0383nobodyさん2010/02/27(土) 21:30:36ID:???
自己解決しました
0384nobodyさん2010/02/27(土) 22:07:39ID:???
>>381
サンクス、この調子でいってみるノシ

ところで"rb+"オプション(読み書きモード)付きでファイルをオープンしたあとflock()で排他ロック。
ファイルを読み込んで処理を施したあと再度上書き保存して排他ロックを解除、
というシナリオを考えているんだけど最後にファイルを上書き保存する際に
一度ファイルをまっさらにする方法って無い?

"rb+"モードだとポインタを先頭に戻して書き込んでも以前のファイルの内容が残ってしまうんだよね。
たとえば"rb+"モードで長文開いたあと短文を保存すると短文のあとに以前の長文の残骸が残って
しまう。

書き込み前に一瞬だけ排他ロックを外して"w"オプションでファイルに書き込めばこの問題は
解決できるんだけど一瞬排他ロックを外した瞬間にそのファイルがいじられてしまう可能性だって
ゼロではない。

う〜ん・・・、どうすればいいんだろう・・・
0385nobodyさん2010/02/27(土) 22:14:17ID:???
ftruncate
0386nobodyさん2010/02/27(土) 22:25:14ID:???
>>385
ドモノシ
0387nobodyさん2010/02/27(土) 23:17:37ID:???
【OS名】レンタルサーバ(CentOS 4.6と記述されてました)
【PHPのバージョン】5.2.5 - SafeMode
【質問内容】
phpで送信されてきたidとpasswordをListファイルにあるidとpasswordで照合させたいのですが
外からListファイルを読めないようにするにはどうしたら良いのでしょうか。
0388nobodyさん2010/02/27(土) 23:20:09ID:???
>>387
普通はDB
ファイルにしたいのなら>>28あたりみてサーバ側でどうにか汁
03893882010/02/27(土) 23:21:14ID:???
と思ったけどそれだけなら普通にドキュメントルートの上におけばいいか
0390nobodyさん2010/02/27(土) 23:42:50ID:wtKSisfT
>>389
atpagesを使用してるのですが、ドキュメントルートより上におくって無理っぽい><
0391nobodyさん2010/02/28(日) 01:26:57ID:???
>>390
.htaccessで制限かければいい
0392nobodyさん2010/02/28(日) 04:50:09ID:???
リストをcgiファイルにすればいいんちゃうの
atpagesならDB使えるしそっちでも
0393nobodyさん2010/02/28(日) 10:22:57ID:???
>>391-392
サンクストンクス兄弟
.htaccessが簡単そうだったので試したらできました。
0394nobodyさん2010/02/28(日) 10:54:11ID:???
【OS名】XP
【PHPのバージョン】5.2.5
【質問内容】
借りているサバでcronが使えないのでローカルの
タスクスケジューラーを利用してhttp経由で定期的に処理させたい
タスクがあります。

<?php

$URL="http://xxx.com/index.php"
file_get_contents($URL);

?>

上のようなコードでレンタサーバ上のPHPファイルは
実行されるでしょうか?

もし駄目ならフォームを作っておいて
フォームの変数に実行の権限を与えて
JSでdocument.form.fname.onsbmit();
してやればいいのかなと考えているのですが
判然としません。

0395nobodyさん2010/02/28(日) 11:06:27ID:???
ブラウザでアクセスしたのと同じ動作するで
0396nobodyさん2010/02/28(日) 13:06:03ID:???
アクセスあったら起動すればいい。時間は5分間間隔とか
0397nobodyさん2010/02/28(日) 13:22:02ID:LiqVmvoY
配列の各値にファイル名が入っているのですが、
その配列を値のファイルの更新時間が新しい順にソートしたいのですが全く考えが浮かびません。

何か方法がありましたらお答え頂けると嬉しいです。
0398nobodyさん2010/02/28(日) 13:24:39ID:???
sort関数というものがあってだな
0399nobodyさん2010/02/28(日) 13:24:42ID:???
{ファイル名、更新日時}か、{番号、更新日時}をソート。
0400nobodyさん2010/02/28(日) 13:28:01ID:LiqVmvoY
配列の各値にファイルの更新時間を付加するしかありませんか・・・。
ありがとうございました。やってみます。
0401nobodyさん2010/02/28(日) 13:33:10ID:???
それ以外でどういう風にできると思ってたんだw
0402nobodyさん2010/02/28(日) 13:34:15ID:???
比較関数を呼び出すときだけでもいい。
しかし、同じのを複数回呼び出すので効率悪い。
確定した値つかうのを推奨。
0403nobodyさん2010/02/28(日) 13:36:13ID:???
今までずっとphpには実行権限与えなきゃいけないのかと思ってたけど、いらねーんじゃねーか!入門サイトのうそつき!
0404nobodyさん2010/02/28(日) 13:38:36ID:???
どこのサイトだよ
晒せや
0405nobodyさん2010/02/28(日) 14:16:58ID:LiqVmvoY
mod_phpににはいらない。cgiにはいる
0406nobodyさん2010/02/28(日) 15:01:13ID:???
$ip = getenv('REMOTE_ADDR');

でビジターのIPアドレスを取得できると思いますが
たとえばノートンとか入れていてIPアドレスが表示
されないようにした人がアクセスしてきた場合は
$ipにはどんな値が代入されますか?
0407nobodyさん2010/02/28(日) 15:03:07ID:???
>>1
0408nobodyさん2010/02/28(日) 15:15:57ID:???
ノートン恐るべしやな
0409nobodyさん2010/02/28(日) 15:17:23ID:VtmQa4ku
PHPでつかえて、バイナリデータとテキストの変換が可能で高効率のものはなんですか。
base64とかナスリエンコードとか。
0410nobodyさん2010/02/28(日) 15:18:32ID:VtmQa4ku
訂正。
ナスリ=URL

バイナリの長文をソースコードに埋め込みたいのですが
0411nobodyさん2010/02/28(日) 15:22:28ID:???
そりゃあ16進ダンプとかだろ
0412nobodyさん2010/02/28(日) 15:34:02ID:VtmQa4ku
16進では16文字しか使わないですが。
base64にしときます。asciiで使える文字はもっとありそうですが実績と手間削減から。
0413nobodyさん2010/02/28(日) 15:41:30ID:???
お前女だな
0414nobodyさん2010/02/28(日) 16:22:48ID:???
書き込まなくても自己解決してたな
0415nobodyさん2010/02/28(日) 16:24:31ID:???
受託で引継ぎ請け負ったアプリがPHP5で動いてるのにバリバリPHP4の書き方になってる。
たぶんオプジェクトのオの字も知らない人が書いたと思われる。

こういうのを改修する場合って既存の書き方に習った方がいいのだろうか?
あるいはリスク覚悟で書き直した方がいいのかな?
お客さんは任せるって言ってるんだけど。
0416nobodyさん2010/02/28(日) 16:28:26ID:???
どちらがいいか分からない段階で無理しないほうがいい
0417nobodyさん2010/02/28(日) 16:34:01ID:???
なるほど…確かにそうですね。必要に迫られてるわけじゃないからとりあえず前例に習うことにします。
しかし酷いソースに合わせて機能拡張するって本当に苦痛だ
04184092010/02/28(日) 16:45:39ID:VtmQa4ku
バイナリ、アスキー化プログラムです。
実行ファイルでサイズが半分くらいになりなかなか効率良いですよ。

<?php
function bin2ascii( $bin ) { return base64_encode( gzcompress( $bin, 9) ); }
function ascii2bin( $asc ) { return gzuncompress (base64_decode( $asc) ); }

function bin2ascii_file( $infile, $outfile ){
$fp = fopen( $infile, 'rb');
$data=fread( $fp, 10*1024*1024);
fclose($fp);
$data=bin2ascii($data);
$fp = fopen( $outfile, 'wb');
fwrite( $fp, $data);
fclose($fp); }

function ascii2bin_file( $infile, $outfile ){
$fp = fopen( $infile, 'rb');
$data=fread( $fp, 10*1024*1024);
fclose($fp);
$data=ascii2bin($data);
$fp = fopen( $outfile, 'wb');
fwrite( $fp, $data);
fclose($fp); }

bin2ascii_file("exploler.exe", "000");
ascii2bin_file( "000", "exploler.ex_");
?>
0419nobodyさん2010/02/28(日) 16:54:11ID:???
ウイルス乙
0420nobodyさん2010/02/28(日) 16:54:22ID:???
10MB決め打ちですか
0421nobodyさん2010/02/28(日) 16:55:14ID:VtmQa4ku
"と'を除くと93文字のアスキー使えて、4バイトは93の5乗で表せます。
BASE64はデータ量は4/3になります。
BASE93だとデータ量は5/4になります。

元が120Kだと、160Kと150Kの差になります。93文字でもあまり減らせません。
0422nobodyさん2010/02/28(日) 16:58:21ID:???
普通に圧縮した文字列をテキストに書き込めばいいんじゃね
0423nobodyさん2010/02/28(日) 17:00:23ID:???
phpでやることじゃなくね
0424nobodyさん2010/02/28(日) 17:13:20ID:U94IcC74
コマンドラインで使えるデバッガを教えてください
0425nobodyさん2010/02/28(日) 17:27:22ID:???
        ノ´⌒ヽ,,
    γ⌒´      ヽ,
   // ""⌒⌒\  )  PHPか・・ 懐かしいな
    i /   ⌒  ⌒ ヽ )   
    !゙   (・ )` ´( ・) i/         
    |     (__人_)  |⌒ヽ/⌒\     
  (''ヽ    `ー'  / 〉 〉 ,、  ) 
  / /         (__ノ └‐ー<. 
  〈_/\_________ノ    
0426nobodyさん2010/02/28(日) 17:44:22ID:???
>>424
XDebug

詳細は公式サイトを見てくだされ
ttp://www.xdebug.org/

この辺にやり方が書いてある
ttp://www.xdebug.org/docs/remote
0427nobodyさん2010/02/28(日) 17:54:12ID:???
>>426
xdebugってコマンドライン対応してたの知りませんでした
ありがとうございます
0428nobodyさん2010/02/28(日) 19:11:37ID:VtmQa4ku
wordpressなどCMSをアップロードするのに、こまかく圧縮して転送と展開すれば
速くなると思うが、PHPでそういうツールあったりしますか。
0429nobodyさん2010/02/28(日) 19:14:31ID:VtmQa4ku
アップロードに限らず、ダウンロード (= 鯖データから自PCへのアップロード)もですが。
無料の所だとサイズ300K以下とか制限もあり、細かく分ける必要あります。
0430nobodyさん2010/02/28(日) 23:37:24ID:6S1D3k9m
flock()関数で排他的ロックをかけてあるファイル$fpに他のプロセスが

fopen($fp, "r+");
flock($fp, LOCK_EX);

というアクセスをしてきたとき、どのように振る舞いますか?

fopenの段階で一時停止して先にかけられた排他的ロックが解除されるまで
待ってから再開するんでしょうか?もし待つとしたら何秒くらい待ってくれますか?
0431nobodyさん2010/02/28(日) 23:39:23ID:???
lock話はやめよう。データベースに任せっきりでよい、。
0432nobodyさん2010/02/28(日) 23:45:38ID:???
Sqliteつかうなら、スクリプトを動作させる側にとって手順は増えない。
mysqlは導入がいるが。
sqliteが動かない所は入れるべき
0433nobodyさん2010/02/28(日) 23:52:51ID:???
SQLiteなくてもPosqlでいける。ロックも兼ねて。
俺はCakeで使ってるけど
0434nobodyさん2010/03/01(月) 00:10:02ID:???
phpにはaspのapplication("hoge").lockって無いの?
0435nobodyさん2010/03/01(月) 04:04:00ID:???
>>430
むげんにまつ
0436nobodyさん2010/03/01(月) 08:12:56ID:???
未経験で入社したらいきなりプロジェクトに放り込まれた
4社ぐらいで共同作業?してるらしい所に何故か自分が1人で行くことになった
毎朝ミーティングがあるのだが何言ってるのかさっぱり分からん
見とけとだけ言われて渡された資料が膨大で何がなにやら。
0437nobodyさん2010/03/01(月) 08:38:07ID:???
実力に見合わないところなら早くやめたほうがいい
デスマの根源になって空気が重くなる
そのうち鬱病になるよ
0438nobodyさん2010/03/01(月) 10:36:19ID:GAV4pXCg
>>430
みんな散々やったんだ
で、結論は>>431
ファイルロックは気休めでしかない
0439nobodyさん2010/03/01(月) 15:33:32ID:H5wSRALn
2次元の連想配列で
array(
array(
'col1' => 1,
'col2' => 1,
'col4' => 1
),
array(
'col1' => 1,
'col2' => 1,
'col4' => 2
),
array(
'col1' => 1,
'col2' => 2,
'col4' => 1
),
array(
'col1' => 1,
'col2' => 2,
'col4' => 2
)
)
みたいになっているやつを、縦方向に串刺しして出力したいのですが
ループで回していくしかないでしょうか?
イメージで言うと
$test[]['col1']
みたいな感じで、縦方向で配列として出力したのですが。
0440nobodyさん2010/03/01(月) 15:53:39ID:z47ZxXxQ
> lock話はやめよう。データベースに任せっきりでよい、。

データベースでファイルロック?!
あの・・・、どうゆうことでしょうか?
0441nobodyさん2010/03/01(月) 16:08:28ID:???
ファイルシステムはB木とか使ってるし普通にデータベースだよなw
0442nobodyさん2010/03/01(月) 16:40:59ID:???
普通にデータベースですね
0443nobodyさん2010/03/01(月) 17:12:19ID:???
>>439
なんでcol3がないんだ?
0444nobodyさん2010/03/01(月) 17:56:41ID:???
simplexml_load_file();
使うとfatal errorってなってphp固まっちゃうけど、なんで?
0445nobodyさん2010/03/01(月) 17:58:17ID:???
スレタイを読まないから
0446nobodyさん2010/03/02(火) 22:13:52ID:???
PHPや!
PHPつこてないから2chは落ちたんや!
0447nobodyさん2010/03/02(火) 22:40:55ID:???
そうかそうか
0448nobodyさん2010/03/02(火) 23:08:02ID:???
2ちゃんのせいでうちのサーバーにも影響出たわ
0449nobodyさん2010/03/02(火) 23:11:02ID:???
人少ない板だから見えないスレがまだ多いのぅ
どんどん書き込んでや
0450nobodyさん2010/03/02(火) 23:55:52ID:???
もうPHPスレだけでいいよ
0451nobodyさん2010/03/03(水) 00:13:49ID:???
スレがないw
0452nobodyさん2010/03/03(水) 01:49:31ID:OC7p3okf
スレ復活age
■ このスレッドは過去ログ倉庫に格納されています