16/05/31 06:23:56.21 37ByNeIc.net
>>415
複数の値で同じ処理をする時に case ばかりを並べる場合はデフォルトでフォールスルーになってる方が便利だけどな。
でもそれ以外でフォールスルーを活用できるパターンも少ないように思うから、個人的にはどっちでもいいと言えばどっちでもいい。
ただ既存言語に合わせておいた方がトラブルが少ないんじゃないかと思う。
417:デフォルトの名無しさん
16/05/31 11:42:05.04 BNvwfi7N.net
やはり、PHPをマスターするにはWordPressでのWebサイト構築が最も効果的なのでしょうか?
418:デフォルトの名無しさん
16/05/31 12:09:34.37 pF41PCQ4.net
一番遠回りの道を何故選ぶ?
ヒマなのか?
419:デフォルトの名無しさん
16/05/31 13:10:11.01 BNvwfi7N.net
>>418
代案を出さなきゃサル呼ばわりされちゃうよ?
420:デフォルトの名無しさん
16/05/31 13:29:03.85 rEPhaK+h.net
自分でブログなり何なりを作って運用する。
cmsははノンプログラマの逃げ技だと思っている。
421:デフォルトの名無しさん
16/05/31 15:21:14.32 WEIThh9S.net
mkdir('/tmp/hoge/hoge', '0777', true);
としたところ、/tmp/hogeまでは作成されましたが
その下が権限エラーで作成できませんでした
再帰的に作成するというのだから、
それまでのパーミッション設定までしてくれていいんじゃないかと思うんですが
何故こんな挙動なんですか?
自分でループなどで作らないといけないということでしょうか?
422:デフォルトの名無しさん
16/05/31 15:25:18.97 CpuDRB98.net
>>421
それってもしかして、
/tmp の下に hoge がない状態で、
/tmp/hoge/hoge を作ろうとしたの?
423:デフォルトの名無しさん
16/05/31 15:26:51.23 WEIThh9S.net
>>422
そうですよ
再帰的に作成っていうのはそういうことでは?
424:デフォルトの名無しさん
16/05/31 15:27:11.59 3Enb+VVF.net
mkdir('/tmp/hoge/hoge', 0777, true);
425:デフォルトの名無しさん
16/05/31 15:28:11.55 LdI3VN67.net
>>421
'0777' => 0777
426:デフォルトの名無しさん
16/05/31 15:41:01.77 WEIThh9S.net
>>424-425
パーミッションの書き方が間違ってたのですね
ありがとうございました
427:デフォルトの名無しさん
16/05/31 17:01:22.48 pF41PCQ4.net
10年前くらいにパーミッションをストリングリテラルで書いたのを思い出した。
428:デフォルトの名無しさん
16/05/31 17:27:16.13 xVlROlYS.net
今回のは、'0777' をphpが10進数の777にしてしまったケースだね
0777 は8進数なので正しく設定できる
429:デフォルトの名無しさん
16/05/31 18:55:58.27 X6HwP8rQ.net
>>420
wordpressはCMSですらない。あれはただのブログシステム。
ブログシステムとしては素晴らしい出来だが、
あれでコーポレートサイトとか作る奴は後先考えない、はた迷惑なマヌケ。
430:デフォルトの名無しさん
16/05/31 18:59:28.64 MlesSNZX.net
>>429
根拠を具体的に教えてくれ
煽りとかじゃなくてWordPress扱ったことないんだ
431:デフォルトの名無しさん
16/05/31 19:10:23.60 WPXjVdwG.net
中小零細もそこそこ大きい会社でもCMSシステムを実装して納品してもちゃんと使ってくれないんだけど。
WPも結局、記事投稿してないところが大半。しても業務日報。宝の持ち腐れ。意味ねーよ。
432:デフォルトの名無しさん
16/05/31 19:21:34.07 37ByNeIc.net
>>431
CMS使ってくれないよねぇ。
先方の担当者だけで回せるようにと要求に沿ったものを作ってあるのに、結局こっちに運用を回してくるというw
433:デフォルトの名無しさん
16/05/31 20:06:34.71 X6HwP8rQ.net
>>430
ん? まず、コードがクソ。
全く抽象化されておらず、このご時世にフラットなコードを細切れにしてるだけのクソ設計。見通し最悪。
DBモデルデザイン、超クソ。
カスタムフィールドを実現するためにとったDB設計がクソの骨頂。
そのせいで、DBアクセスが凄まじく重い。とってきたデータをPHPでforeachループしまくるので遅さははんぱない。
RDB使ってる意味が全く無いクソ設計。
そんなんだから、普通ならコンマゼロ数秒で返せるレスポンスを数秒単位かけて返す。
なんかくるくる回りまくる。
アクションフックとか超クソ。
そんなん、Wordpressでしか使わない。PHPの知識は全く役に立たない。
あれはPHPじゃなくてWordpressという言語。
PHP覚えれば大抵のことは出来るはずなのに、一度Wordpressを使おうと思ったらまた0からやり直し。本当にクソ。
全ファイルドキュメントルート下。本当に頭おかしい。
リンクに片っ端からwp-なんたらいうディレクトリ名があって、
「わたしWordpressちゃんつかってまー」と公共の場で宣言しまくり。頭おかしい。
次から次へと脆弱性発見されるから更新推奨されまくり。
安い金で一度導入したら、あとは死ぬまでアップデートするかしないか地獄。
アップデートしなければカモ、したら動かなくなるかもしれん危険と隣合わせ。使うやつマジマゾ。
こんなんでいい? まだ言う?
434:デフォルトの名無しさん
16/05/31 20:14:58.84 MlesSNZX.net
>>433
軽い気持ちで聞いた俺が悪かった 謝る
435:デフォルトの名無しさん
16/05/31 20:18:03.23 N6PjvSqh.net
じゃあ、これなら良いと言うものを作って見せて
436:デフォルトの名無しさん
16/05/31 20:18:34.68 X6HwP8rQ.net
>>434
「Wordpressを使うものはさらにおぞましきものを見るだろう」
437:デフォルトの名無しさん
16/05/31 20:20:17.34 X6HwP8rQ.net
>>435
お前が普段目にして「これはいい」と思った物は、もしかしたらオレが作ったも物だ。
お前が「これはいい」と思った物がないなら、それは今オレが作っていてまだ世に出ていないからだ。
438:デフォルトの名無しさん
16/05/31 20:27:07.76 N6PjvSqh.net
期待しているよw
439:デフォルトの名無しさん
16/05/31 20:29:00.66 WEIThh9S.net
そうか
パーミッションって八進数で書いてるだけで、本質は整数なんですね
だから0777は10進数で511と書いているのと同じ
それが分かっていたら文字列にすることもなかったですね
440:デフォルトの名無しさん
16/05/31 20:31:28.66 X6HwP8rQ.net
>>438
うむ。期待してくれたまえ。以下に自分がマヌケだったかを思い知らせてくれよう。
441:デフォルトの名無しさん
16/05/31 20:32:59.53 X6HwP8rQ.net
>>439
10年前のオレ、ようこそ。お前は成長する。
442:デフォルトの名無しさん
16/05/31 21:37:52.60 XoeoyrEz.net
concrete5ってどうですか?
443:デフォルトの名無しさん
16/05/31 22:32:35.67 ghr06yjT.net
>>414
無名関数のときだけは、
Perlのreturn仕様(省略時は最後の式が返るとかそんなん)が羨ましく思える
444:デフォルトの名無しさん
16/05/31 22:35:23.07 MhuNyaGk.net
パナマ文書流出したのもWordPressだよね
ウェブに重要文書置くなというのはわかるが
セキュリティホール対策頻繁にやらないといかんのはきついね
445:デフォルトの名無しさん
16/06/01 10:26:11.68 fICAMZhq.net
PHPの基礎は学んだ
まずは何を作ってみるのがいい?
446:デフォルトの名無しさん
16/06/01 14:40:16.20 VVSddd00.net
話し相手になってくれるサイトを作る
447:デフォルトの名無しさん
16/06/01 15:31:09.74 wQ3dwFqG.net
>>446
例えば?
448:デフォルトの名無しさん
16/06/01 15:36:51.26 VVSddd00.net
あたかも誰かがチャットの相手してくれているかのように
449:デフォルトの名無しさん
16/06/01 15:43:44.93 jVC0+jUB.net
作りたいものを作ればいいのに。
作りたいものがないなら作らなければいいのに。
450:デフォルトの名無しさん
16/06/01 15:53:04.28 44n+CxQk.net
>>448
そんなサイトがあたかもしれない。
451:デフォルトの名無しさん
16/06/01 17:01:57.45 O+gTBZeC.net
チャットルーレット
452:デフォルトの名無しさん
16/06/01 18:58:44.73 o4JIGiaf.net
文字列をシングルクォートで囲んだ場合エスケープしないと理解していますが
'\'
がエラーになりました
echo '\\'
だと\が表示されます
シングルクォートでも\だけはエスケープされるのでしょうか?
453:デフォルトの名無しさん
16/06/01 19:09:39.19 ldMD50kq.net
シングルクオートだろうが、ダブルクオートだろうがエスケープされる。
シングルクオートは変数展開がされない。
つまり、お前の勘違い。
454:デフォルトの名無しさん
16/06/01 19:24:10.78 o4JIGiaf.net
echo 'abc\nabc';
と
echo "abc\nabc";
で表示が変わりますよね
変数展開だけではないように見えますが
455:デフォルトの名無しさん
16/06/01 19:54:00.25 O+gTBZeC.net
マニュアル見ろよ
456:デフォルトの名無しさん
16/06/01 20:15:21.36 rdHAS6On.net
>>454
よく読め
URLリンク(php.net)
457:デフォルトの名無しさん
16/06/01 20:24:48.47 o4JIGiaf.net
シングルクォートで囲んだ場合でも
シングルクォートとバックスラッシュはエスケープする必要があるのですね
シングルクォートをエスケープする必要があるので、
バックスラッシュもエスケープしなければならないということですね
ありがとうございました
458:デフォルトの名無しさん
16/06/01 20:29:50.97 RA3wR2In.net
シングルクォートの中のシングルクォートのエスケープは SQLと同じようにダブルシングルクォートだった方がよかったな、なんてちょっと思うな。
459:デフォルトの名無しさん
16/06/01 21:10:43.25 o4JIGiaf.net
後ろに\と'以外が来た時には
エスケープシーケンスとしての指定がキャンセルされるのか・・
と思いましたが
もともとエスケープシーケンスはそういう挙動をするものですね
あまり深く考えたことがなかったですが
460:デフォルトの名無しさん
16/06/01 21:35:52.06 GiudJL8+.net
名前空間って使う?
461:デフォルトの名無しさん
16/06/02 00:06:26.06 IwpY6iix.net
クラスと名前空間のどっちかは使ってる
462:デフォルトの名無しさん
16/06/02 06:29:17.74 7N0T/hEv.net
必要な時は使う。いらない時は使わない。
お前はそれを使っていると呼ぶだろう。
463:デフォルトの名無しさん
16/06/02 09:17:10.28 jhQNhgjV.net
名前空間って名前が被るのを防ぐために使うんだよね?
だったら被らないような名前つければいいんじゃね?
464:デフォルトの名無しさん
16/06/02 10:57:02.14 Bszjc45u.net
usleepで遅延できる最大時間は何秒ですか?
465:デフォルトの名無しさん
16/06/02 11:08:10.74 Bszjc45u.net
名前空間は他のプログラムと名前がぶつからないようにしたいような
ライブラリを書く時に使うようなものですので
そうでない場合は気にする必要はないと思います
466:デフォルトの名無しさん
16/06/02 11:50:09.15 LIz4OI80.net
PHP逆引きレシピ 第2版 (PROGRAMMER’S RECiPE)
これさえあれば何だって作れちゃうね!PHP最強伝説!!!
467:デフォルトの名無しさん
16/06/02 12:21:37.61 Bszjc45u.net
>>464の件ですが
echo PHP_INT_MAX / (60*60*24*1000000);
で64bitマシンだと106751991日もsleepできると分かりました
マイクロ秒にしたら桁が溢れるんじゃないかと思ったのですが
気にする必要はなさそうですね
468:デフォルトの名無しさん
16/06/02 17:50:29.42 x6y0PRZ+.net
>>466
あれがあれば無敵だよな
469:デフォルトの名無しさん
16/06/02 19:03:01.78 7N0T/hEv.net
買ってあるが本棚で眠っている。無くても何でも作れるので必要ない。
470:デフォルトの名無しさん
16/06/03 10:05:42.48 uD7B680E.net
パーフェクトPHPと逆引きレシピで何でも作れるようになれる
471:デフォルトの名無しさん
16/06/03 10:14:36.48 a/yvIYtd.net
最近のPHPの本でいいのはないの?
472:デフォルトの名無しさん
16/06/03 10:57:02.65 jxJ/wrE9.net
関数型言語は早く短く書けるそうです
PHPより早く書けるのでしょうか?
PHPの「早さ」は標準機能の強力さにあるので、
やはりPHPが最速でしょうか?
473:デフォルトの名無しさん
16/06/03 11:09:10.82 jxJ/wrE9.net
「リモートにあるXMLを配列に入れる」
を一行で書けるPHP以上に開発効率のいい言語はなさそうですね
474:デフォルトの名無しさん
16/06/03 11:18:20.27 uD7B680E.net
public function setContent($content)
{
$this -> content = $content;
}
setContent(peropero);
echo $content;
↓
peropero
?
475:デフォルトの名無しさん
16/06/03 12:34:38.26 uqXPZzfx.net
ことweb向けならかなり手間のかからない部類だと思うけど、最速かどうかを気にしてどうするの。
どっちにしても自分でやってみなけりゃわからないと思うよ。
476:デフォルトの名無しさん
16/06/03 19:20:29.28 L26ySebn.net
PHPは短くなんかない。メソッドが豊富だから恩恵を受けているが、
変数に必ず$がついて1文字余分だし、メンバ参照もアロー演算子のせいで普通の言語よりも1文字余分。
大体コードゴルフとかすると、Rubyにこてんぱんに負ける。
477:デフォルトの名無しさん
16/06/03 19:49:15.43 rDkM18OB.net
コードゴルフはあれは仕事とか効率とかそういうんじゃないから
芸術だから
478:デフォルトの名無しさん
16/06/03 20:12:29.15 cokHCpg9.net
PHPに出来ないことはないってカンジだネ
479:デフォルトの名無しさん
16/06/03 20:24:58.84 oXnkqg6Y.net
PHPやJavaの次ぐらいにコード量多くなる部類じゃね
480:デフォルトの名無しさん
16/06/03 20:25:30.42 oXnkqg6Y.net
PHPや→PHPは
481:デフォルトの名無しさん
16/06/03 20:41:09.86 jxJ/wrE9.net
組み込み関数などを使わず
単純にアルゴリズムを競うだけなら、当然PHPは分が悪いでしょう
ですが現実にはそんなコードはほとんど書きませんよね
482:デフォルトの名無しさん
16/06/03 20:41:48.01 L26ySebn.net
まぁ、長くなるのはObj-Cが頭一つ抜けてる。
483:デフォルトの名無しさん
16/06/03 20:49:43.74 L26ySebn.net
>>481
そんな話はしてない。
ダラーとかアローとか書きまくっててなんか感じない奴は根本的にセンス無い。
484:デフォルトの名無しさん
16/06/03 20:57:02.48 jxJ/wrE9.net
>>483
は?
そんな表層的な所に拘ってるあなたの方がセンスないと思いますよ
もちろん、エレガントだとは言いませんが、
そこは本質的ではありません
485:デフォルトの名無しさん
16/06/03 21:00:27.92 cokHCpg9.net
けんかすな
最強のプログラム言語PHPの使い手同士なかよく
486:デフォルトの名無しさん
16/06/03 21:03:42.69 jxJ/wrE9.net
PHPは美しい言語ではありませんが
「用の美」があるのです
自分はそこが気にいっています
487:デフォルトの名無しさん
16/06/03 21:07:08.61 L26ySebn.net
お子様は今日も元気でいいな。
488:デフォルトの名無しさん
16/06/03 21:08:20.58 L26ySebn.net
>>485
こんな子猿と同列に語るな、マヌケ。
489:デフォルトの名無しさん
16/06/03 21:13:09.94 cokHCpg9.net
また口だけのおっさんかよ
490:デフォルトの名無しさん
16/06/03 21:21:27.36 L26ySebn.net
おまえ、毎回自己紹介得意だな。
491:デフォルトの名無しさん
16/06/03 21:28:15.12 L26ySebn.net
腕があがるほど一周回ってジャブの重要性に気づくんだ。
お子様は華やかな技ばっかに気をとられるがな。
492:デフォルトの名無しさん
16/06/04 10:12:26.21 YRPaaGZz.net
コマンドライン引数を書き換えることでプロセス名を変更するということを
PHPでしたいのですが
$argv[0] = "hoge";
とやっても変わりませんでした
ググると-Hオプションで引数リストを隠せるようですが
PHP内で書き換えたいです
perlでは出来るそうです
これは仕様上の欠陥ですね?
493:デフォルトの名無しさん
16/06/04 10:53:15.27 Atk6t3Xm.net
setproctitleみたいなことをargvを使ってやりたいの?
URLリンク(php.net)
494:デフォルトの名無しさん
16/06/04 14:55:35.46 YRPaaGZz.net
ファッ!?
そんな関数あったんですね
さすがPHPと言わざるを得ません
ありがとうございました
495:デフォルトの名無しさん
16/06/04 15:38:46.82 oUkZJriQ.net
何が凄いかというと、
あんなわけのわからん書き込みで何を欲しているのか理解できる>>493の判断力と、
>これは仕様上の欠陥ですね?
こういう低脳っぷり。
496:デフォルトの名無しさん
16/06/04 15:50:28.37 YRPaaGZz.net
>>495
お前には理解できないだけだろw
お前みたいな奴をペチパーっていうんだろうな
497:デフォルトの名無しさん
16/06/04 16:01:22.36 oUkZJriQ.net
ほら、更に低脳を上塗り。低能な上に低脳。もう、様式美。
498:デフォルトの名無しさん
16/06/04 16:28:58.88 YRPaaGZz.net
ワロス
世界せまww
499:デフォルトの名無しさん
16/06/04 16:45:59.06 YRPaaGZz.net
setproctitleはpeclを入れないといけないので汎用性に難がありますね
ぜひ標準で入れて欲しいところです
現時点では仕様上の欠陥と言わざるを得ません
500:デフォルトの名無しさん
16/06/04 16:52:28.28 oUkZJriQ.net
おまえのニーズで世界は回ってないってことを気づかないとダメだよ。低脳くん。
501:デフォルトの名無しさん
16/06/04 16:53:29.36 oUkZJriQ.net
しかし、相変わらずこのスレはサルが後を絶えないな。まさしく動物園だ。
502:デフォルトの名無しさん
16/06/04 17:13:08.01 YRPaaGZz.net
は?単なる一般的ニーズだが?
CLIで使おうと思ったらこれが出来ないと困ります
ワードプレスでもいじってろピグミーマーモセットが
503:デフォルトの名無しさん
16/06/04 17:15:03.71 K+q297Cv.net
URLリンク(php.net)
マニュアル読めないID:YRPaaGZzもNGで
504:デフォルトの名無しさん
16/06/04 17:18:49.61 oUkZJriQ.net
“も”ってなんだよ、おれもこのサルと同じ扱いなのか?
勘弁しろよ…、本当に。
505:デフォルトの名無しさん
16/06/04 18:11:47.00 oUkZJriQ.net
本当にPHPerはサルしかいないな…
506:デフォルトの名無しさん
16/06/04 18:36:42.24 1P8M50yx.net
サルだけあってID真っ赤っ赤だな
それは顔か?尻か?w
507:デフォルトの名無しさん
16/06/04 18:51:30.04 YRPaaGZz.net
>>503
え、なんですこれ
もう出来るんですか?
さすがPHPと言わざるを得ませんね
ありがとうございました
508:デフォルトの名無しさん
16/06/04 18:54:08.22 FTbmrFHZ.net
真っ赤?それは俺のこの手だ
csvや配列で持ってるデータを複雑な条件で検索したいときって
DBに格納するのが一番良いんかね
509:デフォルトの名無しさん
16/06/04 19:01:04.88 K+q297Cv.net
>>508
まだベータだけどLINQ for PHPとか
510:デフォルトの名無しさん
16/06/04 19:19:03.12 FTbmrFHZ.net
>>509
まさにこれなんだけど、こんなんがあって今βってことは
やっぱこれ使う以外だとDBに入れるか自前で検索を組むしかないってことか
ありがとう
511:デフォルトの名無しさん
16/06/04 19:44:25.80 K+q297Cv.net
>>510
PackagistでLINQで探してみたら結構いろいろ実装があるみたいよ
探してみては如何
512:デフォルトの名無しさん
16/06/04 20:36:49.27 FTbmrFHZ.net
>>511
ちょうどいろいろみてた
負荷と頻度考えて検討するわ
513:デフォルトの名無しさん
16/06/04 21:59:15.81 MFqaq7Mp.net
>>512
レポよろ
514:デフォルトの名無しさん
16/06/05 12:03:20.74 xob/1tpk.net
「次のn時m分」を取得するにはどうすればいいですか?
515:デフォルトの名無しさん
16/06/05 12:03:29.70 zsJffcbc.net
PHPであらゆることが出来るようになっていくなあ
PHPさえマスターすれば仕事に困らないのさ
516:デフォルトの名無しさん
16/06/05 13:07:49.58 9mzbmJB7.net
>>514
setTimeして戻ってたら+1 dayするとか
function nextHM(DateTime $dt, $h, $m) {
$next = clone $dt;
$next->setTime($h, $m);
if ($next <= $dt) {
$next->modify('+1 day');
}
return $next;
}
517:デフォルトの名無しさん
16/06/05 13:24:18.21 xob/1tpk.net
>>516
datetimeクラスなんてあったんですね
勉強になります
ありがとうございました
518:デフォルトの名無しさん
16/06/05 18:26:14.42 Tkwljjf2.net
>>514
こんな感じで計算をがんばるとか
function nextHM($t, $h, $m)
{
$dif = date('Z');
$lt = $t + $dif;
$nt = $lt - $lt % (24 * 3600) + $h * 3600 + $m * 60;
if($nt <= $lt) $nt += 24 * 3600;
return $nt - $dif;
}
$t は UNIXタイムスタンプね。
519:デフォルトの名無しさん
16/06/05 19:51:28.22 TM3QCo+d.net
見ろ、コードがゴミのようだ!
520:デフォルトの名無しさん
16/06/05 19:58:07.41 CV0omAn/.net
これは酷い
521:デフォルトの名無しさん
16/06/05 20:12:32.45 Tkwljjf2.net
え、計算でやろうと思ったらこんなもんじゃね?
UTC からの時差を求め、ローカルタイムに直し、その日の指定時刻を求め、既に過ぎていたら日時なら翌日にし、UTC に直して返す、ということを淡々と並べただけだが。
522:デフォルトの名無しさん
16/06/05 20:24:39.75 Tkwljjf2.net
あ、サマータイムに対応できないとかうるう秒とかどうなってんだって話なら、それはその通りだ。
523:デフォルトの名無しさん
16/06/05 23:07:07.91 Iavazaq6.net
レンタルサーバーを借りたのでチャットができるホームページを作りたいです
その為にwordpressの上でチャットプログラムを動かしたいと考えています
まず何から取り掛かれば良いのか分かりません
どのような知識が必要になり、どう勉強すれば良いか教えて頂きたいです
524:デフォルトの名無しさん
16/06/05 23:21:32.87 Tkwljjf2.net
>>523
wordpress は置いといて、取りあえずチャットを作ってみたら。
定期的にリロードする式のチャットなら簡単だし、サンプルになりそうなのは探せばすぐ見つかるんじゃね。
525:デフォルトの名無しさん
16/06/06 00:49:55.95 KjVn6FKA.net
>>516>>518
まじかよおまえら
526:デフォルトの名無しさん
16/06/06 00:53:43.37 O157QY9D.net
>>518
クソコードに認定します。
527:デフォルトの名無しさん
16/06/06 01:05:50.44 mm33J6PT.net
代替案を出さずに煽るだけ
口だけオッサン
528:デフォルトの名無しさん
16/06/06 01:21:12.75 BBAYr+Aj.net
>>525 と >>526 で意見が割れてるから、この二人が話し合えばいいように思う
529:デフォルトの名無しさん
16/06/06 04:46:49.75 J1e3bhcQ.net
>>527
あのコード見てもこんな事言ってるというだけで、
如何にこのアゲバカが何も知らない低能かという事がハッキリしたな。
530:デフォルトの名無しさん
16/06/06 07:47:24.77 OUgENTLv.net
>>527
ほんそれ
531:デフォルトの名無しさん
16/06/06 07:59:47.71 z3VswDq0.net
>>524
ありがとうございます
とりあえずは簡単でも動くプログラムを目指してみます
サーバーとクライアントのチャットならイメージが湧くんですけど、phpでやるとなるとサーバー側のプログラムだけで実現するんですよね・・
リロードするということはデータベースにログを格納して参照するという認識で合ってい
ますか?
532:デフォルトの名無しさん
16/06/06 08:33:02.73 xfsRheZo.net
>>531
データベースに手を出す前に、まずはプレーンなファイルにログを保存する方が簡単。
直近の100行くらいをそのままテキストファイルに保存しておくとか。
掲示板と変わらないよ。
名前とか色とか時刻みたいなパラメータを個別にフィールド化したいなら行を適当に書式化する必要があるけどね。
例えばこんな感じ。
2016/06/05 23:10:01<タブ>system<タブ>000000<タブ>たろうさんが入室しました<改行>
2016/06/05 23:10:01<タブ>たろう<タブ>FF0000<タブ>こんばんは<改行>
2016/06/05 23:10:06<タブ>じろう<タブ>00FF00<タブ>やあ<改行>
このファイルを file_get_contents するとファイルの中身全部がひとつの文字列として取得できる。
これを<改行>(¥n)で explode すれば行ごとの配列になる。
各行を<タブ>(¥t)で explode すればフィールド毎の配列になる。
新しい書き込みは行ごとの配列に追記し、必要な件数になるように array_splice なんかで調整する。
それを join なんかで配列を文字列化してファイルに保存する。
入力値にタブや改行が含まれている場合はスペースに置換する対策をするとして preg_replace なんかを使う。
ログファイルの読み書きを排他するためには flock を使う。
flock はログファイルそのものに対してやるんじゃなく、別のロックファイルを使うのを勧める。
flock でのロックなら使い終わったロックファイルは消さずに放置していい。
533:デフォルトの名無しさん
16/06/06 10:29:24.73 z3VswDq0.net
>>532
具体的なアドバイスありがとうございます
ファイルの読み書きでも実現できるんですね・・
すごく丁寧に手順を教えて頂けたのでその方法でやってみようと思います
排他制御など考えることも多そうですが、だいぶイメージが湧きました
534:デフォルトの名無しさん
16/06/06 10:53:52.96 gg/xefDK.net
>>531
>データベースにログを格納して参照する
それであってる。リロードに関してはAjaxとか使えばいい。
ファイルもいいが、データベースの方が応用利くのでおすすめだぞ。
535:デフォルトの名無しさん
16/06/06 11:07:34.48 SWJRXsGZ.net
一度DBに慣れるとファイル使うのめんどくさくなるよね
536:デフォルトの名無しさん
16/06/06 11:28:46.71 xfsRheZo.net
いずれはDBにも手を出すことになるだろうが、今の段階ではまずファイルがいいよ。
DBの準備、テーブルの準備、DBへの接続、開発中のデータのメンテナンス、etc. 手始めにチャットをちょろっと作るには少々面倒だと思う。
しかも自前のファイル処理は排他なんかの基礎的な技術も使うちょうどいい題材だと思う。
537:デフォルトの名無しさん
16/06/06 12:02:24.68 z3VswDq0.net
>>534,536
お二人ともありがとうございます
まだphpを学習している段階ですので、ファイルから入りデータベースの利用も考えて拡張していけたらと考えています
MySQLは多少触ったことがあるのですがAjaxとやらはJSで書かれてるみたいなんで心配ですね
当面の間の目標は決まったので取り組んでいきたいと思います
538:デフォルトの名無しさん
16/06/06 12:48:53.75 cB/a+aRW.net
unixタイムスタンプの変数名として$dateを使うのは変ですか?
dateといえば通常日付を持つオブジェクトですが
phpの場合、dateは日付を文字列に直す関数の名前なので
phpの作法としては良くないのか?とも思います
どうなのでしょうか?
539:デフォルトの名無しさん
16/06/06 12:56:02.62 i0QOUB1M.net
お前のシステムのタイムスタンプは日付単位なのか。すげえな。
540:デフォルトの名無しさん
16/06/06 13:05:19.30 xfsRheZo.net
>>538
マニュアルではタイムスタンプを取る関数の引数リストは timestamp となってるから、PHP流にするならそれに従うとか?
おれは近距離で使う場合なら $t とか $tm で済ますな。
541:デフォルトの名無しさん
16/06/06 14:07:10.33 VZp5fXoT.net
一度でいいから口だけオッサンの溜め息が出るほどに素晴らしい華麗なプログラムを見せて欲しいものだ
まあ、それが出来ないから口だけオッサンなわけなんだけれどもね
542:デフォルトの名無しさん
16/06/06 14:25:14.47 cB/a+aRW.net
>>539
アスペ乙
>>540
timestampが無難ですね
ありがとうございました
543:デフォルトの名無しさん
16/06/06 14:37:23.20 CS8YjhCP.net
最近の質問者は煽り耐性がないなw
544:デフォルトの名無しさん
16/06/06 14:48:20.68 e+TlXwYN.net
int32だと2038年になったとき困るもんな
そこで64bitPHPですよ
545:デフォルトの名無しさん
16/06/06 15:02:04.40 Nu4gS3Qg.net
>>544
64bitPHPって、動作環境も64必須になるの?
546:デフォルトの名無しさん
16/06/06 15:44:32.88 3yfrnV+f.net
8bit環境でも動くよ
547:デフォルトの名無しさん
16/06/06 16:42:19.25 cB/a+aRW.net
strtotimeは非常に柔軟な解釈をしますが
これはphpが他の言語を参考にしたのでしょうか?
548:デフォルトの名無しさん
16/06/06 16:44:19.58 m0TG3c4D.net
Cのexec系のように
自分自身のプロセスを置き換えるプログラムの起動方法はありますか?
549:デフォルトの名無しさん
16/06/06 18:43:05.67 BBAYr+Aj.net
>>548
こないだの人と同じだろうか。
URLリンク(php.net)
とりあえずここを一通り見るとこれからの疑問もいくつか解決できるかと。
550:デフォルトの名無しさん
16/06/06 19:06:02.71 J1e3bhcQ.net
>>543
無いのは耐性じゃなくて羞恥心だ。本当にサルしかいなくなった。
551:デフォルトの名無しさん
16/06/06 19:08:37.27 J1e3bhcQ.net
>>547
マネする事しかできないサルはそんなこと気にしても無駄だ。おとなしく使い方だけ覚えてろ。
552:デフォルトの名無しさん
16/06/06 19:10:05.25 J1e3bhcQ.net
>タイムスタンプの変数名として$dateを使うのは変ですか?
dateの意味が分からないサル、素敵。
553:デフォルトの名無しさん
16/06/06 19:17:07.72 J1e3bhcQ.net
>>549
そのバカは教えてもらっても活用できないから総合的なリンクを貼っても無駄だ。
1から100まで手とり足とり教えてやるだけの覚悟が必要だぞ。
554:デフォルトの名無しさん
16/06/06 19:37:24.24 cB/a+aRW.net
>>549
ちがいますよ
「こないだの人」っていうのはたぶん自分なので
555:デフォルトの名無しさん
16/06/06 21:51:51.16 1+sOyhVW.net
MySQLの画像が表示できずに困っています。
main.php
<img src="gazou.php">
gazou.php
$src = file_get_contents('画像のURL');
echo header('Content-Type: image/jpeg');
echo $src;
これなら正常に動作しますが、gazou.phpでDB接続しただけで画像も表示されなくなってしまいます。
$link = mysql_connect('localhost', 'root', 'pass');
DBに接続できる事は確認済みです。エラーも起きていません。
原因のわかる方がいたらお願いします。助けてください。
556:デフォルトの名無しさん
16/06/06 21:52:47.52 1+sOyhVW.net
すみません。改行がおかしくなってました
557:デフォルトの名無しさん
16/06/06 22:00:04.71 O157QY9D.net
<?php
558:デフォルトの名無しさん
16/06/06 22:06:18.56 xfsRheZo.net
>>555
DB接続と画像取得を同時にやると memory_limit に引っかかるとか?
559:デフォルトの名無しさん
16/06/06 22:16:02.69 lRe9eSuk.net
>>555
いや何でheaderをechoしてんの
560:デフォルトの名無しさん
16/06/06 22:20:02.11 xfsRheZo.net
言われてみればw
561:デフォルトの名無しさん
16/06/06 22:22:35.62 1+sOyhVW.net
>>558
リミット増やして、画像を極小の物にしましたが駄目でした。
>>559
ネットにあった物を丸コピしましたが、echoする必要なかったんですね。
ありがとうございます。
562:デフォルトの名無しさん
16/06/06 23:12:41.43 pobwg1Vi.net
>>561
そんなのネットに落ちてるのか
URL教えてくれまいか
563:デフォルトの名無しさん
16/06/06 23:15:55.37 pcbEmQ5n.net
>>561
DB接続を先にして画像表示を後にしてみれば
564:デフォルトの名無しさん
16/06/07 00:05:13.10 lP0BMeFG.net
>>563
すみません、先に接続してます
画像が表示されなくなるので、DBの画像がおかしいのかと色々調べて結論が
DBに接続したからってよく分からない原因でした
自分以外は起きないようですしDBに画像入れるのは諦めます、ありがとうございました
565:デフォルトの名無しさん
16/06/07 00:21:59.49 D2B0dW6i.net
>>564
レスポンス見るとたぶんなんか文字列が出てるんだと思うよ
566:デフォルトの名無しさん
16/06/07 03:50:11.15 T/syB7Ij.net
こんなんで諦めるのか。