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

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

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

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

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

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0302nobodyさん2012/05/28(月) 11:22:11.28ID:???
現状のセッションと無関係なセッションを作成することと
セッションハイジャックになんの関係があるかkwsk
0303nobodyさん2012/05/28(月) 11:36:48.09ID:???
>>302
みたいなこと って言ってんだろ脳ついてるのかボケ
0304nobodyさん2012/05/28(月) 11:39:53.20ID:???
>>301
セッションハイジャックは一つのセッションを巡って二人のクライアントが奪い合う愛憎劇です
0305nobodyさん2012/05/28(月) 11:46:11.37ID:???
>>303
日本語が通じないのか?
0306nobodyさん2012/05/28(月) 14:38:21.53ID:???
キチガイみたいなこと言うな >>301
0307nobodyさん2012/05/28(月) 19:22:32.54ID:???
はーいアニソン聞きながら質問に答えますよー
0308nobodyさん2012/05/28(月) 23:53:01.13ID:???
hi jack
0309nobodyさん2012/05/28(月) 23:53:47.62ID:???
同一phpファイルでも
$fp = fopen($a)
flock($fp,2)//読み取りできないようにする

$b = file($a);
echo $b[0]

とやってもロックされてたら$bで何も読み込めないという事がわかったのですが
このようにロックしながらテキストファイルの頭から最後まで読み込むのに良い方法はないのでしょうか?
03103092012/05/28(月) 23:54:15.92ID:Z03KQ5K3
ID出し忘れました・・・。
0311nobodyさん2012/05/28(月) 23:59:01.10ID:???
>>309
読み取りできないようにしてるのに読み込みたいってどういうことだよ
0312nobodyさん2012/05/29(火) 00:01:21.15ID:UwfNHIY3
そのphpで開いてる間はほかの人読み取り不可にしたいなと
$aのテキストファイルはカウンターリストみたいなもんでして
0313nobodyさん2012/05/29(火) 00:03:09.89ID:???
>>312
そのあと普通に読み取り処理書けばいいのでは?
0314nobodyさん2012/05/29(火) 00:21:48.97ID:UwfNHIY3
flock($fp,2)とやった後なのでfile()で読み込めませんでした
カウンターと言っても
test=2013
hoge=2011


と何百行もあるのでfgetで取り出すよりfile()で取り出したいのですが
たとえばAさんがtestの2013を取り出して2014と書き込む間にBさんがtestの2013を取り出してしまうと
本当は2015になるのに2014になってしまったりするので読み込む前から書き込み完了までロックする必要が
0315nobodyさん2012/05/29(火) 01:48:46.46ID:???
ロック中ってfile開けなかったっけ?
と思ったら排他ロックは開けないのか
0316nobodyさん2012/05/29(火) 01:58:23.74ID:???
>>309
本体ロックする直前にどっかに一時コピーするしかないんでないのかな
0317nobodyさん2012/05/29(火) 02:07:13.76ID:???
勝手に要約すると
排他ロックを行った後に特定の行(または行単位)をゲッツするにはどうしたらいいですか〜?
って事か?無理
0318nobodyさん2012/05/29(火) 03:10:45.44ID:nVo6bTul
ちょっと質問があります。

fopenで人のサイトって読み込めるじゃないですか?

2chのコピーサイトみたいのって、
そうやって読み込んで自分のページにしてるんですよね?

だとしたら、読み込まれてる側は何か対策はできないのでしょうか?

03193092012/05/29(火) 04:05:14.95ID:UwfNHIY3
無理でしたか・・・。ありがとうございました
ならばfopenの後ロックしたファイルの後ろから10文字取り出す事とかはできるんでしょうか?
0320nobodyさん2012/05/29(火) 05:29:21.60ID:???
>>318
サイトの公開をやめればいい
簡単
0321nobodyさん2012/05/29(火) 07:48:11.86ID:???
>>314
同じファイルポインタ使えよアホ
0322nobodyさん2012/05/29(火) 10:05:01.18ID:???
>>314
すなおに fgetsをループ
ロックも色々問題あるんで(検索してくれ)
そんな苦労するぐらいなら、簡単なDB使う


