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

レス数が1000を超えています。これ以上書き込みはできません。
1nobodyさん2018/10/04(木) 16:43:56.93ID:r0iGnrNs
PHPに関する質問や雑談をするスレです。
初心者お断り(ROM歓迎)と書いてますが、初心者用のスレが用意されているからで、
難しい質問や話題をしなければいけないわけではありません。
PHPマニュアルの読み方を概ね理解していて、関数リファレンスが正しく読める方用のスレです。

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

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

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

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

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

2nobodyさん2018/10/10(水) 19:42:43.66ID:I3IYzLzE
いちおつ

3nobodyさん2018/10/18(木) 21:02:35.90ID:???
ログイン済みの人にだけ表示させたいっていう場合、
ログインフラグみたいな特定のセッション変数があるかないかをみるっていう感じでいいんですよね?
テンプレートの先頭をこんな感じにして、die/exitで止めてしまえばいいんでしょうか?

<?php
session_start();
if ($_SESSION['user'] === NULL) {
 header('HTTP/1.1 401 Unauthorized');
 die('<html><body><h1>401 Unauthorized</h1></body></html>');
}
?>
<!DOCTYPE html>
<html>
<body>
<h2>Hello <?= $_SESSION['user'] ?>.</h2>
</body>
</html>

4nobodyさん2018/10/18(木) 21:07:33.24ID:???
こまけーこたぁ色々あるけど、骨子としてはおっけー!

532018/10/18(木) 21:12:15.35ID:???
>>4
よかった〜どうもありがとうございます!

6nobodyさん2018/10/18(木) 21:41:38.31ID:???
全部>>4に集約されてた

7nobodyさん2018/10/19(金) 17:02:40.61ID:???
random_bytes(32)
なんで32なのん?(´・ω・`)

8nobodyさん2018/10/19(金) 17:08:50.15ID:???
(´・ω・`)僕の年齢

9nobodyさん2018/10/21(日) 22:03:32.30ID:iqZxIaIe
別スレで(予想通り)無反応だったのでこちらでお願いします

□は全角スペース

<p>あいうえお</p>
<p>□□うえ□</p>
<p>あい□□お</p>

例えば「え」が縦3つがそろうようにしたいです。
HTMLに直に書くとブラウザで固定幅フォントとしてそろいます

ところがphpで

echo "<p>あいうえお</p>\n";
echo "<p>□□うえ□</p>\n";
echo "<p>あい□□お</p>\n";

とするとバラバラ(段々)になってしまいます
どうしたらいいでしょうか?

10nobodyさん2018/10/21(日) 22:29:13.33ID:???
どう変わるのかわからん
もしかしてcssあたってないとかそんなことなのか

11nobodyさん2018/10/21(日) 23:20:28.54ID:???
ブラウザの開発者ツールでも見て
同じフォントが表示に使用されているか、その他差がないか、確認すればいい

12nobodyさん2018/10/22(月) 06:20:09.56ID:???
そのプログラムで「え」が縦3つ揃うはずがない

えええ・・・

14nobodyさん2018/10/22(月) 17:34:23.70ID:???
昔改行するしないでデザインが変わったことがあったが
\nを\r\nにしたらうまくいったりして
仮にうまくいっても色々問題ありそうだけど

15nobodyさん2018/10/22(月) 19:27:24.10ID:???
>>12
なんで?それならなんで直書きだとそろうの?

16nobodyさん2018/10/22(月) 20:46:39.68ID:???
9です
みなさんすみません、くだらない勘違いで>>10の通りcssで
font-family: "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
が当たってるか否かでした
当たれば直に書いてもphpからでも同じ位置に同じソースなのだから
当然同じ結果になりました
どうもお騒がせしました

17nobodyさん2018/10/23(火) 05:59:25.81ID:???
>>15
9のコードよく見ろよ
「え」が縦3つ揃うはずがないだろw

18nobodyさん2018/10/23(火) 06:45:26.95ID:???
え?
えはしっかり3つ並ぶじゃん
えっと、もしかしてお前には見えてないの?

19nobodyさん2018/10/23(火) 13:24:51.05ID:???
>>18
ウザいだけの行為をユーモアだと勘違いしてるバカ

20nobodyさん2018/10/23(火) 17:13:59.23ID:???
はいはい、くだらんからもうやめてね

21nobodyさん2018/10/23(火) 20:21:23.11ID:???
>>17
くだらないからもう来ないでください

22nobodyさん2018/10/23(火) 20:25:18.19ID:???
質問したいことがあるのですが
って書こうとしたけどその前にphp.netを探したら問題解決しました

23nobodyさん2018/10/23(火) 21:09:00.66ID:???
PHPと言うかHTMLでは?

24nobodyさん2018/10/23(火) 21:16:15.55ID:???
php.netの内容は本当にすごいから一回読破して欲しい
phpで何が出来るかよく分かる

25nobodyさん2018/10/23(火) 21:45:24.02ID:???
phpでハゲを治せますか

26nobodyさん2018/10/25(木) 21:52:36.23ID:???
php内で出力をgzencodeして吐き出すのと
Apacheのmod_deflate.cにお任せするのとどちらが負荷が少ないですか?

27nobodyさん2018/10/25(木) 22:01:05.82ID:???
>>26
現実的に差がセロなので、わざわざ試す暇人がいない
自分で試した方が早い
その書き込みする労力でできるんじゃないか?

28nobodyさん2018/10/26(金) 02:07:06.39ID:???
試したアホがここにいる…phpでやったほうが30%ほど早くなった…

29nobodyさん2018/10/26(金) 05:14:57.71ID:???
圧縮率とか色々あるしな

30nobodyさん2018/10/26(金) 15:04:46.93ID:???
phpでidentityで書き出してアパッチが回収して圧縮とか二度手間

31nobodyさん2018/10/28(日) 17:23:34.22ID:???
filter_input関数の 「 FILTER_FLAG_STRIP_LOW 」 を使うと0〜31までの制御文字が除去?されますが、
nl2br関数で改行を反映させたい場合、preg_replace関数の正規表現で対応するしかないですか !?
良い方法を教えてください(´・ω・`)

32312018/10/28(日) 17:30:57.19ID:???
解決しました。
〆ます。

33nobodyさん2018/11/04(日) 18:11:46.30ID:???
最近のChromeやFirefoxって、完全にアプリを落とすまでCookie削除が効かないですよね?
自分がヘボいのかもですが、
ちゃんとCookieを削除してログオフされる方法はありますか?

PHPとJavaScriptで二重に削除してるけど管理ツールで見ると残っています。

ログアウト後に、そのままサイト内URLを叩くとアクサスできるのがカッコ悪いです。

34nobodyさん2018/11/04(日) 18:23:22.49ID:???
きちんと削除できてないか、pluginとかが悪さしてるのではなく?

35nobodyさん2018/11/04(日) 18:31:39.48ID:???
いえ、アドオンとかは特に入れてなくてすっぴんです。
削除はPHPではdestroyや過去のCookie食わせて削除、
JavaScriptはjQueryでremoveしてます。

サブドメインまできっちり指定しろということなのでしょうか?
アホなのでわかりません。
http://yukihane.hatenablog.com/entry/201511/chrome-cookie-bug

36nobodyさん2018/11/04(日) 18:34:20.57ID:???
ちなみに、つい最近までFirefoxはちゃんと消えるブラウザでした。
アップデートしたらChromeと同じ挙動に変わっていました。

37nobodyさん2018/11/04(日) 18:40:56.81ID:???
アホと初心者ではどっちがマシなんだろうか

38nobodyさん2018/11/04(日) 18:57:31.02ID:???
初心者に決まっとるやろー

39nobodyさん2018/11/04(日) 19:00:05.81ID:???
http://php.net/manual/ja/function.session-destroy.php
ここの説明をきちんと読んで

40nobodyさん2018/11/04(日) 19:18:16.27ID:???
$_SESSION = array();
setcookie(session_name(), '', time() - 42000);
session_destroy();

この3行を順番に書けば消えるということで良いでしょうか?

session_unset() ;
も書いてあったと思います。
常駐するブラウザを落とさないと消えないですよw

41nobodyさん2018/11/04(日) 19:28:10.49ID:???
どこからコピペしてきたコードなんだろう

42nobodyさん2018/11/04(日) 19:36:10.33ID:???
へ?
とりあえず極力シンプルな10行ぐらいのコードで試してみます。
ありがとうございました。

43nobodyさん2018/11/04(日) 19:44:03.30ID:???
屁すんな

44nobodyさん2018/11/04(日) 21:09:22.11ID:???
ここのスレの猛者に説明などは不要かと思うので割愛します。
リファクタリング時の凡ミスでした。
CookieもHTTPのやりとりをキャプチャして解決しました。
アホなのにブラウザのせいにして本当に申し訳ございませんでした。

45nobodyさん2018/11/04(日) 21:11:28.64ID:???
潔いな

46nobodyさん2018/11/05(月) 17:54:33.36ID:???
CSRFがわからない(´・ω・`)
type="hidden"でトークンを隠してもウェブマスターツールで見られそうだし、さっぱり爽やかだ。

47nobodyさん2018/11/05(月) 17:57:34.69ID:???
対策系なんていたちごっこなんだからCSRFの手法自体を勉強してきなさい
じゃないと確実な対策を書くことはできない

48nobodyさん2018/11/05(月) 17:59:44.23ID:???
セキュリティはほんと地獄
そうそうにあきらめてフレームワークに丸投げしてるわ

49nobodyさん2018/11/05(月) 18:04:52.29ID:???
>ウェブマスターツールで見られそうだし
理解できてない証拠

50nobodyさん2018/11/05(月) 18:49:28.55ID:???
ある適度の規模になったらフレーワークだよね。
ネイティブな実装レベルを知らない人でも、
爺さんよりいいサイト作れる。

51nobodyさん2018/11/05(月) 19:13:34.32ID:???
無知が使うなら規模関係ない
小規模だろうと大規模だろうと
必要なセキュリティ対策が何かすらわからないのだから

52nobodyさん2018/11/05(月) 19:26:47.87ID:???
ちょっとおかしいな

何らかのフレームワークを使っているからといって
CSRFを含めてセキュリティ対策が万全と保証されるわけではない
あくまでフレームワークを使って作った人の責任

フレームワークを使って作ったものにセキュリティホールがないかどうか確認できるスキルが必要になる
そんなスキルがあるなら自前でセキュリティ対策を書ける
するとフレームワークを使う理由は特化による労力削減しかなくなる

53nobodyさん2018/11/05(月) 19:32:51.95ID:???
そういう事をしなくて済むのが最近のフレームワークじゃん。
もちろん知識は必要だけど下のレイヤーは知らなくていい感じ。

54nobodyさん2018/11/05(月) 19:38:33.82ID:???
どんな無知カスが使ってもセキュリティリスクゼロなんてフレームワークあるのですか

55nobodyさん2018/11/05(月) 20:05:03.98ID:???
グーグルやフェイスブックでさえお漏らしするからムリ

56nobodyさん2018/11/05(月) 20:15:32.20ID:???
オレオレ実装が良いとでも?

57nobodyさん2018/11/05(月) 20:37:15.38ID:???
オレオレ実フレームワークこそ正義と思ってたけどあっというまにセキュリティホールだらけになって辛かった

58nobodyさん2018/11/05(月) 20:51:42.34ID:???
無知じゃ無理ってことだ

機能面もセキュリティ面も同じだが問題が出ないことはツールは保証してくれない
結局自分で仕組み上問題がないことを確認して
結局自分で実際上問題が出ないことをテストしなきゃいけない

59nobodyさん2018/11/05(月) 20:58:12.02ID:???
フレームワークでも何でもいいがツールが責任を持ってくれないのだから
自分(というか自社)が有事の責任を回避したいなら
最大限自衛できるスキルを持たないといけない
知らなくても済む、とはならない

高セキュリティを謳うフレームワーク使ってました、だけで裁判で過失ゼロ認定される自信があるなら良いけど

60nobodyさん2018/11/05(月) 21:29:28.91ID:???
俺実装のまずさはPHPの関数が非推奨になったりするせいもある

61nobodyさん2018/11/05(月) 21:43:40.10ID:???
逃げられないってやつだなあ
どうあっても回避できないもんは回避できない

62nobodyさん2018/11/05(月) 22:06:10.77ID:???
でもPHPもかなり良くなってきたし、NodeとかのJavaScriptよりはマシだよなあ。
あっちもPromiseとかで美しくなってきてはいるが…

63nobodyさん2018/11/05(月) 22:43:12.06ID:???
CSRFのワンタイムトークンって本当に有用なの?
今は同一生成元ポリシーがあるから余計なことしてなければ問題はないが
サーバでOriginの設定に問題があったりブラウザで余計なことしてる状態として
JavaScriptでGETで1回トークン含んだソースとってきて
2回めで実際のPOST先にトークン含めて送ると受理してしまわない?

64nobodyさん2018/11/05(月) 22:47:42.60ID:???
CSRF君はいったい何に取り付かれてるんだい

65nobodyさん2018/11/06(火) 14:34:04.21ID:???
それ俺じゃないっす(´・ω・`)

66nobodyさん2018/11/06(火) 17:00:12.77ID:???
(´・ω・`) お前眉毛太いな

67nobodyさん2018/11/06(火) 17:02:18.16ID:???
眉毛剃ってみたっす(・ω・)

68nobodyさん2018/11/06(火) 17:19:27.49ID:???
(*´ω`*)

69nobodyさん2018/11/06(火) 22:03:45.87ID:???
抜けよ

70nobodyさん2018/11/07(水) 04:03:55.80ID:???
>>63
CSRF対策にワンタイム性は必要無いだろ

71nobodyさん2018/11/07(水) 05:30:48.93ID:???
>>70
ワンタイム性は必要ないというと
固定トークンとか有効とか言っちゃうのか?

72nobodyさん2018/11/07(水) 08:08:01.56ID:???
はまちちゃん

73nobodyさん2018/11/07(水) 09:29:40.58ID:???
トークンなんてフレームワーク丸投げで何も意識せずに勝手に裏でやってくれりゃいいよ。

74nobodyさん2018/11/07(水) 09:51:54.44ID:???
セキュリティのこと勉強しないやつは会話に入ってこなくていいのよ

75nobodyさん2018/11/07(水) 11:36:02.43ID:???
仲間外れ・いじめ・村八分ニダ

76nobodyさん2018/11/07(水) 13:09:55.63ID:???
質問
アンチウィルスソフトが重いからって止めてしまっている人のこと考えたら
ウィルス対策が100%万全でないメールクライアントなんてゴミクズだよね?

回答
止めんなよバカ

77nobodyさん2018/11/07(水) 13:26:00.16ID:???
>>76
韓国語か?日本語で頼む

78nobodyさん2018/11/07(水) 13:41:10.92ID:???
>>77
アンニョンハシムニダ

79nobodyさん2018/11/07(水) 17:24:03.62ID:TDXp/c7l
以下のページにアクセスした時、
バックグラウンドで処理を走らせようと思います
http://example.com/foo.php

foo.phpに通常のユーザーもアクセスできてしまうのですが、
404などを返したほうが良いのでしょうか?
また、その際はhtaccessを使用すれば良いでしょうか
それともphpのheaderから404を返すのでしょうか?

以下は実際の流れになります
小売業のHPで、wordpressを使っています
ルーチンとしてチラシが発生したときにページを作成し、pdfファイルと画像ファイルを添付して投稿
定期的に、一年以上前に投稿された記事とファイルを削除する必要があるので、その部分を自動化したいと思っているのです

80nobodyさん2018/11/07(水) 18:37:30.79ID:???
cron使え
どうしてもcron使えない状況でwp使ってるならwpに載せて管理者ログイン時以外利用不能にしろ
最悪でも単独の認証でもつけとけ

81nobodyさん2018/11/07(水) 18:42:45.93ID:???
自分で管理しきれるならサードパーティのpluginを利用する手もあるが自分で管理しきれる場合だけ

82nobodyさん2018/11/07(水) 18:43:43.18ID:???
>>80
cronも併用していますが、シェルスクリプトを書ききれませんでした
(現在はshの中身はfoo.phpにアクセスするという物になっています)

>wpに載せて管理者ログイン時以外利用不能
>単独の認証
どちらかで実装します
ありがとうございました

83nobodyさん2018/11/07(水) 18:44:23.54ID:TDXp/c7l
>>81
サードパーティーのプラグインはいつの間にかエラーだらけになりそうなので、出来る限り回避しています

84nobodyさん2018/11/07(水) 18:48:01.07ID:???
いやcron使えるなら使えよ
perl-cgiなんかと同様に*.phpの頭に
#!/path/to/php
って書いてchown/chmodしとくだけで済むから
sh書く必要ないし公開ディレクトリに置かずに済むだろう

85nobodyさん2018/11/07(水) 18:51:59.27ID:TDXp/c7l
>>84
そんな方法があったんですか、ありがとうございます
なんとか頑張ってみます

86nobodyさん2018/11/07(水) 19:56:48.71ID:???
どこに書いたら良いのかわからずでここに。。。場違いだったらゴメンなさい。

Aサーバ = php.ini編集NG .htaccess内にphp_value記述OK
Bサーバ = php.ini編集OK .htaccess内にphp_value記述NG

の場合、A、Bサーバで共用できる.htaccessの書き方ってありますか?
要は、%{HTTP_HOST}などでサーバを判定して、Aサーバの場合のみ、php_valueの記述行がイキになるような書き方が出来ないものかと。

87nobodyさん2018/11/07(水) 20:24:07.53ID:???
ini_set() は?

88nobodyさん2018/11/07(水) 20:34:15.14ID:2BCYtEAy
>>86

そういうことはできないと思う。
CGI(FastCGI)として動作している時の問題だと思うが、
そういうサーバではphp.iniか.htaccessに書かなくては意味のない設定を書く環境があるのでは?
それがないチープなサーバなら諦めるしかないかと。

89nobodyさん2018/11/07(水) 21:15:47.71ID:???
ってか、どんなサーバーなんだよw
統一するかVPSにしとけ。

90nobodyさん2018/11/07(水) 21:44:47.91ID:???
>>79
通常のユーザがアクセスできないように
ログイン認証設ければいいだけの話では

91nobodyさん2018/11/08(木) 07:21:55.61ID:???
Bサーバーは、レンタルサーバーだろ
ネットオウルやヘテムル↓がそうみたいじゃん

https://secure.netowl.jp/bbs/detail.cgi?td=74
https://heteml.jp/support/faq/392.html

Aサーバーも、どっかのレンタルサーバーだろ

92nobodyさん2018/11/08(木) 07:34:32.84ID:???
レンタルなのはわかってるだろw
無駄に苦労するより統一しろよーって話だよ。

93nobodyさん2018/11/08(木) 08:32:36.36ID:???
>>90
cronで認証どうするの?

94nobodyさん2018/11/08(木) 09:34:19.63ID:???
Basic認証レベルならwgetでいいし、
フォーム認証でもライブラリ使ってセッション食わればいいんじゃない?

95nobodyさん2018/11/08(木) 11:00:39.11ID:???
cronというかいわゆるwebcronをやろうとしてるんだろう?
>>94のとおりだよ

96nobodyさん2018/11/08(木) 13:04:42.66ID:???
webcronでsh書くわけねえだろアホ

97nobodyさん2018/11/08(木) 13:46:29.26ID:???
sh書けないっていってるじゃん

98nobodyさん2018/11/08(木) 14:05:38.65ID:???
>>97
>(現在はshの中身はfoo.phpにアクセスするという物になっています)

99nobodyさん2018/11/08(木) 14:58:03.89ID:???
>cronも併用していますが、シェルスクリプトを書ききれませんでした
書けないっていってんじゃん

curlかwgetいれてるだけだろうが
そんなのシェルスクリプトでもなんでもない

100nobodyさん2018/11/08(木) 15:05:30.73ID:???
>>97「(技術的には)sh書けないって言ってるじゃん」
>>98「(サーバーの仕様では)sh書けてるだろボケ」

101nobodyさん2018/11/08(木) 15:10:40.83ID:???
みんな年末のカンファレンスに参加するの?
Web業界独特の気持ち悪いイベントに

102nobodyさん2018/11/08(木) 15:54:08.89ID:???
トークンで思い出した
bin2hex(random_bytes(32));ってのを見かけたんだけど これが今の主流なんかね

103nobodyさん2018/11/08(木) 16:24:18.69ID:???
>>101
しない
>Web業界独特の気持ち悪いイベント
これは同意だけど、まぁ最先端の金持ちオタクの集まりだから仕方ない

104nobodyさん2018/11/08(木) 16:49:38.40ID:???
金持ちしか来ないのか?

105nobodyさん2018/11/08(木) 18:50:39.07ID:???

106nobodyさん2018/11/08(木) 19:09:50.52ID:???
webcronって
定期バッチ動かしたいけどサーバ仕様上cronが使えないから外部からHTTPで叩きましょう
ってなもんでしょ
他になんか意義あんの

107nobodyさん2018/11/09(金) 00:56:46.30ID:???
0円 = \0 === null (ASCIIのnull 文字列)

思いついただけ

108nobodyさん2018/11/09(金) 01:01:19.70ID:???
>>107
チラ裏らしい書き込みで和んだ

109nobodyさん2018/11/09(金) 19:15:29.67ID:oLv4Ne/G
WordPressのサイトで、
function.phpの中で複数のphpファイルをインクルードするのと、
---------
include_once 'file1.php' ;
include_once 'file2.php' ;
include_once 'file3.php' ;

function.phpの中に全部のコードをベタで書くのとでは、WEBサイトの表示速度に差が出ますか?

110nobodyさん2018/11/09(金) 19:58:28.88ID:???
出るけど3つ程度なら誤差

111nobodyさん2018/11/09(金) 20:07:53.45ID:oLv4Ne/G
>>110
ありがとうございました。

112nobodyさん2018/11/09(金) 23:38:12.38ID:???
レイプ魔 山口敬之?レイプ自民?

113nobodyさん2018/11/10(土) 09:38:50.53ID:2ggaVCM0
C言語の
#if 条件
#else
#endif
みたいなのはPHPにはありませんか?

114nobodyさん2018/11/10(土) 11:42:16.50ID:???
>>113
無い
そういうのはプリプロセッサと言ってコンパイル前の処理なんだけど、
phpはコンパイル自体が無いので存在しない

115nobodyさん2018/11/10(土) 14:04:09.30ID:???
#ifで何したいの?

116nobodyさん2018/11/10(土) 15:02:41.74ID:???
自分で対象の*.phpを前処理するプログラムをphpでもcでもなんでもいいから書いて
前処理した後にphpに引数とともに引き渡せば、あるいは

117nobodyさん2018/11/10(土) 15:16:21.03ID:???
いや、あれ?>>116取り消し

解決とか考えなくて良いんだからcのプリプロセッサとか考えるまでもなく
普通にifで条件括って、分岐でincludeすればいいんでないかな

到達し得ないincludeは、たとえパースエラーになる代物が指定されてても無視されるわけで

118nobodyさん2018/11/10(土) 15:36:14.03ID:???
>>117
それで同じ事を実現できるけど、
それじゃめんどくさい事をしたいんだと思う
実は#difineもしたいとかそういうことじゃないかな。知らんけど

119nobodyさん2018/11/10(土) 21:18:12.95ID:???
>>115
例えばf()の改良版を作りたいので取り敢えず
古い方のf()は無効化しておきたい場合です。

#if(0)
function f(){  ・・・  }
#endif

function f(){  ・・・  } //改良版
f(); //実行

120nobodyさん2018/11/10(土) 21:58:43.46ID:???
>>119
普通のifでいいじゃん
えっ と思うかもしれないが、できてしまう

if( ENABLE_EVOLVE ){
function f(){ echo 1; }
}else{
function f(){ echo 2; }
}

f();

121nobodyさん2018/11/10(土) 22:00:25.48ID:2ggaVCM0
>>120
そんな事出来るんですか!!

122nobodyさん2018/11/10(土) 22:01:30.78ID:???
この辺はなんかこうjsに近いんだ

とでも思って納得しておくしかないけど、まあできる

123nobodyさん2018/11/10(土) 22:07:26.59ID:???
if等の中に放り込むと、function定義前に呼び出したりはできなくなる

たとえば>>120の1行目にf();を突っ込むとfatalが出る

そこんとこにさえ気をつければ大丈夫なはず
逆に言えばそういう柔軟処理をやってくれてるということ

124nobodyさん2018/11/10(土) 22:32:14.58ID:???
(…質問者よ…聞こえますか…関数を分けるのではなく引数で分けるのです…聞いていますか…)

125nobodyさん2018/11/10(土) 22:38:24.13ID:???
(……(∩゚Д゚)アーアーキコエナ-イ……キコエナーイ……)

126nobodyさん2018/11/11(日) 19:15:24.97ID:???
>>124
良く分かりません。
解説お願いします。

127nobodyさん2018/11/12(月) 08:30:32.48ID:???
俺はC知らんしよくわからんが
コメントアウトしとけばいいって話じゃないんか

128nobodyさん2018/11/12(月) 09:12:48.45ID:???
>>126
>>120の書き方だと関数をまとめられ無くなって収集つかなくなるよ
小ネタとして覚えておく程度ならいいけど、実用的な場面はない
そもそも関数の定義は別ファイルにまとめてincludeする方が分かりやすい
あんまり変な書き方すると自分がめんどくさいだけ

という事を数年前に俺も教わった

129nobodyさん2018/11/12(月) 09:16:04.44ID:???
こんな感じが後々楽と思う

function f(flg){
if(flg){
return 1;
} else {
return 2;
}
};

echo f(flg);

130nobodyさん2018/11/12(月) 09:40:34.68ID:???
引数で分岐させちゃったらその関数使ってる箇所全部修正しなきゃじゃん
後々ってなんだ

131nobodyさん2018/11/12(月) 17:56:26.48ID:???
引数の数や型で動作を分けるとかもあるけど結局呼び出し側の修正必須
どっちかっていうとコードそのものを残さなくていいならcvsに任せるほうが

>>127
/* */形式のコメントは入れ子にできないから
内部で/* */使ってると面倒

132nobodyさん2018/11/12(月) 18:25:21.05ID:???
どうやってもキモい(設計が悪い)けど例えば

<?php

function f1() { echo 1; }
function f2() { echo 2; }

const ENABLE_EVOLVE = true;

if (ENABLE_EVOLVE) {
$f = f1;
} else {
$f = f2;
}

$f();

133nobodyさん2018/11/12(月) 18:50:28.11ID:???
確かにキモイ

134nobodyさん2018/11/12(月) 18:53:47.45ID:???
変数から呼び出す辺りキモいし怖い

135nobodyさん2018/11/12(月) 19:10:30.12ID:???
なんでこれどうやってもキモイんだろう?
と思ったらクラスにしてないから変なのか

136nobodyさん2018/11/12(月) 19:32:21.82ID:???
classにしても同じだろう
ifかませての別定義やincludeがやりづらいからなおさらキモい

137nobodyさん2018/11/12(月) 19:36:32.00ID:???
だったらどうやればいいんだよ(怒)

138nobodyさん2018/11/12(月) 19:37:02.28ID:???
>>132
よこからだけど
$$f();
これってなんて言うんだっけ?ドルマーク2つ付ける奴

139nobodyさん2018/11/12(月) 19:51:45.44ID:???
>>138
可変変数

140nobodyさん2018/11/12(月) 19:54:12.47ID:???
${$f}
{$f}()
まあ原理は一緒

>>137
意図と状況による
が既存関数の改良で、呼び出し側の変更が必要になるのはナンセンス過ぎる

141nobodyさん2018/11/12(月) 19:59:52.96ID:???
>>134
上のコードはキモいけど変数に関数突っ込んで呼ぶこと自体は別にキモくない
いやPHPではあんまりやらんけども

142nobodyさん2018/11/12(月) 20:08:27.79ID:???
>>141
jsとかで変数に関数を放り込むのは
そもそも変数に関数を放り込める仕様、名前空間の欠如や使いづらさ、グローバル領域汚染の防止、というような理由がある
それらを解消するメリットが「どこで内容かわるかわからん変数を経由する」というデメリットを超過するから使う意味がある

phpで変数に関数そのものを放り込めるかといえばNO
$f = f1; $f(); なんてwarningとともに f1 が 'f1' に変換されて、文字列変数経由で呼び出されてる
なので>>132みたいにやるのは合理性に欠ける

というふうに俺は考える

143nobodyさん2018/11/12(月) 20:10:23.48ID:???
もとからobjectの一要素となってたみたいな前提条件があれば話は別だけどな

144nobodyさん2018/11/12(月) 20:16:47.89ID:???
jsはグローバルなDOMがあるからこその無名即時関数
でなければせいぜいアクセス解析だ
実際使いづらい部分もあるが、DOMの有無が一番大きい
PHPとは前提が違いすぎる

145nobodyさん2018/11/12(月) 20:24:57.47ID:???
勘違いしてて改良だとimproveのところevolve(進化)って書いちゃったんだけど突込みが入らなかったことにやや驚愕

146nobodyさん2018/11/12(月) 20:44:43.57ID:???
>>145
>>129だけどなんか違うけど、そんな文化があるのかなー?無知なまま突っ込んでマウント取られると嫌だから
ワイ文化(flgに変更)にそっと変えてごまかしたれっと思って突っ込めなかったチキンで御座います

とりあえず見たことない単語だから検索した人は結構いると思う

147nobodyさん2018/11/13(火) 16:29:29.90ID:???
mail関数の$messageの説明に「各行の長さは 70 文字を超えては いけません。」って昔から記載してあったっけ(´・ω・`)

