[過去ログ] 【PHP】下らねぇ質問はここに書き込みやがれ 13 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1
(2): (アウアウクー MM6f-zbgo) 2021/09/09(木)09:38 ID:eDlF7Xc4M(1) AAS
!extend::vvvvv:1000:512
!extend::vvvvv:1000:512
!extend::vvvvv:1000:512
★スレ立て時 ↑ が3行以上になるようコピペ

PHPに関する質問スレです

前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 12
省2
922: (ブーイモ MM4f-nIF8) 2022/08/25(木)14:49 ID:hXEJOwJJM(1) AAS
ライブラリ便利そうだけど、今更rubyに変えられないからphpで頑張るわ
923: (JP 0H33-O5Bg) 2022/08/25(木)15:32 ID:GV4MPWBaH(1/2) AAS
PHPでもLaravelとか使えば同じでは?
924: (JP 0Hd3-Vr/7) 2022/08/25(木)16:50 ID:WIenj4cIH(1) AAS
Laravel使えないサーバーもまだ多いのが問題なのかも
925: (ワッチョイ 7f63-tEjH) 2022/08/25(木)16:54 ID:iqB4j8J+0(2/2) AAS
昭和十年十二月十日に
ぼくは不完全な死体として生まれ
何十年かかゝって
完全な死体となるのである
926: (JP 0H33-O5Bg) 2022/08/25(木)18:51 ID:GV4MPWBaH(2/2) AAS
Laravel使えないならRailsも使えんだろうしなぁ
ユニットテスト云々以前の問題のような
927: (ワッチョイ 9f5f-UIZa) 2022/08/25(木)20:03 ID:BRCxE1d+0(1) AAS
wordpressに対応しないでください…
928
(2): (ワッチョイ 9f01-dbST) 2022/08/26(金)06:38 ID:MROGQRE10(1/2) AAS
2022/2/3
2022-02-03
スラッシュ形式保存されてる内閣府の祝日CSVですが、
桁揃えてハイフン形式になおしたいです。
どうすればいいですか?
929: (ワッチョイ 9f01-dbST) 2022/08/26(金)07:24 ID:MROGQRE10(2/2) AAS
>>928
自決
930
(1): (ワッチョイ 7f47-tEjH) 2022/08/26(金)11:55 ID:a/x93rb70(1/3) AAS
>>928
vsprintf('%d-%02d-%02d', explode('/', '2022/2/3'))
931
(1): (ワッチョイ 7fda-oOo3) 2022/08/26(金)13:17 ID:4wt+rugM0(1/2) AAS
>>930
vsprintfのマニュアルの戻り値の説明に
「 format に基づき、 フォーマットされた文字列の配列を返します。 」とありますが「文字列の配列」という意味がわかりません。
戻り値は文字列で配列ではないように思うのですが違うのでしょうか?

外部リンク[php]:www.php.net
932
(1): (ワッチョイ 9f02-RKJr) [age] 2022/08/26(金)13:26 ID:b66GPlrN0(1/2) AAS
内部で文字列から配列に変換してからフォーマットする
型がない言語(型推論)だから戻り値を使うまでは配列
933
(1): (ワッチョイ 7f47-tEjH) 2022/08/26(金)14:10 ID:a/x93rb70(2/3) AAS
>>931
その日本語、英語版( 外部リンク[php]:www.php.net )原文の
> Return array values as a formatted string according to format.
から「values」に相当する部分が抜けてるような気が。抜けてなくてもなんかよく分からん表現だが

まぁ気になるんなら、戻り値が「フォーマット済みの日付文字列」「formatted date string」と明示されてる
DateTime::createFromFormat('Y/m/d', '2022/2/3')->format('Y-m-d')
を使ってみるとか
934
(1): (ワッチョイ 7fda-oOo3) 2022/08/26(金)16:07 ID:4wt+rugM0(2/2) AAS
Return array values as a formatted string according to format.
DeepLで翻訳したら

配列の値をformatにしたがって整形した文字列として返す。

となりました。多分これが正解だと思います。

