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

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

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

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

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

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0285nobodyさん2008/12/14(日) 04:02:38ID:???
糞ページの宣伝乙
0286nobodyさん2008/12/14(日) 04:05:45ID:???
>>284
今まで見たページの中で一番役立つと思った。
的確な解説と詳しい事例の紹介。特に、右側の本の紹介は最高。
さっそく何冊か買っちゃった。これは買いだよ。
0287nobodyさん2008/12/14(日) 04:07:44ID:???
自演アフィ厨乙
0288nobodyさん2008/12/14(日) 04:38:40ID:???
>>284
いや、俺が凄いと思うよ、このページ。
人によって色々意見があると思うけど、そこらの本では得られない情報が満載。
右の本の紹介も確かに参考になるね。ありがとう。
0289nobodyさん2008/12/14(日) 07:07:57ID:cWESsLbm
【OS名】winXP
【PHPのバージョン】php5.26
【連携ソフトウェア】SQLite
【質問内容】
PDOで処理しています
INSERT でトランザクションかけている時に
他のユーザでINSERT しようとすると database is locked となります
数秒待ってから、database is locked の表示が出るのではなく
すぐエラーの表示になってしまいます

書き込みが処理がダブった場合に、片方のユーザは待つようにしたいのです
http://www.bumblebury.com/function.sqlite-busy-timeout.html
ココを見ると、初期値ではタイムアウトが設定されている
となっているのですが、処理待ちしてくれません

どうすればいいのでしょうか
0290nobodyさん2008/12/14(日) 07:36:05ID:???
>>284
このページ最高。右の本もセンスが良い物ばかり、
先の人と同じで、私も早速注文させて頂きました。
0291nobodyさん2008/12/14(日) 07:50:35ID:???
2chでの営利目的な宣伝行為は禁止です
0292nobodyさん2008/12/14(日) 08:04:57ID:???
宣伝じゃないよ。まずページを見てから言えよ。
0293nobodyさん2008/12/14(日) 08:20:12ID:???
見た
初心者のまとめ用ノートに見えた
解説ページとしての出来は三流以下
本もどういった理由でお勧めかも書いていない
ただのアフィ目的
0294nobodyさん2008/12/14(日) 08:27:34ID:???
http://www.php-ref.com/

このページわかりやすい
0295289です2008/12/14(日) 09:36:55ID:cWESsLbm
>>289 の補足です
sqlite_busy_timeout()
これと同じ事をPDOでしたいのです

よろしくお願いします
0296nobodyさん2008/12/14(日) 10:03:03ID:???
>>295
エラーがどこで発生して何がエラー表示をしているかを調べてみたら?
エラーを捕捉したらそのエラー種を調べて、一定時間内であればsleepしてリトライ
0297nobodyさん2008/12/14(日) 10:44:44ID:???
>>294は完全に糞。>>284のサイトがこれまでで最高のサイト。
0298nobodyさん2008/12/14(日) 11:03:43ID:???
>>297
  ∧_∧         ∧_∧         ∧_∧         ∧_∧
  (´・ω・`)     n   (´・ω・`)     n    (´・ω・`)     n   (´・ω・`)     n
 ̄     \    ( E)  ̄     \    ( E)  ̄     \    ( E)  ̄     \    ( E)
フ     /ヽ ヽ_//  フ     /ヽ ヽ_//  フ     /ヽ ヽ_//  フ     /ヽ ヽ_//
  ∧_∧         ∧_∧         ∧_∧         ∧_∧
  (´・ω・`)     n   (´・ω・`)     n    (´・ω・`)     n   (´・ω・`)     n
 ̄     \    ( E)  ̄     \    ( E)  ̄     \    ( E)  ̄     \    ( E)
フ     /ヽ ヽ_//  フ     /ヽ ヽ_//  フ     /ヽ ヽ_//  フ     /ヽ ヽ_//
  ∧_∧         ∧_∧         ∧_∧         ∧_∧
  (´・ω・`)     n   (´・ω・`)     n    (´・ω・`)     n   (´・ω・`)     n
 ̄     \    ( E)  ̄     \    ( E)  ̄     \    ( E)  ̄     \    ( E)
