!extend::vvvvv:1000:512
!extend::vvvvv:1000:512
★スレ立て時 ↑ が3行以上になるようコピペ
PHPに関する質問スレです
前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 13
https://mevius.5ch.net/test/read.cgi/tech/1631147923/
次スレは>>980以降
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
探検
【PHP】下らねぇ質問はここに書き込みやがれ 14
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 0f97-W3aP)
2022/09/20(火) 16:46:23.39ID:Sb2Kpzh+0531デフォルトの名無しさん (ワッチョイ ae5f-W5vA)
2023/03/01(水) 08:43:06.85ID:UTDLtYqT0532デフォルトの名無しさん (ワッチョイ 9d5f-pseD)
2023/03/01(水) 10:36:45.89ID:QN9phVrM0533デフォルトの名無しさん (ワッチョイ 9d5f-pseD)
2023/03/01(水) 10:37:24.79ID:QN9phVrM0 ちがうか、先に違うオブジェクトにしておくのか
534デフォルトの名無しさん (ワッチョイ 9a7c-W5vA)
2023/03/01(水) 11:19:20.74ID:90jK5EfG0 何で出来ない奴はこうも説明が下手なんだ・・・
何を言っているか分からんよw
何を言っているか分からんよw
535デフォルトの名無しさん (ワッチョイ fab7-okFi)
2023/03/01(水) 17:28:10.18ID:XGVF9QRc0 >>530
動的に書き込みたい部分以外はJSONのテンプレートとして事前に用意しておきたいってことだろうか
そう仮定すると考えるのはこの3通りくらい
1) テンプレートを一度jsonオブジェクトとして読み込んで、目的の階層にデータを代入して、まとめて書き出す
2) テンプレート側にデータとして存在しえない文字列を用意しておいて、文字列として読み込んだjsonから文字列置換する
3) JSONを読み取る側を改修して、固定部分と動的部分を別ファイルから読み取るようにする
動的に書き込みたい部分以外はJSONのテンプレートとして事前に用意しておきたいってことだろうか
そう仮定すると考えるのはこの3通りくらい
1) テンプレートを一度jsonオブジェクトとして読み込んで、目的の階層にデータを代入して、まとめて書き出す
2) テンプレート側にデータとして存在しえない文字列を用意しておいて、文字列として読み込んだjsonから文字列置換する
3) JSONを読み取る側を改修して、固定部分と動的部分を別ファイルから読み取るようにする
536デフォルトの名無しさん (ワッチョイ 9d5f-pseD)
2023/03/01(水) 20:41:59.79ID:QN9phVrM0 >>535
ああ、一旦オブジェクトなり配列にして、未登録のデータだった時にオブジェクト一個追加してJSON全部上書きしちゃうのは自分でもできそう
データの数も3桁行かない程度だし、データ読み出して書くのもそんな重くならないか
後は動的にデータおる部分の見直しですね
ああ、一旦オブジェクトなり配列にして、未登録のデータだった時にオブジェクト一個追加してJSON全部上書きしちゃうのは自分でもできそう
データの数も3桁行かない程度だし、データ読み出して書くのもそんな重くならないか
後は動的にデータおる部分の見直しですね
537デフォルトの名無しさん (ワッチョイ 1302-QeO8)
2023/03/05(日) 11:24:39.77ID:QdgOL0Oo0 どちらが適正ですか?
try {
//ファイルを保存先ディレクトリに移動させる
if (move_uploaded_file($_FILES['upload_image']['tmp_name'], $save)) {
echo 'アップロード成功しました。';
} else {
echo 'アップロード失敗しました。';
}
} catch (Exception $e) {
echo 'アップロードエラー: ' . $e->getMessage();
}
try {
//ファイルを保存先ディレクトリに移動させる
move_uploaded_file($_FILES['upload_image']['tmp_name'], $save);
} catch (Exception $e) {
echo 'アップロードエラー: ' . $e->getMessage();
}
try {
//ファイルを保存先ディレクトリに移動させる
if (move_uploaded_file($_FILES['upload_image']['tmp_name'], $save)) {
echo 'アップロード成功しました。';
} else {
echo 'アップロード失敗しました。';
}
} catch (Exception $e) {
echo 'アップロードエラー: ' . $e->getMessage();
}
try {
//ファイルを保存先ディレクトリに移動させる
move_uploaded_file($_FILES['upload_image']['tmp_name'], $save);
} catch (Exception $e) {
echo 'アップロードエラー: ' . $e->getMessage();
}
538デフォルトの名無しさん (ワッチョイ 1361-y7Dr)
2023/03/05(日) 12:02:39.82ID:A2ppgH2U0 >>537
上
上
539デフォルトの名無しさん (ワッチョイ 1302-QeO8)
2023/03/05(日) 13:31:58.17ID:QdgOL0Oo0 >>538ありがとうございます。
540デフォルトの名無しさん (ワッチョイ 1302-QeO8)
2023/03/05(日) 15:15:03.70ID:QdgOL0Oo0 phpの実行を3つに区分したとして、
「データベースのmysqli接続」
「POST送信データバリデーションチェック」
「クエリ実行」
try-catch文、トランザクション処理を記述する場所
って以下であっていますか?
try{
//データベース接続処理
...
//入力バリデーションチェック
...
//トランザクション開始
$mysqli->begin_transaction();
//クエリ実行
...
// トランザクション処理
if (!$mysqli->commit()) {
throw new Exception("トランザクションが失敗しました。");
}
}catch (Exception $e) {
echo $e->getMessage();
$mysqli->rollback();
}
「データベースのmysqli接続」
「POST送信データバリデーションチェック」
「クエリ実行」
try-catch文、トランザクション処理を記述する場所
って以下であっていますか?
try{
//データベース接続処理
...
//入力バリデーションチェック
...
//トランザクション開始
$mysqli->begin_transaction();
//クエリ実行
...
// トランザクション処理
if (!$mysqli->commit()) {
throw new Exception("トランザクションが失敗しました。");
}
}catch (Exception $e) {
echo $e->getMessage();
$mysqli->rollback();
}
541デフォルトの名無しさん (アウアウアー Sa8b-Gptz)
2023/03/05(日) 17:02:00.95ID:pluyAGbia commit部分のthrowは要らないのでは?
542デフォルトの名無しさん (ワッチョイ 8b63-Qpn1)
2023/03/05(日) 17:44:49.95ID:M62PQQGq0 commitしようとしたら、ファイルが壊れました、とか
543デフォルトの名無しさん (アウアウアー Sa8b-Gptz)
2023/03/05(日) 18:28:19.70ID:pluyAGbia DB壊れたらシステム止まって別のトランザクションも動かないだろうから
全てのトランザクションに書かなくて良いと思う
全てのトランザクションに書かなくて良いと思う
544デフォルトの名無しさん (ワッチョイ e9a7-8P30)
2023/03/05(日) 21:45:08.47ID:GipSGO790 PDOで例外投げるよう設定して
catchすべきなのはPDOExceptionじゃね
catchすべきなのはPDOExceptionじゃね
545デフォルトの名無しさん (ブーイモ MMcb-5TsK)
2023/03/06(月) 10:18:27.62ID:8oxT6MrcM こういうのもchatgptさんに
PHPでDB接続する例文書いて。例外おきたときの対処もよろ。
と言うだけでだいたい書いてくれる。
でもさ、
もしも全員がchatgptさんだけ使って
ブログ記事などが一切なくなった場合は
どこからサンプルソース解析してくるんだろう?
公式リファレンスしか存在しなくても
たくさんサンプルあみだせるんかな?
PHPでDB接続する例文書いて。例外おきたときの対処もよろ。
と言うだけでだいたい書いてくれる。
でもさ、
もしも全員がchatgptさんだけ使って
ブログ記事などが一切なくなった場合は
どこからサンプルソース解析してくるんだろう?
公式リファレンスしか存在しなくても
たくさんサンプルあみだせるんかな?
546デフォルトの名無しさん (オッペケ Sr45-+tQF)
2023/03/06(月) 13:06:49.25ID:UVP5G7/Er chatgptかなりいい加減だぞ
こっちが詳しく聞いてもありえないコードと解説もよくするし
こっちが詳しく聞いてもありえないコードと解説もよくするし
547デフォルトの名無しさん (ワッチョイ d6a7-Cjjx)
2023/03/12(日) 10:28:41.64ID:/WQQIT0F0 PDOStatement::columnCountって
PDOStatement::fetchができる回数を示しているものであってますか?
int(0)を想定したクエリ出しても
どんなクエリでも常にint(n)になってしまってお手上げです
PDOStatement::rowCountはSQLiteのため常に0を返すとのことで使えません
ものすごい古いNAS上に構築された環境なのでそれの影響もあるかもしれませんが
ループ上でfetchがbool返すまでやるしかないでしょうか?
PDOStatement::fetchができる回数を示しているものであってますか?
int(0)を想定したクエリ出しても
どんなクエリでも常にint(n)になってしまってお手上げです
PDOStatement::rowCountはSQLiteのため常に0を返すとのことで使えません
ものすごい古いNAS上に構築された環境なのでそれの影響もあるかもしれませんが
ループ上でfetchがbool返すまでやるしかないでしょうか?
548547 (ワッチョイ d6a7-Cjjx)
2023/03/12(日) 10:29:40.64ID:/WQQIT0F0 どんなクエリでも常にint(n)になってしまってお手上げです
↓
どんなクエリでも常にint(n)になってしまってお手上げです (n>0)
です
↓
どんなクエリでも常にint(n)になってしまってお手上げです (n>0)
です
549デフォルトの名無しさん (ワッチョイ 56bb-EKUa)
2023/03/12(日) 10:33:06.48ID:yWzg52lT0 > PDOStatement::fetchができる回数を示しているものであってますか?
間違ってます。
間違ってます。
550デフォルトの名無しさん (ワッチョイ d6a7-Cjjx)
2023/03/12(日) 11:14:32.05ID:/WQQIT0F0 そうですねすみません
よく読んだら全然違った
久々にPHPいじってるのでこんなこともわからなくなってるとは・・・
*が最大数で1以上になるのは当たり前ですね
よく読んだら全然違った
久々にPHPいじってるのでこんなこともわからなくなってるとは・・・
*が最大数で1以上になるのは当たり前ですね
551デフォルトの名無しさん (ワッチョイ 6610-3g29)
2023/04/24(月) 10:58:21.24ID:JH1evJvp0 みなさんはIF地獄になったときどうしてますか?
最適化するまで試行錯誤しますか?
それとも「できる・動く」を優先して進めますか?
最適化するまで試行錯誤しますか?
それとも「できる・動く」を優先して進めますか?
552デフォルトの名無しさん (ワッチョイ 6663-RykB)
2023/04/24(月) 11:03:45.16ID:CIhFKz1G0 動けば良いってものじゃない
553デフォルトの名無しさん (ワッチョイ 9ee7-RykB)
2023/04/24(月) 11:05:33.74ID:xRkzUvA90 >>551
メソッドか関数にして追い出しておく
あとでリファクタする際にその関数だけでテストできるように下準備だけしておく
未来の自分・他人がやりやすいようにして今は目をつぶる、がコーディングの鉄則
最適化は最初の仕事かつ最後の仕事だが、途中でやるのだけはNG
メソッドか関数にして追い出しておく
あとでリファクタする際にその関数だけでテストできるように下準備だけしておく
未来の自分・他人がやりやすいようにして今は目をつぶる、がコーディングの鉄則
最適化は最初の仕事かつ最後の仕事だが、途中でやるのだけはNG
554デフォルトの名無しさん (ワッチョイ 6610-3g29)
2023/04/24(月) 16:04:38.35ID:JH1evJvp0 >>553
メソッドに追い出してもIFが続きますね。
どちらにしろ「Aがある場合~Aがない場合~」みたいな処理が必要ですし。
綺麗なコードとわかりやすいコードって違うと思うんですよね。
1ファイルにダラーっとコードが記述されると汚いですが、
上から下まで読めば何がしたいかは大体わかります。
しかし、クラスなりメソッドなりに分けると、複数ファイルにまたがって複雑です。
適切な名前を付けてファイルを参照しやすくすれば手間は軽減されますが、
今度は適切な名前を考えるのに時間を消費し、開発に遅れが生じてしまいます。
メソッドに追い出してもIFが続きますね。
どちらにしろ「Aがある場合~Aがない場合~」みたいな処理が必要ですし。
綺麗なコードとわかりやすいコードって違うと思うんですよね。
1ファイルにダラーっとコードが記述されると汚いですが、
上から下まで読めば何がしたいかは大体わかります。
しかし、クラスなりメソッドなりに分けると、複数ファイルにまたがって複雑です。
適切な名前を付けてファイルを参照しやすくすれば手間は軽減されますが、
今度は適切な名前を考えるのに時間を消費し、開発に遅れが生じてしまいます。
555デフォルトの名無しさん (ワッチョイ c5e6-ASru)
2023/04/24(月) 19:55:07.81ID:CirHdNf40 綺麗でもわかりにくいコードはあるが、汚いのにわかりやすいコードというのは無いな
556デフォルトの名無しさん (ワッチョイ e6bb-lTfL)
2023/04/25(火) 07:41:04.47ID:ubLXos3L0 >>554
一度適当なフレームワークでシステム作ってみるといいよ
感想がぜんぜん変わるから
> 今度は適切な名前を考えるのに時間を消費し、開発に遅れが生じてしまいます。
copilotさんとか使うといい
一度適当なフレームワークでシステム作ってみるといいよ
感想がぜんぜん変わるから
> 今度は適切な名前を考えるのに時間を消費し、開発に遅れが生じてしまいます。
copilotさんとか使うといい
557デフォルトの名無しさん (ワッチョイ 6610-3g29)
2023/04/25(火) 08:12:37.51ID:CC33Xm/N0558デフォルトの名無しさん (ワッチョイ e6bb-lTfL)
2023/04/25(火) 13:06:17.18ID:ubLXos3L0 >>557
フレームワーク使用したことがあるのに「クラスなりメソッドなりに分けると、複数ファイルにまたがって複雑です。」とか言っちゃうのはかなりまずい気がするけど、複雑な要件の実装時に十分に責任分解できてないんじゃないかなぁ…
https://github.com/alexeymezenin/laravel-best-practices/blob/master/japanese.md#%E5%8D%98%E4%B8%80%E8%B2%AC%E4%BB%BB%E3%81%AE%E5%8E%9F%E5%89%87
これのGoodがGoodに感じられないってことだよね?
フレームワーク使用したことがあるのに「クラスなりメソッドなりに分けると、複数ファイルにまたがって複雑です。」とか言っちゃうのはかなりまずい気がするけど、複雑な要件の実装時に十分に責任分解できてないんじゃないかなぁ…
https://github.com/alexeymezenin/laravel-best-practices/blob/master/japanese.md#%E5%8D%98%E4%B8%80%E8%B2%AC%E4%BB%BB%E3%81%AE%E5%8E%9F%E5%89%87
これのGoodがGoodに感じられないってことだよね?
559デフォルトの名無しさん (アウアウウー Sa21-PXVT)
2023/04/25(火) 13:27:47.02ID:gJ92KJGfa コミュニティーの議論や歴史を調べること
Ruby on Rails では、コントローラーの肥大化を防ぐために、
Skinny Controller, Fat Model を推奨した。
その結果、モデルが肥大化した
そこで今度は、モデルの処理を減らすために、
Form Object, Service Object へ処理を分けた
また表示処理は、Presenter へ分けた。
それで、Form Presenter, Model Presenter が出来た
Ruby on Rails では、コントローラーの肥大化を防ぐために、
Skinny Controller, Fat Model を推奨した。
その結果、モデルが肥大化した
そこで今度は、モデルの処理を減らすために、
Form Object, Service Object へ処理を分けた
また表示処理は、Presenter へ分けた。
それで、Form Presenter, Model Presenter が出来た
560デフォルトの名無しさん (ワッチョイ e6bb-5x1U)
2023/04/25(火) 13:27:53.51ID:A07qb0io0 こういうのは2つ実際に書いてみて、両者を見比べて良い方を採用する
理屈よりも、自分の目で見て判断するのが良い
理屈よりも、自分の目で見て判断するのが良い
561デフォルトの名無しさん (ワッチョイ 6610-3g29)
2023/04/25(火) 15:25:51.23ID:CC33Xm/N0562デフォルトの名無しさん (ワッチョイ 5e5f-RykB)
2023/04/25(火) 15:27:54.01ID:dvdIAVRA0 古いPHPのシステムを保守するならDockerにぶち込むのが一番?
563デフォルトの名無しさん (スッップ Sd0a-T9f9)
2023/04/26(水) 13:32:18.14ID:oPAFNUffd 結局ifは減らないんだよね
ファイルを分けても分けなくても、オブジェクト指向でもそうでなくとも
Strategy/StateパターンとTemplateパターンの併用にして
スイッチっぽく分岐をわかりやすするのが一番かな
ファイルを分けても分けなくても、オブジェクト指向でもそうでなくとも
Strategy/StateパターンとTemplateパターンの併用にして
スイッチっぽく分岐をわかりやすするのが一番かな
564デフォルトの名無しさん (ワッチョイ aa7c-RykB)
2023/04/26(水) 13:45:21.48ID:DHcVafSS0 ifを無理に減らす必要は無いのでは?
必要なら書かなきゃいけないし
ただ処理が集約出来るとかなら外に追い出したらいいし
パターンが多い場合はswitch()の方が良い場合も確かにあるし
ケースバイケースかと
elseifが並ぶのは個人的に嫌いだがw
必要なら書かなきゃいけないし
ただ処理が集約出来るとかなら外に追い出したらいいし
パターンが多い場合はswitch()の方が良い場合も確かにあるし
ケースバイケースかと
elseifが並ぶのは個人的に嫌いだがw
565デフォルトの名無しさん (スップ Sdea-rwG/)
2023/04/26(水) 13:47:42.93ID:poJ+ClSWd elseif嫌いわかる
elseの中にif書きたい
パターン3つ以上になるならswitchにするな
elseの中にif書きたい
パターン3つ以上になるならswitchにするな
566デフォルトの名無しさん (ワッチョイ 5e5f-RykB)
2023/04/26(水) 13:57:33.29ID:w+qfVGMw0 else if は嫌いというか、あとで取捨選択が面倒なので
if文単独で成り立つようにしておくことが多いな
if文単独で成り立つようにしておくことが多いな
567デフォルトの名無しさん (ワッチョイ 1149-RykB)
2023/04/28(金) 14:22:47.60ID:woDvEBlt0 訊きたいことありましたが自決しました
568デフォルトの名無しさん (ブーイモ MMc9-EW+4)
2023/04/28(金) 14:52:55.46ID:L2hGySASM おお死んでしまうとはなにごとだ
569デフォルトの名無しさん (ワッチョイ 7502-rwG/)
2023/04/28(金) 15:31:57.97ID:4N/b4mKa0 盆には帰ってこいよ
570デフォルトの名無しさん (ワッチョイ b77c-6bRy)
2023/04/30(日) 00:40:31.69ID:z7x3mWoF0 PHP7.2.24をインストールしました。Composerもインストールしました。
次のようなExtensionも使えるようにしたいのですが、つまっています。
ext-bcmath,ext-ctype,ext-curl,・・・
ネット上でみたところ、PHPの用語でモジュールとExtension、ライブラリとあるようですが、
それぞれ違うものなのですか?
次のようなExtensionも使えるようにしたいのですが、つまっています。
ext-bcmath,ext-ctype,ext-curl,・・・
ネット上でみたところ、PHPの用語でモジュールとExtension、ライブラリとあるようですが、
それぞれ違うものなのですか?
571デフォルトの名無しさん (ワッチョイ 9f7c-fitb)
2023/04/30(日) 01:15:52.37ID:vhG6z0vz0 PHPの拡張ならそれを入れないと使えないのでは・・・
composerはあくまで自分の作るプログラムで使うライブラリを導入するもの
composerはあくまで自分の作るプログラムで使うライブラリを導入するもの
572デフォルトの名無しさん (ワッチョイ efae-KeI6)
2023/05/12(金) 22:24:38.02ID:sJueD97p0 サーバーのバックエンドの*.phpはpost送信などで任意で呼び出して実行されますが
このバックエンドの*.phpで自発的に一定時間ごとにプログラムを駆動させることはできますか?
例えば1時間おきとか1日おきとかに規定プログラムを実行なんていうのは
このバックエンドの*.phpで自発的に一定時間ごとにプログラムを駆動させることはできますか?
例えば1時間おきとか1日おきとかに規定プログラムを実行なんていうのは
573デフォルトの名無しさん (ワッチョイ 527c-KeI6)
2023/05/12(金) 22:30:23.15ID:+3Auf0UC0 cronに登録すればいいだけでは?
PHPをデーモンとして常駐させてその中で定期的に動かす方法もあるだろうけど
PHPをデーモンとして常駐させてその中で定期的に動かす方法もあるだろうけど
574デフォルトの名無しさん (ワッチョイ efa7-vOwS)
2023/05/12(金) 23:50:55.10ID:A3+wmcch0 無限ループとsleep使ったスクリプトを起動させときゃいいけど
自分でコントロール出来ないサーバだと勝手にkillされるかもな
自分でコントロール出来ないサーバだと勝手にkillされるかもな
575デフォルトの名無しさん (ワッチョイ 1349-ELkX)
2023/05/13(土) 09:35:12.10ID:vNstIXFZ0 例えばWindowsならコマンドプロンプトで
「php.exe <そのファイル>」
と打てば実行できる(環境変数に入ってる前提で)
そういうことじゃないの?
あとはWindowsならタスクスケジューラとかLinuxならcronとかで、同じように実行すればいい
「php.exe <そのファイル>」
と打てば実行できる(環境変数に入ってる前提で)
そういうことじゃないの?
あとはWindowsならタスクスケジューラとかLinuxならcronとかで、同じように実行すればいい
576デフォルトの名無しさん (ワッチョイ 835f-+6/9)
2023/05/18(木) 11:36:31.84ID:cerdIEN00 フロントエンドはJS、バックエンドはPHPってできるだけ切り離したい
バックエンドとしてDBからデータ受け取るためだけにPHP使うってありなのかな?
あと現状スクラッチ開発しかしたことがないからバックエンド向けのフレームワークも試してみたい
バックエンドとしてDBからデータ受け取るためだけにPHP使うってありなのかな?
あと現状スクラッチ開発しかしたことがないからバックエンド向けのフレームワークも試してみたい
577デフォルトの名無しさん (ワッチョイ cfbb-ScEU)
2023/05/18(木) 11:39:20.88ID:yxJWp9Lm0 すればいいじゃん
がんばれ
がんばれ
578デフォルトの名無しさん (オッペケ Sr87-9+eW)
2023/05/18(木) 12:33:14.63ID:l6GHSnlrr 言語はなんでもいいならphpなんて選ばない
普通はrubyかJavaかpythonだぞ
phpはやめとけ
普通はrubyかJavaかpythonだぞ
phpはやめとけ
579デフォルトの名無しさん (ワッチョイ 63f9-ZkZz)
2023/05/18(木) 12:43:42.00ID:4rcvRPf10 Pythonは完全に対応しているサーバーが少ないみたい
Pythonとdjangoでバックエンド書く方法が自分にはまだわからない
Pythonとdjangoでバックエンド書く方法が自分にはまだわからない
580デフォルトの名無しさん (ワッチョイ 6fe7-ZkZz)
2023/05/18(木) 15:55:36.70ID:nTE2uard0581デフォルトの名無しさん (ワッチョイ ff7c-ZkZz)
2023/05/18(木) 16:38:05.22ID:BkqgSu2K0582デフォルトの名無しさん (オッペケ Sr87-ELkX)
2023/05/18(木) 16:43:12.95ID:psogGPWLr まあラクなのはphpやろなあ
ケースによって最適は異なるから、便利な言葉「場合による」
ケースによって最適は異なるから、便利な言葉「場合による」
583デフォルトの名無しさん (ワッチョイ cff8-8XTM)
2023/05/18(木) 17:32:55.73ID:7XjO1SKk0 なんでも使える自社サーバーなのか、
レンタルサーバーのつもりかで選択肢かわるもんな
phpはだいたい使えるから仕方ない
レンタルサーバーのつもりかで選択肢かわるもんな
phpはだいたい使えるから仕方ない
584デフォルトの名無しさん (ワッチョイ ff5c-ZkZz)
2023/05/18(木) 19:26:52.18ID:iyBRbBgp0 VPSなら何だって使える
585デフォルトの名無しさん (ワッチョイ 835f-+6/9)
2023/05/19(金) 01:52:10.66ID:TiXR4GEz0 >>583
会社のサーバーがさくらのレンサバだから何でもかんでもPHPなんだよね
ごく小規模だからスクラッチ開発が基本だし
レベル低くて仕事で精一杯だしで何か独学するって余裕もないから、まずPHPの手軽さからわざと離れてJSでDOM操作は分けてみようかなぁと
会社のサーバーがさくらのレンサバだから何でもかんでもPHPなんだよね
ごく小規模だからスクラッチ開発が基本だし
レベル低くて仕事で精一杯だしで何か独学するって余裕もないから、まずPHPの手軽さからわざと離れてJSでDOM操作は分けてみようかなぁと
586デフォルトの名無しさん (ワッチョイ 1ba7-cUXk)
2023/05/22(月) 01:29:49.15ID:6n6FPMUf0587デフォルトの名無しさん (ワッチョイ d1a7-Cr01)
2023/06/10(土) 20:37:19.56ID:TSaFGI4o0 WSL2(ubuntu)にLaravelインスコしてみたけど
メモリ8G程度だときっついですね
docker desktopとかwindowsターミナル入れろとかこの辺は
aptでdocker入れたりubuntu直接起動したりすればおkな感じですか?
とりあえずやってみてその方法でもいけたはいけたんですが(メモリも1Gぐらい減った)
ビルドしてるときの表示がバグったりちょっと不安要素がありました
メモリ8G程度だときっついですね
docker desktopとかwindowsターミナル入れろとかこの辺は
aptでdocker入れたりubuntu直接起動したりすればおkな感じですか?
とりあえずやってみてその方法でもいけたはいけたんですが(メモリも1Gぐらい減った)
ビルドしてるときの表示がバグったりちょっと不安要素がありました
588デフォルトの名無しさん (ワッチョイ 8bbb-hEWj)
2023/06/11(日) 08:50:59.31ID:nugYPewD0 メモリも問題だけど、たぶん最大の問題はファイルを配置した場所だと思うよ
・ソースコードをWSL2ディストリビューション領域内に配置する
で大幅に改善すると思う
・ソースコードをWSL2ディストリビューション領域内に配置する
で大幅に改善すると思う
589デフォルトの名無しさん (テテンテンテン MMeb-+QT+)
2023/06/12(月) 08:08:55.93ID:VNkMF7gVM httpリクエストで動的なサイトからデータ取得するのってやっぱり無理なんですかね?javascriptでhtmlが生成されるよなページんんだけど
590デフォルトの名無しさん (ワッチョイ 7930-2rqm)
2023/06/12(月) 10:00:10.61ID:AjUdrP5R0 無理ではない
curlやDOM操作のライブラリ自体は揃ってるんだから、後はあなたが頑張ってそのJavaScriptの動作を真似るだけ
curlやDOM操作のライブラリ自体は揃ってるんだから、後はあなたが頑張ってそのJavaScriptの動作を真似るだけ
591デフォルトの名無しさん (ワッチョイ 7b5f-2rqm)
2023/06/12(月) 10:25:34.03ID:mHRjcInk0 おれなら生成はブラウザにやらせるかな
出来た頃合いを見計らってデータを盗む
出来た頃合いを見計らってデータを盗む
592デフォルトの名無しさん (テテンテンテン MMeb-+QT+)
2023/06/12(月) 10:27:10.81ID:wQ6JiRj1M 例を示していただけませんか
593デフォルトの名無しさん (テテンテンテン MMeb-+QT+)
2023/06/12(月) 10:29:59.61ID:wQ6JiRj1M javascriptは通常ブラウザが実行します。しかしhttpリクエストではブラウザを介さないためjavascript は実行されません。ヘッドレスブラウザなどを使えば動的なコンテンツを取得できますが、わたしの課題はhttpリクエストで動的ページからデータを取得することです
594デフォルトの名無しさん (テテンテンテン MMeb-+QT+)
2023/06/12(月) 10:34:38.95ID:wQ6JiRj1M レスポンスを取得してからjavascriptを一回実行すればいいのかな?そんなことできるのかな
595デフォルトの名無しさん (ワッチョイ 7b5f-2rqm)
2023/06/12(月) 10:41:43.85ID:mHRjcInk0 大変だね
ブラウザ禁止縛りプレイならまあ自分で頑張るしかないね
ていうかphantomjsって開発停止してんだな 知らんかった
ブラウザ禁止縛りプレイならまあ自分で頑張るしかないね
ていうかphantomjsって開発停止してんだな 知らんかった
596デフォルトの名無しさん (テテンテンテン MMeb-+QT+)
2023/06/12(月) 21:30:39.08ID:DY0b1d5xM httpリクエストで動的なサイトからデータ取得するのってやっぱり無理なんですかね?javascriptでhtmlが生成されるよなページんんだけど
597デフォルトの名無しさん (ワッチョイ 8bbb-hEWj)
2023/06/12(月) 21:39:47.58ID:sQEwwMG40 おまえLaravelスレのアラシだろ
うざいよ
うざいよ
598デフォルトの名無しさん (ワッチョイ 7b5f-2rqm)
2023/06/12(月) 22:12:16.13ID:mHRjcInk0 >>596
puppeteerがいいんじゃない?
おれは使ったことないけど、phantomjsのメンテナが
「puppeteerあるならもうphantomjsなんかいらんわ」
って言いだして開発終了したらしいし、確かみてみろ
puppeteerがいいんじゃない?
おれは使ったことないけど、phantomjsのメンテナが
「puppeteerあるならもうphantomjsなんかいらんわ」
って言いだして開発終了したらしいし、確かみてみろ
599デフォルトの名無しさん (テテンテンテン MMeb-+QT+)
2023/06/12(月) 22:24:27.56ID:kqdcKHtBM puppetterというものはヘッドレスブラウザを使えるようにしたライブラリであり、わたしはスクレイピングをしたいわけではありません。わたしの課題はhttpリクエストで動的なサイトからデータを取得することであり、ヘッドレスブラウザを使用してスクレイピングをしたいわけではありません
600デフォルトの名無しさん (テテンテンテン MMeb-+QT+)
2023/06/12(月) 22:37:29.16ID:kqdcKHtBM わたしがヘッドレスブラウザを使わない理由はデータの取得時間がかかるからです。またわたしはデータベースを使用しないことを前提としているので、取得したデータを保持することはありません。つまり度々データを取得することになる場合に都度ヘッドレスブラウザーを走らせる設計は現実的ではありません
601デフォルトの名無しさん (ワッチョイ fbe7-2rqm)
2023/06/13(火) 11:41:46.36ID:zJMyBjWC0 >>600
これが各行ごとに良くわからないな
>データの取得時間がかかるからです
何が原因で取得時間がかかるようになるのか
実測してそんなに差異が出たってコト?
>データベースを使用しないことを前提としているので
DBなんか使わなきゃいいんじゃない?
>度々データを取得することになる
同一データを扱うならキャッシュすればいいんじゃない?
PHPでだってアホに作れば度々データ取得しに行っちゃうと思うよ
>現実的でありません
面倒くささ的にも自前でDOM構築する方が非現実的だよね
これが各行ごとに良くわからないな
>データの取得時間がかかるからです
何が原因で取得時間がかかるようになるのか
実測してそんなに差異が出たってコト?
>データベースを使用しないことを前提としているので
DBなんか使わなきゃいいんじゃない?
>度々データを取得することになる
同一データを扱うならキャッシュすればいいんじゃない?
PHPでだってアホに作れば度々データ取得しに行っちゃうと思うよ
>現実的でありません
面倒くささ的にも自前でDOM構築する方が非現実的だよね
602デフォルトの名無しさん (アウアウアー Sa8b-Seme)
2023/06/13(火) 16:08:55.26ID:Oj3crCHea async awaitとfetch使ってデータ取得すれば良いじゃん
603デフォルトの名無しさん (テテンテンテン MMeb-+QT+)
2023/06/13(火) 18:49:37.74ID:r31gUBK2M httpリクエストとスクレイピングでデータ取得の速度を比較する場合一般的にはhttpリクエストのほうが高速です。またわたしの想定では同一データではなく毎回違うクエリでリクエストすることが予想されます。
604デフォルトの名無しさん (テテンテンテン MMeb-+QT+)
2023/06/13(火) 18:50:18.43ID:r31gUBK2M >>602
具体的にはどのような手順でそれらを使用しますか?
具体的にはどのような手順でそれらを使用しますか?
605デフォルトの名無しさん (テテンテンテン MMeb-+QT+)
2023/06/13(火) 22:21:10.72ID:LrQ+wv81M 単純で簡単なjavascriptでレンダリングされているならいけたかもしれませんがフレームワークを使われていたら解析が困難ですね。やはり無理か
606デフォルトの名無しさん (テテンテンテン MMeb-+QT+)
2023/06/13(火) 22:21:52.68ID:LrQ+wv81M そしてnodejsが使えないのでヘッドレスブラウザも無理と。
607デフォルトの名無しさん (アウアウアー Sa8b-Seme)
2023/06/13(火) 23:39:40.44ID:Oj3crCHea >>604
取得したいサイトのURLとその出力htmlの欲しい部分教えて
取得したいサイトのURLとその出力htmlの欲しい部分教えて
608デフォルトの名無しさん (テテンテンテン MMeb-mVGR)
2023/06/14(水) 02:57:47.74ID:sJAdEXJGM >>607
取得したいサイトは複数ありますがECナビになります。
https://ecnavi.jp/search/?word=%E6%88%91%E3%81%8C%E5%A4%A9%E4%B8%8B
htmlの欲しい部分は表示される案件の部分です。
しかしフレームワークがhtmlをレンダリングされている可能性があり、おそらく解析は困難です。
ajaxからデータを取得するサイトもありましたがcros制限がかかっているため不可です。
ヘッドレスブラウザは環境が構築できないので選択肢には含みません。
わたしはhttpリクエストで動的なサイトのデータを取得するのは無理と判断しました。
取得したいサイトは複数ありますがECナビになります。
https://ecnavi.jp/search/?word=%E6%88%91%E3%81%8C%E5%A4%A9%E4%B8%8B
htmlの欲しい部分は表示される案件の部分です。
しかしフレームワークがhtmlをレンダリングされている可能性があり、おそらく解析は困難です。
ajaxからデータを取得するサイトもありましたがcros制限がかかっているため不可です。
ヘッドレスブラウザは環境が構築できないので選択肢には含みません。
わたしはhttpリクエストで動的なサイトのデータを取得するのは無理と判断しました。
609デフォルトの名無しさん (ワッチョイ 8bbb-hEWj)
2023/06/14(水) 04:20:42.50ID:Jx0dk3g+0 普通に利用規約違反じゃねぇかw
610デフォルトの名無しさん (アウアウウー Sadd-APG/)
2023/06/14(水) 05:35:16.83ID:VFw5jfyla >>587
WSL2, Ubuntu 20/22, VSCode, Windows Terminal, Docker Desktop
VSCodeの拡張機能・Remote Development に、
3つの拡張機能・Remote Container/WSL/SSH が含まれている
日本人が作った、多言語バージョンマネージャーのanyenv。
同様のツールに、asdf もある
Renv, crenv, denv, erlenv, exenv
goenv, hsenv, jenv, jlenv, luaenv
nodenv, phpenv, plenv, pyenv, rbenv
sbtenv, scalaenv, swiftenv, tfenv
漏れは、Ruby on Rails をやっているけど、メモリは32〜64GB ほしい
WSL2, Ubuntu 20/22, VSCode, Windows Terminal, Docker Desktop
VSCodeの拡張機能・Remote Development に、
3つの拡張機能・Remote Container/WSL/SSH が含まれている
日本人が作った、多言語バージョンマネージャーのanyenv。
同様のツールに、asdf もある
Renv, crenv, denv, erlenv, exenv
goenv, hsenv, jenv, jlenv, luaenv
nodenv, phpenv, plenv, pyenv, rbenv
sbtenv, scalaenv, swiftenv, tfenv
漏れは、Ruby on Rails をやっているけど、メモリは32〜64GB ほしい
611デフォルトの名無しさん (アウアウアー Sa8b-Seme)
2023/06/14(水) 06:54:43.13ID:4pmBicBja >>608
案件って「ポイントアップチャレンジ」の部分?
案件って「ポイントアップチャレンジ」の部分?
612デフォルトの名無しさん (テテンテンテン MMeb-+QT+)
2023/06/14(水) 07:38:40.54ID:dOe183t+M >>611
案件の部分はPCで閲覧していると表示されません。ゲームアプリ案件の場合はユーザーエージェントがモバイルOSである必要があります。
案件の部分はPCで閲覧していると表示されません。ゲームアプリ案件の場合はユーザーエージェントがモバイルOSである必要があります。
613デフォルトの名無しさん (ワッチョイ d1a7-Cr01)
2023/06/15(木) 15:12:03.05ID:pNWnTG3Z0 たかだかバックエンドのWeb開発するだけなのに
メモリ32GBとか要求される異常な時代w
メモリ32GBとか要求される異常な時代w
614デフォルトの名無しさん (スッップ Sd33-wNjT)
2023/06/15(木) 17:34:34.40ID:oe0OZOrwd WSL2で2GB
Chromeで2GB
その他諸々で10GB
Chromeで2GB
その他諸々で10GB
615デフォルトの名無しさん (ワッチョイ 8b63-2rqm)
2023/06/15(木) 17:37:28.87ID:KtHE2I/00 脳みそのメモリーが書き込み不可のエラーになってますし
616デフォルトの名無しさん (ワッチョイ d1a7-Cr01)
2023/06/15(木) 17:51:10.48ID:pNWnTG3Z0 各々アプリが肥大化しすぎてしまって…
minimal構成のも用意してくれればいいんだけどね
XPとか32bitOSが主流だった時代は4GBで十分足りただろうに
まあ今メモリ32GBで1万円ぐらいだから文句いうことでもないんだけど
minimal構成のも用意してくれればいいんだけどね
XPとか32bitOSが主流だった時代は4GBで十分足りただろうに
まあ今メモリ32GBで1万円ぐらいだから文句いうことでもないんだけど
617デフォルトの名無しさん (ワッチョイ 135c-2rqm)
2023/06/15(木) 18:17:52.09ID:jjmsD4tb0 32Gも要求されるって何開発してんの?
618デフォルトの名無しさん (ワッチョイ 8bbb-hEWj)
2023/06/15(木) 18:28:28.13ID:W3FATu2P0 616 じゃないけど、docker とブラウザ立ち上げてたら 16 GBをちょいちょい超えるから 32 GBに増設した
快適だぞ
快適だぞ
619デフォルトの名無しさん (ワッチョイ 135c-2rqm)
2023/06/15(木) 20:46:52.21ID:jjmsD4tb0 快適な環境作りに必要って訳ね
620610 (アウアウウー Sadd-APG/)
2023/06/16(金) 00:02:25.90ID:0+O5qEwBa Windows/Linux(WSL2), ブラウザ、VSCode, Docker
さらに、Ruby on Rails では、複数データベースで並列テストもできるし
さらに、Ruby on Rails では、複数データベースで並列テストもできるし
621デフォルトの名無しさん (ワッチョイ 8b63-2rqm)
2023/06/16(金) 00:06:26.73ID:siRuxcGs0 Ruby厨は呼んでない、巣に帰れ
622デフォルトの名無しさん (ワッチョイ 8b10-JQtP)
2023/06/16(金) 13:32:48.84ID:Y1bNR4pi0 TwitterOAuthに詳しい人がいたら教えてください。
DeveloperPortalでアプリ作成済み、
composer require abraham/twitteroauth
でインストール済みとします。
$connection = new TwitterOAuth($consumer_key, $consumer_secret, $access_token, $access_token_secret);
$content = $connection->get("account/verify_credentials");
ではTwitterアカウントの情報が取得できるのですが、
(※app_keyの部分は省いています)
Twitter API v2に対応するために
$connection->setApiVersion('2');
を追加すると取得できません。$contentがNULLになります。
これってTwitterアプリが v2に対応していないからでしょうか?
DeveloperPortalでアプリ作成済み、
composer require abraham/twitteroauth
でインストール済みとします。
$connection = new TwitterOAuth($consumer_key, $consumer_secret, $access_token, $access_token_secret);
$content = $connection->get("account/verify_credentials");
ではTwitterアカウントの情報が取得できるのですが、
(※app_keyの部分は省いています)
Twitter API v2に対応するために
$connection->setApiVersion('2');
を追加すると取得できません。$contentがNULLになります。
これってTwitterアプリが v2に対応していないからでしょうか?
623デフォルトの名無しさん (ワッチョイ 8bbb-hEWj)
2023/06/16(金) 17:45:17.56ID:TyNt7O690624デフォルトの名無しさん (テテンテンテン MM96-DFMs)
2023/06/17(土) 09:44:22.27ID:C4ey1Sw3M addactionがfunctions.phpでは動作するのにカスタムテンプレートでは動作しない理由はなんですか?
625デフォルトの名無しさん (ワッチョイ 5e10-l8k0)
2023/06/18(日) 18:12:02.78ID:h4u0ciKA0 >>623
$content = $connection->get("account/verify_credentials");
ここの指定に問題があるということが掴めました。
ご指摘ありがとうございました。
$content = $connection->get("account/verify_credentials");
ここの指定に問題があるということが掴めました。
ご指摘ありがとうございました。
626デフォルトの名無しさん (ワッチョイ 23a9-gN4b)
2023/06/25(日) 18:20:15.50ID:gM/PAKCH0 php初めてみたもののメンターとか先輩とかいないぼっちなんで無償版のchatGPT使うと
pdoを使ったDBの接続を含めたコードとか、SQLインジェクションの対応とか一瞬で出してくれてありがたい限り
有償版のGPT4ならコード生成は何かGPT3.5と変わるの?
pdoを使ったDBの接続を含めたコードとか、SQLインジェクションの対応とか一瞬で出してくれてありがたい限り
有償版のGPT4ならコード生成は何かGPT3.5と変わるの?
627デフォルトの名無しさん (ワッチョイ 4b63-F8yx)
2023/06/25(日) 18:24:11.05ID:PAO3/SeJ0 寝ている間に君の仕事やってくれる
628デフォルトの名無しさん (ワッチョイ 23a9-gN4b)
2023/06/25(日) 18:40:58.90ID:gM/PAKCH0 それが本当なら指示のプロンプトがすごいことになりそう
実際のところ、ファイルを分けたCRUDなんて1回のプロンプトで生成とかできるんだろうか
どこまでならできるとか、ここはさすがにできないとか情報があるサイトがあれば教えていただければ嬉しいです
実際のところ、ファイルを分けたCRUDなんて1回のプロンプトで生成とかできるんだろうか
どこまでならできるとか、ここはさすがにできないとか情報があるサイトがあれば教えていただければ嬉しいです
629デフォルトの名無しさん (ワッチョイ 955f-WUpn)
2023/06/25(日) 19:17:12.98ID:XgY7oRFd0 次のコードをクラスみたいに書いて?
→コンストラクタとメソッドに書き換えてくれる
ありがてぇ、関数群も提示するとそれに合わせてチューニングしてくれる
→コンストラクタとメソッドに書き換えてくれる
ありがてぇ、関数群も提示するとそれに合わせてチューニングしてくれる
630デフォルトの名無しさん (ワッチョイ 4bf8-cPIU)
2023/06/25(日) 19:21:55.03ID:i7rMe9Iv0 知ってるコードで書いて
これをphpに移植したいというだけでほぼできる
これをphpに移植したいというだけでほぼできる
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 橋下徹氏「この喧嘩は日本の完敗」 台湾有事答弁めぐる外務省局長訪中で指摘「中国に怒られてご説明に伺った日本と見られる」 [muffin★]
- 【日本大使館】中国在留邦人は安全確保を [ぐれ★]
- 習政権、高市首相への態度硬化 台湾有事発言で連日非難 中国 ★10 [ぐれ★]
- 【外国人問題】小野田紀美担当相「不法就労や不法滞在は許さない」 [シャチ★]
- 【野球】井端監督 大谷翔平、山本由伸らのWBCへの参加 「1日も早く返事ほしい」「待っててといっても、国内組が遅くなってしまう」★3 [冬月記者★]
- 中国で「クレしん」公開延期 対日報復、エンタメに波及 [蚤の市★]
- 有識者「高市総理が発言を撤回したり、辞職するしかないと言っている人は、それで日中関係が今まで通りになると思ってる?」 [834922174]
- 高市コイン、155円突破wwwwwwwwww [246620176]
- おじゃる丸をまったり待機するスレ🏡
- 高市早苗の中国問題、「オーバーツーリズムが解消されてウザい中国人が消えるから日本の勝ち」という風潮になってしまう [562983582]
- 女の子のケツって無断で揉んでも
- もう暖房入れてる奴wwwwwwwww