148nobodyさん2018/11/13(火) 16:46:34.11ID:???
>>147
眉太よ
http://web.archive.org/web/20080506012510/http://www.php.net:80/manual/ja/function.mail.php
少なくとも10年前に記載があるのだ

149nobodyさん2018/11/13(火) 17:16:15.14ID:???
>>148
親切に教えてくださりありがとうございます(・ω・)
勉強不足でした。

150nobodyさん2018/11/13(火) 21:30:38.85ID:???
潔く丁寧

151nobodyさん2018/11/13(火) 22:45:29.66ID:???
ステータスコード404がうまく返りません

http_response_code( 404 );
でステータスコード404が返らず、
header("HTTP/1.0 404 Not Found");
だと404が返る場合、どういう可能性が考えられますか?

phpのバージョンは5.4で、
function_exists()で調べた所、以下2つの関数は存在していました
http_response_code()、header()

関数の前には何も出力されていない状態です
原因がわからず、結構ハマってしまいました
お助け下さい

152nobodyさん2018/11/13(火) 22:57:21.75ID:???
headerじゃダメでhttp_response_codeならOKってどういう場合なの

153nobodyさん2018/11/14(水) 03:45:56.02ID:???
その関数は使ったことないけどリファレンス見るかぎり
404出すには2回呼び出す必要があるようだが2回やってる?

https://secure.php.net/manual/ja/function.http-response-code.php
> var_dump(http_response_code(404));
> var_dump(http_response_code());

最初404設定するときに返ってくるのは設定した404ではなく
設定前の(おそらく)200であるようだけど

1541532018/11/14(水) 03:51:27.48ID:???
ああ、すまない
>>153は忘れてくれ

ユーザノートみてたらhttp_response_code(404)だけで返るみたいだから
実際にやってみたらちゃんと404返ってきたわ

155nobodyさん2018/11/15(木) 14:50:25.43ID:wt/2jR9O
PECL死んでる?

156nobodyさん2018/11/18(日) 05:29:39.81ID:???
ピルクルが飲みたい

157nobodyさん2018/11/18(日) 06:41:42.48ID:???
マミーにしとけ

158nobodyさん2018/11/25(日) 14:03:36.59ID:VzRv4Ee2
include_once('file.php');
は読み込めるのに、
include_once('./file.php');
だと
failed to open stream: No such file or directory
と出るのだけれどなぜよ?

159nobodyさん2018/11/25(日) 14:20:36.66ID:???
>>158
phpのパスは変なんだよ
include dirname(__FILE__).filnename;
にした方が良い

http://bashalog.c-brains.jp/14/07/11-100000.php
http://web-codery.com/php/135

160nobodyさん2018/11/25(日) 14:21:00.13ID:???
変って書くと変だな
「変な仕様」なんだ

161nobodyさん2018/11/25(日) 14:31:10.54ID:VzRv4Ee2
>>159
サンキュウ。
読めたよ。
も一つ教えてくれよ。
Windowsで
include "C:\path1\path2\file.php"
みたいに絶対パス指定して読み込む事は
出来ないの?

162nobodyさん2018/11/25(日) 14:56:42.30ID:???
エスケープ(\)意識しろ
""なら\\にしろ

163nobodyさん2018/11/25(日) 14:58:04.04ID:???
ま 別に\じゃなくても/でいいんだが

164nobodyさん2018/11/25(日) 16:21:19.98ID:???
>>161
できる
realpath()を使えば絶対パスの取得が出来るので、それを利用すればok
https://webkaru.net/php/function-realpath/

ちなみに絶対パスはサーバーによって変わるので、
どういったものになるかは不定だ

あと>>159だけど、
dirname(__FILE__)単独よりも、reaalpathと併用するのが最も良かった事を思い出した
https://ja.stackoverflow.com/questions/37252
まぁrealpathなしでバグるなんて相当変な場合じゃないとないけどね

165nobodyさん2018/11/25(日) 21:03:05.10ID:VzRv4Ee2
>>164
ありがとう。
ところでPHPファイルって
<?PHP で始まって
・・・
?> で閉じる場合と、閉じない場合が
あるようなのだが、閉じなくてもいいの?

166nobodyさん2018/11/25(日) 21:17:37.69ID:???
>>1
> PHP未導入の方や、手取り足取りが必要な初心者の方はム板のくだスレへどうぞ。
> https://mevius.5ch.net/tech/ (【PHP】で板内を検索)

>>165 続けるなら↑で質問すると良いよ

ライブラリなんかの純粋なPHPのみのコードなら閉じタグはいらないしむしろ省略を推奨されている
HTML(view)にPHPのコードを埋め込むような書き方をする時はHTMLとの境界を示すために必要
http://php.net/manual/ja/language.basic-syntax.phpmode.php
初心者は閉じておくと間違いはない

167nobodyさん2018/11/25(日) 21:27:24.38ID:???

168nobodyさん2018/11/26(月) 00:48:41.26ID:???
phpって拡張子がださいから変えようと思うのだけど
おまえら何にしてる?
aspxとかdoとかかっこよくね?

169nobodyさん2018/11/26(月) 00:54:35.10ID:???
>>168
その感覚は俺も学生の時にあったわ、懐かしい
やるべきことは、拡張子を表示しなくていいように設計する事だ
例)
https://news.yahoo.co.jp/pickup/6304566
まぁまともなFWなら大抵こうなる

170nobodyさん2018/11/26(月) 04:47:09.93ID:???
Laravelのソースコード読んでルーティングの仕組み調べようとしたけど
最近のソースの読み方がわからないぜ・・・

171nobodyさん2018/11/26(月) 08:50:25.72ID:???
それ時間の無駄じゃね
全部index.phpに飛ばして後はURLを規則通り振り分けるだけだ

172nobodyさん2018/11/26(月) 14:53:27.98ID:???
>>171
それってPHPだけで出来るの?
サーバがPHPで書かれてるというなら理解出来るんだけど
なんか最小限のコードないかしら

173nobodyさん2018/11/26(月) 19:17:24.81ID:???
>>172
//.htaccess
RewriteEngine On
RewriteRule . index.php

//inddex.php
<?php
echo 'URL:'.$_SERVER["REQUEST_URI"];

要はこの.$_SERVER["REQUEST_URI"]を元にルーティングしていくんだけど、
パターンが死ぬほど多くてくっそめんどくさい
homeですら
example.com
example.com/
example.com/index.php
とある

深入りはやめたほうが良いよ

174nobodyさん2018/11/26(月) 23:12:49.53ID:???
>>173
ありがとう
やっぱりPHP単体でやってるというわけではないんだね
想定内でちょっと安心

175nobodyさん2018/11/28(水) 16:38:00.31ID:???
https://github.com/PHPMailer/PHPMailer
のページについて質問です

Installation & loadingの箇所で、
requireの前にuseがありますが、なぜでしょうか?

感覚的にはrequireしてからuseするので、requireを先に書きたくなります
これは単純に好みでしょうか

以下の部分です
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'path/to/PHPMailer/src/Exception.php';
require 'path/to/PHPMailer/src/PHPMailer.php';
require 'path/to/PHPMailer/src/SMTP.php';

176nobodyさん2018/11/29(木) 02:59:11.49ID:???
自分も感覚的にはそうする
でもそもそもrequireをべた書きするのはだいぶ前のスタイルなのでは

177nobodyさん2018/11/29(木) 08:27:41.73ID:ZUtiu1g9
なぜcomposerのautoloaderを使わないのか

178nobodyさん2018/11/29(木) 08:56:34.25ID:???
>>176
ありがとうございます
compoer知りませんでした、勉強してみます

179nobodyさん2018/11/30(金) 21:25:07.79ID:hTiVyYjp
LambdaでPHPが動くので、とりあえずWordPressをいれてみた
https://wp-kyoto.net/try-to-run-wordpress-in-aws-lambda/

AWS LambdaでもついにPHP対応ktkr

180nobodyさん2018/12/01(土) 11:09:00.18ID:???
従量課金制のって使ったことないけど
費用どんなもんなの?
CPU実行時間とかよくわからん・・・
同じコンテンツでも言語によって差が出るってことなのかな?
その場合PHPを選択するというのは理にかなっているのだろうか

181nobodyさん2018/12/01(土) 11:18:28.68ID:???
>>180
CPU・ストレージが超強力なので、大量の画像データのリサイズや機械学習が主な運用方法
機械学習で使うと費用を超抑えられる

場合によってはエンコードや圧縮・解凍に使うのも良いかも知れない
間違ってもチャット掲示板なんて作っちゃだめだゾ

182nobodyさん2018/12/01(土) 11:21:03.86ID:???
>>181
チャット掲示板がダメな理由は?

183nobodyさん2018/12/01(土) 11:23:05.40ID:???
>>182
アクセスする度にカネがかかる。従量課金にする意味がない
通常のサーバーで良い

184nobodyさん2018/12/01(土) 11:32:15.67ID:???
>>183
アクセスする度に金かかるのはチャットだけじゃなくない?
転送量もあるからでかいファイル送るのと小さな文字データを回数多く送るのは変わらん気するけど

185nobodyさん2018/12/01(土) 11:37:17.65ID:X2PG/ijA
記事に出てるPHPレイヤーじゃmysql使えないからWordpressは無理だな

簡単にスケール出来るのもLambdaのメリットだが
大量に同時実行するとmysqlの接続数が増え過ぎて
DBの動作に支障が出る

なのでスケーリングが必要な場合
接続が比較的軽いDynamoDBが使われたりするが
色々とクセがあるようだ

186nobodyさん2018/12/01(土) 11:40:08.22ID:X2PG/ijA
Lambdaは無料枠あるけど
実際サービスを作ろうとしたら
Amazon S3とかAPI GatewayとかCDNとかも必要
アプリの内容によってはDBも
あとデータ転送も課金される

187nobodyさん2018/12/01(土) 11:41:38.18ID:???
>>184
別にチャットでもHPでもAWSでやりたいなら好きにしていいぞ
金を払って初めて分かる事もあると思う

188nobodyさん2018/12/01(土) 11:42:15.75ID:???
ラムダはリレーショナルDBは無理ってAmazonセミナーで言ってた

189nobodyさん2018/12/01(土) 11:43:43.05ID:???
>>187
一般的なサイトならレンサバでいいと思うのはそうなんだが

190nobodyさん2018/12/01(土) 11:51:45.01ID:X2PG/ijA
単に安いのが欲しいってだけならVPSにすれば?

AWSにもVPSっぽいのがある
安い代わりにサーバーを停止しても課金されるのと
AWSの他サービスとの連携はしづらい

最近のアップデートでMySQLも使えるように

[アップデート] Lightsail で月額 $15 からマネージド・データベースが使えるようになりました!
https://dev.classmethod.jp/cloud/aws/new-managed-databases-for-amazon-lightsail/

191nobodyさん2018/12/01(土) 11:53:58.44ID:X2PG/ijA
あとはHerokuみたいなPaaSとか?

https://blog.back4app.com/2018/03/13/heroku-alternatives/

192nobodyさん2018/12/01(土) 12:14:01.16ID:???
>>189
でかいデータを任せる理由は、
>CPU・ストレージが超強力
という点
廉価版のスパコンと思えば良いかも知れない

もちろん自前で環境用意できるならわざわざサービスに頼る理由はないぞ

193nobodyさん2018/12/01(土) 17:13:49.86ID:???
なるほど
どちらかというと低速でも普段自分のPCでやってることを肩代わりさせるようなものなのね
縁はなさそうだな

194nobodyさん2018/12/01(土) 17:47:26.66ID:???
クラウドってめんどくさいよな

195nobodyさん2018/12/01(土) 19:38:43.31ID:???
自分もよくわからないが、話の流れ見ててふと疑問に思ったのは、
なぜ>>179のリンク先の人は、そんなものにWPなんていれようとしたのだろう。
もちろん公開ブログツールとしてではなく、
自分用のタスク管理みたいのにも使えるとは思うけどさあ。

196nobodyさん2018/12/02(日) 22:57:56.51ID:???
YouTubeの動画形式変換してダウンロードさせるようなサイトの
バックエンドに使ってるんだろう
ああいうサービスはめっちゃ金かかりそうだな

197nobodyさん2018/12/02(日) 23:11:19.93ID:???
>>195
サイト名ェ・・・「wordpress-kyoto」
どっちかというとwordpress使いがAWSに手を出したって事じゃないかな

198nobodyさん2018/12/07(金) 13:45:07.00ID:7Hmy10+R
質問させてください

「XXXXX7TgeVPTUvhSST1rkJfXHdTEdQ0+UKDXXXXXS1o40pXtyJTy3APdvWylT2m」

このような文字列を、先頭の文字「XXXXX」で
このように分けたい

「XXXXX7TgeVPTUvhSST1rkJfXHdTEdQ0+UKD」
「XXXXXS1o40pXtyJTy3APdvWylT2m」

よろしくお願いします。

199nobodyさん2018/12/07(金) 13:51:57.12ID:???

200nobodyさん2018/12/07(金) 13:54:09.46ID:7Hmy10+R
>>199
ありがとうございます

201nobodyさん2018/12/08(土) 06:30:25.61ID:YHWvXigp
納品後に勝手に他所で使われないように、客のサーバ上でしか動かないようにしたいんだけど
何か良い方法あるかな
IPアドレスか何かをチェックする処理を、ソース見てもわからないように入れれればいいと思うんだけど

202nobodyさん2018/12/08(土) 08:56:22.11ID:???
ソース渡す時点で対策しても無意味だな ソース読める人がみたらすぐバレる
ソース読まない前提ならipチェックでもいれればいいかと

203nobodyさん2018/12/08(土) 09:18:47.19ID:???
>>201
if(ip==xxx){
}
if(ip_address_dummy!==xxx){
}
address_ip==xxx ? foo() : bar();
if(sitename==yyy){
}
if(sitename_false!==yyy){
}

とず〜〜〜っと書いて
「これなら1から書いたほうが早い!」
と思わせることができればコピーされないという手法を思いついた
なお自分が死ぬ模様

204nobodyさん2018/12/08(土) 09:59:44.16ID:???
exeファイルならクラッキングの難易度をいくらでも上げることができるけど
ソースファイル渡しちゃったらどうぞ改造してくださいと言っているようなもの

205nobodyさん2018/12/08(土) 10:03:14.07ID:???
>>203
ipとかで抽出かけちゃえばどの行で対策してるかすぐバレちゃうよ

206nobodyさん2018/12/08(土) 10:07:20.62ID:???
一見動くようにして、たま〜〜〜に動かなくなるとかでいいんじゃない
/* ここ見てるって事はコピーされたんですねwwwちーっすww */
とか煽っとけばok

207nobodyさん2018/12/08(土) 10:47:17.06ID:???
相手がどのレベルかによるだろう
ソース丸見えのインタプリタの場合リバースエンジニアリングもくそもないしな
何したって無駄であるしライセンス条項に明記して
違反した時の脅しをかけるしかない

208nobodyさん2018/12/08(土) 11:01:36.34ID:???
そういやサーバーのipってメンテとかで変わる事あるの?
xサーバーとかsakuraとか

209nobodyさん2018/12/08(土) 16:09:22.03ID:???
サーバがどういう運用してるかによるだろ
元々動的IPでDDNSで運用してるならともかく
固定IPプランで固定IP前提で運用してるのに(DNS更新は手動)
それが勝手に変わっちまったらサーバを利用してる事業者は
外部からアクセス不能(IP直打ちで物理的には可能だが)になり
事実上のサービス停止を余儀なくされ信頼が低下する
そんなサーバを提供した事業者は例え免責事項に責任取らないと書いてたとしても
過失が大きすぎて可能な限り最大の損害賠償を請求できるレベル

210nobodyさん2018/12/08(土) 18:52:06.36ID:???
php.iniって覗かれたりしちゃう?

211nobodyさん2018/12/08(土) 19:01:47.07ID:???
アクセス可能なら覗かれるに決まってんだろ
アクセス不可能なら覗かれないに決まってんだろ

212nobodyさん2018/12/08(土) 19:34:15.49ID:???
別に覗かれても困るようなもんじゃないけどな
レン鯖業社とかphpinfo普通に公開してるし

213nobodyさん2018/12/09(日) 01:01:59.60ID:???
今PHPの試験受けるより来年2月からの方がいいよね

214nobodyさん2018/12/09(日) 08:01:58.64ID:???
なんで?

215nobodyさん2018/12/09(日) 19:49:26.42ID:???
初心者以前のくっだらねえ質問続いてるようですが
スレチじゃないっすか〜

216nobodyさん2018/12/12(水) 14:48:13.60ID:???
FWでORMとか使わないでPDO使うのってアリ?
Laravelに興味があるんだけど遅いことで悪名高いEloquentは使いたくない
PDOはクエリ直接書かんといけないからそれはそれで別の問題が出るけど
Laravelみたいな低速FWを少しでも高速化しようとなると仕方ないよね

217nobodyさん2018/12/12(水) 15:34:30.40ID:94oj2OcS

218nobodyさん2018/12/12(水) 15:51:01.89ID:???
普通にpdoでいいじゃん

219nobodyさん2018/12/12(水) 19:49:30.47ID:N0nFFUma
>>218
なんで?

220nobodyさん2018/12/12(水) 20:58:56.90ID:???
>>219
pdo自体が完成されたクラスだから
あえてORMなんか使うよりクエリーの中身が見えるからパッと見わかりやすいし

あとデバッグもしやすい

221nobodyさん2018/12/12(水) 21:27:04.36ID:IoX0KMO/
>>220
SymfonyでDoctrineバンドルを使ってれば
ログにクエリーを記録したり、
プロファイラー(ブラウザで動くデバッグ用のツール)でクエリーを表示出来るので
そこまで不便は感じない

それどころかプロファイラーでは
explainを見たり、フォーマットされたクエリーやパラメータを埋め込んだ状態のクエリーも表示可能

DBALはORMより抽象度が低い
異なるプラットフォームのDBの抽象化とスキーマ管理のみに特化している

222nobodyさん2018/12/12(水) 21:39:09.97ID:IoX0KMO/
RedBeanPHPは使ったことないが
アノテーションやXMLを使ったスキーマ定義が不要とか(開発中に自動的に作られるから)
DoctrineみたいにQuery Builderがなくて
普通のSQLっぽく書けるのが特徴のようだ

5分で分かる公式のクイックツアー
https://redbeanphp.com/index.php?p=/quick_tour

223nobodyさん2018/12/12(水) 21:41:03.01ID:???
PDOが抽象化するのはDBへの接続だけでSQLの抽象化はほぼ行わない
その部分が必要になったら結局自分で書くかライブラリ使うかになる

というか計測もせずに速度のことを考えたってどうにもならん
とりあえずEloquentなりDoctrineなり使って組んでみて後でボトルネックになるようなら必要な部分を最適化する

224nobodyさん2018/12/12(水) 22:34:42.03ID:???
Eloquentはクソだよ
これは間違いない

225nobodyさん2018/12/13(木) 06:03:17.65ID:???
最近はSQLベタがきする人を馬鹿にするような風潮があって嫌だ

226nobodyさん2018/12/13(木) 09:47:14.05ID:VCdsiLIn
Doctrine DBALやORMでもQuery Builder使わずに
直接DQL/SQLを書くのは出来る

227nobodyさん2018/12/13(木) 10:29:27.47ID:???
ハードコーディングしないに越したことはないが
SQL書けない人がコーディング出来る怖さも感じる
高級プログラマーはアセンブラやれってレベルの老害話に聞こえるかもしれん

228nobodyさん2018/12/13(木) 16:43:25.97ID:???
なるべく書くな
だがいつでも書けるようにしておけ

229nobodyさん2018/12/13(木) 16:46:01.79ID:???
いや、SQLくらい自分で書けよw
html並に簡単すぎるんだが

230nobodyさん2018/12/13(木) 16:52:15.26ID:???
並べてるのがHTMLな辺り分かって書いてるんだろうなぁと思う

231nobodyさん2018/12/13(木) 18:41:45.09ID:???
HTML並って動くだけってならそれでもいいけど
高負荷な実用に耐えるようなSQLかけるようになるには
結構なスキルと知識が必要

232nobodyさん2018/12/13(木) 19:21:03.02ID:???
いやそんなにスキルいらんわ

件数数えるのクッソ重い!!!!

件数記録するテーブルつくって終了

JOINクッソ重い!!!!

JOINしないでJOIN元テーブルに列追加してそっちに必要なデータ入れて終了

とにかくデータ多すぎて重い!!!!

パーティションつくって終了

233nobodyさん2018/12/13(木) 21:08:54.14ID:???
最初の部分だけで、うちのチーム首ですわ

234nobodyさん2018/12/13(木) 21:09:54.79ID:???
x スキルいらない
o スキルない>>232はこれしかできない

235nobodyさん2018/12/13(木) 21:30:30.64ID:???
>>232のような素人は下手にSQL書くよりORMやクエリビルダに任せたほうがいいだろうな
ハイパフォーマンスが必要な場合は高度なスキルを有するDBエンジニアにまかせればいいわけだし
スタートアップやITドカタには必要

236nobodyさん2018/12/13(木) 22:05:39.43ID:???
>>234
んなわけねーだろバーカ笑笑

>>235
だからクエリービルダ使ったらどう速くなるんだよ?
答えろ

237nobodyさん2018/12/13(木) 22:10:32.97ID:???
>>236
君がいるとプロダクトが汚れる
はよ廃業しろ世の中のためだ

238nobodyさん2018/12/13(木) 22:15:11.21ID:???
>>237
いいから答えろ
クエリービルダ使ったらどう速くなるんだよ!!!!!?

239nobodyさん2018/12/14(金) 01:01:45.46ID:???
おー効いてる効いてる

240nobodyさん2018/12/14(金) 03:57:49.35ID:???
え、今ってSQLをViewに登録とかしないの?
最近NoSQLばっか使っててSQLDB知らんけど

241nobodyさん2018/12/14(金) 06:07:23.61ID:???
Viewなんかつかわないよ
移植性が悪くなるし保守が大変

242nobodyさん2018/12/14(金) 08:14:50.21ID:qkLTyTav
>>238
答えても良いが一つ条件がある。

243nobodyさん2018/12/14(金) 14:18:37.21ID:9zv35n9C
最強はSpefificationパターンだろ
QueryBuilderでは検索条件の再利用が難しい

Happyr Doctrine Specification
https://github.com/Happyr/Doctrine-Specification

This library gives you a new way for writing queries. Using the Specification pattern you will get small Specification classes that are highly reusable.

244nobodyさん2018/12/14(金) 18:00:59.86ID:???

245nobodyさん2018/12/14(金) 19:21:02.40ID:???
生のSQL使うかどうかってのが問題の本質であってだな

246nobodyさん2018/12/14(金) 19:59:16.61ID:???
>>216
結論としてはQueryBuilderを使うと速くなるってことだ

247nobodyさん2018/12/14(金) 22:08:28.62ID:???
Cでインラインアセンブラ使うってのと通ずるとこがある

248nobodyさん2018/12/15(土) 07:33:58.47ID:???
ORMやクエリビルダは、メリットあるのか??
ふつうにSQL書けばいいじゃん。

249nobodyさん2018/12/15(土) 12:40:55.77ID:MUkpv+u/
取得したデータに型があった方がIDEでの補完が出来て分かりやすい
phpstanでエラーの検出も簡単になる
OneToManyの関係にある物も扱いやすい

QueryBuilderは関数と関数の間で受け渡しして
検索条件を追加していけるメリットがある
文字列連結で同じ事やるなんて間違えやすくて面倒

250nobodyさん2018/12/15(土) 15:39:38.09ID:???
素のSQL書くよりQueryBuilder使ったほうが動作が速いらしい

251nobodyさん2018/12/15(土) 19:57:04.87ID:???
ORMにしてもQBにしても所詮ラッパーだし
ステップ数が増えるのに早くなるわけないわ

252nobodyさん2018/12/15(土) 21:48:53.58ID:???
ストアド最速説

253nobodyさん2018/12/15(土) 23:10:43.51ID:Ek2bk/Rc
速度が重要ならそもそもPHP使わない

254nobodyさん2018/12/16(日) 05:28:51.97ID:???
毎度思うがそれをいったら話が進まねえだろ
PHPが遅いなら遅いなりに速度を求めるってのは別に悪い話題じゃない

255nobodyさん2018/12/16(日) 06:38:38.41ID:???
駐留型でない再起動不要 インタプリタ
この辺の条件じゃPHPは一歩頭抜けてるのでは?

256nobodyさん2018/12/16(日) 07:11:55.71ID:???
駐留型って言葉はじめて聞いたけど、IT用語?

てかCGI実行でなければPHP.iniの設定変更したらWebサーバの再起動は必要よ。

257nobodyさん2018/12/16(日) 09:33:59.07ID:rJwJQrl3
よほど計算負荷の高いアプリケーションでない限り
ボトルネックはPHPではなくデータベースになる

258nobodyさん2018/12/16(日) 16:05:37.45ID:???
>>256
いやそういうことでなくファイル差し替えで
プログラムをメモリにロードするタイプって意味でいったんだが
駐留じゃなくて常駐って言いたかったん

259nobodyさん2018/12/16(日) 22:57:01.94ID:SBxDr219

260nobodyさん2018/12/17(月) 08:05:06.87ID:ZwIXn0qD
>>259
ウイルス注意

261nobodyさん2018/12/20(木) 05:52:04.27ID:???
PDOにてプリペアドステートメントを使用してmysqlにUPDATEを実行したいと思っています
値0x0001をバイナリで設定したいのですが、プレースホルダを使用して実行すると意図しない結果になってしまいます
どのようにすればよいでしょうか?

//成功パターン
$stmt = $pdo->prepare('UPDATE users SET progress = 0x0001 WHERE id = ?');
$stmt->execute([$_SESSION['id']]);
設定される値:0x0001

//失敗パターン@
$stmt = $pdo->prepare('UPDATE users SET progress = ? WHERE id = ?');
$stmt->execute([0x0001,$_SESSION['id']]);
設定される値:0x3100

//失敗パターンA
$stmt = $pdo->prepare('UPDATE users SET progress = ? WHERE id = ?');
$stmt->execute(['0x0001',$_SESSION['id']]);
設定される値:0x3078

//失敗パターンB
$stmt = $pdo->prepare('UPDATE users SET progress = ? WHERE id = ?');
$stmt->bindValue(1,0x0001, PDO::PARAM_INT);
$stmt->bindValue(2,$_SESSION['id'], PDO::PARAM_INT);
$stmt->execute();
設定される値:0x3137

//失敗パターンC
$stmt = $pdo->prepare('UPDATE users SET progress = ? WHERE id = ?');
$stmt->bindValue(1,'0x0001', PDO::PARAM_STR);
$stmt->bindValue(2,$_SESSION['id'], PDO::PARAM_INT);
$stmt->execute();
設定される値:0x3078

