PHP質問・雑談スレ6【初心者お断り(ROM歓迎)】
■ このスレッドは過去ログ倉庫に格納されています
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の改造 そんな古いPHPでSFTPとかなんかやばそうw
多分原因もそれでしょ opensslも古そう
VPSなら環境のアップデートぐらいしなさいよ こちらも同じ見解に達していました。
ありがとうございます。
OpenSSLが0.98とかで、今や一般的ではないようです。大は小を兼ねるみたいに向こうが新しくても、互換でやってくれるとかじゃないみたいですね。 セキュリティ系は古いもの切り捨てないと穴あいちゃうからねぇ。 今はプログラムよりツールの使い方を学ぶ時代になって
新人にとってはずいぶんつまらない世の中になってしまったな 昔の人がアセンブラ書かないのはプログラマじゃないって言ってるようなもんだろ
時代は常に流れているんだよ >昔の人がアセンブラ書かないのはプログラマじゃないって言ってるようなもんだろ
つまらなくなったとはいったけどそこまでいっとらんわ
今と比べて面倒なことをしろなんて主張もするつもりはない
スタート地点で面倒なことから始めればそれを面倒とは思わないだろうし
人間後退したくない以上より多くを覚えるならスタート地点は重要だけどね
目的違うしアセンブラから始められてたらもっと楽しかったのだろうとは微塵も思わんけど
出来ることは増えてただろうし習得してればまた考え方も変わるのだろう しっかしーこのスレ死んどるな
もうPHPも終わったんだな 死んではいないしょ
WEBではなんだかんだこれ以外の選択肢は多くないし
てか、5chで情報共有なんかしないわ まぁ、たしかにもっと愚痴がこぼれてきてもイイと思う。
なんで、7.4の阿鼻叫喚がここに流れない??? うちも5.xだわ
昔にとあるツール使って構築したサイトで色々カスタマイズというかいじりまくってしまって
最新版に更新できなくなっちゃってるんだよなぁ
だから7系に上げられない
さっさとそのコンテンツ終わってくれれば良いんだけど妙に長生きしてるんで困ってる アロー演算子ってクロージャーとはスコープの扱いが違うんだねえ
引数渡したりuse書く必要なくなったんだな すげぇな、アロー関数まで搭載するんだw
PHPってほんと、あらゆる技術を無節操に取り込みまくるよな。
やっぱ間違いなく最強の言語だ。
絶対最後に生き残るの、PHPだって、これ。 んなことない
今だいたいどの言語も統合が進んでる感じ
ただしPHPから学ぶ機能は何もないという
もともとWeb制作ツールの延長だし
革新的な機能を出すような言語じゃないからしょうがないけど >ただしPHPから学ぶ機能は何もないという
そら、そうだろ。
PHPは与える側じゃなくて、全部取り込む側。
漁夫の利作戦。
他の言語であれこれ試行錯誤して『これいいよね』ってなったものを
無節操に取り込むのが我らがPHPだよ。
もう、最強。 連想配列なんてのがのさばっているうちは、どこまでいっても二流ですわ。 すれ違いなのは承知です。
GAS(Google App Script)の専用スレッドはありませんか? 誤訳直そうと思ったらログインがうんぬんメーリスがうんうん言われて面倒だったんで
https://www.php.net/manual/ja/function.curl-getinfo.php の CURLINFO_FILETIME
編集権があってヒマな人誰か直しといてもらえませんか ググればだいたい解決するから5chの出番はないな
というかこういう実用系の内容では5chは要らない つーかPHPの公式ドキュメントって
数多のP系スクリプトの中でも他の追随を許さない質と量だよね
言語自体スパゲティだのなんだの言われてるけど
そんなのを軽くチャラにするくらい丁寧で充実してる 今からPHP勉強してフリーランスデビュー目指して頑張ります
ちな中卒30代プログラミング未経験 徳丸ひさびさに見たけど白髪増えてだいぶ老けたなぁ(´・ω・`)
相変わらずのPHPびいきなようで安心。
彼がいる限りまだまだ日本でのPHPは終わらんよ( ー`дー´)キリッ IDとパスワードのログイン方式でなく
電子証明書方式のログインサイトを作ってみたいのですが
具体的にはどうしたらいいんですかね? 素人が作ったら電子証明書使ってても穴あきそうだな
実績あるプロに任せろ こんなとこで質問するレベルのやつが作って良いものではないw そりゃ、ここの話題じゃないからな。
ヒント出してるだけマシだろ。 …まさか5ちゃんに書いて答えもらえるとマジで思ってたのか? >>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億近い慰謝料をふんだくる
●自宅の吉祥寺にいられなくなり、大阪に潜伏中(警察からも逃げている) 追記型の最新のログ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系使ってて配列操作は遅いので改善ポイントとして考えてます >>220
count()の実行回数を減らしても大して違いは無いと思うけどなぁ。
それより1行ずつ配列に入れるのをやめてfile()で一気に読み込んでから、array_slice()で最後の10行を残して、array_reverse()で反転させる方が早くないか?
遅いのはログの行数が多いからだと思うけど、あまり多いとfile()じゃメモリ消費も気になってくるけどね。
その場合はログのサイズを小さくすることを考える必要がある。デイリーベースにするとか。 キュー使うなら配列よりSplQueue使ったらええんちゃう
実装見たわけじゃないけど常識的にcountはO(1)だし多分内部のカウンタ見てるだけだから遅いってことはない
ログを頭から読んでいって末尾10件を抽出するのが遅いって(O(N))のなら最新数件だけ別ファイルにする(O(1))かDB使った方(O(log(N)))がいい レスありがとうございました。なんか溜まってるログがないかと探して、
まだまだ少ないですが、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は最後の空行は無視されていました。 ごめんなさい、嘘つきました。
よく見たらfileも最後の空行が入ってしまっていました。 さらにごめんなさい、ベンチで使ったやつはfileのあとにreverseもしてました。
実際はfileだけでログ取得箇所を示す配列のcount入れても、
もっと早くて0.022台〜0.025台です。 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の季節なのかー >>223
file()は全部メモリに乗っけちゃうんだから、ファイルサイズ以上にメモリ消費するわな。
行数の多いファイルを頭から地道に読み込もうとすると、ループ内のほとんどの時間は無駄になっちゃうから、最後の数行だけ取る処理をlastコマンドに任せた方が早いんじゃないか。
いずれにせよログの巨大化回避の枠組みを作ることの方が先決だろう。 WEBプログラム板けっこう寂れちゃったんだな
PHP7のバージョンアップで前バージョン動かなくなったりしたのが良くなかったんじゃ オワコンとまでは言わないがここを目指す技術者の減少が著しい
今はスマホやゲームから入ってそのままサーバが必要になれば
KotlinやらSwiftやらC#で書くみたいな節があるし
JSの進化とともに昔みたいにこってこてにサーバサイド書くこともなくなって
本当にデータの受渡しだけになってしまったし
共用サーバはPHPとPerlぐらいしか選択肢がなかったころに流行って
PythonとRubyが加わってRoRでモダンなWebFWが完成して
VPSやクラウドが登場して選択肢が増えていって
PCが廃れスマホが主流になった現在、正直今更PHP?だもんな
寂しいけど俺も今からなら絶対PHPは勧めないよ 21世紀になったあたりの頃は
「未来はPCからEmbeded(モバイルなんて言葉はまだ無かった)までJAVAで統一されている」
って言われたものだが・・・ Javaはセキュリティ関連でイメージがすっかり悪くなってしまったからね
Javaのインストールしたくないけど仕方なく入れてる人はわりと見る >>229
ログインしたあとは
JSONとMySQLのやり取りだけだもんな
サーバー側は得意なのでいいよ >>232
まだそんなこと言ってんの?
オラクル製のじゃなきゃ無料で使えるだろ >>234
ライフサイクルが短いから使ってもすぐ上げなきゃいけないとかで実用的でない >>233
逆に、PHPなら書けるけどSwiftとかC#とか書けない場合、
今から新たに書くプログラムをPHPで書いてもいいのかな?今でも
それとも時代に合わせて新たな言語覚えるべき? >>234
イメージが悪くなった, という話の流れなんだがな Javaは元々、冗長すぎてまともなプログラマからは嫌われていた。 JAVAが世界を席巻していた頃は
まさか将来毎年のように新言語が
登場するようになるとは夢にも思ってなかった
JAVAで世界は統一されると堅く信じていた >>236
PHPで全然かまへんで
ただPHPでかけるがSwiftやC#でかけないなんてことはないと思うぞ
(Webに限っては)その逆もしかり
まあどっちが楽かっていう問題はあるけどね
PHPはimportするパッケージ探すとこから始めなくていいことも多いしな PHPまでしかできない奴はc#は無理な奴かなり多い 動的型付け言語全般がタイプヒントつけるのがしんどい c#で何をするかによるが
少なくともVSで開発するGUIアプリは
htmlとjavascriptの基礎があれば作れるだろう laravel使っているのですがphpかlaravelで下記のことはどうすればできますか?
ページ内のボタンをクリック→データベースのテーブルを作成 CREATE TABLEとかのDDLは普通はマイグレーションで実行するよな
APIで誰でも実行出来るようにするなんて普通はない 企業内閉鎖系ならまだしもネット接続でそんなの開放したらイチコロだな ちょっとfuel phpの仕様でdoc読んでも見当たらないので教えてほしいんだ。。
fuel/app/config/routes.phpで
return array(
'api/hoge' => 'hoge',
'api/hige' => 'hige',
'api/hage' => 'hage',
);
ってなってるのを
return array(
'api' => array(
'hoge' => 'hoge',
'hige' => 'hige',
'hage' => 'hage',
),
);
って出来る?
目的としてはクソみたいに汚くなったルーティングを整理したいからで
ソース読んだ限りだと正規表現を利用する書き方的なことをしないと
ダメっぽい気がしたんだが一応確証がほしい そんな事より
なんでarrayじゃなくて[]で書かないの? >>249
無知乙
>>250
グラブルが2019時点でいまだにfuel採用しているし豚みたいなLaravelより軽いし
>>249みたいなスクール上がりの馬鹿なカスが寄り付きづらいから割とピンピンしてる >このスレで扱わない話題
>・直接関係ない○○特有の質問(専スレへ)
> (HH,エディタ,IDE,サーバ,OS,DB,SQL,FW,テンプレート,非公式ライブラリ・アプリケーション等)
https://medaka.5ch.net/test/read.cgi/php/1321843505/
ageて質問したら誰か答えるんじゃね?
マイナーなFWしかも5chみたいな人いないとこで質問してんだから
答え返ってこないことは覚悟してくれ ffmpegコマンドを叩いて変換待ちってのはどんな感じに実装すればいいですか? >>253
裏でやらせておいて、出来上がったら教える感じで実装する >>254
マルチスレッドとかで並列処理をするかんじですかね?
pthreadとかでいいのかな?
それでタイムアウト対策とかはどうしたらいいんでしょう?
flushとかそのへんを使う感じですか? >>255
バックグラウンドで動く別プログラムをsystem関数で呼ぶとかする
タイムアウトも別プログラムに勝手にやらせる 最近のフレームワークならキューに入ったジョブを実行するシステムがあるだろう ffmpeg は処理途中で標準出力するから同期処理は無理じゃねえ。 >>259
標準出力をファイルに落として、のぞき見 公式のwindows版PHPってあれMSがビルドしてたのか
野良ビルドよりは安心だけどまあ正直どうでもいいっすねw
公式が書き換えられたりしても気づくことなく
公式にあるってだけでホイホイダウンロードしちまうだろうし MS、なんでPHP8ビルドしないん(´・ω・`)? MSがPHPを切ったのではない
PHPがMSを捨てたのだ PHPってなんで未だにasync awaitないの?
C#、JavaScript、Pythonはあるでしよ
Javaは無いみたいだけど
コールバック地獄なしで非同期コード書きたい >>267
forkすればいいじゃん
なんでいちいち待つの? >>268
Guzzleのpromiseも
curl_multiも知らない男の人って・・・ forkって
親プロセスと変数は共有出来ない(子プロセスの変数を変えても親プロセスの方はそのまま)
その一方MySQLを使ってると子プロセスが終了時に接続がクローズされる
何も良いことがなさげなんだが
親プロセスと変数が共有できないなら
普通にexecする方がマシじゃね?
それだけじゃなく
実行時間が短い処理には
プロセス生成はオーバーヘッドが大きすぎる 「hogeしか出来ない人」
が存在する言語ってもしかしてphpしかなくない?
マジで? 言語の欠点をどうやって補うかって話じゃなくただ言語の欠点をあげつらうだけなら、
普通に他の言語使えば?としか思わんのだが
他の言語使えないというならお前が無能なだけだろうと ■ このスレッドは過去ログ倉庫に格納されています