>>318
直接取得の妨害方法はいろいろあるが、
ブラウザからコピペすればいいので対策にはならんな。
0323nobodyさん2012/05/29(火) 10:17:21.85ID:???
shtml.jp
HTMLを暗号化してコピーを防ぐと自称してるソフトがあるが
解読済みなんで無意味

JISの変なコードを入れてわざと文字化けさせる処理まで入ってるが
これも無意味
0324nobodyさん2012/05/29(火) 10:23:40.31ID:???
自分の作ったものをあえて叩いて反論の評価をもらうのを待つ
あらてのオナニーですか?
0325nobodyさん2012/05/29(火) 10:25:14.62ID:Weki6BBX
phpでwavファイル再生って出来ませんか?
pythonでいうwinsound、rubyでいうwin32/soundのような機能を探しています。
0326nobodyさん2012/05/29(火) 10:27:18.39ID:???
はい
0327nobodyさん2012/05/29(火) 10:31:18.00ID:???
使ったことはないが、PHPでSDLが使えるならマルチメディアなんでもできるはず。
http://sourceforge.net/projects/phpsdl/
0328nobodyさん2012/05/29(火) 10:35:51.54ID:???
ttp://www.php.net/manual/ja/book.openal.php
こんなんか?wav読み込んで使う感じ
0329nobodyさん2012/05/29(火) 17:18:39.69ID:???
>>321
file()じゃファイルポインタ使えないよ
0330nobodyさん2012/05/29(火) 20:13:24.20ID:???
>>329
そんなの当たり前だ
0331nobodyさん2012/05/29(火) 20:16:26.66ID:???
初心者っつーかプログラミング慣れしてない人ってどーも
改行を特別なものって考えてるんだよね

俺にはHTMLも一つの長い文字にしか見えん
0332nobodyさん2012/05/29(火) 20:19:43.47ID:???
いや、改行されてたら改行されてるように見えるだろ
0333nobodyさん2012/05/29(火) 23:15:14.04ID:uv76vkMY
phpでできないことなどない
0334nobodyさん2012/05/29(火) 23:53:58.13ID:???
PHP初心者です。

$thisが何なのか分からず、勉強が止まってます><
猿にでも分かるように簡単に教えて下さる方いらっしゃいましたら助かります。
0335nobodyさん2012/05/29(火) 23:55:38.64ID:???
正直、呼んで字の如しとしか説明の仕様が無いのだが・・・。

オブジェクト指向そのものを理解するのが先と思われ。
0336nobodyさん2012/05/30(水) 00:14:23.22ID:???
PHPはポンコツ言語だからオブジェクト指向に向いてないがな
0337nobodyさん2012/05/30(水) 00:20:37.81ID:???
NGワードw


>>334
http://php.net/manual/ja/language.oop5.basic.php
これ読んで引っかかったところを書くがいい
0338nobodyさん2012/05/30(水) 11:01:23.05ID:BwZnxNSn
たまにURLのパラメータが
index.php?id=1&page=1

みたいに、&が&に変換されているため、
$_GETでパラメータを取得できない場合があります。