262nobodyさん2018/12/20(木) 11:55:13.98ID:???
phpは複数書き方がある時、どれがベストかを教えて欲しい
気づかない内に非推奨、廃止とか悲しい

263nobodyさん2018/12/20(木) 11:59:40.24ID:???
PDO::PARAM_バイナリ みたいなやつってある?

264nobodyさん2018/12/20(木) 12:01:03.31ID:???
>>261
配列を直接指定せず変数に代入してからだとうまくいくのでは?

265nobodyさん2018/12/20(木) 12:24:55.99ID:???
bit(16)にして"b'".base_converter('0x0001', 16, 2)."'"とか?

266nobodyさん2018/12/20(木) 12:43:18.59ID:???
$sql = "insert into test (
progress
) values (
:progress
)";
$stmt->bindValue(':progress', 0x0001, \PDO::PARAM_INT);

これでできた

やり方じゃなくて確認の仕方を間違えてたりしない?

267nobodyさん2018/12/20(木) 12:45:09.69ID:???
目的は16進数表示(0x〜〜〜)のデータをint型でDBに格納したいで合ってる?

268nobodyさん2018/12/20(木) 12:53:11.37ID:???
配列
$arrayは$array[0]と同等とのこと
ならば
$array="foo";

$array="foo";
$array[]="bar";
とするとエラーになりました

これは、
$arrayは$array[0]と同等に”見做してあげてる”という感じなのでしょうか?

269nobodyさん2018/12/20(木) 12:55:00.98ID:???
コードかくとなぜかブロックされてかけねーから日本語でかくけど
失敗パターン3で
プログレス=キャスト(? as ヴァーバイナリ(n))
とかDB側でキャストすればいいんじゃね?
試してないけど

270nobodyさん2018/12/20(木) 12:57:27.03ID:???
>$arrayは$array[0]と同等とのこと
え?

271nobodyさん2018/12/20(木) 13:10:24.58ID:???
>>268
$array=“foo”の意味
“foo”という文字列を変数arrayに代入 ←配列の変数じゃない

$array[]=“bar”の意味
“bar”という文字列を配列変数arrayに代入

エラーになるのはarrayが配列の変数じゃないのに
“bar”を突っ込もうとするから

272nobodyさん2018/12/20(木) 13:40:05.69ID:???
>>270
c言語にそういうのが合った気がする
ただ、単純に見づらすぎるので書い
たことないけど

2732682018/12/20(木) 13:40:53.49ID:???
すいません、なにか勘違いしてたようです
特に意味もないようなので、
array[0]
と書くようにします

274nobodyさん2018/12/20(木) 13:42:02.40ID:???
>>272
Cにだってそんなものはない

array[i] と i[array] が同じ(どっちも *(array * i) の糖衣構文)というのはあるけど

2752742018/12/20(木) 13:42:40.58ID:???
*(array + i)

276nobodyさん2018/12/20(木) 13:44:59.08ID:???
c言語だったら参照の話じゃない?
&arrayと&array[0]は一緒 (だった気がする)

2772742018/12/20(木) 13:49:54.18ID:???
array と &array[0] だろ

278nobodyさん2018/12/20(木) 13:51:01.61ID:???
>>276
あぁ、多分それです
お騒がせしました、申し訳ありません

2792612018/12/21(金) 03:03:56.77ID:???
ありがとうございます
教えていただいた方法を色々試してはみたのですがやはりどうもうまくいかず、
DB側の型をINTにして対応することで想定通りの動作にできました
実はもう一点悩んでいるところがありまして、
jQueryのAjaxからPOSTでPHPを呼び出すと、呼び出し元からのPHPセッションが切れてしまいます
そもそもこういう使い方はできないのか、何か間違っているのか教えていただきたいです。
js部分が若干スレチ気味かもしれませんが、よろしくお願いします。

//update.js
function Update(){
$.ajax({
type: "POST",
url: "update_progress.php",
data: {
progress: 0x0001
},
}
}

//update_progress.php
<?php
session_start();
(中略)
$stmt = $pdo->prepare('UPDATE users SET progress = :progress WHERE id = :id');
$stmt->bindValue(':progress',$_POST['progress'], PDO::PARAM_INT);
$stmt->bindValue(':id', $_SESSION['ID'], PDO::PARAM_STR); //$_SESSIONがNULLになる
$stmt->execute();
(後略)
?>

280nobodyさん2018/12/21(金) 03:11:36.78ID:???
ajax使ったことないから分からんのだけど
クッキーは送られてるの?

281nobodyさん2018/12/21(金) 03:17:12.49ID:???
クロスドメイン?
このページをみると色々設定してるみたいだけど

282nobodyさん2018/12/21(金) 03:17:28.78ID:???

283nobodyさん2018/12/21(金) 03:22:20.31ID:???
ぱっと思いつく要因は二つ
・クッキーが送られてない
・セッションが切り替わってる

2842612018/12/21(金) 03:25:34.57ID:???
ありがとうございます!
クッキーかもしれません
送り方を調べています

285nobodyさん2018/12/21(金) 03:34:50.41ID:???
>>261では$_SESSION['id']と小文字になってるが

286nobodyさん2018/12/21(金) 03:39:12.85ID:???
>>284
送り方調べるより先に原因調べたほうがいいよ
・ブラウザにクッキー(PHPSESSID)が保存されているか
・ブラウザからpost先(update_progress.php)にクッキーが送られているか

2872612018/12/21(金) 03:39:27.91ID:???
>>285
すみません、こちらにコードを起こすときに打ち間違えたみたいです
大文字になってるのが本来は正しいです

288nobodyさん2018/12/21(金) 03:40:28.62ID:???
var_dump($_SESSION)もやってみてくれ

289nobodyさん2018/12/21(金) 03:48:36.02ID:???
>>286の調べ方は
クロームだったら
・アドレスバー左のアイコンをクリック → クッキーを見る
・右クリック→検証→Networkタブをひらく→update.js実行→通信が発生してグラフに線が表示されるのでクリック→リクエスト名をクリック→中段のcookieタブを開く

2902612018/12/21(金) 04:06:15.21ID:???
>>289
正常にセッション情報が取得できるページで使用しているクッキーに保存されているPHPSESSIDと、
update_progress.phpに送信されているRequest CookiesのPHPSESSIDは同じになっていることを確認しました
なんでだ...

2912612018/12/21(金) 04:10:20.78ID:???
>>288
NULLになります

292nobodyさん2018/12/21(金) 04:12:16.39ID:???
var_dump($_COOKIE)は表示される?

2932612018/12/21(金) 04:15:29.63ID:???
>>292
直前のページで使用しているクッキーのPHPSESSIDと同じものが表示されます

294nobodyさん2018/12/21(金) 04:15:50.93ID:???
print_r(ini_get_all('session'));
でもみてみれば

295nobodyさん2018/12/21(金) 04:21:31.43ID:???
>>293
PHPSESSIDを仮に”abc”だとして
1)
直前のページでセッションデータ保存する
→ var_dump($_SESSION) セッションデータ表示される
 var_dump($_COOKIE) “abc”が表示される

2)
update.js実行
→ var_dump($_SESSION) セッションデータ表示されない
 var_dump($_COOKIE) “abc”が表示される



↑今こんな状況?

2962612018/12/21(金) 04:26:13.15ID:???
すみません分割になります
[session.auto_start] => Array
[global_value] => 0
[local_value] => 0
[access] => 2
[session.cache_expire] => Array
[global_value] => 180
[local_value] => 180
[access] => 7
[session.cache_limiter] => Array
[global_value] => nocache
[local_value] => nocache
[access] => 7
[session.cookie_domain] => Array
[global_value] =>
[local_value] =>
[access] => 7
[session.cookie_httponly] => Array
[global_value] => 0
[local_value] => 0
[access] => 7
[session.cookie_lifetime] => Array
[global_value] => 0
[local_value] => 0
[access] => 7
[session.cookie_path] => Array
[global_value] => /
[local_value] => /
[access] => 7

2972612018/12/21(金) 04:27:13.91ID:???
[session.cookie_secure] => Array
[global_value] => 0
[local_value] => 0
[access] => 7
[session.gc_divisor] => Array
[global_value] => 100
[local_value] => 100
[access] => 7
[session.gc_maxlifetime] => Array
[global_value] => 1440
[local_value] => 1440
[access] => 7
[session.gc_probability] => Array
[global_value] => 1
[local_value] => 1
[access] => 7
[session.lazy_write] => Array
[global_value] => 1
[local_value] => 1
[access] => 7
[session.name] => Array
[global_value] => PHPSESSID
[local_value] => PHPSESSID
[access] => 7
[session.referer_check] => Array
[global_value] =>
[local_value] =>
[access] => 7

2982612018/12/21(金) 04:27:45.28ID:???
[session.save_handler] => Array
[global_value] => files
[local_value] => files
[access] => 7
[session.save_path] => Array
[global_value] => /tmp
[local_value] => /tmp
[access] => 7
[session.serialize_handler] => Array
[global_value] => php
[local_value] => php
[access] => 7
[session.sid_bits_per_character] => Array
[global_value] => 4
[local_value] => 4
[access] => 7
[session.sid_length] => Array
[global_value] => 32
[local_value] => 32
[access] => 7
[session.upload_progress.cleanup] => Array
[global_value] => 1
[local_value] => 1
[access] => 2
[session.upload_progress.enabled] => Array
[global_value] => 1
[local_value] => 1
[access] => 2

2992612018/12/21(金) 04:28:16.58ID:???
[session.upload_progress.freq] => Array
[global_value] => 1%
[local_value] => 1%
[access] => 2
[session.upload_progress.min_freq] => Array
[global_value] => 1
[local_value] => 1
[access] => 2
[session.upload_progress.name] => Array
[global_value] => PHP_SESSION_UPLOAD_PROGRESS
[local_value] => PHP_SESSION_UPLOAD_PROGRESS
[access] => 2
[session.upload_progress.prefix] => Array
[global_value] => upload_progress_
[local_value] => upload_progress_
[access] => 2
[session.use_cookies] => Array
[global_value] => 1
[local_value] => 1
[access] => 7
[session.use_only_cookies] => Array
[global_value] => 1
[local_value] => 1
[access] => 7
[session.use_strict_mode] => Array
[global_value] => 0
[local_value] => 0
[access] => 7
[session.use_trans_sid] => Array
[global_value] => 1
[local_value] => 1
[access] => 7

3002612018/12/21(金) 04:36:31.82ID:???
>>295
そういう感じです

301nobodyさん2018/12/21(金) 04:41:12.15ID:???
session.save_pathのところにセッションファイルが保存されていると思うけど
>>295の(1)から(2)に遷移するタイミングでファイルが上書きされてる?

302nobodyさん2018/12/21(金) 04:52:36.19ID:???
セッション保存した後にunset関数呼んじゃってるとか?

303nobodyさん2018/12/21(金) 04:55:41.08ID:???
session_destroy();とか

3042612018/12/21(金) 05:06:27.36ID:???
>>301
上書きされていました
たぶんこいつが原因ですよね
なんでや...

>>302-303
ログアウト処理では行っているところもありますが、それ以外だと無い感じです

305nobodyさん2018/12/21(金) 05:27:24.07ID:???
そのテストはどの環境でやってる?本番?ローカル?
本番なら共用サーバー?

306nobodyさん2018/12/21(金) 05:29:50.05ID:???
プログラムみないと分かんね
データ競合が起きてるとかなんかな
http://www.objective-php.net/blog/detail/20110813

307nobodyさん2018/12/21(金) 05:49:45.29ID:???
初心者受け付けるようになったんだな

308nobodyさん2018/12/21(金) 05:50:53.53ID:???
session_destroyかsession_regenerate_id実行してる位しか思いつかない

309nobodyさん2018/12/21(金) 06:14:55.33ID:???
共用サーバなら/home/user/public_htmlがドキュメントルートだとして
/tmpじゃなくて/home/user/tmpとかに変更するとうまくいく場合がある

3102612018/12/21(金) 08:49:53.60ID:???
再現可能な最小構成のソースを準備しました、logout.phpからスタートします
大変お手数ですが、よろしくお願い致します
https://drive.google.com/open?id=14NKxyY6A4xILqQTami30tYpN1O1q2zYN

311nobodyさん2018/12/21(金) 12:36:57.35ID:???
>>310
再現しないよ
cookie無効になってるだけでは?

312nobodyさん2018/12/21(金) 15:35:25.25ID:???
update.jsは正常に動作してる?
jquery読み込めてなくてajaxが動作してなくてupdate.php叩けてないとかじゃない?

313nobodyさん2018/12/21(金) 16:08:22.02ID:???
>>312
叩けてなければセッションが取れないとか言わないでしょう
たふん…
どっちにしろPHP関係ない可能性大だね

314nobodyさん2018/12/21(金) 16:16:10.51ID:???
謎だね

ブラウザから直打ちでupdate.php叩いたらうまくいくの?

315nobodyさん2018/12/21(金) 16:27:26.02ID:???
ajaxに関係なくセッションデータが利用できない環境なのか
ajaxが絡むとセッションデータが利用できなくなる環境なのか

316nobodyさん2018/12/21(金) 16:54:20.19ID:???
ちなみに俺も(>>311とは別人)ローカル環境で試してみたけど上手くいった

317nobodyさん2018/12/21(金) 17:08:23.81ID:???
とりあえず書いておくがGCPのGAEで確認したがIE11のセキュリティゾーンがインターネットだとcookieがガードされてセッションは取得出来なかった
セキュリティゾーンを信頼済みに変えるとOK
スレチなのでこの辺で

318nobodyさん2018/12/21(金) 17:17:49.35ID:???
>>293のクッキーとれてるってのは勘違いか

319nobodyさん2018/12/21(金) 18:03:37.79ID:???
参考になった

320nobodyさん2018/12/21(金) 18:27:15.80ID:???
PHP側で確認するならタイムアウト時間とかセッション管理をDBにしてみるとかか?

3212612018/12/21(金) 19:22:20.27ID:???
遅くなりすみません
>>312
再配布いいんだっけと思って、jquery同梱していませんでした
update.js自体は動作しました

>>314
update.phpのPOST要素を無くして、login.php開いてる状態からupdate.php直打ちしてもうまくいきませんでした

>>316
$_SESSIONが拾えなくてSQL失敗しててもjs側では成功と表示されるのですが、
そういう意味ではなく・・・?

使ってる環境がバリュードメインのコアサーバー+Chromeなんですが、そのせいなのかな・・・

322nobodyさん2018/12/21(金) 19:34:06.11ID:???
>>321
セッション拾える

>update.phpのPOST要素を無くして、login.php開いてる状態からupdate.php直打ちしてもうまくいきませんでした
セッション拾えないって意味?

323nobodyさん2018/12/21(金) 19:36:23.88ID:???
login.phpでセッション保存できてもupdate.php直打ち実行で
セッション表示されないって話ならajax関係ないな

324nobodyさん2018/12/21(金) 20:00:36.19ID:???
別ブラウザ、別PC・スマホとか端末かえてみてもだめなら、
サーバ側に問題があるのでは?
ユーザ設定ファイルのphp.iniや.htaccess設置してたら削除してみたり、
cronの設定削除してみたり、
削除してだめならsave.path変更とか、phpのセッション周りの設定変えてみたり、
レンタルサーバだと問題の特定は難しいけど、
デフォルトでPHPセッションがおかしくなる環境が提供されてるとは考えにくい。

325nobodyさん2018/12/21(金) 22:12:21.57ID:???
迷惑みたいだから続きは別スレだな

【総合】 Webprog板質問雑談スレッド 2
http://medaka.5ch.net/test/read.cgi/php/1348670450/

3262612018/12/22(土) 05:16:09.12ID:???
お世話になっています
セッションが切れてしまう問題ですが、原因がわかり問題が解決いたしました
結果を言いますと、update.phpの先頭1行目に空白の改行があったことが原因でした
本番用のコードにもテスト用の最小構成コードにも空白行があり、そのため動作していなかったようです
色々手助けしていただき助かりました
ありがとうございました

327nobodyさん2018/12/22(土) 10:32:34.17ID:???
ど、どういうことだってばよ・・・

328nobodyさん2018/12/22(土) 11:13:14.04ID:???
解決してよかったけど、うーん、死ねってのが本音だぁ・・・

329nobodyさん2018/12/22(土) 11:32:07.48ID:???
「再現可能な」←再現しないコードをばら撒いて騒いでました
ペチパーはほんと民度が低いな

330nobodyさん2018/12/22(土) 11:37:42.03ID:???
ムカついてきた

331nobodyさん2018/12/22(土) 12:10:02.01ID:BOcCfZD5
きっとおまえんちの部屋の中も
お前のコードと同じように無秩序で
足の踏み場もない汚部屋なんだろうな

332nobodyさん2018/12/22(土) 12:49:22.09ID:???
IDE(いったい 誰が気にする ええじゃないか)を使えばジャンプできるから問題ない

333nobodyさん2018/12/22(土) 15:10:28.84ID:???
再現したコードをこのスレに上げたけど環境によって
再現しないって話だからしょうがないと思うけどな

まー次からはこのスレ使うといいよ
【PHP】下らねぇ質問はここに書き込みやがれ 10
http://mevius.5ch.net/test/read.cgi/tech/1543392526/

334nobodyさん2018/12/22(土) 17:27:15.78ID:???
よくしらんがバリュードメインのコアサーバーって
無料のやつで先頭に広告が挿入されるようなやつか?
そうだとしても先頭空行でPHPが機能しないとか謎すぎる

335nobodyさん2018/12/23(日) 04:06:14.30ID:???
ぐぐってみた
いくつか見つかった
https://php1st.com/608
https://warumono.at.webry.info/201104/article_5.html

336nobodyさん2018/12/23(日) 04:27:53.70ID:???
なるほど、headers already sentか。
確かにsession_start()はset-cookieしなきゃいけないからな。
しかし完全にオマ環だな。こりゃエスパーでも難しい。
WARNINGまで切っちゃってるのはレン鯖にありがちだが、
開発段階ならちゃんとerror_reportingだすようしないと。

337nobodyさん2018/12/23(日) 07:08:39.13ID:???
俺のローカル環境php.iniみたらoutput_buffering 4096になってたわ
>>261のレンサバはオフになってるのだろう

338nobodyさん2018/12/28(金) 04:50:53.86ID:???
気づけばプロ並みPHP読んでるけど難しというより面倒くさすぎて挫折しそう
会員登録システム作るだけでこんな面倒くさいのかよ

339nobodyさん2018/12/28(金) 05:00:28.65ID:???
会員登録システムなんて初歩の初歩だろ

340nobodyさん2018/12/28(金) 06:33:35.78ID:???
俺は今PHPで汎用型POSレジシステムを構築しようとしているぜ

341nobodyさん2018/12/28(金) 09:53:26.61ID:???
>会員登録システム
これはかなり鬼門だぞ。フレームワーク使ったほうが良い
セキュリティ方面はマジで沼だから初心者が手を出すべきじゃない

342nobodyさん2018/12/28(金) 09:57:03.41ID:???
初心者から勉強するならフレームワーク使うな
自分でセキュリティ含めて考えながらやるべき
その後フレームワークを使え

343nobodyさん2018/12/28(金) 10:00:14.04ID:???
期間決めて考えながらプロトタイプを作ってみる事はアリだと思うけど、
それをそのまま本番で使ってしまわないか心配だ

344nobodyさん2018/12/28(金) 11:43:04.19ID:???
ろくなフレームワークすらなかったPHP4の時代から独学で身につけたけど
今からPHPやるならフレームワークから入るってのもありなのかね
※今からやるなら他の言語をやれというのは無しでw

色々と便利なものはたくさんできたが
昔はウェブアプリといえばperlかPHPって感じで選択肢はあまりなかったけど
今から始める人は、選択肢がたくさんありすぎて訳わかんなくなったりするんだろうな

345nobodyさん2018/12/28(金) 12:07:47.18ID:???
最近は古い記事が検索にかかりにくくなっているから大分マシじゃないかな
昔は古い記事が普通に残っていたので本当に混乱してたわ

346nobodyさん2018/12/28(金) 13:30:53.38ID:???
でもPHP関係の質問を見てると
未だにDB処理にリペアドステートメント使ってないとか
酷いのになると mysql 関数をまだ使ってるとか
結構あるんだよなぁ

ああいうのは何を見てまねしてるんだろ

PHPならまずはこの本を読め!ってのが無いのも問題か
ひょっとしたら今は決定版みたいな本があるのかもしれないが
少なくとも俺はPHP関係の本を買った事が一度もないw

347nobodyさん2018/12/28(金) 13:55:39.98ID:???
mysql 関数はmysqli 関数に置き換えれば済む・・・そう思っていた時期が僕にもありました
古いwordpressは内部的にmysql関数使っててびびったゾ

348nobodyさん2018/12/28(金) 17:32:57.13ID:???
別にmysqliでもいい
無理してPDOにする必要はない
公開するわけじゃないし
結局PDOで書いても対応DBは1つなんだから

349nobodyさん2018/12/28(金) 17:46:57.69ID:???
PHP使ってるならSQLiteを使わないのはもったいないと思うけどね

個人の趣味程度のサイトならSQLiteの方がよほど手っ取り早い
もし負荷的にSQLiteで問題が出てきたらMySQLに変える
なんて事が、PDO使ってたら一瞬でできる

MySQLでしか使えない関数ももちろんあるけどさ
基本的なSQLはほぼ完全互換だし(当たり前)

350nobodyさん2018/12/28(金) 18:12:25.99ID:???
まずAUTOINCREMENTとAUTO_INCREMENTとSEQUENCEで既に違うのが面倒い
複数DB対応するならSQLを抽象化したい

351nobodyさん2018/12/28(金) 18:20:23.43ID:???
>>349
>基本的なSQLは「ほぼ」完全互換
ライトユーザーはwordpressだし、その辺がねぇ

352nobodyさん2018/12/28(金) 19:08:33.57ID:???
>>350が全部言ってるけど
結局PDOじゃ修正が必要になるわけで
将来的に別DBへのアップデート考えてんなら
最初からORM使っとけよって話だし

353nobodyさん2018/12/28(金) 19:40:08.69ID:???
>>351
WordPressはSQLite使えるでしょ
ひょっとしたら今のバージョンは使えなくなってるのかもしれないけど

つまり、実際にMySQL⇔SQLiteを柔軟に切り替えられるものはあるってこと


ライトユーザーこそWordPressなんか使っちゃ駄目だと思うんだよなぁ

2018年末頃頃だけでもプラグインの致命的な脆弱性のニュースを
何回も見て笑ってしまったw
そりゃ乗っ取られもするわ

354nobodyさん2018/12/28(金) 19:47:19.23ID:???
”個人の趣味程度”って話へドヤ顔でORMとか言われても…な
sqliteはたしかに楽だよな
ファイルがロックしちゃうのが弱点だが更新の少ないウェブアプリなら全然あり

355nobodyさん2018/12/28(金) 19:51:25.02ID:???
>353
どんなFWでも使えるし、プラグインなら更に楽に導入できる
問題はセキュリティ面やphp・SQL・apacheなどの低級なところで問題が見つかった場合
SQLliteはなんだかんだでマイナーなので、その辺を担保できる補償がない
てか、俺hは無理だ

356nobodyさん2018/12/28(金) 19:57:19.68ID:???
俺はスマホアプリもやるんでSQLiteがマイナーとか言われちゃうとモヤっとしちゃう

357nobodyさん2018/12/28(金) 20:49:33.78ID:???
wordpressならUPDATEよりSELECTのが圧倒的に多いし
ユーザー詰め込んでるレンサバならmysqlよりsqliteのが速度が出るまである

googleが表示速度を重視するってかなり前から言ってるのに
あんなくそ遅いcmsよく使うよなあ
どうせチューニングする知識もないだろうに

358nobodyさん2018/12/28(金) 21:07:41.43ID:???
さおりゃそうだよ、やっぱり使いやすいrCMSが最古ウさ

359nobodyさん2018/12/28(金) 21:29:21.67ID:???
CDNとか使わないなら、よっぽどの馬鹿が作らない限りセキュリティ面は大丈夫だろ
CDNとか下手にキャッシュさせるとそこから漏洩が始まるが。

360nobodyさん2018/12/28(金) 21:37:41.06ID:???
wordpressのプラグインにサイト乗っ取り余裕でしたレベルの脆弱性が立て続けに見つかってたのに
何言ってるんだこいつ

361nobodyさん2018/12/28(金) 21:38:45.98ID:???
プラグイン使うなよ

362nobodyさん2018/12/28(金) 21:42:11.33ID:???
>>360
よく分からんけど、便利なプラグイン導入>アップデートしたら乗っ取られたってこと?
それとも最初からプラグイン入れたら乗っ取られたってこと?
前者は分からんでもないけど、校舎はうくえないなあ

363nobodyさん2018/12/28(金) 21:52:11.16ID:???
このなかで一番美人なのって真ん中だよね?深キョンレベルだと思うのだが
ちなみに向かって右は目も鼻も整形してるって本人が公言してるけどそれ抜きにして誰が一番美人だと思う?
http://bigsta.net/media/1933567086757747003_3564907098

364nobodyさん2018/12/28(金) 22:39:20.78ID:???
IPAやJVNの発表を全然見てないのか知らないが
なんかPHPerがバカにされる理由がよく分かるな…
PHPも結構好きだから悲しくなってくるわ

365nobodyさん2018/12/29(土) 00:20:08.51ID:???
なんだかんだPHPって結局まるごとフロントエンドみたいな分野だからな

366nobodyさん2018/12/29(土) 07:08:41.88ID:???
>>354
それをいうなら個人の趣味程度でDBのスケールアップが必要か?
PDOなら書き換えが楽っていってるから
そうでもないだろうっていう話をしてるわけで

367nobodyさん2018/12/29(土) 07:33:00.62ID:???
>>363

368nobodyさん2018/12/29(土) 08:20:25.01ID:???
>>364
何でPHP使って自前で組むのに
WordPressの情報なんて見てると思うんだ?
↓これならプラグイン使うなよってだけの話じゃん