フ     /ヽ ヽ_//  フ     /ヽ ヽ_//  フ     /ヽ ヽ_//  フ     /ヽ ヽ_//
  ∧_∧         ∧_∧         ∧_∧         ∧_∧
  (´・ω・`)     n   (´・ω・`)     n    (´・ω・`)     n   (´・ω・`)     n
 ̄     \    ( E)  ̄     \    ( E)  ̄     \    ( E)  ̄     \    ( E)
フ     /ヽ ヽ_//  フ     /ヽ ヽ_//  フ     /ヽ ヽ_//  フ     /ヽ ヽ_//
0299nobodyさん2008/12/14(日) 13:53:19ID:???
>>289
PDO::setAttribute(PDO::ATTR_TIMEOUT, 1000);
は違うかい?
0300289です2008/12/14(日) 17:37:24ID:cWESsLbm
>>299
やっているんですけどダメなんです
トランザクション開始せずに、INSERT を実行するように
記述すれば正常に待ってくれますが
トランザクションを開始してINSERT をするようにすると
トランザクション開始の段階でdatabase is locked を出してくる
ようなのです
0301289です2008/12/14(日) 17:50:52ID:cWESsLbm
>>300 の補足です
端末A側で時間のかかるINSERTを実行すると同時に
端末B側でINSERTを実行する
  →○端末Aの処理が終わるまで待ってくれる

端末A側でトランザクションを開始してからINSERTを実行すると同時に
端末B側でトランザクションを開始してINSERTを実行する
  →×一切待たずにdatabase is locked エラー
0302nobodyさん2008/12/14(日) 18:25:18ID:???
>>301
> ×一切待たずにdatabase is locked エラー

そのエラーはDBが吐いてるのか、PDOが吐いてるのか確認した?

タイムアウトはPHPがクライアントとしてどんだけ待つか?という設定。
DBからエラーが帰ってきたら、待つわけがないんで、
コマンドラインでトランザクションが重複したときの挙動を確認してみて。

もし、SQLiteの挙動として、トランザクション処理が二重になると
「database is locked」が返ってくるようなら自前でリトライするしかない
0303nobodyさん2008/12/14(日) 18:53:31ID:???
バグかもしれないから、PDOのコンストラクタで指定してみるっていう
手はあるかもね。
あるいは、ステートメントでsqlite_busy_timeout(100000) を発行する
0304nobodyさん2008/12/14(日) 20:29:18ID:YaM9vo5D
$csv = fopen ("hoge.csv", "r") or die(print "ファイル開けませんでした。");
while ($items = fgetcsv ($csv, 1000,",")) {

結果表示


}

fclose($csv);

これにページング機能をつけたいのです
CSVファイル内は500件あって
20件ずつ表示させたいです。

よろしくおねがいします
0305nobodyさん2008/12/14(日) 20:45:14ID:???
die(print "ファイル開けませんでした。");

なにこれ、裏技?
0306nobodyさん2008/12/14(日) 20:47:10ID:???
http://www.google.co.jp/search?q=PHP+%83y%81[%83W%83%93%83O%8B@%94\
0307nobodyさん2008/12/14(日) 20:52:56ID:???
>>304 Pager
>>305
揚げ足帰れ^^;
0308nobodyさん2008/12/14(日) 20:54:08ID:???
目から牛乳
0309nobodyさん2008/12/14(日) 21:53:42ID:???
http://spysee.jp/%E3%81%BE%E3%81%A4%E3%82%82%E3%81%A8%E3%82%86%E3%81%8D%E3%81%B2%E3%82%8D

これはおもしろい
0310nobodyさん2008/12/14(日) 21:54:06ID:w3Pugtuv
お助けください。
wordpressでつくったサイトのトップページに、
ブログの更新情報をPHPで表示したいのですが、

2008.12.14 ブログの更新情報
2008.12.14 ブログの更新情報
2008.12.14 ブログの更新情報