一旦、$_SERVER['QUERY_STRING']でパラメータを取得して
&を&に変換するしかないのでしょうか?
0339nobodyさん2012/05/30(水) 11:08:51.69ID:???
んなアホな
0340nobodyさん2012/05/30(水) 11:20:07.77ID:???
>>338
アフィリエイトとかから指定されたjavascriptのコードの中に切ってあるパラーメータ
とかかそれ
0341nobodyさん2012/05/30(水) 11:31:37.63ID:BwZnxNSn
>>340
いえ。アクセス解析など見ると、たまに>>338のようなURLが記録されています。
これだと$_GETでパラメータが取れないので、どうした方が良いのかな?
と思って質問しました。
0342nobodyさん2012/05/30(水) 11:46:30.03ID:???
処理を自作するといい
俺はそうしてる
0343nobodyさん2012/05/30(水) 11:49:48.50ID:BwZnxNSn
わかりました。
$_SERVER['QUERY_STRING']からhtmlspecialchars_decodeして
$_GET用に復元する方法しか思いつかないのでそうします。
0344nobodyさん2012/05/30(水) 12:22:17.28ID:???
>いえ。アクセス解析など見ると、たまに>>338のようなURLが記録されています。
たんにそのアクセス解析がエスケープして表示してるだけだろ
0345nobodyさん2012/05/30(水) 12:22:49.07ID:???
こんな手も
http://dzz.dip.jp/note/archives/47.html
0346nobodyさん2012/05/30(水) 12:31:27.92ID:???
バッドノウハウだな
仕様を守らない糞クライアントには怒りの400 Bad Requestを下すべき
0347nobodyさん2012/05/30(水) 12:36:22.23ID:???
400にするにはどうするかというと、結局同じようなことをするしかないのだがね
0348nobodyさん2012/05/30(水) 12:55:45.88ID:???
PHPは諸悪の根源
0349nobodyさん2012/05/30(水) 13:45:28.51ID:BwZnxNSn
>>345
まさにこの事象です・・。自分もアクセスする側の問題だと思うのですが、
ここの上司が言うように対応しなきゃいけないんですかね・・。

とりあえず、PHP側で変換することにしましたが、不便ですね
0350nobodyさん2012/05/30(水) 14:12:46.39ID:???
>>347
2番目以降のパラメータが無視されたことによるエラーをアプリ側でハンドリング
しないで500で返していること自身まずいのではないだろうか。

自分も>>346に賛成ではじいたほうがいいと思うけど。
定期巡回してネタぱくりにくる子とかひっついたらいやじゃない。
0351nobodyさん2012/05/30(水) 14:16:39.78ID:C3oTCERX
1分置きに2chのwebprog板のすべてのレスのログを定期的にとってくるプログラムがあるとします。

これを何も考えないで実装した場合、
毎回BODYリクエストで全てのログをとってくることになりますよね?
これだと転送量に負荷がかかるので、
次の段階として、HEADリクエストでContent-Lengthをとって、
更新が認められたらBODYリクエストでとってくることになりますよね?

ここで1つ目の質問なのですが、
更新があった場合HEADリクエスト→BODYリクエストなので、
ヘッダーは2回返ってくることになり、
その分BODYリクエストのみに比べて転送量が増えてしまいます。
HEADリクエスト送った後、レスポンスを返してもらって、
そこで通信を切断はしないで、待っててもらい、
必要に応じて残りのBODY部分も送ってくれるようにリクエストを送る。
みたいなことは可能でしょうか?

さらなる最適化として、HEADリクエストを送ってBODYリクエストを送るわけですが、
この時前回のLengthを記録してれば、そこから差分のBODYを返してもらうことも可能ですが、
これは当然アプリケーション側が対応してないと不可能ですよね?
0352nobodyさん2012/05/30(水) 14:32:49.28ID:???
お金の匂いがします
0353nobodyさん2012/05/30(水) 14:46:49.32ID:???
>>351
通信切断しないとか相手方にすごい迷惑だろうがっ!
0354nobodyさん2012/05/30(水) 15:15:29.56ID:???
>>351
> 次の段階として、HEADリクエストでContent-Lengthをとって、
> 更新が認められたらBODYリクエストでとってくることになりますよね?
If-Modified-Since や If-Range、ETag を返すサーバーには If-None-Match で確認する