WordPress 用プラグイン「WP Job Manager」におけるアクセス制限不備の問題について(JVN#56787058)
https://www.ipa.go.jp/security/ciadr/vul/20170615-jvn.html

369nobodyさん2018/12/29(土) 13:14:46.61ID:???
WordPressなら静的書出しすれば無敵っしょ。
できないサイトもあるだろうけど。

370nobodyさん2018/12/29(土) 13:29:24.09ID:???
ペチパーじゃないから知らんけど
wordpressてphpとなんかかんけーあるの?

371nobodyさん2018/12/29(土) 13:32:57.58ID:???
ありまくり。PHPの3割ぐらいはWordpress案件じゃないの

372nobodyさん2018/12/29(土) 14:52:58.83ID:???
IPAやJVNって別にWordPressだけ・PHPだけの話を扱ってるわけじゃないから
日頃からアンテナ張ってる人なら
WordPressの話も自然と目にするし知ってて当たり前
1件2件どころの話じゃないんだから尚更

実際、今年一年ほとんどPHP案件無かった俺ですら知ってるよ

とマジレスしてみた

その昔IPAが
セキュアなウェブアプリを作りたいなら
PHPなんか使うな(意訳)と公で書いて
散々叩かれてたけど
まあそう書きたくなる気持ちは分かるなw

PHPが悪いんじゃなくて使う人間の質の問題

373nobodyさん2018/12/29(土) 15:07:06.44ID:???
暗にPHPはオワコン言っててわろた

374nobodyさん2018/12/29(土) 15:10:22.25ID:???
そういう専門的なところ見てなくても知ってるのが普通じゃね?
あちこちでニュースになってたんだから知らない方がおかしいわ

375nobodyさん2018/12/29(土) 15:12:26.72ID:???
ペチパーはPHPが世界の中心だとでも勘違いしてそうだな
マイナー言語界隈のマイナーな話題などニュースとすら言えない

376nobodyさん2018/12/29(土) 15:17:01.32ID:???
>>375
現実と合ってない情報で貶めようとするのやめよう
韓国人じゃないんだから

377nobodyさん2018/12/29(土) 15:51:37.79ID:???
世界の中心(笑)

あれだけしょっちゅうあちこちで取り上げられてたら嫌でも目にするから
さすがに知らないのはただの無知かと

今年1年だけでもWordPress絡みの脆弱性発表は10数件はあったんじゃないかってのが個人的な印象
PHP案件絡んでない俺ですらこれなんだから
実際はもっとあったんじゃない?

378nobodyさん2018/12/29(土) 16:03:50.33ID:???
知り合いの鯖缶やってるのがWPに親殺された勢いでWPを嫌ってるけど
WPでブログやってアフィで稼ぐみたいな安易な輩が増えまくってるんだってな

IQ80以下じゃないのか?ってレベルのやつやHTNLも全くできないレベルのじじいが
サポートに連絡しまくってくるんだと

379nobodyさん2018/12/29(土) 16:07:12.57ID:???
HTNLとかありそうでないワード出されると不安になる

380nobodyさん2018/12/29(土) 16:07:38.18ID:???
あとIQって全く役にたたない指標だぞ

381nobodyさん2018/12/29(土) 16:29:38.50ID:???
>>377
wordpressなんか使ってねーつーの

382nobodyさん2018/12/29(土) 16:54:25.46ID:???
全く話が噛み合ってなくて笑う

383nobodyさん2018/12/29(土) 16:54:26.32ID:???
>>378は10年ぐらい前からやってきたのか?

384nobodyさん2018/12/29(土) 17:02:16.63ID:???
>>380
知的障害の指標として今でも普通に使われてるけどね

IQ70未満が知的障害
80だと疑い高めの境目ってとこだからバカの例えとしてはいい線ついてる

385nobodyさん2018/12/29(土) 17:09:30.59ID:???
PHPのフレームワークって何がいいの?

386nobodyさん2018/12/29(土) 17:12:00.90ID:???
過去のcake資源引き継ぐとか理由ない限りLaravelでok

387nobodyさん2018/12/29(土) 17:17:53.66ID:???
>>383
ブログでアフィ自体は大昔からあったが
ここ最近流行?のパターンは、スキルの全くない人間が情報商材みたいなのに騙されて自分にもできると勘違いして手を出すんだとよ
だからサポートに来る問い合わせの内容が知的障害者レベルなんじゃね?

>>382
それな
プログラムやるやつにコミュ障が多いって言われる理由がよくわかるわ

388nobodyさん2018/12/29(土) 17:28:19.81ID:???
問い合わせのサポート対応できる人は尊敬する

俺なら
んなもん人から教わるようなもんじゃねぇんだから
ググればすぐ分かる事を他人に聞いてる時点でセンスねぇよ
やめちまえ
とか言いそうw

389nobodyさん2018/12/30(日) 05:21:13.34ID:???
https://www.techempower.com/benchmarks/
ここのベンチ見るとphpのswooleとやらが
4位になってるがどういうこっちゃね

390nobodyさん2018/12/30(日) 06:29:19.57ID:???
WordPressなんてブログツールとしか思ってないし
使わないから全く興味ないから、ニュースになっててもスルーだわ

391nobodyさん2018/12/30(日) 08:07:37.65ID:???
JVNの脆弱性レポートが偏ってるのは
ベンダーが掲載を許可するという大前提があるからだ
掲載されてないだけでサイボウズやWPが特別多いわけじゃない

392nobodyさん2018/12/30(日) 17:33:29.19ID:???
Linux難しいぉ
リポジトリみたら5.4だったからしょうがないからソースからいれたんだけど
#!/usr/local/bin/phpとかよく見るしそこに狙ったつもりが
/usr/local/bin/php/bin/phpにインストールされてるw

393nobodyさん2018/12/30(日) 21:13:21.85ID:???
狙ったところに直接インストールするんじゃなくて
バージョン管理しやすいところにインストールして
シンボリックリンクを張るんだよ
そうすればバージョンの切り替えも簡単だから

Apacheとかも一緒

394nobodyさん2018/12/30(日) 21:37:09.54ID:???
どうせCentOS7だろうから素直にremiのやつ入れとけ

395nobodyさん2018/12/31(月) 17:28:38.17ID:???
今日でPHP5.6≒PHP5.xのサポート終了か
7にしても5時代となんもコードは変わってないけど
そろそろナウでヤングでイケてるPHP7のコードかけるようにしないとな!

396nobodyさん2018/12/31(月) 17:58:40.74ID:???
そーなのけ
Hackとかどーなるん?

397nobodyさん2018/12/31(月) 23:19:44.76ID:???
HackはPHPとほぼ同じシンタックスってだけで中身はほぼ別物じゃないの?
2週間前に3.30が出たみたいだしGithubみても更新は活発に見えるし心配はいらんかと

398nobodyさん2019/01/01(火) 12:09:42.01ID:???
HackのPHP5サポートはすでに終了していて
PHP7の機能も積極的には取り入れないとのこと
PHPはこれからもHackの成果を取り入れるだろうから
HackからPHPへの移行は簡単だろうがその逆は大変になるだろう

399nobodyさん2019/01/01(火) 21:44:26.86ID:???
最近SQLiteでなんかバグあったような気がするけど、
phpinfo見てるとライブラリのバージョンが3.7.17でちょっと不安。
これバージョンアップ出来ない?

400nobodyさん2019/01/02(水) 01:42:08.44ID:???
RHEL7かCentOS7か?
そもそもPHPの sqlite3.so と pdo_sqlite.so は libsqlite3.so (sqliteパッケージ) に依存していてその中身を呼び出してる
更新するなら

1. PHPモジュール sqlite3.so と pdo_sqlite.so を新しいバージョンのsqliteを静的リンクするようにビルドして入れ替える
2. システムの libsqlite3.so を新しいバージョンのsqliteをビルドしたものに差し替える

のどちらかになるわけだがぶっちゃけRed Hatがバグレポ受けた上でwon't fixなら大概大きな問題はなかろうし費用対効果考えたらやってらんねー
それにsqliteはyumとかのコアパッケージが依存しているから切り戻せるかどうか怪しいバージョンアップは危険過ぎる

401nobodyさん2019/01/02(水) 07:21:54.60ID:???
>>400
とてもいい情報ありがとう。
ちょっと試してみる。

402nobodyさん2019/01/02(水) 19:15:49.36ID:???
その論理だと何一つ更新できなくなりそうだな

403nobodyさん2019/01/03(木) 17:26:28.07ID:???
セキュリティの勉強をしているのですが、CSRF対策で使用するトークンは、【入力】→【確認】→【実行】の場合、どのタイミングで生成するのが一般的ですか?
IPAの安全なウェブアプリケーションの作り方や、徳丸浩さんの参考書も見ているのですが、難しいです。
詳しい方、アドバイスをください。
よろしくお願いします。

404nobodyさん2019/01/03(木) 21:25:10.36ID:???
入力-確認を経ないでいきなり実行が出来る場合は実行時に
入力-確認-実行と遷移してきたのを保証(改ざん検出)する場合は全てに

405nobodyさん2019/01/03(木) 23:17:39.05ID:???
最近増えてるけどCSRFでパスワード再入力求めるとこってユーザビリティ悪すぎだよな

406nobodyさん2019/01/04(金) 06:59:08.91ID:???
ユーザビリティと堅牢性は、相反するのよ

407nobodyさん2019/01/04(金) 07:07:33.74ID:???
>>403
俺、詳しくないけど、【確認】だと思うよ

4084032019/01/04(金) 09:47:18.57ID:???
>>404さん
>>407さん
アドバイスありがとございます。
日付が変わってしまい、申し訳ありません。
いただいた助言を踏まえて学習を続けます。
ありがとうございました。

409nobodyさん2019/01/04(金) 11:27:21.49ID:???
基本は重要な操作をする前の画面でトークン入れて、次の重要な操作で突き合わせる。
例えば、情報を編集する カートに入れる 決済する といったもの。

一番重要な最後の決済だけでやればいいと、カートに入れるに対策をしなかった場合、
よそのサイトでカートに詰め込められたあと、
カートに入れてる品物を確認せず、気づかずに決済を実行してしまうケースも考えられる。
またここで気づいたとしても、覚えのない物を買わされそうになったという不信感が生まれる。
ということで実害は少なくても、カートに入れるにも対策をするべき。
という感じで、どこに必要かを考えてみるといい。

入力→確認画面→実行で考えると、
入力をCSRFで受け付けてしまっても、確認画面に行くだけで攻撃に有効性はないが、
よそからのリクエストを受け付けてしまうことが、脆弱性を生むそもそもの原因なので、
実害はなくてもトークンがなければ全ての画面でリクエストを受け付けないと、
全画面に入れるのも全然あり。

4104032019/01/04(金) 12:10:28.94ID:???
>>409さん
実装によって必要な箇所が変わるのですね。
わかりやすい例えをありがとうございます。

411nobodyさん2019/01/05(土) 10:59:03.42ID:???
そもそもの話
CSRF対策用のトークンは出力の際に自動で付与するようにし
チェック処理も自動でやるようにしないと
駄目だと思う

XSS対策なんかもそうだけど
こういう事にいちいち人の手を入れる余地があると
必ずミスが発生する

要するにフレームワークに任せなさいってこと

勉強のために自前で実装したいならトークンは
output_add_rewrite_var()
を使って自動付与してチェック処理内に
そのトークンを必ずチェックするような処理を加えればいい

トークンはセッションIDに何らかの種を加えたハッシュ値を使うのが楽

そこまで手間ではない
https://qiita.com/mpyw/items/8f8989f8575159ce95fc
この例を output_add_rewrite_var() を使って
トークンを自動付与するように改造してみるといい

412nobodyさん2019/01/05(土) 11:47:51.01ID:2pasFScb
mktime,gmmktime,strtotimeで9時間遅いタイムスタンプが出力されてしまいます。
time()の値は、正しい今のタイムスタンプが出ます。
ズレが9時間なので標準時からの時差なんだろうと推測していますが、原因、解決策が分かりません。
どの様な所をチェックしてみるべきでしょうか?

413nobodyさん2019/01/05(土) 12:05:52.12ID:???
フレームワークに任せなさい(脳死

414nobodyさん2019/01/05(土) 12:08:14.76ID:???
>>412
ロケールの設定が適切でないからじゃね
date_default_timezone_set('Asia/Tokyo');

415nobodyさん2019/01/05(土) 13:24:00.76ID:X9IhzCOp
>output_add_rewrite_var()
これは知らなかった
テンプレートに明示的に書きたいし
必要性を感じないけどさすがPHPなんでもアリだな

4164122019/01/05(土) 14:20:17.55ID:2pasFScb
>>414
ありがとう。
ハマって午前中潰してしまったのが、一発で上手くいったよ。

417nobodyさん2019/01/05(土) 15:14:25.56ID:???
初心者みたいな質問だな

418nobodyさん2019/01/05(土) 15:23:38.00ID:???
>>413
PHPの生みの親自らがそう言ってるしな

4194032019/01/05(土) 16:13:47.44ID:???
>>411さん
アドバイスありがとうございます。
output_add_rewrite_var()は初めて知りました。
フレームワークについては脆弱性をしっかりと理解して、対処方法を学んでから使おうと考えています。
ありがとうございました。

420nobodyさん2019/01/05(土) 16:54:07.77ID:???
むしろフレームワークを使わない方が脆弱性が増えると思う
セキュリティは最低限の知識しかないけど、追いかけてたら人生終わるってのはよくわかった

421nobodyさん2019/01/05(土) 18:14:57.47ID:???
>フレームワークについては脆弱性をしっかりと理解して、対処方法を学んでから使おうと考えています。
これがプログラマーとしてあるべき姿

>追いかけてたら人生終わる
問題があったときに対処できる幅が広がるから
高級言語やるなら低級言語からやれっていう極論は見たことあるし
時間の無駄だしそれはさすがにないわーって思ったけど
XSSとXSRFとSQL Injectionの3つぐらいは
時間もたいしてかからんしPHPerなら仕組みから知っておくべきだと個人的には思う

422nobodyさん2019/01/05(土) 18:24:47.82ID:???
>>421
ちょうどその3つだわ、師匠から教わったの
プリペアードステートメンド、htmlspecail quat〜
とか言ってたな
もう俺はFWに全部任せるけど、FWを避ける派はどうしてんだおるな

423nobodyさん2019/01/05(土) 18:42:57.38ID:???
スキルのないやつの

XSS対策した(つもり)
CSRF対策した(つもり)
ほどたちの悪いものない

そんなの全く知りません
と言ってくれた方が100万倍マシ

勉強のために車輪の再発明をする事自体は大いに推奨するが
自分のスキルのなさは自覚してもらわないと困る

424nobodyさん2019/01/05(土) 18:54:49.97ID:???
XSS程度のものならFWも度々やらかしてる
一度導入したらアップデートはなかなかされないというのもFWにはありがち
サーバのログ見てもわかるようにある物を導入してるのを前提に攻撃してくるので
オープンソースのものを使うというのは狙われる危険性も増える
FWを使うなら最新情報もちゃんと追うように

425nobodyさん2019/01/05(土) 18:59:33.64ID:???
>>421
あるべき姿のわけないだろw

426nobodyさん2019/01/05(土) 19:02:01.80ID:???
>>423
そうそう
完全に自覚してるし、だからFWに完全に依存
クライアントにも言っているよ、本気でデータ保護やりたいなら別の業者にお願いしますってね

427nobodyさん2019/01/05(土) 19:03:49.31ID:???
あらゆる攻撃から守り続けることができるベンダーは本当に羨ましい

428nobodyさん2019/01/05(土) 19:04:09.40ID:???
アマグラマーが商売してんじゃねえよ!
適当なもん組んでんじゃねえぞ!オラ!!!!!

429nobodyさん2019/01/05(土) 19:04:24.72ID:???
>>411は別に脳死で既存のフレームワークに丸投げしろという意味ではないんだけどね

俺々マイクロフレームワークでもいいから
そういう処理を自動で行うように設計した方がいいってこと

例えばXSS対策なんかは htmlspecialchars() をいちいち通してたらミスが起こるから
テンプレートエンジン側で {{ $var }}のようにすれば
自動でエスケープするようになってるわけだ
人はミスをする生き物だからミスが入り込みにくい設計を考えるのも大事

430nobodyさん2019/01/05(土) 19:10:32.70ID:???
どうして誰もがPHPレベルでの整合性を求めるのか,私には分かりません。整合性をとるのはフレームワークの役割です。
フレームワークは問題を解決するための全体的なアプローチを定める場所ですから。
PHPはその下のレベルにあって,ただ低レベルにあるライブラリとか関数とかへのアクセスを提供するだけの存在です。

ラスマス・ラードフの発言な
PHPの立ち位置を理解してないやつが多すぎ

431nobodyさん2019/01/05(土) 19:13:16.36ID:???
自動処理は必要のないものにまで処理をすることになるから
FWを使わないような層(≒速度重視)とは思想が相容れないんでないか

432nobodyさん2019/01/05(土) 19:13:50.30ID:???
それphpかんけーし
ペチパーって頭悪そうだな

433nobodyさん2019/01/05(土) 19:31:32.59ID:???
ところでなぜwordpressは毎回毎回セキュリティアップデートしてるの?
それだけ攻撃される穴があるの?
それとも新たな攻撃方法がみつかってそれに対処してるの?

ということはフレームワークにもいろいろ穴があるわけだよね?
なのにwordpress並にはアップデートしてない
なぜですかい?

434nobodyさん2019/01/05(土) 19:41:46.06ID:???
フレームワークを使わない=速度重視ってより
他人の作ったプログラムに囚われたくないんだろう

フレームワークのバージョンアップを適用したら動かなくなったとか
適用したら設定項目が増えてたとか、面倒でしょう?

使ってるフレームワークに脆弱性が見つかったとか言われ
その脆弱性で今まで被害があったのか?とか面倒なこと聞かれたら大変でしょう?

435nobodyさん2019/01/05(土) 19:46:13.63ID:???
>>433
高機能だkら山程セキュリティホールがある
他のFWは低機能だからセキュリティホールが少ない

>>434
まぁセキュリティホールをの説明なしにフルスクラッチで作りがる業者や個人は疑ったほうが良い
脆弱性による被害は無い→今後ある可能性がある、そのコスパは非常に悪い
こういうとこまで説明する必要がある

436nobodyさん2019/01/05(土) 19:50:26.87ID:???
WPはCMSでFWでない
セキュリティアップデートは利用人数と開発者人数によるとこが大きい
潜在的な問題はほぼ100%どのソフトウェアも抱えている
それが表に出ないだけ

437nobodyさん2019/01/05(土) 19:52:31.14ID:???
WPは設計が古すぎる

今だに低レベルなxssが起こってるのは、
テンプレートエンジンを通してないのが理由だし
プラグインで低レベルなxsrfが起ってるのは、
そこの処理がプラグイン開発者に依存してるから

良く言えば自由度が高いと言えるが、
一貫性のある手法を提供しきれてないから、
プラグインで致命的な脆弱性が頻発してる。
この辺りは430の話にも通ずるな

コードレベルでいえばglobal宣言だらけな時点でお察しだし

438nobodyさん2019/01/05(土) 19:54:29.94ID:???
430じゃなくて>>429の間違い

439nobodyさん2019/01/05(土) 19:59:31.49ID:???
まぁwordpressは世界のサイトの3割だかが
これで作られてるってぐらいシェアがあるから
その分攻撃対象になりやすいってのもある

サバのログ見てりゃ分かるが
中国あたりからwordpressの脆弱性をチェックする
ボットが飛びまくってくるからな

440nobodyさん2019/01/05(土) 20:04:40.70ID:???
PHPでフレームワーク使う必要なくね?
フレームワーク使うぐらいなら別の言語でよくね?
なんでPHPつかってまでわざわざフレームワークなんて使ってるのか?
俺にはペチパー思考はさーっぱり理解できないわw

441nobodyさん2019/01/05(土) 20:22:19.53ID:???
フレームワークを使うのは、既にあるものをわざわざ自分で0から作る必要なくね?ってやつだろう

442nobodyさん2019/01/05(土) 20:25:38.22ID:???
>>440はPHP以外にどんな言語ができて
その言語ではどのフレームワーク使ってて
例えばSQLの組み立てはどうやってるのか教えて

443nobodyさん2019/01/05(土) 20:45:52.59ID:???
>>442
聞いて何かあるの?

444nobodyさん2019/01/05(土) 20:49:11.42ID:???
FW使うにもプログラム言語を少しは触る必要があるわけで
PHPが簡単という嘘に惑わされた初心者がPHPから始めてるから仕方ない
最近は充実してるけどもっと早く豊富な日本語ドキュメントにアクセスできれば
圧倒的にPythonが流行っていただろうにな

445nobodyさん2019/01/05(土) 21:48:29.31ID:???
>圧倒的にPythonが流行っていただろうにな
無いかなぁ

日本ではHSP、ツクールが流行ってたからな。
なんやかんやでゲームとKAWAIIの国
pythonはないかなぁと思う
pythonメインのDXライブラリみたいなのがあれば流行ってたかもね

446nobodyさん2019/01/05(土) 22:31:07.33ID:???
>>443
俺はJava、Swift、Objective-Cとか
古い言語だとPerlも触れるけど>>440みたいな考えは全く理解できないんで
どんな言語でどんな環境だったら440みたいな考えになるのか興味があるので

447nobodyさん2019/01/05(土) 22:32:37.31ID:???
芸能人レベルの一般人美女(真ん中)
向かって右端は目と鼻整形済み(本人公言)
左は高身長でナチュラル
ランク付けてみて
https://www.instagram.com/p/BrVaQVblRk7

448nobodyさん2019/01/05(土) 22:38:48.79ID:???
FWを使う使わないが速度云々とか
WPとFWの区別も付いてないとか
PHPでFW使う意味が分からないとか
もうね…

このスレに初心者お断りって書いてる意味がないと思うの

449nobodyさん2019/01/05(土) 22:44:02.73ID:???
そういやもうwpを長らく触ってるから私は中級者ですっていわれりゃそれはそうだし、
何を持って初心者かだよな

450nobodyさん2019/01/06(日) 03:07:57.27ID:???
>>430
前後の肝心なとこ抜くなよ

この発言はPHPの一貫性のなさや批判に対して開き直った発言で
ラードフが初期にあんま深く考えずオレオレライブラリとして作ってたことを示してる
批判に対して整合性が欲しいならフレームワーク使えばいいということに言及したに過ぎず
ラードフ自身フレームワークの遅さを指摘しPHPでは使う必要はないと言っている

Strutsあたりで流行しRoRで完成したMVCが今主流ってだけで(MVVMも流行ってるが)
PHPはそれ以前に流行したHTML埋込み型のWebアプリケーションFWであるというのは知っておけ

>>448
速度重視するならPHP使わないとか言い出すいつものキ○ガイ?
サーバチューニングして半ば強引に最近WPは早くなってきたけれど
肥大化したアプリケーションというのは元々遅くなるもの
FW(特にフルスタック)なんてのはそういうアプリケーションの代表格

451nobodyさん2019/01/06(日) 07:59:34.06ID:???
PHPの利点を殺さずMVCでコード書きたいならPhalconかSlimでも使えばいい
LaravelやCakePHPは脳死した人間が使えばいい

452nobodyさん2019/01/06(日) 19:14:18.23ID:???
PHPのコードを手っ取り早く早くするには
ZephirでPHPエクステンション書けばいい
WPをPHPエクステンションに移植したら有名になれるよ

453nobodyさん2019/01/06(日) 20:35:44.08ID:???
>WPをPHPエクステンションに移植

454nobodyさん2019/01/06(日) 21:14:28.98ID:???
コアをね

455nobodyさん2019/01/07(月) 14:34:51.01ID:K5PXrPkY
可変引数でうまいバリデーション方法あったら教えて下さい
ルールとしては
・引数の数は3か4である
・$args[0]は1か2か3である
・$args[1]は1-100である
・$args[2]は$args[0]が1か3の場合1-100で$args[0]が2の場合1-10である
・$args[3]は$args[0]が3のもので英数字が入る ただし1文字目は数字はいけない

素直にコードにするとこうなります
function foo(...$args)
{
 $len = count($args);
 switch ($len) {
  case 3:
   if ( ($args[0] === 1) && ($args[1] > 0) && ($args[1] <= 100) && ($args[2] > 0) && ($args[1] <= 100) ) {
    // pass
   } elseif ( ($args[0] === 2) && ($args[1] > 0) && ($args[1] <= 100) && ($args[2] > 0) && ($args[1] <= 10) ) {
    // pass
   }
   break;
  case 4:
   if ( ($args[0] === 3) && ($args[1] > 0) && ($args[1] <= 100) && ($args[2] > 0) && ($args[1] <= 100) && (ctype_alnum($args[2])) && (!ctype_digit($args[2][0]) ) {
    // pass
   }
   break;
 }
}

もうちょっときれいにかけたら書きたいです
これでは見直すたびに鬱になりそうです

456nobodyさん2019/01/07(月) 15:11:58.24ID:???
アプリケーションの文字エンコーディングがUTF-8で統一されている時、
<input>要素から送られてくる文字列の文字エンコーディングの検証は必要ですか?

457nobodyさん2019/01/07(月) 15:28:34.29ID:???
ルール通りチェックしていけばいいのでは?

458nobodyさん2019/01/08(火) 14:12:28.61ID:???
>>455 こういうコード書く奴とは一緒に仕事したくないなと思う

459nobodyさん2019/01/08(火) 15:26:51.90ID:???
一緒に仕事したくなるようなコードをぜひ見せてくれ

460nobodyさん2019/01/08(火) 16:57:28.15ID:???
引数の数チェックいるか?俺なら最大4つ想定して無視するが
$list($w, $x, $y, $z) = $args;
switch ($w) {
 case 1:
 case 2:
 case 3:
}
でわけたほうがすっきりする

filter_var($x, FILTER_VALIDATE_INT, [
 'options' => [
  'default' => FALSE,
  'min_range' => 1,
  'max_range' => 100
 ]
]);

(function($x) {
 if (is_int($x) && $x > 0 && $x <= 100) return $x;
 else return FALSE;
})($x)

こうしてみると下はシンプルだけど上の方がより直感的でわかりやすいと思う

461nobodyさん2019/01/09(水) 13:55:21.64ID:???
バリデーションは本当面倒だよね
なんかいいライブラリない?

462nobodyさん2019/01/10(木) 02:56:13.42ID:6vuu0CDC
ヒカキンの年収が10億超え!?明石家さんま・坂上忍も驚愕の総資産とは??
https://logtube.jp/variety/28439
【衝撃】ヒカキンの年収・月収を暴露!広告収入が15億円超え!?
https://nicotubers.com/yutuber/hikakin-nensyu-gessyu/
HIKAKIN(ヒカキン)の年収が14億円!?トップYouTuberになるまでの道のりは?
https://youtuberhyouron.com/hikakinnensyu/
ヒカキンの月収は1億円!読唇術でダウンタウンなうの坂上忍を検証!
https://mitarashi-highland.com/blog/fun/hikakin
なぜか観てしまう!!サバイバル系youtuberまとめ
http://tokyohitori.hatenablog.com/entry/2016/10/01/102830
あのPewDiePieがついに、初心YouTuber向けに「視聴回数」「チャンネル登録者数」を増やすコツを公開!
http://naototube.com/2017/08/14/for-new-youtubers/
27歳で年収8億円 女性ユーチューバー「リリー・シン」の生き方
https://headlines.yahoo.co.jp/article?a=20170802-00017174-forbes-bus_all
1年で何十億円も稼ぐ高収入ユーチューバー世界ランキングトップ10
https://gigazine.net/news/20151016-highest-paid-youtuber-2015/
おもちゃのレビューで年間12億円! 今、話題のYouTuberは6歳の男の子
https://www.businessinsider.jp/post-108355
彼女はいかにして750万人のファンがいるYouTubeスターとなったのか?
https://www.businessinsider.jp/post-242
1億円稼ぐ9歳のYouTuberがすごすぎる……アメリカで話題のEvanTubeHD
https://weekly.ascii.jp/elem/000/000/305/305548/
世界で最も稼ぐユーチューバー、2連覇の首位は年収17億円
https://forbesjapan.com/articles/detail/14474

463nobodyさん2019/01/10(木) 13:45:40.25ID:???
>>461
iconvのSJIS往復で済ませてる

464nobodyさん2019/01/13(日) 15:09:43.72ID:sgx7HV/k
PHPで制御文字を除去する仕組みを学んでいるのですが、肝心の制御文字の送信方法がわかりません。
ツールなどを使わなければ制御文字は送信できないのでしょうか。
詳しい方、アドバイスをください。
よろしくお願いします。

465nobodyさん2019/01/15(火) 04:43:46.71ID:???
ADCEBという文字列があるとし、
BとCとDの文字のうち、どの文字が最初に来るのか調べて、
最初に来た文字を変数にしまいたい場合、どのようにするのが
いいでしょうか?

>BとCとDの文字のうち
この部分はAとBを調べたかったり、CとDとEを調べたかったり
可変なのでどう処理すべきか悩んでいます。

4664652019/01/15(火) 04:48:29.14ID:???
>>465
言葉足らずだったので補足です。
ADCEBという文字列の中で、「BとCとD」の文字うちどれが最初に来るのか
調べたい、ということです
この例だとDが答えです。

467nobodyさん2019/01/15(火) 06:54:56.22ID:???
strposで1個ずつ調べれ

468nobodyさん2019/01/15(火) 08:37:32.10ID:???
全部の順序調べたりする必要もなく
最初に見つかったの返すだけならstrposすらいらぬ
$str = 'ADCBE';
$array = ['B', 'C', 'D'];
for ($i = 0; $i < strlen($str); $i++) {
 foreach ($array as $char) {
  if ($str[$i] == $char) {
   echo $char;
   break 2;
  }
 }
}
もうちょいコード短くしたいならforeachのとこはin_array使えばいい
つうか初心者スレ案件

469nobodyさん2019/01/15(火) 09:11:11.52ID:???
もう少し綺麗なサンプルコード書いてやれよ・・・

470nobodyさん2019/01/15(火) 09:19:41.86ID:???
>>465
ほい

$text = "ADCEB
";
if(preg_match("/([DEF])/",$text,$m))
echo $m[1];


>>468
ダッさwww

471nobodyさん2019/01/15(火) 09:37:16.10ID:f4NkL95G
配列作ってfor/foreach回すと遅重くなるよね?
文字列操作のstrposを必要なだけ並べてやった方が速軽いんじゃないかな?

4724652019/01/15(火) 12:47:21.77ID:???
みなさんありがとうございます。
>>470さんのものが簡潔なので利用させていただきます。
preg_matchをこう使う方法もあるのですね…驚きです。
ありがとうございました。

473nobodyさん2019/01/15(火) 13:50:47.33ID:???
計算量考えたコード書けよ
preg_matchなんて短いだけだからな

474nobodyさん2019/01/15(火) 14:20:05.25ID:???
>>473
preg_matchが遅いってこと?

475nobodyさん2019/01/15(火) 14:57:32.64ID:???
>>465-466の条件でならstrposよりも早そうだけどな
計算量だけがボトルネックじゃないから
例えば最速であろうハッシュマップを参照するのも
array_key_existsみたいな関数使わんといけないし(じゃないとエラー出る)

476nobodyさん2019/01/15(火) 15:44:59.10ID:???
$str = 'ADCBE';
$array = ['B', 'C', 'D'];
$pos = strlen($str) + 1;
foreach ($array as $char) {
 if (($idx = strpos($str, $char)) !== false && $idx < $pos) $pos = $idx;
}
if (strlen($str) > $pos) echo "found {$str[$pos]}";

preg_matchのほうがちょっとだけ早い
1文字でいいならpreg_matchのほうがよさそう

477nobodyさん2019/01/15(火) 15:53:20.80ID:???
preg_matchでパフォーマンスも読みやすさも十分だろうに

478nobodyさん2019/01/15(火) 16:11:43.34ID:???
複雑なバリデーション以外に正規表現は使うべきでない
それも正規表現以外には手がないという最後の最後
1文字チェックに使ってたら笑うわ
>if (($idx = strpos($str, $char)) !== false && $idx < $pos)
if (($idx = strpos($str, $char)) < $pos)
でいいしこれでpreg_matchなんてぶっちぎれるだろ

479nobodyさん2019/01/15(火) 16:18:24.79ID:???
あーあかんわw0になるか

480nobodyさん2019/01/15(火) 16:22:07.92ID:???
>>478
なんか速そうに見えるだけのコードよりも
ライブラリ内で爆速で動く方がそりゃ速いよ

481nobodyさん2019/01/15(火) 16:49:00.41ID:???
>>476 逆
$str = str_split($str);
$array = implode('', $array);
foreach ($str as $char)
 if (strpos($array, $char) !== false)
  return $char;

482nobodyさん2019/01/15(火) 17:11:28.28ID:???
先頭のほうで見つかる保証がないのならあんまよくない。

483nobodyさん2019/01/15(火) 17:17:00.66ID:???
>>481
面白いけど、まだ遅いね

サービスで$strと$arrayの生成をループの外に置いても
実測でpreg_match版の1.5倍くらい遅い

484nobodyさん2019/01/15(火) 18:05:36.58ID:???
iconv_strlen()ってmb_strlen()と何が違うんや・・・

485nobodyさん2019/01/15(火) 18:09:20.42ID:???
array_intersectとか使う方法を思い浮かんだが
コードは短くてもどう考えてもおせえな

486nobodyさん2019/01/15(火) 18:15:56.38ID:???
>>483
自分の環境だとpreg_matchより倍ぐらい速かったよ

GoogleCloud GAE PHP5.5の環境で1000回実行したときの時間

preg_match 1.7ミリ秒
strpos 0.8ミリ秒

ちなみに配列ブン回すロジックは1.9ミリ秒だった

487nobodyさん2019/01/15(火) 19:04:03.55ID:???
468、476、481 はプログラマの適正なし!
ふつうのコードは470だろ

計算量?速度?そんなの元の質問にねーよw

488nobodyさん2019/01/15(火) 19:24:28.18ID:???
>>487
言われなくても考慮するのがプログラマってもんだろ

489nobodyさん2019/01/15(火) 19:27:44.79ID:???
ユーザビリティに影響するなら考慮するけど、
>>486にもあるように0.0008秒の差でしょ。それ考慮して何かあるのけ

490nobodyさん2019/01/15(火) 19:35:52.02ID:???
正規表現は荒れるからやめろよ
>>468はとても説明的で初心者向けだと思うがな

491nobodyさん2019/01/15(火) 19:38:56.04ID:???
>>489
この測定はあくまでも5文字から3文字分の先頭を求めるロジックの測定
質問者が例題でそうしただけでとんでもない容量のデータを対象にした場合は結果も変わってくるでしょう
preg_matchはレングスによっては動作しなくなるみたいだし

492nobodyさん2019/01/15(火) 19:42:28.45ID:???
>>487
速度の話になって対比で書いただけだから
ま、実際strpos使って正規表現は使わんけどね

493nobodyさん2019/01/15(火) 19:45:58.29ID:???
単純検索や置換で正規表現止めとけは分かるけどこの内容なら普通に正規表現でいいわ

494nobodyさん2019/01/15(火) 20:00:22.08ID:???
/[DEF]/
$m[0]
でいいだろ
グルーピングする理由がない

495nobodyさん2019/01/15(火) 20:47:02.48ID:???
>>491
>preg_matchはレングスによっては動作しなくなるみたいだし
これマジ? どのくらいから動作しなくなるの?
ちょっとソース教えてクレメンス

496nobodyさん2019/01/15(火) 20:48:01.39ID:???
>>491
100回でも0.1秒差だぞ
>>465の処理をそんなにループさせる場面を想定してるの?w
それともこんな変な処理ばっかり押し付けられてるの?

497nobodyさん2019/01/15(火) 20:57:48.60ID:???
>>496
一回では測定出来ないから1000回の時間で比較しただけだよ

498nobodyさん2019/01/15(火) 21:03:03.45ID:???
>>495
気になったので試してみた

4億8000万文字でも大丈夫だった
$text = str_repeat ( 'D' , 480000000 );
if(preg_match("/([DEF])/",$text,$m)) echo $m[1];

4億8000万文字はphpがエラーになった。
$text = str_repeat ( 'D' , 490000000 );

制限無いと思う

>>491
嘘つきは朝鮮人の始まりだぞ

499nobodyさん2019/01/15(火) 21:13:53.13ID:???
>>487
ペチパーってレベル低いな
そのまま解こうとしててバカみたいだわ
>>465の要件がおかしいんだからそれを直せよ

500nobodyさん2019/01/15(火) 21:23:15.80ID:???
$m[1]←脳死

501nobodyさん2019/01/15(火) 21:53:16.83ID:???
単純な文字列検索は配列でもstrposのほうが安全

502nobodyさん2019/01/15(火) 22:02:33.99ID:???
if (preg_match('/[DEF]/', $text, $matches)) {
// $matches[0] <-
}

って書いといてパフォーマンスが気になるなら計測してから直す
最初からパフォーマンスが―ってのは無能

503nobodyさん2019/01/15(火) 22:10:31.76ID:???
>>470はきれいなサンプルコード書いてやれよに呼応して出したんだろ
JavaScriptの小技的なサイトにのってそうな初心者受けしそうなコードじゃないか
質問者も満足して帰ったんだしそれでええだろう

504nobodyさん2019/01/15(火) 22:14:02.02ID:???
初心者が満足するのが基準とか頭おかしい

505nobodyさん2019/01/15(火) 22:31:44.22ID:???
スレ的にはトリッキーでも面白いコードをみたいところだが
そんなコードが出てきても
速度 読みやすさ コードの長さ どれかに欠点もっててボロクソ叩かれる運命

506nobodyさん2019/01/15(火) 22:44:12.84ID:???

507nobodyさん2019/01/16(水) 08:54:50.45ID:???
>>506
動かなかったのは仕様をちゃんと読まなかった私の責任です
と書いてあるね

508nobodyさん2019/01/16(水) 09:10:51.60ID:???
>>507
質問者はpreg_match使うって言ってたからこの辺のリスクも知ってもらわないといけない

509nobodyさん2019/01/16(水) 09:18:03.82ID:???
/[DEF]/とかバックトラックも再帰もスタックもO(1)だろ

510nobodyさん2019/01/16(水) 09:57:54.92ID:???
>>499の言う通り
どうせ実際の用途は違うんだろ

511nobodyさん2019/01/17(木) 04:20:44.82ID:???
正規表現のほうが改修ラクだしいいだろ
文字一文字じゃなく文字列になった場合でもちょっと変えるだけで済むし

512nobodyさん2019/01/17(木) 18:21:04.09ID:???
改修が楽なわけないじゃん
strposなら配列に文字列のリスト突っ込むだけに対して
正規表現は何するつもりだ?orでつなぐのか?アホくさw

513nobodyさん2019/01/17(木) 18:28:26.13ID:???
正規表現はどうしても荒れるね
>>512みたいな低レベルが自覚せずにしゃしゃりでてくる

514nobodyさん2019/01/17(木) 20:18:38.54ID:???
>>513
じゃ答えてみろよ
まさかただの文字列検索にpreg_matchで配列渡すとか愉快なこというんじゃないだろうな?

515nobodyさん2019/01/17(木) 20:54:23.21ID:???
>>514
その前に君の意見をどうぞ
随分と高尚なのでそれに見合った意見があるのだろう
別にコードで書かなくてもいいぞ

516nobodyさん2019/01/17(木) 21:06:21.16ID:???
正規表現に変数突っ込むのはあかんのか?

<?php
$text = "ADCEB";
$match = "DEF"
if(preg_match("/([".$match.""])/",$text,$m))
echo $m[1];

517nobodyさん2019/01/17(木) 21:27:57.19ID:???
>>515
>>512で答えてんだろうが
理解出来ない雑魚は引っ込んでろよ

518nobodyさん2019/01/17(木) 21:28:58.69ID:???
>>516
それ文字列じゃない

519nobodyさん2019/01/17(木) 21:56:23.98ID:???
3日間も大盛り上がりしてるから仕切り直してみよう

"PHPに関する質問や雑談をするスレです。" *1
この文字列において、
("PHP","質問","雑談") *2
の単語のうち最初に出てくる単語を返しなさい

実際の運用において*1の文字列は大変長いものであり、
*2の単語や数は変わりうるものとし、
実行速度を考慮した上で最適なコードを述べよ

ファイッ

520nobodyさん2019/01/17(木) 21:58:31.10ID:???
>>519
大変長いってのはマジでやめてw
保守性だけに笑点しぼってほしい

521nobodyさん2019/01/17(木) 21:58:43.42ID:???
ああ、スマン
複数の文字列から検索ってのに脳内変換してた
$match = ["DEF", "CEB"];
foreach ($match as $var)
 if (strpos($text, $var) !== false) //match

アホくさと言ったコード↓
$match = implode("|", $match);
if (preg_match("/(".$match.")/", $text)) //match

>>516見て>>511の言いたいことは理解した
preg_match("/(".$match.")/", $text)って言いたかったのね
ただそれだとpreg_match使う意味が全くないし
strposに比べて改修楽って主張も全く意味わからんけど

522nobodyさん2019/01/17(木) 22:02:31.77ID:???
>>512
| を知らんのか?正規表現を知らない初心者かよ

523512=5212019/01/17(木) 22:04:12.70ID:???
>>522
こいつ殴っていい?
orと|が別物とか言っちゃうの?

524nobodyさん2019/01/17(木) 22:11:04.41ID:???
>>519
$pdo = new PDO("sqlite::memory:");
以下略

525nobodyさん2019/01/17(木) 22:59:48.71ID:???
<?php
$text = "PHPに関する質問や雑談をするスレです。" ;
$match = ["質問","雑談"];
$boolean = strpos($text,$match);
if($boolean){
var_dump($boolean );
}


これあかんのか

526nobodyさん2019/01/17(木) 23:24:57.11ID:???
strposにとって0はtrueだから

527nobodyさん2019/01/17(木) 23:29:45.83ID:???
strposに配列渡せるのは知らんかったわ
うえのほうでforeachで回してるもんだからてっきりそういうもんかと
オーバーロードはマニュアル分けてほしいわややこしい

528nobodyさん2019/01/17(木) 23:44:33.27ID:???
上のは要件が違うからね

529nobodyさん2019/01/17(木) 23:52:22.21ID:???
クライアントが使っているレンタルサーバーが全部5系で絶望中
7系に対応してないサーバーや、7.0系にしか対応してないサーバーが多い

5系でも5.6系じゃなくて5.1系とか5.3系とかとっくに死んでるのも多い
5.1系でWP4系を動かしてる無茶なサイトもあるし

そもそも互換性がないから安易に7系に移行できない
セキュリティーサポート終了は知らなかったことにしたい
あるいはガッツリ金と時間を取って対応したい

530nobodyさん2019/01/18(金) 00:29:58.57ID:???
クライアントからクレーム来た
アルファメールのphpバージョンが5.4→7.0
どっちにしてもセキュリティ的に問題があるだろってさ
知らんがな、それ選んだのは君だろう

531nobodyさん2019/01/18(金) 00:32:17.89ID:???
>>529
うおっとすごい奇遇だね
なんか流行りでもあるのかね。スパムメールで営業でもしているのだろうか
とりあえず金とって対応スべきだとは思う
これはハイハイといっていい案件ではないわ

532nobodyさん2019/01/18(金) 00:45:00.02ID:???
array()とかcreate_functionとか書かなきゃいけないサーバは勘弁してほしいわ

533nobodyさん2019/01/18(金) 07:37:29.32ID:???
>>531
金と時間の話も絶望的だが仮に金と時間が取れたとしても
全てのクライアントのサーバー引っ越し作業が必要になる絶望感

534nobodyさん2019/01/18(金) 08:55:47.80ID:???
>>529
うるせーぞ
保守案件とはいえ いまだに4.4使ってんだこっちは

535nobodyさん2019/01/18(金) 09:28:43.13ID:???
4.4とかセキュリティ的に怖いすぎる
調べるのも面倒なレベルだ

536nobodyさん2019/01/18(金) 12:09:56.90ID:???
保守案件だからこそバージョンが問題になるんじゃないのか・・・
ネットに繋がってないシステムなら話は別だけど

結局、まだどこも5系使っているし、
赤信号皆で渡れば怖くない的な状態?
いやこの場合、皆だと更に怖いんだけど

537nobodyさん2019/01/18(金) 13:08:17.55ID:???
零細相手だと金がないからその場しのぎでアップデート渋ってるんだろ
結局そっちのほうがコストかさむのにな

538nobodyさん2019/01/18(金) 14:20:28.35ID:???
5系以下は対応できませんの一点張りでいいだろ

539nobodyさん2019/01/18(金) 15:27:55.50ID:???
お問い合わせフォームで入力してもらう件名や本文の文字数の上限って皆さんどんな感じで決めてるんですか?

540nobodyさん2019/01/18(金) 17:10:00.60ID:???
>>538
それができるなんてうらやましい
妄想じゃないよな?

541nobodyさん2019/01/18(金) 17:17:35.28ID:???
対応出来るかどうかは別にしてもセキュリティについて責任持てませんは言わなきゃダメよ実際責任持てんし

542nobodyさん2019/01/18(金) 17:35:34.87ID:???
まぁこれはweb業者側から言って置かないとダメだな
書面にして残しておくぐらいでも良い
ってか、アップデートぐらいしようよ、普通に

543nobodyさん2019/01/18(金) 17:51:00.00ID:???
だってレンタルしているサーバーが対応してないんだもん
同じ会社の新しいサーバーは対応しているけど、
クライアントはいっぱいいて1つ1つ移行を代行するのも大変なんだもん
わからない?

わかったらどーしたらええか教えてくれや

544nobodyさん2019/01/18(金) 17:55:00.88ID:???
書き込んでる暇があるなら移行すればいい

545nobodyさん2019/01/18(金) 18:31:14.05ID:???
暇があれば移行できるとはなんとも小規模事業者のような考え方
あるいはその逆で大規模技術者集団か

うちみたいに人員と技術力に見合わない規模の事業やっている、
中途半端なところが大変なんです

546nobodyさん2019/01/18(金) 19:08:25.26ID:???
>>538
じゃあ 6 でお願いしますね(ニッコリ

547nobodyさん2019/01/18(金) 19:30:23.16ID:???
存在しないものはNG

548nobodyさん2019/01/18(金) 19:39:51.26ID:???
みんなの心の中に、PHP6は存在するのです・・・

549nobodyさん2019/01/18(金) 20:17:19.30ID:???
開発が頓挫してリリースされなかっただけで存在しないわけではないのでは?

550nobodyさん2019/01/18(金) 20:23:03.13ID:???
>>543
金を請求して、サーバー移行作業を行うのが正しい姿
最低限蔵には現状ヤバイ状態と言うだけ言っておかないと、
今後何か合った時に大惨事になるよ

551nobodyさん2019/01/18(金) 20:23:49.06ID:???
存在するけど手に入らないってロマンチックだね

552nobodyさん2019/01/18(金) 20:55:53.28ID:???
それは幻想だよ

553nobodyさん2019/01/18(金) 21:00:32.80ID:???
>>551
おまえ女にモテないだろ

554nobodyさん2019/01/18(金) 21:16:36.79ID:???
PHPはもてない

555nobodyさん2019/01/18(金) 21:34:07.95ID:???
>>550
そりゃそうなんだけど、
クライアントに説明して金を貰うところまでは
(一社一社やっていくわけだから面倒だけど)とりあえずはいいとして、
その後の実際の仕事の量に絶望するよね
うちサーバー移行のノウハウないし

556nobodyさん2019/01/18(金) 21:34:57.60ID:???
馴れ合いは初心者スレでやって

557nobodyさん2019/01/18(金) 21:36:49.26ID:???
プロならPHP7を使ってるのが当たり前

558nobodyさん2019/01/18(金) 22:41:08.32ID:???
世の中素人なのが当たり前
だからこれだけPHP5が使われている

559nobodyさん2019/01/18(金) 22:45:02.95ID:???
素人なのは恥ずべきことであって
決して開きなおるようなことではない

560nobodyさん2019/01/18(金) 23:13:45.30ID:???
一部の7使いが高みの見物をする中、
多くの5使いがいつか大殺戮に遭うんだろうな
素人なのは嘆かわしいことでもある

561nobodyさん2019/01/18(金) 23:21:19.98ID:???
個人情報取り扱ってなかったらHPがエロサイトになるぐらいで済む
平気平気

562nobodyさん2019/01/19(土) 08:49:46.42ID:???
今までextだったのがバンドルされてたり廃止されたりして設定がなくなってたりするけど
そのへんdllや設定読み込み無視したりでPHP5の設定をPHP7でそのまま使える?
まあめんどくさいしソースからビルドはしないで
パッケージから入れて使うext有効にするだけなんだけど…
最近じゃ専用PHPが必要なlsws使ってるからリリースすぐに最新のPHPアプデ出来るしな

563nobodyさん2019/01/19(土) 12:23:52.39ID:???
lswsってどう?Apacheと同じ感覚でつかえる?

564nobodyさん2019/01/19(土) 13:33:28.05ID:???
LSWSはPHPerなら非WPユーザーにもおすすめ
Apacheのルールが使えるからリライト設定も楽だし
PHP製の設定ツールが標準でついてて
設定ファイル編集からサーバ再起動までWebで出来るのも良い
http2も証明書設定すませるだけで使えるようになってたしとにかく楽
肥大化しすぎたApacheをシンプルにまとめたような代物
信頼性堅牢さの評価はわからんが特に問題にもなってないし大丈夫だと思う

565nobodyさん2019/01/19(土) 23:25:38.46ID:???
>>564
ありがとう
参考になる

566nobodyさん2019/01/21(月) 12:47:36.29ID:???
>>540
え、むしろ君のところでは出来ないの?
保守案件なんかは仕方ないかもしれんけど、新規は5系切り捨ててるよ。

だって実際5系切り捨ててるフレームワークやライブラリ増えてきてるし。
Laravelなんかはバージョン5.5から5系のphp切り捨ててるよ。

567nobodyさん2019/01/21(月) 13:00:04.43ID:???
phpバージョンってずーっとほっといたら強制的にバージョン上がったりする?

568nobodyさん2019/01/21(月) 13:46:56.07ID:???
>>567
俺たちじゃ分からないからサーバー管理者に聞こう

569nobodyさん2019/01/21(月) 15:27:31.76ID:???
今からFWやCMSみたいな第三者に使ってもらう前提のものを作るとして
5系は全く配慮しなくてもいいだろう(少なくとも国内は)
数百円でも有料サーバなら今どき7も使えるように配慮してるわ
たとえ4時代から使ってるような古いサーバであっても
15年ぐらい前に使い始めて未だアカウント有効なxreaがまさにそう(放置して無料プランだけど)
昔はサーバごとに入ってるPHPのバージョンはバラバラで
なかなか上がらないバージョンに不満があってだいぶ昔に見限ったけど
いつのタイミングかどのサーバでもPHPのバージョン選択出来るよう仕様変更したらしい

570nobodyさん2019/01/21(月) 15:33:45.12ID:???
今はサーバー会社がphp複数入れておいて、ユーザーが選択って方式ばっかりだね
全く利用者がいなくなってから古いバージョン削除とかそんな感じだと思う

571nobodyさん2019/01/21(月) 17:13:58.26ID:???
うーん。うちの場合は保守運用している案件で、
サーバー引っ越さないと駄目なところが多いんだよなあ。

レンタル会社の選択ミスったか。
いや、選んだの俺じゃないけど、
クライアントに提案したのうちの奴だしな。

572nobodyさん2019/01/21(月) 17:20:06.73ID:???
>>571
ちなみに失敗したサーバーってどこ?

俺はアルファメール
未だにphp7.0が最新、サポートきれとる

573nobodyさん2019/01/21(月) 17:42:47.95ID:???
>>572
ちょっとコンプライアンス的に厳しいかな。ごめん。

574nobodyさん2019/01/21(月) 18:05:24.48ID:???
>>573
気にするな

全く別の質問スレで、
「xxのサーバーのセキュリティ的にどう?」と、あくまで感想を聞くのは問題ないと思うぞ

575nobodyさん2019/01/22(火) 12:48:04.79ID:1IqQBOsn
選択できるバージョンのphpってcgiモードでしょ?
7.2提供開始ってことで選択して使ってみたけど、cgiエラーで時々500 Internal Server Error出すからモジュール版の5.6に戻した
cgi版は不安定という印象で、安定求めるなら使えなくない?

576nobodyさん2019/01/22(火) 18:22:11.69ID:???
そもそもPHPで○○求めてるのが間違いと開き直って
適当に富豪的プログラムやってる結果だろう

5775762019/01/22(火) 18:22:38.89ID:???
サーバリソースないくせに ね
あるならいいんだよ好き勝手やって

578nobodyさん2019/01/22(火) 19:14:11.63ID:???
>>575
普通に使えるし500エラーは見当たらない
コードがどこか変なんじゃないか

579nobodyさん2019/01/22(火) 19:59:02.37ID:???
コマンドラインからの対話型アプリケーションを作ろうと思ってるんですが
操作途中でctrl+cみたいな強制終了された場合destructorは呼ばれますか?
OSやシェルによっては呼ばれなかったりしますか?

あと
class C {
function __destruct() {
echo "DESTRUCT";
}
function _echo($str) {
echo $str;
}
}
$t = new C;
$t->_echo("test");
$t->__destruct();
$t->_echo("test2");
このコードはちゃんと動くんですが
このようにdestructorは任意のタイミングで呼んでもいいのでしょうか?
終了メソッドが減らせるのでおかしくなかったらこれにしようかと思います

580nobodyさん2019/01/22(火) 21:41:49.73ID:???
$t->__destruct();

動くか否か以前に、こんなの書いたら末代まで笑いものにされるぞ。

5815792019/01/22(火) 22:33:16.68ID:???
上の例ではテストでechoしてますが
明示的に呼びたかっただけでdestruct呼び出したあとは
オブジェクトには用事はないので単にnullを入れることにしました
それでも呼べるようなので

582nobodyさん2019/01/26(土) 16:47:05.12ID:BHGZ+Tjq
制御文字が含まれているかを調べるためにpreg_match関数を使っているのですが、他に代替できる関数はありますか?(´・ω・`)

583nobodyさん2019/01/26(土) 17:07:19.65ID:???
>>582
あるけどpreg_matchがだんぜん速い

スクリプトでループを書くより、ライブラリ内でループさせた方が良い

584nobodyさん2019/01/26(土) 18:23:59.85ID:BHGZ+Tjq
>>583
アドバイスありがとうございます。
がんばります(´・ω・`)

585nobodyさん2019/01/26(土) 19:40:12.75ID:???
str_replace(["\r\n","\n","\t"], "", $string)
一括で抹殺

586nobodyさん2019/01/26(土) 19:46:54.29ID:???
制御文字と書いてあるだろ

587nobodyさん2019/01/27(日) 01:36:18.30ID:???
バイナリかどうかのチェックならstrposでいい
if (strpos($line, '\0') !== false)

588nobodyさん2019/01/28(月) 01:09:39.57ID:???
インターネットに接続しない閉鎖ネットワークで使える
TinyPNGのような高圧縮の画像ライブラリって無いでしょうか?
TinyPNGは外部サーバーに接続するので…

589nobodyさん2019/01/28(月) 08:39:53.34ID:???
PNG-8にしてるだけなんじゃないかな
Imagickが使えるならImagickでできるはず
それかこれ試してみるといいかも
https://pngquant.org/

590nobodyさん2019/01/28(月) 13:57:31.34ID:???
左の入力例に対して、変数の中身を右のように変化させたいです
+1 | 1
+2 | 1 2
-1 | 2
+3 | 2 3

現在は以下のプログラムを使用して、配列変数poolの添え字に保存しています
しかしこの方法は処理に無駄があると思うので、もっと良い方法を教えてください
if ($operator == '+') $pool[$operand] = 1;
else unset($pool[$operand]);

591nobodyさん2019/01/28(月) 14:08:06.91ID:???
>>590
例のパターンが少ない

+1 | 1
-2 |

や同じ項目が複数あった場合どうしたいのか分からない

592nobodyさん2019/01/28(月) 14:12:50.97ID:???
・オペレーターが + のときは、そのオペランドは必ず存在しない
・オペレーターが - のときは、そのオペランドは必ず存在する
という前提でお願いします

593nobodyさん2019/01/28(月) 14:55:39.52ID:???
>>590>>592
unsetって変数の破棄じゃないの?
array_shiftでは?

それ以上の最適化はあるかもしれないけど、思いつかない
ってかよほど重い処理でも無い限り、やらんでも良いと思う

そもそも処理というより仕様に無駄がある
>・オペレーターが - のときは、そのオペランドは必ず存在する
なら、マイナスの時は数字は不要だろう
+1 | 1
+2 | 1 2
- | 2

594nobodyさん2019/01/28(月) 22:08:22.53ID:???
>>590
その方法で時間効率はかなりいいと思うけど
メモリ効率が気になるならハッシュテーブルか赤黒木でも作れば?
ただPHPの連想配列の実装によってはその方法でもハッシュテーブルでも変わらない気もする

595nobodyさん2019/01/29(火) 13:27:47.33ID:???
そろそろWebSocketに手出してみようとおもうんだけど
どれ使えばいいかな?Ratchetの記事が多いようだけど
おとなしくサーバはnode.jsにしたほうがいい?
https://postd.cc/websocket-shootout/
当然のようにPHPは入ってなかったけど
ここに入れるとしたらRuby並みのパフォーマンスになるのかね

596nobodyさん2019/01/29(火) 17:20:23.85ID:???
PHPでhttp以外をやるのは面倒臭そう
ajaxですらダルいのに
バックグラウンド実行になるからなあ
いや、やったことないから知らないけど

597nobodyさん2019/01/29(火) 23:36:21.38ID:???
正直なところperlだけどMojoliciousがWebSocketの扱い楽だった

598nobodyさん2019/02/09(土) 17:12:58.67ID:???
アドバイスをください。
件名、本文、メールアドレスだけのメールフォームで入力値を検証する時、これは検証した方がいいというのがあれば教えてください。

・文字エンコーディング
・制御文字
・文字数
・未入力
・メールアドレスの形式

よろしくお願いします。

599nobodyさん2019/02/09(土) 17:29:44.58ID:???
要件次第じゃない?

600nobodyさん2019/02/09(土) 17:40:32.54ID:???
PHP関係あるのか?

601nobodyさん2019/02/09(土) 18:17:42.00ID:???
要件次第だが文字エンコーディングや制御文字はいらんだろ

6025982019/02/09(土) 19:45:35.09ID:???
>>598です
アドバイスありがとうございます。
今回は自分の勉強のために調べていました。
文字エンコーディングや制御文字については参考書で検証した方がいいとあったので検討していました。
覚えることが多いですが頑張ります。
ありがとうございました。

603nobodyさん2019/02/09(土) 19:45:59.85ID:???
フォームを使う送信者が誰なのかチェックするとか、悪用されないように対策するとか
フォームからサーバーに送る際にtslとかで暗号化するとか

604nobodyさん2019/02/09(土) 19:49:33.12ID:???
答えを教えてもらうカンニングが勉強なの?

605nobodyさん2019/02/10(日) 01:50:46.13ID:???
コードは頭使って考えた方が良いと思うけど、
セキュリティなんかは考えても分からん事が多すぎるからさっさと聞いたほうが良い
というかFWに投げたほうが良い。生兵法は怪我の元だ

606nobodyさん2019/02/10(日) 07:58:23.29ID:???
>参考書で検証した方がいい
ログイン処理とかならまだわかるが本当にそう書いてたのか?
よくわからんけどとりあえずやっとけみたいな参考書は参考にはならんのですてとけ

607nobodyさん2019/02/10(日) 11:23:26.02ID:???
>>605
徳丸本を買ってきて頭から順にチェックしていけばよいよ

608nobodyさん2019/02/13(水) 15:12:58.07ID:???
この程度ならどれを検証すべきか調べてる間に
検証した方が早いと思うのは俺だけだろうか

609nobodyさん2019/02/13(水) 17:12:28.18ID:???
文字コードって何か検証することあるのか?
変換するだけじゃない?
今はBase64にすればutf-8だって行けるでしょ

610nobodyさん2019/02/15(金) 11:12:20.85ID:???
609みたいなのがいるからPHPerはばかにされるんだろうな…
文字コードチェックの必要性なんか大昔からずっと言われてるだろ
http://gihyo.jp/dev/serial/01/php-security/0019

605の言う通り、こういうやつはFWに丸投げした方がはるかにマシ
自覚のないやつが一番たち悪い

611nobodyさん2019/02/15(金) 11:15:28.10ID:???
URLはこっちの方がいいか
http://gihyo.jp/dev/serial/01/php-security/0027

612nobodyさん2019/02/15(金) 11:35:12.60ID:???
PHPの文字コード変換が微妙にバグっぽい挙動なの何とかして欲しい

613nobodyさん2019/02/15(金) 17:41:23.19ID:???
PHPのセミコロンはいいけど$は糞

614nobodyさん2019/02/15(金) 17:57:27.91ID:???
付けざるを得ない設計思想ではあった
ただ、あれは大失敗だな

615nobodyさん2019/02/15(金) 18:01:00.03ID:???
>>614
->も糞

616nobodyさん2019/02/15(金) 18:06:53.55ID:???
>>615
アロー演算子はphpだけじゃないだろう
最初に自走したのはjavaか?

617nobodyさん2019/02/15(金) 20:06:35.64ID:???
最初はc#の気がする

618nobodyさん2019/02/15(金) 20:42:48.01ID:???
->はCの構造体のポインタからメンバーにアクセスするときの演算子だろ?
Cではポインタじゃなかったら.でいいんだが、
Perlでは.は文字列結合演算子だからな

いや、お前らが話しているのはラムダ式のことなのか?

619nobodyさん2019/02/16(土) 02:24:38.46ID:???
ラムダの意味ならラムダはクソじゃないだろ

620nobodyさん2019/02/16(土) 08:49:23.04ID:???
=> は嫌いだわ

621nobodyさん2019/02/16(土) 13:49:35.44ID:???
PHPはタイプ量多いが明示的でわかりやすい気がするな
今の言語はfunctionがfnだもんな

622nobodyさん2019/02/16(土) 14:02:39.39ID:???
今更変えられないのかな
function使用頻度非常に高いから何とかして欲しい

623nobodyさん2019/02/16(土) 14:05:14.40ID:???
通常は補完でするっと入力するから
多少の長さは気にならないかな

624nobodyさん2019/02/16(土) 23:01:11.20ID:???
ていうかなんでfunctionなんて必要なんだっけ?

625nobodyさん2019/02/16(土) 23:28:23.95ID:???
定義かどうか分からないからだっけな
functionがないと何かと混同するからだったはず

626nobodyさん2019/02/17(日) 16:34:12.26ID:???
mysqlにコネクションプールが無いのは何故なんだぜ?
PHPは全リソースをリクエスト終了時に解放するからって言うけど
遅いでしょ?

パーシステント・コネクションは
コネクションプールとは無関係な別機能だった

627nobodyさん2019/02/17(日) 16:52:55.86ID:???
http://php.net/manual/mysqli.configuration.php#ini.mysqli.max-persistent

この数だけ持続接続をプーリングするんじゃないの?

628nobodyさん2019/02/17(日) 17:27:52.09ID:???
単にphpのプロセスが死ぬまで接続を維持し続ける機能らしい
異なるphpプロセスでコネクションを共有する機能ではない

PDOには最大数の設定はない
また、phpがエラーになるとテーブルがロックされたままになったりする

mysqliはPersistentでもクリーンアップを行おうとする
ただし性能と引き換え

629nobodyさん2019/02/18(月) 00:32:34.27ID:???
ソースファイルのBOMのせいでクッキーが使えないバグが出て原因究明に苦労したぞ
BOMを付けるエディタが悪いんだがPHPの側もどうにかしろ

というのは頭悪い主張ですかね・・・

630nobodyさん2019/02/18(月) 00:36:42.54ID:???
>>629
BOMのせいでクッキーが使えないなんてことあるの!?

631nobodyさん2019/02/18(月) 00:43:33.83ID:???
>>629
それ具体的にいつの話?
7.2環境で今確認したら、UTF8のBOM付きとBOM無しが混在しててるんだが普通に動いてる
モジュール部分の大半はBOM無しだっだが、デザインとか外観の部分はBOM付きで動いてた

632nobodyさん2019/02/18(月) 00:54:16.38ID:???
>>630
BOMがphpタグの外のテキストと見なされるから、
あらゆるテキスト出力より前に呼び出す必要があるsetcookieが動作しないのよ。

>>631
未だ現役だが古い5系のサーバーの話。
7系はBOMがあっても平気なのか?

ちなみに5系でもWindows版は平気らしく、
XAMPP環境で開発していたソースファイルが
なぜかサーバーに上げると動かなくなるから、
しばらくさっぱり意味がわからなかった。

6336302019/02/18(月) 07:47:41.52ID:???
>>632
なるほど理解した
ありがとう

634nobodyさん2019/02/20(水) 21:25:44.32ID:???
lambdaとかcloud functionにphpがない理由って需要ですか?
それとも用途が少ない?

635nobodyさん2019/02/20(水) 21:59:20.99ID:???
PHPはいずれ導入されるが導入時期は他のよりあとにされるってのは
この手のクラウドではよくある話
需要がないといったらそのとおりなのだろう
PHPの用途は小規模向けであるのでスケールアップの必要がない
VPSなんかでもっぱら使われるのでは

636nobodyさん2019/02/20(水) 22:58:27.15ID:???
PHPって組み込み関数とか標準ライブラリ多過ぎない?
仕様も完全に固まったとは言えず、破壊的変更がちょこちょこあった
ライブラリ毎にバージョン上げる事も出来ないので毎回リスキーなビッグバン的アップデートになる

Goとは全く逆だよね

Goへの誤解について
http://golang.rdy.jp/2017/12/20/go-fact/

Goは機能追加の優先順位が

「ライブラリ>>外部ツール>>言語仕様」

というのを徹底しています。 課題を解決する方法にいくつかの方法があれば より優先度の高い方を選びます。

おかげで、Goを気に入ってから5年目だけど その間、変化した言語仕様はごく小さな変更数点しかありません。

637nobodyさん2019/02/20(水) 23:49:28.59ID:???
どこらへんがphpは小規模向けで、pythonやgo、node.jsと違うんですか?

638nobodyさん2019/02/21(木) 00:26:28.77ID:???
>>636
かなり多い
要はwebでぱーっとなんでも出来る言語て立ち位置
実際本当に便利
pythonも2→3で凶悪な変更があったから、あまり他言語を強く言えない
Goはバージョンアップについてはよく知らない

phpはバージョン5の利用者が多いが、サポートが切れた
Xデーがそのうち訪れるかな

>>637

639nobodyさん2019/02/21(木) 00:28:55.77ID:???
>>637
ぱーっと作れるのでとにかく利用者が多い。業者も多い
とにかくwebに特化していて、FWも非常に多い

640nobodyさん2019/02/21(木) 01:37:58.59ID:???
マルチスレッドにもろくに対応してないのがPHPの現状
pthreadっていうモジュールがあるにはあるが不便

641nobodyさん2019/02/21(木) 14:34:27.85ID:???
これ見るとPHPでは不便以前に使えないのも同然では?
https://www.webprofessional.jp/parallel-programming-pthreads-php-fundamentals/

Shared-Nothingアーキテクチャを採用しているPHPでは
スレッドが使えたとしてもリクエストの度に生成する必要がある
スレッドは生成も切り替えも重いから却って速度が遅くなる
使えてもなんの意味も無い

642nobodyさん2019/02/21(木) 14:37:07.36ID:???
>>640
マルチスレッドが必要に思えないけど、
使い所あるんけ

643nobodyさん2019/02/21(木) 17:14:35.13ID:???
延々と応答しないリソースをどうやって待つかって問題にぶつかる人はいるかも
待っている間は他のリソースの応答を処理したいとか

644nobodyさん2019/02/21(木) 21:19:20.54ID:???
>>643
それ非同期I/Oで良くね?
スレッドを使う必要がない
同じくスレッドの無いJavaScriptもそうしてる

Node.jsはPHPのようなシェアード・ナッシングではないが

645nobodyさん2019/02/21(木) 23:07:59.09ID:???
>>644
非同期I/Oは応答があったときに、手が空いていたら処理するだけでしょ?
別の処理が走っていたらそれが終わるまでは待つことになる

646nobodyさん2019/02/22(金) 02:07:16.01ID:???
別プロセスでスクリプト起動してリソースの要求から応答待ちまでやればいいじゃん

647nobodyさん2019/02/22(金) 08:07:41.60ID:???
そもそもそんな応答がめちゃくちゃ遅いリソースを扱うことってあるか?

648nobodyさん2019/02/22(金) 09:19:20.91ID:???
DBの事なにもしらない時に作ったプログラムがそうだったな
インデックスなしでDB構築しって、検索するだけで30秒ぐらいかかってたw
ついでにセキュリティホールの塊

・・・はいいとして、少しでもまたせたくないってことじゃね
webは2,3秒待たせるだけでも人がどんどん減る

649nobodyさん2019/02/22(金) 09:48:05.20ID:???
スレッドやプロセスは重量級リソースだから
そんな大量にそもそも生成できないだろ?
1秒で1000スレッド生成+切り替えとか無謀

非同期I/O基本にして
足りなければサーバー増やした方が
利用効率が高い

その証拠にPHPのようなプロセスを大量に生成するスタイルを
他言語のフレームワークは使ってないw

650nobodyさん2019/02/22(金) 10:34:00.30ID:???
外部サイトのリソースとかならあるんじゃね?
ウェブスクレイピングしてるとかなら応答にも時間が掛かるだろう
それも複数ページ、もしくはページの画像などのリソースも取得するとなれば複数スレッド立ち上げたくなる気持ちもわかる。

DBの検索時に別スレッドで何かするってことはないだろ


まぁ複数人で使うプログラムに一人当たり何スレッドも使うとサーバーが死ぬけど
管理者一人だけが使うようなプログラムなら100スレッドだろうと使っても良いだろう

651nobodyさん2019/02/22(金) 12:31:59.41ID:???
人間という応答が遅いくせに即反応してやらないとすぐにイライラしちゃうリソースがあってだな

UIとバックグラウンドはスレッド分けたい時もある
javascriptもそれができるようになったし

652nobodyさん2019/02/22(金) 14:19:13.01ID:???
Webサーバーではpthreads使えないよな
CLI専用

手動でコマンド実行された時か
定期的にコマンドを実行するバッチ処理内でなら使える

時間の掛かる処理を予めやっておいて
DBに結果を入れる
WebではDBから取得して表示するだけ

653nobodyさん2019/02/26(火) 20:05:10.67ID:AQScychf
ちょっとマジで聞きたいことがあるんだが、cgiからブラウザに対してCP932でHTMLが出力されている。
もちろんヘッダも正しく指定されている。

んで、そのHTMLの中に、
<IMG SRC="あいうえお.jpg"> などと言う日本語のファイルが指定されているわけだ。
その日本語のファイル名も、CP932だ。

んで、ご丁寧にブラウザが自動でURLエンコードしてくれるようなのだが、
%E3%81%82%E3%81%84%E3%81%86%E3%81%88%E3%81%8A.jpg
となるのだ。これは "あいうえお.jpg" をUTF-8として解釈した時の文字コードだ。
俺としては %82%A0%82%A2%82%A4%82%A6%82%A8,jpg (CP932の文字コード)となってもらわなくては困る。

聞きたいことは2つで、これを解決するにはどうしたら良いか?
もう一つは、ブラウザごとの仕様によりこの挙動は違うのか?
の二点だ
よろしく頼む

654nobodyさん2019/02/26(火) 22:25:41.52ID:???
>>653
あっちこっちに同じ質問するなカス野郎!
なにがよろしく頼むだ
テメーは一緒悩んでろ

655nobodyさん2019/02/26(火) 23:43:52.58ID:???
PHPのソースからコメント取り除きたいんだけど、何かお手軽な方法ないかな
php -wだと改行もなくなっちゃうので、エラーを追いづらくなるから改行は残したい

656nobodyさん2019/02/27(水) 02:57:05.35ID:???
正規表現で置換とか?
コメントを捨てる理由は良く分からんけど

657nobodyさん2019/02/27(水) 14:37:32.14ID:???
それをすてるなんて とんでもない!

658nobodyさん2019/02/27(水) 16:38:05.93ID:???
cgi側でSJISにデコードしろ

659nobodyさん2019/02/27(水) 18:13:05.56ID:???
皆さんはどうやってアクセスログなどを作成してるんですか?

660nobodyさん2019/02/27(水) 19:05:00.25ID:???
>>659
俺はアクセスログは作成しない
たぶんしないと思う
しないんじゃないかな

apacheやnginxにしかできないこともあるから

661nobodyさん2019/02/27(水) 19:31:27.30ID:???
アクセスログはサーバーが自動で作ってくれるからそれに任せてる

6626592019/02/27(水) 19:43:40.08ID:???
>>660
>>661
参考になります。
ありがとうございました。

663nobodyさん2019/02/28(木) 06:52:42.60ID:Ki3DA8Q6
掲示板やチャットに書いた人のIPとプロバイダは保存してある

664nobodyさん2019/02/28(木) 09:33:18.95ID:???
>>663
当たり前だろう
保存してない完全な匿名掲示板なんて無いよ

665nobodyさん2019/02/28(木) 09:42:24.62ID:???
>>664
昔の2ちゃんねる

666nobodyさん2019/02/28(木) 10:11:13.89ID:???
>>665

2chは最初からip全部記録してるよ
大昔から普通に逮捕者でてるでしょ

667nobodyさん2019/02/28(木) 10:34:19.58ID:???
最初はしてなかったから運営者が責任とらされたんじゃなかったっけ

668nobodyさん2019/02/28(木) 10:56:47.81ID:???
ネオ麦茶思い出した
あれ以前の事件はもう覚えてないな

669nobodyさん2019/02/28(木) 11:26:21.87ID:S9RfIHJr
>>664
いっぱいあるが

670nobodyさん2019/02/28(木) 15:17:22.19ID:+klj5d/A
永久保存なんてしてんの?
投稿内容と一緒に保存してるだけで、いらなくなったら消してくでしょ

671nobodyさん2019/02/28(木) 15:41:04.23ID:???
永久保存なんて現実的には無理だから求められないはずだが
何年間保存しろみたいな義務ってあるんだっけ?
うちのアクセスログ半年ぐらいで古いのから消えてるぞ見てないから知らんけど多分

672nobodyさん2019/02/28(木) 19:37:26.95ID:rD/hQUF8
GDPR的には永久保存はNG
アクセスログのIPも個人情報だかららしい

673nobodyさん2019/02/28(木) 21:34:55.13ID:???
GDPR「消せ」
日本の警察「出せ」
ってなったらどうすればいいの?

674nobodyさん2019/02/28(木) 21:36:02.06ID:???
あれば出す

675nobodyさん2019/02/28(木) 22:13:31.72ID:iS3nNGqx
GDPRはよく分からない
なんか具体的なことは書いてないらしいし
ログを永久保存しててもセキュリティのためだって言えば大丈夫?

676nobodyさん2019/03/01(金) 04:26:48.37ID:???
GDPRなんて無視一択だろ どこの誰だよって感じ
ここは秘境の地ジャップランドやぞ 治外法権やぞ

677nobodyさん2019/03/01(金) 13:02:50.04ID:???
error_log() とか fopen() とかあった気がする

678nobodyさん2019/03/02(土) 10:32:45.61ID:1ak74M9Q
https://github.com/symfony/symfony/issues/8703#issuecomment-323608103
https://stackoverflow.com/questions/12378644/how-can-i-retrieve-the-current-error-handler

PHPのset_error_handlerってワケワカメな仕様だよね

・set_error_handlerはハンドラを一つしか設定出来ない。複数使うためには自分で元のエラーハンドラを呼ぶなど工夫が必要。上手くやらないと元のエラーハンドラは動かなくなる。
・現在のエラーハンドラを変更せずに取得する方法は無い。set_error_handlerが元のエラーハンドラを返すので、何か適当なエラーハンドラを設定後にrestore_error_handlerを呼ぶ必要がある。

エラーハンドラのネストはややこしくて
SentryがSymfonyのエラーハンドラを上書きしてしまい、動かない原因になった

679nobodyさん2019/03/02(土) 11:04:32.35ID:???
エラークラスに手をつけるとあっという間にぐちゃぐちゃになる
特に7.0で仕様が大幅に変わってからは何もしてない。全部FWに丸投げ

680nobodyさん2019/03/02(土) 14:03:44.27ID:1ak74M9Q
何でこんな分かりにくい仕様のままなの?

681nobodyさん2019/03/03(日) 00:26:08.40ID:???
error_get_lastとerror_clear_last何回も呼ぶほうが賢そう

682nobodyさん2019/03/03(日) 09:33:09.44ID:Gra17Qlp
Apacheの減少が続く - 2019年2月Webサーバシェア
https://news.mynavi.jp/article/20190301-779845/

Apacheのオワコン化が止まらない

683nobodyさん2019/03/03(日) 10:12:55.82ID:???
Apache以外は設定がめんどくさすぎる

684nobodyさん2019/03/03(日) 13:08:51.55ID:???
>>682
otherが伸びてるグラフあるがなんなんだ?

685nobodyさん2019/03/03(日) 19:05:07.76ID:???
nginxのシェアをまるごととってるとなると
nginxのフォークかなんかと考えるのが妥当
というわけで調べたらNGINX Unitなるものがあるらしい

686nobodyさん2019/03/03(日) 23:56:13.54ID:???
nginxって静的コンテンツならいいだろうけど、
phpを使うならNginxの下にApache入れて処理してやる必要があるだろ
nginxはwebサーバーの元締めみたいなヤツだからシェアがあがるだけじゃね?

687nobodyさん2019/03/04(月) 00:10:38.85ID:???
nginxはリクエスト捌けなくなると溜めこむよね

688nobodyさん2019/03/04(月) 05:29:17.91ID:nBk6Q3LZ
すまんけどPHPについておしえてくれない?
PHPってどこで動くの?


ちなみにCGIは知っていて、
クライアントからサーバーにリクエスト(アクセス)があった場合、HTTPDが特定のプログラムを起動して、そのプログラムから出力を受け取る。
HTTPDは受け取った出力を必要なら整形してクライアント(ブラウザに返す)。

PHPの場合、どこで動いていて、どういうふうに呼び出されて、どういう風に出力を返すの?

689nobodyさん2019/03/04(月) 06:55:41.18ID:???
PHPマニュアルにSAPIについてちゃんと書いてある項が見当たらないんだけど, そもそもそういう項はないのか単にマニュアルの調べ方が悪いだけなのか
とりあえず ttps://www.slideshare.net/do_aki/php-sapi-zendengine3 この辺読んでみるのがええんちゃう

690nobodyさん2019/03/04(月) 11:47:41.23ID:???
lzma形式の圧縮ファイルを展開できるスクリプトって無いかな

691nobodyさん2019/03/04(月) 20:38:28.60ID:???
そんなのexecで叩けばいいだろう

692nobodyさん2019/03/06(水) 04:22:15.66ID:???
ajaxで複数のオブジェクトを同時に送ることって出来るの?
jsonデータとFormDataを同時に送りたいんだけど

693nobodyさん2019/03/06(水) 04:35:30.51ID:???
掲示板等の機能を持った半登録制のウェブサイト作ってるんだが
ROMは誰でも出来て
書き込んだり新規トピックを立てようとするには垢登録が必要な仕様にしてるんよね

書き込んだ人のIPアドレスやプロバイダはどの様に記録したらいいかね?
ipぐらいなら平文でもええのかな?
キーワード使ってワードを暗号化出来る関数とかなんかある?

694nobodyさん2019/03/06(水) 09:23:49.30ID:AlWqAaJx
>>692
application/jsonとmultipart/form-dataを一つのリクエストで送りたいのか?

contentTypeはリクエストにつき一つしか指定できないのにどうしろと
別々のリクエストにして両方のPromiseを待つなら出来るが

695nobodyさん2019/03/06(水) 09:47:15.91ID:???
>>692
↓な感じでまとめて送り、受信先でパースすれば?
[
{contentType:"application/json", content:"送りたいjson"},
{contentType:"multipart/form-data", content:"送りたいFormData"}
]

>>693
書き込みに垢登録が必要なシステムならログイン時にアクセスログの記録をしといて
書き込んだ時点では、アカウントのIDを記録しておけばいいだろう

696nobodyさん2019/03/06(水) 19:53:40.38ID:Tkx18etX
登録と書き込みのプロバイダが違うかもしれない

697nobodyさん2019/03/07(木) 03:18:58.78ID:???
さして重要な個人情報でないIPやプロバイダをわざわざ暗号化する必要もないだろ
可逆じゃないと警察から照会があったときとかも意味もないし
そもそも暗号化のためにさくリソースが無駄
というか普通はhttpdのログにも記録される情報だろうそれ

698nobodyさん2019/03/07(木) 05:48:52.63ID:gKnNN8Ae
httpdはリクエストに対する記録しか残さないのでサイトの中で何をやっていたかは不明です

699nobodyさん2019/03/07(木) 06:31:28.79ID:???
IPや逆引きホスト名に関しては二重取りになり
しかもそっちのログは暗号化もなにもされてないってことを指摘してるだけで
さすがに投稿日時ぐらいは記録するのは想定してるよ

700nobodyさん2019/03/07(木) 07:10:40.37ID:???
phpやったことないんだけど、cgiとはどう違うの?
httpfとphpの関係ってどんな感じなの?

701nobodyさん2019/03/07(木) 07:11:18.54ID:???
httpf → httpdね

702nobodyさん2019/03/07(木) 07:59:49.23ID:???
アクセスしたURL見りゃ大体何やってたかわかるじゃん

703nobodyさん2019/03/07(木) 08:22:01.58ID:???
URLにhttpdの仕様なんて書いてなくね・・・?

704nobodyさん2019/03/07(木) 09:25:02.54ID:JXmWpfQd
>>700
CGIはオワコン
リクエストの度にコマンドを実行する方式なので、遅すぎる

ApacheはWebサーバー自体にPHPモジュールを含んでいる
CGIと比べたらスクリプトの実行は速いものの
Apache自体のWebサーバーとしての速度はnginxなどに劣る
また、Webサーバーの中で動くので分離度が低く、セキュリティ上不安がある

FastCGIは両者のいいとこ取りみたいな感じ
一度立ち上げたプロセスとソケットで通信するようにして、プロセスを再利用可能にしてCGIの分離性を保ちつつ
それなりの高速さを実現した
この方式だとApacheだけでなく、nginxも使える

705nobodyさん2019/03/07(木) 09:44:08.20ID:???
何で初心者お断りのスレで、phpやったことない初心者がいるんだよ
スレタイも読めねーのか?

706nobodyさん2019/03/07(木) 09:49:21.07ID:JXmWpfQd
WSGIはWebサーバーとアプリケーションサーバーを繋ぐという点はFastCGIに似ているが、FastCGIは言語を問わないのに対し
WSGIはPython専用

FastCGIより上位の層にあり、抽象度が高いらしい
FastCGIが通信の仕様だけなのに対して
WSGIはワーカープロセスの制御も仕様に含むとか
そのため、FastCGIを利用したWSGI実装もある

707nobodyさん2019/03/07(木) 09:57:29.24ID:???
>ApacheはWebサーバー自体にPHPモジュールを含んでいる
Apacheがサーバーなんじゃないの?
Apache自体にPHPモジュールを含んでいるってこと?
モジュールを含むってどういう意味?
んでそれがなんで速いことになるの?結局インタプリタと同類だからcgiと同じじゃないの?
もしかしてプロセスが常駐してるの?

708nobodyさん2019/03/07(木) 10:27:55.62ID:???
>>705
前から思ってるけどphpくだスレがないからここに来るしかない
初心者お断りって書いても意味ないぞ

709nobodyさん2019/03/07(木) 10:49:30.77ID:???

710nobodyさん2019/03/07(木) 10:57:09.23ID:???
インメモリ

711nobodyさん2019/03/07(木) 11:09:14.54ID:???
>>709
あぁ板が違うのか
気づくわけねーだろハゲ

712nobodyさん2019/03/07(木) 16:37:14.63ID:???
>>1をちゃんと読まないで逆ギレとか草

713nobodyさん2019/03/07(木) 16:41:08.25ID:???
>>1に書いてあるだろ
読めよハゲ

714nobodyさん2019/03/09(土) 10:39:30.25ID:CUrjZ5EQ
PHPは設定が多過ぎて本番環境で動かす時の設定をどうすれば良いか分からない

セキュリティはともかく性能的にはどうチューニングする?
その設定で本当に速くなってる事はどう確かめる?

Webサーバーはnginxにしている

715nobodyさん2019/03/09(土) 11:30:56.07ID:???
白くw

716nobodyさん2019/03/09(土) 13:03:47.10ID:???
Tsungでも使って負荷テストすれば?

717nobodyさん2019/03/10(日) 15:36:13.93ID:DDCWVA+6
教えてください。

アップルのウェブサイト(https://www.apple.com/)のContent-Lengthをget_headers()で取得すると値が53394であるのに対して、
ブラウザでウェブサイトを表示してウェブマスターツールでContent-Lengthを確認すると8222になっているのは何故ですか?

変なことを聞いていたら申し訳ないです(´・ω・`)

7187172019/03/10(日) 16:38:52.76ID:DDCWVA+6
こちらの勘違いでした。
質問を〆ます。
ありがとうございました。

719nobodyさん2019/03/10(日) 18:34:29.97ID:???
どういたしまして

720nobodyさん2019/03/11(月) 07:35:19.96ID:???
httpで接続するとphpは実行されるんだが
httpsで接続するとphpがそのまま表示されるんよね(´・ω・`)

これは何が問題なの?
初めてSSL化したからよく分からんとよね

721nobodyさん2019/03/11(月) 07:42:23.53ID:???
サーバ再起動したら上手く行ったわ(´・ω・`)
すまんな自己解決した

722nobodyさん2019/03/11(月) 12:26:42.20ID:???
いいってことよ

723nobodyさん2019/03/12(火) 20:20:39.81ID:???
指定日から指定日までの「年月」一覧を
もっとも簡潔に角煮はどうしたらいいかな

724nobodyさん2019/03/12(火) 23:16:18.78ID:???
鍋を用意します

725nobodyさん2019/03/13(水) 12:09:34.37ID:???
豚肉と水を入れます

726nobodyさん2019/03/13(水) 12:21:55.85ID:???
水を捨てます

727nobodyさん2019/03/13(水) 12:25:03.56ID:???
豚を食べます

728nobodyさん2019/03/13(水) 12:27:19.80ID:???
焼け

729nobodyさん2019/03/24(日) 09:30:16.81ID:xH/tLpfF
WordPress、PHP 5.2から5.5までのサポートを終了
https://news.mynavi.jp/article/20190322-793657/

> これで、WordPressがサポートされる最も古いバージョンはPHP 5.6となり、WordPressを利用する場合にはPHP 5.6よりも新しいバージョンを使うことが必須となる。

5.6もクソ古いんだからね切れよwwwwwwww

730nobodyさん2019/03/25(月) 10:00:08.63ID:???
サポート終了ってだけで別に使えなくなるわけではないんじゃね
あえて使えないようにPHP5.6からの関数やら機能やら使ってるのかもしれないが

731nobodyさん2019/03/25(月) 11:06:40.05ID:???
5.6サポート切れた時、色々な中小企業のHPが見れなくなるのだろう

732nobodyさん2019/03/25(月) 11:47:39.51ID:???
5.6もう切れてるんだって

733nobodyさん2019/03/25(月) 11:55:21.65ID:???
>>732
それはphpのサポートだね
今回はwpのphp5.6に対するサポートの事だよ

734nobodyさん2019/03/25(月) 17:26:59.69ID:???
だからサポート切れた言語を生かすなっていいたいわけ

735nobodyさん2019/03/25(月) 20:00:54.60ID:???
そもそもサポート切るなよ
サイト運営者は一生アップデートしなきゃいけないのか?無理だろそんなの

736nobodyさん2019/03/25(月) 20:02:35.00ID:???
そうだよ
アップデートというか、数年に一回作り直しになる

737nobodyさん2019/03/25(月) 20:39:18.02ID:???
そうなんだよなあ
でも開発だけで保守を依頼せず放置のクライアントばかり
世の中にそういうサイトいっぱいあるんだろうな、そして攻撃されて流出やらやらかす
俺は知らんぞ

738nobodyさん2019/03/25(月) 22:44:23.24ID:kHjB5/K3
そんな所はそもそもセキュリティパッチの適用すらして無い
意識の低いところだろ?

739nobodyさん2019/03/25(月) 23:57:20.82ID:???
ブログサービスなりグーグルサイトでもつかっとけよな

740nobodyさん2019/03/26(火) 06:03:02.89ID:???
当面は大きなセキュリティリスクが見つかれば有志がパッチ作るだろう

741nobodyさん2019/03/26(火) 06:24:17.02ID:???
パッチ当てるのもアップデートするのも手間は変わらんだろ
有志とかいう非公式のパッチに変なコードが仕組まれていたらと思うと
とてもじゃないが公式が出すアップデートを適用した方がマシ

742nobodyさん2019/03/26(火) 09:00:17.30ID:???
>>735
無理というのは嘘吐きの言葉なんだよ

743nobodyさん2019/03/26(火) 11:34:43.81ID:???
>>741
日本人なら信用できるだろ?
未だにWindows2000とか日本人が非公式でパッチ出してるけど
余裕で信頼されてんぞw

744nobodyさん2019/03/26(火) 23:12:43.86ID:oZ6oYJKE
脆弱性が多いプログラミング言語、第2位はPHP - 第1位は? | マイナビニュース
https://news.mynavi.jp/article/20190326-795188

745nobodyさん2019/03/27(水) 00:06:57.44ID:???
>>744
もうvbaは脆弱性にもならないんやなって

746nobodyさん2019/03/27(水) 02:46:32.78ID:???
PHP7大改造前まで健闘しとるやんけ

747nobodyさん2019/03/27(水) 03:04:16.69ID:???
PHP shares three of Ruby’s top 4 most common CWEs, with XSS at the top. However, PHP is the only language with SQL Injection (CWE-89) vulnerabilities featured so prominently at the top of the list.

748nobodyさん2019/03/27(水) 08:11:57.29ID:KZY9YsoX
SQLインジェクションは使う側の問題では?
それだけPHPユーザーはアホが多いってことか

749nobodyさん2019/03/27(水) 12:31:11.66ID:???
PHPのなんらかのバグに起因する想定外の動作でそうなるっていう話で
ユーザに問題があってっていう話じゃないだろ

750nobodyさん2019/03/27(水) 14:48:03.22ID:SUF4ooTv
そうじゃねえだろw
PHPの動作自体に問題があるんじゃなくて
パラメーター化したクエリーを使わないアホが多いだけだろ

言語設計自体が駄目だからそういう糞コードを書くやつがあとを絶たない

There are PHP haters out there that say that some the design flows and bad practices built into the language make it hard to write secure code and maintain a high level of secure coding standards.

751nobodyさん2019/03/27(水) 15:10:21.15ID:7SJSEbOY
XSSはユーザーの入力にスクリプトがあるかとかをチェックせずに
レスポンスとして返す事で起こる脆弱性

HTTP処理等が言語にくっついてない
RubyとかにもXSSがあるとされているのは
そういう事

752nobodyさん2019/03/27(水) 15:17:19.05ID:???
もうめんどくさいからフレームワークのORMしか使わないから、インジェクションなんか起きようがないなうちの場合

753nobodyさん2019/03/27(水) 19:24:33.46ID:YPfPSc9l
WordPressはORM使ってなくね?
パラメーター化クエリは流石に使ってると思うが

754nobodyさん2019/03/28(木) 04:38:38.13ID:???
動作を少しでも軽快にさせようというのはわからんでもないが
htmlspecialcharsには草

755nobodyさん2019/03/28(木) 11:22:33.89ID:pK/914J3
【59歳が、踏み間違え、89歳死亡】 マ@トレーヤ(暴落後に登場)によると、脳が放射能に侵された結果
http://medaka.5ch.net/test/read.cgi/car/1553738241/l50

756nobodyさん2019/03/29(金) 07:33:09.66ID:iESJaxaz
PHPはもうダメだ、PHP万歳! | POSTD
https://postd.cc/php-is-dead-viva-le-php/

757nobodyさん2019/03/29(金) 08:18:56.34ID:4hnkllcL
PythonとかRubyあたりの雑魚と速度を比べて勝ってるからってなんだ
GoとかJVMに勝ってみろ

swoole?phpで非同期とかこわい

758nobodyさん2019/03/29(金) 08:20:54.17ID:???
タイトルだけでゴミ記事とわかるからクリックしない

759nobodyさん2019/03/29(金) 14:04:00.30ID:4sEhH8Xi
PHPとGoって何が違うの?LIGが自社サービス開発にGo言語を採用したお話
https://liginc.co.jp/284306

PHP遅すぎwwwwwww

760nobodyさん2019/03/30(土) 00:11:51.89ID:???
コンパイラと比べて遅い早いとか何初心者みたいなこといってはしゃいでんだ?
Goなんて特段早くもねえよ

761nobodyさん2019/03/30(土) 08:35:12.33ID:gRluVXya
TechempowerのベンチでもPHP遅い
他の動的言語も遅いが

762nobodyさん2019/03/30(土) 11:04:45.90ID:???
c#に比べたらgoなんてゴミだよ
VSとの組み合わせは最強すぎる

763nobodyさん2019/03/30(土) 14:00:11.12ID:???
速度で言ったらphp7-jitはphp7の25倍速い

764nobodyさん2019/03/30(土) 23:52:55.98ID:???
>>759
phph8でJITが導入されて爆速になる予定
https://qiita.com/rana_kualu/items/ba312d2789bd228f887a

goの1/5だけど、まぁ十分やろ(適当)

765nobodyさん2019/03/31(日) 06:45:34.92ID:???
PHP-JITは普及しそうなの?

766nobodyさん2019/03/31(日) 09:27:49.51ID:???
jitになるとなんで速いの?

767nobodyさん2019/03/31(日) 10:39:15.53ID:GvGc759M
>>766
CPUをぶん回すタイプのWebアプリケーションは少ないため
JITになっても大半のアプリは高速化はしない

それよりシェアードナッシングを止めたほうが
効率良くなるが現在も大半のアプリがそれに頼って作られている

768nobodyさん2019/03/31(日) 13:27:18.64ID:???
徳丸浩さんの参考書で勉強している者ですが、次のようにセッション変数のトークンを確認しているのはなぜですか?
PHPは勉強中のため変なことをお伺いすると思いますが、どなたかお教えください。

if (empty($_SESSION['token'])) {
 $token = bin2hex(openssl_random_pseudo_bytes(24)) ;
 $_SESSION['token'] = $token ;
} else {
 $token = $_SESSION['token'] ;
}

769nobodyさん2019/03/31(日) 14:14:07.80ID:???
>>767
ほほー、じゃあ想定してんのはwebアプリ以外なんだろうかな
phpはwebのイメージだけど

770nobodyさん2019/03/31(日) 14:42:26.15ID:???
>>769
WEBアプリならなおのこと、エンジン部分は基本使いまわしなので
JITなら案外と高速化しまくると思うよ

771nobodyさん2019/03/31(日) 14:55:38.87ID:GvGc759M
>>770
wordpressの速度は大して変わらないと>>764にある

772nobodyさん2019/03/31(日) 15:17:10.69ID:???
>>768
トークンなかったらその関数で作って、トークンあればそいつを使うだけじゃん

7737682019/03/31(日) 16:45:31.75ID:???
>>768です

>>772さん
アドバイスありがとうございます。
おっしゃる通りなのですが、例えば先のコードから次の部分だけを抜き出した場合

$token = bin2hex(openssl_random_pseudo_bytes(24)) ;
$_SESSION['token'] = $token ;

この場合だと、リロードするたびにトークンが変更されます。
参考書には if() と empty() でトークンの有無を確認していますが、上の抜き出した部分だけでは不十分だったのかなと思いまして。
変なことを言っていたら申し訳ないです。

774nobodyさん2019/03/31(日) 19:23:43.36ID:???
トークンの有無を確認しないなら、何のためにトークンを発行してるんだ?

775nobodyさん2019/03/31(日) 19:33:28.52ID:???
コードよりトークンがどう利用されるのか仕組みの方を勉強することだわな

776nobodyさん2019/03/31(日) 19:49:52.91ID:???
>>773
参考書に有無の処理書いてんのになんでお前が勝手にソース抜き出して毎回上書きされて困るとか吐かしてんだよ
参考書のとおりにやりゃいいだろ
アホなの?

777nobodyさん2019/04/01(月) 00:44:08.70ID:???
特訓が足りん

7787682019/04/01(月) 17:16:15.88ID:???
>>768です
お返事が遅くなり申し訳ありません。

>>774さん
ご指摘の通りです。
考えが及びませんでした。

>>775さん
アドバイスありがとうございます。
仕組みから理解できるよう努めます。

>>776さん
おっしゃる通りです。
これから参考書を熟読します。

>>777さん
ありがとうございます。

皆さん様々なアドバイスありがとうございました。
早く1人前になれるよう頑張ります。
ありがとうございました。

779nobodyさん2019/04/01(月) 17:22:26.31ID:???
最初はトンチンカンなこというもんだよガンバレー

780nobodyさん2019/04/06(土) 12:39:57.65ID:???
外部サービス連携みたいなやつあるじゃん
OpenIDっていうのかな?あれって審査とかいらない?
例えばYahooのログインIDで自分のサイトにログインさせたりとか出来る?
なんかPHPでその変簡単に構築できないっすかね?

781nobodyさん2019/04/06(土) 16:24:18.78ID:???
ワイの簡単はオミャーにゃ難しいぜよ

782nobodyさん2019/04/06(土) 18:08:30.65ID:???
>>780
oauth認証でぐぐれ
簡単にできるよ

783nobodyさん2019/04/06(土) 21:50:51.71ID:OvoweIM9
リフレッシュトークンはサーバに保存するか
Cookieに入れる場合は暗号化するようにしよう

784nobodyさん2019/04/06(土) 22:04:05.50ID:???
GIANT ESCAPE R3 2017年版で質問です
ホイールはwh6700に換装しています

リアをシングル固定ギアにしてみようと思ったのですが、
どういった規格で探せば良いでしょうか?

メルカリで300円でギアを買ってみましたが、合いませんでした(切り欠きがない)
https://i.imgur.com/Hpelflv.jpg

785nobodyさん2019/04/06(土) 22:04:39.08ID:???
すいません、スレ間違えました

7867802019/04/07(日) 14:58:32.00ID:???
ありがとう!
RFCあるみたいだから早速呼んでみます

787nobodyさん2019/04/07(日) 18:06:48.41ID:aB3Ry88Y
phpにもOAuthのライブラリあるから
車輪の再開発は必要ない

788nobodyさん2019/04/07(日) 20:36:48.30ID:???
MySQL(mariaDB)のbit型のカラムに、PHPのPDOを使って値を入れることは
不可能なんでしょうか?

INSERT INTO tb (flag) VALUES (:flag);

flagはbit型で:flagはプレースホルダー
:flagの置き換え値として(int)1やらtureやら入れてもエラーになります

まぁbit型やめてtinyint(bool)型にでもすれば良いのでしょうが、何か解決策がありましたら
教えてください

789nobodyさん2019/04/07(日) 21:39:06.29ID:Fnv9YApW
いじめはどこの町にもあるが島本町は特に酷い
「大阪府三島郡島本町のいじめはいじめられた本人が悪い 」なんて
公言する町は他に無い

790nobodyさん2019/04/07(日) 23:27:54.68ID:???
>>788
bitに変換させてないんちゃうの

791nobodyさん2019/04/08(月) 04:15:15.61ID:???
>>790
そもそもphpにbit型はないのでは

792nobodyさん2019/04/08(月) 06:04:01.29ID:???
bindValue(':flag', 0b0001, PDO::PARAM_INT)

7937882019/04/08(月) 07:51:48.89ID:???
レスありがとうございます。

bindValueを使って明示的にINT型を指定しないと、INT型の値が勝手に文字列型に
変換されてしまうのですかね。

794nobodyさん2019/04/08(月) 15:18:14.98ID:???
echo ( string $arg1 [, string $... ] ) : void
↑の$arg1のargって何かの略語なんかね

795nobodyさん2019/04/08(月) 15:22:03.89ID:???
argument
オーギュメント、まんま引数の意味
元は論拠から着てるとかなんとか
https://imrpg.hatenablog.com/entry/2018/05/05/181925

796nobodyさん2019/04/08(月) 15:40:48.00ID:???
オーギュメントか、ありがとう。
ちょっと牛肉買ってくる

797nobodyさん2019/04/08(月) 18:27:34.46ID:???
アーギュメントじゃないんかい

798nobodyさん2019/04/08(月) 20:43:29.43ID:???
コアラはアウストラリア
八月はアウグスト

799nobodyさん2019/04/08(月) 21:47:26.58ID:???

or
au


ou
ar

800nobodyさん2019/04/08(月) 21:53:29.75ID:???
augmentはオーグメントだがargumentはアーギュメントの方が近いだろう
auじゃなくてarなんだしarcをオークとは読まんじゃろ

801nobodyさん2019/04/08(月) 22:23:09.90ID:???
オーチャー
オーカイブ
オーキテクチャー

802nobodyさん2019/04/08(月) 22:33:41.44ID:???
https://www.google.co.jp/search?lr=lang_ja&;ie=UTF-8&oe=UTF-8&q=argument
アーギュメントだな

803nobodyさん2019/04/08(月) 22:46:37.10ID:kRBbdZLC
armor=オーマー?

804nobodyさん2019/04/09(火) 08:55:14.04ID:???
火山 Just a runaway

805nobodyさん2019/04/09(火) 09:02:11.43ID:???
PHPで10〜20バイト程度のテキストを暗号化するときって
おまえらはなにを使っている?

806nobodyさん2019/04/09(火) 13:48:48.68ID:???
エニグマ

807nobodyさん2019/04/09(火) 17:16:51.21ID:???
openssl_encrypt

808nobodyさん2019/04/09(火) 17:18:13.68ID:???
カエサル暗号

809nobodyさん2019/04/09(火) 20:56:20.11ID:pb85gzH6
mozilla/node-client-sessions: secure sessions stored in cookies
https://github.com/mozilla/node-client-sessions

Implementation of Mozilla's node-client-sessions in PHP
https://gist.github.com/Metevier/dee26ce4c2eb9ba0231f690bf9f5b344

810nobodyさん2019/04/12(金) 12:25:16.01ID:???
レンサバでwhile(1){ sleep(1); }なPHPを、
をexecでバックグラウンドにして呼び出すPHPにWebからアクセスしてみたら、
うっかり起動してしまって、
pid調べた後、同様にexecでkillすることで止まったんだけど、
これってレンサバ的にはどうなんでしょう?
バックグラウンド処理って禁止してるイメージ強いんだけど。
もし急に止められたりしないのであれば、cron使えないから代用にしようかなと・・・

811nobodyさん2019/04/12(金) 13:00:19.15ID:???
レン鯖は大抵実行時間が一定以上でに強制終了だろう
30分くらい容認してくれるところもあれば、3分程度で終了してくるところもある

cronのようなものを使いたければ、Google Apps Script (Googleドライブにあるマクロのようなもの)で
特定時間をトリガーにしたスクリプトを使い、UrlFetchAppでそのスクリプトをキックしたほうがいい。

812nobodyさん2019/04/12(金) 13:07:23.67ID:???
>>810
>>811の通り、勝手に止まる
年中動かすと間違いなく怒られるからやめとけ
ちなみにcronがない場合は「疑似cron」というものがある
例えば12:00に動かしたいものがある場合、12:00を過ぎてから初めてアクセスしたらcronが動くというもの
アクセス数が多ければcronっぽくなるが、アクセス数が少ないと13:00になったり14:00になったりする

8138102019/04/12(金) 14:56:19.06ID:???
>>811-812
ありがとうございます。やっぱだめなんですね。
おふた方のアドバイスを元にやってみます。

814nobodyさん2019/04/12(金) 16:30:12.72ID:???
JIT採用のPHP8が出たら、みんなPHPに戻ってきてくれるかな

815nobodyさん2019/04/12(金) 20:42:42.81ID:32H8HkBl
なぜ戻る?

816nobodyさん2019/04/12(金) 22:34:35.56ID:???
戻る理由もない

817nobodyさん2019/04/13(土) 00:22:40.88ID:???
PHPを使う理由ってレン鯖がPHPしか使えないからとか、
PHPで作られた既存プロジェクトの改修とか、そういう理由じゃない?
新規で作るならPHPを選ぶ理由はない気がする

818nobodyさん2019/04/13(土) 00:37:36.59ID:???

819nobodyさん2019/04/13(土) 00:54:54.14ID:???
ワードプレスのための言語だと思っている

820nobodyさん2019/04/13(土) 01:15:24.12ID:???
PerlとPHPが共存してた時代にどっちやるか迷ってPHP始めたけど
まあ今からなら初心者でも絶対違う方法選ぶだろうね
環境構築に躓いてPHPに挫折的に入門してくる層を取り込めれば良いと思うわ

821nobodyさん2019/04/13(土) 21:41:16.88ID:???
>>818
Rubyには勝ってるのか

WebだとやっぱJavaかPythonにいくのかな新規の人は

822nobodyさん2019/04/14(日) 00:24:20.18ID:???
Pythonはphpより遅いだろ?
それとも速度上がった?

823nobodyさん2019/04/14(日) 07:02:53.46ID:???
今や速度はマシン側の進化やチューニングが重要で
無駄な処理が多い言語でよほどそこで足引っ張ってない限り
言語の速度にはこだわらないってスタンスでいいと思うわ
それよりも扱いやすさと汎用性と安全性のバランスがとれてるもの
googleとか見てるとそんな感じだし

訪問者が読み込みを放棄して他所のサイトにいってしまいかねない
WordPressは例外中の例外
PHPの場合JIT実装にリソースさくならWordPressどうにかしたほうがいいわ

824nobodyさん2019/04/14(日) 09:32:40.47ID:???
今は仮想化ばかりでマシン側なんか意識しないだろ

PHP 7.3とPython 3.7.2の速度比較じゃPHPの全勝
https://benchmarksgame-team.pages.debian.net/benchmarksgame/faster/php.html

Pythonは遅すぎだし、DB接続には追加パッケージ必要だしで
WEBでは使わず、ローカルでなんかさせたいときの言語って感じがするね

825nobodyさん2019/04/14(日) 10:44:05.86ID:nosTgM3P
Wordpressは色々問題があるが
セキュリティとかどうでも良くて
基本的に何でもかんでも自由にアクセス出来るオープンビッチなのを先にどうにかした方が良い

自由にphpファイル作れるのがまずあり得ない
イミュータブル・インフラストラクチャー? GitOps?何それおいしいの?
みたいな感じ?

826nobodyさん2019/04/14(日) 12:07:01.42ID:???
>>825
まぁ自由度高すぎるのは考えものだわな
function.phpももう少しルール決めておいてほしかった

827nobodyさん2019/04/14(日) 12:29:39.64ID:???
>>823
WordpressはPHPで作られているというだけでPHP本体の開発とは何の関係もないのだが
JITはそんなに重要ではないがFFIみたいな割と未来があるものも開発されてるしな

828nobodyさん2019/04/14(日) 13:28:49.69ID:???
>>823>>825-827
CMS用途でWordPressを選ばないならdrupalになるだろうが、
これもPHP必須。

829nobodyさん2019/04/14(日) 15:09:42.41ID:???
Movable Typeがあるだろ!

830nobodyさん2019/04/14(日) 15:45:31.29ID:???
>>827
そうはいってもPHPが存在する理由なんてWPがあるからみたいなもんだし
移植可能なWPのようなソフトウェアを
今からPythonでスクラッチから開発したら
いくら素の性能がまさるとはいえPythonで作ったWPモドキに軍配があがるだろう

831nobodyさん2019/04/14(日) 15:55:01.94ID:???
WPはプラグインとテーマの数が半端ない
それが使えればpythonだろうがCだろうがなんでも良いぞ

832nobodyさん2019/04/14(日) 16:31:30.11ID:???
>>829
データが増えると駄目。

833nobodyさん2019/04/14(日) 20:37:52.59ID:???
PHPの存在理由がWPだけというなら
基本的にWeb開発はJava一択ってこと?
RubyやPythonがWeb開発でPHPより勝る理由はそうないだろうし

834nobodyさん2019/04/14(日) 20:43:38.00ID:???
よしならばGoだ!

835nobodyさん2019/04/14(日) 20:52:29.21ID:???
フルスクラッチでなんでもかんでもやるならGoは悪く無い

836nobodyさん2019/04/14(日) 20:58:21.41ID:???
なんでJavaがだめかというと冗長でとにかくくどい長ったらしい。
環境構築もそれなりに大変、コードの保守も大変なのであえてJavaを選ぶのはドM。
その点Pythonは実にシンプルで、ドキュメントが多く初心者向けで覚えやすくPHP並に簡単。
ただしFW前提の開発になるので、FW含めて覚える感じになるが。
環境構築もPHPほどではないが比較的容易な方。
スマホ開発から入るエンジニアはJava触るもんだから、
馴染みのあるJavaでWebもやろうとなることはあるだろうけど。

837nobodyさん2019/04/14(日) 22:06:28.31ID:???
PHP言語そのもののzend?よりもさらに前身のところの元開発者です。
ポインタを裏方化したくてオブジェクト指向(というかオブジェクト演算子の利用)ができること、
画像には基本的に書き込みしない、
文字列と数値以外は使わないこと、
変数型はソースを解析してそれっぽく扱うこと、
などwebも鑑みながらプログラミングを楽にできることを徹底したつもりです
一応他の言語に比べて予約語以外は覚えることに苦労する面をすくなくするように気をつけたつもりです

838nobodyさん2019/04/14(日) 22:27:47.19ID:???
実際Railsも下火だしwebのバックエンド開発言語はベスト不在の混乱期に陥りつつあるね
フロントのトレンドサイクル馬鹿にしてる場合じゃないで
まぁワイはKotlinいったるやで

839nobodyさん2019/04/14(日) 23:58:48.04ID:???
>>837
こんばんは、トーマス

>>838
ワイはGroovy派

840nobodyさん2019/04/15(月) 00:02:34.24ID:???
.Net Coreが来るだろ
Webサーバーも稼働率で言えばIISが一番多いし

841nobodyさん2019/04/15(月) 00:16:10.96ID:???
こういう転換期にPerlerたちはどこへ向かっていったのかな?
PHPerが向かうべき先はPHP8なのか、Pythonなのか、NodeJSなのか
はたまたLLからの脱却なのか

842nobodyさん2019/04/15(月) 00:56:00.76ID:???
webゆーてもクラウドソーシングで記事書かせてWPに上げとるのがほとんどやで。

843nobodyさん2019/04/15(月) 10:21:47.48ID:???
MediaWikiっていうWikipediaを始めとするさまざまなwikiのエンジンでもPHPが使われてだな…
Wordpressだけじゃないんだよ・・・

844nobodyさん2019/04/15(月) 10:24:50.84ID:???
Pukiwiki形式を取り込める今どきのCMSが出たら言語関係なく移るw

845nobodyさん2019/04/15(月) 11:04:05.60ID:???
wikiは記法が乱立しすぎ
もうちょっと統一するか変換するかしてほc

846nobodyさん2019/04/15(月) 12:10:01.79ID:???
wikiなんてwp利用者と比較すればミジンコみたいなもんだろ

847nobodyさん2019/04/15(月) 12:10:09.94ID:???
マークダウンというwikiに統一されるよ

848nobodyさん2019/04/15(月) 12:14:54.59ID:2mKAe7m/
マークダウンはシンプル過ぎてメモにしか使えんw
アフィサイトに使えるくらい拡張したら一気に流行るだろ

849nobodyさん2019/04/15(月) 12:24:32.02ID:???
wikiなんてそれぐらいシンプルでええわ

850nobodyさん2019/04/15(月) 13:11:46.16ID:???
今はリッチテキスト系の入力フォームが主流で構文直書きなんかしてないだろ

851nobodyさん2019/04/15(月) 15:26:01.94ID:???
んで、PHPerは何使うのよ言語

852nobodyさん2019/04/15(月) 17:45:24.36ID:???
みんなでやろうNode.js
みんなで移住すれば怖くない

853nobodyさん2019/04/15(月) 20:01:59.69ID:???
サーバーサイドとクライアントサイドが同じ言語だと幸せなんだよね
現実は難しいけど

854nobodyさん2019/04/16(火) 01:10:22.81ID:???
終わりにまた一歩近づいた
https://ics.media/entry/190410/

855nobodyさん2019/04/16(火) 01:21:05.54ID:???
>>854
>SEOやアクセシビリティの点数も満点です。
頭悪すぎて読む気にならんわ

856nobodyさん2019/04/16(火) 08:57:18.49ID:???
>>853
それならブラウザでPHPを動かした方が良いよ

857nobodyさん2019/04/16(火) 09:04:00.91ID:???
すでにJavaScriptがあるのにPHP採用するなんてないだろ
そもそもサーバサイドの対応と違って難しいぞ
サーバサイドは開発者が選べばいいだけだが
ブラウザは結局ベンダー次第になるし
ユーザ任せのプラグインじゃまず普及しないだろう

858nobodyさん2019/04/16(火) 09:08:10.65ID:???
>>857
じゃあJavascript上でPHPを動かせば良いよ

859nobodyさん2019/04/16(火) 09:21:03.96ID:???
>>854 実際こういう記事が出てくるとWP導入するとこも減ってくるだろう

860nobodyさん2019/04/16(火) 09:25:23.67ID:???
>>856
ってネタでしょ

861nobodyさん2019/04/16(火) 09:43:19.67ID:???
>>854
これ静的ファイルを出力してるだけだろ
wpのプラグインにそんな機能持ってるのがあるのでフーンくらいにしか思わん

862nobodyさん2019/04/16(火) 10:11:56.11ID:???
せめてsmartyっていって

863nobodyさん2019/04/16(火) 14:16:43.07ID:???
プラグイン笑

864nobodyさん2019/04/16(火) 15:11:13.83ID:WhoMJ2W1
Wordpressは環境を共有するのむずい
何でデータベースにドメイン名含む完全なURLが入ったりすんの?

865nobodyさん2019/04/16(火) 15:22:50.45ID:???
>>864
素直に設計ミスと思う

866nobodyさん2019/04/16(火) 16:04:10.12ID:???
>>864
そりゃサブドメインとかでも同じDBで動かせるようにだろ
データベース一つで複数のサイトを運用できるようになってるんだから
ドメイン入ってないとどこのサイトのデータなのか判別できなくなるだろう

867nobodyさん2019/04/16(火) 16:21:48.44ID:???
WordPress3.0からマルチサイト対応だからな

868nobodyさん2019/04/19(金) 11:53:18.34ID:???
empty関数って何の役に立つ?

「empty($value)」と「$valueの真偽値」は丁度結果の真偽が正反対になるから
empty使わず変数の真偽値確認すれば良いのでは

869nobodyさん2019/04/19(金) 11:57:37.19ID:???
>>868
読みやすい

それを言い出すとほとんどの関数いらなくなるので・・・

8708682019/04/19(金) 12:07:23.24ID:???
>>869
可読性のための関数ということですか
たしかに!をつけるより読みやすいのかもしれませんな

871nobodyさん2019/04/19(金) 12:31:15.94ID:???
でもこれemptyはどう判定すんだっけ?ともなる

872nobodyさん2019/04/19(金) 12:32:00.21ID:???
それは真偽値判定でも同じでは

873nobodyさん2019/04/19(金) 12:33:43.18ID:???
>>868
empty はnullか空白かゼロの時にtrueになる。それをor 条件で記述するのが面倒くさい

自分はデフォルト値を設定する時に使ってる

874nobodyさん2019/04/19(金) 12:34:54.03ID:???
覚える量が増える

875nobodyさん2019/04/19(金) 13:11:47.21ID:???
>>868
https://php.net/manual/ja/function.empty.php

返り値
var が存在し、かつその値が空や0でなければ FALSE を返します。 それ以外の場合は TRUE を返します。

次のような値は空であるとみなされます。

"" (空文字列)
0 (整数 の 0)
0.0 (浮動小数点数の 0)
"0" (文字列 の 0)
NULL
FALSE
array() (空の配列)



文字列の"0"や数値の0までFALSE扱いされるんだから
表出力するとき、0やNULLをまとめて空白にしたり、-を入れたりしたいときは使えるんじゃね?

876nobodyさん2019/04/19(金) 13:14:22.56ID:???
empty issetは先にシンボルテーブルチェックされる
プロパティなら__issetがトリガされるが__getは呼ばれない

877nobodyさん2019/04/19(金) 13:44:39.45ID:SjRzRdFv
>>868
Notice: Undefined variable: value エラーが出ないように使ってる
explodeした時にセットされてないかもしれない配列を判定する時なんかに使う
if(empty($arr[19]))continue;
とか

878nobodyさん2019/04/19(金) 20:08:37.69ID:???
>>873
>>868
それは結局empty使わなくても!$valueでも同じって話では。
!$valueでもnull、空白、0、"0"はtrueになる。

ただ>>877の言うとおり変数自体が未定義のときもemptyなら警告が出ないってのは
確かに使えるところかも。

879nobodyさん2019/04/19(金) 23:48:02.66ID:5ElWTncv
emptyは0も空白扱いとか
挙動がイミフ

880nobodyさん2019/04/20(土) 00:01:06.08ID:???
web フォームでは数字項目でも空白で入力できて
しまうからempty で空か判断できるのは便利だよ

881nobodyさん2019/04/20(土) 00:17:31.06ID:???
単なる真偽値チェックでも同じこと

882nobodyさん2019/04/20(土) 20:49:26.90ID:???
エラーメッセージ
ご指定のファイル public://media/2019/04/20/無題.jpg はコピー先ディレクトリーが正しく設定されていないため、コピーされませんでした。
ディレクトリーパーミッションが原因かもしれません。詳しくはシステムログを参照してください。

publicプロトコルってなんでしょうか?

883nobodyさん2019/04/20(土) 23:13:02.62ID:???
プロトコルじゃなくてpublic_htmlとか公開されてるルートディレクトリじゃねーの?

884nobodyさん2019/04/20(土) 23:19:00.37ID:???
オレオレエラーメッセージの詳細聞かれても
作者に聞けとしか

885nobodyさん2019/04/20(土) 23:35:43.27ID:???
publicプロトコルなんて無いぞ
オレオレプロトコルが存在する可能性はあるが、まぁ無いだろう。多分。多分な。絶対とは言ってないぞ

886nobodyさん2019/04/21(日) 08:38:35.91ID:???
>>883が正解だろうな
かっこつけてpublic://とかやっちゃういたいたしい作者なのだろう

887nobodyさん2019/04/22(月) 08:16:08.88ID:???
mb_check_encodingについてですが
普通はmb_check_encoding($var)のようにチェックしたい値を指定して使いますよね
しかし公式マニュアルを読んでみると

> var
> 調べるバイトストリーム。省略した場合は、 リクエスト開始時からのすべての入力が対象となります。

とあります
このvarを省略したときに、すべての入力が対象になるという部分が漠然としているのですが
すべての入力とは何ですか?
GET、POST、Cookieですかね、さらにはファイルアップロードも関係あるんでしょうか

この文字コードチェックは完全でないのは知っていますが、気休め程度にGETやPOSTで送られてきた
パラメーターを1つ1つチェックしていました
しかし引数省略してコールすれば一括して文字エンコーディングのバリデーションできるなんてこと
あるんですかね

888nobodyさん2019/04/22(月) 10:36:32.35ID:???
http://git.php.net/?p=php-src.git;a=blob;f=ext/mbstring/mbstring.c

889nobodyさん2019/04/22(月) 12:30:01.69ID:???
>>887
まあ、省略することは考えないほうがいいでしょう。
$_GETや$_POSTは配列を含む可能性があるので、
そのへん考えて、それらの入力値はarray_walk_recursiveのような関数を使うのがいいらしい。
http://gihyo.jp/dev/serial/01/php-security/0020

8908872019/04/22(月) 20:08:37.95ID:???
>>889
レスありがとうございます

やはり1つ1つチェックした方が良いのですかね
たしかに配列の場合もありますし、そのときのmb_check_encodingの挙動が
わかりませんしね

891nobodyさん2019/04/23(火) 01:02:03.75ID:???
すべてのとは$_FILES以外
配列は再帰で処理されるよ
すぐ上のリンクに書いてある
あとストリームだけじゃなくシーケンスも検証すべき

892nobodyさん2019/04/23(火) 06:10:42.00ID:???
不正な文字エンコーディングによる攻撃って、何を心配してんのだろう?
mb_check_encodingなんて使ったことないけどな…
想定した入力値かどうかをチェックすればいいだけちゃいますのん?

893nobodyさん2019/04/23(火) 18:08:22.38ID:???
エロティーヤーティーヤッ

894nobodyさん2019/04/24(水) 00:21:00.07ID:W8CxzoJs
何でmb版があるとかよく分かんない仕組みなんだ?
phpの文字列って
全部UTF-8で良いじゃん

895nobodyさん2019/04/24(水) 00:42:22.30ID:???
>>894
新規サイトはもちろんそう
古いサイトがこれまたね・・・

896nobodyさん2019/04/24(水) 10:15:01.81ID:???
>>894
うちはezwebにもimodeにも対応しているよ

897nobodyさん2019/04/24(水) 19:01:28.66ID:???
自慢にもならねえ
老害見る目で見られるんだぜ

898nobodyさん2019/04/24(水) 19:16:57.00ID:???
imodeって今でもあるの?
hdmlとかもうマヂ無理…

899nobodyさん2019/04/25(木) 02:58:55.52ID:???
最近はutf8mb4とかあるからな…

900nobodyさん2019/04/26(金) 02:13:22.85ID:???
どうせ統一されないから内部表現はバイナリで良いという発想のため
そもそもunicode勢でもstringがutf8の言語なくない?

901nobodyさん2019/04/26(金) 05:06:51.79ID:???
mb_check_encodingの引数省略callで
$_FILES以外の入力の文字コードチェックできて
しかも配列の入力も再帰的にチェックされるなら
引数省略でお手軽に入力チェックした方がいいと
思うのだが何か問題あるの?

902nobodyさん2019/04/26(金) 06:30:21.92ID:???
どうせバリデーションしてんだろ?
とりあえず全部やるって人もいるけど
本当に必要なのか考えたほうがいい

903nobodyさん2019/04/26(金) 11:41:16.88ID:???
$_POST['name'] = "\xad";

if(!mb_check_encoding())
die('invalid encoding');

とやっても何も反応しなかった

mb_check_encoding($_POST['name'])
にすれば反応があった

引数省略はインチキくさいな…

904nobodyさん2019/04/26(金) 14:58:40.97ID:???
変換こけたらカウントする仕様だからねえ

905nobodyさん2019/04/27(土) 13:52:32.41ID:o/Gfy+Vo
              _              _          /
       もっと |稼| ぎたい!! お金 |超| 大好き!! ./ ∧   ∨
               ̄               ̄      /   /\  \ \
      >'´', ∨>、 .┌、 ┌┐ __ __  __ l  / ⌒介トム`<∨
        〈  .∨ ./ ̄',| ヽ| ├ ┤ | ! |  /  ',l  l ,.ィ兮、   ,イ^兮∨
       ∨   / △∧    .|  |  |__| └  △ ',  l ^ー‐'",   `¬'''"∨
       ∨   / ,‐、 ∧_ヘ_」  |__|─‐  ,-、  ', ',     `' ,,     ∨
       ∧_/ ̄   ̄   └‐┘    '─'  ⊂⊃ ゝ  `', ̄/   /}
                    /7、ヘ¨ ⊂⊃ ⊂⌒7\>、 ‐'  x< /
           高収入求人情報 ム/ ヽゝ ⊂ニ⊃ ∠/ {   //`´ / j }/ /
                                 ゝ l/£`ーイ /   /
                                     ヽ ゝ'⌒>‐' /
                                         `l    \

906nobodyさん2019/04/28(日) 01:05:06.77ID:???
>>889
この記事見て思ったんだが
$_SERVERもバリデーションする必要あるもん?
改竄される可能性あるのかな

907nobodyさん2019/04/28(日) 12:30:42.80ID:???
例えばHTTP_USER_AGENTなんかは簡単に偽装できるからね
使わないならバリデーションの必要ないけど何かで使うなら普通にやる

908nobodyさん2019/04/28(日) 14:23:20.44ID:???
PHPerなんて、無意識にhtmlspecialcharsをencoding指定でちゃんと不正な文字か出力時にチェックしてるはず。

909nobodyさん2019/04/28(日) 14:35:34.42ID:???
個人叩きはしたくないけど、
こんな共感出来ない記事書いてたっけなと不思議だったが、人違いだった。
あれは大垣さんじゃなくて徳丸さんだったな。
どっちもPHP界じゃメジャーな人だった気がするが。

910nobodyさん2019/04/29(月) 06:16:31.94ID:???
refererも偽装できるんだっけ

911nobodyさん2019/04/29(月) 08:28:34.82ID:???
HTTP_USER_AGENTやHTTP_REFERERに、クライアントが制御文字を仕込むことって
可能なんですか?

912nobodyさん2019/04/29(月) 09:27:46.06ID:???
Chromeの拡張機能にユーザーエージェントを偽装できる奴あるじゃん

9139112019/04/29(月) 09:44:07.85ID:???
偽装はできましょうが、Fiddler使ってUser-Agentに改行文字やらタブ文字を仕込んで
送信してみると、Bad Requestエラーが返ってきますね
Apacheがはじいてるんでしょうか

$_SERVER['HTTP_USER_AGENT']に制御文字を伝えるのは難しいってことですかね

9149112019/04/29(月) 10:17:01.24ID:???
おっとTabはセーフでした
改行はBad Request行きですね

915nobodyさん2019/04/29(月) 13:57:23.89ID:???
ヘッダに制御文字をセットして送れるようなアドオンがあった気がするから
多分そのままやろうとしてもブラウザ側でなんかしてんじゃないかな

9169112019/04/29(月) 19:46:34.04ID:???
ブラウザで止めてる可能性もあるわけですか

917nobodyさん2019/04/30(火) 16:16:15.00ID:???
オレオレWebサーバとWebブラウザで
制御文字受け付けるソフトウェアを作ることはもちろん出来るが
そもそもRFC違反なので
まともなWebサーバやWebブラウザであれば
そのへん対応はしてる

918nobodyさん2019/05/01(水) 09:45:11.48ID:???
じゃ結局$_SERVER['HTTP_USER_AGENT']のバリデーションは
mb_check_encodingかましておけば良いということで

919nobodyさん2019/05/01(水) 14:49:28.76ID:???
ファイルの重複登録をさけたいのですが
ファイルのハッシュ値計算ってどうやるんですか?
md5(file_get_contents('a.jpg'))
こんなんでいいんでしょうか?
jpgならまだいいんですけど
これが例えば動画とかだったらメモリとか大丈夫ですかね?

920nobodyさん2019/05/01(水) 14:51:24.94ID:???
>>919
md5_file()あるよ

921nobodyさん2019/05/01(水) 16:37:42.57ID:???
sha1_fileのほうが良くない?

でもハッシュを格納して保存しておくコストとかハッシュ計算して比較する時間より、
直接比較したほうが早かったから直接比較してるな…↓みたいな感じで
〜2MBくらいまでのjpeg or pngファイルの話だけど

(binary)file_get_contents($path1) !== (binary)file_get_contents($path2)

9229192019/05/01(水) 16:46:57.24ID:???
>>920-921
どうもありがとうございます。
専用関数があったのですね。早速試して早い方を採用してみます。
binaryへのキャストなんて機能あったんですね。知りませんでした。
新発見に感謝です。

923nobodyさん2019/05/02(木) 15:17:11.58ID:IrXSQyv/
教えてください。
header関数とini_set関数を記述する場合、どちらを先に記述すればいいですか?
よろしくお願いします。

924nobodyさん2019/05/02(木) 15:58:58.51ID:???
headerはスクリプト中で初めてechoする前(htmlに埋め込む場合はそれより前)に入ってればいい
try-catchブロックで最後の最後にheaderでエラーページに飛ばすとかいう処理は認証ロジックでよく書いたりするのでは?

9259232019/05/02(木) 16:08:51.31ID:IrXSQyv/
>>923です。

>>924さん
教えてくださり、ありがとうございます。
まだ未熟なため、そこまで頭が回りませんでした。
改めて、ありがとうございました。

926nobodyさん2019/05/03(金) 10:57:21.04ID:???
php7.3使ってる?

927nobodyさん2019/05/03(金) 13:14:27.31ID:q6AE+Q6a
>>926
使ってる?

928nobodyさん2019/05/03(金) 13:16:40.47ID:???
phpつこうた

929nobodyさん2019/05/03(金) 14:22:53.19ID:???
LAMP環境でPHPを保守運用するときのアドバイスお願いします

930nobodyさん2019/05/03(金) 23:06:26.24ID:???
SQLインジェクションにきをつける

931nobodyさん2019/05/03(金) 23:07:41.56ID:???
それLAMPじゃなくてもじゃね

932nobodyさん2019/05/04(土) 00:40:16.77ID:???
mysql_secure_installationを実行しておく

933nobodyさん2019/05/04(土) 09:22:50.85ID:74tfT9f9
Apacheではなくnginxにする

934nobodyさん2019/05/04(土) 13:52:18.13ID:???
質問ざっくり過ぎて答えようがないわw

935nobodyさん2019/05/04(土) 19:50:01.68ID:HZeq1bgi
令和元年をイジメ撲滅元年にしましょう

>大阪府三島郡島本町のいじめはいじめられた本人が悪い
>みんなそう思ってる
>誰もいじめの被害者に同情しない
>はよ死ねイジメられるクズ
           ↑
島本町民以外の皆さん
イジメは卑劣な行為なので隠ぺいするのは学校や加害者側に後ろめたい気持ちがあるからですが
いじめがあったことを認めたうえで被害者に責任をなすりつけるなんて最低最悪ですね

イジメ撲滅は島本町から
島本町は自浄能力のない腐った町なので
外圧でイジメを撲滅しましょう

大阪府や大阪府教育委員会は
島本町みたいな糞町を放置しておくのか?

936nobodyさん2019/05/06(月) 12:36:34.85ID:???
訪問者がまだいるかってどうやって検知すればいいですか?
非同期通信で30秒おきぐらいにクライアントからサーバに通知する方法は思い浮かびますが
最近はこんなことしませんよね?

937nobodyさん2019/05/07(火) 08:58:12.42ID:???
>>932
mysql_secure_installationってなに?

938nobodyさん2019/05/07(火) 14:06:24.74ID:???
ググれや

939nobodyさん2019/05/07(火) 14:58:52.45ID:H3VnEucY
MySQLではなくPostgreSQLにする

940nobodyさん2019/05/07(火) 15:08:09.59ID:H3VnEucY
>>936
WebSockets?

使おうと思えばphpでも多分使えるけどかなり面倒
リクエストの度にメモリの内容を全消しする方式のPHPとは相性が悪い

GraphQLのSubscriptionもWebSocketsが要るが、phpでは実装困難

https://github.com/webonyx/graphql-php/issues/9
https://github.com/overblog/GraphQLBundle/issues/155

941nobodyさん2019/05/07(火) 17:50:01.58ID:???
>>936
どういう理由で訪問者を知りたいのかによるだろう
チャットのように訪問者同士でやりとりするようなシステムなら
Server-Sent Eventsを使えばいい。event-streamを送ってる間は訪問者がいる状態だ。それをカウントしろ

ただ自己満足で訪問者数を知りたいだけなら
Google Analyticsでも仕込んでおけ

942nobodyさん2019/05/08(水) 00:09:32.50ID:???
Ajaxでええがな

943nobodyさん2019/05/08(水) 06:05:48.82ID:???
チャットみたいなリアルタイムなwebアプリはnode.jsがいいって聞くけどphpでも問題ないの?

944nobodyさん2019/05/08(水) 06:10:50.42ID:???
面倒

945nobodyさん2019/05/08(水) 11:53:27.50ID:kDAnwyo4
zend_framework3使ってる人いますか?
1からの移行なんだけど、
本も出てないみたいだし日本語の記事もあまり見ないから2にするか迷ってます。
3ってリリースから1年以上経ってると思うけどコケてるのかな?

946nobodyさん2019/05/08(水) 12:03:07.05ID:???
そんな書籍も出てないバージョンに移行するくらいなら
フレームワークごとまるっと変えちゃえば?
今はLaravelほぼ一択でしょ

947nobodyさん2019/05/08(水) 12:08:32.78ID:???
fuelphpでいいと思うよ

948nobodyさん2019/05/08(水) 12:45:15.91ID:???
Laravelって遅くない?

949nobodyさん2019/05/08(水) 14:11:45.33ID:???
>>948
バリおそだよ
あと日本語サイトがクソ

950nobodyさん2019/05/08(水) 14:25:34.71ID:KtraEh0E
Symfony4は?

951nobodyさん2019/05/08(水) 16:29:23.82ID:???
今から使うならSymfony5の方がいいだろ。

952nobodyさん2019/05/08(水) 17:26:25.23ID:???
DB処理をPDOでゴリゴリ書けばいくらかましになる

9539452019/05/08(水) 18:12:34.81ID:???
zend製だし1がかなり使いやすかったからいいかなって思ったんだけど誰も使ってないのか。
今一番シェア率高いのってsymphonyなのかな?

954nobodyさん2019/05/08(水) 21:17:06.09ID:???
日本も海外も今のシェアトップはLaravelだよ
https://www.sejuku.net/blog/4016

955nobodyさん2019/05/08(水) 21:23:25.90ID:???
wordpressやろ

956nobodyさん2019/05/08(水) 21:54:31.23ID:Vc4r9yn5
速度求めるならPHPを選ぶな

957nobodyさん2019/05/08(水) 22:16:49.75ID:???
Laravelの遅さが気になるほどアクセス数あるサイトを運用してるやつここにはいなそう。

958nobodyさん2019/05/09(木) 00:46:53.24ID:HHcYDMUs
phpについて役立つ情報とか
http://mevius.5ch.net/test/read.cgi/tech/1557329831/l50

26N

959nobodyさん2019/05/09(木) 02:21:39.95ID:???
いやLaravelはアクセス数とか関係無く、単純に読み込むのが多過ぎて遅いって感じだろ

960nobodyさん2019/05/09(木) 02:29:13.57ID:???
だから結局は>>956って話だろ
goでも使ってればいい

961nobodyさん2019/05/09(木) 03:25:55.39ID:???
速度求めるならPHP使うなで終わるならこんなスレ見に来なくていいぞ
そっから話が展開しないし
このスレはPHPでも速度を求めたっていいじゃない
っていう思考のやつじゃないと無意味なスレだからな

962nobodyさん2019/05/09(木) 07:06:19.20ID:???
PHP Conference、のぞいたことある?
今度言ってみようかな

963nobodyさん2019/05/09(木) 08:12:01.43ID:+Cf+P2JY
PHPフレームワークで速度1位はUbiquity
2位のSymlexの倍以上の速度
2位はSymlex
3位はSymfony

http://www.phpbenchmarks.com/en/

1位と2位がきいたことねえ

964nobodyさん2019/05/09(木) 08:36:36.00ID:???
phpの速度よりもこの混沌としたキャッシュ・言語周りどうにかしてくれ〜〜〜

965nobodyさん2019/05/09(木) 09:28:42.91ID:???
何が混沌としてるのか言いたいことがよく分からん

966nobodyさん2019/05/09(木) 09:47:27.46ID:???
>>959
Laravelの読み込みよりディスクIO、DBアクセス、外部API連携、HTTP送受信の方が遅いやろ。どんだけシビアなシステムつくってるん?

967nobodyさん2019/05/09(木) 10:08:01.84ID:???
>>964
さっぱりしたフレームワークを使え

968nobodyさん2019/05/09(木) 10:20:43.63ID:???
>>965
ブラウザでキャッシュ
サーバーでキャッシュ
jsで独自にキャッシュ
プロクシでキャッシュ
更にクッキー
更に何故かキャッシュされない

更にこれがブラウザ毎に挙動が違ってうわぁぁってなる

969nobodyさん2019/05/09(木) 10:23:06.94ID:???
>>968
PHP関係ないやん
HTTPの勉強をしろ
基礎体力をつけてからまた来い

970nobodyさん2019/05/09(木) 13:18:37.13ID:???
DBに負荷かけないようにRedisのようなメモリDBを併用してるとキャッシュに悩まされるな

971nobodyさん2019/05/09(木) 14:37:12.15ID:???
アプリケーション側よキャッシュに悩まされるやつはアーキテクチャ設計が間違ってるよ。透過的に扱えない時点でキャッシュ以外の用途を持たせてる。

972nobodyさん2019/05/09(木) 14:49:51.50ID:xQil3OcG
全部joinしたテーブルを作れば
redisのキャッシュなんていらない

973nobodyさん2019/05/09(木) 14:51:18.85ID:???
キャッシュ以外の用途なのにキャッシュを効かせてしまっている またはその逆
という、 >>968 がクソ設定下手の無センスだという話よね。 いるよねそういう子

974nobodyさん2019/05/09(木) 18:13:33.05ID:???
センスで開発してんの?
さすがペチパーかっけぇ

975nobodyさん2019/05/09(木) 22:24:31.29ID:???
シックスセンスで開発とか普通やろ

976nobodyさん2019/05/10(金) 09:49:05.54ID:???
センスなしで開発されるよりは余程マシなのでは

977nobodyさん2019/05/10(金) 20:29:49.26ID:???
新人「私はセンスがあるので教育など不要です。教育でセンスが鍛えられるんですか?(笑)」

978nobodyさん2019/05/10(金) 21:07:10.94ID:???
>教育でセンスが鍛えられるんですか?
勿論

979nobodyさん2019/05/10(金) 21:49:03.04ID:???
>>977
むしろ教育以外でセンスを鍛える手段あるか?

980nobodyさん2019/05/10(金) 22:00:34.45ID:???
独学やろ
アニメのみすぎやで

981nobodyさん2019/05/11(土) 00:45:50.26ID:???
そのセンスって独りよがりじゃないですか

982nobodyさん2019/05/11(土) 02:43:06.15ID:???
センスってまさかかっこいい関数名を付けれるセンスとか言わないよな?

983nobodyさん2019/05/11(土) 07:04:18.29ID:CgpoEuxY
『これ、このまま進んだら3ヶ月後破綻するな…』と、10行程度書いた段階で気づいてリファクタ始められるのが、センス。

984nobodyさん2019/05/11(土) 08:53:40.12ID:???
>>983
普通と思ったけど、確かに初心者の頃はコード書くのに必死だったな

985nobodyさん2019/05/11(土) 10:14:30.15ID:???
プログラミングがどういうものかも知らないで
はじめてのプログラム10行で先行き見通せるなら天才だわ

986nobodyさん2019/05/11(土) 12:53:59.60ID:???
if/elseを3つ書いたら、あ、これはどんどん組み合わせの数が増えて理解できなくなるな、ということに気づくセンスはぐらいは欲しいよな。

987nobodyさん2019/05/11(土) 13:32:56.66ID:sQkEx0tm
if else switchを使っても良いぞ?
全組み合わせのテストを一緒に書くなら、だが

賢い奴は
OOPのポリモーフィズムで対応して
分岐を減らす

988nobodyさん2019/05/11(土) 18:49:26.28ID:CgpoEuxY
>>985

お前が才能無いだけ

989nobodyさん2019/05/11(土) 19:33:09.07ID:???
>>988さんスッゲーな
MENSA会員になれるかもしれないぜー

990nobodyさん2019/05/12(日) 02:46:35.86ID:???
PHPの勉強を初めて3秒でこの言語はダメだと見切りをつけるのが本当のセンスある人。

991nobodyさん2019/05/12(日) 03:28:14.43ID:???
他の言語知ってればphpは勉強しなくても使えるからな・・・

992nobodyさん2019/05/12(日) 07:21:18.84ID:???
phpしかやったことない状態で
javascriptやったけどすんなりわかったよ
さらにhtmlのボタンにイベントを割り振るようなフロントエンド開発に触れて
そこからc#でwindowsフォームアプリ作ってみたがこっちもそんなりいけた

まあ言語というより何を作るかだな
他の言語やってphpの構文やら機能理解したとこで
webアプリ開発をしたことがなければ(゚Д゚)ハァ?状態だと思うぞ

993nobodyさん2019/05/12(日) 18:00:57.21ID:a9GnKQ/e
>>990

お前が言語に使われてるだけの能無しだとすぐわかるのが、本当のセンス。

994nobodyさん2019/05/12(日) 18:07:20.07ID:???
くだらねーレスで埋めてんじゃねえよ
あく新スレたてろや

995nobodyさん2019/05/12(日) 18:17:13.21ID:???
しょうがねえ、俺がたてるか

996nobodyさん2019/05/12(日) 18:22:21.29ID:???
次スレ
https://medaka.5ch.net/test/read.cgi/php/1557652864/
お題スレはころころ変わるからくだスレ誘導と同じように変えといた

997nobodyさん2019/05/18(土) 00:51:37.93ID:???
埋めます

998nobodyさん2019/05/18(土) 00:58:26.84ID:???

999nobodyさん2019/05/18(土) 00:59:11.22ID:???
埋め

1000nobodyさん2019/05/18(土) 00:59:21.74ID:???
1000

10011001Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 225日 8時間 15分 26秒

10021002Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php

レス数が1000を超えています。これ以上書き込みはできません。