X



PHP質問・雑談スレ5【初心者お断り(ROM歓迎)】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
垢版 |
2018/10/04(木) 16:43:56.93ID:r0iGnrNs
PHPに関する質問や雑談をするスレです。
初心者お断り(ROM歓迎)と書いてますが、初心者用のスレが用意されているからで、
難しい質問や話題をしなければいけないわけではありません。
PHPマニュアルの読み方を概ね理解していて、関数リファレンスが正しく読める方用のスレです。

PHP未導入の方や、手取り足取りが必要な初心者の方はム板のくだスレへどうぞ。
https://mevius.5ch.net/tech/ (【PHP】で板内を検索)

前スレ
https://medaka.5ch.net/test/read.cgi/php/1498653249/

その他リンク
・PHPマニュアル
 https://secure.php.net/manual/ja/index.php
・コードテスト・貼り付け用
 https://ideone.com/
・プログラミングのお題スレ (求PHPer参戦)
 https://mevius.5ch.net/test/read.cgi/tech/1538096947/

このスレで扱う話題
・PHPのコード,設定や設定値に関する質問
・常識的範囲内でのコードレビュー依頼・改良相談
・PECL,PEARに関する質問
・PHP新機能やPHP関連トレンドの話題
 (FWや非公式ライブラリの話題や特徴比較は良いが使い方から先の話題は専スレへ)
・PHPのバグ発見報告・公式に報告する前の検証依頼

このスレで扱わない話題
・直接関係ない○○特有の質問(専スレへ)
 (HH,エディタ,IDE,サーバ,OS,DB,SQL,FW,テンプレート,非公式ライブラリ・アプリケーション等)
・PHPの改造
0645nobodyさん
垢版 |
2019/02/21(木) 23:07:59.09ID:???
>>644
非同期I/Oは応答があったときに、手が空いていたら処理するだけでしょ?
別の処理が走っていたらそれが終わるまでは待つことになる
0646nobodyさん
垢版 |
2019/02/22(金) 02:07:16.01ID:???
別プロセスでスクリプト起動してリソースの要求から応答待ちまでやればいいじゃん
0647nobodyさん
垢版 |
2019/02/22(金) 08:07:41.60ID:???
そもそもそんな応答がめちゃくちゃ遅いリソースを扱うことってあるか?
0648nobodyさん
垢版 |
2019/02/22(金) 09:19:20.91ID:???
DBの事なにもしらない時に作ったプログラムがそうだったな
インデックスなしでDB構築しって、検索するだけで30秒ぐらいかかってたw
ついでにセキュリティホールの塊

・・・はいいとして、少しでもまたせたくないってことじゃね
webは2,3秒待たせるだけでも人がどんどん減る
0649nobodyさん
垢版 |
2019/02/22(金) 09:48:05.20ID:???
スレッドやプロセスは重量級リソースだから
そんな大量にそもそも生成できないだろ?
1秒で1000スレッド生成+切り替えとか無謀

非同期I/O基本にして
足りなければサーバー増やした方が
利用効率が高い

その証拠にPHPのようなプロセスを大量に生成するスタイルを
他言語のフレームワークは使ってないw
0650nobodyさん
垢版 |
2019/02/22(金) 10:34:00.30ID:???
外部サイトのリソースとかならあるんじゃね?
ウェブスクレイピングしてるとかなら応答にも時間が掛かるだろう
それも複数ページ、もしくはページの画像などのリソースも取得するとなれば複数スレッド立ち上げたくなる気持ちもわかる。

DBの検索時に別スレッドで何かするってことはないだろ


まぁ複数人で使うプログラムに一人当たり何スレッドも使うとサーバーが死ぬけど
管理者一人だけが使うようなプログラムなら100スレッドだろうと使っても良いだろう
0651nobodyさん
垢版 |
2019/02/22(金) 12:31:59.41ID:???
人間という応答が遅いくせに即反応してやらないとすぐにイライラしちゃうリソースがあってだな

