PHP質問・雑談スレ4【初心者お断り(ROM歓迎)】 [無断転載禁止]©2ch.net
: nobodyさん [sage] 2017/06/28(水) 21:34:09.26ID:??? PHPに関する質問や雑談をするスレです。 初心者お断り(ROM歓迎)と書いてますが、初心者用のスレが用意されているからで、 難しい質問や話題をしなければいけないわけではありません。 PHPマニュアルの読み方を概ね理解していて、関数リファレンスが正しく読める方用のスレです。 PHP未導入の方や、手取り足取りが必要な初心者の方はム板のくだスレへどうぞ。 ttp://mevius.2ch.net/tech/ (【PHP】で板内を検索) 前スレ ttp://medaka.2ch.net/test/read.cgi/php/1486956982/ その他リンク ・PHPマニュアル ttps://secure.php.net/manual/ja/index.php ・コードテスト・貼り付け用 ttp://ideone.com/ ・プログラミングのお題スレ (求PHPer参戦) ttp://mevius.2ch.net/test/read.cgi/tech/1480579110/ このスレで扱う話題 ・PHPのコード,設定や設定値に関する質問 ・常識的範囲内でのコードレビュー依頼・改良相談 ・PECL,PEARに関する質問 ・PHP新機能やPHP関連トレンドの話題 (FWや非公式ライブラリの話題や特徴比較は良いが使い方から先の話題は専スレへ) ・PHPのバグ発見報告・公式に報告する前の検証依頼 このスレで扱わない話題 ・直接関係ない○○特有の質問(専スレへ) (HH,エディタ,IDE,サーバ,OS,DB,SQL,FW,テンプレート,非公式ライブラリ・アプリケーション等) ・PHPの改造 : nobodyさん [sage] 2017/06/29(木) 05:05:56.62ID:??? いちおつ : nobodyさん [sage] 2017/06/29(木) 09:16:10.00ID:??? サーバー変えたら動かなくなりました。 OSアップデートしたら動かなくなりました。 OS変えたら動かなくなりました。 WEBサーバー変えたら動かなくなりました。 WEBサーバーにパッチプログラムをあてたら動かなくなりました。 DB変えたら動かなくなりました。 DBをアップデートしたら動かなくなりました。 PHPのアップデートプログラムを更新したら動かなくなりました。 PEARのバージョン変えたら動かなくなりました。 PEARのアップデートプログラムを更新したら動かなくなりました。 WordPressのバージョン変えたら動かなくなりました。 WordPressのプラグインのアップデートプログラムを更新したら動かなくなりました。 Railsアップデートプログラムを更新したら動かなくなりました。 Rubyアップデートプログラムを更新したら動かなくなりました。 高負荷になったら動かなくなりました。 無償で修理してください。損害も請求します。 しばらく放置していて、最近動かしたら動かないです。原因はわかりません。これは御社の不具合なので無償で修理してください。 5年後ごとに起こるであろうこと PHPバージョン変えたら動かなくなりました。無償で修理よろしく 3年後ごとに起こるであろうこと Railsバージョン変えたら動かなくなりました。無償で修理よろしく 1年後ごとに起こるであろうこと Rubyバージョン変えたら動かなくなりました。無償で修理よろしく 無償で修理してください。損害も請求します。無視するなら瑕疵担保責任法で訴えるぞ! 納品先の会社 10社から同時に 重大な脆弱性が現バージョンから発見されました。こちらでアップデートしたところ、起動ができなくなりました。 至急弊社に来て修正作業をお願いします。なおお金は払わない。また営業に損失が出たので損害請求もします。 : nobodyさん [sage] 2017/06/29(木) 09:16:40.50ID:??? 瑕疵担保責任(かしたんぽせきにん) 瑕疵担保責任のポイント 民法改正で事実上期限が「無制限」になった バグや設計のミスなどは、瑕疵担保責任 納品物に不具合があれば損害賠償を請求される可能性もある 不具合を指摘されたらすぐに行動をとるべし 軽微なミスでも先延ばししない ttp://www.atmarkit.co.jp/ait/articles/1706/26/news014.html ttp://itpro.nikkeibp.co.jp/atcl/news/17/052601508/?rt=nocnt 改正法では欠陥に気付いてから1年以内にITベンダーに通知すれば、 通知後5年以内は修正や報酬の減額などを求められるとしている 全ベンダーが泣いた民法改正案を解説しよう その1 ttp://www.atmarkit.co.jp/ait/articles/1609/14/news009.html ttp://www.atmarkit.co.jp/ait/articles/1609/14/news009_2.html ttp://www.atmarkit.co.jp/ait/articles/1609/14/news009_3.html ポイント1:修補や損害賠償、契約解除の期限がなくなる 従来あった「瑕疵担保期間は引き渡しから1年」という考えはなくなる。 条文にある通り、注文者は成果物が契約の目的に適合しないことを発見したら、 その「発見したときから1年以内」ならさまざまな請求ができる。発見が10年後なら、 11年後まで請求可能なのだ。 もっとも、現実のユーザーとベンダーの関係でも、たとえ契約書に「瑕疵担保責任期間は納品から1年と」明記されていても、 「2年目以降は不具合の修正に対応しない」と主張するベンダーはまれだ。多くの場合は、納品から何年たっても、 バグが見つかればユーザーのところに飛んで行き、無償で改修するだろう。 : nobodyさん [sage] 2017/06/29(木) 09:33:55.83ID:??? ガイキチ : nobodyさん [sage] 2017/06/29(木) 09:35:02.39ID:??? 飛んでいって無償改修なんてしねーから : nobodyさん [sage] 2017/06/29(木) 10:22:20.91ID:??? じゃあ瑕疵担保責任法で訴えるまでだ。損害賠償請求もする : nobodyさん [sage] 2017/06/29(木) 10:23:07.04ID:??? いい加減にしろ : nobodyさん [sage] 2017/06/29(木) 10:27:17.18ID:??? お前らこそいい加減にしろ : nobodyさん [sage] 2017/06/29(木) 10:56:16.90ID:??? おまえら世間ではペチパーと言われてバカにされているんだよ。 バカにバカと言っているだけだよ : nobodyさん [sage] 2017/06/29(木) 11:01:30.56ID:??? 友達がいないとこうなるからお前らも気をつけろよ : nobodyさん [sage] 2017/06/29(木) 11:18:22.36ID:??? 友達いないだけじゃこうはならんわ : nobodyさん [sage] 2017/06/29(木) 11:39:41.27ID:??? ペチパーとかいうバカな生き物が何か言ってるwww : nobodyさん [sage] 2017/06/29(木) 12:52:25.56ID:??? 豊田真由子の新音声公開されたけど たぶんあんな感じの自分エリート周り糞みたいな思考のやつなんだろう : nobodyさん [sage] 2017/06/30(金) 20:32:41.42ID:??? Aを渡すとBに変換する関数 Bを渡すとAに変換する関数 しかしこの関数の中身は同じなのです 例えばAからBをencode BからAをdecodeとすると Bをencoderに渡してもAになってしまうのです こんな関数はおかしいですか? なんかいい関数名ないですか? : nobodyさん [sage] 2017/06/30(金) 20:41:13.31ID:??? 前スレ埋めろ AとBが確実に二分できて機械的に判定可能なのかによる : nobodyさん [sage] 2017/06/30(金) 21:03:00.41ID:??? お遊びで作ったソース難読化です function give_me_a_name($src){ $hex=bin2hex($src); $len=strlen($hex); $buf=""; for($i=$len-1;$i>=0;$i--){ $tmp=15-hexdec($hex[$i]); $buf.=dechex($tmp); } return hex2bin($buf); } : nobodyさん [sage] 2017/06/30(金) 23:05:25.39ID:??? 今日はム板のスレ立てるまでもない〜スレでくだらないゴミみたいなオレオレ解釈法律談義相手してもらえてよかったね : nobodyさん [sage] 2017/06/30(金) 23:30:13.98ID:??? 0-9a-fだけで構成された、しかし難読化を経たものではない $srcが指定されたらどうすんの ソース難読化なら$srcに<や;が含まれてるかどうかなどによって 自動判別する関数をお前が作るのは自由だし、それは特におかしい関数ではない しかし、全ては目的、用途、処理次第であるため、 その手の変換および自動判別を行う、汎用的な関数の存在を期待するのはおかしい : nobodyさん [sage] 2017/06/30(金) 23:35:13.34ID:??? 向こうじゃ話ついていけなくてぺちぱースレに戻ってきたぺちぱー() 法律オジサンちゃんとこっちでしっかり軟禁しとけよ : nobodyさん [sage] 2017/06/30(金) 23:46:16.09ID:??? あっちはどこもワッチョイスレなんだよなあ : nobodyさん [sage] 2017/07/01(土) 06:52:37.12ID:??? 的を得ない自分勝手なオナニー講釈たれるアスペ野郎はどこでも嫌われるんだなw なんか見ててちょっとお気の毒 : nobodyさん [sage] 2017/07/02(日) 07:11:14.70ID:??? 今日はJSスレで遊んでもらってるんだね : nobodyさん [sage] 2017/07/02(日) 07:46:30.35ID:??? なんだ負け惜しみか? : nobodyさん [sage] 2017/07/02(日) 16:07:35.43ID:??? ビョーキだな : nobodyさん [] 2017/07/12(水) 18:00:04.40:z8l7m4aE 質問させてください PHPで受信メールを解析しています。 添付ファイルなしで本文取得は出来るのですが 添付ファイルありだと本文の取得が出来ません 下記がコードです。よろしくお願いします。 switch(strtolower($data->ctype_primary)){ case "text": $text = $data->body; break; case "multipart": foreach($data->parts as $part){ switch(strtolower($part->ctype_primary)){ case "text": $text = $part->body; break; case "image": $type = strtolower($part->ctype_secondary); break; } } break; } : nobodyさん [sage] 2017/07/12(水) 18:12:20.00ID:??? できあいのparser使った方がいいと思う : nobodyさん [] 2017/07/12(水) 19:07:05.55:z8l7m4aE レスありがとうございます できあいのparserでも結果は同じでした マルチパートの本文の取得方法がわかりません… よろしくお願いします : nobodyさん [sage] 2017/07/12(水) 19:43:28.53ID:??? なにをどう試してどう失敗したかを書くと 答えやすいと思うよ : nobodyさん [sage] 2017/07/12(水) 21:16:20.79ID:??? \r\n\r\nで区切ってみりゃいいんじゃね 共通ヘッダ テキストヘッダ テキストボディ 添付1ヘッダ 添付1ボディ 添付2ヘッダ 添付2ボディ・・・ みたいな感じになってる気がするけど メールのことは詳しくないしRFC読むの面倒だから適当回答ですまんが : nobodyさん [sage] 2017/07/12(水) 21:27:52.08ID:??? あ、よく見たらboundary情報が書いてあった : nobodyさん [sage] 2017/07/12(水) 23:13:57.16ID:??? parser自分で書いてるなら 添付ファイル付きメールをparserと同じように手で解いていって確認すりゃいいだろよ・・・ : nobodyさん [sage] 2017/07/13(木) 23:46:01.51ID:??? どうやって? : nobodyさん [sage] 2017/07/14(金) 10:08:54.80ID:??? > できあいのparserでも結果は同じでした 何使ったの? : nobodyさん [sage] 2017/07/14(金) 10:22:30.46ID:??? 定期的に出没するカスだよ : nobodyさん [sage] 2017/07/14(金) 22:30:07.02ID:??? とカスが申しております : nobodyさん [] 2017/07/15(土) 19:32:54.46:+oN2dI32 シングルトンパターンってなぜ必要なんでしょうか? 例えばとあるソースでHttp通信(RESTAPI通信)を行っているクラスがシングルトンパターンで 作られているのを見かけたことがあったんですが 複数のインスタンスが作られると何がまずいんでしょうか? : nobodyさん [sage] 2017/07/15(土) 21:09:19.25ID:??? なぜ必要か どんな状況にも通じる絶対的な必要性などないし使われてる状況による とあるソースで 〜〜 何がまずいか んなもん書いた奴に聞けマジで : nobodyさん [] 2017/07/16(日) 04:25:56.15:2UeiIHQZ dbやcurlなどの接続を開始するためにコネクタクラスを毎回newしていると、 無駄にメモリ消費が増える。 インスタンスの共有が問題にならない局面でのみ有効な考え方。 : nobodyさん [sage] 2017/07/16(日) 23:51:12.19ID:??? たいてい、DBマネージャーとか、何々マネージャーと言う、 何かを管理するオブジェクトは、シングルトンにする もし、2つあると、管理できないから : nobodyさん [] 2017/07/18(火) 02:33:26.59:Ro/ZKJYI 管理できないのはhogefugaマネージャの実装の問題で(仕様とも言えるが)、 本質的にシングルトンにすべきかどうかの問題じゃないと思うが。 : nobodyさん [sage] 2017/07/18(火) 04:45:36.30ID:??? 正論 だがそれ以前にシングルトンについての質問であってphpの質問ではないように思われる : nobodyさん [sage] 2017/07/18(火) 15:39:52.79ID:??? シングルトンって同じリソース使いまわす時に使うんでないの? ユニキャストやらマルチキャストやらスレッドやら非スレッドやら同期やら非同期やら その辺で使い分けるようなきがするがよくわかっていない : nobodyさん [sage] 2017/07/18(火) 23:16:13.87ID:??? > > >dbやcurlなどの接続を開始するためにコネクタクラスを毎回newしていると、 >無駄にメモリ消費が増える。 >インスタンスの共有が問題にならない局面でのみ有効な考え方。 毎回newしても ガベージコレクタがいい感じにメモリ解放してくれるからあまり問題にはならないんじゃないの? 違うの? だれか詳しい人教えて! : nobodyさん [sage] 2017/07/19(水) 01:31:28.00ID:??? 新しい手法だな : nobodyさん [sage] 2017/07/20(木) 06:30:51.15ID:??? インスタンスを作っては削除し、これを繰り返すのは、 ループ内で、10万回もするなら、性能低下を引き起こす 回数が少なければ、気にならない : nobodyさん [sage] 2017/07/20(木) 17:10:00.57ID:??? for($i = 0; $i < 100000; $i++) { $dbh = new PDO(); $dbh->query("INSERT INTO tbl(id) VALUES({$i})"); unset($dbh); } : nobodyさん [] 2017/07/20(木) 18:59:56.25:GrpxDoI3 [NEET@]$ sudo pecl upgrade --force pear.php.net is using a unsupported protocol - This should never happen. PEAR Version: 1.10.1 PHP Version: 7.0.18-0ubuntu0.16.04.1 Zend Engine Version: 3.0.0 bosukete Downloader.phpからエラーメッセージ追っとる;;; : nobodyさん [] 2017/07/21(金) 02:37:43.22:Jz40TgFn PHPやJAVAのガベージコレクションはどこまで信頼できる? タイミングを含め盲目的な依存は危険だろ。 10万回って数を持ち出してくるとは恐れ入るなw 一般的にDBに設定されてる同時最大接続数を知らないとしか思えん。 貴重なリソースを一人占めするんじゃないぞ。 : nobodyさん [sage] 2017/07/21(金) 06:27:30.33ID:??? phpの話というよりDBの話になってるような gcがどんな感じでも、1つのプログラムが長時間実行され続けることが 多くないphpにおいては、DB接続とgcはあんまり関係ない気がするんだが javaのgcとは状況が色々と違うべ むしろ全体でコネクションプーリング考えなきゃかなとかそっちのほう : nobodyさん [] 2017/07/21(金) 16:02:01.16:ap6/579G お前ら手動でビルドしてるのかよー。頼むから教えてくださいお;; : 48 [] 2017/07/21(金) 16:07:32.65:ap6/579G お前らとか言ってすんませんした。pecl詳しい人居たら教えてくださいよろしくお願いします。 : 48 [] 2017/07/21(金) 16:57:09.81:ap6/579G すいません自己解決しました。。 : nobodyさん [sage] 2017/07/22(土) 21:48:31.78ID:??? マルチのキチガイ初心者 : nobodyさん [sage] 2017/07/26(水) 07:53:31.11ID:??? HLSネイティブサポートがSafariだけとかで、 そんな中でもいち早く対応プレイヤー登場させたクロスプラットフォームなFlashさんもとうとう死ぬんか・・・ これからが真のブラウザ競争の幕開けやなぁ ブラウザにネイティブPHPサポート入れたら流行るでえ : nobodyさん [sage] 2017/07/26(水) 16:25:06.78ID:??? なんでcsv関係関数もSplFileObjectも全部、改行コードの指定がないんだろう : nobodyさん [sage] 2017/07/26(水) 18:35:13.70ID:??? > なんでcsv関係関数もSplFileObjectも全部、改行コードの指定がないんだろう 別に指定しなくても読めるから : nobodyさん [sage] 2017/07/26(水) 20:09:16.13ID:??? enclosureだってRFC的にはencloseは " だから指定なくても読めるけど変更可能じゃん? エスケープ文字は…\と""連続があるからまあわかる 区切り文字はtsvを読みたい人もいるだろうからなのかな : nobodyさん [sage] 2017/08/08(火) 11:52:15.62ID:??? strpos(string haystack, string needles) なんだよhaystackって干し草の山?意味わからんでえ : nobodyさん [sage] 2017/08/08(火) 20:00:46.14ID:??? while (!feof($fp)) { fgets($fp); } fclose($fp); これが終わらない$fpにはどうしたらベストですかね? : nobodyさん [sage] 2017/08/08(火) 20:25:54.45ID:??? EOFが返ってこないもの(/dev/zeroとか/dev/urandomとか)を読むなら終了条件がEOFまで読んだらってのがおかしい : nobodyさん [sage] 2017/08/08(火) 20:33:25.81ID:??? すみません説明不足でした fsockopenで開いたwebサーバですね サーバによっては返さないみたいで その場合どうしたらいいのかなと : nobodyさん [sage] 2017/08/08(火) 20:43:22.70ID:??? え、keep-aliveの話? http(s)で繋ぐだけならfile_get_contentsやcurlでいいじゃん ストリーミングだっつーなら・・・・・・ : nobodyさん [sage] 2017/08/08(火) 21:05:18.91ID:??? あーkeep-aliveですか てことはconnection: close送ればいいのかな : nobodyさん [sage] 2017/08/08(火) 21:13:08.94ID:??? fsockopen使っててconnection: close送ればいいのかな、って 自分でkeep-aliveを明示的に送ってんじゃないんかい? : nobodyさん [sage] 2017/08/08(火) 21:15:53.74ID:??? 送ってないです connectionは未指定でした : nobodyさん [sage] 2017/08/08(火) 21:36:05.44ID:??? とりあえず低レベルに手を出すなら今どうなってるか自分で確認せんと 聞くならなんのリソースでどんなプロトコルでどんなリクエスト送っててどういう状況になってるかはじめから書かんと HTTP/1.1を送ってて1回1回切りたいならkeep-aliveを指定してなくてもconnection: close cURLでいいような気がするが : nobodyさん [sage] 2017/08/08(火) 22:57:30.87ID:??? ありがとうございます connection: close送ってもだめでした いうこと聞いてくれないサーバなのかもしれません file_get_contentsだとcontext指定しても期待した結果が返って来ず cURLは面倒くさそうだったのでスルーしてましたがcURLでも試してみます : nobodyさん [sage] 2017/08/08(火) 23:58:02.89ID:??? guzzlehttp/requestとかじゃダメなんか : nobodyさん [sage] 2017/08/09(水) 06:55:29.66ID:??? guzzleって使ってなんかcurlにはない良いことあるの : nobodyさん [sage] 2017/08/09(水) 10:35:03.45ID:??? keep-aliveって、こっちがcloseしたら相手がsocketを破棄するとかそういうのじゃないよ : nobodyさん [sage] 2017/08/09(水) 13:44:54.84ID:??? そうなのか?だとしたら知ったかしてて悪かった : nobodyさん [] 2017/08/09(水) 15:21:18.33:cGBSy5e7 HTTPなら読み込み終了条件はContent-Lengthヘッダがあればそのサイズだけ読んだとき, Transfer-Encoding:chunkedのときはサイズ0の空チャンクを読むまでだろ 規格外の規約で通信するなら知らんが : nobodyさん [sage] 2017/08/09(水) 17:12:26.79ID:??? タイムアウトを実装 : nobodyさん [sage] 2017/08/10(木) 06:40:33.36ID:??? それ以外のケースある?その2つだけ? : nobodyさん [sage] 2017/08/11(金) 20:06:35.60ID:??? RFC7230とRFC7540あたりを読む : nobodyさん [sage] 2017/08/11(金) 20:10:28.24ID:??? そしてわかったことを俺に教える : nobodyさん [sage] 2017/08/11(金) 20:12:30.75ID:??? おう、面倒だから代わりに読んできてくれや お前さんのスキルアップに一役買うためにネチゴロして待ってんよ : nobodyさん [sage] 2017/08/11(金) 20:20:12.88ID:??? やーよ俺はcURLとかguzzlehttp/requestを使う : nobodyさん [sage] 2017/08/12(土) 03:07:47.41ID:??? curl使えって言った時点で話終わっちゃうじゃん : nobodyさん [sage] 2017/08/12(土) 03:26:44.32ID:??? 今メール送るのってどうしてます? : nobodyさん [sage] 2017/08/12(土) 04:02:01.13ID:??? fsocketとcurlでcurlの方が面倒とか言っちゃうんだから察しろ : nobodyさん [sage] 2017/08/12(土) 05:27:54.02ID:??? 実際面倒だろ カスタマイズ性には劣るが生のhttpヘッダ送るほうが簡単に決まってる : nobodyさん [sage] 2017/08/12(土) 05:45:54.17ID:??? ええ・・・ : nobodyさん [sage] 2017/08/12(土) 08:39:04.21ID:??? 生じゃないと安心できない : nobodyさん [] 2017/08/16(水) 00:40:58.25:FXSi5oh2 自宅にWebサーバ立てたのですが FireWallとかよくわからないので そのまま自作Webサイトを公開しているんですが FireWallあるのと無いのでは何が違うんでしょうか? 一応現時点では80番ポートのみ開放しているのでそれで十分かと思ってるのですが 想定される不正アクセスはどのようなものがあるのでしょうか? : nobodyさん [sage] 2017/08/16(水) 01:03:05.64ID:??? それらの質問はphpと直接関係あるのでしょうか? : nobodyさん [sage] 2017/08/16(水) 01:10:44.19ID:??? 手書きで ../../ とか親ディレクトリをたどられないかとか、 存在しないURL・ファイル名指定されて index一覧をダダ洩れさせてしかも親へ移動できちゃわないようにしっかりチェックしてね まぁ面倒なら .htaccessでがちがち設定にしとけばいいよ : nobodyさん [] 2017/08/16(水) 01:40:26.18:+9VPpAQA それってFireWallとは関係ない話なんだがw : nobodyさん [sage] 2017/08/16(水) 02:06:01.90ID:??? >想定される不正アクセスはどのようなものがあるのでしょうか? って書いてあるからその状態(port80のみ開放)ではどんないたずらを速攻でされ易いかという意味で合ってるだろ : nobodyさん [sage] 2017/08/16(水) 02:08:35.30ID:??? マジでphp全然関係ねえ : nobodyさん [sage] 2017/08/16(水) 02:14:51.36ID:??? それはそうだwディレクトリ掘りの後にクエリ捏造でphpの出番が来るけどな : nobodyさん [sage] 2017/08/16(水) 02:18:43.56ID:??? php側のセキュリティはphpコード側で何やってるかがまず問題だしなあ セキュリティよく分からないのに自宅鯖とか 愚劣を極めてるやつにピンポイントであれこれ教えても無意味 : nobodyさん [sage] 2017/08/16(水) 02:34:51.22ID:??? スレ違いなの分かってるけどどうしてもこれだけは言っておきたい 普通の意味でファイアウォールと言ったらTCP/UDPレイヤでの操作だけども, 80と443以外のポートはきちんと閉じていますか, と 22とかまともに設定せずに開放してたら踏み台にされてるんじゃねーのか : nobodyさん [sage] 2017/08/16(水) 09:35:32.54ID:??? ルーターはハードウェアファイアーウォールだし、 サーバ側にソフトウェアファイアーウォールが入ってなくても問題はない。 外に持ち出しして、不明な構成の外部ネットワークからつないだりしたら問題になるかもしれんが。 ただ↑の指摘のようにsshは気軽に誰でもアクセスできちゃうと、 パスワード突破されたらサーバが乗っ取られるので、 ポートは22以外を使うのと(スキャンされにくい1024以降)、lan内と外から使うかもしれない一部プロバイダ以外からは遮断する。 その細かな制御は高性能のルーターじゃないと出来ないので、ソフトウェアファイアーウォールが必要になる。 まぁWindowsサーバだろうし、sshとかも入れてなさそうだけど。なんにしてもスレチだな。 : nobodyさん [sage] 2017/08/16(水) 09:39:42.33ID:??? ttp://medaka.2ch.net/test/read.cgi/sec/1495290223/216 : nobodyさん [sage] 2017/08/19(土) 15:17:36.82ID:??? xxx.xxx.[0-255].[0-255]正規表現でこのような指定は出来ないので、 if ($yourip == fn("xxx.xxx.0.0/16")) このようなサブネットマスクでIPを調べれる関数とかありませんでしょうか? : nobodyさん [sage] 2017/08/19(土) 15:57:43.95ID:??? 自分で書けよ : nobodyさん [sage] 2017/08/19(土) 16:04:01.93ID:??? IPアドレスが指定した範囲内にあるかどうか判別する - Qiita ttp://qiita.com/ran/items/039706c93a8ff85a011a こんなの? : nobodyさん [sage] 2017/08/19(土) 16:20:11.70ID:??? ありがとうございます さすがにまんまなものはなかったんですね さんのリンクのを使わせていただきます : nobodyさん [sage] 2017/08/19(土) 20:11:02.89ID:??? すげー細かいことだけどxorしてからシフトすればシフト1回で済む PHPでandとxorどっちが早いかは確かめていない : nobodyさん [sage] 2017/08/20(日) 01:48:19.58ID:??? もっと細かいことだけど れるられる が気になる : nobodyさん [sage] 2017/08/20(日) 09:36:55.83ID:??? れろれろ : nobodyさん [sage] 2017/08/24(木) 20:16:03.54ID:??? 自サーバの指定ポートが使われてる(LISTEN状態)かチェックする方法ってありますか? : nobodyさん [] 2017/08/24(木) 23:47:48.82:e59+rI+5 もしかしたらすれ違いかも知れませんが気にせず質問させていただきます 先日パソコンが壊れました 電源をつけると5秒後に再起動を繰り返してしまいます 原因がわからないのですが どなたか対応方法などご存知の方いたら教えてください : nobodyさん [sage] 2017/08/25(金) 02:32:32.38ID:??? HDDかマザーかメモリーが壊れてるんだろ : nobodyさん [sage] 2017/08/25(金) 03:12:35.66ID:??? これではあかんの? ttp://php.net/manual/ja/function.fsockopen.php : nobodyさん [sage] 2017/08/25(金) 04:29:08.22ID:??? エラーを出せばわかるのですが実行前に検出したいです file_get_contentsの前にfile_existsをやるようなイメージです : nobodyさん [sage] 2017/08/25(金) 04:36:31.07ID:??? よくわからんけど netstat -an をexec()したら? : nobodyさん [sage] 2017/08/25(金) 05:05:45.19ID:??? エラー制御とかErrorException投げるようにすればいいのですが fsockopenで開いてないポートに接続するとE_WARNINGが出るのがいまいちで $errstr参照できるようにしてるのだからFALSE返せばいいのに・・・ 説明には >hostname が有効なドメインでない場合は E_WARNING をスローします。 って書いてますけどhostnameは有効なのにportとセットになっちゃってるようですね netstatコマンド叩く案で対処しようと思います どうもありがとう : nobodyさん [] 2017/08/25(金) 12:09:34.80:+7AGwzz6 こりゃあ面白いわ!! ttps://blogs.yahoo.co.jp/antseq01/15073181.html : nobodyさん [sega] 2017/08/30(水) 19:27:46.70ID:??? tmpfile() で作ったファイル名を知りたい : nobodyさん [???] 2017/08/30(水) 19:39:21.19ID:??? 一時ファイルのパスを知る必要のある局面では、 tempnam()で一時ファイルを作成してから、 fopen()でオープンする。 tempnam()は単に文字列としてのパスを生成するだけでなく、パスの競合を避ける為に一時ファイルを作ることに注意。 : nobodyさん [sage] 2017/08/30(水) 20:28:44.54ID:??? $fp=tmpfile(); print stream_get_meta_data($fp)['uri']; : nobodyさん [sage] 2017/08/31(木) 21:01:22.84ID:??? mb_detect_orderってマニュアル通りの結構適当なの mb_detect_order("eucjp-win,sjis-win,UTF-8"); あるいは $ary[] = "ASCII"; $ary[] = "JIS"; $ary[] = "EUC-JP"; mb_detect_order($ary); で動いちゃってますけど実はあんまよくわかっていません マニュアルではJP系のしかありませんが 非英語圏、非日本語圏の場合はどうするのかなど これが本当に正しい検出順ってのがありましたら教えて下さい : 115 [sage] 2017/09/09(土) 20:10:54.83ID:??? やっぱみなさんもよくわかってないで設定してるかんじなんですかね? : nobodyさん [sage] 2017/09/09(土) 20:18:41.74ID:??? 今どきはutf-8が先頭じゃね? : nobodyさん [sage] 2017/09/09(土) 20:38:35.05ID:??? 負荷だって問題になるし誤判定防止の観点も重要だし、何を優先したいかじゃないんか つか自動検出したいって対象というか目的が限られるよな : nobodyさん [sage] 2017/09/10(日) 16:35:08.02ID:??? 完全な自動検出なんてそもそも無理だしが何を以って正しいとするのか不明だしアホかと : nobodyさん [sage] 2017/09/18(月) 04:42:58.32ID:??? PHPコミュ死亡したの?PHP7も特に話題にもならなかったしついにPHPも終焉か 目新しいものもないし仕方ないか・・・ : nobodyさん [sage] 2017/09/18(月) 13:00:42.35ID:??? 死亡したことにしたいならそうすればいいんじゃないかな : nobodyさん [sage] 2017/09/19(火) 10:33:16.80ID:??? PHPってバイナリごと配布しておk? : nobodyさん [sage] 2017/09/19(火) 11:02:07.42ID:??? LISENCEファイルの本文冒頭に書いてあるぞ : nobodyさん [sage] 2017/09/19(火) 11:02:22.40ID:??? LICENSE : nobodyさん [sage] 2017/09/19(火) 12:45:16.25ID:??? oh miss spell : nobodyさん [sage] 2017/09/20(水) 06:59:21.00ID:??? よくわからないからxampp参考にするか .\licenses\phpに入ってるな .\phpにも入ってるけど くっそめんどくせえ : nobodyさん [sage] 2017/09/23(土) 08:21:36.78ID:??? 外部設定ファイルxml,ini,json等を読み込んで phpの変数に割り当てます { "phpver": "7.0", "pyver": "3.6" } $j = json_decode("json"); $this->phpver = $j->phpver; $this->pyver = $j->pyver; 例えばこういうコードなのですが このjsonの編集は自由に出来るとして ミスでパース出来ないコードにしてしまったり あるべき項目が入ってないことを想定して プロの皆さんはissetで必要項目全チェックしたり なかった場合に例外なり出したりとかするんでしょうか? : nobodyさん [sage] 2017/09/23(土) 10:19:41.47ID:??? プロの皆さんは、とか臭い 自分で考えろ : nobodyさん [sage] 2017/09/23(土) 12:11:13.07ID:??? noticeが出ない程度にissetとnullセットをしつつ 実際に実行したときに問題が起きて終了するか データのvalidationまでやって実行前に正しいか事前にチェックするか ちょうどコンパイラとインタプリタの概念に近いもんだと思うけど面倒だから前者だな : nobodyさん [sage] 2017/09/23(土) 12:31:50.42ID:??? noticeはだめでwarningはいいんだね : nobodyさん [sage] 2017/09/23(土) 14:14:29.35ID:??? ……?例外投げるとか、Fatalで終了させるとかそういうのじゃないのか : nobodyさん [sage] 2017/09/23(土) 20:31:43.79ID:??? .user.iniに記述した内容が反映されないのですが何か注意点あるでしょうか? root権限ありの環境でphp.iniもいじれますが事情があって.user.iniを使う必要があります php.ini内で user_ini.filename = ".user.ini" として、phpファイルのあるディレクトリに.user.iniを作り、 同ディレクトリに置いてあるphpinfoで確認しても反映されない状況です .htaccessにphpvalueで書いたものは反映されるのですが、.user.iniが効かないのが気持ち悪くて。。。 : 132 [sage] 2017/09/23(土) 20:32:44.12ID:??? 補足 .user.iniに書いているのは post_max_size=15M のみです : nobodyさん [sage] 2017/09/23(土) 21:06:12.60ID:??? そのPHPの実行環境はどれなの? CLIかmod_phpかphp_fpmか : nobodyさん [sage] 2017/09/23(土) 21:12:50.05ID:??? Webサーバ通してphpinfo見てて、 php.iniでuser_ini.*を編集してからWebサーバ再起動してなかった ってオチじゃないだろうな : nobodyさん [sage] 2017/09/23(土) 21:17:46.74ID:??? 環境はmod_phpです centos7.3 apache2.4.6 php5.6.31 php.ini変更をしてからhttpd再起動しています phpinofのuser_ini.filenameには.user.iniと表示されています : nobodyさん [sage] 2017/09/23(土) 22:30:26.81ID:??? ttp://php.net/manual/ja/configuration.file.per-user.php > このファイルは、CGI/FastCGI SAPI の場合にのみ処理されます。 > この機能は、PECL htscanner 拡張モジュールを置き換えるものです。 > Apache モジュールとして PHP を実行している場合は .htaccess ファイルを使えば同じ機能を実現できます。 : nobodyさん [sage] 2017/09/24(日) 08:20:24.15ID:??? いまどきmod_phpなんて使ってるから : nobodyさん [sage] 2017/09/24(日) 14:43:47.07ID:??? set_iniで書く : nobodyさん [sage] 2017/09/25(月) 06:46:06.55ID:??? アップローダーで、 「名前、コメント、URL、アップロード時刻、ファイルサイズ」の4つを|文字区切りでログしていて、 名前 コメントは$_POSTで|文字を使うことが出来ない、 URLはオリジナルファイル名を破棄してuniqidを付与したもの、 アップロード時刻 ファイルサイズはtimeやfilesizeでシステムからのものという仕様になっています。 これらをhtmlに表示する場合、 システム側が作成する、[a-f0-9]のファイル名(URL)や、 intであるはずのtime(dateで変換して読みやすく表示)やfilesizeは安全な値だと思うのですが、 これらをhtmlspecialcharsする理由はなんなんでしょうか? : nobodyさん [sage] 2017/09/25(月) 07:21:56.76ID:??? 分けるのがめんどいから一括でサニタイズしているだけだと思う : 140 [sage] 2017/09/25(月) 08:08:18.75ID:??? なるほど、ありがとうございます。 : nobodyさん [sage] 2017/09/25(月) 13:40:09.72ID:??? 366 :nobodyさん 2017/05/29(月) 16:07:39.16 ID:6v4UcGhE 今回の民法改正、ソフトウェア受託開発の場合、(検収後ではなく)バグ発見後1年瑕疵担保責任があるということで、地獄かよ、と思ったが、 元々問題が起きがちな受託案件がビジネス的に成立しなくなることで強制的に業界再編につながるなら良いことかもと思うようになった。 一部で地獄を見ても。 ttp://https://twitter.com/yukihiro_matz/status/869061879389343744 "> ttps://twitter.com/yukihiro_matz/status/869061879389343744 367 :nobodyさん 2017/05/29(月) 16:28:06.55 ID:6v4UcGhE ニュース - 改正民法が成立、「瑕疵担保責任」などシステム開発契約に影響大:ITpro ttp://b.hatena.ne.jp/entry/itpro.nikkeibp.co.jp/atcl/news/17/052601508/ 372 :nobodyさん2017/05/29(月) 19:10:37.12 ID:??? Railsでシステム作って納品する ↓ Railsはマイナー、メジャーのアップデートが半年以内に必ずある ↓ 客がアップデートする。アップデートによるエラーやバグ、動作の不具合に気づく ↓ 気づいてから1年以内に通知すれば、5年間無料保証ゲット ↓ つまりRailsがアップデートするたびに、無償の修正作業を発生するということかな 376 :nobodyさん2017/05/30(火) 09:20:20.09 ID:L5po86sS 客が瑕疵担保責任法の法改正を知ってくると思うから、今後5年無償保証をお願いされるだろう 営業がそれでも仕事を取ってこれるか?たぶん無理だろう。無限の直していたら赤字になる。 こういう保守に弱い言語、ころころ仕様が変わる言語は仕事として発生しなくなってくる。 これは変わり目だ。お前らも早く逃げたほうがいいぞ。RubyやPHPなど動的言語は確実に廃れる。 保守に強い言語のみ生き残れる。 : nobodyさん [sage] 2017/09/25(月) 14:08:58.86ID:??? お前少しスレが伸びると登場するよな : nobodyさん [sage] 2017/09/27(水) 19:56:39.79ID:??? 保守に強いのって何だろう? Java? : nobodyさん [sage] 2017/09/27(水) 20:10:15.96ID:??? 無駄にコード長くなる冗長なJavaが保守に強いってか つうかこのスレ向けの話題じゃないしPHP関係ないからム板で聞きなさい ttp://mevius.2ch.net/tech/ : nobodyさん [sage] 2017/10/02(月) 16:41:56.90ID:??? 作ったコンソールアプリをwindowsでバックグランドで動作させるにはどうしたらいいですか? cmd画面だしっぱで動作させることは出来るのですが、 タスクトレイには表示させてもいいですが、ついうっかりバツボタン押しちゃうので、 誤操作防止にもタクスバーに残らないようにしたいです。 切るときはタスクトレイから止めるか、タスクマネージャーから直接止めるという感じにしたいです。 可能でしたら方法教えてください。お願いします。 : nobodyさん [sage] 2017/10/03(火) 02:44:51.89ID:??? php-win.exeで起動させるとcmd画面が表示されない : 147 [sage] 2017/10/03(火) 22:58:08.51ID:??? 出来ました。どうもありがとうございます。 : nobodyさん [sage] 2017/10/05(木) 00:05:56.71ID:??? デバッガ付きのIDEってないですか? XAMPP入れたりApacheやPHPの設定するのが大変です しかもしょっちゅうおかしくなって再起動必要だし・・・ : nobodyさん [sage] 2017/10/05(木) 06:54:42.12ID:??? ttps://www.youtube.com/watch?v=pP9jw3fgrCU ttps://www.jetbrains.com/phpstorm/ : nobodyさん [sage] 2017/10/08(日) 12:02:16.66ID:??? xamppで質問なんですが、スレチだったらすいません php.iniで include_path = "D:\xampp\php\lib\smarty" と設定した場合、smarty内のphpファイルを全部読み込むということなんでしょうか? : nobodyさん [sage] 2017/10/08(日) 12:17:16.23ID:??? 検索パスであって勝手に読むわけではない あと今はグローバルにインストールしてinclude_path指定するよりcomposerでプロジェクト毎にインストールするのが普通 : nobodyさん [sage] 2017/10/08(日) 12:28:27.60ID:??? あー、なるほど つまりパスを登録しておけば require( 'Smarty.class.php' ); で読み込める事ができて楽、ということなんですね 後、パスを複数登録した時、同じ名前のファイルがあるとどうなるのでしょうか : nobodyさん [sage] 2017/10/08(日) 12:50:34.11ID:??? 「パス 優先順位」でググれ : nobodyさん [sage] 2017/10/08(日) 13:03:37.64ID:??? ありがとうございます! : nobodyさん [sage] 2017/10/08(日) 14:26:08.75ID:??? 一つ上の階層をインクルードpathにして フォルダで分けるそしてrequiireを require( 'smarty¥Smarty.class.php' ); とする : nobodyさん [sage] 2017/10/20(金) 04:14:51.76ID:??? is_readableの説明には >filename で指定したファイルあるいはディレクトリが存在し、 それが読み込み可能であれば TRUE、 といった具合に存在も確認するようなので file_existsとis_readableって併用する必要ないですよね? URL忘れちゃったけどIBMの記事でPHPのファイル事前チェック説明で両方指定してたので あとis_readableの注意の >この関数は、ディレクトリに対しても TRUE を返すかもしれません。 ファイルとディレクトリを区別するには is_dir() を使いましょう。 というのは、これはis_dir"を"ではなくて、is_dir"も"っていう解釈でOKですか? is_dirのところ見ても >ファイルが存在して、かつそれがディレクトリであれば TRUE、それ以外の場合は FALSE を返します。 としか書いてないのでreadのチェックまではしてないのかなと 手元の環境じゃdirを000にしたりすることが出来ないので確認できなくて 読み書き可能なディレクトリかを調べる場合どちらがいいでしょうか? 冗長な分には構わない感じで上でいいんですかね? is_dir($dir) && is_readable($dir) && is_writable($dir) is_dir($dir) && is_writable($dir) : nobodyさん [sage] 2017/10/23(月) 19:03:31.63ID:??? php ver7は、odbc_connectは実装されていないの? 関数がないっていうエラーになるんだけど。 : nobodyさん [sage] 2017/10/23(月) 19:18:56.78ID:??? ttp://php.net/manual/ja/function.odbc-connect.php : nobodyさん [sage] 2017/10/23(月) 19:22:39.89ID:??? はい、知ってます。 が、実際はサポートされていないようなのです。 : nobodyさん [sage] 2017/10/23(月) 20:50:45.96ID:??? エクステンションなんだからお前さんの環境で有効になってるかぐらい確認しろ : nobodyさん [sage] 2017/10/23(月) 21:46:47.32ID:??? ご自分の設定ミスなのにサポートされてないとか言っちゃったらそりゃ反感買う罠w : nobodyさん [sage] 2017/10/24(火) 14:37:30.67ID:??? おま環は酷い… : nobodyさん [sage] 2017/10/24(火) 20:10:43.03ID:??? 俺環は、Windowsなんだけどネ。 php v5 では、エクステンション無くてもodbc関数は動くのよ。 php v7 では、だめなの。 んで、php 7 のextフォルダ見たけど、それらしきファイルは入ってないの。 PHPのオンラインマニュアルには、 Windows 版の PHP には この拡張モジュールのサポートが組み込まれています。 これらの関数を使用 するために拡張モジュールを追加でロードする必要はありません。 て書いてあるし。 文句は甘んじて受けるから、odbc関数動かす方法教えてくれ。 : nobodyさん [sage] 2017/10/24(火) 20:52:02.86ID:??? いや、、、php.iniは確認したの? ; をちゃんと外した? : nobodyさん [sage] 2017/10/25(水) 06:38:28.59ID:??? php.ini のodbc関係は、php_pdo_odbc.dll だけ。 これは有効にしているので、pdo を使ってodbc接続はできる。 それなのに odbc_connect関数は使えないのよ。 php -i で見ると、v5 には、 ODBC Support => enabled が表示されるのに、v7 は表示されない。 だからサポートされてないんじゃないかな〜って思うの。 162, 163よ、早く答え教えろw : nobodyさん [sage] 2017/10/25(水) 06:48:22.49ID:??? すまん。 php_odbc.dll ってのがあったw : nobodyさん [sage] 2017/10/25(水) 07:43:05.92ID:??? 確認しろと言われても確認すら出来ない しかもちゃんと謝れない ゴミクズですわ : nobodyさん [sage] 2017/10/25(水) 07:45:37.79ID:??? 程度がひどいなあ… : nobodyさん [sage] 2017/10/25(水) 10:18:40.93ID:??? 自分よりもマニュアルが間違ってるって発想する人間だし : nobodyさん [sage] 2017/10/26(木) 14:44:35.78ID:??? www.example.comみたいなホスト名からドメイン名の部分をとりたいです。 最初に考えたのはドットで配列に区切って後ろの2つをくっつけるですが、 ne.jpとかのドメインを思い出して、その場合3つをくっつけないといけません。 既知のドメインをリスト化するのは大変だし、新しいものに対応するのも難しいのですが、 なんかいい方法や関数ないでしょうか? ne.jpやco.jpがneやcoの部分が2文字まで、exampleの部分が3文字以上じゃないと無理とかなら、 まだやりようはあるんですが、そういったルールはないですよね? : nobodyさん [sage] 2017/10/26(木) 18:41:59.01ID:??? 2つとか3つとかそれぞれで checkdnsrrでチェックするとか : nobodyさん [sage] 2017/10/26(木) 19:01:32.40ID:??? >exampleの部分が3文字以上じゃないと無理とかなら、 三文字以上じゃなきゃ取れなかったと思うから2以下なら3つっくっつければいいんじゃね? : 172 [sage] 2017/10/26(木) 21:27:47.65ID:??? さんの方法でうまくいきました。 レスどうもありがとうございました。 : nobodyさん [sage] 2017/10/31(火) 06:58:11.21ID:??? 無名関数でuseというキーワードがありますが、これって引数で渡すのと比べた違いは、 >引き継がれた変数の値は、関数が定義された時点のものであり これだけですよね? 両者とも参照渡しは可能で、globalのように親スコープの変数を変えることもできないので。 PHP5では無理なようですが即時関数のような振る舞いを期待して、 定義後にすぐ呼び出すならuseキーワード使ったほうがいい感じですかね? : nobodyさん [sage] 2017/10/31(火) 13:01:16.18ID:??? 特に理由がなければuseするわ 引数にすると2回書かにゃならんし あと即時関数はPHP7からは (function (...) {...})(...) で可能だしPHP5でも call_user_func(functuion (...) {...}, ...) で可能だったと思うが : 176 [sage] 2017/10/31(火) 19:36:45.24ID:??? ありがとうございます。 やっぱ基本useがいいですね。自分も書いてて2回書くのは気になりました。 ただ書いてて気づいたのは、$thisはuseで渡せないようなので、 その時はやむを得ない感じかなと思いました。 call_use_funcは知りませんでした。どうもありがとうございます。 JavaScriptもやっていて、無名関数の書式に慣れてるし、 もし今使ってるレンサバがPHP7対応したら置き換えやすいので、 とりあえずこのままで行きたいと思います。 : nobodyさん [age] 2017/11/03(金) 16:57:07.36ID:??? ttp://php.net/manual/ja/class.domelement.php DOMクラスに多いんですが publicでreadonlyなプロパティがいっぱいあります ためしに自分のクラスにpublic readonlyとか書いてみたらparse errorになりました マジックメソッドの__getを使うとreadonly実装出来るようなこと書いてて出来るには出来るのですが これってgetterのオートローダーみたいな感じで 実質中身はprivate protectedなプロパティにアクセスしてるだけだと思うのですが publicでreadonlyなプロパティというのは実装可能なんでしょうか? : nobodyさん [sage] 2017/11/03(金) 17:46:13.00ID:??? Cでエクステンション書けばPHPの文法を超えることが実現出来る : nobodyさん [sage] 2017/11/03(金) 18:06:42.77ID:??? なるほど やっぱりPHPだけじゃ無理でそういうレベルの話だったんですね DOMElement->tagName変えようとしたらmain()とかでエラー出てたので なんかそんな感じはしました レスどうもありがとうございました : nobodyさん [sage] 2017/11/03(金) 18:26:11.55ID:??? でもまぁreadonlyプロパティとか欲しいよね実際 : nobodyさん [sage] 2017/11/04(土) 00:09:02.36ID:??? constもいらなくなっちゃうな : nobodyさん [] 2017/11/05(日) 10:57:46.19:9c35x3aK 飢餓ベネズエラ「1600%インフレ率」で仮想通貨が生活の柱|ビットコインマイニング(採掘)で生き残る ttp://virtualmoney.jp/I0001275 「ビットコイン」新世界のベネズエラ:自由を求める、採掘者たちの反逆 ttps://www.fuze.dj/2017/01/venezuela_mining.html ベネズエラ、ビットコインマイナーが10万人規模に ttp://btcnews.jp/5c5uq4ei13034/ ジンバブエではビットコインが80万円?自国通貨がインフレしている国の仮想通貨需要について ttp://coinpost.jp/?p=5803 ビットコインとは?投資で儲かる仕組みと危険性を分かりやすく解説 ttps://enjoyrock.jp/bitcointoha-4370 ビットコイン最高値更新中! 〜財政破綻とビットコイン〜 ttp://silver-dream.info/virtual.currency/?p=213 ビットコイン採掘(マイニング)で個人が稼ぐ方法・スマホで可能? ttps://bittimes.net/news/3770.html : nobodyさん [sage] 2017/11/14(火) 14:49:47.97ID:??? if (!preg_match('/regex/', $arg)) { throw new xxxException(); } LogicException系ですが、 引数が期待する値でないのでこれはInvalidArgumentExceptionですか? それとも定義したデータドメインにあってないのでDomainExceptionですか? いまいちExceptionの使い分けがわかりません。 : nobodyさん [sage] 2017/11/14(火) 22:59:01.79ID:??? InvalidArgumentExceptionのドキュメントを読むとTypeError相当のものに見える DomainExceptionのサンプルからもその用途にはこちらが向いているだろう // サンプルなんだろうけどその判定式はstrposが最良では : nobodyさん [185] 2017/11/15(水) 12:55:13.16ID:??? '/'.preg_quote($regex, '/').'/'と書くべきでしたね。 ややこしくしてすみません。 DomainException使おうと思います。 レスどうもありがとうございました。 : nobodyさん [] 2017/11/17(金) 01:05:40.09:pCghqI8+ なんで標準Exceptionだけで全てを仕分けしようとしてるん… : nobodyさん [sage] 2017/11/17(金) 02:33:45.51ID:??? じゃに例外命名してみ たぶん無駄に終わるだけだから : nobodyさん [] 2017/11/25(土) 18:53:56.05:zV7O0yGe mysqlなんですが 外部結合などの依存関係を無視して強制的に データを削除したいんですがどうしたら良いですか? : nobodyさん [sage] 2017/11/25(土) 21:39:26.35ID:??? mysqlですかそうですか : nobodyさん [sage] 2017/11/25(土) 21:45:16.13ID:??? db板ってのがあったような : nobodyさん [sega] 2017/12/01(金) 10:17:37.90ID:??? pcntlが有効になっていない環境で、 Aさんがsleepしているのを Bさんが起こす ということをしたいのですが、どうしたらよいでしょうか pcntlがあればAさんはsignalハンドラ定義してsleepして BさんがSIGUSR1でも投げればよいのですが・・・ : nobodyさん [] 2017/12/01(金) 20:36:51.33:ZfGIb43l いや〜噂には聞いてたがさ F/Wも増えてるしphp開発の話も多いし 大丈夫だろうと思ったんだよ 実際にphp屋に転職したらマジ吐きそう・・・ : nobodyさん [sage] 2017/12/02(土) 14:06:37.01ID:??? グダグタシステムのメンテとか? : nobodyさん [] 2017/12/02(土) 19:05:55.95:wRelxMGw 今時PHPに固執してる会社なんて スパゲッティ屋に決まってるだろ さっさとpythonかgolangやってる会社に転職しろ : nobodyさん [] 2017/12/02(土) 19:12:10.34:wRelxMGw まともな国公立の情報工学部出身者(自然言語処理系)ならpythonがデフォだから pythonメインの会社は技術レベルが高い(一昔前はPerlだったが) そんなpythonプログラマが速度や省メモリ性能、並列化の問題に直面すると選ぶのがgolang こっちは更に技術レベルが高い(上に先見性もある) ttp://isucon.net/archives/51000131.html ISUCON(いい感じにスピードアップコンテスト)では 本戦出場の53.3%がgolang使い : nobodyさん [] 2017/12/02(土) 19:13:22.27:wRelxMGw ※PHP組は予選で淘汰された : nobodyさん [sage] 2017/12/02(土) 19:14:32.65ID:??? pythonも淘汰されてるやんけぇ! Ruby以下やん : nobodyさん [sage] 2017/12/03(日) 04:40:18.09ID:??? PHPはインタプリタ言語で開発速度優先 Goはコンパイラ言語で実行速度優先 一長一短だぞ Goのコンパイル時間はC言語と比べるとめちゃ早いが インタプリタ言語よりは遅い : nobodyさん [sage] 2017/12/03(日) 07:55:49.90ID:??? kuinって言語のコンパイルが爆速だったな : nobodyさん [sage] 2017/12/03(日) 15:58:47.22ID:??? kuinは流石に泡沫言語すぎるな githubで公開されてない、萌え絵を全面に出してる時点で 評価は得られないだろう : nobodyさん [sage] 2017/12/03(日) 18:03:11.48ID:??? 一つだけ言えることは GOは糞 : nobodyさん [sage] 2017/12/03(日) 18:05:18.15ID:??? Goむずかしいやん PHPくらいのがチンパンにはちょうどいいんや : nobodyさん [sage] 2017/12/03(日) 18:11:45.82ID:??? わかる なんつーかこう、肌に合ってる : nobodyさん [] 2017/12/03(日) 18:37:04.84:Gnr8q5JQ PHPer目線でGoのダメ出しをすると type User struct { name string } func (u *User) hello() string { return "hello," + u.name; } u := &User {"PHPer"} fmt.Println(u.hello()) はぁ〜〜、もうこれね メソッド定義するだけでもレシーバーをポインタ型にするか値型にするかで混乱するし そもそもclassの枠内でメソッド定義したいのよ、なんでstructと分離する感じにしちゃったの? class User{ name string func hello() string{ return "hello," + this.name; } func init(s string){ this.name = s } } u := new User("PHPer") u.hello() こっちのほうが可読性高くね? : nobodyさん [sage] 2017/12/03(日) 20:04:57.68ID:??? PHP8出るんか : nobodyさん [sage] 2017/12/04(月) 13:31:21.58ID:??? GOは新言語が取り入れるべきヌル安全性がない これは糞 : nobodyさん [sage] 2017/12/04(月) 19:08:57.02ID:??? そうなの? : nobodyさん [] 2017/12/09(土) 14:41:18.85:Dbh0aDdH 自宅鯖でWordPressを動かしてるんだが、ログイン状態でPCかブラウザがクラッシュして再起動すると、必ずログアウトされてる PHPってブラウザ再起動したらセッション無効にするみたいな設定あったっけ? どういう仕組みでこうなるのか調べたけど案外情報が無くてわからんかった : nobodyさん [sage] 2017/12/09(土) 15:10:14.96ID:??? ブラウザの設定なんでないの? : nobodyさん [] 2017/12/09(土) 15:31:04.88:Dbh0aDdH それも考えたけど別のサイトではそうならないんだよな : nobodyさん [sage] 2017/12/09(土) 19:08:15.58ID:??? >自宅鯖+PC再起動 セッションはメモリ上に保存されてるからね、ログアウトも仕方ないね ブラウザの場合はわからんが、ブラウザじゃなくて鯖が再起動になってるんじゃないの : nobodyさん [] 2017/12/09(土) 20:09:18.81:Dbh0aDdH 更に調べたらやはりブラウザのせいぽい Operaでだけ発生しChromeではならない、が、何故なのかはまだわからない 鯖は再起動になってない : nobodyさん [sage] 2017/12/09(土) 20:38:19.56ID:??? operaが再起動でクッキー消失する設定になってるかなんかじゃないか あと今のoperaは使わんほうがいいと思うぞ せめてvivaldyのほうがいい : nobodyさん [] 2017/12/09(土) 21:34:00.94:Dbh0aDdH 同じOperaでもサイトによって挙動が違って謎 どこかにドメイン別の設定でもあるのだろうか… : nobodyさん [sage] 2017/12/09(土) 21:43:08.38ID:??? operaは中国企業が買収したし何がどうなってるかわからん 使うの怖いわ 原因も調べるだけ時間の無駄 ってかそもそも、今どの層が使ってるんだ? : nobodyさん [] 2017/12/09(土) 22:17:40.13:Dbh0aDdH うーんVivaldyでも起きた…Operaの問題というわけでもないようだ PHPのセッションに、ブラウザ閉じたら終わるみたいな機能ないよね?そもそも検知できないと思うし : nobodyさん [sage] 2017/12/09(土) 22:20:19.23ID:??? シークレットモードだったらぶっとばす : nobodyさん [sage] 2017/12/11(月) 09:14:23.38ID:??? クッキーの有効期限がブラウザ閉じるまでになってるんだろ : nobodyさん [] 2017/12/17(日) 12:45:40.44:D/sBsoe5 >セッションはメモリ上に保存されてるから こいつ、何言ってんの? : nobodyさん [sage] 2017/12/17(日) 13:14:06.84ID:??? >セッションはメモリ上に保存されてる でしょ は何言ってるの? : nobodyさん [sage] 2017/12/17(日) 18:02:08.76ID:??? 実装次第だが少なくともPHPのセッションはデフォルトでファイルなはず 自分が使用してるバージョンではそうなってる ブラウザは終了時にセッション(クッキー)を削除するのでそこでセッションは切れる ただ異常終了した場合は前回のセッション復帰を試みるブラウザもある(ブラウザ次第) PHPがセッションを削除するタイミングは たしかアクセスがあった時にランダムで有効期限が切れたものを削除してた気がする なのでサーバ再起動した場合でもまだ有効期限内なら確立されるはず(ブラウザ側で残ってれば) サーバ再起動時にPHPのセッションを削除するようにしてる場合はこの限りではない : nobodyさん [] 2017/12/18(月) 15:18:34.00:thWVCCul phpのセッションは、ブラウザのcookieに保存されたセッションIDと サーバ側のセッションファイル(メモリキャッシュを使ってる場合はメモリ)の 突き合わせで行われる。 だからブラウザのcookieとサーバのセッションファイルを調べればだいたい原因が分かるよ。 たぶんcookieがないかセッションIDが変わってるだけだと思う。 君らのレス見てると、案外phpのセッションを理解してる人は少ないみたいだな。 まあたしかに分かりにくいけど。 : nobodyさん [sage] 2017/12/18(月) 16:38:31.32ID:??? どちらかというとcookieの仕組みを理解してないだけだろう 俺も昔勉強したきりでもう覚えてないが expiresが設定されてないとブラウザ終了時に消されるんだっけか : nobodyさん [] 2017/12/18(月) 18:13:20.39:thWVCCul そう。 最近はフレームワークが面倒な作業を全部やってくれるから、 新人(でなくてもか)がphpのセッションを学ぶ機会がないんだよね。 session_start()さえ自分で書かないんだもん。 そりゃ何やってんだか分からんって。 できればこの辺のことは学校でやってきて欲しいんだがな。 : nobodyさん [] 2017/12/18(月) 21:00:05.64:eDqIAEPx ブラウザ終了時にクッキー消される場合があるのはわかるが、異常終了時はどうなるんだろう? 再起動時に前回異常終了したことを検知して、正しく処理をするのかな?その結果クッキーは消えると : nobodyさん [sage] 2017/12/19(火) 12:41:13.65ID:??? 異常終了時はブラウザがCookieを消すという動作が出来てない可能性があり、 この場合ブラウザには残ってるということになる。 これらのCookieをどう次回の起動時にどう扱うかはブラウザ次第。 勝手に復元したり、復元するか聞いてきたり、リセットして通常起動をしたり。 : nobodyさん [] 2017/12/21(木) 21:53:07.61:LS3FMJ0q ヴァーカ : nobodyさん [sage] 2017/12/22(金) 06:40:12.07ID:??? 中途半端に勉強してフレームワークを変にカスタマイズして セキュリティホールができるよりかは何も出来ない方がいいという昨今 : nobodyさん [sage] 2017/12/22(金) 08:32:30.47ID:??? そうやってできたセキュリティホールなんてそう簡単に検知出来ない ソースがオープンであることが一番怖いのだよ 逆にオープンであるといろんな視点から修正も可能になるから 堅牢なものに仕上がるわけだけど : nobodyさん [sage] 2017/12/22(金) 12:18:36.73ID:??? Googleがemojiのユニコード化に乗り出したときにperlだとemojiをutf8にする決定版モジュールがすぐに出たし PHPだと暫定的にHTML_Emojiを使ってたけど5.4以降の関数を使った新しいモジュールが見つからない 何かおすすめの携帯emoji自動変換ないでしょうか : nobodyさん [] 2017/12/23(土) 00:06:44.08:Xl1aztuq お前は20年前から来たのか? : nobodyさん [sage] 2017/12/24(日) 19:23:17.05ID:??? 今でもガラケー使ってる人いるだろ : nobodyさん [sage] 2017/12/25(月) 12:18:38.90ID:??? PHPerはないものを生み出すのが得意になるように 言語が誘導してくれてるんだから自分で作るんだ!!!!!! : nobodyさん [] 2017/12/28(木) 01:52:50.40:LaR6+9Gu PHPerってある物を変に変えるのが得意だろ : nobodyさん [sage] 2017/12/28(木) 10:18:49.47ID:??? 車輪の再発明が大好きだからな 趣味でやる分の傾向としては別に悪くはない : nobodyさん [] 2017/12/30(土) 12:09:28.28:YhlYw6jg 誰でも簡単にネットで稼げる方法など 参考までに、 ⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。 グーグル検索⇒『半藤のブブイウイウレレ』 MHWTZ79CQR : nobodyさん [sage] 2018/01/04(木) 13:53:25.48ID:??? PHPから大量のデータを送る方法を教えてください 思いついたのが、 1、一旦ファイルに保存してファイルの一覧をクライアントに送る 2、クライアントから順次ファイルの送信を要求する です : nobodyさん [sage] 2018/01/04(木) 14:01:30.28ID:??? 専用のプロトコルでやり取りする : nobodyさん [sage] 2018/01/04(木) 17:18:29.54ID:??? Socket.ioなどを使えということでしょうか? 勉強してみます : nobodyさん [sage] 2018/01/04(木) 18:27:18.33ID:??? PHPもsocket使えるんですけどね : nobodyさん [sage] 2018/01/04(木) 20:06:31.03ID:??? npmがエラーはきまくりで進まなくなった。。。 なにこれ Error: Cannot find module ....\npm-cli.js socketは。。。portとかまためんどくさい話がありそうで。。。 : nobodyさん [sage] 2018/01/04(木) 20:11:56.98ID:??? は同期が必要なゲームデータのやり取りを想定してると思っての答えなんだろうけど。 1や2見るとそういう用途とは思えないな。 1がいまいち意味わからないけど。 : nobodyさん [sage] 2018/01/10(水) 19:17:52.42ID:??? スレチとか低レベ質問だったらすまん headerを使用したリダイレクトとApacheのリバースプロキシを利用したリダイレクトはどう違うんでしょうか? レスのヘッダーの中身が違うんですか? : nobodyさん [sage] 2018/01/11(木) 08:02:03.52ID:??? headerはブラウザがページ遷移を処理する リバースプロキシはサーバが接続処理する 前者はリダイレクト前後でURLが変わるが後者は見かけ上変化しない : nobodyさん [sage] 2018/01/12(金) 07:35:52.10ID:??? ありがとうございます 今朝検証したらその通りになりました ちょっとハマってたので助かりました : nobodyさん [sage] 2018/01/22(月) 17:23:29.75ID:??? 良くできてるプラグインとかに感動しなくなってしまった : nobodyさん [] 2018/01/23(火) 14:48:39.99:2Wa7Kih8 phpのf/wってルートネームスペースにエイリアス置きたがるけどさ use句があった方が圧倒的にわかりやすいと思うんだが、なんか理由ってあるのん? : nobodyさん [] 2018/01/24(水) 21:33:51.91:wn68glNS 同一サーバでドメインごとにphpのバージョンを切り替えたいんですが どうしたらいいですか? : nobodyさん [sage] 2018/01/24(水) 21:44:46.08ID:??? KubernetesでドメインごとにPods分ける : nobodyさん [sage] 2018/01/29(月) 23:40:26.63ID:??? Pythonおっそ・・・ PHPに戻ってきたよ : nobodyさん [sage] 2018/01/30(火) 20:55:34.50ID:??? Python遅いって一体何をしたんだ : nobodyさん [sage] 2018/02/04(日) 00:19:15.00ID:??? phpexcelを使って、読み込んだエクセルのマクロを実行する方法はないでしょうか : nobodyさん [sage] 2018/02/04(日) 02:27:57.71ID:??? PHPExcelを使って, では不可能(VBAは誰が実行するんだ?) 何らかの形でVBAの実行環境を構築出来ればやれるはやれるだろう VBSならWindows Script HostがあるがVBAじゃあExcelのCOMを使うしかなかろうが ttp://php.net/manual/ja/book.com.php : nobodyさん [sage] 2018/02/04(日) 08:13:01.47ID:??? Windows Serverでやればできる : nobodyさん [sage] 2018/02/05(月) 03:33:46.05ID:??? PHP5時代ではコンストラクタはクラス名ではなく__constructを使う public修飾子はつけるというルールがSHOULDだったと思うのですが PHP7時代でもそうなのでしょうか? : nobodyさん [sage] 2018/02/05(月) 04:37:38.89ID:??? ttp://php.net/manual/language.oop5.decon.php > Old style constructors are DEPRECATED in PHP 7.0. ttps://www.php-fig.org/psr/psr-2/#43-methods > Visibility MUST be declared on all methods. : nobodyさん [sage] 2018/02/05(月) 05:55:18.96ID:??? ありがとうございます 両方MUSTなんですね : nobodyさん [] 2018/02/09(金) 13:09:25.44:1nX6uKvU 質問させてください ttps://public.bitbank.cc/btc_jpy/ticker これをfile_get_contentsしてjson_decodeしてもNULLになります。 file_get_contentsの時点ですでにNULLが帰ってきます。 curlでやっても同じでした。 ブラウザでの表示は問題なく表示を確認していますが何が原因でしょうか? PHPのバージョンは5.3です。 allow_url_fopenはonになってます。 ちなみに上記URLはビットバンクのAPIですが他の仮想通貨関係のAPIのデータは問題なく取得できます。 原因だけでもわかるとありがたいです。 お願いします。 : nobodyさん [sage] 2018/02/09(金) 13:30:24.45ID:??? cURLで取れるけど : nobodyさん [sage] 2018/02/09(金) 19:13:46.61ID:??? ですよねー、取れるのが普通ですもんね 何故か自分の環境では取れないんですよ 特にfile_getにこだわってるわけではないんでcurlでもどちらでも良いんですが何故かbitbank.ccのデータだけNULLになっちゃう : nobodyさん [sage] 2018/02/09(金) 19:43:03.84ID:??? とりあえず環境かな, OS分からんし 可能ならPHPのバージョン上げるとか(5.3はもう死んだ, どころか5.5まで死んでる) 因みに手元ではcURLだけじゃなくfile_get_contentsも問題なし : nobodyさん [sage] 2018/02/09(金) 20:03:54.06ID:??? ありがとうございます。 PHPのバージョンを上げてから再度検証してみます。 : nobodyさん [sage] 2018/02/09(金) 20:09:43.52ID:??? 変えられるならもういっそ7.2まで上げてしまうといい どうせ早いか遅いかだ : nobodyさん [sage] 2018/02/09(金) 23:22:33.34ID:??? HTTPS周りならOpenSSL関連かもしれんし なんかヘッダが必要かもしれんからcontext作って渡すとか 基本的なことをやってから : nobodyさん [sage] 2018/02/10(土) 07:06:11.19ID:??? それやってもわかんなかったから質問したのよね : nobodyさん [sage] 2018/02/10(土) 09:41:56.07ID:??? お前もかよ ビットコインブームにあやかりやがって! : nobodyさん [sage] 2018/02/12(月) 08:06:33.44ID:??? PHP経由で画像を出力する手法があるかと思いますが、この場合スクリプトで いろいろと制限をかけることができ、セキュリティ上よろしいようですが Apacheが即座に画像を返すのに対し、一度スクリプトを走らせて画像を出力するのは パフォーマンス的に厳しい気がするのですが、どうなんでしょうか : nobodyさん [sage] 2018/02/12(月) 08:26:04.99ID:??? 計測すればいいんじゃないか 一枚ぐらいなら楽勝だけど、アクセスごとに100枚も200枚も出してたら重くなると思う とりあえずパフォーマンスなんて考えずに作ればいいよ どうせ誰も使わないサイトだからwww : nobodyさん [sage] 2018/02/14(水) 18:29:59.40ID:??? PHPの開発環境のシェアは Eclipseが8割り位占めてる? : nobodyさん [sage] 2018/02/14(水) 20:25:33.13ID:??? セキュリティ上別によろしくはない 何が目的かは知らないけどはっきりいって無駄だと思うぞ いいえ Eclipseなんて1割もおらんだろ : nobodyさん [sage] 2018/02/14(水) 20:36:28.35ID:??? notepad ++最高 : nobodyさん [sage] 2018/02/14(水) 20:45:14.35ID:??? 有料だけどPHPStorm使うと戻れないわ : nobodyさん [sage] 2018/02/14(水) 20:59:33.05ID:??? PHPStormの人気すごいな 使った人みんな同じこと言ってる : nobodyさん [sage] 2018/02/15(木) 00:18:11.97ID:??? それまじか? おつ!使った事がない!試してみる! 因みに俺はサーバ直結でEclipseで開発してるんだよね。 ローカルに開発環境作るのメンドクサイから。 PHP Stormもサーバ直結で開発出来ますか? : nobodyさん [sage] 2018/02/15(木) 03:37:49.22ID:??? サーバ直結の意味がわからん : nobodyさん [sage] 2018/02/15(木) 07:27:24.90ID:??? サーバーとSEX : nobodyさん [sage] 2018/02/15(木) 07:36:52.45ID:??? 有料 PhpStorm(業界標準)>SublimeText>VS 無料 IDE組(NetBeans,Eclipse)>古参エディタ組(Emacs,Vim)>新参エディタ組(VSCode,Atom)>触り組(メモ帳に準ずる物) こんな感じだと思う ちなみに俺はVS PhpStorm以外は分散してて1割以上シェアないと思う : nobodyさん [sage] 2018/02/15(木) 08:00:37.57ID:??? sakuraエディタやね : nobodyさん [sage] 2018/02/15(木) 11:09:59.46ID:??? RSE でぐぐってみぃ : nobodyさん [sage] 2018/02/16(金) 13:55:30.64ID:??? ファイル管理のみ便利でDreamweaver使ってるわ : nobodyさん [sage] 2018/02/17(土) 12:47:25.93ID:??? Visual Studio Communityで開発しようと思いインストールしたところ、 PHP Toolsのインストール過程で、デバッグ用に勝手にPHP入れたんですけど、 それが元々入れてたPHPより新しいせいか(7.13→7.17)、Pathの順番を変えてみましたが、 php -vをした限り、cliからphpを呼び出す場合最優先になってしまってるようです。 インストールされたPHPは%ProgramFiles(x86)%\IIS Express\PHPに配置されてますが、 困ったことにphp.iniが編集禁止になっていて編集できません。 display_errorsがOffになってるのでエラー箇所の特定に難儀します。 スクリプト側でerror_reporting設定してみましたが、何も表示されずでした。 ならばと元々入ってた7.13のphp.exeをphp7.exeにリネームして、 cliからphp7で呼び出したら呼び出せるのですが、 こんな単純なexeだけのリネームで問題ないのでしょうか? : nobodyさん [sage] 2018/02/18(日) 15:31:50.99ID:??? 問題が起きた時にその問題について聞けよ : 283 [sage] 2018/02/19(月) 08:00:37.25ID:??? Visual Studioのアップデートがきてたので適用したら、 非互換とかになってPHP Toolsでの開発が出来なくなりましたw 1日で使えなくなってしまった。 : nobodyさん [sage] 2018/02/19(月) 21:41:51.01ID:??? ☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の 両院で、改憲議員が3分の2を超えております。 『憲法改正国民投票法』、でググってみてください。国会の発議は すでに可能です。平和は勝ち取るものです。お願い致します。☆☆ : nobodyさん [sage] 2018/02/21(水) 16:45:00.76ID:??? 未経験からWEBプログラマって本当かな ttps://fenixjob.jp/web_programmer/search-list : nobodyさん [sage] 2018/02/22(木) 07:13:48.19ID:??? 未経験 != 無知 : nobodyさん [] 2018/02/28(水) 19:16:26.25:oG8SOZNq DateTime::createFromFormatの第一引数に'Y-m-d'、第二引数に日付の文字列を指定して使うと 時刻は0時0分ではなく、現在の時刻が勝手に設定されます 一方、DateTimeのコンストラクタの方(日付の文字列だけを指定する)は時刻は0時0分になります 何でですか?意味が分かりません DateTime createFromFormat without time - Freek Lijten ttp://www.freeklijten.nl/2015/08/12/DateTime-createFromFormat-without-time : nobodyさん [sage] 2018/02/28(水) 19:16:52.60ID:??? 1人でphpで作っているプロジェクト(と言ってもDBでユーザ管理するぐらいのもの)の 進捗状況(編集履歴)を外部に見てもらうためにはBitbucketとか使えば良い? 1日の終わりにプロジェクトのルートディレクトリごと放り込めば webで差分とかがわかるとかできたらいいんだけどどうでしょう? : nobodyさん [] 2018/02/28(水) 19:19:01.97:oG8SOZNq createFromFormatの場合、!が無いと現在のシステム時刻で初期化されるとは確かに書いてありますが 直感的でなくて分かりにくい挙動だと思います。 ttp://php.net/manual/ja/datetime.createfromformat.php : nobodyさん [sage] 2018/02/28(水) 19:51:54.22ID:??? ttps://github.com/php/php-src/commit/9f979a16bfa649a4eb74e3a6cb05e5fdb01067de#diff-7b738accc3d60f74c259da18588ddc5dR1733 ここで追加されたコードみたいだしコミッター(Derick Rethans)に聞いてみたら まぁ分かりにくいのは同意する 何で修正されないんだって話ならBC breakだからとしか : nobodyさん [sage] 2018/03/07(水) 19:24:41.03ID:??? こんばんは。PHPで作ったページのInternal Server Errorについて質問です。 FC2のレンタルサーバーを借りて、WEBサイトを作っているところです。 PerlのCGIでページを作ると、エラーになると500 Internal Server Errorが表示されます。 ところが、PHPでページを作ると、エラーになると真っ白なページが表示されるだけで、 500 Internal Server Errorが表示されません。 これは一体なぜでしょうか? 現象 PerlのCGIでエラーが出ると → ApacheデフォルトのInternal Server Errorのページが表示される。 PHPのページでエラーが出ると → FireFoxとIEなら、真っ白なページになるだけ(エラー表示が出ない) Chromeなら、ブラウザが出すHTTP ERROR 500の表示 (Apachデフォルトのエラーページではない) 上記のことから、PHPでエラーが出ると500が返ってきているのは 間違いないと思うんですが、なぜ、エラーが表示されず 真っ白なページになってしまうんでしょうか? よろしくお願いします。 : nobodyさん [sage] 2018/03/08(木) 02:07:16.32ID:??? 『PHP 真っ白』で検索 : nobodyさん [sage] 2018/03/08(木) 06:24:23.39ID:??? PHPになんらかのエラーがあった場合、通常はレスポンスコードは200で返ってきて、 エラー個所を表示するようになってる。 どの種別のエラーを表示させるかというのはサーバ側(PHP)の設定次第だし、 エラーには時に重要な情報も含まれる可能性があるので、 第三者に見られないよう、エラー表示自体をしないことも可能。 また、レスポンスコードをどう返すかというのもサーバ次第で、 通常200のところを、500にすることも可能だし、 同じ500でも、PerlCGIとPHPでは返すドキュメント(body)を別にすることも可能だし、 もちろんbodyを含まない、ヘッダ情報のみを返すことも可能。 早い話、全てはサーバの設定次第なので、FC2側で単にそうなっているだけなのだろうという事。 Chromeのやってることは、レスポンスにbodyがないので(=真っ白になる)、 ユーザに何が起きてるかわかるように、おせっかいにも補完表示してるだけと考えられる。 : 293 [sage] 2018/03/08(木) 07:28:24.52ID:??? ありがとうございます。 によると、 ・PHPではエラーがあっても200が返ってくる。 ・ただし、ちゃんと実行できてないから、中身は真っ白になる ・PHPのエラー表示は設定で可能(←これはできました) ・サーバーの設定次第では500を返すことも可能 (レンタルサーバーでは、設定を変えられるかどうかはサーバー次第) ということですね? 何となく分かってきました。 ありがとうございます。 : nobodyさん [sage] 2018/03/08(木) 12:56:24.58ID:??? 開発用環境を考慮してデフォルトではエラー表示はOnだけど エラー表示関連はPHP_INI_ALLで一般ユーザが設定できるようになってるので 本番用環境のphp.iniは管理者側でデフォルトではエラー表示をOffにして 必要があればOnにするよう利用者に委ねるというのが行儀のいいレンサバ管理者 今は知らないけど昔xrea使ってた時はOnのままだったけどあれはよくない ttp://php.net/manual/ja/errorfunc.configuration.php#ini.display-errors > ・PHPではエラーがあっても200が返ってくる。 > ・サーバーの設定次第では500を返すことも可能 デフォルトのエラー表示Onのままであれば200だけど 上記の通り本番環境ではOffにすべきであり Offにしたらサーバ管理者がhttpdに細工をしない限り500が返るはず fc2でエラーに500が返ってくるというのは正しい状態と見なしていい > ・ただし、ちゃんと実行できてないから、中身は真っ白になる fc2ではそういうことになるのだろう : nobodyさん [sage] 2018/03/08(木) 13:04:50.53ID:??? ちなみに500ページを表示させたいというなら htaccessが使えるなら設定してみては? apacheは詳しくないんで答えれないけどできそう : 293 [sage] 2018/03/08(木) 13:10:55.13ID:??? > デフォルトのエラー表示Onのままであれば200だけど > 上記の通り本番環境ではOffにすべきであり > Offにしたらサーバ管理者がhttpdに細工をしない限り500が返るはず > fc2でエラーに500が返ってくるというのは正しい状態と見なしていい FC2でPHPのエラーになると、IEとFireFoxは真っ白画面。 Chromeではブラウザーが出した500エラー画面。 なので、PHPエラーでちゃんと500エラーが返ってきてるって判断した。 不思議なのは、普通は404でも500でも、Apacheがデフォルトの エラーページを送ってくるのに、なんで500エラーだけ 真っ白画面になるんだろう?ってことなんです。 実際、404エラーではちゃんとApacheのエラー画面が返ってくる。 : 293 [sage] 2018/03/08(木) 13:16:27.67ID:??? 自作500ページを表示しようとして表示できないからおかしいなって思って、 いろいろ試して、Apacheデフォルトの500も表示されないって気付いた。 404とかは、自作にしたら自作が表示されて、 自作じゃなくしたらApacheのデフォルトが表示される。 : nobodyさん [sage] 2018/03/08(木) 13:48:41.66ID:??? phpがエラー検出したあとapacheに対してこれを返してくれと 500レスポンスコードにContent-Length:0の空のHTMLを送ってるイメージ : 301 [sage] 2018/03/08(木) 14:16:08.24ID:??? if (responceStatus == 500 && responceBody.length == 0) { responceBody = readFile("/errors/500.html"); } 疑似コードだけど こんな感じのをhtaccessで設定できるならいけるんじゃないのってことね : nobodyさん [sage] 2018/03/08(木) 14:57:47.09ID:??? ttps://oshiete.goo.ne.jp/qa/5997092.html FATAL ERRORが出るのが原因らしいが : nobodyさん [sage] 2018/03/08(木) 14:58:24.43ID:??? typo FATAL→FETAL : nobodyさん [sage] 2018/03/08(木) 15:12:09.63ID:??? PHPでどうこうするっていうソリューションはあんまりよくないよねえ httpdでどうにかしたいところ ところでresponceじゃなくてresponseだった恥ずかしい : nobodyさん [sage] 2018/03/08(木) 16:47:59.97ID:??? 修正前が正解 : 293 [sage] 2018/03/08(木) 17:13:23.25ID:??? 真っ白になるイメージはまさにだし、 やりたいことはまさにの通りです。 それを読んで、挙動としてはやっぱりそうだったんだな、と分かりました。 そして、普通に500エラーを出すのは相当無理筋なんだな、と。 ってことで、みなさんいろいろとありがとうございました。 500エラーではなく、PHPの中でエラーを処理して 普通のHTMLでエラーメッセージを出す、ということにしました。 ありがとうございました。 : nobodyさん [sage] 2018/03/08(木) 22:15:46.47ID:??? PHPバカな子でごめんな : nobodyさん [sage] 2018/03/11(日) 00:58:34.82ID:??? 大方PHPがmod_phpで動いてる phpinfo()でSAPI APIを確認してみ : nobodyさん [] 2018/03/29(木) 15:13:07.71:XiaDFUEL Composerのautoload.phpって、全然autoloadじゃねぇんだよな。 : nobodyさん [] 2018/03/29(木) 16:03:23.74:XiaDFUEL ttps://github.com/sebastianbergmann/phpunit/issues/2499 Q: but when I run phpuint --log-json I get unrecognized option --log-json. Was this feature intentionally removed from version 6? A: Yes, this was removed. 「Yes,」じゃねぇよ、おっさん! Any solutions for --log-json in netbeans8.2 I have same problem with this version. Someowne has any idea how to fixed it? ここで終わってやがる… : nobodyさん [sage] 2018/04/02(月) 00:29:19.22ID:??? セマンティックバージョニング的にもメジャーバージョンアップは後方互換性破壊があり得る変更なわけだし : nobodyさん [] 2018/04/02(月) 11:34:38.76:ZmEx8Txj Logging Options: --log-junit <file> Log test execution in JUnit XML format to file. --log-tap <file> Log test execution in TAP format to file. --log-json <file> Log test execution in JSON format. --testdox-html <file> Write agile documentation in HTML format to file. --testdox-text <file> Write agile documentation in Text format to file. > 後方互換性破壊があり得る変更なわけだし(キリッ はぁ? : nobodyさん [sage] 2018/04/02(月) 15:07:52.69ID:??? ドキュメントからも消されてはいるな ttps://github.com/sebastianbergmann/phpunit/issues/2528 ttps://github.com/sebastianbergmann/phpunit-documentation/commit/d0a8a1e59e2998395e9796e39773938e145178fb : nobodyさん [sage] 2018/04/12(木) 08:21:18.40ID:??? FacebookがおもらししたのはPHPで構築されてたから? : nobodyさん [sage] 2018/04/14(土) 10:32:02.12ID:??? techempowerでPHP系フレームワークの順位がかなり下なのは 単にPHPが遅いから? ttp://www.techempower.com/benchmarks/ Shared-Nothingな事による初期化にかかるオーバーヘッドやらブロッキングI/Oを無くすことを狙った phppmとかReactPHPとかもあるらしいけど Shared-NothingとかブロッキングI/Oを前提に作った今までのコードは動かないよね そんなの使い物になんの? そこまでするんだったら別言語に移ったほうが良くね? ttps://github.com/reactphp/react/wiki/FAQ ttps://github.com/php-pm/php-pm/blob/master/README.md 遅いのはどうにもならないって事で PHPをアクセス数多いサイトで使う時は 静的キャッシュを行ってサーバーに負荷掛からないようにするのがデフォらしい : nobodyさん [sage] 2018/04/17(火) 06:20:15.60ID:??? 後はcssとjs、ファイルを分けずにhtmlの中に書いてしまう : nobodyさん [sage] 2018/04/17(火) 06:20:44.28ID:??? 要は読み込むファイルはhtmlファイル一枚だけにする 画像もsvg そうすれば超早い : nobodyさん [sage] 2018/04/17(火) 10:37:30.26ID:??? 早い遅いいうけど人間の認識できる速度じゃないから 別に実用上はなんら問題ないんだよ : nobodyさん [sage] 2018/04/17(火) 10:56:24.98ID:??? ローディング遅けりゃ離脱増えるぞ : nobodyさん [sage] 2018/04/17(火) 14:52:40.68ID:??? そんなにI/Oにご不満ならメモリに全部展開しときゃいいよ ユーザーの誰が気にするのかしらんけど : nobodyさん [sage] 2018/04/17(火) 22:46:50.61ID:??? 少し違う phpやdb構築の際、速度を気にせずに重い処理を平気で書くことが出来るようになる 「これ重くなるだろうなぁ・・・かいてまえ!」→やり直し が無くなる : nobodyさん [sage] 2018/04/18(水) 12:55:26.18ID:??? ttp://hoge.com/test.php にアクセスしようとしたところ writeable by group という初めてみるエラーに遭遇しています。 何が原因なのでしょうか? Internal Server Error Directory "/home/XXX" is writeable by group suPHP 0.7.1 test.php自体には、 echo"testやで"; しか記述していません。 : nobodyさん [sage] 2018/04/18(水) 14:13:48.65ID:??? ttps://www.google.co.jp/search?q=+is+writeable+by+group&ie=utf-8&oe=utf-8&client=firefox-b-ab&gfe_rd=cr&dcr=0&ei=0tPWWqv6GKuuX53HnfAL : nobodyさん [sage] 2018/04/18(水) 14:47:55.41ID:??? ttps://ameblo.jp/bibouroku555/entry-11505370277.html このブログが参考になりました。 : nobodyさん [sage] 2018/04/18(水) 23:39:44.72ID:??? 何が原因ってまんまエラーに書いてるのにそれがわからんってのがわからんでw : nobodyさん [] 2018/04/22(日) 12:53:22.27:qxkyJl8C phpMyAdminってインターネットに晒すとヤバイの? まあDBのパス漏れたら何でも出来ちゃうよね あるいはphpMyAdmin自体に何か脆弱性があってもパスが漏れて終わる : nobodyさん [sage] 2018/04/22(日) 19:29:29.60ID:??? それも分からないならweb制作やるべきじゃないと思う : nobodyさん [sage] 2018/04/24(火) 01:43:06.76ID:??? 攻撃者は狙ったアプリケーションのデフォルトの配置場所やファイル名でアクセスして 200が返ってきたらさらに調べてみて狙ったアプリケーションであるなら 既知の脆弱性を利用した攻撃あるいは管理ページ等にデフォルト情報でログインを試みる すなわちメジャーなアプリケーションをインストールして公開する場合 デフォルトのパスワードを変えなければ狙われる 脆弱性が見つかった時点ですぐにアップデートしなければ狙われる レンタル鯖の管理人でもなければ どこからもリンクしない適当なディレクトリに展開しておけ ついでにアクセス制限かけとけ それだけでほぼ問題はない : nobodyさん [sage] 2018/04/24(火) 18:43:18.05ID:??? なんだかんだ批判はあるものの、ウェブ開発においてPHPが業界標準なんですね。 : nobodyさん [sage] 2018/04/24(火) 18:44:52.12ID:??? phpMyAdmin自体がPHPで作られてるんだけど。 ところでphpは何の言語で作られてるんだ??? : nobodyさん [sage] 2018/04/24(火) 21:42:59.47ID:??? C : nobodyさん [sage] 2018/04/24(火) 22:55:40.59ID:??? C : nobodyさん [sage] 2018/04/25(水) 00:24:46.61ID:??? B : nobodyさん [] 2018/04/25(水) 09:45:41.44:Wx6vo3v+ phpMyAdminを複数の場所からアクセス出来るようにするには SSHのポートフォワードを使えば良い? IPアドレス制限はIPの管理が面倒 固定IPじゃないとたまに変わるし VPNは金がかかる phpMyAdminの認証に加えてBASIC認証orダイジェスト認証+中間者攻撃対策にHTTPSを使っても良いかもしれないが 認証フォーム自体へのアクセスは防げないのなんだかなあ SSH認証なら有効な鍵を持っている人だけがphpMyAdminにアクセスできる SSH鍵自体にもパスワード掛ければ更に安全と思う : nobodyさん [sage] 2018/04/25(水) 14:25:39.76ID:??? まぁローカルホストからの接続に限定し, 認証と暗号化を備えたトンネルで接続するのであればちゃんと設定した上では安全でSSHポートフォワードでもVPNでも問題ない VPNもセキュアでフリーな実装のOpenVPNとかあるから別に金もかからん : nobodyさん [sage] 2018/04/26(木) 01:41:21.66ID:??? 出来うる当たり前の対策をするしかないわな ttps://stackoverflow.com/questions/2631269/how-to-secure-phpmyadmin : nobodyさん [sage] 2018/04/26(木) 01:50:14.09ID:??? 制限もそんなガチガチの制限かけないで緩い制限でも効果はでかいのでは 攻撃なんてほとんど海外からだからね jp制限かけられてるってわかればvpnとか通して偽装してくるかもしれないけど 他に狙うとこもあるしそこまでする攻撃者は稀なので : nobodyさん [] 2018/04/26(木) 20:00:38.27:e0kKtexp 【山口達也】 女子高生にチュー × <差別番組Zip!> ◯ 手繋ぎデート不倫 【川島海荷】 ttp://rosie.5ch.net/test/read.cgi/liveplus/1524709646/l50 : nobodyさん [] 2018/04/27(金) 12:05:11.16:kBikjo8b 開 2 ち ゃ ん ね る= 便 所 の 落 書 き ・ 痰 壷 の 更 に 劣 化 コ ピ ー の 3 流 掲 示 板 運 営 の 性 格 の 悪 い 引 き こ も り I T 土 方 メ ガ ネ ザ ル 早 く 死 な な い か な : nobodyさん [sage] 2018/04/29(日) 10:15:31.52ID:??? c言語は、web系の言語じゃないと思うが。 : nobodyさん [sage] 2018/04/29(日) 11:47:12.71ID:??? は? phpはCで動いてるのは常識だぞ : nobodyさん [sage] 2018/04/29(日) 12:33:52.69ID:??? じゃ、そもそもwebシステム最初からCで組めばいいじゃん : nobodyさん [sage] 2018/04/29(日) 13:52:45.22ID:??? 別にCで書きたければ書いても良いけど?滅茶苦茶早くなる あらゆるphpの資産を失うけどね。まぁ頑張って : nobodyさん [sage] 2018/04/29(日) 17:05:45.10ID:??? めんどくさいからPHPでええわ : nobodyさん [sage] 2018/04/29(日) 17:21:10.04ID:??? PHP自体が何で書かれてるって聞かれたらそりゃCだろ PHPだけじゃなくPythonもRubyもCで書かれた処理系が一番使われてる WebサーバもnginxもApacheもC : nobodyさん [sage] 2018/04/30(月) 01:36:56.71ID:??? みたいなのがいるからPHPerはバカにされる : nobodyさん [sage] 2018/04/30(月) 06:51:03.66ID:??? 紛れ込んだ初心者か例外だろ もっと優しくしてやれよ : nobodyさん [sage] 2018/05/02(水) 04:09:38.08ID:??? スーパーグローバル変数の前後に.がついてる記述があるんですが このドットはどういう意味なんでしょうか 例えばsql文をこんな感じで記述してたりするものです $sql = "SELECT COUNT(*) FROM bbs WHERE name='''.$_POST["name"]."'"; : nobodyさん [sage] 2018/05/02(水) 04:21:36.33ID:??? スーパーグローバルどうこうではなく文字列連結演算子 : nobodyさん [sage] 2018/05/02(水) 14:58:58.69ID:??? count(*)だからたいして問題にはならんけど それはsqlインジェクションの典型コードだから褒められたものではないな : nobodyさん [sage] 2018/05/02(水) 15:15:18.12ID:??? 寧ろSQLインジェクションのコード例まである : nobodyさん [] 2018/05/02(水) 16:58:11.13:XHGDuEA2 $_POST['name']="';drop table bbs"; とか単行でできなかったっけ? : nobodyさん [sage] 2018/05/04(金) 18:40:21.61ID:??? 出来ないはず 少なくともsqliteではできない "忘れてるからでコメント入れとかないとシンタックスエラーになるわ : nobodyさん [sage] 2018/05/04(金) 19:02:58.13ID:??? UNIONすればいいから : nobodyさん [] 2018/05/11(金) 21:01:57.13:w2CoFO3p opendir()を使って指定したフォルダ内のファイル名一覧を取得したいのですが、 一つのセッションで何回も opendir()実行すると、その度にディスクにアクセスして サイトの表示が遅くなりますか?良い方法ありますか? : nobodyさん [sage] 2018/05/12(土) 00:19:20.02ID:??? 中身かわったときに読み込んでDBなりファイルに書いときゃいい : nobodyさん [sage] 2018/05/12(土) 07:06:28.17ID:??? 静的データ使うのがベストだがopendirの回数を減らす方向だと 処理ステップが多いopendirをする前に より単純な方法で比較すればopendirまで行かなくて済む 例えばフォルダのfilemtimeをセッション変数にぶっこんどくとか ユーザ用のデータで外からの更新がないとか セッション開始時から終了時まで使いまわして問題がないなら セッション変数にファイル一覧ぶっこんどきゃいい : nobodyさん [] 2018/05/12(土) 11:48:03.93:MPdqrTl4 >>358 レスありがとうございました。 >セッション開始時から終了時まで使いまわして問題がないなら その通りなので >セッション変数にファイル一覧ぶっこんどきゃいい そうします。 ちなみにstatic変数を使ってやっても良いですか? : nobodyさん [sage] 2018/05/12(土) 21:11:01.72ID:??? ページを表示した時点でプログラムが終了するので 次の動作(ページ遷移とか)をするとstaticじゃ保持されない だからセッションやhiddenで持ちまわす : nobodyさん [] 2018/05/14(月) 12:05:38.71:bg4N3y/B json_encodeで次のようになるデータを [ { "国": "アメリカ", "地域": "ワシントン", "人口": 19 }, { "国": "日本", "地域": "東京", "人口": 7 }, { "国": "日本", "地域": "大阪", "人口": 3 }, ] 次のようにする方法教えて [ "アメリカ": { "ワシントン": { "人口": 19 } }, "日本": { "東京": { "人口": 7 }, "大阪": { "人口": 3 } } ] : nobodyさん [sage] 2018/05/14(月) 20:08:43.77ID:??? $a = json_decode($encodedData); foreach ($a as $v) { $b[$v->{"国"}][$v->{"地域"}] = $v->{"人口"}; } var_dump(json_encode($b)); あとは調整しれ つか : nobodyさん [sage] 2018/05/14(月) 20:14:32.47ID:??? $b[$v->{"国"}][$v->{"地域"}] = ["人口" => $v->{"人口"}]; だった : nobodyさん [sage] 2018/05/14(月) 22:20:49.44ID:??? ありがとう助かった スレチだったみたいだなスマソ : nobodyさん [sage] 2018/05/14(月) 22:47:48.22ID:??? このくらいなら問題ないんじゃない? 手とり足とりって感じでもないし JavaScriptも書く身としてはmapもアリかな $a = array_map(function ($val) { $res[$val->{"国"}][$val->{"地域"}] = ["人口" => $v->{"人口"}]; return $res; }, json_decode($encodedData)); と思ったけどJavaScriptほどすっきりかけないからループの方がいいわ : nobodyさん [sage] 2018/05/15(火) 08:08:04.80ID:??? $obj->{""} この表記はあまりなじみがないから 初心者じゃなくても結構悩むかもね : nobodyさん [sage] 2018/05/21(月) 07:51:27.75ID:??? phpで二回目にデータを渡すか、ユーザーの入力を待ちたい ////////ページ//////// [続けるボタン] 一回目の出力結果・・・ 二回目の出力結果・・・ こんなページが作りたいのですが、 phpに書いたものはボタンを押すとリセットするようで、二回目が作れません もしくは、while(){ボタン入力まで待機} こんな書き方をしたいのですが、どちらかの実現方法を教えて下さい : nobodyさん [sage] 2018/05/21(月) 07:58:36.40ID:??? sessionがあるみたいなのでやってみます : nobodyさん [sage] 2018/05/21(月) 14:36:19.77ID:??? gRPCがPHPでRPCサーバーを作るのには対応していないのって何で? PHP単体で動く(Apacheやnginxを使わない)まともなHTTPサーバーがないのが原因みたいに言われてたけど それだけ? そうだとして何でPHP単体で動いて テストだけでなく本番でも十分使えるHTTPサーバーが無いのか : nobodyさん [sage] 2018/05/21(月) 14:42:31.54ID:??? WEB画面から文字列を入力しDBにInsertすると文字の頭になんか変な文字が入ってました。 そこで、テーブル上のデータをSQLファイルでダウンロードして サクラエディタで見たところ空白にしかみえないです。 しかし、その空白部分を選択してみると、サクラエディタの右下に U+30AD となっています。何かの文字を表している様ですが分かりません。 これは一旦何が入っているのでしょうか? : nobodyさん [sage] 2018/05/21(月) 15:29:39.14ID:??? JSONで非同期にしたら? そんな処理でSessionとかcookie使うもんなの? : 370 [sage] 2018/05/21(月) 15:47:02.23ID:??? SQLで insert文で 'キ' と入力するとなぜか'キ'の左側に U+FEFF ← が入ってしまっています。 (U+30AD → 「キ」でありこれは問題ありません。) BOM??らしいです。なんで'キ'入力の時だけ入るんだろうか。 : nobodyさん [sage] 2018/05/26(土) 21:31:37.47ID:??? Laravelのドキュメントってどこにありますか? 公式laravel.jpのドキュメントはインストール設定と期待したものじゃないし いくつか機能の紹介してるリンクはリンク切れだし ttp://laravel4.kore1server.com/docs/routing 唯一まともなクイックスタートもちょっと少なすぎます なんか1つテーマにしてサンプルを説明つきで作るようなやつはないんですかね : nobodyさん [sage] 2018/05/27(日) 01:53:43.88ID:??? 甘えるな小僧 : nobodyさん [sage] 2018/05/27(日) 10:33:53.98ID:??? PHPはFWが乱立しすぎて首をしめてるな その点node.jsはどこいってもexpressでいいよだから楽 環境構築でいえばPHPのほうがだいぶ楽だから サーバエンジニアがいないとどうしてもPHPになってしまうのだろう : nobodyさん [sage] 2018/05/28(月) 11:18:24.32ID:??? 他に比べたらオプソFW乱立って程でもない 総じて質が低いのが問題 それに起因するのかオリジナルFWが輪をかけてゴミまき散らしてて首絞めてる : nobodyさん [sage] 2018/05/28(月) 12:20:46.25ID:??? このスレで使うFWを統一しよう(名案 そしたら他の死んだスレで一向に答えが来ない独り言しないで済むしな : nobodyさん [sage] 2018/05/31(木) 15:25:27.48ID:??? public function foo() { return [ 'a' => 'b', 'c' => 'd', ]; } FWでこういうコードを入れる必要があるのですが、 何を意図してこんなことをさせるのですか? $foo = ['a' => 'b', 'c' => 'd']; でよくないですか? : nobodyさん [] 2018/05/31(木) 15:47:30.82:7ebU4p49 ttps://ab-abo.com/anime-the-ancient-magus-bride : nobodyさん [sage] 2018/06/07(木) 15:40:45.53ID:??? ここのイケメン先輩達に質問しようと思って質問内容を整理して文を書いていたら、途中で答えがわかりました ありがとうございました : nobodyさん [sage] 2018/06/07(木) 16:12:26.53ID:??? おう良いってことよ 感謝を忘れるなよ : nobodyさん [sage] 2018/06/07(木) 17:10:31.89ID:??? よくあるやーつ : nobodyさん [] 2018/06/16(土) 10:55:24.21:XFveZCTu PHPって1リクエストで1プロセス使うの? 効率悪くね? 1万件コネクションあったら1万プロセス生成するの? 無理じゃね? : nobodyさん [sage] 2018/06/16(土) 11:33:21.06ID:??? その辺はうまく最適化されてるからそこまで考えなくてもいい 実際、動いてるっしょ : nobodyさん [] 2018/06/16(土) 12:28:52.66:XsXx5YxH 【誘われたら、優秀″】 手に、マイクロ・チップ ←<関/輿水>→ メール、ネットで公開処刑 ttp://rosie.5ch.net/test/read.cgi/liveplus/1529112504/l50 : nobodyさん [] 2018/06/16(土) 12:38:57.88:WL8j0F1D 貧弱なサーバーだと一万もプロセス生成できなくね? プロセス大量に生成しない他言語の方が有利でしょ : nobodyさん [sage] 2018/06/16(土) 13:48:58.44ID:??? WebサーバがPHPを実行する際の仕組みに依存するんだから言語は関係ない Apache+CGIならリクエスト毎にプロセス立ち上げるし Apache+mod_phpならApacheのMPM次第だし Apache/nginx+php-fpmならひとつのプロセスで複数のリクエストを捌くし : nobodyさん [] 2018/06/16(土) 14:16:49.57:XFveZCTu >ひとつのプロセスで複数のリクエストを捌くし 同時には無理でしょ? 1万件接続されても1万プロセスは作らないけど リクエストが来た時割り当てられるプロセスが無かったら 空きが出るまで待たされるってことだろ nodeはそもそもApacheモジュールとかFastCGIとか使ってなくて node単体でもHTTPサーバーとして動作するって話だ nginxと組み合わせる場合はHTTPで通信する nodeは非同期I/Oだから前のリクエストが終わらないと一切次のリクエストの処理が開始できないって事も無い FastCGI自体1996年ぐらいに出てきてから そんな進歩してないっぽいし : nobodyさん [sage] 2018/06/16(土) 16:23:45.43ID:??? もちろんそう phpは基本Cのラッパーだから、直接C言語で書けば爆速で動くよ いつ完成するかは知らないけど頑張って 言ってる意味がよくわからなi おそらくリクエストが最多のgoolgleやyahooが重くて仕方ないならその意見はわかるけど、 一体何に対しての意見なの? : nobodyさん [] 2018/06/16(土) 17:51:24.35:EG3qtVlZ レストランで喩えると コース料理を全部出し終わるまで 次の客を待たせるのがPHP 料理を作り終わって 客が食べている間に時間が空いても 他の客の料理は決して作らない : nobodyさん [] 2018/06/16(土) 19:20:14.63:m7Q1wvls 客一人に一人ウェイターが付くシステムのレストラン=PHP ウェイターが5人なら注文を聞ける客は5人まで それでもレストランで食事がしたい客は待つしかない 混雑に対応するにはウェイターの人数をかなり増やす必要がある しかし常に大人数のウェイターを待機させておくと暇な時の人件費が嵩む だからって混雑時だけ応援を呼ぶと対応に時間が掛かる 普通のレストラン=Node.js 一人のウェイターが複数の客の注文を取るので遥かに効率的 混雑していても客はとりあえず店に入って注文を出せる 客の人数がウェイターの人数を超えると一切注文を出せず、料理も来ないPHPとは対照的 混雑時もPHPほど大人数のウェイターは必要ない : nobodyさん [sage] 2018/06/16(土) 21:53:50.62ID:??? PHPスレで, しかもPHPに限らないことでPHPをディスってもなぁ nodeが最適な場面は確かにPHPには向いてないだろうけど, それ以上でもそれ以下でもない : nobodyさん [] 2018/06/16(土) 22:52:57.98:DoWXS1Yy プロセス生成(prefork)するので 今でも使われてるのってRubyのUnicornぐらいしか知らない : nobodyさん [sage] 2018/06/17(日) 14:49:10.70ID:??? 知ったかが何人もいるのか。お先真っ暗感 : nobodyさん [sage] 2018/06/17(日) 14:52:25.05ID:??? phpはそういう言語だからね 大丈夫 : nobodyさん [] 2018/06/17(日) 15:15:30.67:dwEPgyzc PHPでもnodeみたいな非同期処理を実現するものとして php-pmとかSwooleがあるけど 本番で使ってる奴なんておらんやろ? : nobodyさん [sage] 2018/06/17(日) 15:47:59.14ID:??? 結局goの方が早いしな : nobodyさん [sage] 2018/06/17(日) 16:21:08.45ID:??? 非同期処理でややこしくするよりかはサーバー増やしたほうがよっぽどコストがかからん : nobodyさん [] 2018/06/17(日) 17:20:28.95:dwEPgyzc Swoole使うと 最大で30倍近く速くなるらしいのでそれは暴論 : nobodyさん [sage] 2018/06/17(日) 23:16:57.06ID:??? 1万リクエストあるからって1万生成されるわけじゃないし プロセス生成数なんて気にする必要はない : nobodyさん [sage] 2018/06/18(月) 00:32:48.78ID:??? 実際Node.jsでそれだけ回すと非同期(笑)状態がよくあるしな : nobodyさん [] 2018/06/18(月) 09:00:28.15:vorT3MqW ttps://laravel-news.com/laravel-swoole nginx/FPMの一般的な構成だと80.93リクエスト/秒なのが Swoole仕様では8717リクエスト/秒に増加している 30倍どころか100倍以上 同期(笑) メモリリークや不具合を起こす危険と引き換えに時間の掛かるPHPやフレームワークの初期化も省略できるからな そりゃ早いだろ php-pmはメモリリークを防ぐために一定数のリクエストを処理後に再起動出来たが Swooleは知らない : nobodyさん [sage] 2018/06/18(月) 09:10:51.86ID:??? Swoole自体は面白いと思うけど, FPMのチューンが分からないからその比較に意味は無い 仕組み上捌けるリクエストは増えると思うけども : nobodyさん [sage] 2018/06/18(月) 16:16:03.97ID:??? Swooleって何?PHPのアプリケーションサーバー? : nobodyさん [sage] 2018/06/18(月) 16:20:58.89ID:??? 非同期ネットワークIOの拡張モジュール written by C : nobodyさん [sage] 2018/06/18(月) 16:41:14.62ID:??? reactphpとはちがうのん?よくわからん・・・ : nobodyさん [sage] 2018/06/18(月) 17:07:22.53ID:??? 使ったことないからアレだけど, 機能的には重複すると思う Cで書かれた拡張かPHPで書かれたライブラリかの違い : nobodyさん [sage] 2018/06/18(月) 17:15:36.91ID:??? なるほど、じゃSwoolのほうがよさそうだね 日本語資料少ないけどちょっと使ってみよう : nobodyさん [sage] 2018/06/18(月) 19:07:53.58ID:??? Falconみたく中身弄れる人限定とかじゃないの? : nobodyさん [sage] 2018/06/19(火) 01:56:57.10ID:??? 従来PHPですべてやってたことを PHP+AngularJSで開発しようとおもってます。 この場合PHPが行うことはWebAPIとして入力値からCRUDして JSONなどAngularJS側で使うデータの出力でいいんですよね? : nobodyさん [] 2018/06/19(火) 23:28:58.36:sZEZNTYu 認証も必要 : nobodyさん [sage] 2018/06/20(水) 08:19:33.32ID:??? どうもありがとうございます。 作ったことはないのですが、確か最近の応用情報かなんかの過去問見たとき、 WebAPI作る問題出てて、そこでも確かにHTTPSでBasic認証してました。 ちゃんとWebAPIの作り方調べてやってみたいと思います。 : nobodyさん [] 2018/06/20(水) 09:14:44.17:Xst2QP85 何で例に出すのがBASIC認証なのか APIならOAuthとかじゃねえの : nobodyさん [] 2018/06/20(水) 09:26:37.65:Xst2QP85 自分一人が個人的に使うシステムでも無い限り OpenAPIやSwaggerで仕様を明確化した方がよい あるいは昔ながらのREST APIではなくGraphQLでも良いかもしれない RESTは自分でも作れるかもしれないが GraphQLは割と複雑な仕様なのでライブラリーが必須 OAuthはOAuthで難しい 変な実装をすれば車が通れる程の大穴セキュリティホールが開く ttps://www.sakimura.org/2012/02/1487/ : nobodyさん [sage] 2018/06/20(水) 09:52:37.08ID:??? ttps://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2017h29_2/2017h29a_ap_pm_qs.pdf この問4か : nobodyさん [] 2018/06/20(水) 20:32:46.35:UnZq46Ab プログラミングを誰でも習得できる方法は、「前場アキドルのプログラミングマスター方法」というブログで見られるらしいよ。ネットで調べると見られるらしいです。 5648W : nobodyさん [] 2018/06/21(木) 04:46:25.17:joNehjCV 掲示板が作りたくてデータベースとのやり取りをするPHPとそれのインターフェイスとなるHTMLを作りました 投稿時の想定は「まずHTMLにアクセスしてそこで項目を入力してPHPを通してデータベースにデータを入力」です これはAjaxやPDOを使うことで作ることが出来ました しかしHTML(JavaScript)のソースコードからPHPのファイル名を見つけてPHPを直接叩くことで簡単に荒らしが出来てしまいます この問題を解決したいと思い、PHPをドキュメントルートから外したのですがそれはアクセスが出来ず失敗に終わりました 皆さんはこのような問題に対してどのような対策を施しているのでしょうか? : nobodyさん [sage] 2018/06/21(木) 05:56:58.20ID:??? 相手が荒らすのに苦労する仕組みを作るといい 1文字 同じ文字のみ 英数字のみ URLとかスパムに使われそうなものを制限する 連投制限の仕組み作る(IPベース、クッキーベース、セッションベース、それら組み合わせ) 若干面倒な登録を経て登録者のみ投稿できる会員制にする ログと投稿をつきあわせて類似度を比較する(処理は遅くなる) AIで意味のある文章か判断する(PHPerには難易度が高すぎる) : nobodyさん [sage] 2018/06/21(木) 06:50:01.75ID:??? ワンタイムトークン : nobodyさん [sage] 2018/06/21(木) 11:05:43.80ID:??? CSRF : nobodyさん [sage] 2018/06/21(木) 17:51:48.90ID:??? 直接PHP叩くのと、フォームから入力するのと、 マクロにとっては荒らしのしやすさになんの差もないと思うのだけど。 : nobodyさん [] 2018/06/21(木) 22:09:54.17:p4z3zI1o reCAPTCHA v3ではユーザーのアクションなしに相手がロボットがどうか 判別できるようになるらしい : nobodyさん [] 2018/06/22(金) 06:56:12.83:0CbeJ1vw 回答ありがとうございます ワンタイムトークンが良さそうだと思いました マクロだと確かにそうですね IPアドレスで連投を規制したりすることも検討してみます : nobodyさん [] 2018/06/22(金) 14:11:43.65:HDxTbLco PeachPieって言う.NETでPHP動かす環境あるらしいけど どうなの? そもそも使い物になる? : nobodyさん [sage] 2018/06/22(金) 21:01:21.02ID:??? 検索したらエロい店ばっかりでてきて吹いた : nobodyさん [sage] 2018/06/22(金) 21:02:21.49ID:??? 使ったこと無いけど、ASP.NET Webサーバー使ってるなら良さそう ってかそれ意外になにもメリットなさそう : nobodyさん [sage] 2018/06/22(金) 21:16:34.26ID:??? 力技すぎて面白い : nobodyさん [] 2018/06/23(土) 09:41:34.58:ArmcQI4m PeachPieはtechempowersのPlainTextのベンチマークでは99位 それでもFramework OverheadでPHPより1.87倍ぐらい速い ttps://www.techempower.com/benchmarks/#section=data-r16&hw=ph&test=plaintext : nobodyさん [sage] 2018/06/23(土) 11:55:24.07ID:??? CILにコンパイルされてから実行されるわけだからパフォーマンスは向上するわな(Phalangerと同じ) あとはエクステンションがどのくらい互換性持って提供されるかだと思う 使い物になるかで言えば公式が「まだexperimentalだよ」って言ってる以上は(productionでは)全く使えない plaintextのベンチとか意味あるの? : nobodyさん [] 2018/06/23(土) 12:38:28.80:JGE8gBSU 単なるプレーンテキストの送信でも言語やフレームワークによってかなり差が出るのは分かる PeachPie自体はまだ実験的な物ではあるが WordPressは既に動かせるらしい : nobodyさん [] 2018/06/26(火) 00:02:49.58:vSUzM4yv composerってメモリ使い過ぎじゃね? サーバーの利用可能なメモリが少ないとSymfony4のインストールすら完了しない composerのロックファイルは 十分メモリのあるローカル環境で作り メモリーの少ないサーバーではロックファイルからcomposer installするのがオヌヌメらしい とは言えもう少し少なく出来ないのか? : nobodyさん [sage] 2018/06/26(火) 00:09:23.99ID:??? プルリクあく : nobodyさん [] 2018/06/26(火) 00:10:24.54:R+4nVO22 あくってなに? : nobodyさん [sage] 2018/06/26(火) 07:56:36.12ID:??? 悪 : nobodyさん [sage] 2018/06/28(木) 16:38:17.84ID:??? 早くしろよ ↓ あくしろよ ↓ あく : nobodyさん [sage] 2018/06/28(木) 20:03:07.10ID:??? 汚ねえスレだなあ : nobodyさん [sage] 2018/06/29(金) 00:44:22.34ID:??? あたりを見て気になったんだけど API作るというだけでは認証機構入れる必要これっぽっちもないよね? BASIC含め簡単なものや固定のものは投げてる要求確認すれば丸わかり バッチ等からのアクセスが主だったり他サイトに利用させるとかが絡むなら 事前認証してtoken吐いて……って機構が必要かもしれないけどはブラウザ経由 認証つけるにしても、もしAPI以外でログイン認証してるならそっちのセッションをそのまま使える : nobodyさん [sage] 2018/06/29(金) 08:59:46.28ID:??? いろんなところから利用可能にするためにWebAPI使うんじゃないのか : nobodyさん [sage] 2018/06/29(金) 09:31:29.33ID:??? そらTwitterみたいに本家がユーザ認証前提の仕組みで他所でも認証してあーだこーだって話なら、な 例えばYahooのルビ振りWebAPIなんかは認証なんてない : nobodyさん [sage] 2018/06/29(金) 10:47:32.20ID:??? appidってのがそうなんじゃないの : nobodyさん [sage] 2018/06/29(金) 12:09:11.00ID:??? 事前登録したIDを送るのは認証とはちょっと違くね : nobodyさん [] 2018/06/30(土) 13:16:02.58:HFlHS16J composerはなぜかパッケージのダウンロードが一個ずつって特徴もある 並列化する非公式プラグインはあるが 何で公式は並列ダウンロードしないのか ttps://github.com/hirak/prestissimo : nobodyさん [sage] 2018/06/30(土) 13:23:07.35ID:??? なぜかって普通だし さして重要じゃないだろそれ : nobodyさん [] 2018/06/30(土) 14:09:23.84:HFlHS16J 並列ダウンロードが当たり前の他のパッケージマネージャに慣れていると 遅く感じる プラグイン作者によるプルリクエストがcomposerにあったが マージされるのはいつか分からない : nobodyさん [sage] 2018/06/30(土) 14:13:48.30ID:??? composer使うのやめればいいじゃん : nobodyさん [] 2018/06/30(土) 15:02:10.11:TwF5k2FW PHPもやめます : nobodyさん [sage] 2018/06/30(土) 17:48:37.84ID:??? そもそもcomposerってなんで出てきたの? 必要なのこれ composerじゃなきゃダメなことなんかあるの : nobodyさん [] 2018/06/30(土) 18:04:13.84:grfnyPlf 知らないのに使わなければ良いとか言ってんの? : nobodyさん [sage] 2018/06/30(土) 18:11:10.91ID:??? フレームワーク使いたい奴には必須かもしれないけど それ以外は別に使わなくても問題ない っていうイメージ つか何故公式が云々って公式の気持ちなんか知るか国語のテストかよ : nobodyさん [] 2018/06/30(土) 18:44:02.99:grfnyPlf composerの中の人は忙しいので 並列ダウンロードは皆があったら便利だと思う機能とは知っているが 優先度を低くしている そんな感じでプルリク作成から2年経った : nobodyさん [sage] 2018/07/01(日) 01:30:55.83ID:??? あれから2年、君は成長できただろうか : nobodyさん [sage] 2018/07/01(日) 12:23:54.18ID:??? composerは車輪の再発明が嫌いな 再利用大好人間たちがコードを持ち寄って使いあったり そこから新しいのを作るためのなれ合いツール : nobodyさん [sage] 2018/07/01(日) 12:49:01.19ID:??? pear/peclが要らなくなるわけじゃないんだよな : nobodyさん [sage] 2018/07/01(日) 13:49:42.07ID:??? peclはともかくpearはいらないだろ : nobodyさん [sage] 2018/07/02(月) 09:37:25.47ID:??? composerにあるライブラリって全部PHPでしょ? pearを進化させたようなもんだよねたぶん : nobodyさん [] 2018/07/03(火) 16:36:16.92:4gji1WrU これどう作るの? ttps://goo.gl/1PyDK6 : nobodyさん [sage] 2018/07/03(火) 19:57:52.06ID:??? 最近必死すぎだろw 飢え死ねアフィカスwww : nobodyさん [sage] 2018/07/03(火) 20:05:02.85ID:??? ComposerのロゴはGo以来のイラッと感を覚えるわけよ : nobodyさん [] 2018/07/03(火) 22:45:29.42:nJxIsGZ6 PHPの拡張ってプロジェクト毎にはインストール出来ない? 拡張を実行時に動的に読むdlって関数が昔あったらしいが 削除されてるし dlは使い物にならなかったのか 他言語ではC拡張のあるライブラリも 他のライブラリと同じ様に そのプロジェクトだけのインストールができるのが普通 : nobodyさん [sage] 2018/07/04(水) 00:27:41.45ID:??? ttp://php.net/manual/ja/function.dl.php 普通にextension_loaded()でいいんじゃないの : nobodyさん [sage] 2018/07/04(水) 00:54:24.18ID:??? 現状出来ない 実行時に拡張をロードする機能自体が存在しないのでどうにもならない やりようがあるとすれば実行時ロード機能を提供するPHP拡張を作成することくらい PECLに登録して最終的に本体にバンドルされるところまで至らないとエコシステムには取り込まれないだろうなぁ rasmusとかandiとかzeevとかの基幹メンバーがとんでもなく保守的だし正直何やっても絶望的だと思う この辺は割とマジで根本的に設計上の欠陥だと思うわ : nobodyさん [sage] 2018/07/04(水) 02:12:15.23ID:??? .phpから拡張を読み込むことができるようになると セキュリティホールが量産されそうな気がするが その辺、大丈夫なのか? : nobodyさん [sage] 2018/07/04(水) 03:09:24.37ID:??? 何となくそういう懸念が浮かぶのは分かる ただ他言語, 具体的にはPythonとかRuby, Nodeなんかでは頻繁に使われてる system系の関数使って実行ファイルを叩くのとどう違ってくるのかと考えると別に実行時に拡張ロード出来ても良かろう(dlが削除されたのは安定性が理由だと書いてあるし) : nobodyさん [sage] 2018/07/04(水) 03:49:54.33ID:??? PHPの用途で動的に読み込めると何が嬉しいのか、 まともな理由がないから削られちゃったんだろ : nobodyさん [sage] 2018/07/04(水) 06:31:20.45ID:??? プロジェクト毎にPHPインストールすりゃいいんじゃね : nobodyさん [sage] 2018/07/04(水) 07:52:00.71ID:??? >system系の関数使って実行ファイルを叩くのとどう違ってくるのかと考えると systemやexecは、php.iniで包括的に設定するしか手がない disable_functions 設定で禁止できる かなり違うんじゃないかね ttp://php.net/manual/ja/info.configuration.php#ini.enable-dl >このディレクティブは、Apacheモジュール版のPHPを使用した場合にのみ 有用です。 >PHPの動的ロード拡張機能をdl()で 仮想サーバー毎またはディレクトリ毎にオンまたはオフに変更することが できます。 > >動的ロード機能をオフにするのは主としてセキュリティ上の理由によります。 >動的ロード機能により、 open_basedir の拘束を全て 無視することが可能になります。 : nobodyさん [] 2018/07/04(水) 09:59:47.40:VNkVp5lL そもそもdlって最近は削除されて使えないんじゃなかったの? : nobodyさん [sage] 2018/07/04(水) 20:40:21.34ID:??? exec使える状態って アホなアップローダとか置いてた日にはopen_basedirの拘束なんて無視して好き放題されちゃうよね : nobodyさん [sage] 2018/07/05(木) 04:15:11.30ID:??? いや, php.iniだけで動的モジュールロードの可否を与える(php.iniのみで設定可能な)ディレクティブがあれば一緒だろ 自分でdlの例出してるじゃん mod_phpで実行する場合は権限がWebサーバになるからそれが嫌だというのはよく分かるが : nobodyさん [sage] 2018/07/05(木) 04:17:30.15ID:??? 変なところにペーストしちゃったけどまぁいいや : nobodyさん [] 2018/07/05(木) 08:10:38.44:6vNW6Lds dlは安定性に問題があるから削除したって言うけど 他の言語で出来ていることが何で出来ない? PHPはリクエストの度にメモリの内容破棄するから? : nobodyさん [sage] 2018/07/05(木) 16:56:15.00ID:??? extensionの動的ロードしたいってどんなとき : nobodyさん [sage] 2018/07/05(木) 17:14:15.92ID:??? 劇的ロードなら : nobodyさん [age] 2018/07/06(金) 12:54:55.48ID:??? age : nobodyさん [hage] 2018/07/06(金) 13:03:04.29ID:??? hage : nobodyさん [] 2018/07/06(金) 14:57:23.38:P0O2iWzc PHPは巨大化し過ぎた 山ほどあるビルトイン関数を削除して プログラミング言語に最低限必要なライブラリだけをOOPで作り 使うかどうか分からない機能は動的ロードするようにすべきだ そんな事したらもうPHPじゃない? そんなの知るか : nobodyさん [] 2018/07/06(金) 15:48:38.10:g8pVEt14 そこまでするならフォークして別言語にしろ QIQとかかっこいい名前付けてもいいぞ : nobodyさん [sage] 2018/07/06(金) 15:51:08.89ID:??? のセンスを向上させるにはどうしたらいいですか : nobodyさん [sage] 2018/07/06(金) 17:09:27.76ID:??? ビルトイン関数なんて削っても PHP本体のソースコードがすっきりするだけで 別に劇的に早くなるわけじゃないしユーザ側が受けるメリットなんて大してないだろ : nobodyさん [] 2018/07/06(金) 20:02:27.67:AtnEoX2L すっきりしたら ごちゃごちゃの状態よりバグが少なくなったり 本体が小さくなるとかのメリットはある 配列とか文字列がプリミティブ型みたいな扱いなのも なんとかしる array_系の関数が重ねて適用しようとしたら使いづらいったらありゃしない : nobodyさん [sage] 2018/07/06(金) 20:52:45.52ID:??? デフォルトでなんでもアリだからこそ受けてると思うんだけどな 今の時代で多少軽くなってもたかが知れている。ってかそもそもそんなに重くないだろう そんなに重いならsmartyでも使えばphpの負荷は大きく下がる : nobodyさん [sage] 2018/07/06(金) 21:03:08.11ID:??? smartyでphpの負荷が下がるってどゆこと : nobodyさん [] 2018/07/06(金) 21:30:44.60:YHCASoUv ビルトイン関数使ってたら テストを書く時モックするのが難しい time()とかrand()とか 名前空間使ったハック(\timeのように書いてると不可)やPHP拡張を使う方法もあるが 他の言語だとそんなの必要ないじゃん キモい テストを全く書いてない奴はお帰りください : nobodyさん [sage] 2018/07/06(金) 22:22:39.57ID:??? rubyのnokogiriみたくネイティブライブラリをラップするライブラリって使えれば需要あると思うけど 特にcomposerが普及した今なら更に : nobodyさん [] 2018/07/06(金) 23:05:33.81:wqmurizE 今どきsmartyって…w : nobodyさん [sage] 2018/07/07(土) 07:12:24.91ID:??? php4時代のコードでも少しの変更でphp7で動くようにできるというのがphpのメリットで 何するにしても後方互換の問題があるわけで pythonのような英断をしなければphpが変わることはないし 成熟してしまって時期的にそのチャンスはもう逃した お前らがforkして新php作ればいいよ まあオリジナルの差分をコミットする作業が面倒で3日で匙投げるだろうが : nobodyさん [] 2018/07/07(土) 12:18:10.37:y8vJRkpl 既にHackで爆死経験済みだろ。 : nobodyさん [sage] 2018/07/07(土) 14:07:12.63ID:??? pythonはpythonで2と3が両立していた時期があってあれはハチャメチャだった : nobodyさん [sage] 2018/07/07(土) 14:21:17.62ID:??? php++の前段階として既存の糞ビルトイン関数のラッパークラスをphpで作ればいいよ : nobodyさん [sage] 2018/07/07(土) 14:39:31.14ID:??? namespace php\lang; class String extends Object { public function __construct($_str) { if (is_string($_str)) $this->str = $_str; } public function htmlEscape() { $this->str = htmlspecialchars($this->str, ENT_QUOTES | ENT_HTML5, 'UTF-8'); return $this; } } : nobodyさん [] 2018/07/07(土) 15:39:21.40:2YJkuak7 あらゆるライブラリがそのラッパークラスとやらに対応してくれないと 何度も変換する必要があって使いづらい : nobodyさん [sage] 2018/07/07(土) 16:24:29.33ID:??? 言語ごとラッパー作るなんてできるのか? : nobodyさん [sage] 2018/07/07(土) 19:39:28.88ID:??? イメージ的にはJavaScriptに対するjQuery jQueryの書き方に慣れてきたころにjQueryの構文やオブジェクトを実装したJavaScript2登場みたいな : nobodyさん [] 2018/07/07(土) 20:28:57.57:2YJkuak7 PHPの言語仕様が嫌だが PHPのライブラリや既存コードも使う必要があるってなら 他の言語で書いてPHPに変換出来るAltJSならぬAltPHPを使えば良いかも ただ、PHPの場合それが出来て ある程度人気があるのはHaxeだけだと思う JSは本当に色々あるのに ttps://stackoverflow.com/questions/6551089/is-there-anything-like-coffeescript-for-php : nobodyさん [] 2018/07/07(土) 20:35:32.20:2YJkuak7 HackはPHPと互換性があるがVMも違うやつ使う必要があるから AltPHPでは無いよね : nobodyさん [sage] 2018/07/07(土) 20:43:49.76ID:??? 糞だと思うなら使わなけりゃいいじゃん : nobodyさん [sage] 2018/07/07(土) 20:53:26.11ID:??? JSはPHP以上にカオスだと思うんだけどな : nobodyさん [sage] 2018/07/07(土) 20:55:25.59ID:??? JSはundifendeの辺りが怖すぎる : nobodyさん [sage] 2018/07/08(日) 14:20:25.97ID:??? そんなにjsがいいならjsの子になっちゃいなさい! : nobodyさん [] 2018/07/08(日) 15:23:04.10:4WOWpkJq JSはブラウザで動くのがJSしか無いから AltJSみたいのが生まれたけど サーバーサイドは別に代わりがいくらでもあるしね : nobodyさん [sage] 2018/07/08(日) 15:34:54.96ID:??? ブラウザで動くのがjsしかないのが異常というか jsだけとはいえブラウザで動かせること事態が本来異常というか : nobodyさん [sage] 2018/07/08(日) 15:47:47.44ID:??? jsで、任意のファイルを読み書きできるの? 出来てしまうとセキュリティ上やばい気がするのだが。。。 : nobodyさん [] 2018/07/08(日) 16:18:42.43:4WOWpkJq なんの話? ブラウザのJSは勝手に他サイトやファイルシステムの内容を読めるAPIは無いし 脆弱性を利用してブラウザのセキュリティを突破しようにも サンドボックスがあったりして難しい : nobodyさん [sage] 2018/07/08(日) 17:48:47.31ID:??? サーバサイドプログラムでjsを使う場合の話です。 任意のファイルの読み書きはできるのでしょうか? : nobodyさん [sage] 2018/07/08(日) 18:08:13.66ID:??? node.jsならできるよ。 require('fs'); : nobodyさん [sage] 2018/07/08(日) 21:06:37.76ID:??? jsだからどうという話ではないな。nodeがそうだというだけで。 : nobodyさん [sage] 2018/07/08(日) 22:18:37.29ID:??? nudeなら : nobodyさん [sage] 2018/07/09(月) 01:54:41.35ID:??? 他所でしてくれ : nobodyさん [sage] 2018/07/09(月) 14:38:37.47ID:??? =なら なぜPHPならセキュリティ上問題ないと思った?ていう まぁ多分本人が考えてることと他のやつが考えてることが違うのだろうけど : nobodyさん [sage] 2018/07/09(月) 14:59:42.48ID:??? まあお茶でも飲んで落ち着けよハゲ : nobodyさん [sage] 2018/07/09(月) 19:52:51.86ID:??? これが落ち着いていられるか! : nobodyさん [] 2018/07/14(土) 17:07:18.88:8nY3xhKd このスレであってるかな…? 掲示板を作れるようになりたいんだが、正直マジでCSSとHTMLと少しのPHPの知識(スクレイピングなど)ぐらいしか知識がなくてどういう仕組みなのかわからない。 PHPで掲示板って作れる? 理想としてはガールズちゃんねるそのまんまなのが作れたら最高 : nobodyさん [sage] 2018/07/14(土) 17:24:51.99ID:??? 掲示板と言っても、DBを使う/使わないで難易度が大きく変わる 作らなくてもその辺にサンプルどころかそのまま使えるものが山程落ちてるよ それを改造するところから初めてみては : nobodyさん [] 2018/07/14(土) 17:37:27.52:8nY3xhKd DBを使わないPHPの簡易掲示板はコピペしたり改造したりしてなんとか作れた。 ただ、txtファイルに書き込みデータを保存する方法だと簡易的すぎるかなと。 理想はガルちゃんみたいにユーザーが自由にトピックを立てられる形にしたいから、DBを使ってやりたい… どっかにわかりやすい雛形でもあればいいんだけど、何から手をつければいいかすらわからない… : nobodyさん [sage] 2018/07/14(土) 17:46:54.13ID:??? 俺も昔やろうとしたんだけど、掲示板はセキュリティに気をつけないとあっという間に終わる 更にセキュリティ的に問題なくても、連投や巨大投稿、大量の改行コードだけの投稿などをどう取り扱うかで永久に終わらない トピックというかスレでいいなら 「2ch風掲示板 cgi」 「2ch風掲示板 php」 この辺で検索してみてはどうかな : nobodyさん [sage] 2018/07/14(土) 17:48:37.61ID:??? 要求仕様を実現するのに最低限必要なことと、そうでないことを切り分けられる頭がないと無理 ガルch形式のbbsも2ch形式のbbsもc, perl, php, その他わりとどんな言語でも作れる それとtxt方式かDB利用かは直接関係ないし どちらにしてもどのようにデータを読み書きするかという設計を自分で出来ないと話にならない コピペと改造でなんとか、ってレベルで何が簡易的なのか判断しようとしてる時点でおかしいことに気付け : nobodyさん [sage] 2018/07/14(土) 17:50:06.34ID:??? まぁこういうアドバイスはガン無視して、結局自分で作ってから気づくんだよね 俺の時もそうだった とりあえずDBは使わない形がいいよ、セキュリティと言う名の闇が待っている : nobodyさん [sage] 2018/07/14(土) 17:54:21.71ID:??? 技術がなにで出来てるのか勘違いしてるパターン : nobodyさん [sage] 2018/07/14(土) 17:55:49.32ID:??? cgi拾ってきてcssとjs設定すれば終わりなのに、何でそんなに難しくしたがるんだろう : nobodyさん [sage] 2018/07/14(土) 18:23:17.42ID:??? テキストかデータベースかは、見た目や運用上の設計には関係ないから、とりあえずテキストでいいと思うよ。 書き込みや読み込みの処理の部分をあちこちでやらずに1箇所で行うように設計すれば、あとでデータベース式に変更するのも修正箇所が少なくて済む。 テキストファイルは拡張子をphpとかplとかにして、直接アクセスされたら実行エラーになるようにしておけばよいかと。 : nobodyさん [sage] 2018/07/14(土) 18:24:08.65ID:??? BBS { int createThread(string $title); bool deleteThread(int $threadId); Gererator readThread($threadId); bool writeThread($threadId); bool saveHTML(string $template); } : nobodyさん [] 2018/07/14(土) 18:37:57.75:8nY3xhKd っぽいねー。 実はtxt自動生成して書き込み保存する簡単な掲示板を設置して見たことがあるんだが、放置してたら謎の大量文字化け(スクリプト?)の投稿で荒らされまくってダメだった… : nobodyさん [] 2018/07/14(土) 18:39:40.35:8nY3xhKd ありがとう。 txtかDBってとこがポイントではないんだね。 txtファイルでも書き込み内容の分類やら保管やらをしっかり設計できれば運営していけるってことか…。 なんとなく通常のサービスはDBを利用してるからDBが正義だと思ってたわ。 : nobodyさん [sage] 2018/07/14(土) 18:44:13.44ID:??? まぁ最初から完璧なものなんて作れるわけないしまずはウダウダ言ってないで動くものを作れと : nobodyさん [sage] 2018/07/14(土) 19:21:07.65ID:??? 海外アクセス弾くだけでほぼ無くなる。「htaccess 海外 拒否」などで検索 もしくはNGワードの処理をかます。 これは書き込み後にテキトーに判定してdie()するだけでいい。めんどくさい事は後で考えて、生産的な事をまずやろう : nobodyさん [sage] 2018/07/14(土) 20:48:13.31ID:??? 私は書き込み文字の中に全角文字がひとつも無かったら、「全角文字を含めてね」ってメッセージを出して弾くようにしたら、海外のスパム書き込みは100%排除できました。 : nobodyさん [sage] 2018/07/14(土) 21:12:36.64ID:??? >526 頭いいな、いろんな意味で完璧な対策と思う 素直にすごい : nobodyさん [sage] 2018/07/14(土) 21:25:53.98ID:??? 中国弾けなさそう : nobodyさん [sage] 2018/07/14(土) 21:46:15.25ID:??? 確かに中国語だと弾けないですね笑 でも今まで中国語の書き込みは無いです。 てか、もし私が中国のスパム業者なら、日本や欧米の掲示板に中国語で書き込んだりせず、書くならやっぱり英語だと思います。 : nobodyさん [sage] 2018/07/14(土) 23:27:28.81ID:??? ジェレレーターw : nobodyさん [] 2018/07/15(日) 14:57:05.88:OQU8pbJ/ 考える人より手を動かした人の方が早く覚えるよ まずは本買うなりサイト見るなりして作ってみればいい : nobodyさん [sage] 2018/07/15(日) 18:25:13.91ID:??? 外部設計と内部設計の違いもわからないような奴が いくら本を読んでも手を動かしても100%無理 既存のサービスやプログラムをとっかかりにして 仕様も機能もひとつひとつなぜ存在するのかなぜこうなってるのか学ぶしかない : nobodyさん [sage] 2018/07/15(日) 18:40:30.19ID:??? 公開されてるの? : nobodyさん [sage] 2018/07/16(月) 01:05:08.50ID:??? 公開されてるのもある 公開されてないものも設計を考える力を養うにはもってこいの材料 : nobodyさん [sage] 2018/07/16(月) 21:26:48.20ID:??? !omikujiみたいな公開しないとわからん機能じゃなくて 使ってて目に見える部分であれば たいていどういう風に作るかイメージが沸く このスレの人はtwitterだろうがfacebookだろうが作ろうと思えば作れるんじゃないか? 気力がない 作っても流行らない うっかり流行ったら500との闘い 解消するためにサーバ月何十万 PHPerの限界とは経済力と時間の限界なのである : nobodyさん [] 2018/07/16(月) 21:30:35.61:Jh/2B4in AWSもLinuxもそこそこ扱えるし作ろうと思えば作れるけど、 レッドオーシャンに飛び込むような元気はない : nobodyさん [sage] 2018/07/16(月) 22:29:54.30ID:??? このぐらいだったら作れる ttps://stdput.com/dat/program/forum.zip : nobodyさん [sage] 2018/07/16(月) 22:36:10.37ID:??? 機能それぞれ単体なら比較的容易 全部まとめて、さらにセキュリティ、速度、……となると設計だけでも かなり複雑になってくるから時間がかかるようになる ただ、10年前の自分じゃ機能単体もおぼつかなかったと思う : nobodyさん [sage] 2018/07/17(火) 20:43:36.89ID:??? 今の知識もったまま20年前にタイムスリップしたいよな : nobodyさん [] 2018/07/18(水) 12:47:15.98:B1Xdglk2 【放射能の影響か?】 道路の真ん中で直立不動で失神しているトンビ、多発している認知症事故と関連!? ttp://rosie.5ch.net/test/read.cgi/liveplus/1531880720/l50 動物まで意識障害? : nobodyさん [sage] 2018/07/20(金) 17:25:59.13ID:??? JSのように $a = 10; $b = $a || 20; echo $b; //20 にならんかなあ これ糞便利なんだけど 論理演算子はorだけでもいいよねえ : nobodyさん [sage] 2018/07/20(金) 17:26:34.38ID:??? $a = 10; $b = $a || 20; echo $b; //20 ごめんこれ10だわw $a = 0って書いたつもり : nobodyさん [sage] 2018/07/20(金) 17:50:29.12ID:??? null合体演算子(??)を使え 短絡評価した結果何を返すのかなんて後から変えられるわけねぇだろ : nobodyさん [sage] 2018/07/20(金) 19:43:58.83ID:??? 型ってもんがあるからtrue/falseで返してくれないと怖い : nobodyさん [sage] 2018/07/20(金) 23:00:07.46ID:??? Python3 呼んだ? : nobodyさん [sage] 2018/07/20(金) 23:26:40.30ID:??? いっそそこまで覚悟出来るならやればいいとは思う 混乱はあったけど結果としてPythonの決断は正しかったのだろう とは言え短絡評価を結果をbooleanにするのも最終評価値にするのも良し悪しだからなぁ : nobodyさん [sage] 2018/07/20(金) 23:57:25.93ID:??? 何が入るかわからないのがな 最悪を想定するなら短絡評価の前に中身の判別を入れなきゃならない 想定した型かどうか事前に判別するなら短絡評価要らない : nobodyさん [] 2018/07/21(土) 17:38:08.88:gWhxLgcg $b = (!empty($a)) ? $a : 20; NULL合体演算子はissetだからだめだな : nobodyさん [sage] 2018/07/21(土) 19:13:06.04ID:??? JavaScriptも三項演算子使えるんだからそれでよくね 短絡評価は言語ごとに差があるからあんまり使いたくない : nobodyさん [sage] 2018/07/21(土) 19:16:09.41ID:??? 愚直でもわかりやすい判断分岐で書かれてると読む人間にはありがたい : nobodyさん [sage] 2018/07/21(土) 19:18:20.55ID:??? なんでも短絡や三項にすれば短いだろってより 素朴にIF文使って書いてある方が 読みやすい場合が多々あるな : nobodyさん [sage] 2018/07/21(土) 19:25:35.94ID:??? ネストしてないに限れば三項演算子は読みやすいな 条件部分をのようにちゃんと()で囲ってればif文の変化形にも見えるし コーディング規約で禁止してるとこは結構あるし賛否両論なのは確かだが : nobodyさん [sage] 2018/07/21(土) 19:33:59.72ID:??? phpで三項演算子のネスト書く奴は頭からカレーかけられても文句言えない ネスト階層が深けりゃコーンスープ付き : nobodyさん [sage] 2018/07/22(日) 05:26:38.13ID:??? ifだとクロージャー使って即時実行したくならない? if (!!$a) { $b = $a; } else { $b = 20; } $b = (function() use ($a) { if (!!$a) { return $a; } else { return 20; } })(); 上だとなんか感覚的にいやだ : nobodyさん [sage] 2018/07/22(日) 05:45:59.43ID:??? 何に代入しているのかを特に明示したいならそれでいんじゃね 単純な代入ならインデントで即わかるとは思うが 読みやすさわかりやすさを理由に(if等で)わかりやすい分岐を・・・って話の流れで if使いながら$aそのまま(のbool変換値)ifに流すだけなところと ifに渡すだけの箇所で!!$aってやってるところが意味不明だが : nobodyさん [sage] 2018/07/22(日) 06:26:18.55ID:??? > !!$a これ、 $a == true と等価だよな? 数文字タイプする手間を惜しんで2回反転させる計算コストを発生させてる? : 554 [sage] 2018/07/22(日) 06:58:19.63ID:??? booleanキャストのつもりで使ったが 確かにいらんな : nobodyさん [sage] 2018/07/22(日) 07:54:39.39ID:??? 素直メンはイケメン : nobodyさん [sage] 2018/07/22(日) 08:21:29.99ID:??? !!って書けることを知らなかったw !!!もできる? : nobodyさん [sage] 2018/07/22(日) 08:32:08.34ID:??? やってどうすんのよ : nobodyさん [sage] 2018/07/22(日) 09:22:46.00ID:??? エントロピーを増大させるのだ : nobodyさん [sage] 2018/07/22(日) 10:22:27.72ID:??? その発想がなかったから、そんな事できるんだって目から鱗なだけ。 : nobodyさん [sage] 2018/07/22(日) 10:39:15.79ID:??? !!!$varは!$varと等価だろ : nobodyさん [sage] 2018/07/22(日) 11:57:10.28ID:??? いやだからさ、そんな事もできるんだ! すごい面白い! じゃあ何個まで重ねられるんだろう?って話だよ。 どこかでエラーにされて怒られるとは思うけどさ。 : nobodyさん [sage] 2018/07/22(日) 13:15:13.80ID:??? eval()あんだから自分で試してみりゃいいじゃん : nobodyさん [sage] 2018/07/22(日) 13:35:16.79ID:??? 下はJavaScriptが好きそうだな 「名前空間が汚れる」とか言って でも上のシンプルな方が読みやすい >$a == true これもこの素朴な方が分かりやすい 「!!$a」とか多用すると読みにくい トリッキーな書き方より それを抑えて読みやすくする方が大事 : nobodyさん [sage] 2018/07/22(日) 15:58:11.39ID:??? unless (!!$a || !$b) : nobodyさん [sage] 2018/07/22(日) 17:01:30.11ID:??? 同意 書く方は短い方が書きやすいんどろうけど : nobodyさん [sage] 2018/07/22(日) 19:17:55.24ID:??? 短く書くことが目的化してるコードはバグ出やすい上にデバッグし難いんだよなあ : nobodyさん [sage] 2018/07/22(日) 19:19:38.87ID:??? でもさすがにisset($_POST/$_GET)は三項演算子使うでしょ? : nobodyさん [sage] 2018/07/22(日) 19:23:07.08ID:??? filter_input 使うから、使わない : nobodyさん [sage] 2018/07/22(日) 19:35:16.04ID:??? まとめて初期化、まとめて確認って手もあるしなあ スタンダードというわけじゃなし : nobodyさん [sage] 2018/07/22(日) 19:40:11.51ID:??? filter_inputってバリデーションでしょ? issetしたあとに使うものだよね? : nobodyさん [sage] 2018/07/22(日) 19:56:43.65ID:??? 転載アフィか何かなの? : nobodyさん [sage] 2018/07/22(日) 20:01:42.81ID:??? その辺の処理は各々好きにしろとしか ・NOTICEが出ない ・その後の処理でバグを生まないようにする(デフォルト値設定、検証除去etc) これが出来てれば良いわけで : nobodyさん [sage] 2018/07/22(日) 20:10:17.68ID:??? マニュアル読んでみ。幸せになれる。スーパーグローバルから開放されるぞw : nobodyさん [sage] 2018/07/22(日) 20:36:58.12ID:??? elseまでいかんでも $b = $a; if (!$b) $b = 20; : nobodyさん [sage] 2018/07/22(日) 20:41:29.86ID:??? 後々、それが出来てるかどうか、バグを生んだのがそこかどうか確認するのに 文字数少ない代わりにわかりにくい書き方とか最悪だろって話 : nobodyさん [sage] 2018/07/22(日) 20:47:50.31ID:??? $aの型が例えばintなどと保証されてるのか? 保証されてるなら!$aなんてint(0)の判別にしかならないのに直感的じゃない 保証されてないなら'abc'やarray(0)が来た時どうすんの : nobodyさん [sage] 2018/07/22(日) 20:52:50.72ID:??? 三項演算子の何がわかりにくいのか理解に苦しむな ワンライナーで書けるってだけでif-elseと変わらんのに (condition) ? when-true : when-false ; : nobodyさん [sage] 2018/07/22(日) 21:18:33.98ID:??? プログラム書く上で1行で書けるかどうかってなんか価値があるの? コードゴルファーphp? : nobodyさん [sage] 2018/07/22(日) 21:22:28.39ID:??? if( ~~~~ ) ~~~~; else ~~~~; 三項演算子の特権じゃないじゃん : nobodyさん [sage] 2018/07/22(日) 21:25:51.63ID:??? 1行だ短いだなんだじゃなくて、何がわかりにくいのか理解不能 : nobodyさん [sage] 2018/07/22(日) 21:34:23.08ID:??? ワンライナーって見ただけで私アホですと脳内変換されるわ : nobodyさん [sage] 2018/07/22(日) 21:36:59.50ID:??? ぺちぱーってバカにされんぞ : nobodyさん [sage] 2018/07/22(日) 21:39:59.36ID:??? ワンライナー -rオプション使いまくってる人?えっ違うのですか? ぺちぱー 吠えてるだけ : nobodyさん [sage] 2018/07/22(日) 21:42:00.36ID:??? 関数型言語で発狂してこいよ : nobodyさん [sage] 2018/07/22(日) 21:42:30.07ID:??? 価値はある 行数ベースで費用計算してるとき安くなる : nobodyさん [sage] 2018/07/22(日) 21:43:56.87ID:??? 三項演算子は短く書くためのものじゃないが。 その程度の理解なのなら自分で言ってるように使わないのが無難だな。 無駄にマウント取ってるのは笑えるがw ifelseは組み込み制御構文で三項演算子のように式が要求されるところには置けない(評価されて値になれない) : nobodyさん [sage] 2018/07/22(日) 22:05:07.77ID:??? 同じことが実現できる場合の書き方の比較であって 誰もそんな当たり前の話しとらんのだが : nobodyさん [sage] 2018/07/22(日) 22:06:35.91ID:??? 嘘乙w : nobodyさん [sage] 2018/07/22(日) 22:09:52.68ID:??? ドヤ顔マウンターぺちぱー(笑) : nobodyさん [sage] 2018/07/22(日) 22:25:04.60ID:??? で、1行でかけることになにか価値あるの? : nobodyさん [sage] 2018/07/22(日) 22:29:44.80ID:??? ないよ。正確にいうと関係ない。 一行で書くためにあるものじゃないからね。三項演算子は。 : nobodyさん [sage] 2018/07/22(日) 22:34:07.28ID:??? なんで話の流れと関係ないのに、三項演算子だけの特権でもないのに、ワンライナーで書けるってことをわざわざ書いたの? : 580 [sage] 2018/07/22(日) 22:39:48.38ID:??? ん?俺がワンライナーとか言ったのがまずかったのか? 普通三項演算子はワンライナーで書くもんだからそう言っただけなのだが 別にそこはメインじゃないし主題ではない ?:という2つの演算子しか使っておらず、間違い探しをするようなものでもなく 何がわかりづらいのか理解できないって話をしただけ ちなみに会話してんの俺じゃないぞ・・・ : nobodyさん [sage] 2018/07/22(日) 22:40:24.80ID:??? 少ない行がいいなら最期に¥rと¥nを置き換えて1行にすればいいやんm : nobodyさん [sage] 2018/07/22(日) 22:44:10.15ID:??? >普通三項演算子はワンライナーで書くもんだから 俺ルール広めようとしないでくれない? : 580 [sage] 2018/07/22(日) 22:49:21.00ID:??? 主観ではあるけど googleで画像検索したりしても、実際ワンライナーが多数派じゃない? そもそもネストするようなケースじゃほとんど使われないし これも主観だけど感覚的に正しいと思う : nobodyさん [sage] 2018/07/22(日) 22:53:20.12ID:??? 改行とインデントで整えないなら1層ですら可読性低いんだけど しかし、なんで一行・1行などと書かないでワンライナーって書くのかね 文字数多いじゃん検索用ってか : nobodyさん [sage] 2018/07/22(日) 23:10:04.34ID:??? if (age < 18) { if (gender == 'male') { title = 'Master'; } else { title = 'Miss'; } } else { if (gender == 'male') { title = 'Mr'; } else { title = 'Ms'; } if (age < 18) { title = (gender == 'male') ? 'Master' : 'Miss'; } else { title = (gender == 'male') ? 'Mr' : 'Ms'; } title = (age < 18) ? (gender == 'male') ? 'Master' : 'Miss' : (gender == 'male') ? 'Mr' : 'Ms' : 580 [sage] 2018/07/22(日) 23:14:53.52ID:??? 可読性の定義は人によってさまざまだけど 長ったらしいのはかえって可読性が下がると俺は思う では真ん中が一番読みやすい : nobodyさん [sage] 2018/07/22(日) 23:16:56.10ID:??? ビットにしてswitchしよう : 580 [sage] 2018/07/22(日) 23:19:58.63ID:??? 一番上がおかしかった if (age < 18) { if (gender == 'male') { title = 'Master'; } else { title = 'Miss'; } } else { if (gender == 'male') { title = 'Mr'; } else { title = 'Ms'; } } やっぱこれは俺にはあってないな : nobodyさん [sage] 2018/07/22(日) 23:20:56.62ID:??? 一番下もおかしいんだが php書けないのか : 580 [sage] 2018/07/22(日) 23:25:42.57ID:??? これPHPじゃないし 三項演算子の可読性について、stackoverflowで引き合いに出されてたコード PHPは評価の仕方が他の言語と違うので そもそも一番下のようなコードは書いたことがない : nobodyさん [sage] 2018/07/22(日) 23:33:07.26ID:??? 同意 ネストしないなら3項演算子がシンプルでよいがネストさせるヤツは死ねと思ってしまう : nobodyさん [sage] 2018/07/22(日) 23:37:49.88ID:??? 俺Pythonistaだけど、{}が読みづらい原因だから、こうするといいよ。 if ($age < 18) if ($gender == 'male') $title = 'Master'; else $title = 'Miss'; else if ($gender == 'male') $title = 'Mr'; else $title = 'Ms'; : nobodyさん [sage] 2018/07/22(日) 23:43:15.32ID:??? PSR-2>呼んだ? : nobodyさん [sage] 2018/07/22(日) 23:59:30.06ID:??? $titles = [ 'male' => [ 'u18' => 'Master', 'other' => 'Mr' ], 'female' => [ 'u18' => 'Miss', 'other' => 'Ms' ], ]; $age_category = ( $age < 18 ) ? 'u18' : 'other' ; // もしくは if( $age < 18 ) $age_category = 'u18'; else $age_category = 'other'; $title = $titles[ $gender ][ $age_category ]; 一定以上複雑なときはこうしておくかな 判断が増えたとき処理構造を大変更したくないから というか、性別やu18かどうかをフラグで持っておくのが普通だと思うが 三項演算子だとすごく短い2つの文字列どちらか選択とかならまだいいけど 関数や式が絡むと : の区切りがわかりづらくなるんだよな : nobodyさん [sage] 2018/07/23(月) 00:00:45.23ID:??? 実務的にはそれぞれ属性を自分のobjectに聞いて、って感じのが多いかな : nobodyさん [sage] 2018/07/23(月) 00:14:43.72ID:??? stackoverflow探してみたけどそれっぽいのが見つからないわ : nobodyさん [sage] 2018/07/23(月) 00:48:54.19ID:??? ttps://www.quora.com/Does-using-the-ternary-conditional-operator-negatively-impact-code-readability stackoverflowではないな : nobodyさん [sage] 2018/07/23(月) 01:16:15.86ID:??? echo 'こんにちは、' . ($name && strlen($name) > 0) ? trim($name) : "anonymous" . "さん"; $name = ($name && strlen($name) > 0) ? trim($name) : "anonymous"; echo "こんにちは、{$name}さん"; var = a ? b : c;を徹底して、 それ以外を組み込んだ、上のような使い方をしなければ問題ないと思う。 Viewには処理済み変数のみを埋め込むのを徹底すればいい。 : nobodyさん [sage] 2018/07/23(月) 01:22:26.76ID:??? 表示名の場合はだいたい $nameを先に'anonymous'で初期化しておいて セッションがあってDBから取ってくる等の時に$nameを上書きする ってやるよね : nobodyさん [sage] 2018/07/23(月) 01:27:12.91ID:??? そだねー : nobodyさん [sage] 2018/07/23(月) 01:27:21.03ID:??? 条件2つ処理する2x2の構図でも 条件1の結果によって条件2の式自体が変わる場合は Balancedケースでも可読性落ちるよね : nobodyさん [sage] 2018/07/23(月) 01:44:19.98ID:??? 三項演算子を使うときに可読性が落ちない条件を突き詰めていくと 一重であることと 代入される部分が簡潔で統一されてることのほかに 条件部分が簡潔で統一されてることも必要だと思うんだ 18<=ageのときは性別にunknownやnewhalfが追加されたら、途端に難解になるし age<18ではgender==='male'だけど18<=ageではchecktitle(age,gender)の戻り値だったりすると、わりとめちゃくちゃ でもそうするとvar=(a)?a:20;みたいな条件になりがちになって 短絡評価のわかりにくさの話に戻るんだよね $var = (expr) ? value1 : value2 ; みたいな書き方だったら多少複雑でもいい : nobodyさん [sage] 2018/07/23(月) 01:46:11.40ID:??? 簡潔じゃないと1重なのか2重3重になってるのかパッと見てわからないからな その辺ifでは迷ったことがあまりない : nobodyさん [sage] 2018/07/23(月) 06:55:36.75ID:??? > 18<=ageのときは性別にunknownやnewhalfが追加されたら そこまでくるとが良さそう 1(under18) 2(over18) 4(male) 8(female) 16(unknown) 32(newhalf) ちなみにnewhalfじゃなくて shemaleとかladyboyが正しいおっぱいおちんちんMAN : nobodyさん [sage] 2018/07/23(月) 07:10:51.79ID:??? なんだそれは ageもgenderも1つに閉じ込めてbit演算するならunder18/over18は下位1bit、genderは以降上位bit、ってとこだろう maleやfemaleを両方選択可能の並存状態にしてどうするんだよ 2値が1種、4値が1種なら3bitで済むだろう : nobodyさん [sage] 2018/07/23(月) 07:29:32.52ID:??? そもそも話題がの趣旨とは離れることだが、1点付け加えると 条件がどう動くかわからず拡張性を考えるのであれば 愚直にifやswitchで構造化するか のように1つ1つ条件を絞れば引き当てられるtableを作るのが筋だろう ageの判定処理は完全固定と断定できないだろうし age自体を現在日付とユーザ誕生日設定によって動的に取得させることになる可能性がある フラグ化してのbit演算では柔軟性・拡張性に乏しい、全然良さそうじゃない : nobodyさん [sage] 2018/07/23(月) 09:03:36.27ID:??? えせグラマ : nobodyさん [sage] 2018/07/23(月) 10:47:42.67ID:??? $age+$genderでやれば拡張も容易 : nobodyさん [sage] 2018/07/23(月) 11:17:26.62ID:??? elseifを使えばネストなく簡略化できる sql のselect case見たいな表記できる if ($age < 18 and $gender == 'male') { $title = 'Master'; } elseif ($age < 18){ $title = 'Miss'; } elseif ($gender == 'male') { $title = 'Mr'; } else { $title = 'Ms' } : nobodyさん [sage] 2018/07/23(月) 11:34:04.40ID:??? $title = [ 5=>'Mr', 6=>'Master', 9=>'Ms', 10=>'Miss', 17=>'Mr/Ms', 18=>'Master/Miss', 33=>'Mx', 34=>'Mx' ]; switchは伸びがちになるしテーブル作るより遅くなるけど 可読性の面では case GENDER_TS+AGE_UNDER18: case GENDER_TS+AGE_OVER18: $title = 'Mx'; みたいに出来るから考えようによってはいいかもね : nobodyさん [sage] 2018/07/23(月) 11:39:51.37ID:??? あ 配列も出来るらしい $title = [GENDER_TS+AGE_UNDER18 => 'Mx']; みたいに 知らなかった : nobodyさん [sage] 2018/07/23(月) 11:43:37.99ID:??? と比較して1次元になるだけでメリットはないな : nobodyさん [sage] 2018/07/23(月) 11:48:06.16ID:??? 条件使わなくて済むよ 下準備も大変になるけど : nobodyさん [sage] 2018/07/23(月) 12:06:46.43ID:??? ぱっと見何やってるのかよくわからない 三項演算子もそうだけど結局読む人のレベル次第だな : nobodyさん [sage] 2018/07/23(月) 14:58:02.10ID:??? 三項演算子だと処理が煩雑になるほど記述が鬱陶しくなるか難しいかのトレードオフじゃん : nobodyさん [] 2018/07/23(月) 15:11:43.17:ci3EIyjd Pythonにすれば良い $bar = $fooVal == 10 ? $trueVal : $falseVal の代わりに $bar = $trueVal if $fooVal == 10 else $falseVal みたいに書けてちょー分かりやすい : nobodyさん [sage] 2018/07/23(月) 15:14:29.70ID:??? ちょー(笑) : nobodyさん [sage] 2018/07/23(月) 15:19:01.63ID:??? phpどころかビット演算というプログラムの基本すら知らない奴が居付いている : nobodyさん [] 2018/07/23(月) 15:21:44.19:KYWJiLD7 関数型言語では同じ変数に何度も代入するって事は基本やらない 明示的に値を変更可能な変数にすれば再代入可能だが 乱用すると関数型使う意味が無くなる なぜ再代入を避けるかって言ったら 理由は色々あるが 一番はバグの原因になるから ScalaにもPythonのような式扱いのif文があったり switchが無く代わりにmatchを使うのもそれが理由 : nobodyさん [sage] 2018/07/23(月) 17:34:07.95ID:??? ビットフラグ立ててるだけでビット演算をしてるわけじゃないからな : nobodyさん [sage] 2018/07/23(月) 18:00:32.66ID:??? 初見のわかりやすさってのはシンボルか単語かの違いってのが大きいのだろうけど みんな大嫌い正規表現だって慣れれば大したことはない 三項演算子はネスト出来ることが問題なのであってネストしなければ問題はないのである : nobodyさん [sage] 2018/07/23(月) 18:05:34.79ID:??? 正規表現わけわかんないよ 慣れるしかないんだろうね : nobodyさん [sage] 2018/07/23(月) 18:17:28.84ID:??? どこまでが条件部かどこが区切りか 誰が見ても即座にわかる単純明快なケース限定ならいいかもね それかキッチリ改行入れること : nobodyさん [sage] 2018/07/23(月) 19:16:40.02ID:??? 改行が減る=行数ベースの料金が下がる 文字数が減る=文字数ベースの料金が下がる : nobodyさん [sage] 2018/07/23(月) 19:38:29.41ID:??? プログラムがより単純化するのは流れであって コード単価あげるか 成果物に対して報酬をもらえばおk : nobodyさん [sage] 2018/07/23(月) 20:20:18.09ID:??? 正規表現はperl時代に超覚えてマスターした気になっていたが、 PHPやJavaScriptだと微妙に違ったり後方参照も違ったり、 なんか1日中悩んでたりする。 : nobodyさん [sage] 2018/07/23(月) 21:10:25.52ID:??? 言語で微妙に違うんですね 苦手です : nobodyさん [sage] 2018/07/23(月) 21:41:55.31ID:??? 慣れの問題だと思います。 PCREなのに使いこなせない自分が情けない… preg_matchすら悩むw : nobodyさん [sage] 2018/07/25(水) 20:02:42.21ID:??? parse_ini_fileの結果を取得するときに、 セクション名そのものを取得したい場合はどう書いたら良いでしょう? : nobodyさん [sage] 2018/07/25(水) 20:27:43.62ID:??? 2番目の引数にtrue設定すればいいんじゃね : nobodyさん [sage] 2018/07/25(水) 21:42:20.18ID:??? ありがとうございます。 それは知っていたんですが、そういう次元じゃなかったです。 変数名をtypoしていただけでしたw お騒がせしました… : nobodyさん [sage] 2018/08/01(水) 15:19:07.84ID:??? typo typer : nobodyさん [sage] 2018/08/01(水) 16:33:29.44ID:??? ペチペスト : nobodyさん [sage] 2018/08/02(木) 09:21:17.41ID:??? ペチパン : nobodyさん [sage] 2018/08/03(金) 08:21:39.65ID:??? Windows版のPHP7(XAMPP)で、posix関数を使うにはどうしたら良いですか? 今は特に何もせずにデフォルトインストール状態で、 関数がundefinedエラーになってしまいます。 : nobodyさん [sage] 2018/08/03(金) 08:30:42.36ID:??? ttp://php.net/manual/ja/intro.posix.php >注意: この拡張モジュールは Windows 環境では利用できません。 どうしたら良いかというと、VirtualBoxでWindowsの上にLinuxを乗っける、などしか手はないかと : nobodyさん [sage] 2018/08/03(金) 09:00:23.87ID:??? 了解です。ありがとうございました! OS判定して、Windows版の時はその処理はスルーして目を瞑ることにします。 PHPはやっぱりLinuxの方がいいですね。 : nobodyさん [sage] 2018/08/04(土) 14:46:44.62ID:??? ttp://php.net/manual/ja/refs.utilspec.windows.php この辺使ったりshell_exec系使ってcmd叩けば似たようなことはできるんでないの : nobodyさん [sage] 2018/08/05(日) 09:24:57.34ID:??? ActiveRecodeのORMはたくさんありますけど パフォーマンスが特に優れてるおすすめのものありますか? 処理性能重視したらPDOでSQLゴリゴリ書いたほうがいいのでしょうけど いまいち自分のSQLに自信がもてないのでSQL書くのは減らしていこうと思っています : nobodyさん [sage] 2018/08/05(日) 10:18:40.81ID:??? 早過ぎる最適化 : nobodyさん [sage] 2018/08/05(日) 13:09:36.79ID:??? どれでも大差ないんじゃね? 一番メジャーなのを使っておくのが後々のため… : nobodyさん [sage] 2018/08/05(日) 15:07:22.88ID:??? DB設計を確認したほうがパフォーマンス改善効果見込めるのでは : nobodyさん [sage] 2018/08/05(日) 15:07:42.32ID:??? 俺がそうなんだけど、抽象化がたりないとSQLベタ書きDAOパターンになるよね。 : nobodyさん [sage] 2018/08/05(日) 22:12:43.12ID:??? 元DB屋的にはORMで結合グチュグチュやるより 出来るところはビュー作っといた方がいい希ガス : nobodyさん [sage] 2018/08/05(日) 22:36:24.70ID:??? DB担当に流せる仕事は最大限DB担当に流してしまえという風潮 合理的だと思う : nobodyさん [sage] 2018/08/06(月) 19:58:51.12ID:??? composerってなんでjsonわざわざ書くの?それが主流みたいだけど installコマンドは一応用意されてるんだよね? なんか理由あるんですか? : 662 [sage] 2018/08/06(月) 20:00:59.88ID:??? installじゃなくてrequireか composer require 'namespace/some_package.3.2.1' : nobodyさん [sage] 2018/08/06(月) 20:38:35.03ID:??? 流行り かっこいい気がする OSSのフロントエンドはこんなノリ : nobodyさん [] 2018/08/07(火) 09:57:45.32:spyDBr61 どっちもできることにこしたことはないと思うが : nobodyさん [sage] 2018/08/07(火) 10:39:10.39ID:??? 質問失礼します。 2つサーバーを試行錯誤しながら立てました。 サーバー@には Environment で USER と HOME の設定がありません。 サーバーAには phpinfo で Environment の USER と HOME が設定されているようでした。 -------- USER hoge HOME /home/hoge -------- Environment の設定している場所を特定したいのですが、どこを見たら良いでしょうか? /etc/httpd/conf/httpd.conf /etc/sysconfig/php-fpm /etc/sysconfig/httpd 上記のファイルは調査しましたが hoge が見当たりませんでした。 よろしくお願いします。 : nobodyさん [sage] 2018/08/07(火) 10:44:03.07ID:??? そのapacheを起動した人が手順を知らないか間違えてるんだと思うぞ。 環境変数が付いてる方の起動方法を間違えてる。 個人のプロセスじゃないのに、個人の環境変数を引き継いでどうすんだよw serviceコマンドとか使わずに、いきなりhttpdを起動したんじゃないかと。 : nobodyさん [sage] 2018/08/07(火) 11:11:49.87ID:??? > Environment の設定している場所を特定したいのですが、どこを見たら良いでしょうか? hogeユーザのHOMEディレクトリ指定はApache httpd側ではなくOS側 /etc/passw d たぶんLinuxだと思うけど、ならここに書かれてる ただし、わかってるなら直接編集してもいいけど通常はコマンド経由で変えるもんだと思う : nobodyさん [sage] 2018/08/07(火) 11:17:25.39ID:??? >環境変数が付いてる方の起動方法を間違えてる。 >個人のプロセスじゃないのに、個人の環境変数を引き継いでどうすんだよw 別に$HOMEが設定されてること自体はあんまり問題じゃないかも 個人の環境変数を引き継ぐ、というのも……じゃあ誰権限で実行すんの?ってことだし "service httpd"等で起動していても、誰かの権限で動くのだから ※Windowsだとサービス化してればlocalService権限だっけ んなことよりデーモン起動ユーザのシェルを/sbin/nologinにしとこう : nobodyさん [sage] 2018/08/07(火) 11:26:09.24ID:??? どんなユーザ権限で実行しているか等は基礎の基礎 起動ユーザ権限のことを知りたければhttpd.confのUserとGroupの説明をよく嫁そして100%理解しろ : nobodyさん [sage] 2018/08/07(火) 11:38:33.77ID:??? かの有名なqmailの作者であるdjb様は、 env - /path/to/bin のような起動方法を推奨してたぞ。 って今時そんな人知らんかw : nobodyさん [sage] 2018/08/07(火) 11:43:59.63ID:??? Linux serviceコマンド 環境変数 これでググっておけよ。 環境変数を意識してないと超レアだが意図しない結果に繋がる可能性はある。 : nobodyさん [sage] 2018/08/07(火) 11:48:30.16ID:??? 単純にchkconfig/serviceで動かすようにしたところ意図せずroot権限で動かしてしまってて書いた.phpの穴突っつかれて以下略 こわいこわい : nobodyさん [sage] 2018/08/07(火) 11:55:14.18ID:??? httpdをrootで動かすにはコンパイルオプションが必要… : nobodyさん [sage] 2018/08/07(火) 12:00:18.77ID:??? phpのコンパイル直後のmake testに疑問を感じて早数年 でも毎回ちゃんとやってちゃんと結果確認してる : nobodyさん [sage] 2018/08/07(火) 12:03:09.00ID:??? ワロタ : nobodyさん [] 2018/08/07(火) 12:04:52.52:baYuORhx >んなことよりデーモン起動ユーザのシェルを/sbin/nologinにしとこう なんで? 起動ユーザはrootで、nologinにするのはWorkerプロセスのユーザでしょ。 ApacheにしろNginxにしろ、そういう風に作られてるわけで。 単一で動くタイプとごっちゃにしたらいかんよ。 : nobodyさん [sage] 2018/08/07(火) 12:13:53.51ID:??? 全面的にすまんかった > nologinにするのはWorkerプロセスのユーザ こっちを意図して「デーモン起動ユーザ」と書いてた : nobodyさん [sage] 2018/08/07(火) 12:39:41.49ID:??? chsh -s /sbin/nologin root : nobodyさん [sage] 2018/08/07(火) 12:44:15.65ID:??? root router : nobodyさん [sage] 2018/08/07(火) 14:28:42.07ID:??? 突然思い出したが、 むかーしのFreeBSDってnologinの中身がexitって書かれてるシェルスクリプトだったなw : nobodyさん [sage] 2018/08/07(火) 14:33:20.67ID:??? それで機能しちゃうもんなのか : nobodyさん [] 2018/08/07(火) 17:00:47.53:7Qa/G72W /bin/falseとかでもええんやで。 : nobodyさん [sage] 2018/08/07(火) 17:39:43.15ID:??? 特に理由もなく/dev/nullが好きだった時期があった : nobodyさん [sage] 2018/08/07(火) 19:04:34.22ID:??? UNIXアカウント=メアドという古き良き安全なインターネットの時代は、 /usr/bin/passwdをログインシェルに設定して、 パスワード変更はtelnetで繋ぐとかもあったな。 : nobodyさん [sage] 2018/08/07(火) 22:31:33.33ID:??? php-fpmならpool.dは見たのかな php-cgiでsuexecやmod_suphpならユーザー権限になって当然だし あなたの環境では非特権ユーザーがポート80をバインドできるようにlibcapを使っているんですね それはあまり普通じゃないので、人と話すときの前提にしない方がいいですよ バーンスタイン先生はEd25519でSSHやTLS界隈じゃバリ現役 : nobodyさん [sage] 2018/08/08(水) 01:27:35.83ID:??? phpで、 $var = 'text'; // ←これ、この代入を検知して代入直後に何らかの処理を自動発動させる、ってこと、できる? ループ中で逐一$varをチェックする、というようなのではなく : nobodyさん [sage] 2018/08/08(水) 01:38:57.92ID:??? その代入文の次の行に処理書けばいいだけでは? : nobodyさん [sage] 2018/08/08(水) 03:47:12.65ID:??? オブジェクトにしてセッター通す : nobodyさん [sage] 2018/08/08(水) 07:06:46.06ID:??? 無理してるなあ : nobodyさん [] 2018/08/08(水) 10:39:23.28:8EBBnoJ7 qmailとかなんとかdnsとかdaemontoolsとか見事に全部放り投げたなw あんだけ他攻撃してたくせに。 : nobodyさん [sage] 2018/08/08(水) 15:42:04.42ID:??? PHPマニュアルってすげー優秀だなー セキュリティーで嫌煙されてるがCHMが用意されてるのがでかい これでネットもつながらない山の中でもPHPならスムーズに開発ができるわ : nobodyさん [sage] 2018/08/08(水) 15:53:58.68ID:??? CHMってなんだと思いかけたけど あれかhtmlヘルプファイルの.chmか 用意されてるの知らんかったサンキュー兄貴 : nobodyさん [sage] 2018/08/08(水) 16:53:50.96ID:??? おうよブラザー ダウンロードしたCHMはセキュリティ厳しくなっててそのままじゃ見れないから プロパティ開いてブロック解除忘れずにね : nobodyさん [sage] 2018/08/08(水) 17:11:31.35ID:??? しかし、あの考え方はその後に大きな影響を与えたと思う。 Postfixなんてのが良い例かと… 攻撃という意味では、日本のqmaiサイトを運営してた某教授の方が酷かったw : nobodyさん [sage] 2018/08/08(水) 19:06:25.42ID:??? public domainにしてくれたのはありがたかった qmailはまだまだ現役で運用してるとこ結構ある djbdnsはパッチなしだと来年死ぬけどね 大岡山かw : nobodyさん [sage] 2018/08/09(木) 02:14:42.91ID:??? djbdns使ってないからdjbdnsが来年ってなんだろうと思って 2019年 djbdns ぐぐった 2番目に出てきたURLのタイトルが「2019年入籍日おすすめランキング」だった 終わってんな : nobodyさん [sage] 2018/08/09(木) 02:42:28.01ID:??? わたしもqmailまだ使ってる : nobodyさん [sage] 2018/08/09(木) 08:04:46.57ID:??? daemontoolsってCD/DVD/BDとかの仮想ソフトじゃなかったっけ って思ったら全く関係なかったでござる : nobodyさん [sage] 2018/08/10(金) 17:13:37.72ID:??? ドラえもん道具? : nobodyさん [sage] 2018/08/10(金) 20:47:36.56ID:??? だえもんとぅーる : nobodyさん [sage] 2018/08/11(土) 19:13:48.05ID:??? djbphp : nobodyさん [sage] 2018/08/11(土) 19:58:51.69ID:??? M野先生?准教授止まりじゃなかった? : nobodyさん [sage] 2018/08/11(土) 22:30:59.56ID:??? net-qmail : nobodyさん [sage] 2018/08/12(日) 04:37:30.63ID:??? あの人ちょっとゴリホーモ入っとるよな : nobodyさん [sage] 2018/08/12(日) 12:00:04.80ID:??? PHPのネタないの? : nobodyさん [sage] 2018/08/12(日) 16:05:25.58ID:??? ネタは無いがphpとシェルや他言語とのバッチの書きやすさの違いを聞いてみたい : nobodyさん [sage] 2018/08/12(日) 16:48:11.26ID:??? 慣れとしか言えないと思う バッチファイルはphpで書いて、シェルからアクセスするというやり方にしてるわ : nobodyさん [sage] 2018/08/12(日) 17:55:27.72ID:??? #!/sbin/php : nobodyさん [sage] 2018/08/12(日) 20:32:52.06ID:??? 正直マオリ語か何かにしか思えないperlで書かれたバッチも、慣れれば都なのだろうか : nobodyさん [sage] 2018/08/12(日) 20:36:16.09ID:??? そうではないから廃れたんやぞ : nobodyさん [sage] 2018/08/12(日) 21:12:13.44ID:??? prelは正直、割とマジでキツイ 文法が違いすぎるから、しばらく離れてるとどう読んで良いのかがわからない : nobodyさん [sage] 2018/08/12(日) 21:27:47.32ID:??? perlはプリミティブなんだよな。 やりたい事を細かく制御して書かないといけない。 でも文字列処理だけは感心する。 : nobodyさん [sage] 2018/08/12(日) 21:51:00.56ID:??? phpの話じゃなくてperlの話になってるじゃないですか! : nobodyさん [sage] 2018/08/12(日) 21:56:40.87ID:??? 個人的にはPHPの方が気楽に書けて好きなんだけど, 現実的にはPythonで書くのがいいんだろうなぁ PHPとPythonの共通点はbattery includedなあたりか : nobodyさん [sage] 2018/08/12(日) 22:33:57.36ID:??? phpとperl、cgiは一昔前は選択性みたいな感じだったのにね いつの間にやらphp一辺倒になってた 一度pythonでサイト作ってみたけど本気でめんどくさかった phpがもてはやされる理由がよくわかった : nobodyさん [sage] 2018/08/12(日) 22:40:19.13ID:??? ちょっと離れるけどバッチもWebもnodeであれこれやってみたことがあった くそめんどかった : nobodyさん [sage] 2018/08/13(月) 00:07:08.75ID:??? 鯖管あたりは配列とループ使うのにシェルスクリプト代わりにperlって人多い : nobodyさん [sage] 2018/08/13(月) 07:03:51.93ID:??? 言語的な扱いやすさを取るか環境的な扱いやすさを取るかの天秤 そういう意味ではperlはありでもpyは意味がわからないo : nobodyさん [sage] 2018/08/13(月) 13:44:45.42ID:??? なぜPythonはダメ? いずれ何でもかんでもPythonになる可能性すら秘めているのに… まあ、互換性は不安あるけど。 Perlは下位互換が優秀だったからなあ… : nobodyさん [] 2018/08/13(月) 14:25:38.56:sZ92TvgJ 配列とループw PerlもPHPもPython他の足元にも及ばんだろ。 ちょっとしたデータ処理しようと思ったときに、絶対に選ばない2大言語。 : nobodyさん [] 2018/08/13(月) 15:45:58.02:zFMgiLTA 適材適所だし、どっちが上とかないしょ PHPが未だにこれだけ使われてるしね : nobodyさん [sage] 2018/08/13(月) 16:08:50.29ID:??? >ちょっとしたデータ処理 環境構築を考えれば、こんなもん普段使ってる言語一択だろ バカか : nobodyさん [sage] 2018/08/13(月) 16:41:01.31ID:??? 自分のとこだけで動かすなら普段使いの言語だが, 他環境で動かす可能性があるならLSBに入ってるPerlかPythonだなー : nobodyさん [sage] 2018/08/14(火) 01:01:33.04ID:??? わかってないねぇ 標準インストールで入ってる可能性がダントツで高いのがperlなんだよ : nobodyさん [sage] 2018/08/14(火) 05:00:24.02ID:??? 連想配列をjson_encodeでjsonにした際、「/」が、エスケープ処理されておらず困っているのですが 対処法はありますか? オプションにJSON_UNESCAPED_SLASHESを指定しなければ、エスケープされるような記載を見掛けるのですが・・・ PHPバージョンは7.1です : nobodyさん [sage] 2018/08/14(火) 06:07:12.85ID:??? 手元の7.2.1でjson_encode('test/test')とすると、test\/testが返ってくる json_encodeの第二引数を明示的に 0 にしてみるとか 事前に(必要に応じて再帰的に)自分で/を\/にするとか : nobodyさん [] 2018/08/15(水) 08:05:27.87:qP4cYvWG デフォルトがエスケープありになってるのか。 : nobodyさん [sage] 2018/08/17(金) 14:43:40.86ID:??? ログインシェルをPHPにしたらオワタ : nobodyさん [sage] 2018/08/17(金) 14:54:08.54ID:??? お前の頭がインタラクティブ : nobodyさん [sage] 2018/08/17(金) 22:51:59.09ID:??? マルチメディアに対応したかったんだよ… : nobodyさん [sage] 2018/08/18(土) 01:34:32.30ID:??? すみません。勘違いしていました。 「/」ではなく、U+2044というFRACTION SLASHを記載して、 それに対してエスケープされないと嘆いてました。 : nobodyさん [sage] 2018/08/18(土) 19:23:26.94ID:??? 言われてるほどシェル言語としてだめなわけじゃない あきらかにshやbashよりは使いやすいだろう : nobodyさん [sage] 2018/08/19(日) 12:23:47.75ID:??? win10のie11で外部pcの共有フォルダに置いてるpdfをphp関数で表示したいのですがどうすればいいでしょうか? fopenのハンドルも取れず、readfileでも無反応です ブラウザからファイルパス入力だと表示できます : nobodyさん [sage] 2018/08/19(日) 12:25:45.74ID:??? ブラウザ関係なくね? 他のブラウザなら思った通りになるの? : nobodyさん [] 2018/08/19(日) 12:32:11.81:Il2RNG8O 何やりたいかさっぱり分からん 質問するなら他人にちゃんと伝わるように書け : nobodyさん [sage] 2018/08/19(日) 12:36:15.56ID:??? NASみたいな共有フォルダにあるファイルにアクセスしたいってことでしょ… PDFかどうか以前に、他のファイルも試してみろと。 PHPはなにのサーバーで動いていて、 バージョンはいくつなのかとか環境を書けよ。 ブラウザとかどうでもいいしw : 734 [sage] 2018/08/19(日) 12:37:22.17ID:??? vistaのie9だとできてたんですが 最新環境だとできないのです : 734 [sage] 2018/08/19(日) 12:38:27.17ID:??? apache2.2 php4.3です : nobodyさん [sage] 2018/08/19(日) 12:38:35.98ID:??? ふーん… : nobodyさん [sage] 2018/08/19(日) 12:40:22.71ID:??? 最新って何? XAMPPとか使っててPHP 7.2.xとか? : 734 [sage] 2018/08/19(日) 12:42:00.39ID:??? 最新と言うのはOSとブラウザがってことです 64bitです vistaは32bitです phpとapacheはそのままです : nobodyさん [sage] 2018/08/19(日) 12:47:01.68ID:??? ここまでのやりとりで、教えるのは無理とわかったから他に行きな。 まともに質問すらできないんだから教えようがない。 : nobodyさん [sage] 2018/08/19(日) 13:01:24.89ID:??? 初心者お断りスレだしなー : nobodyさん [] 2018/08/19(日) 14:34:59.94:Il2RNG8O まずはログとか見ろよ ログに何も出てないなら何か根本的に間違ってるってこと : nobodyさん [sage] 2018/08/19(日) 14:49:41.25ID:??? 俺の頭髪も根本が根本的に間違ってる : nobodyさん [] 2018/08/19(日) 17:12:58.11:kRBINjI+ PHPのsystem()でmysqldumpを使ってテーブルごとのsqlファイルを出力して、 それを圧縮して保存するプログラムを作った。 直接ブラウザでアクセスしてプログラムを動かすと正常に圧縮ファイルが保存される。 しかしcronで動かすと、全く空欄のsqlファイルを圧縮したものが保存される。 私には、全く原因が分からず修正できません。 原因はどういったものが考えられますでしょうか? : nobodyさん [sage] 2018/08/19(日) 17:17:02.88ID:??? cronでやらないで、CLIで一度実行してみたらいい 権限関係でねーのと思う : !ninja [sage] 2018/08/19(日) 17:18:09.56ID:??? ブラウザの裏で動いているPHPのユーザー権限や、 crontabのユーザー権限や、 ファイル類のパス、 実行カレントディレクトリ等は一致してますかね? : nobodyさん [] 2018/08/19(日) 18:18:48.73:Il2RNG8O cronでありがちなのはファイルパスの指定ミス 実行プログラムやファイルの指定を相対パスで書くと事故ること多し 簡単に対応するなら全部絶対パスで書け : 747 [] 2018/08/19(日) 19:28:59.75:kRBINjI+ 皆さん、ありがとう御座います。 まだ解決は出来てないのですが、調べるべき方向は見えてきました。 : nobodyさん [sage] 2018/08/19(日) 19:31:32.86ID:??? 実行権限の違いじゃね webサーバはapache で cron はcrontab -eで登録したユーザー とか : nobodyさん [sage] 2018/08/19(日) 21:13:04.70ID:??? id > /tmp/log pwd >> /tmp/log env >> /tmp/log : nobodyさん [] 2018/08/25(土) 11:11:15.78:mbihd+U1 composerのclassmap-authorativeの最適化 場合によっては遅くなるってマジ? 速くなる場合もあるが以下の条件では遅くなるって ・依存ライブラリが多い ・リクエストで実際には使わないクラスが多い ・ファイルシステムからの検索が速い 最適化を有効にすると 読み込めるクラスを全部PHPの配列に入れるから 逆に速度が落ちる場合もある opcacheが有効だとファイルシステムが遅くても緩和されるし PHPファイルが更新されないならタイムスタンプのチェックも無効にすれば PHPファイルを見る必要無くなるね ttps://blobfolio.com/2017/03/benchmark-composer-autoloader/ APCU使った最適化については書いてない : nobodyさん [sage] 2018/08/25(土) 18:38:08.55ID:??? 真実かどうか聞きたいのか、それとも自分で確認した事実を書きたいのか : nobodyさん [] 2018/08/25(土) 19:07:29.36:yUon0wwz どうしても知りたいなら自分でベンチ取ってみるしかないだろう : nobodyさん [sage] 2018/08/25(土) 19:26:31.29ID:??? 環境のせいで多少遅ってるかもしれない可能性を確認するよりも コードを見直したほうがずっと早く改善できそう : nobodyさん [] 2018/08/26(日) 09:42:55.24:nAEEME22 こちらで質問させてください classの必要性がいまいちわからないんですが、普通に自作関数を使うのとどう違うんでしょうか? : nobodyさん [sage] 2018/08/26(日) 10:00:36.02ID:??? classと同じようなことの実現は関数・objectを駆使すればたぶん無理ではない けど非常にめんどい 継承とか再利用なんかはどうしようと悩む : nobodyさん [sage] 2018/08/26(日) 10:00:45.66ID:??? 一人で作るプロジェクト、しかも関数だけだと特に変わらないね 消費税の計算するだけなら別にどっちでもいい。関数にもしなくて良い 今はまだ分からないかもしれないけど、 コンストラクタ、ガベージコレクション、トレイトなど便利な機能が山程ある 其内色々な機能を使うようになると思うので、とりあえずclassに慣れておいた方が良い・・・としか言えない : nobodyさん [sage] 2018/08/26(日) 10:01:30.69ID:??? 継承の場合は丸ごとコピーになるね で、一箇所かえたら両方変更する必要があり・・・とどんどん煩雑になる : nobodyさん [sage] 2018/08/26(日) 10:06:53.90ID:??? コードをコピペしたらもうそれは継承ではなくなってしまうな 関数名を扱うことでコールバック的にやろうとすれば、そこはもう地獄 うーむ : nobodyさん [sage] 2018/08/26(日) 10:10:44.53ID:??? とりあえずGCはclassに限った話じゃなくね? 関数内でも一応無関係ではないはず インスタンスに対するGCは 関数主体の場合だと関数内の変数や関数外の変数に対するGCが当てはまるわけで : nobodyさん [sage] 2018/08/26(日) 10:25:52.22ID:??? あまりclassがうんぬんを意識しないで使ってるものを考えたらわかりやすいかも PDOとかExceptionとか : 758 [] 2018/08/26(日) 11:12:05.68:nAEEME22 独学で基礎的なことだけ覚えたんですが、わりと小規模な会員機能付きのブログエンジンやデータベース系のサイト程度なら作れるようになったんですが(プロから見たら多分穴だらけ)、クラスの必要性が分からず全て関数作ってやってました コードの使い回しにしても関数にしておいて1度呼び出しておけば何度も使えるし、継承にしても関数内で別の関数を呼び出したりして 直感的にも使いやすかったのでそうしてるんですが、今後もっと複雑な事をやろうとするとやっぱりクラスに慣れて使った方がいいんですかね 関係ない話ですが、人のコードとか見ると多次元配列の回し方とか他にもいろいろ人と違うし自分の脳の作りを疑ってしまう。。 : nobodyさん [sage] 2018/08/26(日) 11:43:42.77ID:??? その場合は「状態」を誰が持っているのかってのが一つのポイントだと思う 状態をグローバル変数に持つのは嫌だし, 関数に持たせるのも良くない : nobodyさん [sage] 2018/08/26(日) 15:35:20.70ID:??? コードの書き方は設計にもつながるからなあ DB使ってるならPDOがまさにインスタンスごとに別のコネクションを保持できて class=インスタンスの中に関係関数がまとまってて classの利点がわかりやすい : nobodyさん [sage] 2018/08/26(日) 15:36:42.57ID:??? 名前空間が分かれるだけでもありがたいよ : nobodyさん [sage] 2018/08/26(日) 18:00:16.90ID:??? 標準クラスの名前空間って\だよね? : nobodyさん [sage] 2018/08/26(日) 22:34:08.74ID:??? >わりと小規模な会員機能付きのブログエンジンやデータベース系のサイト程度 ここら辺に何かを感じる : nobodyさん [sage] 2018/08/27(月) 00:48:28.21ID:??? そこはいいの。お節介するところじゃない。 : nobodyさん [sage] 2018/08/27(月) 01:47:28.99ID:??? まあ怪しいな : nobodyさん [sage] 2018/08/27(月) 12:57:27.44ID:??? file_get_contentsで他サーバーのデータを取得した際、 データが途中までしか入って無い場合があり、困ってるのですが対処方法はありますか? $http_response_headerに載っているContent-Lengthに比べても少ない file_get_contentsの戻り値が、falseではないがデータが半分くらいしか入ってない状態で、エラーも何もなくそのまま処理が継続してしまう形です。 そのタイミングでリトライしても結果は変わらず、時間置くくらいしか正常に動作しません。 ただ発生するときは、file_get_contentsで他サーバーのデータを17ファイル連続で取りに行く場合などで、 その場合、3ファイル程データがおかしくなっているという感じです。 1ファイル処理する分には正常に動作し、再現しません。 環境はLinux / apache2-api-20120211 / PHP 7.1.18です。 : nobodyさん [sage] 2018/08/27(月) 13:10:26.40ID:??? >$http_response_headerに載っているContent-Lengthに比べても少ない >そのタイミングでリトライしても結果は変わらず 比べてみて、少なかったら 成功するまでリトライすればいいじゃない contextつきでもfile_get_contentsで問題があって、しかしcurlを使うと問題が出なくなるということもある(※実話) : nobodyさん [sage] 2018/08/27(月) 14:00:52.82ID:??? 自分の場合どっちもだめでfsockopenでようやくいけたなんてことがあったな 一番詳細なこと出来るのはfsockopenだからねえ : nobodyさん [sage] 2018/08/27(月) 14:23:18.31ID:??? 自前でソケット通信考えたらredirectとかkeepaliveとかくっそ面倒だった記憶がある : nobodyさん [sage] 2018/08/27(月) 14:56:47.44ID:??? >成功するまでリトライすればいいじゃない 同プロセスでは何度やっても一度も正しく取得できないんです… 別プロセスで起動し直すと正しく取得できるときもあるのですが、 それは使用リソース的な問題であまりやりたくないというか… curlを試してみるしかないですかね どっちもだめ…curlの勝算も低いですかね… fsockopen使うくらいなら別言語を検討してしまいそうだ : nobodyさん [] 2018/08/27(月) 15:20:54.44:MKVYhJ6R ググったら1番上の記事(公式マニュアル除く)にあるじゃん。 : nobodyさん [sage] 2018/08/27(月) 15:46:07.23ID:??? 具体的に何回やったのか そのうち本当に通信が発生してるのは何回か 調査と試験どっちもしないの : nobodyさん [] 2018/09/01(土) 14:57:08.37:xLd9eNnQ APCuキャッシュを使っている。 管理画面apc.phpに表示されるFragmentationが日々上がっていっている。 現在10%ぐらいだが、まだまだ上がりそう。 この断片化率が上がると何か問題があるのか? 何%ぐらだと問題で、対策はどうすればいいのか? : nobodyさん [sage] 2018/09/01(土) 15:32:43.35ID:??? APCuって自分でなんとかできる人が使うもんじゃなかったっけ ほかの選択肢あるっしょ : nobodyさん [sage] 2018/09/01(土) 15:45:20.23ID:??? ググってわからなかったら、 夜中とか定期的に完全削除しちゃえ。 キャッシュなんてすぐ育つから。 : 780 [] 2018/09/01(土) 16:19:01.86:xLd9eNnQ 俺は、自分で調べないわけじゃないぜ。ただ少なくとも日本語の情報は殆どない。 「apcu 断片化」では20件程度、「apcu Fragmentation」なら沢山ヒットするが、対象を日本語ページに絞ると10件程度しかない。 これらは全部読んだが「Fragmentationが高くなったら、キャッシュをクリアしろ」ということが書いてあっただけで、 何%だと問題なのか、そもそもどのような問題が発生するのか分からない。 英語が読めないわけじゃないけど、英語で検索して必要な情報を調べるのは苦労するよ。 : nobodyさん [sage] 2018/09/01(土) 16:28:38.69ID:??? 自分でベンチマーク取って検証するんだ。 そして報告すれば誰かの役に立つ。 ちなみに俺は何も知らない。すまん…w : nobodyさん [sage] 2018/09/01(土) 16:30:11.58ID:??? いっそのことソース読んだら : nobodyさん [sage] 2018/09/01(土) 16:30:52.08ID:??? ソース読んで効果がわかる部分じゃないだろ… : nobodyさん [sage] 2018/09/01(土) 16:44:49.29ID:??? ソース読めば全部わかるだろ : nobodyさん [sage] 2018/09/01(土) 16:52:55.17ID:??? ソース読んで、何%断片化すると悪影響が出るかわかる? キャッシュの実装方法がわかっても測定しないとわからないことだよ。 : nobodyさん [sage] 2018/09/01(土) 16:58:46.78ID:??? APCuって オペコードキャッシュ部分がなくなって、cookieみたいなkey-valueのデータを自前で自サーバのメモリに共有するだけに単純化されたもんでねえの DISKにcsvで持ったりDB使ったりで共有するんじゃなくてメモリに持って共有しましょう的な だとすると、キャッシュクリア=メモリ上の情報破棄だから気軽にやっちゃあかんし fragmentになってるっていうなら、 それがメモリ上にあるというだけで他はDISKにおけるfragmentと同じでしょ?同じように考えりゃいいじゃん : nobodyさん [sage] 2018/09/01(土) 17:03:03.50ID:??? メモリにどういう配置してどう読み書きしてるかがわからないと 断片化を操作する検証も度合いごとに断片化が及ぼす影響の調査もできなくない? ことが断片化だから、意図的に特定の断片化状態を作るのって 内部知らないと相当難しいように思うんだけど : nobodyさん [sage] 2018/09/01(土) 17:04:43.00ID:??? 突き詰めるとメモリ領域の話になってくるんけ? : nobodyさん [sage] 2018/09/01(土) 17:17:23.22ID:??? ソースだけ見れば分かるならプロファイラ何か要らないんだよなー : nobodyさん [sage] 2018/09/01(土) 18:19:46.16ID:??? Fragmentationが100%に達してても キャッシュヒット率が高ければ問題ないらしい (書き込みは遅くなるが読み取りは遅くならない) ttps://serverfault.com/questions/506328/php-apc-is-100-fragmentation-a-bad-thing とは言っても書き込みは遅くなるわけで 実際パフォーマンスにどれくらい影響が出るかは使用状況によるので一概に言えない 本番環境のパフォーマンスを見るには New Relic APMがおすすめらしいけど 自分は使ったこと無い : nobodyさん [sage] 2018/09/01(土) 18:45:33.01ID:??? JavaのGCだとコンパクションとか 断片化を防ぐ仕組みはあったけど 多分apcuにはそんな仕組みはないと思われ 動的に確保するから更新・削除を何度も行うと細切れになる 断片化率は5MB以下のブロックが全体に占める割合みたいなことが書いてある 解放されたブロックが隣接してたらマージして1つのブロックにする、とも書いてあるが これだけだと完全に断片化は防げないとか? ttps://github.com/krakjoe/apcu/issues/127#issuecomment-244362339 NewRelic使えとかはこの辺で見た ttps://medium.com/@davidtstrauss/avoiding-the-pitfalls-of-apcu-4aa9de00ef93 : nobodyさん [sage] 2018/09/01(土) 18:52:38.08ID:??? Symfonyも 書き込みや削除が多い用途にAPCUを使うと断片化しやすいから使うなって言ってる 多分それをやるとAPCUの管理するブロックの数がどんどん増えていって 新しいブロックの確保が遅くなるんだろう 代わりにRedisとかmemcachedとか使えば? 遅延があるとかで場合によっては使えないかもしれないが Use of this adapter is discouraged in write/delete heavy workloads, as these operations cause memory fragmentation that results in significantly degraded performance. ttps://symfony.com/doc/current/components/cache/adapters/apcu_adapter.html : 780 [] 2018/09/01(土) 21:31:23.17:xLd9eNnQ ありがとう。少し分かってきた。 英語での情報収集が必要とかレベルが上ってきた感じがしていいね。 : nobodyさん [sage] 2018/09/02(日) 06:36:05.35ID:??? クソッ、話が高度すぎる・・・ 今日からPHPUnit使うなんて言い出せないじゃないか。 : nobodyさん [sage] 2018/09/02(日) 09:08:26.43ID:??? APCuってしらんが セッションにDBのハンドラ入れても使えなかったのを 使えるようになるような代物かね? : nobodyさん [sage] 2018/09/02(日) 09:36:09.10ID:??? 言ってる意味がわからない DBの接続はリクエスト終わったら切られるだろ : nobodyさん [sage] 2018/09/02(日) 10:26:34.63ID:??? いやわかるけど で、sessionで使えなかったのを使えるようになるような代物ではない serializeできないものは無理、sessionも共有メモリもそう リソース型と一部のオブジェクトは無理 : nobodyさん [sage] 2018/09/02(日) 10:35:20.45ID:??? DB接続やファイルハンドラが処理終了時に自動的に切られるのは、 そういう扱いをされるべきリソース型であって確実にデストラクタが呼ばれてるからという理由であって、 処理終了時にシンボルテーブルにある全変数が解放されるのとは無関係、 よって、変数の格納先が異なるだけの$_SESSIONや共有メモリでもこの事情は変わらない、 と理解している json化できないものは入れられないwebStorageみたいな感覚 : nobodyさん [sage] 2018/09/02(日) 20:02:16.35ID:??? Dockerで nginxコンテナとphpfpmコンテナを分けてコンテナで分けて作った時 nginxの方はphpファイル入ってなくてもディレクトリさえあれば普通に動くな 開発する時はDockerボリュームを2つのコンテナにマウントしてたが 本番用イメージをCIで作る時は・・・?2つのイメージに同じphpファイルを入れなくちゃいけないのか?って思って調べたらこのような方法が見つかった 画像やCSSとかの静的ファイルは・・・nginxの方だけに入れるか : nobodyさん [sage] 2018/09/02(日) 20:04:53.11ID:??? phpMyAdminの公式Dockerイメージはnginxとphpが一つのコンテナになってたけど あれって面倒? php:7.2-fpmをベースイメージとしてそのまま使うのは出来なくなるよな それだけでめんどそう : nobodyさん [sage] 2018/09/03(月) 07:53:52.79ID:??? 速度重視じゃないから構わないのでは… : nobodyさん [sage] 2018/09/03(月) 14:47:55.71ID:??? というかホスト側ポートに繋げて直接外に晒すなりのホストのhttpdからリバースプロキシして使うもんだろ? nginxコンテナとphp-fpmコンテナに静的コンテンツと動的コンテンツを分けて入れてnginxコンテナからphp-fpmコンテナを見えるようにしてとか, そんな細かい粒度にする必要を感じない : nobodyさん [sage] 2018/09/03(月) 19:59:04.77ID:??? phpMyAdminのDockerイメージが使ってるのはsupervisordだった ベースイメージはphpで、supervisordやnginxを別途インストールしている 意外と難しくない? : 734 [sage] 2018/09/03(月) 20:04:21.13ID:??? 遅ればせながら自己解決 : nobodyさん [sage] 2018/09/04(火) 11:02:04.45ID:??? supervisordは落とし穴が多い 使わなくて済むなら使いたくない : nobodyさん [sage] 2018/09/05(水) 07:35:09.46ID:??? 俺なんかhttpdはinetdの下でいいやと思うことすらある。 ただし、apapche 1みたないのよりずっと軽いやつね。 : nobodyさん [] 2018/09/05(水) 08:52:13.09:WQzBx9At どうしても一つにしたいならApacheでいいじゃん。 docker-composeとかあって分けるのが大した面倒でもないのに、一つに拘る理由がわからんけど。 : nobodyさん [sage] 2018/09/05(水) 08:58:29.76ID:??? Dockerが使えれば女の子にモテモテ : nobodyさん [sage] 2018/09/05(水) 11:51:33.55ID:??? どっか行きたい : nobodyさん [sage] 2018/09/05(水) 12:09:37.13ID:??? Docker使えるならいいと思うよ : nobodyさん [sage] 2018/09/05(水) 13:10:38.80ID:??? オヤジギャグかよ… : nobodyさん [sage] 2018/09/05(水) 17:00:56.76ID:??? dockerってぶっちゃけそこまで便利というか必須? : nobodyさん [sage] 2018/09/05(水) 17:21:02.69ID:??? Dockerの誤解と神話。識者が語るDockerの使いどころとは? Docker座談会(前編) ttps://thinkit.co.jp/article/2127 下手したらバズワードで終わる…ほど酷くはないな。 大昔のフロッピー起動みたいに ガチャガチャ差し替えて使うようなもんかね。 : nobodyさん [sage] 2018/09/05(水) 17:47:40.73ID:??? コンテナでアプリケーション作るならDocker-ComposeないしはDocker単体でいいけどサービス作るならKunernetesくらいは知っとけよって感じ : nobodyさん [sage] 2018/09/05(水) 18:02:18.87ID:??? え?なんだって? : nobodyさん [sage] 2018/09/05(水) 18:07:56.14ID:??? DevOpsってさあ… 昔やってた開発と運用のいっしょくたに戻しただけだよね。 理想は違うんだろうが現実は(笑) 10年後はまた分業とか言ってんだぜ、どうせ… : nobodyさん [sage] 2018/09/05(水) 18:13:01.00ID:??? 10年後には地球がなくなってるよ 絶対だよ : nobodyさん [] 2018/09/05(水) 19:43:49.28:lhQCR9Kb ttps://m-fetishism.com/vr/ : nobodyさん [sage] 2018/09/05(水) 22:49:42.31ID:??? なんかPHPって覚えるスキルRubyやPythonよりおおくね? : nobodyさん [sage] 2018/09/05(水) 23:46:31.60ID:??? かわんないだろ : nobodyさん [sage] 2018/09/06(木) 07:11:57.58ID:??? バッドノウハウと関数がね : nobodyさん [sage] 2018/09/06(木) 12:33:18.54ID:??? PHPはWebProg言語としては登場時期は早かったが いかんせん類友なのか開発陣が無能なもんでいつもどこかの後追い PHPerだからといって覚えることが特に多いわけではなく 他言語にはあるがPHPにはないから作ろう そんな車輪の再発明まがいのことを続けてきた結果であって 一言で言えばご苦労なだけなのである : nobodyさん [sage] 2018/09/06(木) 13:44:51.41ID:??? 別に先陣切って何かを実装してくれとは思わないからいいよ。 それに、他はできるのにPHPはできないってのも良くないだろw : nobodyさん [sage] 2018/09/06(木) 15:12:11.31ID:??? 俺はもうDockerが無いと生きていけない体にされてしまった 必要なプログラムが全て入ったイメージが作れるので 実際に本番環境にアップロードしたら動かなかったけど、 ローカルの開発環境では動いたんだよ! みたいな事が起こるリスクを下げる 各開発者の開発環境の構築も簡単 docker-composeのファイルとか配ればいい : nobodyさん [sage] 2018/09/06(木) 15:57:43.54ID:??? そんでもってテスト用のまま間違って本番稼働させるんだろう? 知ってるよ : nobodyさん [sage] 2018/09/06(木) 17:52:35.05ID:??? 仮想化は楽だろうしDockerはGoogleのハードな使い方にも耐えてるほど 耐久性も信頼性も高いのだろうけど やっぱり専用サーバで環境作るのが俺は好きなんだよ! : nobodyさん [sage] 2018/09/06(木) 18:26:07.22ID:??? 手段と目的を間違えて無ければ何でもいいよ。 Dockerはもちろん良い物だけど必須ではない。 : nobodyさん [sage] 2018/09/07(金) 16:08:31.23ID:??? PHPで動画編集できるライブラリ無いかな?画像編集できるGDみたいなさ 既存動画のカットと動画連結、字幕が付けれて、それをmp4に出力で来て、 youtubeでアップロードできれば最高なんだけど コマンドラインで別のプログラム実行するとかじゃなくてね まぁ無理かな… : nobodyさん [sage] 2018/09/07(金) 16:58:28.42ID:??? PHPの場合, ライブラリでやるとなるとピュアPHPになるが動画編集はそれじゃあ重過ぎるだろう 他の言語だとネイティブに近いレイヤのライブラリをラップしてバインディングすると思うけどPHPには実行時にネイティブ拡張をロードする機能がない : nobodyさん [] 2018/09/07(金) 17:15:32.51:YySmCjy1 ttp://phpopencv.org これ使って何とかならんの? : nobodyさん [sage] 2018/09/07(金) 19:18:12.39ID:??? 文章が臭いなと思ったが >既存動画のカットと動画連結、字幕が付けれて、それをmp4に出力で来て、 なんかやることが量産クソyoutubeアフィっぽい : nobodyさん [sage] 2018/09/07(金) 20:20:39.44ID:??? 動画編集をブラウザでやるってのが無理ありすぎ 重い 遅い 面倒なのは容易に想像でき あきらかにプラットフォームに向いてない : nobodyさん [sage] 2018/09/07(金) 21:02:34.48ID:??? そのぐらいのオンラインサービスなら既にありそうだけどね。 : nobodyさん [sage] 2018/09/07(金) 21:24:58.65ID:??? WebGL使えば何でも出来る 動画をテクスチャにすればどんなエフェクトも実現出来る ブラウザ上ではプレビューだけで エンコードは強力なサーバーのCPUとGPUをぶん回す PHPとかもう関係ねえか : nobodyさん [sage] 2018/09/07(金) 21:27:57.53ID:??? JavaScriptだな : nobodyさん [sage] 2018/09/08(土) 00:15:30.05ID:??? gif動画くらいならまだわからんでもないがmp4ってご職業をたずねたくなる : nobodyさん [sage] 2018/09/08(土) 00:59:50.88ID:??? >エンコードは強力なサーバーのCPUとGPUをぶん回す サービス化するとなると結構きついよそれ JSで各クライアントにやらせたほういいね そうすると専用ソフトでやったほうがいいってとこに帰結する : nobodyさん [sage] 2018/09/08(土) 01:05:23.39ID:??? jsで動画エンコードってさ、こうなりそう 利用者=負荷がかかるとわかってる →鯖管理者=coinhiveみたいなminerを仕込んでおく →鯖管理者=広告と採掘で両得、サーバ負荷なし : nobodyさん [sage] 2018/09/08(土) 07:30:59.70ID:??? ffmpegをEmscriptenで動かすような方式なら オーバーヘッドでかいしシングルスレッドだが動く SharedArrayBuffer使えば マルチスレッド出来るらしいがSpetre、Meltdownのせいでしばらくは復活しない : nobodyさん [sage] 2018/09/11(火) 17:07:25.22ID:??? CRON起動すると多重で起動されたりするのって当たり前? : nobodyさん [sage] 2018/09/11(火) 17:31:28.03ID:??? いいえ 処理時間が長すぎて、前回の処理と重複してんじゃないですかね? : nobodyさん [sage] 2018/09/15(土) 11:17:45.89ID:??? ロックしたらいいんじゃね? ロックが確保出来なかったら 前回の処理が実行中とみなして処理を行わない Symfonyにこの目的のコンポーネントがある ttps://symfony.com/doc/current/components/lock.html : nobodyさん [sage] 2018/09/15(土) 11:31:27.49ID:??? * * * * * /path/to/unko.php のういうの見ると、daemonにしてよとか思う。 : nobodyさん [sage] 2018/09/15(土) 11:38:58.70ID:??? メモリリークとか蠱惑ね? : nobodyさん [sage] 2018/09/15(土) 11:57:01.30ID:??? そんなクソなコードなの…? まあでも、起動時に一応ulimitしたり落ちたら再起動とかフォローはするけど。 : nobodyさん [] 2018/09/15(土) 13:00:39.79:AkqW0gAt Drupalはメモリの内容を使い回すphp-pmではメモリリークして安定動作しないらしい php-pmにも一定数のリクエストを処理すると再起動する機能があるが、リークの程度が大きいとそれでも問題になる Drupalのコードはメモリの内容をリクエスト後に破棄する前提で あちこちでキャッシュしまくってんのかな? : nobodyさん [sage] 2018/09/15(土) 14:19:19.63ID:??? なんで?落ちたら再起動させるようにするとかよっぽど手間じゃないか : nobodyさん [sage] 2018/09/15(土) 14:36:06.00ID:??? 今まで見て来た範囲で大半は、 リアルタイムにしたいのに技術力がなくてできなくて、 そんでもって処理も下手で起動が遅かったり 多重動作したりしてたから。 daemonにしたらそういうことはなくなる。 そもそも落ちるなんて稀な品質で作るし、 落ちたら条件付きで自動再起動するのは 他のサービスでもやるからね。 毎分起動ですぐに処理が終わって、 リアルタイム性を要求されてないならOKだよ。 でもそんなの少ない。 : nobodyさん [] 2018/09/15(土) 14:38:21.89:g0abHATJ コンテナオーケストレーターのAmazon ECS使うわ プロセスが仮に落ちても自動で再起動してくれる 使用するメモリーも制限できる cronのような定期実行も一応出来る : nobodyさん [sage] 2018/09/15(土) 14:50:10.75ID:??? >リアルタイムにしたい それバッチでやることじゃないのにバッチを使ってる、っていう転用事例だよな後出しじゃん >そんでもって処理も下手で起動が遅かったり >多重動作したりしてたから バッチ利用が悪くてdaemonなら良い、っていう問題じゃないよなコレ。ただの技術力の低さ >毎分起動ですぐに処理が終わって、 >リアルタイム性を要求されてないならOKだよ。 >でもそんなの少ない。 後の2行はdaemon利用であるかどうかと無関係 むしろ上述の前提のとおり技術力がないならdaemonでもトラブル多発する >毎分起動ですぐに処理が終わって、 >リアルタイム性を要求されてないならOKだよ。 >でもそんなの少ない。 オレオレ常識を前提にして語らないでくれます? : nobodyさん [sage] 2018/09/15(土) 14:53:20.31ID:??? なんかカス知識しかない営業や広報が「ファイルなんてあり得ないDBなら問題ゼロなのに」と言ってる感じ : nobodyさん [sage] 2018/09/15(土) 14:54:04.17ID:??? すまん広報は上のオレオレ常識だな忘れてくれ : nobodyさん [sage] 2018/09/15(土) 14:59:44.14ID:??? 何だよ、連投して噛み付きたいだけか。若いな… ごめんね。 自分で作った訳じゃないから技術力は俺のせいじゃないしw お客さんか、その場開発元に言って。 : >>854-855 [sage] 2018/09/15(土) 15:00:39.55ID:??? なんかすまんな営業君 : nobodyさん [sage] 2018/09/15(土) 15:09:30.71ID:??? 後出し、論点すり替え、に追加で人格攻撃に責任転嫁 倍満ってとこかな? まあ大方ステマの類だろうけど : nobodyさん [sage] 2018/09/15(土) 20:11:41.06ID:??? 完全論破( ー`дー´)キリッ : nobodyさん [sage] 2018/09/15(土) 20:16:27.14ID:??? リアルタイムと言うけど 一体全体どんな処理を想定しているんだ 手段として常駐化が使えてかつ常駐化が効率的であるケースはそう多くない というかぶっちゃけかなり少ないように思われるんだけど : nobodyさん [sage] 2018/09/15(土) 20:57:38.10ID:??? どちらかといえば実装ではなく設計もしくはその上流の問題かな オンデマンドでもなく毎分起動、しかもphp実装 ポート開けて待ち構えるでもない 問題があるとすればその所在はdeamon云々ではなく別のところ : nobodyさん [sage] 2018/09/16(日) 22:52:24.26ID:??? みやえらってYouTubeでも他のアフィリエイターの名前を利用して集客してるよね。 それで散々否定した上で、自分のサロンみたいなものに誘導してる。 一番、卑怯なタイプですよね。 : nobodyさん [] 2018/09/17(月) 11:09:15.41:pOFnQ2V0 phpって クラスのフィールドに代入する時 クラスで定義してない名前のフィールドにも代入出来る? 何でこの辺ゆるゆるなんだ : nobodyさん [] 2018/09/17(月) 15:16:51.62:4qZo9f4+ CSRF対策で質問です。フォームで別の画面にトークンを渡す場合 hoge1.php <form action="hoge2.php"> <input type="hidden" name="token" value="生成した値"> <input type="submit" value="OK"> </form> hoge2.php if(!isset($_POST["token"]) || $_POST["token"] !== 値 ){エラー表示} のようにしてますが(おおまか) <form action="hoge1.php"> と自分自身に渡す場合エラーになってしまいます。 どうすべき、どうしてますか? : nobodyさん [sage] 2018/09/17(月) 15:29:30.63ID:??? if(!isset($_POST["token"]) || $_POST["token"] !== 値 ){エラー表示} のところの「値」が数値型になってないか? : nobodyさん [sage] 2018/09/17(月) 17:02:21.91ID:??? ifの中身が予想に反する結果になるんだったらまずvar_dumpして原因探れよ : nobodyさん [sage] 2018/09/17(月) 21:53:00.13ID:??? 文字型です。 別画面へ移動ならエラーにならないのでそこは問題ありません。 予想通りの結果です。 CSRF対策で、ページが最初に読み込まれたときの処理をどうしてますか? : nobodyさん [sage] 2018/09/17(月) 22:03:36.74ID:??? hoge1.phpとhoge2.phpの内容を (おおまか) などと言って省略しないで全部出せ それか、再現可能な最小のコードを書け : nobodyさん [sage] 2018/09/17(月) 22:27:37.65ID:??? 質問者の意図がわからずブチ切れ ほぼ間違いなくCSRF対策の意味がわかってない : nobodyさん [sage] 2018/09/17(月) 22:37:31.33ID:??? 配列長が500、[0]から[99]までは値が1、[100]から[499]までは値が0、という配列を作るのってどうすればいいですか? やはり面倒でもforでまわすのが確実でわかりやすいでしょうか : nobodyさん [] 2018/09/17(月) 22:50:49.71:v4ZYnSR8 <form action="hoge2.php"> methodが抜けてる時点で、お話にならない。 : nobodyさん [sage] 2018/09/17(月) 22:55:19.99ID:??? array_fill() ttp://php.net/manual/ja/function.array-fill.php : nobodyさん [sage] 2018/09/17(月) 23:02:38.57ID:??? 配列長100で全要素の値が1の配列Aに、配列長500で全要素の値が0の配列Bをmargeするということでしょうか : nobodyさん [sage] 2018/09/17(月) 23:06:54.07ID:??? 連投すいません array_mergeの動作を勘違いしていました array_merge( array_fill(0, 100, 1), array_fill(100, 400, 0) ) これだけで重複させずに生成できるんですね ありがとうございました : nobodyさん [sage] 2018/09/17(月) 23:14:38.03ID:??? 質問に余分な箇所は削るという感じでしたので省略しました。 そこ必要でしたか?ちなみにPOSTです。 : nobodyさん [sage] 2018/09/17(月) 23:18:31.41ID:??? methodが何であれ対策に根本的には関係ない すでに書かれてるのにあえてまた書くがエラーが出て困ってるのではないとわかってる? : nobodyさん [sage] 2018/09/17(月) 23:20:48.74ID:??? は頭悪いのか?なくても予想できるだろ >別画面へ移動ならエラーにならない : nobodyさん [sage] 2018/09/17(月) 23:41:23.43ID:??? 無能質問者の自演乙 : nobodyさん [sage] 2018/09/17(月) 23:48:00.20ID:??? とうとう自演扱いw まさに : nobodyさん [sage] 2018/09/18(火) 06:05:33.23ID:??? 低レベルな喧嘩は初心者スレでやってくれる? : nobodyさん [sage] 2018/09/18(火) 19:59:18.63ID:??? 問題点が見えていない2人(か1人か)のために書くと $_POST['token']には何かしら値が入っているはず 入ってなければ不正アクセス等(で強制終了可) ところが自分呼び出しでは最初は値が入っていない だからエラー処理してるとそれになる 不正アクセス等の区別をどうするかということだな エラー処理せずスルーするか : nobodyさん [] 2018/09/18(火) 20:26:37.82:UTbc9qbB sessionが空 postが空 sessionとpostが一致しない => でてけ! : nobodyさん [sage] 2018/09/18(火) 21:16:13.02ID:??? (おおまか)は !is_string($_POST['token']) など質問に全く関係ないバリデなどです。 他スレではどこも関係ない部分は消せと言われますがここは全部書いた方がいいのでしょうか? は100%再現します。 : nobodyさん [sage] 2018/09/18(火) 21:19:41.01ID:??? $_POST['token']以外に何も判断材料がないのかね : nobodyさん [sage] 2018/09/18(火) 21:22:12.02ID:??? method記述がないコードでhoge2.phpに投げるとなぜか$_POST['token']に値が入ります!再現します! : nobodyさん [sage] 2018/09/18(火) 21:55:49.75ID:??? 判断材料とはなんでしょうか?の通りです。 フラグに初回で値入れるか変えて それ以降受け渡して使い回しすれば判定できますがそれはちょっと。 みなさんはどう判定してるのでしょうか? : nobodyさん [sage] 2018/09/18(火) 22:03:33.79ID:??? : nobodyさん [] 2018/09/19(水) 15:07:37.46:vkVFY1/A そもそもスーパーグローバルとか使うなや : nobodyさん [sage] 2018/09/19(水) 19:30:11.00ID:??? SESSIONならいいんじゃね : nobodyさん [sage] 2018/09/19(水) 20:44:33.16ID:??? 別に使っても構わんだろ : nobodyさん [sage] 2018/09/19(水) 22:12:38.81ID:??? filter_input覚えたからってスーパーグローバルだから使うなって理屈はおかしい スーパーグローバルがいじれてしまっても意図したことなのでなんの不都合もない : nobodyさん [] 2018/09/19(水) 22:42:03.69:AG3DKNyH そもそもPHP使うなや : nobodyさん [sage] 2018/09/19(水) 23:27:35.58ID:??? なんでやねん : nobodyさん [sage] 2018/09/20(木) 04:30:30.01ID:??? バリデーションが貧弱でFILTER_CALLBACK使いまくりの 汚らしいコードになるのがfilter_input すっきりでもなんでもねえや : nobodyさん [] 2018/09/20(木) 07:47:03.15:RWskJfDy なんでPHPのフレームワーク使わないの? : nobodyさん [sage] 2018/09/20(木) 08:22:15.22ID:??? ageてるやつはちょっと頭悪すぎてこのスレに不要なんで消えてくれるかな : nobodyさん [] 2018/09/20(木) 15:04:04.76:r6jO1NK4 スーパーグローバルなんて使ったらテスト出来ないじゃん 禄にテストしないとgoto failを誤記述してセキュリティに大穴空けたiOSみたいになるぞ : nobodyさん [sage] 2018/09/20(木) 15:25:27.37ID:??? ん? : nobodyさん [sage] 2018/09/20(木) 19:08:24.84ID:??? 自己呼び出しはそんな特別なことでもないのにな 皆対策してないのか : nobodyさん [sage] 2018/09/20(木) 20:58:49.72ID:??? CSRF対策とはなんぞや、から説明し出す人を待ってるのかな : nobodyさん [sage] 2018/09/20(木) 21:56:25.03ID:??? OAuth2のstateは? リンクを踏ませて攻撃者のアカウントにログインさせられるのを防ぐらしい 図解:OAuth 2.0に潜む「5つの脆弱性」と解決法 (2/4) ttp://www.atmarkit.co.jp/ait/articles/1710/24/news011_2.html しかし、ユーザーのアカウントを盗むのではなく 騙して攻撃者のアカウントにログインさせるのって 何に使えるんだ? : nobodyさん [sage] 2018/09/20(木) 23:15:09.43ID:??? そんな説明はいらんし、上見た感じ質問者以外説明できるのここにはいないだろ : nobodyさん [sage] 2018/09/21(金) 00:22:36.65ID:??? なんぞやを引き出そうとは読めんしな。 読んでないがカウンターじゃね。 : nobodyさん [sage] 2018/09/21(金) 02:45:20.98ID:??? $_POST["token"] !== 値 !==だから「$_POST["token"]」と「値」では型が違うんじゃね?くらいしかわからん 値をどうやって作ってるのか見ないと何とも言えない : nobodyさん [sage] 2018/09/21(金) 09:29:51.47ID:??? CSRFなんてXSSと並んで初歩中の初歩なんだが : nobodyさん [sage] 2018/09/21(金) 17:04:25.95ID:??? 知っておくべきことやっておくべきことではあるが、初歩ではないぞ : nobodyさん [sage] 2018/09/21(金) 22:40:04.68ID:??? 初歩的な知識ではあるが技術的にはかなりしんどい 単純なシステムならいいが、複ログインや古いシステムが絡まると手がつけられなくなる : nobodyさん [sage] 2018/09/21(金) 22:55:58.39ID:??? 初心者お断りスレの対象じゃないということで : nobodyさん [sage] 2018/09/21(金) 23:23:26.53ID:??? いやだから同じページでなければそこは正常動作してるんだって 初期表示と不正侵入の区別 これは理論上無理だからページ構成変えるとか 例えばお問い合わせフォームなら次ページ次ページと行けるから自然と値は入る : nobodyさん [sage] 2018/09/21(金) 23:29:16.47ID:??? 理論上ふいた : nobodyさん [sage] 2018/09/22(土) 02:15:22.08ID:??? CakePHPとか何かフレームワーク入れりゃそれがXSS対策・CSRF対策をしてくれるからな 特段なんか対策用の仕組みを考えたりとかしてないだろ? : nobodyさん [sage] 2018/09/22(土) 05:13:29.59ID:??? 新手のオラつき方だな : nobodyさん [sage] 2018/09/22(土) 06:03:21.81ID:??? CSRFとその他をごっちゃにしすぎ まずはCSRFだけに注目して考える それでどういう対策が有効かを考え その対策をしたときに生まれる新たな問題がないかを検討 そうやって問題がないところまで考えることができればミジンコ卒業 : nobodyさん [sage] 2018/09/22(土) 08:04:21.67ID:??? FW使えば問答無用で対策がされるわけないだろ FWのルールに従い FWの機能を使っているうちはそうではあるが もともと備わってるそういう機能やルールがあるのを知らず 一歩踏み外して自前でコードを書き出せば常に危険は伴う ただしいリスクに対する対策ができればそういったケースでも安全 FWにも学習コストがかかるわけで 方言のようなFWの流儀覚えるからセキュリティなんて考慮しないではなく 標準語としてピュアPHPなコードで学習しないとFWに頼りきってると痛い目見る : nobodyさん [sage] 2018/09/22(土) 14:55:29.83ID:??? CSRF以外話には出てないが? 君がごっちゃにしてるだけだろ : nobodyさん [sage] 2018/09/22(土) 14:57:31.34ID:??? まあまずは頭の中を整理しよな : nobodyさん [sage] 2018/09/22(土) 16:06:23.64ID:??? 同感 壁にぶつかってそれを対策するためだけにFW使えとは本末転倒 FW使うにしろ基本に取り組むことは正しいし後々役に立つこともある : nobodyさん [sage] 2018/09/22(土) 21:20:14.76ID:??? なにがおかしい?そのままその通りだが : nobodyさん [sage] 2018/09/22(土) 21:59:52.93ID:??? なら答えようか、初回のエラー対策。 はいどうぞ↓ : nobodyさん [sage] 2018/09/22(土) 22:03:57.01ID:??? 丸一日半も経ってからその程度しかレスできないの? 君、生きてる価値ないw : nobodyさん [sage] 2018/09/22(土) 22:11:29.54ID:??? w : nobodyさん [sage] 2018/09/22(土) 23:47:56.96ID:??? 丸一日?誰と勘違いしてんだ。 ようは答えられないのだな。 : nobodyさん [sage] 2018/09/23(日) 00:29:13.67ID:??? ここは答えられない人がいちゃもんつけるスレです : nobodyさん [sage] 2018/09/23(日) 06:27:52.89ID:??? ぼくはまちちゃんも知らない新参が増えてきてんだな : nobodyさん [sage] 2018/09/23(日) 07:57:41.92ID:??? よそのサイトがよそのサイトにリクエスト送って それを受理してしまうとまずい状況なのがCSRFな 別にまずくないなら仕様で片付けられる問題 : nobodyさん [sage] 2018/09/23(日) 09:00:09.80ID:??? 間違いなくCakePHPだと今回のような同一ページでも対策してくれる? 他に同一ページで対策するものはある? : nobodyさん [sage] 2018/09/23(日) 09:21:26.76ID:??? もう1週間近くになるのにまだできてないの : nobodyさん [sage] 2018/09/23(日) 09:47:44.59ID:??? もう1週間近くになるのにまだ答えられてないの : nobodyさん [sage] 2018/09/23(日) 10:47:41.49ID:??? そもそも質問した人と断定してることが痛い : nobodyさん [sage] 2018/09/23(日) 11:04:50.91ID:??? ほんと初心者スレでやってくんないかな ここ過疎スレなんでねえ 下らないレスで流さないでほしいんだわ : nobodyさん [sage] 2018/09/23(日) 14:16:22.72ID:??? 雑談スレでもあるから話自体はOK 892, 920のような不毛なレスが余計なだけ : nobodyさん [sage] 2018/09/23(日) 19:01:10.04ID:??? とうにできてます。 速度など別の理由でに近い感じにしつつ自分自身に渡すようにしました。 元々お問い合わせフォームの流れなら全く問題なかったので。 : nobodyさん [sage] 2018/09/23(日) 23:50:42.36ID:??? 指摘できるならここぞとばかり反論してきたであろう 結局何も言えずに終わったな これへの返しもwだけだろ : nobodyさん [sage] 2018/09/23(日) 23:56:07.09ID:??? w : nobodyさん [sage] 2018/09/24(月) 12:45:34.83ID:??? 釣られてやんのw : nobodyさん [sage] 2018/09/26(水) 19:14:49.36ID:??? そもそもだけでは再現性が無い 指摘、の通り、method="post"と書けば動作する 問題のコードが端折られているから何が問題なのか分からん : nobodyさん [sage] 2018/09/26(水) 19:46:53.24ID:??? 初心者スレでないからといって エラーがなにかを書かないとエスパーじゃないと答えられん : nobodyさん [sage] 2018/09/26(水) 20:47:45.23ID:??? くどい、まだ言ってるのか >何が問題なのか分からん 読解力が問題 : nobodyさん [sage] 2018/09/26(水) 21:52:45.49ID:??? Windows10でXAMPP使ってる人に ProでなくHomeで使ってる人いる? : nobodyさん [sage] 2018/09/26(水) 21:58:12.55ID:??? >939 xamppとwindowsのhome/proは関係ないと思うけど、何を聞きたいの 結局hostsw書き換えるだけだよ : nobodyさん [sage] 2018/09/26(水) 23:15:25.06ID:??? 肝心なこと書いてなくてすまん windowsの更新で問題点や面倒さなど違いあるかなと みんな自動更新抑制ツールなど入れてるだろうから同じことかな : nobodyさん [sage] 2018/09/26(水) 23:22:34.52ID:??? 特にない 強いて言えば、仮想環境を作る時にPROの方が多少パフォーマンスが優遇されてた気がする : nobodyさん [sage] 2018/09/26(水) 23:27:14.94ID:??? ProだとHyper-Vが使える そもそもXAMPP使わないけど : nobodyさん [sage] 2018/09/27(木) 08:42:18.63ID:??? 10 homeでxampp使ってるぞ もともと7 homeからたけどな phpの動作確認なんてこれで十分や : nobodyさん [sage] 2018/09/27(木) 19:59:39.18ID:??? みんなありがとう、よく参考になった : nobodyさん [sage] 2018/09/27(木) 20:31:30.36ID:??? 本件から逸れて申し訳ないけど, XAMPPって中途半端じゃない? 手元での動作確認ならビルトインサーバでいいしテスト用環境ならコンテナなり仮想なりで動かすし 実際にApacheで動かせるって言っても今はphp-fpmの方もかなりあるし 何れにしてもビルトインサーバよりXAMPPのほうがいい状況が分からない(MariaDBも一緒に入ってくることくらい?) : nobodyさん [sage] 2018/09/27(木) 20:49:57.19ID:??? 答えてもいいがもうくどいしそういう流れでもないからヒントだけ書く 自分で実際にやってみなさい 値は乱数でもsessionでも極端に定数でも何であれ関係ない : nobodyさん [sage] 2018/09/28(金) 02:52:40.17ID:??? ビルトインでは何か挙動が違うことがない? ディレクトリ設定というか、エイリアス処理をしてる場合とか。 本番環境ならhoge/であのスクリプトにアクセスするのにビルトインだと違うみたいな コンテナなり仮想環境なりは実行まで手間が掛かったりしない? 仮想環境起動に6秒くらい掛かったり、配備が手間だったり。 : nobodyさん [sage] 2018/09/28(金) 08:00:49.46ID:??? ビルトインこそ中途半端だわ アプリケーション毎に仮想環境を用意するのも自分はあんま理解できんな XAMPPで作ったやつが動かんことあっても5分で修正出来るレベルの内容だろう : nobodyさん [sage] 2018/09/28(金) 08:08:40.57ID:??? OSやバージョン無視したコード書かないのが大前提でね 初心者じゃないしマニュアル見ながらそんくらい把握できるじゃろ : nobodyさん [sage] 2018/09/28(金) 08:09:11.73ID:??? 結局どうやってもサーバーと色々差異があるので、dev.example.〜にしてるわ コピーして終わり よぽど特殊なサイトはxampp : nobodyさん [sage] 2018/09/28(金) 08:15:32.89ID:??? スルーしてたけどビルトインサーバってもしかしてphpのビルトインウェブサーバ? 使いもんになるのアレ : nobodyさん [sage] 2018/09/28(金) 08:20:50.57ID:??? >OSやバージョン無視したコード書かないのが大前提でね これどういうこと? 何使うにしてもテスト環境あるならそのverで使えない組み込み関数使えば テストでエラー吐かれるんだしバージョン無視コードがわからない OS無視コードも何を指してるのかわからない : nobodyさん [sage] 2018/09/28(金) 09:25:43.46ID:??? XAMPP使って仮想環境を用意しないということは 本番とはバージョンやOSが違う状態で開発してるという想定をして ちゃんとコードをかけるかどうかっていう話だがそんな難しいことじゃねえだろ : nobodyさん [sage] 2018/09/28(金) 09:52:55.62ID:??? バージョン違うとは限らんだろ OSにしてもOS依存のコードって意識的に書かないと無理でね? : nobodyさん [sage] 2018/09/28(金) 09:56:23.92ID:??? Windowsじゃ使えない機能はいくつか知ってるけども あとは……なんかあったっけ? : nobodyさん [sage] 2018/09/28(金) 10:29:29.10ID:??? 意識的にかけるならいいんだよ 書けない人が動かんって言ってるわけで 関数でOSやFSに依存したり制限をうけるものもそうだけど (問題になるかは別として)CRLFをPHP_EOLで書いてみたりとか (このスレにいるかは別として)C:\users\unko\manko.pngとかパス書いちゃうやつとか ちょっとバイナリプログラミングに手を出してみてエンディアン考えない実装したりとか ほとんどミラクルケースではあるがまあいろいろある : nobodyさん [sage] 2018/09/28(金) 10:46:04.89ID:??? とりあえずOSについてだけ、だけど、正直あんまり同意できない ファイルシステム関係は・・・どんなんがあった? 意識してWindowsの特有のACLを操作するときとか?わからんけど PHP_EOLはわざわざ意識的に「OS依存の改行コード」を指定してるんだから関係なくね パスの問題は環境が異なるのに絶対パスで書くこと自体がNGなのであってOS関係ないはず エンディアンが問題になるって、ファイル読んで$char[$n]だったら問題にならないし pack/unpackだったらまず間違いなくOSによらず意識的にエンディアン指定するんでねーの あと意識しないで改行コードが変わりうるfputcsvみたいなやつか parse_ini_fileはどうだったっけ : nobodyさん [sage] 2018/09/28(金) 10:48:09.51ID:??? ミラクルケースに近いけど32bit/64bitの数値上限とか : nobodyさん [sage] 2018/09/28(金) 12:34:50.29ID:??? >PHP_EOLはわざわざ意識的に「OS依存の改行コード」を指定してる $tmp_path = "/var/tmp"; $updir = $tmp . DIRECTORY_SEPARATOR . "upload"; とか明らかに無意識というか脳死してる人は割と多い。 : 946 [sage] 2018/09/28(金) 12:46:39.01ID:??? 今時PHPを含めスクリプトならどんな言語でも開発用には簡易サーバ使うと思ってる PHPならビルトインサーバだしRubyならWebrick, PythonならDjangoのdevserverが主要どころだろう 多人数の開発でApacheの設定をさせるのって難しくない? 自分だけで開発してるならXAMPPも分かるけど, でもフレームワークの開発用サーバ起動コマンド使う方が楽じゃない? 手元では簡易サーバで動かしたりテスト走らせたりしつつ, リポジトリpushしたときにCIサーバ側でテスト用コンテナ立ててテスト走らせれば本番環境に近い環境でテスト出来るし : nobodyさん [sage] 2018/09/28(金) 12:58:27.95ID:??? 単一ページならともかく リクエストまたぐときは論外 : nobodyさん [sage] 2018/09/28(金) 13:25:42.97ID:??? OS依存とかバージョン依存話してる奴らはまだいい 946ちゃんはアカン : nobodyさん [sage] 2018/09/28(金) 13:29:07.65ID:??? WinでもLinuxでもパス区切り記号は / 使っていいと思ってたわ いや実際普通に使えるんだが。絶対パスやマルチバイト使わなきゃ大抵は平気なんだが むしろなんでそんな定数使おうとするんだろう。一体何を考えて・・・ : nobodyさん [sage] 2018/09/28(金) 17:28:51.84ID:??? 964に同意でーす DIRECTORY_SEPARATORなんて使ったことねーぞ 頭の中では死語になってる : nobodyさん [sage] 2018/09/28(金) 20:14:32.88ID:??? Apacheの設定って設定終わったら設定コピーするだけじゃん 多人数だとその設定はリポジトリを通して共有されるものだろう? : nobodyさん [sage] 2018/09/28(金) 20:15:52.53ID:??? pathに"C:"が入ってたらデバッグモード・・・ ってのを昔やってたな 色々めんどくなってサブドメイン管理にするようになったけど : nobodyさん [sage] 2018/09/28(金) 20:23:44.53ID:??? DIRECTORY_SEPARATORは確かCakeに入ってたな 今も入ってるかしらないけど define("DS", DIRECTORY_SEPARATOR) とかでDSだらけだった記憶が : nobodyさん [sage] 2018/09/28(金) 22:36:46.84ID:??? php.iniならまだギリわかるが(設定コピーすりゃいいけど) apache httpdのhttpd.confでなんか開発に影響あってめんどいのってあるか? httpdの設定も満足にできない、って相当だぞ : nobodyさん [sage] 2018/09/28(金) 22:47:02.93ID:??? 逆 レンサバの保守をやる場合サーバー側で設定できない事がある 専サバなら本当に楽 : nobodyさん [sage] 2018/09/28(金) 22:49:40.40ID:??? これ手元のローカルの開発環境の話だろ レンサバでphpのビルトインウェブサーバ使うのかお前は : nobodyさん [sage] 2018/09/28(金) 22:52:55.62ID:??? そりゃそうでしょ レンサバでphpのビルトインウェブサーバは使えないだろう ・・・と思ったけど使えたらすまん : nobodyさん [sage] 2018/09/28(金) 23:01:47.62ID:??? 非開発者が話に混じってる感 : 946 [sage] 2018/09/28(金) 23:20:50.08ID:??? 楽出来るなら楽した方がいいよねって話よ 何よりビルトインサーバの方が手間が少ないから あとApacheとかnginxとかのフル機能Webサーバの設定ってコピペだけならいざ知らずちゃんとやるのはかなり勉強が必要だと思うけど ましてトラブル発生時とか 上でも書いたけどPythonやRoRのプロジェクトでrunserverとかrails sとか開発時にはそっち使わない? 開発時からApache/nginx + Passenger/Unicorn/gunicorn/uWSGIとかでやるのが普通なのかな : nobodyさん [sage] 2018/09/28(金) 23:45:46.98ID:??? httpd.confの編集がおぼつかないというのは socketってなんですかpathってなんですか正規表現ってなんですか、というレベルだろう ふれーむわーくに頼ってて中身把握できてない人材と同じ系統 むしろ学ばせてレベル底上げする、あるいはふるいにかける良い機会では : nobodyさん [sage] 2018/09/29(土) 00:44:45.56ID:??? XAMPP入れるだけで動く環境が出来るんだからラクだろう PHP入れる手間でApacheも付いてくるようなものだ それとここPHPのスレなんだが PythonやRoRの話したけりゃ別スレ行けよ : nobodyさん [sage] 2018/09/29(土) 08:37:50.46ID:??? プログラマって、なんですか・・・・ : nobodyさん [] 2018/09/29(土) 09:09:44.84:N/7exOLA xamppとかゴミ以下の存在。 開発環境としては、オートリロードもできないし(自分で仕込まない限り)、 本番環境としてはまったく使えないから、プロダクションの知識も役に立たない。 仮想環境とかDockerとか他にもーーっといいやり方がある。 : nobodyさん [sage] 2018/09/29(土) 09:43:37.88ID:??? ゴミ以下の理由がオートリロードって… : nobodyさん [sage] 2018/09/29(土) 11:24:22.81ID:??? まるで仮想環境やDockerなら 何もしなくてもオートリロードしてくれるみたいな言い方だな : nobodyさん [] 2018/09/29(土) 20:18:32.22:foWjn8Jy 【報道規制の、解禁を】 マ@トレーヤのUFO出現 ttp://matsuri.5ch.net/test/read.cgi/sky/1537927336/l50 : nobodyさん [sage] 2018/09/30(日) 00:01:21.98ID:??? xamppアンチとか珍種すぎるわ ただのテスト環境に噛み付くってほんっとうに暇なのか : nobodyさん [sage] 2018/09/30(日) 05:31:44.75ID:??? オートリロードって何だ?IDEの機能じゃね―の? : nobodyさん [sage] 2018/09/30(日) 10:27:11.81ID:??? チートの一種だよ : nobodyさん [sage] 2018/09/30(日) 11:31:12.85ID:??? 大鳥ロード : nobodyさん [sage] 2018/09/30(日) 13:08:36.53ID:??? gulpとかだろ? : nobodyさん [sage] 2018/10/02(火) 23:04:48.21ID:??? MANGA版のゴッドマーズも動かないの : nobodyさん [sage] 2018/10/04(木) 16:45:06.50ID:??? 次スレ リンク修正済み ttps://medaka.5ch.net/test/read.cgi/php/1538639036/ : nobodyさん [] 2018/10/06(土) 09:12:30.09:CwzvffqG Docker Toolboxでphpファイルの入ってるWindowsのディレクトリをマウントして使うと遅い rsyncやunison syncを使う手もあるが ちょっと面倒くさい それ使わないで速く出来ない? : nobodyさん [sage] 2018/10/06(土) 09:45:15.10ID:??? dockerやめれば速くなる : nobodyさん [sage] 2018/10/10(水) 16:17:39.86ID:??? if文で文字列想定の変数を否定演算子でチェックするのはやめてって言われたんですが何故でしょうか : nobodyさん [sage] 2018/10/10(水) 16:22:20.86ID:??? 言った人に聞きましょう : nobodyさん [sage] 2018/10/10(水) 17:10:56.68ID:??? 空文字""や"0"を想定しないといけないケースなんでは まぁこれらを文字"列"というべきかどうか…
凡例:
レス番
100 (赤) → 2つ以上レスが付いている
100 (紫) → 1つ以上レスが付いている
名前
名無しさん (青) → sage のレス
名無しさん (緑) → age のレス
ID
ID:xxxxxxx (赤) → 発言が3つ以上のID
ID:xxxxxxx (青) → 発言が2つ以上のID
このページは2ch勢いランキング が作成したアーカイブです。削除についてはこちら 。