> さらなる最適化として、HEADリクエストを送ってBODYリクエストを送るわけですが、
> この時前回のLengthを記録してれば、そこから差分のBODYを返してもらうことも可能ですが、
> これは当然アプリケーション側が対応してないと不可能ですよね?
HTTP/1.1に対応している必要があるな
0355nobodyさん2012/05/30(水) 15:18:02.77ID:???
日本を破壊する道-州-制(地方への権限委譲)

テレビで韓国ドラマばかり流れても、見なければ良いので大きな問題はありません
しかし、地方分権で警察組織・権力を地方の犯罪については国から移管し
採用条件・組織等も地方で自由に決めれるようになったらどうなるでしょう。
今のテレビ局が数十年前に在日枠を受け入れて、今や完全に在日朝鮮人に乗っ取られ
都合の悪い報道は一切しなくなり、民主党が与党になったように
地方分権された警察組織が数10年後に、反日感情を持った外国人に支配される可能性はないでしょうか
在日の犯罪は取り締まられず、日本人の犯罪は過大な罰を与えられたりしないと言い切れるでしょうか。
地域の要望が、声の大きい外国人の要望に取って変わるかもしれません
維新に近い、みんなの党は道州裁判所を設ける案もだしてます。

橋下氏(維新)の大阪都構想しかり
中京圏の大村氏、河村氏も地域政党を作って国政で候補者をだす予定です。
選挙まで時間はあります、検討したほうが良いかもしれません。
0356nobodyさん2012/05/30(水) 15:19:53.85ID:C3oTCERX
>>352
いいえただのなるべく効率のいいポーリングシステムの実装です。
そのまんまだと転送量がやばくなるので。
このスレのほとんどの回答者さんならajax実装などで通ってきた道ではないでしょうか?

>>353
確かにそうですね。
仮にできるとしたら、相手方もタイムアウト設定してると思うので・・・
ってここまで考えてみて、サーバが対応してないと無理なんだろうなと思えてきました。

アプリケーションで差分を返すシステムと、
リクエスト受けてレスポンス返したあとも、接続をキープするようサーバが対応してないと、
効率のいいシステムは組めないという結論で自己解決しておきます。
PHPの技術だけじゃこのへんはどうしようもできないですよねきっと・・・
0357nobodyさん2012/05/30(水) 16:28:30.47ID:???
ジョブキュー管理サービスみたいなのがあるといいのにね
0358nobodyさん2012/05/30(水) 21:28:40.99ID:???
2chだったら特定のレス番以降のみ取得できるね
0359nobodyさん2012/05/30(水) 21:57:28.63ID:???
で、それを実装してContent-Lengthの変わらない更新を見逃すと。


0360nobodyさん2012/05/31(木) 13:42:38.03ID:et2/AEfG
【OS名】CentOS
【PHPのバージョン】5.1.6
【連携ソフトウェア】GD
【質問内容】
--with-gd=shared
ってなってるのにGDが使えないのはライブラリが無いまたは
php.iniがライブラリを読むようになってない ってことだよね?
0361nobodyさん2012/05/31(木) 14:42:03.69ID:???
馴れ馴れしいから×
0362nobodyさん2012/05/31(木) 17:16:06.19ID:jSAS0lFo
exp and xxxもしくはexp && xxxは
if (exp) { xxx }

exp or xxxもしくはexp || xxxは
if (!exp) { xxx }

ってことですよね?

いままで

$a = null;
if (exp) { $a = 1; }
ってやってたのですが、
わざわざ$a = null;なんてやらなくていいようなので(むしろやっちゃだめ?)
if (exp) { $a = 1; }
ってやるようになりました。
exp and $a = 1;
で書けることもしってこっちのほうがシンプルだなと思ったのですが
あまりほかの人のソースを見てもわかりづらいのかこういう書き方してないようで
if文で囲ったほうがいいのかなと悩んでます