UIとバックグラウンドはスレッド分けたい時もある
javascriptもそれができるようになったし
0652nobodyさん
垢版 |
2019/02/22(金) 14:19:13.01ID:???
Webサーバーではpthreads使えないよな
CLI専用

手動でコマンド実行された時か
定期的にコマンドを実行するバッチ処理内でなら使える

時間の掛かる処理を予めやっておいて
DBに結果を入れる
WebではDBから取得して表示するだけ
0653nobodyさん
垢版 |
2019/02/26(火) 20:05:10.67ID:AQScychf
ちょっとマジで聞きたいことがあるんだが、cgiからブラウザに対してCP932でHTMLが出力されている。
もちろんヘッダも正しく指定されている。

んで、そのHTMLの中に、
<IMG SRC="あいうえお.jpg"> などと言う日本語のファイルが指定されているわけだ。
その日本語のファイル名も、CP932だ。

んで、ご丁寧にブラウザが自動でURLエンコードしてくれるようなのだが、
%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A.jpg
となるのだ。これは "あいうえお.jpg" をUTF-8として解釈した時の文字コードだ。
俺としては %82%A0%82%A2%82%A4%82%A6%82%A8,jpg (CP932の文字コード)となってもらわなくては困る。

聞きたいことは2つで、これを解決するにはどうしたら良いか?
もう一つは、ブラウザごとの仕様によりこの挙動は違うのか?
の二点だ
よろしく頼む
0654nobodyさん
垢版 |
2019/02/26(火) 22:25:41.52ID:???
>>653
あっちこっちに同じ質問するなカス野郎!
なにがよろしく頼むだ
テメーは一緒悩んでろ
0655nobodyさん
垢版 |
2019/02/26(火) 23:43:52.58ID:???
PHPのソースからコメント取り除きたいんだけど、何かお手軽な方法ないかな
php -wだと改行もなくなっちゃうので、エラーを追いづらくなるから改行は残したい
0656nobodyさん
垢版 |
2019/02/27(水) 02:57:05.35ID:???
正規表現で置換とか?
コメントを捨てる理由は良く分からんけど
0657nobodyさん
垢版 |
2019/02/27(水) 14:37:32.14ID:???
それをすてるなんて とんでもない!
0658nobodyさん
垢版 |
2019/02/27(水) 16:38:05.93ID:???
cgi側でSJISにデコードしろ
0659nobodyさん
垢版 |
2019/02/27(水) 18:13:05.56ID:???
皆さんはどうやってアクセスログなどを作成してるんですか?
0660nobodyさん
垢版 |
2019/02/27(水) 19:05:00.25ID:???
>>659
俺はアクセスログは作成しない
たぶんしないと思う
しないんじゃないかな

apacheやnginxにしかできないこともあるから
0661nobodyさん
垢版 |
2019/02/27(水) 19:31:27.30ID:???
アクセスログはサーバーが自動で作ってくれるからそれに任せてる
0662659
垢版 |
2019/02/27(水) 19:43:40.08ID:???
>>660
>>661
参考になります。
ありがとうございました。
0663nobodyさん
垢版 |
2019/02/28(木) 06:52:42.60ID:Ki3DA8Q6
掲示板やチャットに書いた人のIPとプロバイダは保存してある
0664nobodyさん
垢版 |
2019/02/28(木) 09:33:18.95ID:???
>>663
当たり前だろう
保存してない完全な匿名掲示板なんて無いよ
0666nobodyさん
垢版 |
2019/02/28(木) 10:11:13.89ID:???
>>665