という風に表示するには、どういう記述をしたらいいのでしょうか。
詳しい方お願いします!
0311nobodyさん2008/12/14(日) 21:54:21ID:???
マルチ乙
0312nobodyさん2008/12/14(日) 22:34:56ID:2jbmy5jI
【OS名】CentOS4.6
【PHPのバージョン】php4.3.9
【連携ソフトウェア】apache 2.0
【質問内容】
php5.2.3以降を入れたいのですが、どのような方法があるでしょうか。
Jason氏のレポジトリを使うという方法もあるそうですが、評判はどう
なんでしょうか。
0313nobodyさん2008/12/14(日) 23:54:19ID:???
>>310
マルチ乙
0314nobodyさん2008/12/14(日) 23:54:52ID:???
>>312
php4を消してphp5をインストール
0315nobodyさん2008/12/15(月) 01:37:01ID:???
>>312
ソースから入れれば?
もしくはどこかの誰かが作ってるかもしれないRPM入れるか
0316nobodyさん2008/12/15(月) 02:10:05ID:???
最近わかったこと。
変数の名前を「aaa」とかにすると
後から読んでわけわかんなくなる。
0317nobodyさん2008/12/15(月) 02:37:19ID:Y6XF9DXs
質問

ファイルを読み込むときに、
そのファイルがなかったときは、
どのように処理するのが適切か。

「ファイルが存在しません」
とエラーメッッセージを出して、
止めるのが正解か?

そのとき、
「エラーです」
とだけ表示するか、
「ファイルが存在しません」
と、「理由」も表示するべきか、
「abc.txtが存在しません」
と「ファイル名」も表示するべきか?
0318nobodyさん2008/12/15(月) 03:20:56ID:/Qwgx48G
>>316
aaaはテスト用
0319nobodyさん2008/12/15(月) 05:08:01ID:???
昔アフリカに青年海外協力隊?が行って避妊、ゴムの付け方を教えたそうだ。
言葉が通じないから木の枝にゴムを被せるというジェスチャーで何とか教えたという。

それから何年かしてアフリカに行ってみたら子供は減るどころか逆に増えてたんだ。
おかしいと思って夜民家の近くに行ったらなんと木の枝にゴムが被っていてジェスチャーで教えたそのまんまだったそうだ。
現地の人は木の枝にゴムを被せたら妊娠しないというおまじないだと思ってたそうな。
0320nobodyさん2008/12/15(月) 05:59:52ID:???
php板やプログラマー板に入り浸ってる人間ってのは
基本的にリアル対人能力は無いneet達なんだから
普通の交流しようとしても無駄だし
関わってもキチガイ人間っぷりにうんざりするだけ

普通にコミュニケーション力鍛えて
普通の世界に入った方が圧倒的に人生楽しめる
0321nobodyさん2008/12/15(月) 06:07:13ID:Y6XF9DXs
だれか助けてくれ、、、

あまりにもナゾなバグが出た、、、

「ボタンを押すと数字が1減る」
ってプログラムを書いたんだが、
なぜか10から1減らすと90になる。

何を言っているかわからねーと思うが
こっちもわからない。

だってそんなロジックは入れてないんだから。

なんで?
0322nobodyさん2008/12/15(月) 06:08:12ID:Y6XF9DXs
13→12→11→10→90→89→88→,,,,

こういう動作になってしまっている。

もちろん、こちらが希望する動作は

13→12→11→10→9→8→

なのだが。なんで増えるの??
0323nobodyさん2008/12/15(月) 06:17:45ID:Y6XF9DXs
もしかして10の左の1を消して、
9を書き込んでるから、
90
になってるの?

でもなんでそうなるの?
0324nobodyさん2008/12/15(月) 06:46:16ID:???
>>321-323
釣られてみるが、その下らないプログラムをエスパーしろと?

むしろはっきりこう書いたらどうだ。
一見、Aの動作を期待しているように見えるコードで
Bの結果が得られるコードを示せ。

A 13→12→11→10→9→8→
B 13→12→11→10→90→89→88→,,,,
0325nobodyさん2008/12/15(月) 06:50:25ID:???
>>321に期待
0326nobodyさん2008/12/15(月) 08:16:16ID:???
                |
                |
                |
                |
     /V\        ,J
    /◎;;;,;,,,,ヽ
 _ ム::::(;;゚Д゚)::| ジー
