2ch勢いランキング 全部 1- 最新50

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


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

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

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

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

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

このスレで扱わない話題
・直接関係ない○○特有の質問(専スレへ)
 (HH,エディタ,IDE,サーバ,OS,DB,SQL,FW,テンプレート,非公式ライブラリ・アプリケーション等)
・PHPの改造
nobodyさん [sage] 2020/06/17(水) 20:34:41.25ID:???
fuelってまだ生きてるの?
nobodyさん [sage] 2020/06/17(水) 22:26:53.04ID:???

無知乙


グラブルが2019時点でいまだにfuel採用しているし豚みたいなLaravelより軽いし
みたいなスクール上がりの馬鹿なカスが寄り付きづらいから割とピンピンしてる
nobodyさん [sage] 2020/06/18(木) 02:51:44.81ID:???
>このスレで扱わない話題
>・直接関係ない○○特有の質問(専スレへ)
> (HH,エディタ,IDE,サーバ,OS,DB,SQL,FW,テンプレート,非公式ライブラリ・アプリケーション等)

ttps://medaka.5ch.net/test/read.cgi/php/1321843505/
ageて質問したら誰か答えるんじゃね?
マイナーなFWしかも5chみたいな人いないとこで質問してんだから
答え返ってこないことは覚悟してくれ
nobodyさん [sage] 2020/06/18(木) 19:20:57.36ID:???
ffmpegコマンドを叩いて変換待ちってのはどんな感じに実装すればいいですか?
nobodyさん [sage] 2020/06/19(金) 09:11:46.17ID:???

裏でやらせておいて、出来上がったら教える感じで実装する
nobodyさん [sage] 2020/06/19(金) 16:56:07.58ID:???

マルチスレッドとかで並列処理をするかんじですかね?
pthreadとかでいいのかな?
それでタイムアウト対策とかはどうしたらいいんでしょう?
flushとかそのへんを使う感じですか?
nobodyさん [sage] 2020/06/19(金) 19:44:41.02ID:???

バックグラウンドで動く別プログラムをsystem関数で呼ぶとかする
タイムアウトも別プログラムに勝手にやらせる
nobodyさん [] 2020/06/19(金) 23:27:50.17:tdau3ufj
最近のフレームワークならキューに入ったジョブを実行するシステムがあるだろう
nobodyさん [sage] 2020/06/20(土) 15:55:01.29ID:???
申し訳ないが、フレームワークの話はしていない
nobodyさん [sage] 2020/06/23(火) 19:43:14.83ID:???
ffmpeg は処理途中で標準出力するから同期処理は無理じゃねえ。
nobodyさん [sage] 2020/06/24(水) 20:32:39.92ID:???

標準出力をファイルに落として、のぞき見
nobodyさん [] 2020/06/26(金) 16:16:58.83:eYTLvWbv
【日本モデル】 上昌広『第2、3波でしっぺ返し』
ttps://krsw.5ch.net/test/read.cgi/covid19/1592957330/l50
nobodyさん [sage] 2020/07/13(月) 18:52:44.64ID:???
ttp://https://externals.io/message/110907