2chは最初からip全部記録してるよ
大昔から普通に逮捕者でてるでしょ
0667nobodyさん
垢版 |
2019/02/28(木) 10:34:19.58ID:???
最初はしてなかったから運営者が責任とらされたんじゃなかったっけ
0668nobodyさん
垢版 |
2019/02/28(木) 10:56:47.81ID:???
ネオ麦茶思い出した
あれ以前の事件はもう覚えてないな
0669nobodyさん
垢版 |
2019/02/28(木) 11:26:21.87ID:S9RfIHJr
>>664
いっぱいあるが
0670nobodyさん
垢版 |
2019/02/28(木) 15:17:22.19ID:+klj5d/A
永久保存なんてしてんの?
投稿内容と一緒に保存してるだけで、いらなくなったら消してくでしょ
0671nobodyさん
垢版 |
2019/02/28(木) 15:41:04.23ID:???
永久保存なんて現実的には無理だから求められないはずだが
何年間保存しろみたいな義務ってあるんだっけ?
うちのアクセスログ半年ぐらいで古いのから消えてるぞ見てないから知らんけど多分
0672nobodyさん
垢版 |
2019/02/28(木) 19:37:26.95ID:rD/hQUF8
GDPR的には永久保存はNG
アクセスログのIPも個人情報だかららしい
0673nobodyさん
垢版 |
2019/02/28(木) 21:34:55.13ID:???
GDPR「消せ」
日本の警察「出せ」
ってなったらどうすればいいの?
0675nobodyさん
垢版 |
2019/02/28(木) 22:13:31.72ID:iS3nNGqx
GDPRはよく分からない
なんか具体的なことは書いてないらしいし
ログを永久保存しててもセキュリティのためだって言えば大丈夫?
0676nobodyさん
垢版 |
2019/03/01(金) 04:26:48.37ID:???
GDPRなんて無視一択だろ どこの誰だよって感じ
ここは秘境の地ジャップランドやぞ 治外法権やぞ
0677nobodyさん
垢版 |
2019/03/01(金) 13:02:50.04ID:???
error_log() とか fopen() とかあった気がする
0678nobodyさん
垢版 |
2019/03/02(土) 10:32:45.61ID:1ak74M9Q
https://github.com/symfony/symfony/issues/8703#issuecomment-323608103
https://stackoverflow.com/questions/12378644/how-can-i-retrieve-the-current-error-handler

PHPのset_error_handlerってワケワカメな仕様だよね

・set_error_handlerはハンドラを一つしか設定出来ない。複数使うためには自分で元のエラーハンドラを呼ぶなど工夫が必要。上手くやらないと元のエラーハンドラは動かなくなる。
・現在のエラーハンドラを変更せずに取得する方法は無い。set_error_handlerが元のエラーハンドラを返すので、何か適当なエラーハンドラを設定後にrestore_error_handlerを呼ぶ必要がある。

エラーハンドラのネストはややこしくて
SentryがSymfonyのエラーハンドラを上書きしてしまい、動かない原因になった
0679nobodyさん
垢版 |
2019/03/02(土) 11:04:32.35ID:???
エラークラスに手をつけるとあっという間にぐちゃぐちゃになる
特に7.0で仕様が大幅に変わってからは何もしてない。全部FWに丸投げ
0680nobodyさん
垢版 |
2019/03/02(土) 14:03:44.27ID:1ak74M9Q
何でこんな分かりにくい仕様のままなの?
0681nobodyさん
垢版 |
2019/03/03(日) 00:26:08.40ID:???
error_get_lastとerror_clear_last何回も呼ぶほうが賢そう
0683nobodyさん
垢版 |
2019/03/03(日) 10:12:55.82ID:???
Apache以外は設定がめんどくさすぎる
0684nobodyさん
垢版 |
2019/03/03(日) 13:08:51.55ID:???
>>682
otherが伸びてるグラフあるがなんなんだ?
0685nobodyさん
垢版 |
2019/03/03(日) 19:05:07.76ID:???
nginxのシェアをまるごととってるとなると
nginxのフォークかなんかと考えるのが妥当
というわけで調べたらNGINX Unitなるものがあるらしい
0686nobodyさん
垢版 |
2019/03/03(日) 23:56:13.54ID:???
nginxって静的コンテンツならいいだろうけど、
phpを使うならNginxの下にApache入れて処理してやる必要があるだろ
nginxはwebサーバーの元締めみたいなヤツだからシェアがあがるだけじゃね?
0687nobodyさん
垢版 |
2019/03/04(月) 00:10:38.85ID:???
nginxはリクエスト捌けなくなると溜めこむよね
0688nobodyさん
垢版 |
2019/03/04(月) 05:29:17.91ID:nBk6Q3LZ
すまんけどPHPについておしえてくれない?
PHPってどこで動くの?


