[過去ログ]
【PHP】下らねぇ質問はここに書き込みやがれ 12 (1002レス)
【PHP】下らねぇ質問はここに書き込みやがれ 12 http://mevius.5ch.net/test/read.cgi/tech/1619667579/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
640: デフォルトの名無しさん (ワッチョイ 4dcf-pCDs) [] 2021/08/05(木) 13:44:24.19 ID:/9S9EoKc0 robots.txtを守らないと逮捕されるって本当ですか? http://mevius.5ch.net/test/read.cgi/tech/1619667579/640
641: デフォルトの名無しさん (ワッチョイ d108-1vA1) [sage] 2021/08/05(木) 13:47:42.25 ID:jTl1oJKL0 >>638 だからさー…あのなぁ…俺は「>>575みたい低レベルな話なら」それで解決するだろ?と言ってる しかもレンタルサーバでやるような低レベルなもんだろ? ここは質問スレだ 俺は「その低レベルな質問に対して方法を提示した」だけ 言語仕様が我慢できないなら他の言語を使え 何度も同じ事を言わせるな つかお前、なんかの病気じゃね?w http://mevius.5ch.net/test/read.cgi/tech/1619667579/641
642: デフォルトの名無しさん (ワッチョイ d108-1vA1) [sage] 2021/08/05(木) 13:51:30.80 ID:jTl1oJKL0 >>640 どこから聞いたんだよそんな話w 例えば640が、robots.txtの記述内容を無視してスクレイピングをしたとする そのせいでサーバに負荷をかけまくりサーバをダウンさせれば、罪に問われる可能性はあるわな もしくは著作権で守られているコンテンツを無視して転載しても、罪に問われる可能性はあるわな でもそれは、robots.txtを守らないと逮捕されるって話とは別の話だよな? 理解できるか? http://mevius.5ch.net/test/read.cgi/tech/1619667579/642
643: デフォルトの名無しさん (ワッチョイ 5d01-RnN5) [sage] 2021/08/05(木) 13:59:25.27 ID:QPICGq8w0 ID:F8+XC2Dv0 ご大層なゴタクを並べてるのにサーバーはレンタルサーバーなのですね http://mevius.5ch.net/test/read.cgi/tech/1619667579/643
644: デフォルトの名無しさん (ワッチョイ 4ee6-A9KZ) [] 2021/08/05(木) 14:04:31.11 ID:xD0lMLd30 >>643 www http://mevius.5ch.net/test/read.cgi/tech/1619667579/644
645: デフォルトの名無しさん (ワッチョイ d58c-0pp8) [sage] 2021/08/05(木) 14:06:09.47 ID:IpTlZujB0 >>628 > 一応聞くが、headerはbodyの後には出力出来ないってのを知ってるか? 知ってますよ笑 だから、本処理終わるまで何も出力しないように書き換えればと言ってるんです 本処理完了の次の行でheader locationを出力し、リダイレクト先のページにパラメーター渡して表示すればいいです <?php sleep(3); // ←本処理の代わり(ここまで何も出力しない) ignore_user_abort(true); header('location: hoge.php?a=パラ1'); flush(); sleep(10); // ←後処理の代わり exit; ?> 不可能かどうか、コピペで実行してみて笑 http://mevius.5ch.net/test/read.cgi/tech/1619667579/645
646: デフォルトの名無しさん (ワッチョイ bd7b-LMHu) [sage] 2021/08/05(木) 14:22:57.10 ID:F8+XC2Dv0 >>592 イマイチ全体像が掴めないのだけど、確かにジョブキューイングは出来るようだ。 ただ見たところLaravelのソースコードはphpのようだし、RedisだSQSだとか言ってるから、これは、 DBに対するPDOのように、キューイング機能のあるRedis/SQS等に対しての共通ラッパを提供したもの ということでいいのか? (そもそもRedis/SQS等は初耳なので大幅に勘違いしてるかもだが) なお、確かに今回の俺の用途ならこれで対応可能だ。 話が大げさになりすぎてる感はあるが、 元々Laravelを知ってて、かつ、使える環境なら、この選択もありだろう。 いちいちキューを自前で作るよりもキューサーバー、なんてのは あらゆる物をマイクロサービスに分割するWeb系的な発想ではあるが、まあ確かに面白い。 実際、Javaとか無駄にモノリシックになってて開発人月がでかくなりすぎてる感はあるし。 ただこれ、インストールが必要みたいだし、最安(=無料)のレンサバじゃ動かないよな? インストールが必要/有料での契約なら俺的にはNodeの方がマシで、PHPを選ぶ理由がない。 既に言ったが、PHPで書くのは無料サーバーでも動かす為で、 プログラミングについて何も知らない人がGitHubからクローンしたらもう動く!みたいな 超イージーデプロイじゃないとわざわざPHPで書く意味はない。俺なら書き慣れたJSを選ぶ。 (勿論君らがPHPを選ぶのは自由として) 結果的に、エンタープライズな連中はLaravel等を使うから問題なく、こんな基本的な問題も放置されてるってところか。 巣のPHPを使う連中は基本的に初心者であり、細かいことは気にしてないのだろうし。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/646
647: デフォルトの名無しさん (ワッチョイ bd7b-LMHu) [sage] 2021/08/05(木) 14:31:39.19 ID:F8+XC2Dv0 >>641 > しかもレンタルサーバでやるような低レベルなもんだろ? これはその通りだ。 お前らのやってるエンタープライズなコードでは許されないような方法でも、許されるのだろうさ。 とはいえ、それをやるかどうかはまた別だろ。 プログラミング初心者が四苦八苦して数百行のやっと動くコードを書いてる状況ではないんだよ。 他言語ではバリバリに書ける奴がPHPだとデタラメやっていい、ってことにもならないだろ。 それは矜持の問題だ。 勿論、お前がデタラメやるのもお前の自由だが、俺的には恥ずかしくてそんなコードは公開出来ないよ。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/647
648: 620 (ワッチョイ 9a2c-QEAr) [sage] 2021/08/05(木) 14:32:09.85 ID:bqGeTZjz0 Ruby on Rails では、redirect_to でリダイレクトする(302・発見)。 lesson/step1 にアクセスすれば、lesson/step2 へ飛ばされる その時、flash に情報を入れておけば、リダイレクト後に使える。 これで、abc と表示される def step1 flash[ :notice ] = "abc" redirect_to action: "step2" end def step2 render plain: flash[ :notice ] end http://mevius.5ch.net/test/read.cgi/tech/1619667579/648
649: デフォルトの名無しさん (ワッチョイ bd7b-LMHu) [sage] 2021/08/05(木) 14:36:28.61 ID:F8+XC2Dv0 >>645 なるほど、その方法でも出来るのは理解した。 が、それだと2往復するし、やっぱりかなり無駄だろ。 結局お前らは「動けばいい」でしかないからそういうことになる。 それだったら、現実装の方がまだマシだよ。 ただまあ、エンタープライズならLaravel等でキューサーバー、ってのは分かった。 確かにこれで玄人は問題ないのだろうさ。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/649
650: 620 (ワッチョイ 9a2c-QEAr) [sage] 2021/08/05(木) 14:45:20.58 ID:bqGeTZjz0 例えば、Ruby on Rails では、 食べチョクみたいな若い女の子が、1人で始める場合は、Heroku, Bootstrap。 食べチョクは、AWS だけど AWSなら、くろかわこうへいのサロンにも入る必要がある KENTA, 2021/3 女性エンジニア&個人開発者のだむはさんにインタビュー www.youtube.com/watch?v=ieljaqRC98A Heroku, S3, 決済はStripe, Docker こういうのでビジネスを初めて、会社の時価総額1億円ぐらいへもっていく。 元々、cloud 9, Heroku でクラウド開発してるし、絶対にLinux XAMPP, MAMP など、Linux以外を使うことはない。 環境が異なると、テストにならない http://mevius.5ch.net/test/read.cgi/tech/1619667579/650
651: デフォルトの名無しさん (ワッチョイ d58c-By/s) [] 2021/08/05(木) 14:50:29.16 ID:IpTlZujB0 >>649 理解いただけてなによりです。 ただ2往復の意味が良く分かりません。 1.本処理+後処理.phpにGet付でアクセス 2.本処理終わったらbody用パラメーターつけてhoge.phpに飛ばす 3.ユーザーにはhoge.phpが表示される 4.サーバー側は後処理が継続される 進行は分岐するけど常に1方向だし、どこにも戻ったりもしてないと思いますが。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/651
652: デフォルトの名無しさん (ワッチョイ bd7b-LMHu) [sage] 2021/08/05(木) 14:55:48.88 ID:F8+XC2Dv0 >>651 リダイレクトは別サイトにもいけるだろ。 だから基本的にはブラウザとは2往復するはず。 結果的に同一サイトにリダイレクトされる場合でも、おそらくブラウザはもう一度接続し直してくるはず。 この辺は試した方が早いかもしれんが。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/652
653: デフォルトの名無しさん (ワッチョイ bd34-9imK) [sage] 2021/08/05(木) 15:07:47.04 ID:cuxOZbzu0 無料レンタルサーバを使う上級者様が朝の6時半から32レスという渾身のギャグ http://mevius.5ch.net/test/read.cgi/tech/1619667579/653
654: デフォルトの名無しさん (ワッチョイ d58c-By/s) [] 2021/08/05(木) 15:08:57.20 ID:IpTlZujB0 >>652 なるほど、再接続という意味ならそうですね。 では別の案ですが、 1.本処理中に吐き出すHTMLの先頭に、文字列なりHTMLタグなりの目印を検出するJavascriptを仕込む。 2.本処理が終わったタイミングで目印になる文字なりHTMLタグなりを出力(Flush)する。 3.Javascriptで対象の目印を検出したら window.stop() で、ブラウザ側から切断させる。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/654
655: デフォルトの名無しさん (ワッチョイ bd7b-LMHu) [sage] 2021/08/05(木) 15:17:03.80 ID:F8+XC2Dv0 >>651 ああだからな、元々は「処理を速く見せる為」なんだよ。それで、 ・接続を明示的に切れれば、往復1回+本処理 ・接続を明示的に切れない現状では、往復1回+本処理+後処理 ・651方式で転送した場合、往復2回+本処理 というようにユーザーには見えることになる。 結果、ネットワークが速くて後処理時間より短いならこれもありかもしれないけど、ネットワークも地味に重い。 この辺のさじ加減は君らの方が詳しいだろうけど、 現状の後処理は、整理するデータがある場合は400ms程度、無ければ10-40ms程度だ。 整理するデータが存在するのは1/20程度の確率だと想定している。 となると、単純には後処理は平均して29.5-58ms程度の重さになる。 だから、ネットワークがこれ以上重いと赤字になってしまうんだよ。 (XAMPPでの時間計測なんて意味あるかボケ!というのはさておき) http://mevius.5ch.net/test/read.cgi/tech/1619667579/655
656: デフォルトの名無しさん (ワッチョイ 5d01-RnN5) [sage] 2021/08/05(木) 15:19:28.77 ID:qHbol2On0 ID:F8+XC2Dv0は開発環境がXAMPPで無料レンタルサーバを使う初心者なのだから身の丈にあったことをすればいいのにキチガイ過ぎる http://mevius.5ch.net/test/read.cgi/tech/1619667579/656
657: デフォルトの名無しさん (ワッチョイ 6501-pCDs) [] 2021/08/05(木) 15:26:17.55 ID:tyzHpayb0 >>642 ID:bqGeTZjz0の人にrubyスレで教わりました http://mevius.5ch.net/test/read.cgi/tech/1619667579/657
658: デフォルトの名無しさん (ワッチョイ bd7b-LMHu) [sage] 2021/08/05(木) 15:31:25.87 ID:F8+XC2Dv0 >>654 それは君がブラウザの動きを分かってない。 flushで出力されるのはPHP側のバッファだけで、apache/nginxのバッファはflushされない。 だからapache等でgzしている場合には最後まで出力されるかどうかはかなり怪しい。(というか、多分されない) そしてブラウザはある程度溜まったら勝手に出来るところまでパースする。 そしてパースが完了しないとJS側からはデータにアクセスしようがない。(送信途中のデータは読めない) よってその方法では出来ない。 接続を明示的に切れれば、apache等は溜まってるデータをflushして接続を切りに行き、 それを受けてブラウザはすぐにパースを開始する。 だから、接続さえ明示的に切れれば、すぐさまパースされるんだよ。その後PHPが動き続けてても関係なく。 これをやろうとしている。 まあ、Laravelでキューサーバー使えというのはその通り。エンタープライズならこれなのだろう。 多分君はDOM(HTMLページ内)のJSが同期的に動くのを見て勘違いしてる。 ajaxで取得したデータは、途中では読めないよ。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/658
659: デフォルトの名無しさん (ワッチョイ d108-1vA1) [sage] 2021/08/05(木) 15:31:32.98 ID:jTl1oJKL0 >>657 そいつは有名なキチガイだから相手にしたら駄目よ 今このスレでも ID:bqGeTZjz0 で支離滅裂な事を書いてるけど頭の病気だから http://mevius.5ch.net/test/read.cgi/tech/1619667579/659
660: デフォルトの名無しさん (ワッチョイ bd7b-LMHu) [sage] 2021/08/05(木) 15:38:06.77 ID:F8+XC2Dv0 >>656 だから最初から言ってるが、 俺はPHPの初心者ではあるけどプログラミングは初心者ではないんだよ。 だから、PHPといえども恥ずかしいコードは書けない。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/660
661: デフォルトの名無しさん (ワッチョイ 5d01-RnN5) [sage] 2021/08/05(木) 15:54:01.25 ID:qHbol2On0 >>660 いやいやご冗談がきつい どこからどう見ても初心者ですよ? 初心者じゃないならXAMPPや無料レンタルサーバに固執しなくていいですし PHPに固執しなくてもいいですからね http://mevius.5ch.net/test/read.cgi/tech/1619667579/661
662: デフォルトの名無しさん (ワッチョイ bd7b-LMHu) [sage] 2021/08/05(木) 15:57:19.11 ID:F8+XC2Dv0 ちなみにお前ら、PHPにコントリビュートしてみたい奴はいるか? 居るなら手伝うが。 Web開発ってのは、「こんなポンコツを使わされるくらいなら俺が直してやるからソースコードよこせ!」の繰り返しではある。 今の俺がそれだ。 write_closeは基本的な関数であり、存在しないのがおかしい。 実装は、exitで行っているであろうクローズ処理を前倒しすればいいだけ。具体的には、 1. exitのソースコードを「接続を閉じる部分」と「それ以外」に分け、 2. 「接続を閉じる部分」が write_close() で呼ばれるようにし、閉じたかどうかをフラグで保存、 3. exit ではそのフラグを見て、閉じてない場合は呼んでから、「それ以外」を呼んで終了とする。 とまあ、要は exit のソースコードを2分割すれば済む話ではある。 dieとか、他に止める方法もあるから既に分割されてる可能性もある。 この場合は、単純に関数エントリを一つ追加するだけで終わる。 ソースコードは既にダウンロードしてmain.cとか見てるが、肝心のexit/dieのコードがどこにあるのか分からないんだな。 知っている奴がいればよろしく。 なお、俺一人だとコントリビュートはしない。 俺はPHPの初心者であり仕様を知らなさすぎて、俺一人だとバグを埋め込んでしまうから。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/662
663: 620 (ワッチョイ 9a2c-QEAr) [sage] 2021/08/05(木) 15:59:24.92 ID:bqGeTZjz0 レンタルサーバーの速さを言っても、仕方ない。 他人と共有しているから、他人がリソースを使うと、待たされる 安いのだから、低品質も仕方ない。 そういうものと割り切るしかない KENTA は完全に割り切ってる。 PHP は一生使わないでよいと言ってる 金にならないから。 低品質で安い仕事 http://mevius.5ch.net/test/read.cgi/tech/1619667579/663
664: デフォルトの名無しさん (ワッチョイ d58c-By/s) [] 2021/08/05(木) 16:09:21.48 ID:IpTlZujB0 >>658 あなたこそ、理屈はともかく現実がわかってないかと。 以下をtest.phpにコピペしてブラウザからアクセスしてみてください。 (Chrome、FireFox、Edgeのどれでも) hello world が表示されて、接続が切断され、"これは表示されない"は受信されません。 ---------- <html><head> </head> <body>hello world <SCRIPT language="JavaScript"> window.stop(); </SCRIPT> <? echo str_pad(" ",4096); flush(); sleep(10); echo "これは表示されない"; ?> </body> </html> ---------- http://mevius.5ch.net/test/read.cgi/tech/1619667579/664
665: 620 (ワッチョイ 9a2c-QEAr) [sage] 2021/08/05(木) 16:10:32.06 ID:bqGeTZjz0 Ruby on Rails では、 XAMPP, MAMP など、Linux以外を使うことはない Linux コマンド・シェルスクリプト、Docker, Heroku, AWS も、 KENTA のサロンの初心者用コースに入っているから それに皆、AWS のくろかわこうへいのサロンにも入る Windows 10, WSL2, Linux, Docker, VSCode でも出来る XAMPP, MAMP とか、訳の分からない環境を使うことはない。 動きが本番環境と異なるから http://mevius.5ch.net/test/read.cgi/tech/1619667579/665
666: デフォルトの名無しさん (ワッチョイ bd34-9imK) [sage] 2021/08/05(木) 16:13:52.63 ID:cuxOZbzu0 id:F8+XC2Dv0ってPHPがApacheのモジュールとして動作する時の理屈すら理解してなさそうw http://mevius.5ch.net/test/read.cgi/tech/1619667579/666
667: デフォルトの名無しさん (ワッチョイ bd7b-LMHu) [sage] 2021/08/05(木) 17:59:10.16 ID:F8+XC2Dv0 >>664 まあわざわざコード書いてよこしたのだから、こちらでも試したよ。 ファイルは200Bytes, ダウンロードサイズは 4.4KBと表示されてる。 確かにそちらの意図どおり、ハロワだけ先に表示されるよ。(パースされてる) 4KBパディングすれば、通常ならバッファをキック出来るから、確かにパーサもキック出来るはずだし、実際そうなってる。 ただな、時間を既に書いたが、それでは間に合わないんだよ。 ネットワークってのは地味に遅くて、例えばここからPHP.netへのpingは264msかかってる。 後処理は平均29.5-58ms程度だと予想されてるので、window.stopがサーバーに間に合わない。 結果、パケットは送信済みで、受け取られたパケットが捨てられるだけだよ。 ただし確かにパースはされてる。(=その方法でもユーザーの体感速度は上がる可能性がある) ただ、それはページのhtmlだからであって、ajaxではその方法は使えない。 ページのhtmlはブラウザの速度競争のおかげで出来るだけ早くパースするように出来てるからだ。 xmlを送る場合、閉じタグ以降に何かあったらエラーだったので、パディングで押し込みは無理だ。 jsonについては後ろにパディングしてもエラーは出ないようなので、押し込み自体は出来るが、 そもそもAPIが途中のパース結果を見せるように出来てないから、普通に実装されてれば全部揃ってからパースだよ。 世の中の大部分のサイトがこの「押し込み」で高速化してる、というのならブラウザも対応するはずだけど、聞いたこと無いでしょ。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/667
668: デフォルトの名無しさん (ワッチョイ 5d01-RnN5) [sage] 2021/08/05(木) 17:59:23.81 ID:X/tiD49H0 記録37レスか 殿堂入りだな http://mevius.5ch.net/test/read.cgi/tech/1619667579/668
669: デフォルトの名無しさん (ワッチョイ 5d01-RnN5) [sage] 2021/08/05(木) 18:01:07.93 ID:X/tiD49H0 と思ったらまだ記録更新するつもりか http://mevius.5ch.net/test/read.cgi/tech/1619667579/669
670: デフォルトの名無しさん (ワッチョイ d58c-0pp8) [sage] 2021/08/05(木) 18:23:53.35 ID:IpTlZujB0 >>667 間に合わないの意味がわかりませんです。 本処理終了の時点でブラウザ表示に必要な情報と、その次の行にwindow.stopまでを一気に吐き出すんだから、そのあとにサーバーから何か来て破棄されようが、どうでもいいんじゃないかしら? 要は十分な情報を受け取った段階でブラウザ側から切断してるんですよ。 本処理の後の後処理を待たせてる時間をなんとかしたいのが目的なのに、4KBでぐだぐだ言われてもねぇ。 後処理を待たせてる時間と比較したら明らかに早い段階で通信終了してるはずですよ。なんとかしたいレベルってことは人間が認識できるレベルの待ち時間は発生してるんですよね。それと比較して4KBは人間にわからないレベルの時間ですよ。 xmlが〜とかは、htmlでラップするなり、頭良いんでしょうから工夫してくださいな。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/670
671: デフォルトの名無しさん (ワッチョイ 5d01-QEAr) [sage] 2021/08/05(木) 18:32:12.95 ID:xWv0yV5l0 接続の切断が目的なら、 <? echo str_pad(" ",4096); flush(); sleep(10); これは、いらない。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/671
672: デフォルトの名無しさん (ワッチョイ d58c-0pp8) [sage] 2021/08/05(木) 18:37:28.54 ID:IpTlZujB0 >>671 あら、そうなんですか? 後学のためにどうやるのか教えて下さい http://mevius.5ch.net/test/read.cgi/tech/1619667579/672
673: デフォルトの名無しさん (ワッチョイ 56bb-ds/h) [sage] 2021/08/05(木) 19:02:41.47 ID:Sb1zsMiv0 >>654 コレ、面白いね http://mevius.5ch.net/test/read.cgi/tech/1619667579/673
674: デフォルトの名無しさん (アウアウアー Sa5e-ci9S) [sage] 2021/08/05(木) 19:56:24.99 ID:uMZDvd8qa 無職のアスペルガーであるコミュ症プログラマーはエネルギーが違うね そのエネルギーをもっと違うところに使おうか http://mevius.5ch.net/test/read.cgi/tech/1619667579/674
675: デフォルトの名無しさん (ワッチョイ bd7b-LMHu) [sage] 2021/08/05(木) 20:15:50.49 ID:F8+XC2Dv0 >>670 「間に合わない」はこちらの勘違いだった。その後送信データはないので関係ない。 とはいえ、君の案を採用することはないから安心しろ。 それはexecより酷すぎる。 実際のところ、ajaxでhtmlを取っても途中でパースするとは思えないので、iframeに突っ込んでそこから取るしかないが、 そんなコードを見せられたら、ハア?ってなるだろ。 それよりはまだexecの方がマシ。環境依存コードは散らかされたら終わるが、俺がやるのでそれはないし、 とりあえず今回については linux.php と windows.php に纏めておけば、そんなに悲惨なことにならない。 纏めると、よい順に、 1. write_close()を呼ぶ。が、無いのでどうしようもない。 他言語では普通にあるこれがないのでPHPはクソ、 そしてこれが必要なことを理解出来ないのでPHPerもクソ。 (なおコントリビュートする気がある奴が居たら手伝うのでよろしく。 ちなみにexitとdieは同じらしいので今は分離はしてないね、多分。そしてこの辺の基本的な仕様すら抑えてないから俺だけでは無理だ) 2. 現実装。多分平均 29.5-58ms程度待たされることになる。 が、そもそもajaxはほぼ自動アップデータだし、実際のサイトではどれくらいの速度なのか不明だし、 これがもっさり感につながるかは分からない。 3. exec。待たされることはないが、環境依存コードになるので開発とデプロイの手間が増える。 とはいえ、今のところのPHP的な正解はこれのようだ。 4. htmlタグでラップしてiframeに突っ込んでパースさせる。 ただ、上から下のdomは触れた気がするが、下から上には触れなかった気がするので、実際はchannelで通信か? まあやれば出来るが、コード見たら呆れられるだろ。 execは精々数行で済むのに対し、こちらは一手間二手までは済まないし、execよりも遅いし。 やるのが目的ならそれで良いが、一応execという解があるのだから、それよりもマシでないと意味がない。 今のところ、現実装のままで本番環境まで持っていき、実際の使用感を確かめて、必要ならexecか、というところ。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/675
676: デフォルトの名無しさん (ワッチョイ bd7b-LMHu) [sage] 2021/08/05(木) 20:22:29.50 ID:F8+XC2Dv0 >>670 > なんとかしたいレベルってことは人間が認識できるレベルの待ち時間は発生してるんですよね。 ちなみにこれはない。まだ部品を動かしている段階。 ただそもそもC出身なので基本的にノーコストで速くなるのならそれを選択する。 そして普通の環境では有る close が無いので面食らっているわけだ。 俺が見落としてるだけだと思っていたが、本当にないのだから驚きだ。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/676
677: デフォルトの名無しさん (ワッチョイ 56bb-ds/h) [sage] 2021/08/05(木) 20:32:09.79 ID:Sb1zsMiv0 まー設計レベルでミスってるから write_close みたいなこと言い出してんだけど、2年ぐらい Web に関われば、自力で解決できるかもね がんばれw http://mevius.5ch.net/test/read.cgi/tech/1619667579/677
678: デフォルトの名無しさん (ワッチョイ 5d01-d0wC) [sage] 2021/08/05(木) 20:54:11.00 ID:xr/U2THc0 アスペおじさんに50の質問しようぜ >>675 ・PHPはクソクソという癖してPHPにしがみついてるのはなんで? ・なんで無料レンタルサーバーなの?無職だからお金ないの? ・任意でcloseできてウェブと親和性が高い言語って例えば何?あるならそれ使えば? ・例えばNodeならできるが?Nodeでやればいいのに何でやらないの? ・Nodeが使えるサーバーってVPSで500円ぐらいで用意できるけど500円も払えないの?それとも自分じゃサーバーを作れないの? ・何度かproc_openって出てるみたいだけどそれを無視してるのはなんで? ・そもそも働いてるの? ・そんなコミュ能力で仕事できるの? http://mevius.5ch.net/test/read.cgi/tech/1619667579/678
679: デフォルトの名無しさん (オッペケ Sr05-ETFs) [sage] 2021/08/05(木) 21:04:38.27 ID:tYvxU5+Zr 無料レンサバ案件受けるか普通 イキっててキメぇわ http://mevius.5ch.net/test/read.cgi/tech/1619667579/679
680: デフォルトの名無しさん (ワッチョイ d58c-0pp8) [sage] 2021/08/05(木) 21:05:44.43 ID:IpTlZujB0 >>675 あーいえは、こーいうで、なかなか楽しかったです あなたが不可能と断定したものを、あたしは2つも実現してみせたんですから、少しは敬意を表しなさいよ笑 断定したことをひっくり返されても、上からの態度とか、かっこわるいわよ そんなんじゃ、いつまで経っても童貞卒業できませんよ http://mevius.5ch.net/test/read.cgi/tech/1619667579/680
681: デフォルトの名無しさん (ワッチョイ 5d01-60o5) [sage] 2021/08/05(木) 21:19:16.52 ID:xWv0yV5l0 >>672 場合分けしました。 とは言え、ググって原因は予想したけど。 昔、「システム業界では、滅多に不可能と答えてはダメ」というようなことを言われたことがあります。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/681
682: デフォルトの名無しさん (ワッチョイ bd7b-LMHu) [sage] 2021/08/05(木) 21:22:27.97 ID:F8+XC2Dv0 >>678 proc_openはexecと変わらんだろ。 それで環境依存無しのコードが書けるわけでも無し。 PHPについては何度も言ってるように無料レンタルサーバーで動かす為で、 それは俺が使う用ではないからだよ。 PCのことなんて分からない連中でも動かせるようにして、しかも無料なら試しにやってみようかともなるだろ。 この辺については俺がどういうアプリ戦略を採るかだから、意見言われてもああそうですか、でしかない。 そしてここで色々ひけらかして後々粘着されてもウザイだけだから、特定出来るほど詳しく言うつもりもない。 なおNodeの無料鯖が日本に出現したら間違いなくそれに向けて作る。 今それがあるのならPHPは捨てるし、多分今後は書くこともない。 既に言ったが俺的にベストなのはサーバレスで、実際はレンタルサーバーよりもサーバレスが断然いい。 だからherokuの鯖が日本に出来るのがベストだが、無いのだから仕方ない。 PHPは糞だが、そもそも俺のアプリはそんなに大きいものではなく、 むしろSQLiteのラッパでしかないので、今はphp.netを睨みながらやってるような状況だが、それでも何とか進めてる。 ただまあ、俺が考えてることは今のWebからすると奇妙な事だから、君達と話が噛み合わないのは仕方ない。 それで君らが頭に来てるのも分からんでもない。 ただ先述の通り、詳しく言うと後々の憂いになるから、お互いに技術的なこと以外には踏み込まないようにした方がいい。 Webってのはそれくらいの距離感が丁度いいのだと俺は思ってる。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/682
683: デフォルトの名無しさん (ワッチョイ 5d01-60o5) [sage] 2021/08/05(木) 21:23:55.06 ID:xWv0yV5l0 場合分けしました。 →場合分けして検証しました。 たいした仕事ではなかったんだけど、 ある公式を忘れても、基本の基本から証明できるので、 基本の基本が用意されてれば、(システム業界では)不可能と答えてはダメなんです。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/683
684: デフォルトの名無しさん (オッペケ Sr05-ETFs) [sage] 2021/08/05(木) 21:24:45.00 ID:tYvxU5+Zr しかもSQLiteって笑うところだな http://mevius.5ch.net/test/read.cgi/tech/1619667579/684
685: デフォルトの名無しさん (ワッチョイ bd7b-LMHu) [sage] 2021/08/05(木) 21:25:17.35 ID:F8+XC2Dv0 >>680 つかまともな解じゃねえし。それでドヤられても困る。 動くっつうのと、やっていいかと、やるべきかは、別の問題だよ。 ただまあ、アイデアは面白いよ。それは他の人も言ってるとおり。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/685
686: デフォルトの名無しさん (ワッチョイ bd7b-LMHu) [sage] 2021/08/05(木) 21:30:22.62 ID:F8+XC2Dv0 >>684 エンタープライズ用途ならスケールアウト出来ないSQLiteは論外なのだろうけど、 ぶっちゃけ俺の用途ではSQLiteで十分だし、それは既にチェック済み。 というかね、単体では十分速いよSQLite。 まあ、他は使ったこと無いんだけどね。 SQLとか知らんし、とりあえず一番簡単な奴から、ってことで試して、十分だったのでそれまで。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/686
687: デフォルトの名無しさん (ワッチョイ 5d01-d0wC) [sage] 2021/08/05(木) 21:40:09.08 ID:tHJjXwU70 >>682 execとproc_openが同じなんだw もうこの一言で満足したわ http://mevius.5ch.net/test/read.cgi/tech/1619667579/687
688: デフォルトの名無しさん (ワッチョイ 5d01-d0wC) [sage] 2021/08/05(木) 21:44:25.28 ID:tHJjXwU70 ちなみに解決法の例 https://github.com/elazar/asynchronous-php あー面白かった 満足したわ http://mevius.5ch.net/test/read.cgi/tech/1619667579/688
689: デフォルトの名無しさん (JP 0H2e-3fhR) [sage] 2021/08/05(木) 21:48:51.81 ID:cTOwQa60H 上のレン鯖の人は、 ・無料で使える ・日本国内に鯖がある ・好きなミドルウェアや言語をセットアップできる という条件を満たす環境があるなら、PHPに拘らないという主旨の発言をしているようにみえるが、その認識であってる? http://mevius.5ch.net/test/read.cgi/tech/1619667579/689
690: デフォルトの名無しさん (ワッチョイ d58c-0pp8) [sage] 2021/08/05(木) 21:58:56.90 ID:IpTlZujB0 >>681 場合分けとは? 具体的にどういうコードにすればいいのか教えてもらえるとありがたいです。 「いらない」とは、単純に指摘箇所をコードから削除するだけですか? http://mevius.5ch.net/test/read.cgi/tech/1619667579/690
691: デフォルトの名無しさん (ワッチョイ ed5f-qgft) [sage] 2021/08/05(木) 22:05:04.22 ID:vJjfvU2/0 php嫌いなのは分かるし俺も別に好きじゃないが、じゃあなんで使うんだよ、使わざるを得ないなら従え、以外に帰着しねーんでは。 お得意のnode様でも他言語からしたらディスられるだろうし不毛だわ http://mevius.5ch.net/test/read.cgi/tech/1619667579/691
692: デフォルトの名無しさん (ワッチョイ bd7b-LMHu) [sage] 2021/08/05(木) 22:08:47.31 ID:F8+XC2Dv0 >>689 まあyes。正確には > ・無料で使える > ・日本国内に鯖がある ここまではその通りで、 > ・好きなミドルウェアや言語をセットアップできる この必要はない。好きでもないPHPを使ってるのがその証拠。 一番いいのはNode。 ただ、動的言語でないと無理なのではないかと予想してるので、(が、何故そうなのかは言えない、これはすまん) GoとRustは駄目だ。というかGoはPHP以上に糞だし、Rustは今のところ様子見してる。 それで、無料鯖で使える動的言語=PHP/Python/Rubyで、どれも知識ゼロだから、 とりあえずメジャーなPHPから試すか、で、まあ、言語と界隈が糞な所以外は問題ないから我慢して使ってる。(というほど使ってないけど) まあぶっちゃけ、PHPが糞だ糞だと言われつつものさばってるのは、確かに便利なんだよ。これは認める。 そしてPHP.netの出来はマジで素晴らしい。PHP.netと比べるとPythonやRubyのサイトはゴミだね。 この辺も、また、ググッて回答が出てくるかも含めて、知識ゼロならPHPから試すのが妥当だし、そうしただけ。 もしかして他の選択肢がある? ご指摘の通り、PHPは手段であって、目的ではない。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/692
693: デフォルトの名無しさん (JP 0H2e-3fhR) [sage] 2021/08/05(木) 22:18:22.41 ID:cTOwQa60H >>692 あるよ。俺はoracleが提供しているプラットフォームを無料で使ってる。メモリ1GBのインスタンス2つとoracleの自律型DB2台。東京と大阪リージョンがある。 あとGCPのGAEなら東京リージョンで使える無料枠がある。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/693
694: デフォルトの名無しさん (ワッチョイ bd7b-LMHu) [sage] 2021/08/05(木) 22:20:09.19 ID:F8+XC2Dv0 >>691 Nodeは、俺がJS好きなだけで、PHPerからすると糞なのは認める。 というかね、DBと非同期が壮絶に相性が悪くて、Nodeだと結構トンデモなコードになる。 それに慣れてる俺は良いが、慣れてない奴からしたら糞以外の何者でもない。 ただしasyncが導入されたから今書いたらだいぶマシなのかもしれんが。 とはいえ、PHPは真偽判定テーブルとか見るだけでマジで糞で、糞なのを知っててもどハマりするから俺的には無理なんだ。 直近だと三項演算子、勿論結合がおかしいのは知ってるが、癖としてやってしまうんだよ。 そして見た目、バグに見えないから嵌る。 だからまあ、PHPを主力に使ってる人にとっては問題ないのだろうけど、 他言語を普段使ってて、偶にPHPとかだと、本当に無駄に嵌って、あ〜、ってのが多すぎて悲しいんだよ。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/694
695: デフォルトの名無しさん (JP 0H2e-3fhR) [sage] 2021/08/05(木) 22:22:30.05 ID:cTOwQa60H >>693 DB必須ならGCPだと無料のGCEにDBセットアップすれば良いけど国外リージョンになるので、実質oracle一択かな。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/695
696: デフォルトの名無しさん (ワッチョイ bd7b-LMHu) [sage] 2021/08/05(木) 22:25:46.31 ID:F8+XC2Dv0 >>693 Oracleなんてガチ枠だから完全にノーマークでしたわ。 とはいえ、SQLとはまた違うとは聞いてるし、そもそもそれってあんまりど素人向けじゃないから不味い気が。 逆に無料レンタルサーバーなんて完全にど素人向けでしょ。 向こうもど素人が使う前提だし、やっぱりど素人にはレンサバがお似合いだと思うのだけど。 お互いトラブらないという意味で。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/696
697: デフォルトの名無しさん (ワッチョイ 5d01-60o5) [sage] 2021/08/05(木) 22:28:07.44 ID:xWv0yV5l0 >>690 勉強不足では困るので、 「ハードウェア」も「予想してから知識を呼び出す」のも必要です。 単純なプログラムを作ってから、魂を足し算します。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/697
698: デフォルトの名無しさん (JP 0H2e-3fhR) [sage] 2021/08/05(木) 22:29:03.23 ID:cTOwQa60H >>694 jsの真偽判定テーブルも他言語からみたらPHP8と50歩100歩だと思う。7や5はもう過去だから知らない。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/698
699: デフォルトの名無しさん (JP 0H2e-3fhR) [sage] 2021/08/05(木) 22:35:41.93 ID:cTOwQa60H >>696 補足しておくと、インスタンス2台無料だから、oracleのDB使いたくない場合は、インスタンス1台に好きなDBインストールする方法もあるよ。ど素人にどこまでのオペレーションを任せるかはわからんけど。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/699
700: デフォルトの名無しさん (ワッチョイ d58c-0pp8) [sage] 2021/08/05(木) 22:36:53.61 ID:IpTlZujB0 >>697 えっと、すいません、なにかの宗教ですか? http://mevius.5ch.net/test/read.cgi/tech/1619667579/700
701: デフォルトの名無しさん (ワッチョイ bd7b-LMHu) [sage] 2021/08/05(木) 22:44:02.23 ID:F8+XC2Dv0 >>698 JSのもそれなりに糞だが、 型を意識してれば実際問題としてそこに命中することはないんだよ。 だから一般のプログラミングをしてる奴にとっては問題ない。 PHP7のはなあ、なんだったか忘れたが、 JS的には問題ないものでもおかしなのがあって、しかもそれに普通に命中するから嵌るんだよ。 とはいえ最早PHP8を使うべきなのかな?三項演算子は解決されてるし。 今確認したが、無料鯖はまだ7のようなのだけど、 現実的に俺が今書いてるのを公開するのはどうやっても半年後とかでしかないから、 その頃に一般的に使えれば全く問題ないし、 駄目でもいつかはPHP8に移行するのだろうから、待ってれば済む話ではあるし。 今7を使ってるのは、実は4年前に味見だけしてて、その時に7だったからなんだよね。 まあ、PHP8は検討しとくわ。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/701
702: デフォルトの名無しさん (JP 0H2e-3fhR) [sage] 2021/08/05(木) 22:48:59.24 ID:cTOwQa60H >>701 10月に8.1出るし、今から開発するのに7.4はどうかと思う。アクティブサポートは今年の11月末で切れるし。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/702
703: デフォルトの名無しさん (ワッチョイ bd7b-LMHu) [sage] 2021/08/05(木) 22:53:13.39 ID:F8+XC2Dv0 >>699 OracleやAWSとかは、基本的に「将来有料のお客様になるかも」な人向けだろ。 だから、その気がない人がずっと使うのは不味いと思ってるんだよ。 勿論技術的な問題もあるけど。 無料レンサバはその点、広告を貼りますよ!だから、 永久に無料で使われてもいいですよ、な点が違う。 だからまあ、ガチ向けなものは基本ノーマークなんだわ。 ただ、技術的にはだんだん敷居が下がってて、サーバレスなんてその最たる物だろ。 たぶん、本当になんにも知らないど素人が、それが鯖であることを認識もせず鯖を運用する時代が来つつあるんだよ。 俺はそれに向けてちょっと仕掛けようとしてる。(まあ高確率でポシャるが、それは致し方ない) http://mevius.5ch.net/test/read.cgi/tech/1619667579/703
704: デフォルトの名無しさん (ワッチョイ bd7b-LMHu) [sage] 2021/08/05(木) 22:55:44.39 ID:F8+XC2Dv0 >>702 了解です。 現実的に古いバージョンを使う理由もないからね。 まあ問題は環境の再構築だが、これもやるしかないね。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/704
705: デフォルトの名無しさん (ワッチョイ 5d01-60o5) [sage] 2021/08/05(木) 22:57:56.82 ID:xWv0yV5l0 >>700 コマンドラインだけのプログラムでは、 ユーザーが使いやすいものではないので。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/705
706: 620 (ワッチョイ 532c-2tbN) [sage] 2021/08/06(金) 05:53:40.73 ID:13Hyhr+y0 無料サーバーは低品質だから、まともに動かない。 他のアプリがリソースを使うと、5秒ぐらいの動画広告でも、1時間動かない事もある 素人向けだから、PHP・SQLite でも良いと思う。 KENTA がPHPを一生やらなくても良いというのは、お金にならないから 未経験者の転職では、Ruby on Rails, Heroku, AWS だけ。 Node.js, Django も使われていない プログラミングの話というよりは、安い・低品質の仕事の話。 すごく限定されたことしか出来ない、世界の話 http://mevius.5ch.net/test/read.cgi/tech/1619667579/706
707: デフォルトの名無しさん (ワッチョイ 297c-O8K+) [sage] 2021/08/06(金) 06:20:19.81 ID:4ndH842K0 >>706 実稼働12時間程度で100万円超えの案件もあるぞ 言語やフレームワークだけで語ってる奴には一生回ってこないだろうなw http://mevius.5ch.net/test/read.cgi/tech/1619667579/707
708: デフォルトの名無しさん (アウアウアー Saab-IXul) [sage] 2021/08/06(金) 06:29:46.94 ID:UjnAn9a5a >>707 もう令和になっているのにこのネタにマジレスしちゃうの? http://mevius.5ch.net/test/read.cgi/tech/1619667579/708
709: デフォルトの名無しさん (ワッチョイ e191-lZJ8) [sage] 2021/08/06(金) 14:33:32.85 ID:Pmsm9i010 どういうネタならマジレスしていいの? http://mevius.5ch.net/test/read.cgi/tech/1619667579/709
710: デフォルトの名無しさん (ワッチョイ 895f-VlOp) [sage] 2021/08/06(金) 18:17:48.03 ID:sAaum+q/0 そもそも後処理とやらを軽くすればいい話ではないのかね DBの設計とSQLの書き方次第で速度がかなり違うよ そこを見直すのがいいんじゃないかな それとnode.jsはwebサーバーと一体だから切断があるがphpはwebサーバーからリクエストされるものであって接続の管理はできないのでは無いんでないのかね http://mevius.5ch.net/test/read.cgi/tech/1619667579/710
711: デフォルトの名無しさん (ワッチョイ 895f-VlOp) [sage] 2021/08/06(金) 18:35:46.02 ID:sAaum+q/0 そもそもphp上で接続するのではなくブラウザに終了を認識させればいいので ob_startとob_get_lengthなどを使い headerでContent-LengthとConnection: closeを出力する方法がマッチしているのではないかな 適当にググってみたけど下のサイトがわかりやすかったかな ttps://pisuke-code.com/php-send-response-immediately/ http://mevius.5ch.net/test/read.cgi/tech/1619667579/711
712: デフォルトの名無しさん (ワッチョイ c17b-NIVl) [sage] 2021/08/06(金) 20:51:49.77 ID:lgptz/Bq0 > Content-Length おお正解出てきたか。実はこちらもそこに気づいて試して(昼間に)確認済みだった。 んで、いちいち文句言われるからとりあえず夜まで待ってたところだった。 つかマジで、お前らだいぶ酷いわ。改めてPHPerは糞だと再認識した。 小学生同士の小手先テクニック大会は楽しいのだろうけど、そんなんだから上達しないんだと思うぞ。 >>710-711 こちらはheaderだけで問題なくなった。 とりあえずサイト読んでみたが、こちらの結果からすると、ob_xxxもconnection:closeも要らんね。 (というか多分 connection: close は問題になるからやらない方がいい) > そもそも後処理とやらを軽くすればいい話ではないのかね > DBの設計とSQLの書き方次第で速度がかなり違うよ > そこを見直すのがいいんじゃないかな 勿論分かってるが、今でも十分軽いし、これ以上どうしようもないので。 > 接続の管理はできないのでは無いんでないのかね これは違う。接続の管理を「しなくてもいい」のであって、「出来てもよい」んだよ。 単純には機能が足りてないだけ。 近いのはGUIのイベント、onXXXだが、 あれも最初は addEventListenerとかは不要(onXXXだけで問題ない)と思われてたんだよ。 でも、有るのと無いのとでは大違いで、今は全面的に採用されてるだろ。 といってもお前らは若すぎてこの話が意味不明なら、イベントバブルでもいい。 あれもHTMLは最初から搭載していたようだが、おまえらPHPerなら特に、バブルなんて無くても設計出来ると思ってるだろ? しかしこれも同様に有るのと無いのでは設計のしやすさの次元が違ってくるので、全面採用になりつつある。 機能が足りてないときでも、足りてないと気づけない人の方が多い。 ネットが無くても不自由しなかったし、その前は携帯が無くても不自由しなかった。 無ければ無いなりにやってしまうものなのだけど、これが有ればどんなに良いか!と思いつける人はほぼ居ないんだよ。 (一応言っておくが、俺も思いついたわけではなく、他言語で知ってたから不便を感じられただけ) 例えば、asyncとか、技術的には最初からあっても不思議ではなかったけど、誰も思いつけなかったろ。あれと同じ。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/712
713: デフォルトの名無しさん (ワッチョイ c17b-NIVl) [sage] 2021/08/06(金) 21:13:42.19 ID:lgptz/Bq0 >>711 > 適当にググってみたけど ちなみにどうググッたか教えてもらえないか? こちらも昼間ググリまくったが、このサイトは見てない。多分ヒットしてない。使ったのはBingだ。 んで、今google/duckduckgo/yandexで"Content-Length header"で試したが、ヒットしない。 ヒットしない(しにくい)理由は簡単で、多分仕様じゃないからだ。 ブラウザが勝手にそう動くだけで、動かなくても問題ないし、動くべきだともされてない物を、 Content-Lengthの紹介で書くことが出来ないからだ。 ただこちらは、前から意味不明なヘッダだなと思ってたので、今日改めて目にした時にピンと来た。 が、ググッてもそうは書いてないし、まあ試しにやってみるか、で、ビンゴだった。 (と書けば簡単そうに見えるが、実際はちゃんと動いているか確認するまでに結構手間取ってる) だからここみたいに個人レベルのTips集やQiitaとかじゃないと駄目なのだが、 そもそもこちらの検索結果にはそのサイトが出てこない。 どういうキーワードでどこで検索したか教えてもらえないか? http://mevius.5ch.net/test/read.cgi/tech/1619667579/713
714: デフォルトの名無しさん (ワッチョイ 895f-VlOp) [sage] 2021/08/06(金) 22:05:32.07 ID:sAaum+q/0 php 後処理 でgoogleで検索して最初に出てきたやつ 接続を切ることができないのはwebサーバーへの接続だから node.jsはwebサーバーを内包しているから出来ることでphpはwebサーバーを内包していない Content-Lengthは何バイト応答があったらコンテンツの終わりかブラウザが認知するのでそれを利用したテクニック http://mevius.5ch.net/test/read.cgi/tech/1619667579/714
715: デフォルトの名無しさん (ワッチョイ c17b-NIVl) [sage] 2021/08/06(金) 22:08:02.71 ID:lgptz/Bq0 >>711 すまん、713取り下げ。 Bingで「PHP 後処理」でググったら一番上に出た。 俺は仕様を確認しようとしていたのだが、やり方をググれば出るのか。 なまじ自分で出来るものだから「やり方」なんてググろうとも思わなかったのが問題だな。 PHPについては初心者だということを再認識して、「やり方」もググるべきだった。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/715
716: デフォルトの名無しさん (ワッチョイ c17b-NIVl) [sage] 2021/08/06(金) 22:36:18.90 ID:lgptz/Bq0 >>714 すまん、前後した。手間をかけて本当にすまん。 > node.jsはwebサーバーを内包しているから出来ることでphpはwebサーバーを内包していない これはその通りだが、PHPから出力をクローズしたら当然apacheにも伝わりクローズされる。 そしてこれはnodeでも同じだ。 実際は(Nodeでも)closeしてもhttpコネクションを切っているわけではない。 それだと再送要求が来た時に対応出来ないだろ。 だから、実際の低レベルの接続はNodeでもPHPでも同様に隠蔽されてる。 (勿論ApacheはHTTP/1.1だとgzipしてるし、別にバッファも持ってる) よって、PHPでもNodeと同様に『プログラミングモデルとしては』接続を切ることが出来る。 だからやっぱり機能が足りてないんだよ。 パイプで説明した方が分かりやすいかな? php | apache > /dev/eth0 な状況で、php が stdout(出力パイプ) をクローズすることは出来るだろ。それだけ。 その後も apache は必要なら動き続けるし、終了すれば終わる。 この構造はNodeも内部的に持ってないと話にならないから同様の筈だよ。 ただしそもそも論として「Content-Lengthは常に付けとけボケ!」なノリのようだ。 この手のTipsとしてはStackoverflowが秀逸で、 https://stackoverflow.com/questions/2773396/whats-the-content-length-field-in-http-header の回答の中に以下仕様書へのリンクとかがあるが、 https://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.4 読む限りContent-LengthはもしかしてHTTP/1.0時代には必須だったのかな? 今現在、 echo json_encode(...); でjsonを語れ流してるから、これアウトかよ、、、、ってちょっと萎えてる。 メモリを無駄に食わない素晴らしいコードだと思ってたんだがなあ、、、。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/716
717: デフォルトの名無しさん (ワッチョイ 895f-VlOp) [sage] 2021/08/06(金) 23:28:26.68 ID:RLLkP2Do0 >>716 最初に"TCP接続を明示的に切りたい"とあったので機能はないと回答した そのあたりは認識してほしい 環境依存にはなるがwebサーバーに通知つする仕組みはある fastcgi_finish_request tps://www.php.net/manual/ja/function.fastcgi-finish-request.php FastCGI用の物なのでapacheのmod_phpでは不可 また、Content-Lengthは後処理不要ならば付けなくても問題なし json出すならContent-Type: application/jsonは付けたほうがいいと思う http://mevius.5ch.net/test/read.cgi/tech/1619667579/717
718: デフォルトの名無しさん (ワッチョイ 895f-VlOp) [sage] 2021/08/06(金) 23:30:33.96 ID:RLLkP2Do0 楽に使うならクラス作って継承して使えばエレガントに書けると思う http://mevius.5ch.net/test/read.cgi/tech/1619667579/718
719: デフォルトの名無しさん (ワッチョイ 13ad-tZU0) [sage] 2021/08/07(土) 00:43:48.11 ID:f2WMK3C10 androidにPHPアプリとかあるけど役に立つ? http://mevius.5ch.net/test/read.cgi/tech/1619667579/719
720: デフォルトの名無しさん (ワッチョイ c17b-NIVl) [sage] 2021/08/07(土) 00:55:00.18 ID:dDF85n970 >>717 > 最初に"TCP接続を明示的に切りたい"とあったので機能はないと回答した 責める気はないが、これはさすがに屁理屈だろ。 572は確かに俺の書き方が悪い。 ただ、「初心者」が間違った「やり方」を選んでトンチンカンな方向に行くことはよくある話で、 これを防ぐ為には「最終的に何を目指してるか」を言わなければならないが、 俺は575の時点で、 ・俺が初心者であり、 ・後処理してる最中でもブラウザにパースさせてUXを改善したいから、 ・TCP接続を切りたい と全部揃えているのだから、本当に分かってる奴が居たら、この時点で 「それはやり方を間違ってる。ヘッダにContent-Lengthを付ければそれで済む」の回答が出てきて然りなんだよ。 それがおかしな小手先テクニック合戦になったり、 或いは上記のように全部正しく揃えているのにそれを理解せず「コミュ障」呼ばわりしてくるから、 PHPerは糞だと言ってるんだよ。 これは君も含めてね。何を相手に伝えるべきか分かってないんだよ。 まあコミュ障だからこそ、(=つまり何を伝えれば通じるかが分かってない) 相手がコミョ障かどうか(=つまり必要事項が全部含まれているか)を見分けることが出来ないという、 至極当然の話で、よくあるから慣れてはいるけども。 なんかNodeを勘違いしているっぽいが、プログラミングモデルのレイヤーはPHPと同じだよ。 PHPは上手く抽象化されてる(584)というのなら、そりゃNodeでもその他でも同じだよ。 実際書けば(文法が違うだけで)ほぼ同じコードになる。 下位のTCP接続を直接切りに行けるのはCで相当野蛮に書かれたものだけだが、そんな物存在してないでしょ。 だからこれはエスパーではなく常識で読み替えられる範囲だよ。 http://mevius.5ch.net/test/read.cgi/tech/1619667579/720
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 282 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.014s