そもそもサポートしてるの知らんかったけど、地味に効いてきそう。
nobodyさん [sage] 2020/07/16(木) 16:53:24.16ID:???
公式のwindows版PHPってあれMSがビルドしてたのか
野良ビルドよりは安心だけどまあ正直どうでもいいっすねw
公式が書き換えられたりしても気づくことなく
公式にあるってだけでホイホイダウンロードしちまうだろうし
nobodyさん [sage] 2020/07/16(木) 20:48:50.35ID:???
MS、なんでPHP8ビルドしないん(´・ω・`)?
nobodyさん [sage] 2020/07/17(金) 10:01:11.17ID:???
MSがPHPを切ったのではない
PHPがMSを捨てたのだ
nobodyさん [sage] 2020/07/18(土) 15:00:25.42ID:???
xamppあたりのチームがコンパイルしそうだな
nobodyさん [] 2020/08/08(土) 14:14:16.21:nc6K0wHz
PHPってなんで未だにasync awaitないの?
C#、JavaScript、Pythonはあるでしよ
Javaは無いみたいだけど

コールバック地獄なしで非同期コード書きたい
nobodyさん [sage] 2020/08/09(日) 14:26:12.16ID:???

forkすればいいじゃん
なんでいちいち待つの?
nobodyさん [] 2020/08/09(日) 16:04:40.54:YsClk0yI

Guzzleのpromiseも
curl_multiも知らない男の人って・・・
nobodyさん [] 2020/08/09(日) 16:26:51.29:YsClk0yI
forkって 

親プロセスと変数は共有出来ない(子プロセスの変数を変えても親プロセスの方はそのまま)
その一方MySQLを使ってると子プロセスが終了時に接続がクローズされる

何も良いことがなさげなんだが
親プロセスと変数が共有できないなら
普通にexecする方がマシじゃね?

それだけじゃなく
実行時間が短い処理には
プロセス生成はオーバーヘッドが大きすぎる
nobodyさん [sage] 2020/08/11(火) 18:35:30.49ID:???
「hogeしか出来ない人」
が存在する言語ってもしかしてphpしかなくない?
マジで?
nobodyさん [sage] 2020/08/11(火) 23:28:45.65ID:???
言語の欠点をどうやって補うかって話じゃなくただ言語の欠点をあげつらうだけなら、
普通に他の言語使えば?としか思わんのだが
他の言語使えないというならお前が無能なだけだろうと
nobodyさん [] 2020/08/12(水) 09:11:18.44:13/ox338
PHPはNodeと違ってイベントループがコア機能として組み込まれていないから
Guzzleの場合、非同期処理の恩恵を得るには
Promiseの配列(またはイテレータ、ジェネレータ)を用意して
適切な場所でそれをwaitしてイベントループを回す必要がある
場面によっては非同期の恩恵を得られない

言語に非同期処理が組み込まれてないのもこの辺が理由か
イベントループって、
リクエストの度にプロセスを初期化するPHPの構造と合わなそうだし
nobodyさん [] 2020/09/20(日) 21:22:40.12:tOMGyHJz
質問させてください。
今PHPで3択クイズを作ってます
配列に正解が1つと間違いが2つ入ってます
この3つをランダムに表示させて答え合わせしたいのですが
やり方がわかりません。先輩方、ご教授お願いします。
nobodyさん [sage] 2020/09/20(日) 21:37:23.87ID:???

完全なランダムはPHPでは使用できません。
PHP以外の言語でも完全なランダムは不可能です。

あと30年ほど経てば、利用できる可能性があります。
nobodyさん [] 2020/09/20(日) 21:47:48.72:acwntdUK

お前リアルでもそんなこと言ってんの?w
274 [] 2020/09/20(日) 23:16:19.67:tOMGyHJz
$a[0] = "正解";
$a[1] = "間違い1";
$a[2] = "間違い2";
shuffle($a);

ここまでは考えたのですが
これをどうやって正解判定するのか
案外難しいですねこれ・・・
nobodyさん [sage] 2020/09/21(月) 00:47:28.54ID:???
そのレベルならくだスレで聞いたほうが良いと思うけど
ttp://https://paiza.io/projects/2brvVhAnwgCQv_90qSgzQg
nobodyさん [sage] 2020/09/21(月) 09:54:08.94ID:???
正解を別に覚えといてそれと照合すればいいじゃん
274 [] 2020/09/21(月) 11:05:05.51:UQvPmLSO

ありがとうございますた!
ちなみにくだスレないです(´;ω;`)
nobodyさん [] 2020/09/23(水) 15:02:54.72:mXlXxqsS
file_get_contentsでtwitterを読んでrssにするプログラムが
いつの間にか動かなくなっていたので調べたところ、
ツイッターのページがほぼJavaScriptのみになっていてツイートをHTMLとして含まないようになっていました
もうtwitter APIを介して取得するしかないのでしょうか?
nobodyさん [] 2020/09/23(水) 15:15:33.56:mXlXxqsS

twitterをRSS化するサービスがいくつもあったので、それを使うことにしました
失礼しました
nobodyさん [] 2020/09/26(土) 17:56:16.34:gRsH574I
phpで掲示板を作ってます
threadテーブルとpostテーブルがあります

threadテーブルのカラム
・thread_id(スレッドID)
・time(スレッド作成タイム)
・title(スレッドタイトル)

postテーブルのカラム
・thread_id(スレッドID)
・name(投稿者)
・res_no(レスナンバー)

スレッド一覧を表示する際、タイトルの横に投稿者を付けたいので、以下のSQLを発行しました
sql = "SELECT t.title, p.name FROM thread t JOIN post p ON t.thread_id = p.thread_id WHERE p.res_no = 1 LIMIT 0,10"
※行 0 - 9 の表示 (合計 10, クエリの実行時間: 0.0029 秒。)

スレッド作成順にソートしたいため、ORDER BY句を入れると

sql = "SELECT t.title, p.name FROM thread t JOIN post p ON t.thread_id = p.thread_id WHERE p.res_no = 1 ORDER BY t.time DESC LIMIT 0,10"
※行 0 - 9 の表示 (合計 10, クエリの実行時間: 0.6489 秒。)

と実行時間が大幅に上がってしまいました
実行時間を抑えるためにどうしたら良いですか?
nobodyさん [] 2020/09/26(土) 19:33:49.23:gRsH574I
ですがゴニョゴニョしたら解決しました
nobodyさん [] 2020/09/27(日) 14:14:32.94:hc137Dw+
完全にスレチだったな
nobodyさん [] 2020/10/03(土) 20:06:29.98:VpO2oA58
WSL2のDockerで
Windowsのファイルシステム上にあるphpファイルを読ませると
遅すぎて使い物にならない

従来のHyper-Vバックエンドの方がまだマシ