英語版のマニュアルの見出しにも
vsprintf
(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
省2
935
(1): (ワッチョイ 7f47-tEjH) 2022/08/26(金)17:35 ID:a/x93rb70(3/3) AAS
「ですよね」と言われても、マニュアルに書いてある以上の情報なんて持ってないしな
てか、なんで試さないの? var_dump()してstringが返ってくるかどうか、30秒で確認できるっしょ
936: (ワッチョイ 7f1f-oOo3) 2022/08/26(金)17:52 ID:8DGxFkjA0(1) AAS
>>935
そんなのとっくにやってますよ。
マニュアルがおかしいんじゃないかっていう意味で聞いたんですけどね。
ソースに当たってみました。
やはり返り値は文字列ですね。
外部リンク[c]:github.com
937: (ワッチョイ ffbb-MAx6) 2022/08/26(金)18:34 ID:AOSBa6FO0(1) AAS
なんでそんな誤訳(?)したんだろうね
確認お疲れさまでした

マニュアルはGitHub管理のはずなのでPR出しておくと修正されるよ
938: (ベーイモ MM8f-7ygK) 2022/08/26(金)19:00 ID:aLr+AxJ9M(1) AAS
このスレ、>>934から「文字列で返ることは確認済み、問題にしてるのはマニュア
ルの記述だ」と読み取らないと質問者様のお怒りを招くのか。レベル高いな
939: (ワッチョイ 7f63-tEjH) 2022/08/26(金)19:15 ID:S8Vleaqc0(1) AAS
我らは試されているのだ
940
(1): (ワッチョイ 9fb0-oOo3) 2022/08/26(金)20:02 ID:8ESD7+yH0(1) AAS
>>932なんて完全なアホだし
>>933もよく分かってないだろう
知ったかぶりして回答しないことだなw
941: (ワッチョイ 9f01-oOo3) 2022/08/26(金)20:09 ID:27BJw2950(1) AAS
PHPのドキュメントは翻訳だから間違いがあるのはしょうがない。
その点Rubyは開発者が日本人だから日本語ドキュメントも完璧。

初心者がドキュメントの正誤判断することは不可能
初心者はRubyから学習を始めるべき。
そしてRubi on Railsを習得すればPHPは不要

こっちのスレで質問すれば親切な達人プログラマーがどんな質問にも懇切丁寧に答えてくれる。
 ↓
省2
942
(1): (ワッチョイ 9f02-RKJr) [age] 2022/08/26(金)20:25 ID:b66GPlrN0(2/2) AAS
>>940
私はphp言語の開発者です
お前はphpの使用禁止
943: (ワッチョイ eebb-I0L/) 2022/08/27(土)05:59 ID:fRqWQAA00(1/2) AAS
>>942
日本語お上手ですね
どなたですか?
外部リンク:thephp.foundation
944: (ワッチョイ 2102-f2QG) [age] 2022/08/27(土)07:25 ID:jzDPthdr0(1/2) AAS
ドット演算子、アロー演算子を作った人なので
今はコア開発者ではありませんよ
945: (ワッチョイ eebb-I0L/) 2022/08/27(土)07:51 ID:fRqWQAA00(2/2) AAS
てことはレジェンドじゃないですか!
Andi さん?Zeev さん?
まさかの Rasmus さん?
946: (ワッチョイ 2102-f2QG) [age] 2022/08/27(土)10:53 ID:jzDPthdr0(2/2) AAS
誰を名乗っても問題ありませんので誰でも良いですが
まあ、完全なアホというのは良くないですよ
というか、アホは完全でないからアホですよね
つまり私はある種完全性を肯定されました
ありがとうございます
947: (ワッチョイ b1ac-C0nc) 2022/08/27(土)16:24 ID:4Qb5g2XJ0(1) AAS
夏休みだなあ
948: 十円玉◆ZzHmfXMmRApz (ワッチョイ ae35-HUXm) [sage( ´-`)y-~~] 2022/08/31(水)02:14 ID:NHfTTCA80(1) AAS
知らんうちにPOSIX系関数の返り値が多次元化されてたのね。preg_matchとか。
949: (ワッチョイ 6e10-fFoX) 2022/08/31(水)13:21 ID:RpICLcti0(1/2) AAS
WordPressの管理画面にログインもしていないのに
サイト更新が完了しましたメールが届きます。

これってどういう仕組みで実現してるんですか?
Cronで実行用のファイルを動作させないと無理ですよね?
950
(1): (ワッチョイ c95f-WaMk) 2022/08/31(水)13:26 ID:0bu00RjS0(1/2) AAS
別にcronじゃなくてもいい
誰かがサイトにアクセスしたらサイト更新チェックのトリガーが発動とかでもできる
951
(1): (ワッチョイ 0263-yNcK) 2022/08/31(水)14:56 ID:2/ZssPvh0(1/2) AAS
Cronで、何が変更されたか全体を調べて通知するよりも
変更をトリガーにして通知を送らせる方が、多分軽い
952
(1): (ワッチョイ 6e10-fFoX) 2022/08/31(水)21:04 ID:RpICLcti0(2/2) AAS
>>950
PHPって同期通信だから、誰かのアクセスが遅延したりするんですか?

>>951
全体を調べなくても、バージョン情報だけ調べれば良いのでは
953
(1): (ワッチョイ c95f-WaMk) 2022/08/31(水)22:37 ID:0bu00RjS0(2/2) AAS
>>952
PHPでも非同期処理できるし、遅延はほとんどなしにできるでしょ
954: (ワッチョイ 3d02-Ickp) 2022/08/31(水)23:07 ID:frCvHqxU0(1) AAS
スレ違いのクソレスしか能がない御方には難しすぎるな…
955: (ワッチョイ 0263-yNcK) 2022/08/31(水)23:14 ID:2/ZssPvh0(2/2) AAS
悪意のあるひっかけだったんだ
956
(1): (ワッチョイ 6e10-fFoX) 2022/09/01(木)08:27 ID:5Hoki9RX0(1/2) AAS
>>953
つまり、考え方としては
1)WordPressの公開画面に誰かがアクセスする
2)Ajaxなどで非同期処理して更新チェック
3)更新する必要がある場合は、自動更新

って仕様なんですかね?
であるならば、WordPress以外のPHPアプリでもできそうですね
957
(1): (ワッチョイ c95f-WaMk) 2022/09/01(木)10:56 ID:z98R98W20(1) AAS
>>956
Ajaxなんか使わなくてもPHPのexec()だけで非同期処理できる
あとはそんな感じ
もちろん実装の一例で、それ以外の方法もあるだろう
958: (ワッチョイ 6e10-fFoX) 2022/09/01(木)22:43 ID:5Hoki9RX0(2/2) AAS
>>957
わかりました。調べてみます。ありがとうございました。
959: (ワッチョイ b1ac-C0nc) 2022/09/02(金)00:01 ID:tq/iSZ/+0(1) AAS
いえいえ
960: (ワッチョイ eaa9-Mjbb) 2022/09/10(土)15:24 ID:3OR0LZqv0(1) AAS
pdoとプリアドステートメントというのをやってみたのですが

$stmt = $pdo->prepare("クエリ文");
$stmt->bindValue(・・・)
$stmt->execute();
ここでDBにアクセスしていると思いますが、

行数を数える $stmt->fetchColumn()

省7
961
(1): (ワッチョイ e6bb-VPVD) 2022/09/10(土)20:11 ID:MysCJx+R0(1) AAS
PDOStatement::execute() の戻り値は成否を表すboolなので
$result = $stmt->execute();
は結果セットの取り出しとは無関係です

:execute()されるとPDOStatement:に結果セットがセットされます
fetch~は結果セットから取り出すメソッドなのでDBアクセスは伴いません

マニュアルを読んで実験してみるよ良いですよ
962: (ワッチョイ ea51-AnFa) 2022/09/12(月)12:44 ID:PWuvGxZT0(1/2) AAS
Symfonyってもう最近使われないですか?
10年前にSymfonyで作られたWebアプリの保守の案件があるのですが
963
(1): (ワッチョイ e6bb-VPVD) 2022/09/12(月)12:51 ID:S31S8+BV0(1/2) AAS
少しは調べろ
964: (ワッチョイ ea51-AnFa) 2022/09/12(月)13:07 ID:PWuvGxZT0(2/2) AAS
>>963
ぐぐっても2006年の資料とか・・・

2019年に最新版は出ているみたいですが、新しい資料じたいがあまり無いゆえ。
965: (ワッチョイ e6bb-VPVD) 2022/09/12(月)13:17 ID:S31S8+BV0(2/2) AAS
wikipedia やそこから辿れる公式すら見てねぇじゃねぇか
エンジニアになりたかったらまずは公式読めるようになれ
966: (ワッチョイ eaa9-Mjbb) 2022/09/12(月)14:21 ID:Ynnd8wx/0(1) AAS
>>961
アロー演算子というのに全く慣れていなくて
$stmt->bindValue(・・・)
$stmt->execute();
->を使うと$stmtというのが上書きされていく感じでしょうか?

昔は手続き型を使っていたので
$resultに結果を入れて、あれこれやっていましたが
省3
967
(1): (ワッチョイ a902-+Wio) 2022/09/12(月)23:14 ID:H6EQTEjA0(1) AAS
なんで.じゃダメだったのかなぁ…
中途半端にPerl構文引き継いだせいで面倒なことに…
968: (ワッチョイ 1e66-JoGj) 2022/09/13(火)01:04 ID:k/lRopxK0(1/4) AAS
文字列の連結に使ってるからでしょ。
文字変数と、文字列を返す関数、この2つの項の文字列としての連結と区分けが付かなくなるじゃん。

インスタンス自体も文字列評価可能なんだし。
969: (ワッチョイ 157b-hFL5) 2022/09/13(火)01:45 ID:d4v/1ArY0(1/3) AAS
>>967
-> はC由来で . はPerl由来か?
プログラミング言語とスクリプト言語を中途半端に交ぜたからだね
文字列連結も + のほうが分かりやすいしそうするべきだったかと
970
(1): (ワッチョイ 1e66-JoGj) 2022/09/13(火)03:02 ID:k/lRopxK0(2/4) AAS
アローもドットも:: も全部C++由来では。
C++自体別から引用してるだろけど、
3つか揃い踏みしたトップランクな有名言語はC++だろう。

ポインタ経由、実態経由、クラス経由で記述を分けた。

結局分けないPythonやC#みたいな言語の方が書きやすいという...
971: (ワッチョイ 157b-hFL5) 2022/09/13(火)08:20 ID:d4v/1ArY0(2/3) AAS
>>970
お前がまるで分かってない事だけは分かった
972: (ワッチョイ 1e66-OVjx) 2022/09/13(火)11:25 ID:k/lRopxK0(3/4) AAS
どっか間違ってるの?
973: (ワッチョイ ea63-OdF3) 2022/09/13(火)11:44 ID:1xD6R/mV0(1/2) AAS
ドット演算子はCobolの頃からある
974
(1): (ワッチョイ 66f2-JkEp) 2022/09/13(火)11:46 ID:Gwjyu6tY0(1) AAS
変数型宣言がない言語で+で文字連結できちゃうとバグの温床になる
975: (ワッチョイ 1e66-OVjx) 2022/09/13(火)11:48 ID:k/lRopxK0(4/4) AAS
だから、個々は別から引用したかもしれんが、
3つ揃い踏みしたトップランクメジャー言語はと書いてるじゃないか。
976
(1): (ワッチョイ ea63-OdF3) 2022/09/13(火)11:49 ID:1xD6R/mV0(2/2) AAS
あ、ごめん
間違いだ
977: (ワッチョイ 157b-hFL5) 2022/09/13(火)12:58 ID:d4v/1ArY0(3/3) AAS
>>976
COBOLは & らしい。気持ちは分かるが今となっては糞仕様だな。

>>974
それはJSのことを言ってるのか?
ただそれはない。
数値型の変数はほぼ全部のケースで変数名で数値だと明確であり、そこはバグらない。
countやlength、num_of_xxxを文字列で扱う馬鹿はそれ以前の問題だ。
978: (ワイーワ2 FF92-pw5f) 2022/09/13(火)13:58 ID:CtcsooHUF(1) AAS
テンプレートリテラル{}使うか.による文字列結合使うかの判断がちゃんと出来ない
今の所ラクな方選んでるだけだな
979: (ワッチョイ 7702-okD4) 2022/09/17(土)18:54 ID:X8JZx5Pn0(1) AAS
それでいいわ。強いて言うならエスケープしないで済む方
980
(1): (ワッチョイ ff97-W3aP) 2022/09/19(月)12:37 ID:TYV9CYn40(1/2) AAS
PHPの学習で、トランザクション勉強していますが。
おおざっぱに、「一連のクエリ処理を一つの処理と見立てて、途中失敗したら最初からなかったことにする」
機能かと思います。
で、課題として、簡単なECサイト作っています。
一般の利用者が商品を選択しカートを入れ、お金を払って買い上げるのようなものです。
テーブルは「カート」「商品情報」「利用者」「在庫情報」です。(ほんとは英字です。)
利用者が購入に失敗したら、ロールバックで購入が無かったことにします。
省4
981: (ワッチョイ 9f7c-E+l9) 2022/09/19(月)13:12 ID:9xLKPVoG0(1) AAS
単に最後の購入処理で途中でエラーが発生して整合性が取れない時に
ロールバックするぐらいのイメージで良いのでは?
途中のカートに追加するような処理はそれ単体で失敗すればロールバックかなと
(この場合、カートに追加する処理に失敗したという事でカートは前のまま)
982: (スップ Sd3f-Zv9H) 2022/09/19(月)13:18 ID:k2Lhsy4nd(1) AAS
カートに入れるところからトランザクション始めたら買われるまで一連の処理終われないし、途中でタイムアウトするやろw
983: (ワッチョイ 9f63-E+l9) 2022/09/19(月)13:19 ID:zeLiCYh20(1) AAS
カートに入れる処理はトランザクション二する必要がない
利用者が自分の意志で取り消すケースもあるわけだし
必要なのは、利用者が決定ボタンを押して、購入完了になるプロセスくらいじゃないかな
一つしかない商品を他の利用者と競合して購入したかもしれないし
複数種類を購入した際に、一つが在庫不足になってたかもしれない
そういうときに、決定ボタンを押す直前までロールバックが必要になる
984: (ワッチョイ ffbb-AZvI) 2022/09/19(月)14:16 ID:8Jf173KW0(1) AAS
トランザクションとかセッションとかは文脈で定義される範囲が変わるのでちゃんと意識して書いたほうがいい

その上で、今回はDBのトランザクションのことだとエスパーして回答すると設定される範囲は間違い
記述がないので何をトランザクション処理として設定するかは回答できないけど、「ユーザの決済処理」「在庫処理」あたりがひとまとまりになると思う

入門書で記述されるトランザクションとついでにプリペアドステートメント(プレースホルダ)処理はデータベース側の処理なので入門書から離れてデータベース側の処理をデータベースの公式を参照しながら学習すると良い
985: (ワッチョイ ff97-W3aP) 2022/09/19(月)16:01 ID:TYV9CYn40(2/2) AAS
みなさんありがとうございました。
良くわかりました!
986: (ワッチョイ ff97-W3aP) 2022/09/20(火)00:39 ID:Sb2Kpzh+0(1/5) AAS
phpmyadmin にINT型でUNSIGNED(整数マイナスを除く)に設定したカラムがあります。
直接phpmyadmin上でこのカラムのデータに対して、SQL文でマイナスの値をUPDATEしようとすると

以下のようなアラートが返ってきます。ただし、データは0の値になります。
Warning: #1264 Out of range value for column 'test_int' at row 7

phpから、PDO接続で同じようにUPDATEしたとき、エラーとさせて入力を拒否したいのですが方法がありますでしょうか?

try-catch文で、以下のようにしたものの、ただ値が0になるだけしかなりませんでした。
良いアイデアがあれば教えてください。
省10
987: (ワッチョイ 9f63-E+l9) 2022/09/20(火)09:09 ID:Sk0Tcp2N0(1/3) AAS
UPDATE以前二範囲チェックをPHPで行えば?
988: (ワッチョイ ffbb-AZvI) 2022/09/20(火)09:18 ID:fhvmpEXe0(1) AAS
試してないけどMySQL側に警告じゃなくてエラーを返すモードがあるみたい
外部リンク[html]:dev.mysql.com

TRADITIONAL を有効にすることでエラーを返すようになるみたい
989: (ワッチョイ 9701-jQT+) 2022/09/20(火)12:21 ID:F74Rs01Q0(1) AAS
事前チェックが嫌な理由はなんだろ
990: (ワッチョイ 9f7c-E+l9) 2022/09/20(火)15:40 ID:r8LO5qc30(1/2) AAS
普通はバリデーションをしてSQLでエラーにならない値を設定するかなと
SQLでのエラーは想定外の事が起きた場合に限る感じ
991: (ワッチョイ ff97-W3aP) 2022/09/20(火)15:44 ID:Sb2Kpzh+0(2/5) AAS
ありがとうございます。

事前チェックが良いですね。ありがとうございます。

データベースからのエラーを拾いたいのは、
トランザクションのコミットかロールバックの判断を
try-catchで補足しないといけないかと、
勝手に思っていたからです。
(多くの参考書がtry-catch文で判断していたから)
省3
992: (ワッチョイ 9f63-E+l9) 2022/09/20(火)15:59 ID:Sk0Tcp2N0(2/3) AAS
トランザクション処理でその様なエラーを拾わせるって
まずくね?
たぶん、クライアントから受け取ったデータだと思うし、
それって単独で許容値かどうかを判断出来ると思うんだよ
Web画面経由なら、クライアント画面にエラー表示させて
再入力を促せると思うんだ
そうすればどう言うエラーか判断する必要もないよね
993: (ワッチョイ 9f7c-E+l9) 2022/09/20(火)15:59 ID:r8LO5qc30(2/2) AAS
バリデーション
 問題があればここでエラーを返し下の処理はしない
try{
トランザクション開始
SQL実行
コミット
}catch(Exception e) {
省4
994: (ワッチョイ ff97-W3aP) 2022/09/20(火)16:20 ID:Sb2Kpzh+0(3/5) AAS
入力の例外値などは、
トランザクションで判別させるようなものじゃない。
ってことですか?
995: (ワッチョイ ff97-W3aP) 2022/09/20(火)16:27 ID:Sb2Kpzh+0(4/5) AAS
トランザクションの判別は、何か想定外の問題が起きた時であって、
想定されるような問題は事前になんとかしとけということかな。
996: (ワッチョイ 9f63-E+l9) 2022/09/20(火)16:33 ID:Sk0Tcp2N0(3/3) AAS
トランザクションで判定しないと行けないのは、
リソースの取り合いがあるときやDB自身の障害など
DB側でしか分からないようなケースだな
997: (ワッチョイ ff97-W3aP) 2022/09/20(火)16:36 ID:Sb2Kpzh+0(5/5) AAS
ありがとうございます。
ということは、トランザクションは、
try-catch文で例外判断するのが一般的なのですね。
998
(1): (ワッチョイ 97da-E+l9) 2022/09/20(火)23:33 ID:k4MHQr8J0(1) AAS
クラスのファイル名の拡張子に .inc を使うのは
今の時代では許されてないの?
許されるなら .inc を使い続けたい
999
(1): (ワッチョイ 9fb7-ldZd) 2022/09/21(水)00:13 ID:9N/hP2WI0(1) AAS
次スレ立ってた
【PHP】下らねぇ質問はここに書き込みやがれ 14
2chスレ:tech

>>998
まずはPSR-0や4を調べてもらって、その上でincにしたいと言うなら
個人の趣味開発くらいなら自由にしたら良いと思う
1000: (ワッチョイ 97da-E+l9) 2022/09/21(水)13:48 ID:kTmMqKR00(1) AAS
>>999
PSR-0を読んで、そういや .incはダメって書いてねーな・・・ と思ったので聞いてみました!

1000なら許される
1001
(1): 1001 ID:Thread(1/2) AAS
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 377日 4時間 10分 1秒
1002
(1): 1002 ID:Thread(2/2) AAS
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。

───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
省7
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.162s*