PHP質問・雑談スレ6【初心者お断り(ROM歓迎)】

1nobodyさん2019/05/12(日) 18:21:04.82ID:Bj6LHkP3
PHPに関する質問や雑談をするスレです。
初心者お断り(ROM歓迎)と書いてますが、初心者用のスレが用意されているからで、
難しい質問や話題をしなければいけないわけではありません。
PHPマニュアルの読み方を概ね理解していて、関数リファレンスが正しく読める方用のスレです。

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

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

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

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

このスレで扱わない話題
・直接関係ない○○特有の質問(専スレへ)
 (HH,エディタ,IDE,サーバ,OS,DB,SQL,FW,テンプレート,非公式ライブラリ・アプリケーション等)
・PHPの改造

186nobodyさん2019/12/12(木) 12:18:36.42ID:???
うちは未だに5.xだからね

187nobodyさん2019/12/12(木) 12:20:08.28ID:???
>>186
それはそれで阿鼻叫喚だなw

188nobodyさん2019/12/12(木) 13:23:16.10ID:G9NaIZtM
うちも5.xだわ
昔にとあるツール使って構築したサイトで色々カスタマイズというかいじりまくってしまって
最新版に更新できなくなっちゃってるんだよなぁ
だから7系に上げられない
さっさとそのコンテンツ終わってくれれば良いんだけど妙に長生きしてるんで困ってる

189nobodyさん2019/12/12(木) 18:23:13.02ID:???
アロー演算子ってクロージャーとはスコープの扱いが違うんだねえ
引数渡したりuse書く必要なくなったんだな

190nobodyさん2019/12/12(木) 18:23:31.72ID:???
アロー演算子じゃなくてアロー関数だ

191nobodyさん2019/12/14(土) 15:50:54.40ID:1rEU0u8X
すげぇな、アロー関数まで搭載するんだw

PHPってほんと、あらゆる技術を無節操に取り込みまくるよな。
やっぱ間違いなく最強の言語だ。

絶対最後に生き残るの、PHPだって、これ。

192nobodyさん2019/12/14(土) 16:37:58.34ID:???
んなことない
今だいたいどの言語も統合が進んでる感じ
ただしPHPから学ぶ機能は何もないという
もともとWeb制作ツールの延長だし
革新的な機能を出すような言語じゃないからしょうがないけど

193nobodyさん2019/12/14(土) 16:53:30.04ID:1rEU0u8X
>ただしPHPから学ぶ機能は何もないという

そら、そうだろ。

PHPは与える側じゃなくて、全部取り込む側。
漁夫の利作戦。

他の言語であれこれ試行錯誤して『これいいよね』ってなったものを
無節操に取り込むのが我らがPHPだよ。

もう、最強。

194nobodyさん2019/12/14(土) 18:51:03.37ID:???
goto…おっとなんでもない

195nobodyさん2019/12/16(月) 10:32:30.14ID:???
>>193
そのたとえに漁夫の利は不適切では?

196nobodyさん2019/12/17(火) 15:54:53.27ID:???
機能的スパゲティ

197nobodyさん2019/12/20(金) 19:11:39.64ID:PTeWJYC9
連想配列なんてのがのさばっているうちは、どこまでいっても二流ですわ。

198nobodyさん2019/12/21(土) 16:07:03.15ID:???
なんか意味不明なこといってますね

199nobodyさん2019/12/30(月) 18:21:34.30ID:???
すれ違いなのは承知です。

GAS(Google App Script)の専用スレッドはありませんか?

200nobodyさん2020/01/03(金) 18:30:41.94ID:???

201nobodyさん2020/01/23(木) 00:51:35.57ID:B6IkrdgX
誤訳直そうと思ったらログインがうんぬんメーリスがうんうん言われて面倒だったんで
https://www.php.net/manual/ja/function.curl-getinfo.php の CURLINFO_FILETIME
編集権があってヒマな人誰か直しといてもらえませんか

202nobodyさん2020/01/23(木) 17:22:55.09ID:???
>ドキュメントを取得するのにかかった時間

203nobodyさん2020/01/27(月) 14:16:21.90ID:???
ググればだいたい解決するから5chの出番はないな
というかこういう実用系の内容では5chは要らない

204nobodyさん2020/01/27(月) 14:35:37.95ID:???
つーかPHPの公式ドキュメントって
数多のP系スクリプトの中でも他の追随を許さない質と量だよね

言語自体スパゲティだのなんだの言われてるけど
そんなのを軽くチャラにするくらい丁寧で充実してる

205nobodyさん2020/01/31(金) 21:19:14.19ID:B6GJJFqv
実にペチパらしい見解やね

206nobodyさん2020/02/24(月) 22:48:25.17ID:???
今からPHP勉強してフリーランスデビュー目指して頑張ります
ちな中卒30代プログラミング未経験