可読性以外に何か問題ありますでしょうか?
0363nobodyさん2012/05/31(木) 18:13:30.31ID:???
態度
0364nobodyさん2012/05/31(木) 19:25:13.94ID:???
>>362
> わざわざ$a = null;なんてやらなくていいようなので(むしろやっちゃだめ?)
初期化されてない変数を参照したら確かに NULL を返すようになっているが、裏でE_NOTICEエラーを出してるからな
代入をシンプルにしたいなら三項演算子を使う
$a = expr ? 'a' : 'b';
0365nobodyさん2012/05/31(木) 21:41:52.34ID:???
代入の話じゃなくて、ifの変わりにショートサーキットつかう、
俺ってこんなの知ってんだぜみたいなあれだろ? 聞いてることを分からず使うわけはないしな。
0366nobodyさん2012/05/31(木) 21:44:46.00ID:???
phpにできないことはない
0367nobodyさん2012/05/31(木) 21:50:29.32ID:???
頭の回路が短絡のようだな
0368nobodyさん2012/06/01(金) 00:00:42.35ID:gtGRE3lG
phpを使わない理由がみあたらない
0369nobodyさん2012/06/01(金) 02:01:56.50ID:sOx9VKNN
ちょッタイム

スカラ変数は、null文字自動挿入なの?
空文字にはならないの?
0370nobodyさん2012/06/01(金) 02:47:15.14ID:???
<?php
var_dump($a);

なんで空文字と思ったのが疑問だがこういうことだろ?
エラーリポートE_ALLにするとE_NOTICEが出る
変なこといってたらすまぬ
0371nobodyさん2012/06/01(金) 09:11:39.91ID:???
ミッションクリティカルな用途はすべてphp
0372nobodyさん2012/06/01(金) 10:52:16.32ID:???
ミッションインポシブル言いたいだけちゃうんかとw
0373nobodyさん2012/06/01(金) 10:55:58.80ID:???
PHPに共有メモリとかセマフォとかあるの?
0374nobodyさん2012/06/01(金) 20:51:39.47ID:8/QN6uqz
配列で要素が2・5・6とか歯抜けになってるのを0・1・2に治す方法は関数か何かでありますか?
0375nobodyさん2012/06/01(金) 20:53:01.46ID:???
書いたソースを示してくれ
0376nobodyさん2012/06/01(金) 21:16:15.88ID:???
金融機関のシステムは大半がPHP
0377nobodyさん2012/06/01(金) 21:18:48.50ID:???
銀行名の一例を書き出してみなよ
0378nobodyさん2012/06/01(金) 21:24:46.13ID:???
>>377
10個も書いておけば充分か?
足りないなら遠慮なく言ってくれ

足利銀行
関西アーバン銀行
四国銀行
第四銀行
大東銀行
筑波銀行
西日本シティ銀行
広島銀行
北越銀行
武蔵野銀行
0379nobodyさん2012/06/01(金) 21:43:11.43ID:???
>>374
array_values()
0380nobodyさん2012/06/01(金) 21:53:54.11ID:???
クレジットカード会社の会員ページも大半がPHP
0381nobodyさん2012/06/01(金) 21:55:51.92ID:???
>>378
基幹システムがPHPということですか?
0382nobodyさん2012/06/01(金) 22:03:54.77ID:???
お前が建てた糞スレあるんだから巣に帰んな
0383nobodyさん2012/06/01(金) 22:06:18.70ID:???
拡張子で判断するPHPer
0384nobodyさん2012/06/01(金) 23:25:25.32ID:???
基幹システムにPHPはないでしょ
0385nobodyさん2012/06/01(金) 23:30:49.43ID:???
>>384

>>378
0386nobodyさん2012/06/02(土) 01:12:56.85ID:???
基幹はホストだしね。COBOLとかすげーなつかしい
0387nobodyさん2012/06/02(土) 07:28:14.20ID:QfEKR+Q8
setcookie()が上手くいかずに調べた事ついて質問なんですが

html&javasript4632文字
<?php setcookie 成功

html&javasript4633文字
<?php setcookie 成功