ttp://https://github.com/docker/for-win/issues/7719

WSL2のWindowsファイルシステムが遅いせいらしい

Unisonで同期すれば速いけどちょっと最初の設定が面倒くさい
nobodyさん [sage] 2020/10/07(水) 14:55:34.60ID:???

2週間以上前の質問にレスするのもアレだが2次元以上の配列を使えば良いだけでは?

$arr = [
1 => [
'question' => '昼間の空は何色?',
'choice' => [
'A' => '青',
'B' => '赤',
'C' => 'ピンク',
],
'correct' => 'A',
],

2 => [
'question' => 'てめぇの血は何色だぁ?',
'choice' => [
'A' => '青',
'B' => '赤',
'C' => 'ピンク',
],
'correct' => 'B',
],
];

$qid = array_rand($arr);

$question = $arr[$qid]['question']; // 問題
$choice = $arr[$qid]['choice']; // 選択肢
$correct = $arr[$qid]['correct']; // 正解

unset($arr[$qid]); // $qidを何らかの方法で保存しておいて、出題が終わったものは削除すりゃいい
nobodyさん [sage] 2020/10/07(水) 14:57:25.14ID:???
のインデントが消えて見にくいだろから、インデント部分を全角スペースに置き換えたら見やすくなるか?
shuffle()は駄目だな 配列のキーがリセットされてしまうから、287みたいな事ができなくなるので

$arr = [
  1 => [
    'question' => '昼間の空は何色?',
    'choice' => [
      'A' => '青',
      'B' => '赤',
      'C' => 'ピンク',
    ],
    'correct' => 'A',
  ],

  2 => [
    'question' => 'てめぇの血は何色だぁ?',
    'choice' => [
      'A' => '青',
      'B' => '赤',
      'C' => 'ピンク',
    ],
    'correct' => 'B',
  ],
];
nobodyさん [sage] 2020/10/23(金) 00:41:55.69ID:???
windows consoleでfgets(STDIN,4096)で
入力待ちにしたいのですが次に進んでしまって入力待ちになりません
この間まで問題なかったのですが
proc_openあたりの関数使ってからおかしくなった気がします
設定でも書き換わったのか再起動しましたが直りません
何か修正する方法知ってる方いたら教えて下さい
289 [sage] 2020/10/23(金) 10:19:05.47ID:???
なんか似たような報告ありました
ttp://https://stackoverflow.com/questions/59092779/has-php-7-4-broken-fgetsstdin
PHPのバグっぽいですね?
ちょうどPHP7.4にしたのでそれのせいだったようです
最新の7.4.11にしたら問題なくなりました
nobodyさん [] 2020/11/21(土) 18:14:41.87:TFRH5PeG
テキストファイル保存して適宜読み込もうと思ってる

テキストファイルのコンテンツは1行のものもあれば複数行のものもある
うまい具合に混在させるにはどういう仕様にしたらいいかな?

ぱっとおもいついたのは次のような書式

AAA
BBB
CCC
[multi1]
DDD
EEE
[/multi1]
FFF
GGG
[multi2]
HHH
III
JJJ
[/multi2]
KKK

これより優れた書式ってあると思う?
nobodyさん [sage] 2020/11/21(土) 18:17:24.18ID:???

csv tsv xml json 好きなの選べ
nobodyさん [sage] 2020/11/21(土) 18:35:36.32ID:???

記述が楽な方がいいなぁ・・・
nobodyさん [sage] 2020/11/21(土) 18:54:15.51ID:???

ならjson一択
nobodyさん [sage] 2020/11/21(土) 19:03:55.33ID:???

いくらでもあるが
思ったら既に挙げられてるか
nobodyさん [sage] 2020/11/21(土) 20:13:25.09ID:???
jsonはねぇ・・・
見やすいことは見やすいんだけど
いざ手書きで記述するとなると括弧が結構面倒くさくて
nobodyさん [sage] 2020/11/21(土) 21:04:18.94ID:???
は?なんで手書きすんだよw
nobodyさん [sage] 2020/11/22(日) 15:24:22.67ID:???
全部単行にして複数行へは実態への参照だけ置くとかもあるね
用途次第かなと
nobodyさん [sage] 2020/11/28(土) 10:32:12.49ID:???
で、PHP8は神ですか?

勢い5万以上のスレをメールでお知らせするサービス、実施中!!
憧れボディをGETしたい!その夢、ボニックで!

2ch勢いランキング 全部 1- 最新50 WebProg板ランキング

凡例:

レス番

100 (赤) → 2つ以上レスが付いている
100 (紫) → 1つ以上レスが付いている

名前

名無しさん (青) → sage のレス
名無しさん (緑) → age のレス

ID

ID:xxxxxxx (赤) → 発言が3つ以上のID
ID:xxxxxxx (青) → 発言が2つ以上のID

このページは2ch勢いランキングが作成したキャッシュです。元のページはこちら。削除についてはこちら