207nobodyさん2020/04/08(水) 01:28:35.27ID:???
徳丸ひさびさに見たけど白髪増えてだいぶ老けたなぁ(´・ω・`)
相変わらずのPHPびいきなようで安心。
彼がいる限りまだまだ日本でのPHPは終わらんよ( ー`дー´)キリッ

208nobodyさん2020/04/10(金) 14:39:58.81ID:???
とくさんか?

209nobodyさん2020/04/13(月) 18:02:28.11ID:???
IDとパスワードのログイン方式でなく
電子証明書方式のログインサイトを作ってみたいのですが
具体的にはどうしたらいいんですかね?

210nobodyさん2020/04/13(月) 18:08:22.16ID:???
実績ある人に頼むといいよ。

211nobodyさん2020/04/13(月) 18:26:22.68ID:OHT1Xple
素人が作ったら電子証明書使ってても穴あきそうだな
実績あるプロに任せろ

212nobodyさん2020/04/16(木) 12:59:09.04ID:???
こんなとこで質問するレベルのやつが作って良いものではないw

213nobodyさん2020/04/16(木) 16:57:17.08ID:???
結局誰も具体的には知らないんだろ

214nobodyさん2020/04/16(木) 17:37:35.65ID:???
そりゃ、ここの話題じゃないからな。
ヒント出してるだけマシだろ。

215nobodyさん2020/04/16(木) 17:58:15.14ID:R+e9Gx7F
…まさか5ちゃんに書いて答えもらえるとマジで思ってたのか?

216nobodyさん2020/04/16(木) 18:41:49.02ID:???

217nobodyさん2020/04/16(木) 19:12:59.32ID:???
おぃ!w

218無職のADHDが◯千万円分のビットコイン所持2020/04/27(月) 14:38:56.38ID:/VE0k4dm
>>1
東京三鷹の土井(剛)莉里子
https://i.imgur.com/Fbgp0yG.png


氏名■土井剛(莉里子)

生年月日■1994.3.7

前住所■〒181-0013 東京都三鷹市下連雀5丁目3 シティハイツ吉祥寺通り4階

性別■男(詐欺師のため、戸籍変更している可能性あり)

Twitter■@copy__writing @kotobamemo_bot

疾患■性同一性障害(LGBT)、発達障害(ADHD)、アスペルガー症候群、統合失調症



●一方的に好意を寄せる男性から相手にされないと嫌がらせを繰り返す
●某大学病院の精神科隔離病棟にて強制入院
●骨が見えるほどのリストカット
●奇声をあげながら自室部屋のドアをナイフで突き刺す
●シティハイツ吉祥寺通り4階から飛び降り自殺
●性転換手術(金玉を取る)
●トラブル...嫌がらせ、ハッキング、乗っ取り、たかり、脅迫、殺害予告...etc
●去年から今年にかけてyoutuber同士のトラブルの仲介に入り某大手youtuberから複数回に渡り1億近い慰謝料をふんだくる
●自宅の吉祥寺にいられなくなり、大阪に潜伏中(警察からも逃げている)

219nobodyさん2020/04/29(水) 21:45:14.63ID:???
test

220nobodyさん2020/05/04(月) 02:20:48.69ID:???
追記型の最新のログ10件を表示するために長めのログをfgetsで
キューに10個いれてそれ以上あれば破棄していくという感じで
$queue = array();
while (!feof($fp)) {
 array_unshift($queue, fgets($fp));
 if (count($queue) > 10) array_pop($queue);
}
というようなコード考えたんですけど
初期値falseの$overflow変数を儲けて
if ($overflow || count($queue) > 10) {
 array_pop($queue);
 $overflow = true;
}
のようにしたら$overflowがtrueの時点で
countのところには行かないで認識あってますか?
$overflow = trueよりcountのほうが遅いはずなので
php5系使ってて配列操作は遅いので改善ポイントとして考えてます

221nobodyさん2020/05/05(火) 04:07:27.95ID:n9pskbg5
>>220
count()の実行回数を減らしても大して違いは無いと思うけどなぁ。
それより1行ずつ配列に入れるのをやめてfile()で一気に読み込んでから、array_slice()で最後の10行を残して、array_reverse()で反転させる方が早くないか?
遅いのはログの行数が多いからだと思うけど、あまり多いとfile()じゃメモリ消費も気になってくるけどね。
その場合はログのサイズを小さくすることを考える必要がある。デイリーベースにするとか。

222nobodyさん2020/05/06(水) 00:15:56.98ID:???
キュー使うなら配列よりSplQueue使ったらええんちゃう
実装見たわけじゃないけど常識的にcountはO(1)だし多分内部のカウンタ見てるだけだから遅いってことはない

ログを頭から読んでいって末尾10件を抽出するのが遅いって(O(N))のなら最新数件だけ別ファイルにする(O(1))かDB使った方(O(log(N)))がいい