ちなみにCGIは知っていて、
クライアントからサーバーにリクエスト(アクセス)があった場合、HTTPDが特定のプログラムを起動して、そのプログラムから出力を受け取る。
HTTPDは受け取った出力を必要なら整形してクライアント(ブラウザに返す)。

PHPの場合、どこで動いていて、どういうふうに呼び出されて、どういう風に出力を返すの?
0689nobodyさん
垢版 |
2019/03/04(月) 06:55:41.18ID:???
PHPマニュアルにSAPIについてちゃんと書いてある項が見当たらないんだけど, そもそもそういう項はないのか単にマニュアルの調べ方が悪いだけなのか
とりあえず ttps://www.slideshare.net/do_aki/php-sapi-zendengine3 この辺読んでみるのがええんちゃう
0690nobodyさん
垢版 |
2019/03/04(月) 11:47:41.23ID:???
lzma形式の圧縮ファイルを展開できるスクリプトって無いかな
0691nobodyさん
垢版 |
2019/03/04(月) 20:38:28.60ID:???
そんなのexecで叩けばいいだろう
0692nobodyさん
垢版 |
2019/03/06(水) 04:22:15.66ID:???
ajaxで複数のオブジェクトを同時に送ることって出来るの?
jsonデータとFormDataを同時に送りたいんだけど
0693nobodyさん
垢版 |
2019/03/06(水) 04:35:30.51ID:???
掲示板等の機能を持った半登録制のウェブサイト作ってるんだが
ROMは誰でも出来て
書き込んだり新規トピックを立てようとするには垢登録が必要な仕様にしてるんよね

書き込んだ人のIPアドレスやプロバイダはどの様に記録したらいいかね?
ipぐらいなら平文でもええのかな?
キーワード使ってワードを暗号化出来る関数とかなんかある?
0694nobodyさん
垢版 |
2019/03/06(水) 09:23:49.30ID:AlWqAaJx
>>692
application/jsonとmultipart/form-dataを一つのリクエストで送りたいのか?

contentTypeはリクエストにつき一つしか指定できないのにどうしろと
別々のリクエストにして両方のPromiseを待つなら出来るが
0695nobodyさん
垢版 |
2019/03/06(水) 09:47:15.91ID:???
>>692
↓な感じでまとめて送り、受信先でパースすれば?
[
{contentType:"application/json", content:"送りたいjson"},
{contentType:"multipart/form-data", content:"送りたいFormData"}
]

>>693
書き込みに垢登録が必要なシステムならログイン時にアクセスログの記録をしといて
書き込んだ時点では、アカウントのIDを記録しておけばいいだろう
0696nobodyさん
垢版 |
2019/03/06(水) 19:53:40.38ID:Tkx18etX
登録と書き込みのプロバイダが違うかもしれない
0697nobodyさん
垢版 |
2019/03/07(木) 03:18:58.78ID:???
さして重要な個人情報でないIPやプロバイダをわざわざ暗号化する必要もないだろ
可逆じゃないと警察から照会があったときとかも意味もないし
そもそも暗号化のためにさくリソースが無駄
というか普通はhttpdのログにも記録される情報だろうそれ
0698nobodyさん
垢版 |
2019/03/07(木) 05:48:52.63ID:gKnNN8Ae
httpdはリクエストに対する記録しか残さないのでサイトの中で何をやっていたかは不明です
0699nobodyさん
垢版 |
2019/03/07(木) 06:31:28.79ID:???
IPや逆引きホスト名に関しては二重取りになり
しかもそっちのログは暗号化もなにもされてないってことを指摘してるだけで
さすがに投稿日時ぐらいは記録するのは想定してるよ
0700nobodyさん
垢版 |
2019/03/07(木) 07:10:40.37ID:???
phpやったことないんだけど、cgiとはどう違うの?
httpfとphpの関係ってどんな感じなの?
0702nobodyさん
垢版 |
2019/03/07(木) 07:59:49.23ID:???
アクセスしたURL見りゃ大体何やってたかわかるじゃん
0703nobodyさん
垢版 |
2019/03/07(木) 08:22:01.58ID:???
URLにhttpdの仕様なんて書いてなくね・・・?
0704nobodyさん
垢版 |
2019/03/07(木) 09:25:02.54ID:JXmWpfQd
>>700
CGIはオワコン
リクエストの度にコマンドを実行する方式なので、遅すぎる