ヽツ.(ノ::::::::::.:::::.:..|)
  ヾソ:::::::::::::::::.:ノ
   ` ー U'"U'
0327nobodyさん2008/12/15(月) 08:35:31ID:???
得られるものがないんだから回答者は相手にするなっての
いい加減学習しろ
0328289です2008/12/15(月) 09:02:53ID:7RJYXvH2
>>303
>PDOのコンストラクタで指定してみるっていう手
すいません、具体的にどう書けばいいのでしょうか

>ステートメントでsqlite_busy_timeout(100000) を発行
sqlite_open を使ってないので???

ttp://phpspot.net/php/man/php/function.sqlite-busy-timeout.html
一応、↑ココを参考に下記の記述しましたがはじかれました
$db=new PDO ($dsn);
$db->busyTimeout(10000);
0329nobodyさん2008/12/15(月) 10:11:37ID:???
いろいろ試してみた?

うーん、そりゃはじかれるだろ。
ただ、はじかれましたで、何かが得られたりはしないと思うし、
どう試して、どういう結果になったのかがわからなきゃフォローのしようがない
0330289です2008/12/15(月) 10:41:07ID:7RJYXvH2
ttp://www.mail-archive.com/[email protected]/msg13901.html
同じケースがありました
あきらめます


0331nobodyさん2008/12/15(月) 11:13:49ID:???
>>330
その参照先には何も理由とか、無理とか書いてないよな?
だいたい、beginでエラー返してくれるんだったら、何も問題ないわけだが
0332nobodyさん2008/12/15(月) 14:36:42ID:???
あきらめたらそこで試合終了だよ(AA略
0333nobodyさん2008/12/15(月) 14:52:01ID:???
年がばれますよおっさん乙
0334 ̄ ̄ ̄ ̄ ̄)/ ̄ ̄ ̄ ̄ ̄ ̄ ̄2008/12/15(月) 15:11:35ID:vRJjZHan
     /⌒ヽ
    / ^ ω^j、
 _, ‐'´  \  / `ー、_
