- 1 名前:デフォルトの名無しさん mailto:sage [2021/04/29(木) 12:39:39.75 ID:P0iZ4CYt0.net]
- !extend::vvvvv:1000:512
!extend::vvvvv:1000:512 !extend::vvvvv:1000:512 ★スレ立て時 ↑ が3行以上になるようコピペ PHPに関する質問スレです 前スレ 【PHP】下らねぇ質問はここに書き込みやがれ 11 https://mevius.5ch.net/test/read.cgi/tech/1591334726/ 次スレは>>980以降 VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
- 596 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 09:02:59.57 ID:e8dh7hYU0.net]
- >>583
ソースもないのに誰一人いないとか断言しちゃうから、だらだら長いだけで説得力のない空っぽな主張に見えちゃうんだぞ お前さんの主張を支持する上級者は誰一人いないw
- 597 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 09:24:21.23 ID:F8+XC2Dv0.net]
- >>584
> 不足箇所は最近だとフレームワークが補完してくれている では今回の connection_close なり write_close が出来るフレームワークを紹介してくれ。 無いだろ。 PHPで出来ないことは、PHPで記述したフレームワークでも出来るはずがないからだ。 (とJS同様に思ってるんだが、PHPの場合は例えばC++で記述されててPHPをDSLとして採用してるだけ、 みたいな実行環境形のフレームワークがあるのか? それがapacheだnginxだ、みたいな状況ではあるが) > サーバサイド言語として、phpが必要ないって言っている人がいる? 居ない。 しかし、PHPは「素晴らしいプログラミング言語だ」と言ってる奴も居ない。 それは君も知ってるとおり、色々グダグダ過ぎるからだ。今回も然り。 他言語だと楽に美しく実装出来る事が、出来ない。いちいちストレスだ。 (とはいえRust/Go推しの連中もどうかしてると思うが) > 普通に用途が合えばphp選択するのがエンジニアだと思うけど? それはその通り。だから俺も今回はPHPを選択している。 ただこれは「プログラミング言語として」ではなく、「実行環境含めて」だ。 今回は「無料レンタルサーバーでも動く」事も重要な為、今のところPHP以外に選択肢がない。 技術的には、サーバーレス+Nodeが一番フィットし、つまりherokuなのだが、 あれは無料だが海外鯖なので見送りにしてる。 サービス提供先は主に国内なのにいちいち海外鯖では無駄に遅くなるから。 そしてNodeの無料鯖が国内にも広まるのを待っていたのだが、これは今のところ全然なさそうだ。 とかやってるうちに他状況も整ってきたから、しょうがないからPHPで本格的に書くか、と諦めたわけだ。 あと、Nodeが数倍速いのも事実なのだが、どうせ鯖を借りる側からすれば、 値段当たりの処理能力なら実はVPS+Nodeもレンタルサーバー+PHPも大差ないのかも、という気もしてきてる。 この辺も諦めにつながってる。とはいえ、どのみちNodeでも書く羽目にはなりそうなのだが。 []- [ここ壊れてます]
- 599 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 09:27:08.25 ID:Sb1zsMiv0.net]
- >>588
お前のやりたいことは、Jobのキュー登録だろ 普通にあるわ なんで、connection_close なり write_close にこだわらないといけないんだ?
- 600 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 09:33:30.26 ID:F8+XC2Dv0.net]
- >>586
それは動かないだろ。 本処理で既にheaderとbodyは出力してる。 だからその後に header('Location')はアウトだ。 そして仮に動いたとしても、いちいちLocationで飛ばすってのも余計におかしい。 今現在の、結果的にブラウザが反応しないかも、その場合は通常より倍の時間がかかります、の方がまだマシだ。 ここらへんの、ちゃんとした解がないから余計なことで遠回りにやる、ってのもPHP界隈が嫌いな理由だ。 そういうのは初心者から中級者にクラスアップしてきた連中が俺ツエー的にやりたがるのだけど、 そういうのが多すぎて、PHP界隈はウザイ。 ただ逆に言えば、そういうことをしたいレベルの奴にとっては「俺カッケー」が出来るから、大受けする。 だからPHPを嫌いな人は多いが、廃れることもないだろうね。新規参入者はいくらでもいるから。 ある意味初心者ホイホイな面はある。 (ただしプログラマになる為の教育としてはかなり最悪だが)
- 601 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 09:37:34.01 ID:F8+XC2Dv0.net]
- >>589
あるならそれを教えてくれ。PHP.net上のurlだけでいいから。 jobで出てくるのは The GearmanClient class だけだが、さらっと見た限りなんか違うっぽいし。 というかね、PHP.netは本当に出来がいい。 あれだけは他言語も見習うべきだよ。
- 602 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 09:41:54.34 ID:Sb1zsMiv0.net]
- >>591
ぐぐればLaravelが出てくるだろ 素のphpでやりたきゃ https://medaka.5ch.net/test/read.cgi/php/1557652864/ なら別海が出てくるかもな
- 603 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 10:14:26.57 ID:F8+XC2Dv0.net]
- >>592
LaravelはPHPで書かれてるのだから、素のPHPで出来ないことが出来るはずがないだろ。 と思ってるのだが、この認識が間違ってるのか? まあ、導入する予定はないが、見てみるよ。 Webプログラミング板のスレはさらっと読んでみたが、ぶっちゃけここと大差ないような。 まあ、ここで一通り終了したら向こうでも聞いてみるかも。 なお、俺はプログラミングの初心者ではないが、PHPに関しては初心者だ。 一通りも知らないからPHP.netをいちいち引きながら書いてる。 それでいちいち、「他言語ならこうだけど、PHPならどう書くの?」になるわけ。
- 604 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 10:15:03.38 ID:jTl1oJKL0.net]
- 要は「非同期処理すればいいだけ」の話なのだが、ID:F8+XC2Dv0 はLinuxができない人?
だってさ、Linuxではコマンドの最後に「&」をつけるとバックグランドジョブになるのだから、 「言語を問わず」 "コマンド > /dev/null &" ってすればいいかな?って発想になるもん で、開発環境はDockerやVagrantで作ればいい PHPなんて良くも悪くも適当に書けば適当に動いてくれる言語なのだから、別にそれでいいじゃんw PHPがどういう思想から生まれた言語なのかは以下のインタービュー記事を読むといい https://gihyo.jp/news/interview/2010/rasmus 例えばNode.jsはシングルスレッド・シングルプロセスなのだから、入出力関連の処理を非同期で行ったりと設計思想からPHPとはまるで違う 1つの言語に固執せず適材適所で言語を使い分けるのがプログラマのなのだから、お前みたいな書き方をしてたら「だったらPHP以外の言語でやれば?」って思われるだけだw ちなみにPHP8.1以降では「Fibers」が実装されて、非同期処理を綺麗に書けるようにもなるんだけどね https://php.watch/versions/8.1/fibers PHPってここら辺がすごい柔軟 良いと思った仕様はどんどん取り入れる とにかく、グダグダグダグダとうるせぇんだよお前はw 自分の頭が固いだけなのに仕事ができると「
- 605 名前:勘違いしている自称上級プログラマ様(笑)」ってのが、現場で一番タチが悪い人間なのは間違いない
固くするのはチンコだけにしておこうな? [] - [ここ壊れてます]
- 606 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 10:21:45.83 ID:F8+XC2Dv0.net]
- >>592
あ、すまん。訂正。 laravelをさらっと見たが、dockerで導入してるところからして、俺 が想定していたJS的なフレームワークとは違い、これは実行環境形のフレームワークだな。 Job管理もあるのだろう。これはこれから読む。(とはいえ時間はかかるが)
- 607 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 10:24:19.91 ID:jTl1oJKL0.net]
- Rubyガイジといい、なんでガイジ(正確にはガイオヤジかw)ばかり湧くんだろうなぁ
夏だからかw
- 608 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 10:24:44.74 ID:F8+XC2Dv0.net]
- >>594
> 「言語を問わず」 "コマンド > /dev/null &" ってすればいいかな?って発想になるもん 理解してないのお前だ。俺は「言語を問わず」ではなく、「実行環境依存」なのを問題視してる。 まあお前レベルの奴がグダグダ言ってくるところがPHP界隈の嫌いなところだよマジで。
- 609 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 10:33:36.93 ID:5AKWeG2e0.net]
- このガイジLaravelスレでバカにされているガイジだろw
無能で仕事もしたことが無いレベルw
- 610 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 10:49:57.76 ID:jTl1oJKL0.net]
- >>597
だから「開発環境はDockerやVagrantで作ればいい」と書いた とにかく質問は解決しただろ? だったらPHPスレに居座る必要もない WPガイジ(こいつも相当頭が固いw)といい、俺はサッサと質問を解決しガイジにお帰り頂きたいだけだ 繰り返すが固いのはチンコだけにしとけw それといももうチンコも勃たない歳か?w
- 611 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 10:51:05.04 ID:F8+XC2Dv0.net]
- >>594
ラスマスの記事を読んだ。まあ想定どおり。 これはWeb上のオープンソース開発、つまりJSやRustも同じ事。 それらに比べてPHPはポンコツ過ぎ。 ちなみにfiberが欲しいわけではない。それも「歩いて3秒の場所に自転車で行く」に近い。 俺がやりたいのは、 fclose(/dev/stdout) だよ。 ただまあ、PHPがラスマスの言うとおり勝手に開発された機能の団子なのなら、 俺が勝手にCのコード書いて送れば採用されるのかな? 精々10行程度で実装出来るから送ってみてもいいんだけどさ。 あとそれ、「PHPは柔軟でスゴイ!」ってのも、 最近よくいる「俺が使ってる言語スゲー=俺スゲー」系の馬鹿だから止めとけ。 他言語で既に使えてる便利機能が今更採用されたところでスゲーと思えるのは明らかに信者でしかない。 第三者なら「ようやくかよ」でしかない。
- 612 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 10:57:59.07 ID:kPeKr//s0.net]
- ID:F8+XC2Dv0
質問に非同期って単語が出てない時点でお察しですな PHPへの噛みつき方もテンプレ過ぎて10年前にタイムスリップしたかと思ったよ 加齢臭のするオッサンだろうな
- 613 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 11:01:32.69 ID:F8+XC2Dv0.net]
- >>599
> だから「開発環境はDockerやVagrantで作ればいい」と書いた だからその解も本来は間違ってるんだよ。それは、 実行環境依存のコードしか書けないから、それぞれの実行環境を毎回用意してそこで開発しろ なわけだろ。それはJavaが目指した「Write once, run anywhere」でも全然無いだろ。 まあ実際はともかく、そもそもプログラミング言語はOS上のレイヤだけで動いているのなら、こうあるべきなんだよ。 そしてJSとか他言語はそうなってる。 PHPはその努力もしてないから駄目なんだよ。 その、「間違った解を正解として誇らしげにドヤる」のも、 典型的な「初心者から中級者にアップしたての馬鹿」がやることで、おまえはまさにそれだよ。 実際PHP界隈はそういうのが多数派で、それが問題視されることはないのだろうけど、それ自体が問題だよ。 それでは生産性がまるで上がらない。まあこれも理解出来ないのだろうけどさ。
- 614 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 11:04:37.37 ID:/R94gyIjd.net]
- >>590
あたしは575の提案をして、環境依存に難色を示されたので、代替提案をしただけなのに、おかしいだろ
- 615 名前:ニか、ダメだとか、あっちのほうがマシだとか、なんでそんなに上からなんですか笑
既にbody出力済みという前提も無かったし。 なるほど、でもできればリダイレクトはしたくないです。とだけ返事すればいいものを。 リダイレクトNGなら、更に別の提案もあるんだけど、萎えましたです。 [] - [ここ壊れてます]
- 616 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 11:05:12.89 ID:jTl1oJKL0.net]
- 俺、PHPがすげぇなんて一言も書いてないけどw
だからこそ「PHPなんて良くも悪くも適当に書けば適当に動いてくれる言語」だと書いたし ラスマスのインタービュー記事を紹介したのだが、このガイオヤジはドヤ顔で何を勘違いしてるのだろうw 例えば>>579で > 見た目同期コマンドだが、出力を捨てれば確かにバックグランウンドで動くらしい なーんて書いちゃってるから…ね 「&」ついてるのに、これのどこか同期コマンドなんだというツッコミw 質問は解決してるんだからもう用はないだろ? あとはチラシの裏にでも書いとけw
- 617 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 11:07:21.49 ID:jTl1oJKL0.net]
- >>601
このガイオヤジ、1人で勘違いして「信者」なんて言っちゃってるしね この手のヤバい奴は昔から居たから、PHP長くやってると慣れるよねw
- 618 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 11:09:50.52 ID:F8+XC2Dv0.net]
- >>601
非同期知ってる俺カッケー、か。 俺がやりたいのは非同期ではないんだよ。 ここら辺なんだよ、PHPerは、(JSerもだからWeb系全般だと思うが) 本人が実力を過大評価しすぎてていちいちウザイ。 今回は同期の fclose(/dev/stdout) がベストで、この単純なことが出来ないのは奇妙だと思って聞いてる。 他の言語/実行環境なら最初に用意される物であって、存在しないのはほぼありえない。 だから俺の勘違いか見落としだと思って聞いてるわけだ。 そしてこんな基本的な物がないのに非同期とかfiberとか、整備の順番を完全に間違ってるんだよ。 とはいえlaravelはどうやら俺の想定していたものとは違うので、そこにあることには期待している。
- 619 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 11:14:45.50 ID:F8+XC2Dv0.net]
- >>603
> 既にbody出力済みという前提も無かったし。 いやそれは普通に読めば分かるだろ。 むしろ、接続を切ろうとしてるのに、なんでその後に何か出せると思ったの? もしかして、本処理ではheaderだけしか出力してないと思った? それはレアケース(常に403とか?)であって、その仮定の方が無理あるだろ。
- 620 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 11:18:11.81 ID:kPeKr//s0.net]
- 簡単な非同期処理で解決するのになに言ってるのこの人
顔真っ赤すぎて全レスし始めたし今日1日で何レスするのか見ものだな PHPに親でも殺されたのかしら?
- 621 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 11:23:41.31 ID:xD0lMLd30.net]
- スレが伸びてると思ったら大物が登場してるな
面白いから魚拓取って他にも晒しとくわ
- 622 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 11:25:02.26 ID:F8+XC2Dv0.net]
- >>604
exec自体は同期コマンドなんだよ。 そしてその書き方自体も他言語が出来るプログラマにとっては気に入らない。 exec("cmd"); // 同期 exec("cmd > /dev/null &"); // PHPではこれで非同期、しかし書き方がイマイチ exec("cmd") > /dev/null; // これならまだマシ exec_async("cmd"); // 本来はこうあるべき まあここら辺もPHPが嫌われる理由だよ。他言語と揃ってないからいちいち文法で躓く。 だから他言語で慣らした連中に取っては無駄に参入障壁となっていて、 結果的にPHPはPHP育ちの初心者パラダイスになってる。 そりゃ居心地はいいんだろうけど、良いコードに遭遇出来ないのは上達の妨げにしかならないことに本人達も気づけない。 なんだかね。 実際お前ら、上の4つ、何が問題か分からないだろ。
- 623 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 11:26:44.63 ID:F8+XC2Dv0.net]
- >>608-609
> 簡単な非同期処理で解決するのになに言ってるのこの人 そう思えちゃうところがPHPerだよ。 まあ他のプログラミングが出来る連中にも聞いてみるんだね。
- 624 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 11:31:07.06 ID:xWv0yV5l0.net]
- 自分も、そこまでLinuxには詳しくないが、
今時、2〜3台もパソコンがあれば、社内Lanで繋ぎませんか?
- 625 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 11:34:43.32 ID:Lk6xwBBud.net]
- >>607
いや、あなたの常識なんて知らないわよ笑 普通にアクセスされただけで(またはgetパラメーター付きとか)処理が走って、本処理が終わるまで何も出力しないように書き直して工夫することだってできる可能性もあるわけだし。 (もうここは掘り下げなくていいです) てか、あなたが返事すべきはそこじゃないんだけど〜
- 626 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 11:43:44.22 ID:F8+XC2Dv0.net]
- >>612
開発環境の再構築に乗り気ではないのは、それは手段が目的化する恐れがあるから。 いろいろ分かってない状況(=今の俺)の場合は、環境構築こそが最大のネックで、 コード自体は書けば書けるものでしかないんだよ。 そして既にXAMPP+NetBeansでブレークポイントも当たるし、xhprofだっけ?も導入してるからそれでやってる。 (ただし環境を構築したのは4年前だから、君らからするとこれは古すぎかもしれないが) 新しい開発環境も、作ってしまえば結果的には楽勝なのかもしれないが、あっさり出来る自信がないんだ。 ただまあ、今回の話は、環境構築すればいいって物ではないのだけどね。 それって、例えば鯖を変えたり、あるいはGitHubで公開した後に「○○ですけど動きません」ってのに いちいち対応するのか?って話になるだろ。 そもそも環境依存のコードを書くべきではない ってのが大正義なのに、それを認めずあれこれ無駄に言ってくるからおかしな事になる。 お前らは何をすべきなのか本質を理解するべきだよ。
- 627 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 11:44:41.71 ID:kPeKr//s0.net]
- >>610
なるほど Linux系のOSでコマンドの後に&を付けるとバックで動くって事を知らなかったのね それを必死に誤魔化してるだけかw
- 628 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 11:46:58.60 ID:F8+XC2Dv0.net]
- >>613
> 本処理が終わるまで何も出力しないように書き直して工夫することだってできる可能性もあるわけだし 本処理ではbodyを出力する場合もあるし、403等でheaderだけで終わる場合もある。 本処理終了後は出力はない。だからそこで切りたい。 というわけだがこれでいいか? いずれにしてLocationでリダイレクトは度頭でやらないといけないから君の間違いだとは思うけど。 > てか、あなたが返事すべきはそこじゃないんだけど〜 どこよ?
- 629 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 11:48:24.23 ID:F8+XC2Dv0.net]
- >>615
そう思うのは、君の周りにはその程度の人しか居ないからだね。君も含めて。
- 630 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 11:49:26.67 ID:cuxOZbzu0.net]
- 朝の6:30から20レスww
- 631 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 12:00:42.44 ID:F8+XC2Dv0.net]
- >>613
616訂正。 > Locationでリダイレクトは度頭でやらないといけない と思ったが、もしかしてリダイレクトが間に合わなかったケースを意図的に利用して接続を切ろうって事か? それは解としてはだいぶ酷い。そういうコードを書くと数年後には意味不明で読めなくなる。 あとその場合は結局ブラウザ上でパースされた時に転送(=接続終了する)だけであって、 結局今の実装(ブラウザのパースタイミング次第)と同じでしかないし、改善しないと思うが。
- 632 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 12:07:25.00 ID:bqGeTZjz0.net]
- YouTube で有名な、雑食系エンジニア・KENTA のサロンの、
バックエンド初心者用コースのポートフォリオでは、 基本情報技術者資格、Ruby on Rails, Linux, Docker Compose, Node.js(Webpack, Babel), Bootstrap VSCode(Remote Container, WSL2 ならRemote WSL), Heroku, CircleCI、データベース 今までは、Docker Compose までが初心者用コースだったが、 最近は誰でも、Docker出来るから、 AWS Fargate, Terraform, React, Vue.js, TypeScript も だから、AWSのくろかわこうへいのサロンにも、入る必要がある これが済んだら、Ruby → Go で、時給1万円を目指す Node.js, Django は使われていない。 PHP は一生やらなくてよいと言ってる XAMPP, MAMP は、Linux じゃないから、やる意味がない。 WSL2 Linux とか、Heroku, AWSなどが良い システムを、言語・アプリレベルで実現しようとするから、ダメ 普通に、AWSのSQS(キュー)。 企業が欲しい人材は、AWS Solution Architect。 AWSでシステムを組める人 だから何百人も、AWSのくろかわこうへいのサロンに入って勉強してる
- 633 名前:デフォルトの名無しさん [2021/08/05(木) 12:14:58.24 ID:dqIKXfcM0.net]
- スクレイピングしたいんですけど何を勉強すればいいですか
不正アクセスに問われたりしないでしょうか? セキュリティ対策はどのようなことに注意すればよいでしょうか?
- 634 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 12:18:19.70 ID:Sb1zsMiv0.net]
- >>621
不正アクセス以外にも法的に問われるケースは存在します まず法的な問題の解決方法を学ぶと良いです まぁ、いずれにしても初心者のすることじゃないです
- 635 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 12:19:31.36 ID:jTl1oJKL0.net]
- まだやってて草w
で、この朝6時から20レス以上してるガイオヤジは、なんでPHPにこだわってるの? > マルチプロセスだから根本的に考え方が違うんだな > 質問には確かにexecが正解のように見える と自分で書きながらもPHPではどうしても納得いかないんでしょ? だったらPHP以外でやればいい 質問はこれで綺麗サッパリ解決したし、あとはチラシの裏へどうぞ ちなみに>>610については、例えばPythonでsubprocess.run()を使っても一緒の話なわけで、 「PHPだから」という話ではない それを非同期で実行したいならPythonならsubprocess.Popen()を使うし PHPならpopen()やproc_open()を使う
- 636 名前:620 mailto:sage [2021/08/05(木) 12:19:59.18 ID:bqGeTZjz0.net]
- PHP はレンタルサーバー用言語
Ruby on Rails は、プロ用フレームワーク。 WSL2 Linux, Heroku, AWS だから、PHPでは転職できないから、KENTA のサロンでは勧めない Node.js, Django も、Railsのシェアを崩せなかった。 募集がなく転職できないから、サロンでは勧めない 唯一の時給1万円コースの道筋は、Ruby → Go だけ 企業が欲しい人材は、AWS Solution Architect。 AWS でシステム構築運用できる人
- 637 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 12:28:51.37 ID:6TA++zayd.net]
- >>616
> 本処理ではbodyを出力する場合もあるし、403等でheaderだけで終わる場合もある。 だから、今の仕様はそうなのかも知れませんけど、その本処理はユーザーがアクセスしただけで処理が出来るなら本処理が終わるまで何も出力しないように書き換えればいいんだし、何かユーザーの入力に応じて処理するのなら、postで再アクセスさせて本処理が終わるまでなにも出力しないように書けないんですか? まあいずれにせよ、リダイレクトはそもそも論外のようなので不毛な話しではありますが。
- 638 名前:620 mailto:sage [2021/08/05(木) 12:28:59.36 ID:bqGeTZjz0.net]
- 食べチョクみたいな若い女の子が、Ruby on Rails で1人で始めたサイトでも、
求人募集は、AWS に詳しい人 システム構築運用できる人 コロナで取引量が30倍になった。 こういうのは言語・アプリで解決できる問題じゃない だから、むしろプログラマーよりも、LinuC などのLinux の資格保持者とか、 AWS Solution Architect が必要 今は、プログラミング言語よりも先に、 Linux コマンド・シェルスクリプト、Docker Compose, VSCode などが来る
- 639 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 12:30:20.75 ID:F8+XC2Dv0.net]
- >>623
まあforkしたいわけでもないんだけどね。それも事を大きくしすぎ。 Pythonを選択しないのは、俺が知らないからだね。 ただしレンタルサーバーでも使えるから、選択肢としてはありなんだろうけど、 言っちゃ悪いがPython使う理由なんてPHP以上にないでしょ。
- 640 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 12:35:56.18 ID:F8+XC2Dv0.net]
- >>625
一応聞くが、headerはbodyの後には出力出来ないってのを知ってるか? ちなみに本処理はgetであって、postではない。 そして304ならheaderのみ、200ならheader+bodyの、至極普通のget処理だ。 その200、つまりheader+bodyを送信後に再びLocation"header"を出すのは不可能だが、それは理解してるか?
- 641 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 12:37:33.28 ID:jTl1oJKL0.net]
- >>627
Python使えなんて一言も書いてないんだがw PHPのexec()の例は別の言語でも一緒って例を示しただけ ほんと頭が固いというか思い込みが激しいというか… 現場に居たら陰口叩かれまてるタイプだわお前はw
- 642 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 12:44:05.08 ID:F8+XC2Dv0.net]
- >>629
なら、PythonもPHPと同程度に文法が糞だ、というだけだろ。 実際、Pythonを「プログラミング言語として」褒めてる奴も少ないだろ。 みんなが使ってるから使う、というのが大半であって。
- 643 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 12:44:10.37 ID:jTl1oJKL0.net]
- ちなみに、ものすごく低レベルな方法だがこんなやり方もある
> SQLiteを操作してhttp出力 の中に <img src="重い処理をするPHP" width="1" height="1"> と書くだけw これならcronが使えない環境でも簡単にできる これで解決したら笑う
- 644 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 12:48:28.04 ID:F8+XC2Dv0.net]
- >>631
それは面白い発想だが、べき論で言えば反則だろうよ。 ただし、確かに技術的には解決する。
- 645 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 12:58:15.10 ID:F8+XC2Dv0.net]
- >>631
いや待て、今回はhtmlではなかったので駄目だった。 主にjsonとxmlだ。 まあしかし、発想自体は面白いよ。 ただ、なんか余計なアクセスが出てるように見えるからそれで実装することはないが。 今現在の実装だと、「運が悪く、ブラウザも怠慢していれば、倍かかる時があります」であって、 そんなに問題な実装でもないし、実際htmlを出すのは最初だけ(SPA)にしようとしてるので、それでは解決出来ない。
- 646 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 13:00:46.26 ID:jTl1oJKL0.net]
- >>632
こんなもんは、例えば何かしらのトラッキングや、メルマガで配信するHTMLメールで開封率を調べる時等で 当たり前に使われてる方法だけどねぇ… でも、元の質問は>>575だろ? これ>>631で解決するよな?w でもどうせ気に食わないんだろ? だったらPHPなんかやめてサッサと他の言語でやればいい なんでこのスレに居るわけ? サッサと出ていけよw
- 647 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 13:06:35.62 ID:jTl1oJKL0.net]
- >>633
また後付でなんか出てきたw >>575はとにかく、重たい後処理をするPHPを非同期で起動させればいいだけ それがexec()だろうがproc_open()だろうが<img>タグだろうが同じだ それが我慢ならんのなら、それ以上PHPにこだわる必要性は何もない まぁお前みたいな「面倒くさい人」はどこにでもいるよw もうええでしょ
- 648 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 13:08:11.92 ID:F8+XC2Dv0.net]
- >>634
ああ、Webビーコンと大昔に呼ばれてて、その結果htmlメールは悪だとされた奴だな。 今でも普通に使ってるのか?それはそれで問題だとは思うが。 少なくとも、俺は>>631で出来る状況であってもそれは使わない。今現在の実装の方がマシ。
- 649 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 13:08:51.75 ID:xWv0yV5l0.net]
- pythonというのは、
等加速度直線運動の3公式で、多くの問題を解決するようなもので、 これをできれば、スピードアップするらしいが。 高度なことをできる部品はある。
- 650 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 13:26:51.61 ID:F8+XC2Dv0.net]
- >>635
ちなみに > 重たい後処理をするPHPを非同期で起動させればいいだけ これが間違い。 単に、出力を閉じる connection_close みたいな関数を呼んでユーザーとの接続を終了させ、 そのあとそのプロセスが引き続き後処理をすれば良いだけだし、これが一番軽い実装だ。 そして他言語だとこれは出来るのに、何故この基本的な操作ができないのだ?という話。 非同期=軽いとか思ってる馬鹿も特にJSには多いんだが、非同期が軽いわけではないんだよ。 むしろキューイングしてやる分だけ重くなる。
- 651 名前:620 mailto:sage [2021/08/05(木) 13:41:39.90 ID:bqGeTZjz0.net]
- >>628
Ruby on Rails でも、view を、render できるのは1回限り。 double rendering 禁止 >>633 Railsなら、 format.html format.json と書いておけば、例えば、 books/1 なら、HTML、 books/1.json なら、JSON を返す テンプレートファイルも、show.html.erb, show.json.erb と、ERB で2つ書いておく。 show.json.jbuilder と、jbuilder を使えば、もっと簡単に、オブジェクトをJSONにできる Railsには、SPA 用のAPI モードもある。 HTMLを返さない。JSONでやりとりする フレームワークを使わず自作してると、10年やっても低品質のまま。 Railsを1年やっただけの人にも勝てない
- 652 名前:デフォルトの名無しさん [2021/08/05(木) 13:44:24.19 ID:/9S9EoKc0.net]
- robots.txtを守らないと逮捕されるって本当ですか?
- 653 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 13:47:42.25 ID:jTl1oJKL0.net]
- >>638
だからさー…あのなぁ…俺は「>>575みたい低レベルな話なら」それで解決するだろ?と言ってる しかもレンタルサーバでやるような低レベルなもんだろ? ここは質問スレだ 俺は「その低レベルな質問に対して方法を提示した」だけ 言語仕様が我慢できないなら他の言語を使え 何度も同じ事を言わせるな つかお前、なんかの病気じゃね?w
- 654 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 13:51:30.80 ID:jTl1oJKL0.net]
- >>640
どこから聞いたんだよそんな話w 例えば640が、robots.txtの記述内容を無視してスクレイピングをしたとする そのせいでサーバに負荷をかけまくりサーバをダウンさせれば、罪に問われる可能性はあるわな もしくは著作権で守られているコンテンツを無視して転載しても、罪に問われる可能性はあるわな でもそれは、robots.txtを守らないと逮捕されるって話とは別の話だよな? 理解できるか?
- 655 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 13:59:25.27 ID:QPICGq8w0.net]
- ID:F8+XC2Dv0
ご大層なゴタクを並べてるのにサーバーはレンタルサーバーなのですね
- 656 名前:デフォルトの名無しさん [2021/08/05(木) 14:04:31.11 ID:xD0lMLd30.net]
- >>643
www
- 657 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 14:06:09.47 ID:IpTlZujB0.net]
- >>628
> 一応聞くが、headerはbodyの後には出力出来ないってのを知ってるか? 知ってますよ笑 だから、本処理終わるまで何も出力しないように書き換えればと言ってるんです 本処理完了の次の行でheader locationを出力し、リダイレクト先のページにパラメーター渡して表示すればいいです <?php sleep(3); // ←本処理の代わり(ここまで何も出力しない) ignore_user_abort(true); header('location: hoge.php?a=パラ1'); flush(); sleep(10); // ←後処理の代わり exit; ?> 不可能かどうか、コピペで実行してみて笑
- 658 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 14:22:57.10 ID:F8+XC2Dv0.net]
- >>592
イマイチ全体像が掴めないのだけど、確かにジョブキューイングは出来るようだ。 ただ見たところLaravelのソースコードはphpのようだし、RedisだSQSだとか言ってるから、これは、 DBに対するPDOのように、キューイング機能のあるRedis/SQS等に対しての共通ラッパを提供したもの ということでいいのか? (そもそもRedis/SQS等は初耳なので大幅に勘違いしてるかもだが) なお、確かに今回の俺の用途ならこれで対応可能だ。 話が大げさになりすぎてる感はあるが、 元々Laravelを知ってて、かつ、使える環境なら、この選択もありだろう。 いちいちキューを自前で作るよりもキューサーバー、なんてのは あらゆる物をマイクロサービスに分割するWeb系的な発想ではあるが、まあ確かに面白い。 実際、Javaとか無駄にモノリシックになってて開発人月がでかくなりすぎてる感はあるし。 ただこれ、インストールが必要みたいだし、最安(=無料)のレンサバじゃ動かないよな? インストールが必要/有料での契約なら俺的にはNodeの方がマシで、PHPを選ぶ理由がない。 既に言ったが、PHPで書くのは無料サーバーでも動かす為で、 プログラミングについて何も知らない人がGitHubからクローンしたらもう動く!みたいな 超イージーデプロイじゃないとわざわざPHPで書く意味はない。俺なら書き慣れたJSを選ぶ。 (勿論君らがPHPを選ぶのは自由として) 結果的に、エンタープライズな連中はLaravel等を使うから問題なく、こんな基本的な問題も放置されてるってところか。 巣のPHPを使う連中は基本的に初心者であり、細かいことは気にしてないのだろうし。
- 659 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 14:31:39.19 ID:F8+XC2Dv0.net]
- >>641
> しかもレンタルサーバでやるような低レベルなもんだろ? これはその通りだ。 お前らのやってるエンタープライズなコードでは許されないような方法でも、許されるのだろうさ。 とはいえ、それをやるかどうかはまた別だろ。 プログラミング初心者が四苦八苦して数百行のやっと動くコードを書いてる状況ではないんだよ。 他言語ではバリバリに書ける奴がPHPだとデタラメやっていい、ってことにもならないだろ。 それは矜持の問題だ。 勿論、お前がデタラメやるのもお前の自由だが、俺的には恥ずかしくてそんなコードは公開出来ないよ。
- 660 名前:620 mailto:sage [2021/08/05(木) 14:32:09.85 ID:bqGeTZjz0.net]
- 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
- 661 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 14:36:28.61 ID:F8+XC2Dv0.net]
- >>645
なるほど、その方法でも出来るのは理解した。 が、それだと2往復するし、やっぱりかなり無駄だろ。 結局お前らは「動けばいい」でしかないからそういうことになる。 それだったら、現実装の方がまだマシだよ。 ただまあ、エンタープライズならLaravel等でキューサーバー、ってのは分かった。 確かにこれで玄人は問題ないのだろうさ。
- 662 名前:620 mailto:sage [2021/08/05(木) 14:45:20.58 ID:bqGeTZjz0.net]
- 例えば、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以外を使うことはない。 環境が異なると、テストにならない
- 663 名前:デフォルトの名無しさん [2021/08/05(木) 14:50:29.16 ID:IpTlZujB0.net]
- >>649
理解いただけてなによりです。 ただ2往復の意味が良く分かりません。 1.本処理+後処理.phpにGet付でアクセス 2.本処理終わったらbody用パラメーターつけてhoge.phpに飛ばす 3.ユーザーにはhoge.phpが表示される 4.サーバー側は後処理が継続される 進行は分岐するけど常に1方向だし、どこにも戻ったりもしてないと思いますが。
- 664 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 14:55:48.88 ID:F8+XC2Dv0.net]
- >>651
リダイレクトは別サイトにもいけるだろ。 だから基本的にはブラウザとは2往復するはず。 結果的に同一サイトにリダイレクトされる場合でも、おそらくブラウザはもう一度接続し直してくるはず。 この辺は試した方が早いかもしれんが。
- 665 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 15:07:47.04 ID:cuxOZbzu0.net]
- 無料レンタルサーバを使う上級者様が朝の6時半から32レスという渾身のギャグ
- 666 名前:デフォルトの名無しさん [2021/08/05(木) 15:08:57.20 ID:IpTlZujB0.net]
- >>652
なるほど、再接続という意味ならそうですね。 では別の案ですが、 1.本処理中に吐き出すHTMLの先頭に、文字列なりHTMLタグなりの目印を検出するJavascriptを仕込む。 2.本処理が終わったタイミングで目印になる文字なりHTMLタグなりを出力(Flush)する。 3.Javascriptで対象の目印を検出したら window.stop() で、ブラウザ側から切断させる。
- 667 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 15:17:03.80 ID:F8+XC2Dv0.net]
- >>651
ああだからな、元々は「処理を速く見せる為」なんだよ。それで、 ・接続を明示的に切れれば、往復1回+本処理 ・接続を明示的に切れない現状では、往復1回+本処理+後処理 ・651方式で転送した場合、往復2回+本処理 というようにユーザーには見えることになる。 結果、ネットワークが速くて後処理時間より短いならこれもありかもしれないけど、ネットワークも地味に重い。 この辺のさじ加減は君らの方が詳しいだろうけど、 現状の後処理は、整理するデータがある場合は400ms程度、無ければ10-40ms程度だ。 整理するデータが存在するのは1/20程度の確率だと想定している。 となると、単純には後処理は平均して29.5-58ms程度の重さになる。 だから、ネットワークがこれ以上重いと赤字になってしまうんだよ。 (XAMPPでの時間計測なんて意味あるかボケ!というのはさておき)
- 668 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 15:19:28.77 ID:qHbol2On0.net]
- ID:F8+XC2Dv0は開発環境がXAMPPで無料レンタルサーバを使う初心者なのだから身の丈にあったことをすればいいのにキチガイ過ぎる
- 669 名前:デフォルトの名無しさん [2021/08/05(木) 15:26:17.55 ID:tyzHpayb0.net]
- >>642
ID:bqGeTZjz0の人にrubyスレで教わりました
- 670 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 15:31:25.87 ID:F8+XC2Dv0.net]
- >>654
それは君がブラウザの動きを分かってない。 flushで出力されるのはPHP側のバッファだけで、apache/nginxのバッファはflushされない。 だからapache等でgzしている場合には最後まで出力されるかどうかはかなり怪しい。(というか、多分されない) そしてブラウザはある程度溜まったら勝手に出来るところまでパースする。 そしてパースが完了しないとJS側からはデータにアクセスしようがない。(送信途中のデータは読めない) よってその方法では出来ない。 接続を明示的に切れれば、apache等は溜まってるデータをflushして接続を切りに行き、 それを受けてブラウザはすぐにパースを開始する。 だから、接続さえ明示的に切れれば、すぐさまパースされるんだよ。その後PHPが動き続けてても関係なく。 これをやろうとしている。 まあ、Laravelでキューサーバー使えというのはその通り。エンタープライズならこれなのだろう。 多分君はDOM(HTMLページ内)のJSが同期的に動くのを見て勘違いしてる。 ajaxで取得したデータは、途中では読めないよ。
- 671 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 15:31:32.98 ID:jTl1oJKL0.net]
- >>657
そいつは有名なキチガイだから相手にしたら駄目よ 今このスレでも ID:bqGeTZjz0 で支離滅裂な事を書いてるけど頭の病気だから
- 672 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 15:38:06.77 ID:F8+XC2Dv0.net]
- >>656
だから最初から言ってるが、 俺はPHPの初心者ではあるけどプログラミングは初心者ではないんだよ。 だから、PHPといえども恥ずかしいコードは書けない。
- 673 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 15:54:01.25 ID:qHbol2On0.net]
- >>660
いやいやご冗談がきつい どこからどう見ても初心者ですよ? 初心者じゃないならXAMPPや無料レンタルサーバに固執しなくていいですし PHPに固執しなくてもいいですからね
- 674 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 15:57:19.11 ID:F8+XC2Dv0.net]
- ちなみにお前ら、PHPにコントリビュートしてみたい奴はいるか?
居るなら手伝うが。 Web開発ってのは、「こんなポンコツを使わされるくらいなら俺が直してやるからソースコードよこせ!」の繰り返しではある。 今の俺がそれだ。 write_closeは基本的な関数であり、存在しないのがおかしい。 実装は、exitで行っているであろうクローズ処理を前倒しすればいいだけ。具体的には、 1. exitのソースコードを「接続を閉じる部分」と「それ以外」に分け、 2. 「接続を閉じる部分」が write_close() で呼ばれるようにし、閉じたかどうかをフラグで保存、 3. exit ではそのフラグを見て、閉じてない場合は呼んでから、「それ以外」を呼んで終了とする。 とまあ、要は exit のソースコードを2分割すれば済む話ではある。 dieとか、他に止める方法もあるから既に分割されてる可能性もある。 この場合は、単純に関数エントリを一つ追加するだけで終わる。 ソースコードは既にダウンロードしてmain.cとか見てるが、肝心のexit/dieのコードがどこにあるのか分からないんだな
- 675 名前:B
知っている奴がいればよろしく。 なお、俺一人だとコントリビュートはしない。 俺はPHPの初心者であり仕様を知らなさすぎて、俺一人だとバグを埋め込んでしまうから。 [] - [ここ壊れてます]
- 676 名前:620 mailto:sage [2021/08/05(木) 15:59:24.92 ID:bqGeTZjz0.net]
- レンタルサーバーの速さを言っても、仕方ない。
他人と共有しているから、他人がリソースを使うと、待たされる 安いのだから、低品質も仕方ない。 そういうものと割り切るしかない KENTA は完全に割り切ってる。 PHP は一生使わないでよいと言ってる 金にならないから。 低品質で安い仕事
- 677 名前:デフォルトの名無しさん [2021/08/05(木) 16:09:21.48 ID:IpTlZujB0.net]
- >>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> ----------
- 678 名前:620 mailto:sage [2021/08/05(木) 16:10:32.06 ID:bqGeTZjz0.net]
- Ruby on Rails では、
XAMPP, MAMP など、Linux以外を使うことはない Linux コマンド・シェルスクリプト、Docker, Heroku, AWS も、 KENTA のサロンの初心者用コースに入っているから それに皆、AWS のくろかわこうへいのサロンにも入る Windows 10, WSL2, Linux, Docker, VSCode でも出来る XAMPP, MAMP とか、訳の分からない環境を使うことはない。 動きが本番環境と異なるから
- 679 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 16:13:52.63 ID:cuxOZbzu0.net]
- id:F8+XC2Dv0ってPHPがApacheのモジュールとして動作する時の理屈すら理解してなさそうw
- 680 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 17:59:10.16 ID:F8+XC2Dv0.net]
- >>664
まあわざわざコード書いてよこしたのだから、こちらでも試したよ。 ファイルは200Bytes, ダウンロードサイズは 4.4KBと表示されてる。 確かにそちらの意図どおり、ハロワだけ先に表示されるよ。(パースされてる) 4KBパディングすれば、通常ならバッファをキック出来るから、確かにパーサもキック出来るはずだし、実際そうなってる。 ただな、時間を既に書いたが、それでは間に合わないんだよ。 ネットワークってのは地味に遅くて、例えばここからPHP.netへのpingは264msかかってる。 後処理は平均29.5-58ms程度だと予想されてるので、window.stopがサーバーに間に合わない。 結果、パケットは送信済みで、受け取られたパケットが捨てられるだけだよ。 ただし確かにパースはされてる。(=その方法でもユーザーの体感速度は上がる可能性がある) ただ、それはページのhtmlだからであって、ajaxではその方法は使えない。 ページのhtmlはブラウザの速度競争のおかげで出来るだけ早くパースするように出来てるからだ。 xmlを送る場合、閉じタグ以降に何かあったらエラーだったので、パディングで押し込みは無理だ。 jsonについては後ろにパディングしてもエラーは出ないようなので、押し込み自体は出来るが、 そもそもAPIが途中のパース結果を見せるように出来てないから、普通に実装されてれば全部揃ってからパースだよ。 世の中の大部分のサイトがこの「押し込み」で高速化してる、というのならブラウザも対応するはずだけど、聞いたこと無いでしょ。
- 681 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 17:59:23.81 ID:X/tiD49H0.net]
- 記録37レスか
殿堂入りだな
- 682 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 18:01:07.93 ID:X/tiD49H0.net]
- と思っ
- 683 名前:スらまだ記録更新するつもりか []
- [ここ壊れてます]
- 684 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 18:23:53.35 ID:IpTlZujB0.net]
- >>667
間に合わないの意味がわかりませんです。 本処理終了の時点でブラウザ表示に必要な情報と、その次の行にwindow.stopまでを一気に吐き出すんだから、そのあとにサーバーから何か来て破棄されようが、どうでもいいんじゃないかしら? 要は十分な情報を受け取った段階でブラウザ側から切断してるんですよ。 本処理の後の後処理を待たせてる時間をなんとかしたいのが目的なのに、4KBでぐだぐだ言われてもねぇ。 後処理を待たせてる時間と比較したら明らかに早い段階で通信終了してるはずですよ。なんとかしたいレベルってことは人間が認識できるレベルの待ち時間は発生してるんですよね。それと比較して4KBは人間にわからないレベルの時間ですよ。 xmlが〜とかは、htmlでラップするなり、頭良いんでしょうから工夫してくださいな。
- 685 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 18:32:12.95 ID:xWv0yV5l0.net]
- 接続の切断が目的なら、
<? echo str_pad(" ",4096); flush(); sleep(10); これは、いらない。
- 686 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 18:37:28.54 ID:IpTlZujB0.net]
- >>671
あら、そうなんですか? 後学のためにどうやるのか教えて下さい
- 687 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 19:02:41.47 ID:Sb1zsMiv0.net]
- >>654
コレ、面白いね
- 688 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 19:56:24.99 ID:uMZDvd8qa.net]
- 無職のアスペルガーであるコミュ症プログラマーはエネルギーが違うね
そのエネルギーをもっと違うところに使おうか
- 689 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 20:15:50.49 ID:F8+XC2Dv0.net]
- >>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か、というところ。
- 690 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 20:22:29.50 ID:F8+XC2Dv0.net]
- >>670
> なんとかしたいレベルってことは人間が認識できるレベルの待ち時間は発生してるんですよね。 ちなみにこれはない。まだ部品を動かしている段階。 ただそもそもC出身なので基本的にノーコストで速くなるのならそれを選択する。 そして普通の環境では有る close が無いので面食らっているわけだ。 俺が見落としてるだけだと思っていたが、本当にないのだから驚きだ。
- 691 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 20:32:09.79 ID:Sb1zsMiv0.net]
- まー設計レベルでミスってるから write_close みたいなこと言い出してんだけど、2年ぐらい Web に関われば、自力で解決できるかもね
がんばれw
- 692 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 20:54:11.00 ID:xr/U2THc0.net]
- アスペおじさんに50の質問しようぜ
>>675 ・PHPはクソクソという癖してPHPにしがみついてるのはなんで? ・なんで無料レンタルサーバーなの?無職だからお金ないの? ・任意でcloseできてウェブと親和性が高い言語って例えば何?あるならそれ使えば? ・例えばNodeならできるが?Nodeでやればいいのに何でやらないの? ・Nodeが使えるサーバーってVPSで500円ぐらいで用意できるけど500円も払えないの?それとも自分じゃサーバーを作れないの? ・何度かproc_openって出てるみたいだけどそれを無視してるのはなんで? ・そもそも働いてるの? ・そんなコミュ能力で仕事できるの?
- 693 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 21:04:38.27 ID:tYvxU5+Zr.net]
- 無料レンサバ案件受けるか普通
イキっててキメぇわ
- 694 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 21:05:44.43 ID:IpTlZujB0.net]
- >>675
あーいえは、こーいうで、なかなか楽しかったです あなたが不可能と断定したものを、あたしは2つも実現してみせたんですから、少しは敬意を表しなさいよ笑 断定したことをひっくり返されても、上からの態度とか、かっこわるいわよ そんなんじゃ、いつまで経っても童貞卒業できませんよ
- 695 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 21:19:16.52 ID:xWv0yV5l0.net]
- >>672
場合分けしました。 とは言え、ググって原因は予想したけど。 昔、「システム業界では、滅多に不可能と答えてはダメ」というようなことを言われたことがあります。
- 696 名前:デフォルトの名無しさん mailto:sage [2021/08/05(木) 21:22:27.97 ID:F8+XC2Dv0.net]
- >>678
proc_openはexecと変わらんだろ。 それで環境依存無しのコードが書けるわけでも無し。 PHPについては何度も言ってるように無料レンタルサーバーで動かす為で、 それは俺が使う用ではないからだよ。 PCのことなんて分からない連中でも動かせるようにして、しかも無料なら試しにやってみようかともなるだろ。 この辺については俺がどういうアプリ戦略を採るかだから、意見言われてもああそうですか、でしかない。 そしてここで色々ひけらかして後々粘着されてもウザイだけだから、特定出来るほど詳しく言うつもりもない。 なおNodeの無料鯖が日本に出現したら間違いなくそれに向けて作る。 今それがあるのならPHPは捨てるし、多分今後は書くこともない。 既に言ったが俺的にベストなのはサーバレスで、実際はレンタルサーバーよりもサーバレスが断然いい。 だからherokuの鯖が日本に出来るのがベストだが、無いのだから仕方ない。 PHPは糞だが、そもそも俺のアプリはそんなに大きいものではなく、 むしろSQLiteのラッパでしかないので、今はphp.netを睨みながらやってるような状況だが、それでも何とか進めてる。 ただまあ、俺が考えてることは今のWebからすると奇妙な事だから、君達と話が噛み合わないのは仕方ない。 それで君らが頭に来てるのも分からんでもない。 ただ先述の通り、詳しく言うと後々の憂いになるから、お互いに技術的なこと以外には踏み込まないようにした方がいい。 Webってのはそれくらいの距離感が丁度いいのだと俺は思ってる。
|

|