ApacheはWebサーバー自体にPHPモジュールを含んでいる
CGIと比べたらスクリプトの実行は速いものの
Apache自体のWebサーバーとしての速度はnginxなどに劣る
また、Webサーバーの中で動くので分離度が低く、セキュリティ上不安がある

FastCGIは両者のいいとこ取りみたいな感じ
一度立ち上げたプロセスとソケットで通信するようにして、プロセスを再利用可能にしてCGIの分離性を保ちつつ
それなりの高速さを実現した
この方式だとApacheだけでなく、nginxも使える
0705nobodyさん
垢版 |
2019/03/07(木) 09:44:08.20ID:???
何で初心者お断りのスレで、phpやったことない初心者がいるんだよ
スレタイも読めねーのか?
0706nobodyさん
垢版 |
2019/03/07(木) 09:49:21.07ID:JXmWpfQd
WSGIはWebサーバーとアプリケーションサーバーを繋ぐという点はFastCGIに似ているが、FastCGIは言語を問わないのに対し
WSGIはPython専用

FastCGIより上位の層にあり、抽象度が高いらしい
FastCGIが通信の仕様だけなのに対して
WSGIはワーカープロセスの制御も仕様に含むとか
そのため、FastCGIを利用したWSGI実装もある
0707nobodyさん
垢版 |
2019/03/07(木) 09:57:29.24ID:???
>ApacheはWebサーバー自体にPHPモジュールを含んでいる
Apacheがサーバーなんじゃないの?
Apache自体にPHPモジュールを含んでいるってこと?
モジュールを含むってどういう意味?
んでそれがなんで速いことになるの?結局インタプリタと同類だからcgiと同じじゃないの?
もしかしてプロセスが常駐してるの?
0708nobodyさん
垢版 |
2019/03/07(木) 10:27:55.62ID:???
>>705
前から思ってるけどphpくだスレがないからここに来るしかない
初心者お断りって書いても意味ないぞ
0711nobodyさん
垢版 |
2019/03/07(木) 11:09:14.54ID:???
>>709
あぁ板が違うのか
気づくわけねーだろハゲ
0712nobodyさん
垢版 |
2019/03/07(木) 16:37:14.63ID:???
>>1をちゃんと読まないで逆ギレとか草
0713nobodyさん
垢版 |
2019/03/07(木) 16:41:08.25ID:???
>>1に書いてあるだろ
読めよハゲ
0714nobodyさん
垢版 |
2019/03/09(土) 10:39:30.25ID:CUrjZ5EQ
PHPは設定が多過ぎて本番環境で動かす時の設定をどうすれば良いか分からない

セキュリティはともかく性能的にはどうチューニングする?
その設定で本当に速くなってる事はどう確かめる?

Webサーバーはnginxにしている
0716nobodyさん
垢版 |
2019/03/09(土) 13:03:47.10ID:???
Tsungでも使って負荷テストすれば?
0717nobodyさん
垢版 |
2019/03/10(日) 15:36:13.93ID:DDCWVA+6
教えてください。