ナゼか4632文字目ではちゃんとセットされるのですが
4633文字にすると失敗します
これって何かの制限かなのでしょうか?
そして対処法とかあるのでしょうか?
0388nobodyさん2012/06/02(土) 07:34:09.16ID:???
Cookieに長過ぎる文字列を入れるのはよくない
0389nobodyさん2012/06/02(土) 07:39:23.91ID:QfEKR+Q8
クッキー自体の文字は数文字程度なんですが
setcookieに辿り着くまでの文字数が問題みたいです

phpのコードはいくら書いても大丈夫なんですが
htmlやjavascriptを約4.5KB分ぐらい書いた後にphpを実行させるとsetcookieのみ実行できなくなるという奇妙な現象が

ちなみに<!-- -->や/* */で囲った部分もカウントされてました
0390nobodyさん2012/06/02(土) 08:07:53.44ID:???
あり得ない
ソースの実例とか示せないのか?
0391nobodyさん2012/06/02(土) 08:19:38.11ID:QfEKR+Q8
ソースは出せないけど
javascriptで

//inner_ary[4] = inner_ary[4].replace(dat_re[0],'<span class=\"anchor_link\">$&</span>');
<?php
$rett = setcookie('test','hogeho',time()+10800,'/',1);
if($rett){
   echo 'クッキー登録<br>';
}else{
   echo 'できねー<br>';
}
?>
だとできなくて

//inner_ary[4] = inner_ary[4].replace(dat_re[0],'<span class=\"anchor_lin
<?php
以下略
ってやると出来て

//inner_ary[4] = inner_ary[4].replace(dat_re[0],'<span class=\"anchor_lina
<?php
以下略
だと出来ないから文字数で間違いないと思うんだけど
サーバーが制限の多いレンタルなのと関係あるのかん?
何度やってもちょうどココが境目だったから速度とかそういうのではないと思うけど
0392nobodyさん2012/06/02(土) 09:16:35.60ID:???
なぜ4632なのか突き止めてみてよ
まったく違うプログラムを書いて検証するとかさ
0393nobodyさん2012/06/02(土) 09:34:45.75ID:QfEKR+Q8
4335バイトだったかな
http://www.dotup.org/uploda/www.dotup.org3047497.zip.html

これだと失敗して、aを1文字削ると出来る
phpの部分はどんなに増やしても大丈夫なんだけど不思議だ
0394nobodyさん2012/06/02(土) 09:59:34.27ID:???
俺の環境だとaを全部消しても出来ない。 
まず http://php.net/manual/ja/function.setcookie.php を見よう。Warningが出てるからそれも確認しよう。
何をしたいのか知らんけど、まず setCookieを2行目にしとけ。
0395nobodyさん2012/06/02(土) 10:12:03.27ID:???
4KBは大方出力バッファリングの境界線だろう
0396nobodyさん2012/06/02(土) 10:26:12.33ID:QfEKR+Q8
んなるほど、
セッションとかクッキーは上でやっとけって聞いたけどそういう事でしたか
余程のことが無い限りHTMLとかの後でやってはイカンですな
0397nobodyさん2012/06/02(土) 10:57:07.85ID:???
CookieはHTTPのヘッダで出力するものだから最初の方にあった方がいいという理由か
お前らも意外とやるじゃないか
0398nobodyさん2012/06/02(土) 11:04:57.35ID:???
久々にPHPスレで得した気分になった
0399nobodyさん2012/06/02(土) 11:49:46.86ID:???
PHPerは史上最強です。他言語ができないのは伊達じゃない。
0400nobodyさん2012/06/02(土) 11:55:50.67ID:???
他言語ができないというか、PHP一択で問題ないって感じだろうね、超万能だし
0401nobodyさん2012/06/02(土) 12:07:12.52ID:???
超万能っつーか、便利なモンに囲まれすぎだわ
■ このスレッドは過去ログ倉庫に格納されています