/ ' ̄`Y´ ̄`Y´ ̄`レ⌒ヽ
{ 、  ノ、    |  _,,ム,_ ノl
'い ヾ`ー〜'´ ̄__っ八 ノ
\ヽ、   ー / ー  〉
\ \`ヽ-‐'´ ̄`冖ー-く
|| \ \         \     ∧_∧
||   \ \         \  ( ´Д`) オイ、なんか変なのがいるぞ
||    \ \         \ /     ヽ
||      \ \         / |  | |
||       \ \∧_∧ (⌒\|__/ /
          ヽ(     )絶対目合わせるな  ∧_∧
           /   く          \  (    ) うわー、なんか言ってるよ
           |     \           \/    ヽ
0335nobodyさん2008/12/15(月) 15:47:28ID:???
AAオタク乙
0336nobodyさん2008/12/15(月) 16:27:28ID:6UH6h1c5
$a = array('x'=>'X','a'=>'A',0=>'B',1=>'C',2=>'Y',3=>'Z');
ksort($a,SORT_REGULAR);
print_r($a);
のように5.2.5で走らせると結果が
Array
(
[x] => X
[0] => B
[a] => A
[1] => C
[2] => Y
[3] => Z
)
となってしまい、なんだかおかしい気がします。
SORT_NUMERIC や STRINGの場合はわかるんですが
ksrotでのREGULARってどういうソートを行ってるんでしょうか。
0337nobodyさん2008/12/15(月) 16:40:44ID:???
>>336
5.1.でも同じ現象だった
バグじゃね?
0338nobodyさん2008/12/15(月) 16:48:12ID:???
>>336
キーに0が入るとだめだめってことかね
0がないときの動作は正常
<?php
$a = array('x'=>'X','a'=>'A',0=>'B',1=>'C',2=>'Y',3=>'Z');
unset($a[0]);
ksort($a,SORT_REGULAR);
var_export($a);

array (
'a' => 'A',
'x' => 'X',
1 => 'C',
2 => 'Y',
3 => 'Z',
)
0339nobodyさん2008/12/15(月) 16:56:18ID:???
連想配列のときに数字と文字をごっちゃにしたらソートできないわな
0340nobodyさん2008/12/15(月) 18:47:16ID:6UH6h1c5
バグっぽいですか。ありがとうございます。

>>339
sort asort あたりだとデフォやREGULAR指定でも問題ないんですけどね。
ksortのときだけSORT_STRINGにでもしておかないと場合によっては想定外の動作しそう。
0341nobodyさん2008/12/15(月) 22:10:30ID:Y6XF9DXs
質問

アクセスカウンタ関係とか、
ファイルロック関係とか、
ライブラリみたいな形で
まとまってるものってないの?
0342nobodyさん2008/12/15(月) 22:18:16ID:Y6XF9DXs
質問

解説サイト見ると、
「ファイルがロックされているかどうか、
返り値をみて確認したほうが良い。

ファイルがロックされていないのに
ロックされていると勝手に決め付けて
処理をすすめてしまう可能性がある」

と書いてあるのですが、これって本当に
いちいち確認したほうがいいの?

ロックが取得できなかったときは、
そのまま待機に入るのではないの?
0343nobodyさん2008/12/15(月) 22:19:42ID:???
通常の配列と連想配列がごっちゃになったデータのソートなんて、未定義なんじゃねーの?
個人的にはNotice出してくれてもいいくらい
0344nobodyさん2008/12/15(月) 22:28:37ID:???
>>342
文章は読む気がしないからコードを書いて質問したまえ
0345nobodyさん2008/12/15(月) 22:31:29ID:???
素朴な疑問なんですけど、phpってやっぱり小規模WEBシステムにし
か向かないのでしょうか?大規模サイトだとパフォーマンスが悪いのですか?

ただ、mixiとかの大規模システムでもphpで運営してるそうなのでその辺りの関係がいまいち分かりません。
そもそもどんな言語で開発をしたとしても最終的に実行される時には、
機械語に翻訳されて実行される訳だから速度なんて変わらない気がするのでが実際のところどうなんでしょうか?
0346nobodyさん2008/12/15(月) 22:32:36ID:???
>>345

>>1
0347nobodyさん2008/12/15(月) 22:32:50ID:???
>>1
0348nobodyさん2008/12/15(月) 22:34:02ID:???
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
0349nobodyさん2008/12/15(月) 22:34:20ID:???
>>345
>>1読め
0350nobodyさん2008/12/15(月) 22:35:14ID:???
IDも出せないチキン野郎はおとといきやがれ!
03513452008/12/15(月) 22:41:53ID:???

チキンは嫌い!!
俺から逃げるな!!
0352nobodyさん2008/12/15(月) 22:42:38ID:SRI0Veq9
PEARを使ってみたいのですが
PHPを開発しているPCが諸事情でネットに繋いでません。
そのPCにZIP圧縮をするPEARを入れたいのです。

PEARのサイトでArchive_Zip-0.1.1.tarをダウンロードして解凍したのですが
それからどうすればいいかが分かりません。

オフラインでこのArchive_Zip-0.1.1をインストールするには
どういう手順になるのですか?
0353nobodyさん2008/12/15(月) 22:45:08ID:???
解凍する→適当な場所に置く→それをincludeする
0354nobodyさん2008/12/15(月) 23:38:41ID:???
>>341
公式サイトの関数一覧じゃ足りんの?
03553522008/12/16(火) 00:14:38ID:p4XUaZgR
>>353
えっ?それだけ?

眠いので明日起きたら実験してみます。
0356nobodyさん2008/12/16(火) 00:17:52ID:1rcPvBlh
どうしても楽天APIがやりたいのですが、PHP全く初心者です。何も知りません。
楽天APIのブログのをコピペして使おうと思ってます。

まず必要なものは、パソコン、サーバー、ドメイン、terapad、ホームページビルダーのほかに何がありますか?
terapadで保存したものをサーバーにアップしましたが、保存の仕方が間違ってたのか、うまくいきませんでした。
言語はUTF-8、形式は何で保存したら良かったんでしょうか?
よろしくお願いします。
0357nobodyさん2008/12/16(火) 00:20:07ID:???
>356
うまくいきませんでした、じゃエスパーが来るまでお待ちいただくことになりますが。

エラーの内容をどうぞ。
0358nobodyさん2008/12/16(火) 00:30:40ID:xUK+da4V
>>354
(1)ファイルが存在するかどうか、確認する
(2)もしファイルが存在していたら、次の処理に進む
(3)もしファイルがなかったら、「指定されたファイルが存在しません」と
表示して、プログラムを止める
(4)ファイルが読み込み可能かどうか調べる
(5)もし読み込み可能なら次の処理に進む(だめならエラー)
(6)ファイルを読み込みモードでオープンする
(7)ファイルをロックする
(8)ファイルからデータ-を読み込む
(9)データ-を1プラスする
(10)ファイを書き込みモード(ファイルの内容クリア)でオープンする
(11)ファイルにさっき1プラスしたデータ−を書き込む
(12)ファイルをクローズする

こういう、一連の動作をまとめた
ライブラリとかってないんですか?
0359nobodyさん2008/12/16(火) 00:32:39ID:???
>>358
そんな単純な処理ならば自分で書いたほうが早いし勉強になるよ。
0360nobodyさん2008/12/16(火) 00:33:49ID:xUK+da4V
早いか遅いかなんて聞いてません
ライブラリとかでまとまってるのが
ないかって聞いてるんです
0361nobodyさん2008/12/16(火) 00:56:53ID:???
>>360
ライブラリならPEARとか
あとはZend Frameworkをライブラリとして使うかかな
一応FFrameworkとなってはいるが
単体でも使えるように設計されてた筈

まぁどちらを使っても>>358に書いてある
一部の手続きしか行ってはくれないがな

>>356
もうちょっとPHPとは何かを勉強した方が良い
0362nobodyさん2008/12/16(火) 01:05:10ID:???
>>356
API見てきたがPHP無くてもいいぞ
JavaScriptだけでもできる
0363nobodyさん2008/12/16(火) 01:20:15ID:???
>>361
ない。
他人の作ったライブラリなんてどうやったってかゆいところに手の届かないとこでてくる。
仮に近いライブラリあったとしても手順4がないとか5の間に別のいらない処理入ってるとかで満足いかんだろうな。
正式に依頼して作ってもらうか、自分で作るしかない。
0364nobodyさん2008/12/16(火) 01:20:51ID:???
ずれた>>361じゃなくて>>360だ。ごめん。
0365nobodyさん2008/12/16(火) 04:51:23ID:xUK+da4V
質問

ファイルが存在するか、確認する、という手順。
これをやったほうがいいのか。
あるいは、@をつけて、エラーメッセージをスルー
したほうがいいのか。意見を述べてください。
0366nobodyさん2008/12/16(火) 04:53:13ID:???
◆質問する時の注意
・ 質問者として、態度をわきまえること。
0367nobodyさん2008/12/16(火) 04:53:37ID:xUK+da4V
ちなみに、@でエラーメッセージを出さない方法、
これってエラーが出ないっていうだけで、
スクリプトの実行は中断されず、
実行が進みますよね。

これってまずくないですか?
0368nobodyさん2008/12/16(火) 05:00:26ID:xUK+da4V
もしかしてデーターベースであれば、
ファイルロックの仕組みが最初から
備わってるの?
0369nobodyさん2008/12/16(火) 05:01:00ID:???
>>366
           ∠_ンY7=r'─--- 、:;;__________!__ヽ//-‐ァ
              ,ハ:::::|l:::::::::r-┐:::::::::::::::::::::7::二7,/         ,. -───-
            ,.:'" ヘ.,_!!______::::::::::::[]:::l]::::::/::::::::/、       /
-─- 、.,_       ,:'  ,      /  ̄ ̄"''' ー-'-‐ ''"^ ヽ.     ,'   大 分 そ
     `ヽ.   /  / /  / ; !:.:.:.:.:.:.:.:! ', ヽ.  、    ':,    i   変 か う
 帰 分  ', ,.イ   ,'  ,' 、,_!_/」,.ハ:.:.:.:.:.:.ハ _!__  ',  ':,    ',.   |   だ. っ か
    か   i |   !  ! /|/  |./ ';.:.:.:/ |.´ハ  `ハ   ',    i  <.    な た
 れ. っ   | !   !  レ'r‐'ァ‐-=、 !:.:/  !/_,」_/_ !   i.   |    !
    た   >',  ,.! ハ ヽ ! Jリ  レ'  7´ i´ Jア'ァ  ,' i   !    ',
    か   |  V`'レ'|:.:.:!  `ー '       '、_,ン イi  ,ハ |   !    ヽ.
    ら   ,'    ! .|:.:.!'"'"     ,      ,.,.,. ハくタく!   |      `' ー-----‐
      ノ     | .|:.:人      ___       /:| |  !   |
‐--─ ''"´     .! .|:.:.:.| `: 、   ` 二フ u ,ィi:.:.:| !  :   !
          ,'  |:.:.:.|  | .>.、,    ,. イ  |:.:.:.! i  i   |
          /  ハ.:.:.!  ! /r'|、_`ニ_´  ,ィ|ヽ.|:.:.;'  |  !   ',
         ,.'‐'" ̄';.:.!イ"く /__     __/|:::::::レ'_____!_ !    ',
        /     レ' /、!::::::ヽ、   ン:::!7"´i /   `ヽ、,  i
       ,:'      、/:::;ヘ:::::::::::i-イ::::::::::|]::::::!}        ヽ. |
0370nobodyさん2008/12/16(火) 05:43:21ID:???
http://www.google.co.jp/trends?q=PHP%2Cruby&ctab=0&geo=US&geor=all&date=all&sort=0

逆転しそう
0371nobodyさん2008/12/16(火) 06:17:17ID:???
ほんと人の話を聞かないバカだな
なんで質問してるのかがとても不思議です
0372nobodyさん2008/12/16(火) 08:06:57ID:???
お礼を言わないのは>>1を満たしていないのだがな
0373nobodyさん2008/12/16(火) 09:33:49ID:7CqC2LzI
質問です。
まだ初学の段階で、画像のアップローダーなら作れるかなと思い挑戦しています。
フォームはコメントとアップロードファイル、それにsubmitボタンのみという構成です。
それらフォームの下にアップロードされた
ファイル名とそれへのリンク、コメントと時間が表示されるようにしたいと思ってます。
具体的にはファイルへの書き込み、どのように書き込めばいいか
またそれを読み込んでどのように表示させたらいいかで悩んでいます。
<?php
//初期値設定
$comment ="";
//フォームのメソッドがPOSTだったときの処理
if ($_SERVER["REQUEST_METHOD"]=="POST"){
//送信されたときの処理
if (isset($_POST["submit"])){
//日付の取得
$now = date("Y/m/d H:i:s");
//タグなどの除去
$comment = htmlspecialchars($_POST["comment"], ENT_QUOTES);
}
0374nobodyさん2008/12/16(火) 09:34:28ID:7CqC2LzI
//送信元の元のファイル名
$pic_name = $_FILES["pic"]["name"];
//サーバにアップされたテンポラリファイル名
$pic_tmp = $_FILES["pic"]["tmp_name"];
//コメントが未入力のときの処理
if (strlen($comment) == 0){
echo "コメントが未入力です。";
}
//現在位置の取得
$path = getcwd();
//OSによりディレクトリの区切り文字を分別・ファイルの保存場所の設定
if (isset($_ENV["OS"]) && preg_match(/windows/i, $_ENV["OS"])){
$path .= "\\";
}else{
$path .= "/";
}
//画像のファイル名およびtmpファイル名が1文字以上のとき
if (strlen($pic_name)>0 && strlen($pic_tmp)>0){
if (is_uploaded_file($pic_tmp)){
if (move_uploaded_file($pic_tmp, $path .basename($pic_name))){
echo "ファイルのアップロードに失敗しました。<br />";
}
}
}
0375nobodyさん2008/12/16(火) 09:35:36ID:7CqC2LzI
//ログファイルの名前の設定
$log_file = image.log;
//ログファイルを展開(無い場合は新規に作成)
$fh = @fopen($log_file, "a");
if (!$fh){
exit("ログファイルの展開に失敗しました。");
}else{
//排他ロック
flock($fh, LOCK_EX);
//書き込み内容
$log = $now ."\n";
$log .= $pic_name ."\n";
$log .= $comment ."\n";
//書き込み
fputs($fh, $log);
//ロック解除
flock($fh, LOCK_UN);
//ログファイルを閉じる
fclose($fh);
}
}
?>
0376nobodyさん2008/12/16(火) 09:36:20ID:7CqC2LzI
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>画像UPローダーβ版</title>
</head>
<body>
<h1>画像UPローダーβ版</h1>
<form action="<?=$_SERVER["PHP_SELF"]?>" method="POST" enctype="multipart/form-data">
コメント<input type="text" name="comment" value="<?=$comment?>" size="50" /><br />
添付ファイル<input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
<input type="file" name="pic" size="50" /><br />
<input type="submit" name="submit" value="アップロード" />
</form>
0377nobodyさん2008/12/16(火) 09:38:28ID:7CqC2LzI
<?php
//ここでログファイルの読み込みを行い日時・ファイル名・ファイルへのリンクを表示させる処理を行う

?>

</body>
</html>

以上になります。
よろしくお願いします><;
0378nobodyさん2008/12/16(火) 10:08:36ID:???
長くて読む気にならないので適当にレス

ログ形式は適当なデリミタを使って(とりあえず<>にする)
日時<>ファイル名<>コメント\nという感じにする
書き込んだログはfile関数で読み込む
fileで読み込んだものは改行ごとに配列に格納されるので
foreach等でまわしてexplodeでデリミタごとにさらに細分化したものを配列に収める

例)
/**
* ここはfileで読み込んだ中身
* $a = file(log_file);
*/
$a = array("2008/12/16 09:30:00<>up0<>コメント1",
"2008/12/16 09:31:11<>up1<>コメント2",
"2008/12/16 09:32:22<>up2<>コメント3");
//入れ物
$b = array();
//explodeで<>ごとに細分化したものを入れ物に格納
foreach ($a as $value) {
$b[] = explode("<>", $value);
}

この時点で$b[0]にはarray("2008/12/16 09:30:00", "up0", "コメント1")が格納されている
あとはこれを使って

for ($i = 0; $i < count($b); $i++) {
echo "<td><a href=\"{$path}{$b[$i][1]}\">{$b[$i][1]}</a></td><td>{$b[$i][2]</td><td>{$b[$i][0]</td>";
}

見たいな感じで表示する
0379nobodyさん2008/12/16(火) 10:15:16ID:7CqC2LzI
>>378
すごいです!!
ありがとうございます!!!!!
0380289です2008/12/16(火) 10:33:55ID:mtsIGhc+
>>331 PDOのtimeoutの件です お願いします
http://trombik.mine.nu/~cherry/w/index.php/2005/05/06/152/dbd-sqlite
すいません
上記からの参照先も英語なのですが
結論が分かりません
0381nobodyさん2008/12/16(火) 11:14:51ID:???
じゃ英語翻訳スレ池
0382nobodyさん2008/12/16(火) 11:53:22ID:???
>>380
結論文は読むものじゃない
感じろよ
0383nobodyさん2008/12/16(火) 16:22:45ID:UYl9yLz9
【OS名】windowsXP
【PHPのバージョン】php4.4.9、php5.26
【連携ソフトウェア】mysql
【質問内容】
preg系の関数の正規表現について質問です。
PHP4で、preg系でUTF-8を扱う際にuオプションをつけないで運用してたところ
文字化けが起きました。
その後、PHP5で試したところ、そのままで文字化けしませんでした。
ちょっと調べたところ、PHP5では鬼車という正規表現に変わったようですが、
preg系の関数でUTF-8を扱う際にuオプションが必要なのはPHP4までなのでしょうか?
0384nobodyさん2008/12/16(火) 17:13:25ID:???
php.iniの設定とかまったく同じになってるのか確認しれよ
■ このスレッドは過去ログ倉庫に格納されています