アップルのウェブサイト(https://www.apple.com/)のContent-Lengthをget_headers()で取得すると値が53394であるのに対して、
ブラウザでウェブサイトを表示してウェブマスターツールでContent-Lengthを確認すると8222になっているのは何故ですか?

変なことを聞いていたら申し訳ないです(´・ω・`)
0718717
垢版 |
2019/03/10(日) 16:38:52.76ID:DDCWVA+6
こちらの勘違いでした。
質問を〆ます。
ありがとうございました。
0719nobodyさん
垢版 |
2019/03/10(日) 18:34:29.97ID:???
どういたしまして
0720nobodyさん
垢版 |
2019/03/11(月) 07:35:19.96ID:???
httpで接続するとphpは実行されるんだが
httpsで接続するとphpがそのまま表示されるんよね(´・ω・`)

これは何が問題なの?
初めてSSL化したからよく分からんとよね
0721nobodyさん
垢版 |
2019/03/11(月) 07:42:23.53ID:???
サーバ再起動したら上手く行ったわ(´・ω・`)
すまんな自己解決した
0723nobodyさん
垢版 |
2019/03/12(火) 20:20:39.81ID:???
指定日から指定日までの「年月」一覧を
もっとも簡潔に角煮はどうしたらいいかな
0725nobodyさん
垢版 |
2019/03/13(水) 12:09:34.37ID:???
豚肉と水を入れます
0729nobodyさん
垢版 |
2019/03/24(日) 09:30:16.81ID:xH/tLpfF
WordPress、PHP 5.2から5.5までのサポートを終了
https://news.mynavi.jp/article/20190322-793657/

> これで、WordPressがサポートされる最も古いバージョンはPHP 5.6となり、WordPressを利用する場合にはPHP 5.6よりも新しいバージョンを使うことが必須となる。

5.6もクソ古いんだからね切れよwwwwwwww
0730nobodyさん
垢版 |
2019/03/25(月) 10:00:08.63ID:???
サポート終了ってだけで別に使えなくなるわけではないんじゃね
あえて使えないようにPHP5.6からの関数やら機能やら使ってるのかもしれないが
0731nobodyさん
垢版 |
2019/03/25(月) 11:06:40.05ID:???
5.6サポート切れた時、色々な中小企業のHPが見れなくなるのだろう
0732nobodyさん
垢版 |
2019/03/25(月) 11:47:39.51ID:???
5.6もう切れてるんだって
0733nobodyさん
垢版 |
2019/03/25(月) 11:55:21.65ID:???
>>732
それはphpのサポートだね
今回はwpのphp5.6に対するサポートの事だよ
0734nobodyさん
垢版 |
2019/03/25(月) 17:26:59.69ID:???
だからサポート切れた言語を生かすなっていいたいわけ
0735nobodyさん
垢版 |
2019/03/25(月) 20:00:54.60ID:???
そもそもサポート切るなよ
サイト運営者は一生アップデートしなきゃいけないのか?無理だろそんなの
0736nobodyさん
垢版 |
2019/03/25(月) 20:02:35.00ID:???
そうだよ
アップデートというか、数年に一回作り直しになる
0737nobodyさん
垢版 |
2019/03/25(月) 20:39:18.02ID:???
そうなんだよなあ
でも開発だけで保守を依頼せず放置のクライアントばかり
世の中にそういうサイトいっぱいあるんだろうな、そして攻撃されて流出やらやらかす
俺は知らんぞ
0738nobodyさん
垢版 |
2019/03/25(月) 22:44:23.24ID:kHjB5/K3
そんな所はそもそもセキュリティパッチの適用すらして無い
意識の低いところだろ?
0739nobodyさん
垢版 |
2019/03/25(月) 23:57:20.82ID:???
ブログサービスなりグーグルサイトでもつかっとけよな
0740nobodyさん
垢版 |
2019/03/26(火) 06:03:02.89ID:???
当面は大きなセキュリティリスクが見つかれば有志がパッチ作るだろう
0741nobodyさん
垢版 |
2019/03/26(火) 06:24:17.02ID:???
パッチ当てるのもアップデートするのも手間は変わらんだろ
有志とかいう非公式のパッチに変なコードが仕組まれていたらと思うと
とてもじゃないが公式が出すアップデートを適用した方がマシ
0742nobodyさん
垢版 |
2019/03/26(火) 09:00:17.30ID:???
>>735
無理というのは嘘吐きの言葉なんだよ
0743nobodyさん
垢版 |
2019/03/26(火) 11:34:43.81ID:???
>>741
日本人なら信用できるだろ?
未だにWindows2000とか日本人が非公式でパッチ出してるけど
余裕で信頼されてんぞw
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況