2232202020/05/06(水) 16:48:14.29ID:???
レスありがとうございました。なんか溜まってるログがないかと探して、
まだまだ少ないですが、6MB 3万行強ぐらいので試してみました。
結果countに関してはお二方のおっしゃる通り影響はないようです。
10回計測して、(ローカルの計測環境でPHP7なんですが)

file
avg: 0.02795

配列Queue(>>220)
avg: 0.04602

SplQueue
avg: 0.04344

キュー型にしない(最後の取り出す処理で若干こんがらがる)
avg: 0.02981

といった感じになりました。3万行なら余裕ですが、fileはやっぱりメモリ食べますね。
最後のコードは、
$disp_num = 10 + 1;
$bucket = array_fill(0, $disp_num, null);
$pointer = 0;
while (!feof($fp)) {
 $bucket[$pointer%$disp_num] = fgets($fp);
 $pointer++;
}
のようにしたものです。
配列の順番がぐちゃぐちゃになるので、最後少し苦労しますが配列に入れるだけなのでメモリも速度もいいですね。
(やってて気づいたのですが)+1にしてるのはfopenでfeofまでやると、
最後の空行が入ってしまうようなので+1にしてます。
このせいで、他の配列Queue版もSplQueue版も最後に1回pop処理が必要になったりして、ちょっといまいちな印象です。
fileは最後の空行は無視されていました。

2242202020/05/06(水) 16:58:19.87ID:???
ごめんなさい、嘘つきました。
よく見たらfileも最後の空行が入ってしまっていました。

2252202020/05/06(水) 17:13:19.11ID:???
さらにごめんなさい、ベンチで使ったやつはfileのあとにreverseもしてました。
実際はfileだけでログ取得箇所を示す配列のcount入れても、
もっと早くて0.022台〜0.025台です。

226nobodyさん2020/05/07(木) 15:05:43.63ID:???
echo "str".$a-$b;
PHP Deprecated: The behavior of unparenthesized expressions containing both '.' and '+'/'-' will change in PHP 8: '+'/'-' will take a higher precedence
とかいうのが出た
もうPHP8の季節なのかー

227nobodyさん2020/05/07(木) 15:54:57.14ID:CF6GEumL
>>223

file()は全部メモリに乗っけちゃうんだから、ファイルサイズ以上にメモリ消費するわな。
行数の多いファイルを頭から地道に読み込もうとすると、ループ内のほとんどの時間は無駄になっちゃうから、最後の数行だけ取る処理をlastコマンドに任せた方が早いんじゃないか。
いずれにせよログの巨大化回避の枠組みを作ることの方が先決だろう。

228nobodyさん2020/05/17(日) 14:17:12.59ID:???
WEBプログラム板けっこう寂れちゃったんだな
PHP7のバージョンアップで前バージョン動かなくなったりしたのが良くなかったんじゃ

229nobodyさん2020/05/17(日) 21:37:36.37ID:???
オワコンとまでは言わないがここを目指す技術者の減少が著しい
今はスマホやゲームから入ってそのままサーバが必要になれば
KotlinやらSwiftやらC#で書くみたいな節があるし
JSの進化とともに昔みたいにこってこてにサーバサイド書くこともなくなって
本当にデータの受渡しだけになってしまったし

共用サーバはPHPとPerlぐらいしか選択肢がなかったころに流行って
PythonとRubyが加わってRoRでモダンなWebFWが完成して
VPSやクラウドが登場して選択肢が増えていって
PCが廃れスマホが主流になった現在、正直今更PHP?だもんな
寂しいけど俺も今からなら絶対PHPは勧めないよ

230nobodyさん2020/05/17(日) 22:05:18.66ID:???
21世紀になったあたりの頃は
「未来はPCからEmbeded(モバイルなんて言葉はまだ無かった)までJAVAで統一されている」
って言われたものだが・・・

231nobodyさん2020/05/19(火) 09:40:50.74ID:???
Javaはセキュリティ関連でイメージがすっかり悪くなってしまったからね
Javaのインストールしたくないけど仕方なく入れてる人はわりと見る

232nobodyさん2020/05/20(水) 14:29:00.49ID:???
ライセンスの話もあるしなぁ

233nobodyさん2020/05/26(火) 08:25:57.65ID:???
>>229
ログインしたあとは
JSONとMySQLのやり取りだけだもんな
サーバー側は得意なのでいいよ

234nobodyさん2020/05/28(木) 19:20:47.75ID:???
>>232
まだそんなこと言ってんの?
オラクル製のじゃなきゃ無料で使えるだろ

235nobodyさん2020/05/29(金) 04:01:42.87ID:???
>>234
ライフサイクルが短いから使ってもすぐ上げなきゃいけないとかで実用的でない

236nobodyさん2020/05/29(金) 08:18:29.83ID:???
>>233
逆に、PHPなら書けるけどSwiftとかC#とか書けない場合、
今から新たに書くプログラムをPHPで書いてもいいのかな?今でも
それとも時代に合わせて新たな言語覚えるべき?

新着レスの表示
レスを投稿する