PHP質問・雑談スレ4【初心者お断り(ROM歓迎)】 [無断転載禁止]©2ch.net

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

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

前スレ
http://medaka.2ch.net/test/read.cgi/php/1486956982/

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

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

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

2nobodyさん2017/06/29(木) 05:05:56.62ID:???
いちおつ

3nobodyさん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社から同時に

重大な脆弱性が現バージョンから発見されました。こちらでアップデートしたところ、起動ができなくなりました。
至急弊社に来て修正作業をお願いします。なおお金は払わない。また営業に損失が出たので損害請求もします。

4nobodyさん2017/06/29(木) 09:16:40.50ID:???
瑕疵担保責任(かしたんぽせきにん)

瑕疵担保責任のポイント

民法改正で事実上期限が「無制限」になった
バグや設計のミスなどは、瑕疵担保責任
納品物に不具合があれば損害賠償を請求される可能性もある
不具合を指摘されたらすぐに行動をとるべし
軽微なミスでも先延ばししない

http://www.atmarkit.co.jp/ait/articles/1706/26/news014.html
http://itpro.nikkeibp.co.jp/atcl/news/17/052601508/?rt=nocnt

改正法では欠陥に気付いてから1年以内にITベンダーに通知すれば、
通知後5年以内は修正や報酬の減額などを求められるとしている

全ベンダーが泣いた民法改正案を解説しよう その1
http://www.atmarkit.co.jp/ait/articles/1609/14/news009.html
http://www.atmarkit.co.jp/ait/articles/1609/14/news009_2.html
http://www.atmarkit.co.jp/ait/articles/1609/14/news009_3.html

ポイント1:修補や損害賠償、契約解除の期限がなくなる

従来あった「瑕疵担保期間は引き渡しから1年」という考えはなくなる。
条文にある通り、注文者は成果物が契約の目的に適合しないことを発見したら、
その「発見したときから1年以内」ならさまざまな請求ができる。発見が10年後なら、
11年後まで請求可能なのだ。

もっとも、現実のユーザーとベンダーの関係でも、たとえ契約書に「瑕疵担保責任期間は納品から1年と」明記されていても、
「2年目以降は不具合の修正に対応しない」と主張するベンダーはまれだ。多くの場合は、納品から何年たっても、
バグが見つかればユーザーのところに飛んで行き、無償で改修するだろう。

5nobodyさん2017/06/29(木) 09:33:55.83ID:???
ガイキチ

6nobodyさん2017/06/29(木) 09:35:02.39ID:???
飛んでいって無償改修なんてしねーから

7nobodyさん2017/06/29(木) 10:22:20.91ID:???
>>6

じゃあ瑕疵担保責任法で訴えるまでだ。損害賠償請求もする

8nobodyさん2017/06/29(木) 10:23:07.04ID:???
いい加減にしろ

9nobodyさん2017/06/29(木) 10:27:17.18ID:???
お前らこそいい加減にしろ

10nobodyさん2017/06/29(木) 10:56:16.90ID:???
おまえら世間ではペチパーと言われてバカにされているんだよ。

バカにバカと言っているだけだよ

11nobodyさん2017/06/29(木) 11:01:30.56ID:???
友達がいないとこうなるからお前らも気をつけろよ

12nobodyさん2017/06/29(木) 11:18:22.36ID:???
友達いないだけじゃこうはならんわ

13nobodyさん2017/06/29(木) 11:39:41.27ID:???
ペチパーとかいうバカな生き物が何か言ってるwww

14nobodyさん2017/06/29(木) 12:52:25.56ID:???
豊田真由子の新音声公開されたけど
たぶんあんな感じの自分エリート周り糞みたいな思考のやつなんだろう

15nobodyさん2017/06/30(金) 20:32:41.42ID:???
Aを渡すとBに変換する関数
Bを渡すとAに変換する関数
しかしこの関数の中身は同じなのです
例えばAからBをencode
BからAをdecodeとすると
Bをencoderに渡してもAになってしまうのです
こんな関数はおかしいですか?
なんかいい関数名ないですか?

16nobodyさん2017/06/30(金) 20:41:13.31ID:???
前スレ埋めろ
AとBが確実に二分できて機械的に判定可能なのかによる

17nobodyさん2017/06/30(金) 21:03:00.41ID:???
>>16
お遊びで作ったソース難読化です

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);
}

18nobodyさん2017/06/30(金) 23:05:25.39ID:???
今日はム板のスレ立てるまでもない〜スレでくだらないゴミみたいなオレオレ解釈法律談義相手してもらえてよかったね

19nobodyさん2017/06/30(金) 23:30:13.98ID:???
>>17
0-9a-fだけで構成された、しかし難読化を経たものではない $srcが指定されたらどうすんの
ソース難読化なら$srcに<や;が含まれてるかどうかなどによって
自動判別する関数をお前が作るのは自由だし、それは特におかしい関数ではない
しかし、全ては目的、用途、処理次第であるため、
その手の変換および自動判別を行う、汎用的な関数の存在を期待するのはおかしい

20nobodyさん2017/06/30(金) 23:35:13.34ID:???
向こうじゃ話ついていけなくてぺちぱースレに戻ってきたぺちぱー()
法律オジサンちゃんとこっちでしっかり軟禁しとけよ

21nobodyさん2017/06/30(金) 23:46:16.09ID:???
あっちはどこもワッチョイスレなんだよなあ

22nobodyさん2017/07/01(土) 06:52:37.12ID:???
的を得ない自分勝手なオナニー講釈たれるアスペ野郎はどこでも嫌われるんだなw
なんか見ててちょっとお気の毒

23nobodyさん2017/07/02(日) 07:11:14.70ID:???
今日はJSスレで遊んでもらってるんだね

24nobodyさん2017/07/02(日) 07:46:30.35ID:???
なんだ負け惜しみか?

25nobodyさん2017/07/02(日) 16:07:35.43ID:???
ビョーキだな

26nobodyさん2017/07/12(水) 18:00:04.40ID: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;
}

27nobodyさん2017/07/12(水) 18:12:20.00ID:???
>>26
できあいのparser使った方がいいと思う

28nobodyさん2017/07/12(水) 19:07:05.55ID:z8l7m4aE
>>27
レスありがとうございます
できあいのparserでも結果は同じでした
マルチパートの本文の取得方法がわかりません…
よろしくお願いします

29nobodyさん2017/07/12(水) 19:43:28.53ID:???
>>28
なにをどう試してどう失敗したかを書くと
答えやすいと思うよ

30nobodyさん2017/07/12(水) 21:16:20.79ID:???
\r\n\r\nで区切ってみりゃいいんじゃね
共通ヘッダ テキストヘッダ テキストボディ 添付1ヘッダ 添付1ボディ 添付2ヘッダ 添付2ボディ・・・
みたいな感じになってる気がするけど
メールのことは詳しくないしRFC読むの面倒だから適当回答ですまんが

31nobodyさん2017/07/12(水) 21:27:52.08ID:???
あ、よく見たらboundary情報が書いてあった

32nobodyさん2017/07/12(水) 23:13:57.16ID:???
parser自分で書いてるなら
添付ファイル付きメールをparserと同じように手で解いていって確認すりゃいいだろよ・・・

33nobodyさん2017/07/13(木) 23:46:01.51ID:???
どうやって?

34nobodyさん2017/07/14(金) 10:08:54.80ID:???
>>28
> できあいのparserでも結果は同じでした
何使ったの?

35nobodyさん2017/07/14(金) 10:22:30.46ID:???
定期的に出没するカスだよ

36nobodyさん2017/07/14(金) 22:30:07.02ID:???
とカスが申しております

37nobodyさん2017/07/15(土) 19:32:54.46ID:+oN2dI32
シングルトンパターンってなぜ必要なんでしょうか?

例えばとあるソースでHttp通信(RESTAPI通信)を行っているクラスがシングルトンパターンで
作られているのを見かけたことがあったんですが
複数のインスタンスが作られると何がまずいんでしょうか?

38nobodyさん2017/07/15(土) 21:09:19.25ID:???
なぜ必要か
  どんな状況にも通じる絶対的な必要性などないし使われてる状況による

とあるソースで 〜〜 何がまずいか
  んなもん書いた奴に聞けマジで

39nobodyさん2017/07/16(日) 04:25:56.15ID:2UeiIHQZ
>>37

dbやcurlなどの接続を開始するためにコネクタクラスを毎回newしていると、
無駄にメモリ消費が増える。
インスタンスの共有が問題にならない局面でのみ有効な考え方。

40nobodyさん2017/07/16(日) 23:51:12.19ID:???
たいてい、DBマネージャーとか、何々マネージャーと言う、
何かを管理するオブジェクトは、シングルトンにする

もし、2つあると、管理できないから

41nobodyさん2017/07/18(火) 02:33:26.59ID:Ro/ZKJYI
>>40
管理できないのはhogefugaマネージャの実装の問題で(仕様とも言えるが)、
本質的にシングルトンにすべきかどうかの問題じゃないと思うが。

42nobodyさん2017/07/18(火) 04:45:36.30ID:???
正論
だがそれ以前にシングルトンについての質問であってphpの質問ではないように思われる

43nobodyさん2017/07/18(火) 15:39:52.79ID:???
シングルトンって同じリソース使いまわす時に使うんでないの?
ユニキャストやらマルチキャストやらスレッドやら非スレッドやら同期やら非同期やら
その辺で使い分けるようなきがするがよくわかっていない

44nobodyさん2017/07/18(火) 23:16:13.87ID:???
>>39
>>37

>dbやcurlなどの接続を開始するためにコネクタクラスを毎回newしていると、
>無駄にメモリ消費が増える。
>インスタンスの共有が問題にならない局面でのみ有効な考え方。

毎回newしても
ガベージコレクタがいい感じにメモリ解放してくれるからあまり問題にはならないんじゃないの?
違うの?
だれか詳しい人教えて!

45nobodyさん2017/07/19(水) 01:31:28.00ID:???
新しい手法だな

46nobodyさん2017/07/20(木) 06:30:51.15ID:???
インスタンスを作っては削除し、これを繰り返すのは、
ループ内で、10万回もするなら、性能低下を引き起こす

回数が少なければ、気にならない

47nobodyさん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);
}

48nobodyさん2017/07/20(木) 18:59:56.25ID: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からエラーメッセージ追っとる;;;

49nobodyさん2017/07/21(金) 02:37:43.22ID:Jz40TgFn
>>44
PHPやJAVAのガベージコレクションはどこまで信頼できる?
タイミングを含め盲目的な依存は危険だろ。

>>46
10万回って数を持ち出してくるとは恐れ入るなw
一般的にDBに設定されてる同時最大接続数を知らないとしか思えん。
貴重なリソースを一人占めするんじゃないぞ。

50nobodyさん2017/07/21(金) 06:27:30.33ID:???
phpの話というよりDBの話になってるような

gcがどんな感じでも、1つのプログラムが長時間実行され続けることが
多くないphpにおいては、DB接続とgcはあんまり関係ない気がするんだが
javaのgcとは状況が色々と違うべ
むしろ全体でコネクションプーリング考えなきゃかなとかそっちのほう

51nobodyさん2017/07/21(金) 16:02:01.16ID:ap6/579G
お前ら手動でビルドしてるのかよー。頼むから教えてくださいお;;

52482017/07/21(金) 16:07:32.65ID:ap6/579G
お前らとか言ってすんませんした。pecl詳しい人居たら教えてくださいよろしくお願いします。

53482017/07/21(金) 16:57:09.81ID:ap6/579G
すいません自己解決しました。。

54nobodyさん2017/07/22(土) 21:48:31.78ID:???
マルチのキチガイ初心者

55nobodyさん2017/07/26(水) 07:53:31.11ID:???
HLSネイティブサポートがSafariだけとかで、
そんな中でもいち早く対応プレイヤー登場させたクロスプラットフォームなFlashさんもとうとう死ぬんか・・・
これからが真のブラウザ競争の幕開けやなぁ
ブラウザにネイティブPHPサポート入れたら流行るでえ

56nobodyさん2017/07/26(水) 16:25:06.78ID:???
なんでcsv関係関数もSplFileObjectも全部、改行コードの指定がないんだろう

57nobodyさん2017/07/26(水) 18:35:13.70ID:???
>>56
> なんでcsv関係関数もSplFileObjectも全部、改行コードの指定がないんだろう
別に指定しなくても読めるから

58nobodyさん2017/07/26(水) 20:09:16.13ID:???
>>57
enclosureだってRFC的にはencloseは " だから指定なくても読めるけど変更可能じゃん?
エスケープ文字は…\と""連続があるからまあわかる
区切り文字はtsvを読みたい人もいるだろうからなのかな

59nobodyさん2017/08/08(火) 11:52:15.62ID:???
strpos(string haystack, string needles)
なんだよhaystackって干し草の山?意味わからんでえ

60nobodyさん2017/08/08(火) 20:00:46.14ID:???
while (!feof($fp)) {
 fgets($fp);
}
fclose($fp);

これが終わらない$fpにはどうしたらベストですかね?

61nobodyさん2017/08/08(火) 20:25:54.45ID:???
EOFが返ってこないもの(/dev/zeroとか/dev/urandomとか)を読むなら終了条件がEOFまで読んだらってのがおかしい

62nobodyさん2017/08/08(火) 20:33:25.81ID:???
>>61
すみません説明不足でした
fsockopenで開いたwebサーバですね
サーバによっては返さないみたいで
その場合どうしたらいいのかなと

63nobodyさん2017/08/08(火) 20:43:22.70ID:???
え、keep-aliveの話?
http(s)で繋ぐだけならfile_get_contentsやcurlでいいじゃん
ストリーミングだっつーなら・・・・・・

64nobodyさん2017/08/08(火) 21:05:18.91ID:???
あーkeep-aliveですか
てことはconnection: close送ればいいのかな

65nobodyさん2017/08/08(火) 21:13:08.94ID:???
fsockopen使っててconnection: close送ればいいのかな、って
自分でkeep-aliveを明示的に送ってんじゃないんかい?

66nobodyさん2017/08/08(火) 21:15:53.74ID:???
>>65
送ってないです
connectionは未指定でした

67nobodyさん2017/08/08(火) 21:36:05.44ID:???
とりあえず低レベルに手を出すなら今どうなってるか自分で確認せんと
聞くならなんのリソースでどんなプロトコルでどんなリクエスト送っててどういう状況になってるかはじめから書かんと
HTTP/1.1を送ってて1回1回切りたいならkeep-aliveを指定してなくてもconnection: close
cURLでいいような気がするが

68nobodyさん2017/08/08(火) 22:57:30.87ID:???
>>67
ありがとうございます
connection: close送ってもだめでした
いうこと聞いてくれないサーバなのかもしれません
file_get_contentsだとcontext指定しても期待した結果が返って来ず
cURLは面倒くさそうだったのでスルーしてましたがcURLでも試してみます

69nobodyさん2017/08/08(火) 23:58:02.89ID:???
guzzlehttp/requestとかじゃダメなんか

70nobodyさん2017/08/09(水) 06:55:29.66ID:???
guzzleって使ってなんかcurlにはない良いことあるの

71nobodyさん2017/08/09(水) 10:35:03.45ID:???
keep-aliveって、こっちがcloseしたら相手がsocketを破棄するとかそういうのじゃないよ

72nobodyさん2017/08/09(水) 13:44:54.84ID:???
そうなのか?だとしたら知ったかしてて悪かった

73nobodyさん2017/08/09(水) 15:21:18.33ID:cGBSy5e7
HTTPなら読み込み終了条件はContent-Lengthヘッダがあればそのサイズだけ読んだとき, Transfer-Encoding:chunkedのときはサイズ0の空チャンクを読むまでだろ
規格外の規約で通信するなら知らんが

74nobodyさん2017/08/09(水) 17:12:26.79ID:???
タイムアウトを実装

75nobodyさん2017/08/10(木) 06:40:33.36ID:???
>>73
それ以外のケースある?その2つだけ?

76nobodyさん2017/08/11(金) 20:06:35.60ID:???
>>75
RFC7230とRFC7540あたりを読む

77nobodyさん2017/08/11(金) 20:10:28.24ID:???
>>76
そしてわかったことを俺に教える

78nobodyさん2017/08/11(金) 20:12:30.75ID:???
>>76
おう、面倒だから代わりに読んできてくれや
お前さんのスキルアップに一役買うためにネチゴロして待ってんよ

79nobodyさん2017/08/11(金) 20:20:12.88ID:???
やーよ俺はcURLとかguzzlehttp/requestを使う

80nobodyさん2017/08/12(土) 03:07:47.41ID:???
curl使えって言った時点で話終わっちゃうじゃん

81nobodyさん2017/08/12(土) 03:26:44.32ID:???
今メール送るのってどうしてます?

82nobodyさん2017/08/12(土) 04:02:01.13ID:???
fsocketとcurlでcurlの方が面倒とか言っちゃうんだから察しろ

83nobodyさん2017/08/12(土) 05:27:54.02ID:???
実際面倒だろ
カスタマイズ性には劣るが生のhttpヘッダ送るほうが簡単に決まってる

84nobodyさん2017/08/12(土) 05:45:54.17ID:???
ええ・・・

85nobodyさん2017/08/12(土) 08:39:04.21ID:???
生じゃないと安心できない

86nobodyさん2017/08/16(水) 00:40:58.25ID:FXSi5oh2
自宅にWebサーバ立てたのですが
FireWallとかよくわからないので
そのまま自作Webサイトを公開しているんですが
FireWallあるのと無いのでは何が違うんでしょうか?
一応現時点では80番ポートのみ開放しているのでそれで十分かと思ってるのですが
想定される不正アクセスはどのようなものがあるのでしょうか?

87nobodyさん2017/08/16(水) 01:03:05.64ID:???
それらの質問はphpと直接関係あるのでしょうか?

88nobodyさん2017/08/16(水) 01:10:44.19ID:???
>>86
手書きで ../../ とか親ディレクトリをたどられないかとか、
存在しないURL・ファイル名指定されて index一覧をダダ洩れさせてしかも親へ移動できちゃわないようにしっかりチェックしてね
まぁ面倒なら .htaccessでがちがち設定にしとけばいいよ

89nobodyさん2017/08/16(水) 01:40:26.18ID:+9VPpAQA
>>88
それってFireWallとは関係ない話なんだがw

90nobodyさん2017/08/16(水) 02:06:01.90ID:???
>>89
>想定される不正アクセスはどのようなものがあるのでしょうか?

って書いてあるからその状態(port80のみ開放)ではどんないたずらを速攻でされ易いかという意味で合ってるだろ

91nobodyさん2017/08/16(水) 02:08:35.30ID:???
マジでphp全然関係ねえ

92nobodyさん2017/08/16(水) 02:14:51.36ID:???
それはそうだwディレクトリ掘りの後にクエリ捏造でphpの出番が来るけどな

93nobodyさん2017/08/16(水) 02:18:43.56ID:???
php側のセキュリティはphpコード側で何やってるかがまず問題だしなあ

セキュリティよく分からないのに自宅鯖とか
愚劣を極めてるやつにピンポイントであれこれ教えても無意味

94nobodyさん2017/08/16(水) 02:34:51.22ID:???
スレ違いなの分かってるけどどうしてもこれだけは言っておきたい
普通の意味でファイアウォールと言ったらTCP/UDPレイヤでの操作だけども, 80と443以外のポートはきちんと閉じていますか, と
22とかまともに設定せずに開放してたら踏み台にされてるんじゃねーのか

95nobodyさん2017/08/16(水) 09:35:32.54ID:???
ルーターはハードウェアファイアーウォールだし、
サーバ側にソフトウェアファイアーウォールが入ってなくても問題はない。
外に持ち出しして、不明な構成の外部ネットワークからつないだりしたら問題になるかもしれんが。
ただ↑の指摘のようにsshは気軽に誰でもアクセスできちゃうと、
パスワード突破されたらサーバが乗っ取られるので、
ポートは22以外を使うのと(スキャンされにくい1024以降)、lan内と外から使うかもしれない一部プロバイダ以外からは遮断する。
その細かな制御は高性能のルーターじゃないと出来ないので、ソフトウェアファイアーウォールが必要になる。
まぁWindowsサーバだろうし、sshとかも入れてなさそうだけど。なんにしてもスレチだな。

96nobodyさん2017/08/16(水) 09:39:42.33ID:???

97nobodyさん2017/08/19(土) 15:17:36.82ID:???
xxx.xxx.[0-255].[0-255]正規表現でこのような指定は出来ないので、
if ($yourip == fn("xxx.xxx.0.0/16"))
このようなサブネットマスクでIPを調べれる関数とかありませんでしょうか?

98nobodyさん2017/08/19(土) 15:57:43.95ID:???
>>97
自分で書けよ

99nobodyさん2017/08/19(土) 16:04:01.93ID:???
IPアドレスが指定した範囲内にあるかどうか判別する - Qiita
http://qiita.com/ran/items/039706c93a8ff85a011a

こんなの?

100nobodyさん2017/08/19(土) 16:20:11.70ID:???
>>98-99
ありがとうございます
さすがにまんまなものはなかったんですね
>>99さんのリンクのを使わせていただきます

101nobodyさん2017/08/19(土) 20:11:02.89ID:???
すげー細かいことだけどxorしてからシフトすればシフト1回で済む
PHPでandとxorどっちが早いかは確かめていない

102nobodyさん2017/08/20(日) 01:48:19.58ID:???
もっと細かいことだけど
れるられる
が気になる

103nobodyさん2017/08/20(日) 09:36:55.83ID:???
れろれろ

104nobodyさん2017/08/24(木) 20:16:03.54ID:???
自サーバの指定ポートが使われてる(LISTEN状態)かチェックする方法ってありますか?

105nobodyさん2017/08/24(木) 23:47:48.82ID:e59+rI+5
もしかしたらすれ違いかも知れませんが気にせず質問させていただきます

先日パソコンが壊れました
電源をつけると5秒後に再起動を繰り返してしまいます
原因がわからないのですが
どなたか対応方法などご存知の方いたら教えてください

106nobodyさん2017/08/25(金) 02:32:32.38ID:???
HDDかマザーかメモリーが壊れてるんだろ

107nobodyさん2017/08/25(金) 03:12:35.66ID:???

108nobodyさん2017/08/25(金) 04:29:08.22ID:???
>>107
エラーを出せばわかるのですが実行前に検出したいです
file_get_contentsの前にfile_existsをやるようなイメージです

109nobodyさん2017/08/25(金) 04:36:31.07ID:???
よくわからんけど netstat -an をexec()したら?

110nobodyさん2017/08/25(金) 05:05:45.19ID:???
>>109
エラー制御とかErrorException投げるようにすればいいのですが
fsockopenで開いてないポートに接続するとE_WARNINGが出るのがいまいちで
$errstr参照できるようにしてるのだからFALSE返せばいいのに・・・
説明には
>hostname が有効なドメインでない場合は E_WARNING をスローします。
って書いてますけどhostnameは有効なのにportとセットになっちゃってるようですね

netstatコマンド叩く案で対処しようと思います
どうもありがとう

111nobodyさん2017/08/25(金) 12:09:34.80ID:+7AGwzz6
こりゃあ面白いわ!!
https://blogs.yahoo.co.jp/antseq01/15073181.html

112nobodyさん2017/08/30(水) 19:27:46.70ID:???
tmpfile() で作ったファイル名を知りたい

113nobodyさん2017/08/30(水) 19:39:21.19ID:???
>>112

一時ファイルのパスを知る必要のある局面では、
tempnam()で一時ファイルを作成してから、
fopen()でオープンする。

tempnam()は単に文字列としてのパスを生成するだけでなく、パスの競合を避ける為に一時ファイルを作ることに注意。

114nobodyさん2017/08/30(水) 20:28:44.54ID:???
$fp=tmpfile();
print stream_get_meta_data($fp)['uri'];

115nobodyさん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系のしかありませんが
非英語圏、非日本語圏の場合はどうするのかなど
これが本当に正しい検出順ってのがありましたら教えて下さい

1161152017/09/09(土) 20:10:54.83ID:???
やっぱみなさんもよくわかってないで設定してるかんじなんですかね?

117nobodyさん2017/09/09(土) 20:18:41.74ID:???
今どきはutf-8が先頭じゃね?

118nobodyさん2017/09/09(土) 20:38:35.05ID:???
負荷だって問題になるし誤判定防止の観点も重要だし、何を優先したいかじゃないんか
つか自動検出したいって対象というか目的が限られるよな

119nobodyさん2017/09/10(日) 16:35:08.02ID:???
完全な自動検出なんてそもそも無理だし>>115が何を以って正しいとするのか不明だしアホかと

120nobodyさん2017/09/18(月) 04:42:58.32ID:???
PHPコミュ死亡したの?PHP7も特に話題にもならなかったしついにPHPも終焉か
目新しいものもないし仕方ないか・・・

121nobodyさん2017/09/18(月) 13:00:42.35ID:???
死亡したことにしたいならそうすればいいんじゃないかな

122nobodyさん2017/09/19(火) 10:33:16.80ID:???
PHPってバイナリごと配布しておk?

123nobodyさん2017/09/19(火) 11:02:07.42ID:???
LISENCEファイルの本文冒頭に書いてあるぞ

124nobodyさん2017/09/19(火) 11:02:22.40ID:???
LICENSE

125nobodyさん2017/09/19(火) 12:45:16.25ID:???
oh miss spell

126nobodyさん2017/09/20(水) 06:59:21.00ID:???
よくわからないからxampp参考にするか
.\licenses\phpに入ってるな
.\phpにも入ってるけど
くっそめんどくせえ

127nobodyさん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で必要項目全チェックしたり
なかった場合に例外なり出したりとかするんでしょうか?

128nobodyさん2017/09/23(土) 10:19:41.47ID:???
プロの皆さんは、とか臭い
自分で考えろ

129nobodyさん2017/09/23(土) 12:11:13.07ID:???
noticeが出ない程度にissetとnullセットをしつつ
実際に実行したときに問題が起きて終了するか
データのvalidationまでやって実行前に正しいか事前にチェックするか
ちょうどコンパイラとインタプリタの概念に近いもんだと思うけど面倒だから前者だな

130nobodyさん2017/09/23(土) 12:31:50.42ID:???
noticeはだめでwarningはいいんだね

131nobodyさん2017/09/23(土) 14:14:29.35ID:???
……?例外投げるとか、Fatalで終了させるとかそういうのじゃないのか

132nobodyさん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が効かないのが気持ち悪くて。。。

1331322017/09/23(土) 20:32:44.12ID:???
補足
.user.iniに書いているのは
post_max_size=15M
のみです

134nobodyさん2017/09/23(土) 21:06:12.60ID:???
そのPHPの実行環境はどれなの?
CLIかmod_phpかphp_fpmか

135nobodyさん2017/09/23(土) 21:12:50.05ID:???
Webサーバ通してphpinfo見てて、
php.iniでuser_ini.*を編集してからWebサーバ再起動してなかった
ってオチじゃないだろうな

136nobodyさん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と表示されています

137nobodyさん2017/09/23(土) 22:30:26.81ID:???
>>136
http://php.net/manual/ja/configuration.file.per-user.php
> このファイルは、CGI/FastCGI SAPI の場合にのみ処理されます。

> この機能は、PECL htscanner 拡張モジュールを置き換えるものです。
> Apache モジュールとして PHP を実行している場合は .htaccess ファイルを使えば同じ機能を実現できます。

138nobodyさん2017/09/24(日) 08:20:24.15ID:???
いまどきmod_phpなんて使ってるから

139nobodyさん2017/09/24(日) 14:43:47.07ID:???
set_iniで書く

140nobodyさん2017/09/25(月) 06:46:06.55ID:???
アップローダーで、
「名前、コメント、URL、アップロード時刻、ファイルサイズ」の4つを|文字区切りでログしていて、
名前 コメントは$_POSTで|文字を使うことが出来ない、
URLはオリジナルファイル名を破棄してuniqidを付与したもの、
アップロード時刻 ファイルサイズはtimeやfilesizeでシステムからのものという仕様になっています。
これらをhtmlに表示する場合、
システム側が作成する、[a-f0-9]のファイル名(URL)や、
intであるはずのtime(dateで変換して読みやすく表示)やfilesizeは安全な値だと思うのですが、
これらをhtmlspecialcharsする理由はなんなんでしょうか?

141nobodyさん2017/09/25(月) 07:21:56.76ID:???
>>140
分けるのがめんどいから一括でサニタイズしているだけだと思う

1421402017/09/25(月) 08:08:18.75ID:???
>>141
なるほど、ありがとうございます。

143nobodyさん2017/09/25(月) 13:40:09.72ID:???
366 :nobodyさん 2017/05/29(月) 16:07:39.16 ID:6v4UcGhE
今回の民法改正、ソフトウェア受託開発の場合、(検収後ではなく)バグ発見後1年瑕疵担保責任があるということで、地獄かよ、と思ったが、
元々問題が起きがちな受託案件がビジネス的に成立しなくなることで強制的に業界再編につながるなら良いことかもと思うようになった。
一部で地獄を見ても。
https://twitter.com/yukihiro_matz/status/869061879389343744

367 :nobodyさん 2017/05/29(月) 16:28:06.55 ID:6v4UcGhE
ニュース - 改正民法が成立、「瑕疵担保責任」などシステム開発契約に影響大:ITpro
http://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
>>378>>379>>375
客が瑕疵担保責任法の法改正を知ってくると思うから、今後5年無償保証をお願いされるだろう
営業がそれでも仕事を取ってこれるか?たぶん無理だろう。無限の直していたら赤字になる。
こういう保守に弱い言語、ころころ仕様が変わる言語は仕事として発生しなくなってくる。
これは変わり目だ。お前らも早く逃げたほうがいいぞ。RubyやPHPなど動的言語は確実に廃れる。
保守に強い言語のみ生き残れる。

144nobodyさん2017/09/25(月) 14:08:58.86ID:???
お前少しスレが伸びると登場するよな

145nobodyさん2017/09/27(水) 19:56:39.79ID:???
保守に強いのって何だろう?
Java?

146nobodyさん2017/09/27(水) 20:10:15.96ID:???
無駄にコード長くなる冗長なJavaが保守に強いってか
つうかこのスレ向けの話題じゃないしPHP関係ないからム板で聞きなさい
http://mevius.2ch.net/tech/

147nobodyさん2017/10/02(月) 16:41:56.90ID:???
作ったコンソールアプリをwindowsでバックグランドで動作させるにはどうしたらいいですか?
cmd画面だしっぱで動作させることは出来るのですが、
タスクトレイには表示させてもいいですが、ついうっかりバツボタン押しちゃうので、
誤操作防止にもタクスバーに残らないようにしたいです。
切るときはタスクトレイから止めるか、タスクマネージャーから直接止めるという感じにしたいです。
可能でしたら方法教えてください。お願いします。

148nobodyさん2017/10/03(火) 02:44:51.89ID:???
php-win.exeで起動させるとcmd画面が表示されない

1491472017/10/03(火) 22:58:08.51ID:???
>>148
出来ました。どうもありがとうございます。

150nobodyさん2017/10/05(木) 00:05:56.71ID:???
デバッガ付きのIDEってないですか?
XAMPP入れたりApacheやPHPの設定するのが大変です
しかもしょっちゅうおかしくなって再起動必要だし・・・

151nobodyさん2017/10/05(木) 06:54:42.12ID:???

152nobodyさん2017/10/08(日) 12:02:16.66ID:???
xamppで質問なんですが、スレチだったらすいません
php.iniで
include_path = "D:\xampp\php\lib\smarty"
と設定した場合、smarty内のphpファイルを全部読み込むということなんでしょうか?

153nobodyさん2017/10/08(日) 12:17:16.23ID:???
>>152
検索パスであって勝手に読むわけではない

あと今はグローバルにインストールしてinclude_path指定するよりcomposerでプロジェクト毎にインストールするのが普通

154nobodyさん2017/10/08(日) 12:28:27.60ID:???
>>153
あー、なるほど
つまりパスを登録しておけば
require( 'Smarty.class.php' );
で読み込める事ができて楽、ということなんですね

後、パスを複数登録した時、同じ名前のファイルがあるとどうなるのでしょうか

155nobodyさん2017/10/08(日) 12:50:34.11ID:???
>>154
「パス 優先順位」でググれ

156nobodyさん2017/10/08(日) 13:03:37.64ID:???
>>155
ありがとうございます!

157nobodyさん2017/10/08(日) 14:26:08.75ID:???
>>154
一つ上の階層をインクルードpathにして
フォルダで分けるそしてrequiireを
require( 'smarty&#165;Smarty.class.php' );
とする

158nobodyさん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)

159nobodyさん2017/10/23(月) 19:03:31.63ID:???
php ver7は、odbc_connectは実装されていないの?
関数がないっていうエラーになるんだけど。

160nobodyさん2017/10/23(月) 19:18:56.78ID:???

161nobodyさん2017/10/23(月) 19:22:39.89ID:???
>>160
はい、知ってます。
が、実際はサポートされていないようなのです。

162nobodyさん2017/10/23(月) 20:50:45.96ID:???
>>161
エクステンションなんだからお前さんの環境で有効になってるかぐらい確認しろ

163nobodyさん2017/10/23(月) 21:46:47.32ID:???
ご自分の設定ミスなのにサポートされてないとか言っちゃったらそりゃ反感買う罠w

164nobodyさん2017/10/24(火) 14:37:30.67ID:???
おま環は酷い…

165nobodyさん2017/10/24(火) 20:10:43.03ID:???
俺環は、Windowsなんだけどネ。

php v5 では、エクステンション無くてもodbc関数は動くのよ。
php v7 では、だめなの。
んで、php 7 のextフォルダ見たけど、それらしきファイルは入ってないの。


PHPのオンラインマニュアルには、

Windows 版の PHP には この拡張モジュールのサポートが組み込まれています。
これらの関数を使用 するために拡張モジュールを追加でロードする必要はありません。

て書いてあるし。
文句は甘んじて受けるから、odbc関数動かす方法教えてくれ。

166nobodyさん2017/10/24(火) 20:52:02.86ID:???
いや、、、php.iniは確認したの? ; をちゃんと外した?

167nobodyさん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

168nobodyさん2017/10/25(水) 06:48:22.49ID:???
すまん。
php_odbc.dll ってのがあったw

169nobodyさん2017/10/25(水) 07:43:05.92ID:???
確認しろと言われても確認すら出来ない
しかもちゃんと謝れない

ゴミクズですわ

170nobodyさん2017/10/25(水) 07:45:37.79ID:???
程度がひどいなあ…

171nobodyさん2017/10/25(水) 10:18:40.93ID:???
自分よりもマニュアルが間違ってるって発想する人間だし

172nobodyさん2017/10/26(木) 14:44:35.78ID:???
www.example.comみたいなホスト名からドメイン名の部分をとりたいです。
最初に考えたのはドットで配列に区切って後ろの2つをくっつけるですが、
ne.jpとかのドメインを思い出して、その場合3つをくっつけないといけません。
既知のドメインをリスト化するのは大変だし、新しいものに対応するのも難しいのですが、
なんかいい方法や関数ないでしょうか?
ne.jpやco.jpがneやcoの部分が2文字まで、exampleの部分が3文字以上じゃないと無理とかなら、
まだやりようはあるんですが、そういったルールはないですよね?

173nobodyさん2017/10/26(木) 18:41:59.01ID:???
2つとか3つとかそれぞれで
checkdnsrrでチェックするとか

174nobodyさん2017/10/26(木) 19:01:32.40ID:???
>exampleの部分が3文字以上じゃないと無理とかなら、

三文字以上じゃなきゃ取れなかったと思うから2以下なら3つっくっつければいいんじゃね?

1751722017/10/26(木) 21:27:47.65ID:???
>>173-174
>>173さんの方法でうまくいきました。
レスどうもありがとうございました。

176nobodyさん2017/10/31(火) 06:58:11.21ID:???
無名関数でuseというキーワードがありますが、これって引数で渡すのと比べた違いは、
>引き継がれた変数の値は、関数が定義された時点のものであり
これだけですよね?
両者とも参照渡しは可能で、globalのように親スコープの変数を変えることもできないので。

PHP5では無理なようですが即時関数のような振る舞いを期待して、
定義後にすぐ呼び出すならuseキーワード使ったほうがいい感じですかね?

177nobodyさん2017/10/31(火) 13:01:16.18ID:???
>>176
特に理由がなければuseするわ
引数にすると2回書かにゃならんし

あと即時関数はPHP7からは
(function (...) {...})(...)
で可能だしPHP5でも
call_user_func(functuion (...) {...}, ...)
で可能だったと思うが

1781762017/10/31(火) 19:36:45.24ID:???
>>177
ありがとうございます。
やっぱ基本useがいいですね。自分も書いてて2回書くのは気になりました。
ただ書いてて気づいたのは、$thisはuseで渡せないようなので、
その時はやむを得ない感じかなと思いました。

call_use_funcは知りませんでした。どうもありがとうございます。
JavaScriptもやっていて、無名関数の書式に慣れてるし、
もし今使ってるレンサバがPHP7対応したら置き換えやすいので、
とりあえずこのままで行きたいと思います。

179nobodyさん2017/11/03(金) 16:57:07.36ID:???
http://php.net/manual/ja/class.domelement.php
DOMクラスに多いんですが
publicでreadonlyなプロパティがいっぱいあります
ためしに自分のクラスにpublic readonlyとか書いてみたらparse errorになりました
マジックメソッドの__getを使うとreadonly実装出来るようなこと書いてて出来るには出来るのですが
これってgetterのオートローダーみたいな感じで
実質中身はprivate protectedなプロパティにアクセスしてるだけだと思うのですが
publicでreadonlyなプロパティというのは実装可能なんでしょうか?

180nobodyさん2017/11/03(金) 17:46:13.00ID:???
>>179
Cでエクステンション書けばPHPの文法を超えることが実現出来る

181nobodyさん2017/11/03(金) 18:06:42.77ID:???
>>180
なるほど
やっぱりPHPだけじゃ無理でそういうレベルの話だったんですね
DOMElement->tagName変えようとしたらmain()とかでエラー出てたので
なんかそんな感じはしました
レスどうもありがとうございました

182nobodyさん2017/11/03(金) 18:26:11.55ID:???
でもまぁreadonlyプロパティとか欲しいよね実際

183nobodyさん2017/11/04(土) 00:09:02.36ID:???
constもいらなくなっちゃうな

184nobodyさん2017/11/05(日) 10:57:46.19ID:9c35x3aK
飢餓ベネズエラ「1600%インフレ率」で仮想通貨が生活の柱|ビットコインマイニング(採掘)で生き残る
http://virtualmoney.jp/I0001275
「ビットコイン」新世界のベネズエラ:自由を求める、採掘者たちの反逆
https://www.fuze.dj/2017/01/venezuela_mining.html
ベネズエラ、ビットコインマイナーが10万人規模に
http://btcnews.jp/5c5uq4ei13034/
ジンバブエではビットコインが80万円?自国通貨がインフレしている国の仮想通貨需要について
http://coinpost.jp/?p=5803
ビットコインとは?投資で儲かる仕組みと危険性を分かりやすく解説
https://enjoyrock.jp/bitcointoha-4370
ビットコイン最高値更新中! 〜財政破綻とビットコイン〜
http://silver-dream.info/virtual.currency/?p=213
ビットコイン採掘(マイニング)で個人が稼ぐ方法・スマホで可能?
https://bittimes.net/news/3770.html

185nobodyさん2017/11/14(火) 14:49:47.97ID:???
if (!preg_match('/regex/', $arg))
{
 throw new xxxException();
}

LogicException系ですが、
引数が期待する値でないのでこれはInvalidArgumentExceptionですか?
それとも定義したデータドメインにあってないのでDomainExceptionですか?
いまいちExceptionの使い分けがわかりません。

186nobodyさん2017/11/14(火) 22:59:01.79ID:???
>>185
InvalidArgumentExceptionのドキュメントを読むとTypeError相当のものに見える
DomainExceptionのサンプルからもその用途にはこちらが向いているだろう

// サンプルなんだろうけどその判定式はstrposが最良では

187nobodyさん2017/11/15(水) 12:55:13.16ID:???
>>186
'/'.preg_quote($regex, '/').'/'と書くべきでしたね。
ややこしくしてすみません。
DomainException使おうと思います。
レスどうもありがとうございました。

188nobodyさん2017/11/17(金) 01:05:40.09ID:pCghqI8+
なんで標準Exceptionだけで全てを仕分けしようとしてるん…

189nobodyさん2017/11/17(金) 02:33:45.51ID:???
じゃ>>187に例外命名してみ
たぶん無駄に終わるだけだから

190nobodyさん2017/11/25(土) 18:53:56.05ID:zV7O0yGe
mysqlなんですが
外部結合などの依存関係を無視して強制的に
データを削除したいんですがどうしたら良いですか?

191nobodyさん2017/11/25(土) 21:39:26.35ID:???
mysqlですかそうですか

192nobodyさん2017/11/25(土) 21:45:16.13ID:???
db板ってのがあったような

193nobodyさん2017/12/01(金) 10:17:37.90ID:???
pcntlが有効になっていない環境で、
Aさんがsleepしているのを Bさんが起こす
ということをしたいのですが、どうしたらよいでしょうか

pcntlがあればAさんはsignalハンドラ定義してsleepして
BさんがSIGUSR1でも投げればよいのですが・・・

194nobodyさん2017/12/01(金) 20:36:51.33ID:ZfGIb43l
いや〜噂には聞いてたがさ
F/Wも増えてるしphp開発の話も多いし
大丈夫だろうと思ったんだよ

実際にphp屋に転職したらマジ吐きそう・・・

195nobodyさん2017/12/02(土) 14:06:37.01ID:???
>>194
グダグタシステムのメンテとか?

196nobodyさん2017/12/02(土) 19:05:55.95ID:wRelxMGw
今時PHPに固執してる会社なんて
スパゲッティ屋に決まってるだろ

さっさとpythonかgolangやってる会社に転職しろ

197nobodyさん2017/12/02(土) 19:12:10.34ID:wRelxMGw
まともな国公立の情報工学部出身者(自然言語処理系)ならpythonがデフォだから
pythonメインの会社は技術レベルが高い(一昔前はPerlだったが)
そんなpythonプログラマが速度や省メモリ性能、並列化の問題に直面すると選ぶのがgolang
こっちは更に技術レベルが高い(上に先見性もある)

http://isucon.net/archives/51000131.html
ISUCON(いい感じにスピードアップコンテスト)では
本戦出場の53.3%がgolang使い

198nobodyさん2017/12/02(土) 19:13:22.27ID:wRelxMGw
※PHP組は予選で淘汰された

199nobodyさん2017/12/02(土) 19:14:32.65ID:???
pythonも淘汰されてるやんけぇ!
Ruby以下やん

200nobodyさん2017/12/03(日) 04:40:18.09ID:???
PHPはインタプリタ言語で開発速度優先
Goはコンパイラ言語で実行速度優先
一長一短だぞ
Goのコンパイル時間はC言語と比べるとめちゃ早いが
インタプリタ言語よりは遅い

201nobodyさん2017/12/03(日) 07:55:49.90ID:???
kuinって言語のコンパイルが爆速だったな

202nobodyさん2017/12/03(日) 15:58:47.22ID:???
kuinは流石に泡沫言語すぎるな
githubで公開されてない、萌え絵を全面に出してる時点で
評価は得られないだろう

203nobodyさん2017/12/03(日) 18:03:11.48ID:???
一つだけ言えることは

GOは糞

204nobodyさん2017/12/03(日) 18:05:18.15ID:???
Goむずかしいやん
PHPくらいのがチンパンにはちょうどいいんや

205nobodyさん2017/12/03(日) 18:11:45.82ID:???
>>204
わかる
なんつーかこう、肌に合ってる

206nobodyさん2017/12/03(日) 18:37:04.84ID: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()

こっちのほうが可読性高くね?

207nobodyさん2017/12/03(日) 20:04:57.68ID:???
PHP8出るんか

208nobodyさん2017/12/04(月) 13:31:21.58ID:???
GOは新言語が取り入れるべきヌル安全性がない
これは糞

209nobodyさん2017/12/04(月) 19:08:57.02ID:???
>>207
そうなの?

210nobodyさん2017/12/09(土) 14:41:18.85ID:Dbh0aDdH
自宅鯖でWordPressを動かしてるんだが、ログイン状態でPCかブラウザがクラッシュして再起動すると、必ずログアウトされてる
PHPってブラウザ再起動したらセッション無効にするみたいな設定あったっけ?
どういう仕組みでこうなるのか調べたけど案外情報が無くてわからんかった

211nobodyさん2017/12/09(土) 15:10:14.96ID:????2BP(1000)

ブラウザの設定なんでないの?

212nobodyさん2017/12/09(土) 15:31:04.88ID:Dbh0aDdH
それも考えたけど別のサイトではそうならないんだよな

213nobodyさん2017/12/09(土) 19:08:15.58ID:???
>>210
>自宅鯖+PC再起動
セッションはメモリ上に保存されてるからね、ログアウトも仕方ないね

ブラウザの場合はわからんが、ブラウザじゃなくて鯖が再起動になってるんじゃないの

214nobodyさん2017/12/09(土) 20:09:18.81ID:Dbh0aDdH
更に調べたらやはりブラウザのせいぽい
Operaでだけ発生しChromeではならない、が、何故なのかはまだわからない

>>213
鯖は再起動になってない

215nobodyさん2017/12/09(土) 20:38:19.56ID:???
operaが再起動でクッキー消失する設定になってるかなんかじゃないか
あと今のoperaは使わんほうがいいと思うぞ
せめてvivaldyのほうがいい

216nobodyさん2017/12/09(土) 21:34:00.94ID:Dbh0aDdH
>>215
同じOperaでもサイトによって挙動が違って謎
どこかにドメイン別の設定でもあるのだろうか…

217nobodyさん2017/12/09(土) 21:43:08.38ID:???
operaは中国企業が買収したし何がどうなってるかわからん
使うの怖いわ
原因も調べるだけ時間の無駄
ってかそもそも、今どの層が使ってるんだ?

218nobodyさん2017/12/09(土) 22:17:40.13ID:Dbh0aDdH
うーんVivaldyでも起きた…Operaの問題というわけでもないようだ
PHPのセッションに、ブラウザ閉じたら終わるみたいな機能ないよね?そもそも検知できないと思うし

219nobodyさん2017/12/09(土) 22:20:19.23ID:???
シークレットモードだったらぶっとばす

220nobodyさん2017/12/11(月) 09:14:23.38ID:???
クッキーの有効期限がブラウザ閉じるまでになってるんだろ

221nobodyさん2017/12/17(日) 12:45:40.44ID:D/sBsoe5
>>213
>セッションはメモリ上に保存されてるから

こいつ、何言ってんの?

222nobodyさん2017/12/17(日) 13:14:06.84ID:???
>セッションはメモリ上に保存されてる
でしょ
>>221は何言ってるの?

223nobodyさん2017/12/17(日) 18:02:08.76ID:???
実装次第だが少なくともPHPのセッションはデフォルトでファイルなはず
自分が使用してるバージョンではそうなってる
ブラウザは終了時にセッション(クッキー)を削除するのでそこでセッションは切れる
ただ異常終了した場合は前回のセッション復帰を試みるブラウザもある(ブラウザ次第)
PHPがセッションを削除するタイミングは
たしかアクセスがあった時にランダムで有効期限が切れたものを削除してた気がする
なのでサーバ再起動した場合でもまだ有効期限内なら確立されるはず(ブラウザ側で残ってれば)
サーバ再起動時にPHPのセッションを削除するようにしてる場合はこの限りではない

224nobodyさん2017/12/18(月) 15:18:34.00ID:thWVCCul
>>218
phpのセッションは、ブラウザのcookieに保存されたセッションIDと
サーバ側のセッションファイル(メモリキャッシュを使ってる場合はメモリ)の
突き合わせで行われる。
だからブラウザのcookieとサーバのセッションファイルを調べればだいたい原因が分かるよ。
たぶんcookieがないかセッションIDが変わってるだけだと思う。

君らのレス見てると、案外phpのセッションを理解してる人は少ないみたいだな。
まあたしかに分かりにくいけど。

225nobodyさん2017/12/18(月) 16:38:31.32ID:???
どちらかというとcookieの仕組みを理解してないだけだろう
俺も昔勉強したきりでもう覚えてないが
expiresが設定されてないとブラウザ終了時に消されるんだっけか

226nobodyさん2017/12/18(月) 18:13:20.39ID:thWVCCul
>>225
そう。

最近はフレームワークが面倒な作業を全部やってくれるから、
新人(でなくてもか)がphpのセッションを学ぶ機会がないんだよね。
session_start()さえ自分で書かないんだもん。
そりゃ何やってんだか分からんって。
できればこの辺のことは学校でやってきて欲しいんだがな。

227nobodyさん2017/12/18(月) 21:00:05.64ID:eDqIAEPx
ブラウザ終了時にクッキー消される場合があるのはわかるが、異常終了時はどうなるんだろう?
再起動時に前回異常終了したことを検知して、正しく処理をするのかな?その結果クッキーは消えると

228nobodyさん2017/12/19(火) 12:41:13.65ID:???
異常終了時はブラウザがCookieを消すという動作が出来てない可能性があり、
この場合ブラウザには残ってるということになる。
これらのCookieをどう次回の起動時にどう扱うかはブラウザ次第。
勝手に復元したり、復元するか聞いてきたり、リセットして通常起動をしたり。

229nobodyさん2017/12/21(木) 21:53:07.61ID:LS3FMJ0q
>>222

ヴァーカ

230nobodyさん2017/12/22(金) 06:40:12.07ID:???
中途半端に勉強してフレームワークを変にカスタマイズして
セキュリティホールができるよりかは何も出来ない方がいいという昨今

231nobodyさん2017/12/22(金) 08:32:30.47ID:???
そうやってできたセキュリティホールなんてそう簡単に検知出来ない
ソースがオープンであることが一番怖いのだよ
逆にオープンであるといろんな視点から修正も可能になるから
堅牢なものに仕上がるわけだけど

232nobodyさん2017/12/22(金) 12:18:36.73ID:???
Googleがemojiのユニコード化に乗り出したときにperlだとemojiをutf8にする決定版モジュールがすぐに出たし
PHPだと暫定的にHTML_Emojiを使ってたけど5.4以降の関数を使った新しいモジュールが見つからない
何かおすすめの携帯emoji自動変換ないでしょうか

233nobodyさん2017/12/23(土) 00:06:44.08ID:Xl1aztuq
お前は20年前から来たのか?

234nobodyさん2017/12/24(日) 19:23:17.05ID:???
今でもガラケー使ってる人いるだろ

235nobodyさん2017/12/25(月) 12:18:38.90ID:???
PHPerはないものを生み出すのが得意になるように
言語が誘導してくれてるんだから自分で作るんだ!!!!!!

236nobodyさん2017/12/28(木) 01:52:50.40ID:LaR6+9Gu
PHPerってある物を変に変えるのが得意だろ

237nobodyさん2017/12/28(木) 10:18:49.47ID:???
車輪の再発明が大好きだからな
趣味でやる分の傾向としては別に悪くはない

238nobodyさん2017/12/30(土) 12:09:28.28ID:YhlYw6jg
誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。

グーグル検索⇒『半藤のブブイウイウレレ』

MHWTZ79CQR

239nobodyさん2018/01/04(木) 13:53:25.48ID:???
PHPから大量のデータを送る方法を教えてください
思いついたのが、
1、一旦ファイルに保存してファイルの一覧をクライアントに送る
2、クライアントから順次ファイルの送信を要求する
です

240nobodyさん2018/01/04(木) 14:01:30.28ID:???
専用のプロトコルでやり取りする

241nobodyさん2018/01/04(木) 17:18:29.54ID:???
Socket.ioなどを使えということでしょうか?
勉強してみます

242nobodyさん2018/01/04(木) 18:27:18.33ID:???
PHPもsocket使えるんですけどね

243nobodyさん2018/01/04(木) 20:06:31.03ID:???
npmがエラーはきまくりで進まなくなった。。。
なにこれ
Error: Cannot find module ....\npm-cli.js

socketは。。。portとかまためんどくさい話がありそうで。。。

244nobodyさん2018/01/04(木) 20:11:56.98ID:???
>>239は同期が必要なゲームデータのやり取りを想定してると思っての答えなんだろうけど。
1や2見るとそういう用途とは思えないな。
1がいまいち意味わからないけど。

245nobodyさん2018/01/10(水) 19:17:52.42ID:???
スレチとか低レベ質問だったらすまん
headerを使用したリダイレクトとApacheのリバースプロキシを利用したリダイレクトはどう違うんでしょうか?
レスのヘッダーの中身が違うんですか?

246nobodyさん2018/01/11(木) 08:02:03.52ID:???
headerはブラウザがページ遷移を処理する
リバースプロキシはサーバが接続処理する
前者はリダイレクト前後でURLが変わるが後者は見かけ上変化しない

247nobodyさん2018/01/12(金) 07:35:52.10ID:???
>>246
ありがとうございます
今朝検証したらその通りになりました

ちょっとハマってたので助かりました

248nobodyさん2018/01/22(月) 17:23:29.75ID:???
良くできてるプラグインとかに感動しなくなってしまった

249nobodyさん2018/01/23(火) 14:48:39.99ID:2Wa7Kih8
phpのf/wってルートネームスペースにエイリアス置きたがるけどさ
use句があった方が圧倒的にわかりやすいと思うんだが、なんか理由ってあるのん?

250nobodyさん2018/01/24(水) 21:33:51.91ID:wn68glNS
同一サーバでドメインごとにphpのバージョンを切り替えたいんですが
どうしたらいいですか?

251nobodyさん2018/01/24(水) 21:44:46.08ID:???
KubernetesでドメインごとにPods分ける

252nobodyさん2018/01/29(月) 23:40:26.63ID:???
Pythonおっそ・・・
PHPに戻ってきたよ

253nobodyさん2018/01/30(火) 20:55:34.50ID:???
Python遅いって一体何をしたんだ

254nobodyさん2018/02/04(日) 00:19:15.00ID:???
phpexcelを使って、読み込んだエクセルのマクロを実行する方法はないでしょうか

255nobodyさん2018/02/04(日) 02:27:57.71ID:???
PHPExcelを使って, では不可能(VBAは誰が実行するんだ?)

何らかの形でVBAの実行環境を構築出来ればやれるはやれるだろう
VBSならWindows Script HostがあるがVBAじゃあExcelのCOMを使うしかなかろうが

http://php.net/manual/ja/book.com.php

256nobodyさん2018/02/04(日) 08:13:01.47ID:???
Windows Serverでやればできる

257nobodyさん2018/02/05(月) 03:33:46.05ID:???
PHP5時代ではコンストラクタはクラス名ではなく__constructを使う
public修飾子はつけるというルールがSHOULDだったと思うのですが
PHP7時代でもそうなのでしょうか?

258nobodyさん2018/02/05(月) 04:37:38.89ID:???
>>257
http://php.net/manual/language.oop5.decon.php
> Old style constructors are DEPRECATED in PHP 7.0.

https://www.php-fig.org/psr/psr-2/#43-methods
> Visibility MUST be declared on all methods.

259nobodyさん2018/02/05(月) 05:55:18.96ID:???
>>258
ありがとうございます
両方MUSTなんですね

260nobodyさん2018/02/09(金) 13:09:25.44ID:1nX6uKvU
質問させてください
https://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のデータは問題なく取得できます。
原因だけでもわかるとありがたいです。
お願いします。

261nobodyさん2018/02/09(金) 13:30:24.45ID:???
cURLで取れるけど

262nobodyさん2018/02/09(金) 19:13:46.61ID:???
>>261
ですよねー、取れるのが普通ですもんね
何故か自分の環境では取れないんですよ
特にfile_getにこだわってるわけではないんでcurlでもどちらでも良いんですが何故かbitbank.ccのデータだけNULLになっちゃう

263nobodyさん2018/02/09(金) 19:43:03.84ID:???
とりあえず環境かな, OS分からんし
可能ならPHPのバージョン上げるとか(5.3はもう死んだ, どころか5.5まで死んでる)

因みに手元ではcURLだけじゃなくfile_get_contentsも問題なし

264nobodyさん2018/02/09(金) 20:03:54.06ID:???
ありがとうございます。
PHPのバージョンを上げてから再度検証してみます。

265nobodyさん2018/02/09(金) 20:09:43.52ID:???
変えられるならもういっそ7.2まで上げてしまうといい
どうせ早いか遅いかだ

266nobodyさん2018/02/09(金) 23:22:33.34ID:???
HTTPS周りならOpenSSL関連かもしれんし
なんかヘッダが必要かもしれんからcontext作って渡すとか
基本的なことをやってから

267nobodyさん2018/02/10(土) 07:06:11.19ID:???
>>266
それやってもわかんなかったから質問したのよね

268nobodyさん2018/02/10(土) 09:41:56.07ID:???
お前もかよ
ビットコインブームにあやかりやがって!

269nobodyさん2018/02/12(月) 08:06:33.44ID:???
PHP経由で画像を出力する手法があるかと思いますが、この場合スクリプトで
いろいろと制限をかけることができ、セキュリティ上よろしいようですが
Apacheが即座に画像を返すのに対し、一度スクリプトを走らせて画像を出力するのは
パフォーマンス的に厳しい気がするのですが、どうなんでしょうか

270nobodyさん2018/02/12(月) 08:26:04.99ID:???
計測すればいいんじゃないか
一枚ぐらいなら楽勝だけど、アクセスごとに100枚も200枚も出してたら重くなると思う
とりあえずパフォーマンスなんて考えずに作ればいいよ

どうせ誰も使わないサイトだからwww

271nobodyさん2018/02/14(水) 18:29:59.40ID:???
PHPの開発環境のシェアは
Eclipseが8割り位占めてる?

272nobodyさん2018/02/14(水) 20:25:33.13ID:???
>>269
セキュリティ上別によろしくはない
何が目的かは知らないけどはっきりいって無駄だと思うぞ

>>271
いいえ Eclipseなんて1割もおらんだろ

273nobodyさん2018/02/14(水) 20:36:28.35ID:???
notepad ++最高

274nobodyさん2018/02/14(水) 20:45:14.35ID:???
有料だけどPHPStorm使うと戻れないわ

275nobodyさん2018/02/14(水) 20:59:33.05ID:???
PHPStormの人気すごいな
使った人みんな同じこと言ってる

276nobodyさん2018/02/15(木) 00:18:11.97ID:???
>>72
それまじか?

>>274
おつ!使った事がない!試してみる!

因みに俺はサーバ直結でEclipseで開発してるんだよね。
ローカルに開発環境作るのメンドクサイから。

PHP Stormもサーバ直結で開発出来ますか?

277nobodyさん2018/02/15(木) 03:37:49.22ID:???
サーバ直結の意味がわからん

278nobodyさん2018/02/15(木) 07:27:24.90ID:???
サーバーとSEX

279nobodyさん2018/02/15(木) 07:36:52.45ID:???
有料 PhpStorm(業界標準)>SublimeText>VS
無料 IDE組(NetBeans,Eclipse)>古参エディタ組(Emacs,Vim)>新参エディタ組(VSCode,Atom)>触り組(メモ帳に準ずる物)

こんな感じだと思う
ちなみに俺はVS
PhpStorm以外は分散してて1割以上シェアないと思う

280nobodyさん2018/02/15(木) 08:00:37.57ID:???
sakuraエディタやね

281nobodyさん2018/02/15(木) 11:09:59.46ID:???
>>277
RSE
でぐぐってみぃ

282nobodyさん2018/02/16(金) 13:55:30.64ID:???
ファイル管理のみ便利でDreamweaver使ってるわ

283nobodyさん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だけのリネームで問題ないのでしょうか?

284nobodyさん2018/02/18(日) 15:31:50.99ID:???
問題が起きた時にその問題について聞けよ

2852832018/02/19(月) 08:00:37.25ID:???
Visual Studioのアップデートがきてたので適用したら、
非互換とかになってPHP Toolsでの開発が出来なくなりましたw
1日で使えなくなってしまった。

286nobodyさん2018/02/19(月) 21:41:51.01ID:???
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆

287nobodyさん2018/02/21(水) 16:45:00.76ID:???
未経験からWEBプログラマって本当かな
https://fenixjob.jp/web_programmer/search-list

288nobodyさん2018/02/22(木) 07:13:48.19ID:???
未経験 != 無知

289nobodyさん2018/02/28(水) 19:16:26.25ID:oG8SOZNq
DateTime::createFromFormatの第一引数に'Y-m-d'、第二引数に日付の文字列を指定して使うと
時刻は0時0分ではなく、現在の時刻が勝手に設定されます
一方、DateTimeのコンストラクタの方(日付の文字列だけを指定する)は時刻は0時0分になります
何でですか?意味が分かりません

DateTime createFromFormat without time - Freek Lijten http://www.freeklijten.nl/2015/08/12/DateTime-createFromFormat-without-time

290nobodyさん2018/02/28(水) 19:16:52.60ID:???
1人でphpで作っているプロジェクト(と言ってもDBでユーザ管理するぐらいのもの)の
進捗状況(編集履歴)を外部に見てもらうためにはBitbucketとか使えば良い?
1日の終わりにプロジェクトのルートディレクトリごと放り込めば
webで差分とかがわかるとかできたらいいんだけどどうでしょう?

291nobodyさん2018/02/28(水) 19:19:01.97ID:oG8SOZNq
createFromFormatの場合、!が無いと現在のシステム時刻で初期化されるとは確かに書いてありますが
直感的でなくて分かりにくい挙動だと思います。

http://php.net/manual/ja/datetime.createfromformat.php

292nobodyさん2018/02/28(水) 19:51:54.22ID:???
https://github.com/php/php-src/commit/9f979a16bfa649a4eb74e3a6cb05e5fdb01067de#diff-7b738accc3d60f74c259da18588ddc5dR1733
ここで追加されたコードみたいだしコミッター(Derick Rethans)に聞いてみたら

まぁ分かりにくいのは同意する
何で修正されないんだって話ならBC breakだからとしか

293nobodyさん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が返ってきているのは
間違いないと思うんですが、なぜ、エラーが表示されず
真っ白なページになってしまうんでしょうか?
よろしくお願いします。
 

294nobodyさん2018/03/08(木) 02:07:16.32ID:???
>>293
『PHP 真っ白』で検索

295nobodyさん2018/03/08(木) 06:24:23.39ID:???
PHPになんらかのエラーがあった場合、通常はレスポンスコードは200で返ってきて、
エラー個所を表示するようになってる。
どの種別のエラーを表示させるかというのはサーバ側(PHP)の設定次第だし、
エラーには時に重要な情報も含まれる可能性があるので、
第三者に見られないよう、エラー表示自体をしないことも可能。
また、レスポンスコードをどう返すかというのもサーバ次第で、
通常200のところを、500にすることも可能だし、
同じ500でも、PerlCGIとPHPでは返すドキュメント(body)を別にすることも可能だし、
もちろんbodyを含まない、ヘッダ情報のみを返すことも可能。

早い話、全てはサーバの設定次第なので、FC2側で単にそうなっているだけなのだろうという事。

Chromeのやってることは、レスポンスにbodyがないので(=真っ白になる)、
ユーザに何が起きてるかわかるように、おせっかいにも補完表示してるだけと考えられる。

2962932018/03/08(木) 07:28:24.52ID:???
>>294-295
ありがとうございます。

>>295によると、
 ・PHPではエラーがあっても200が返ってくる。
 ・ただし、ちゃんと実行できてないから、中身は真っ白になる
 ・PHPのエラー表示は設定で可能(←これはできました)
 ・サーバーの設定次第では500を返すことも可能
   (レンタルサーバーでは、設定を変えられるかどうかはサーバー次第)
ということですね?

何となく分かってきました。
ありがとうございます。

297nobodyさん2018/03/08(木) 12:56:24.58ID:???
開発用環境を考慮してデフォルトではエラー表示はOnだけど
エラー表示関連はPHP_INI_ALLで一般ユーザが設定できるようになってるので
本番用環境のphp.iniは管理者側でデフォルトではエラー表示をOffにして
必要があればOnにするよう利用者に委ねるというのが行儀のいいレンサバ管理者
今は知らないけど昔xrea使ってた時はOnのままだったけどあれはよくない
http://php.net/manual/ja/errorfunc.configuration.php#ini.display-errors

> ・PHPではエラーがあっても200が返ってくる。
> ・サーバーの設定次第では500を返すことも可能
デフォルトのエラー表示Onのままであれば200だけど
上記の通り本番環境ではOffにすべきであり
Offにしたらサーバ管理者がhttpdに細工をしない限り500が返るはず
fc2でエラーに500が返ってくるというのは正しい状態と見なしていい

> ・ただし、ちゃんと実行できてないから、中身は真っ白になる
fc2ではそういうことになるのだろう

298nobodyさん2018/03/08(木) 13:04:50.53ID:???
ちなみに500ページを表示させたいというなら
htaccessが使えるなら設定してみては?
apacheは詳しくないんで答えれないけどできそう

2992932018/03/08(木) 13:10:55.13ID:???
>>297
> デフォルトのエラー表示Onのままであれば200だけど
> 上記の通り本番環境ではOffにすべきであり
> Offにしたらサーバ管理者がhttpdに細工をしない限り500が返るはず
> fc2でエラーに500が返ってくるというのは正しい状態と見なしていい
FC2でPHPのエラーになると、IEとFireFoxは真っ白画面。
Chromeではブラウザーが出した500エラー画面。
なので、PHPエラーでちゃんと500エラーが返ってきてるって判断した。
不思議なのは、普通は404でも500でも、Apacheがデフォルトの
エラーページを送ってくるのに、なんで500エラーだけ
真っ白画面になるんだろう?ってことなんです。
実際、404エラーではちゃんとApacheのエラー画面が返ってくる。

3002932018/03/08(木) 13:16:27.67ID:???
>>298
自作500ページを表示しようとして表示できないからおかしいなって思って、
いろいろ試して、Apacheデフォルトの500も表示されないって気付いた。

404とかは、自作にしたら自作が表示されて、
自作じゃなくしたらApacheのデフォルトが表示される。

301nobodyさん2018/03/08(木) 13:48:41.66ID:???
phpがエラー検出したあとapacheに対してこれを返してくれと
500レスポンスコードにContent-Length:0の空のHTMLを送ってるイメージ

3023012018/03/08(木) 14:16:08.24ID:???
if (responceStatus == 500 && responceBody.length == 0) {
 responceBody = readFile("/errors/500.html");
}
疑似コードだけど
こんな感じのをhtaccessで設定できるならいけるんじゃないのってことね

303nobodyさん2018/03/08(木) 14:57:47.09ID:???
https://oshiete.goo.ne.jp/qa/5997092.html
FATAL ERRORが出るのが原因らしいが

304nobodyさん2018/03/08(木) 14:58:24.43ID:???
typo FATAL→FETAL

305nobodyさん2018/03/08(木) 15:12:09.63ID:???
PHPでどうこうするっていうソリューションはあんまりよくないよねえ
httpdでどうにかしたいところ
ところでresponceじゃなくてresponseだった恥ずかしい

306nobodyさん2018/03/08(木) 16:47:59.97ID:???
>>304
修正前が正解

3072932018/03/08(木) 17:13:23.25ID:???
>>301-302
真っ白になるイメージはまさに>>301だし、
やりたいことはまさに>>302の通りです。

>>303
それを読んで、挙動としてはやっぱりそうだったんだな、と分かりました。
そして、普通に500エラーを出すのは相当無理筋なんだな、と。

ってことで、みなさんいろいろとありがとうございました。
500エラーではなく、PHPの中でエラーを処理して
普通のHTMLでエラーメッセージを出す、ということにしました。
ありがとうございました。

308nobodyさん2018/03/08(木) 22:15:46.47ID:???
PHPバカな子でごめんな

309nobodyさん2018/03/11(日) 00:58:34.82ID:???
>>293
大方PHPがmod_phpで動いてる
phpinfo()でSAPI APIを確認してみ

310nobodyさん2018/03/29(木) 15:13:07.71ID:XiaDFUEL
Composerのautoload.phpって、全然autoloadじゃねぇんだよな。

311nobodyさん2018/03/29(木) 16:03:23.74ID:XiaDFUEL
https://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?

ここで終わってやがる…

312nobodyさん2018/04/02(月) 00:29:19.22ID:???
セマンティックバージョニング的にもメジャーバージョンアップは後方互換性破壊があり得る変更なわけだし

313nobodyさん2018/04/02(月) 11:34:38.76ID: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.


> 後方互換性破壊があり得る変更なわけだし(キリッ


はぁ?

314nobodyさん2018/04/02(月) 15:07:52.69ID:???

315nobodyさん2018/04/12(木) 08:21:18.40ID:???
FacebookがおもらししたのはPHPで構築されてたから?

316nobodyさん2018/04/14(土) 10:32:02.12ID:???
techempowerでPHP系フレームワークの順位がかなり下なのは
単にPHPが遅いから?

http://www.techempower.com/benchmarks/

Shared-Nothingな事による初期化にかかるオーバーヘッドやらブロッキングI/Oを無くすことを狙った
phppmとかReactPHPとかもあるらしいけど
Shared-NothingとかブロッキングI/Oを前提に作った今までのコードは動かないよね
そんなの使い物になんの?
そこまでするんだったら別言語に移ったほうが良くね?

https://github.com/reactphp/react/wiki/FAQ
https://github.com/php-pm/php-pm/blob/master/README.md

遅いのはどうにもならないって事で
PHPをアクセス数多いサイトで使う時は
静的キャッシュを行ってサーバーに負荷掛からないようにするのがデフォらしい

317nobodyさん2018/04/17(火) 06:20:15.60ID:???
後はcssとjs、ファイルを分けずにhtmlの中に書いてしまう

318nobodyさん2018/04/17(火) 06:20:44.28ID:???
要は読み込むファイルはhtmlファイル一枚だけにする
画像もsvg
そうすれば超早い

319nobodyさん2018/04/17(火) 10:37:30.26ID:???
早い遅いいうけど人間の認識できる速度じゃないから
別に実用上はなんら問題ないんだよ

320nobodyさん2018/04/17(火) 10:56:24.98ID:???
ローディング遅けりゃ離脱増えるぞ

321nobodyさん2018/04/17(火) 14:52:40.68ID:???
そんなにI/Oにご不満ならメモリに全部展開しときゃいいよ
ユーザーの誰が気にするのかしらんけど

322nobodyさん2018/04/17(火) 22:46:50.61ID:???
>>319
少し違う
phpやdb構築の際、速度を気にせずに重い処理を平気で書くことが出来るようになる
「これ重くなるだろうなぁ・・・かいてまえ!」→やり直し
が無くなる

323nobodyさん2018/04/18(水) 12:55:26.18ID:???
http://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やで";
しか記述していません。

324nobodyさん2018/04/18(水) 14:13:48.65ID:???
>>323
https://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

325nobodyさん2018/04/18(水) 14:47:55.41ID:???
>>324
https://ameblo.jp/bibouroku555/entry-11505370277.html
このブログが参考になりました。

326nobodyさん2018/04/18(水) 23:39:44.72ID:???
何が原因ってまんまエラーに書いてるのにそれがわからんってのがわからんでw

327nobodyさん2018/04/22(日) 12:53:22.27ID:qxkyJl8C
phpMyAdminってインターネットに晒すとヤバイの?

まあDBのパス漏れたら何でも出来ちゃうよね
あるいはphpMyAdmin自体に何か脆弱性があってもパスが漏れて終わる

328nobodyさん2018/04/22(日) 19:29:29.60ID:???
>>327
それも分からないならweb制作やるべきじゃないと思う

329nobodyさん2018/04/24(火) 01:43:06.76ID:???
攻撃者は狙ったアプリケーションのデフォルトの配置場所やファイル名でアクセスして
200が返ってきたらさらに調べてみて狙ったアプリケーションであるなら
既知の脆弱性を利用した攻撃あるいは管理ページ等にデフォルト情報でログインを試みる

すなわちメジャーなアプリケーションをインストールして公開する場合
デフォルトのパスワードを変えなければ狙われる
脆弱性が見つかった時点ですぐにアップデートしなければ狙われる

レンタル鯖の管理人でもなければ
どこからもリンクしない適当なディレクトリに展開しておけ
ついでにアクセス制限かけとけ
それだけでほぼ問題はない

330nobodyさん2018/04/24(火) 18:43:18.05ID:???
なんだかんだ批判はあるものの、ウェブ開発においてPHPが業界標準なんですね。

331nobodyさん2018/04/24(火) 18:44:52.12ID:???
phpMyAdmin自体がPHPで作られてるんだけど。

ところでphpは何の言語で作られてるんだ???

332nobodyさん2018/04/24(火) 21:42:59.47ID:???
C

333nobodyさん2018/04/24(火) 22:55:40.59ID:???
C

334nobodyさん2018/04/25(水) 00:24:46.61ID:???
B

335nobodyさん2018/04/25(水) 09:45:41.44ID:Wx6vo3v+
phpMyAdminを複数の場所からアクセス出来るようにするには
SSHのポートフォワードを使えば良い?

IPアドレス制限はIPの管理が面倒 固定IPじゃないとたまに変わるし
VPNは金がかかる
phpMyAdminの認証に加えてBASIC認証orダイジェスト認証+中間者攻撃対策にHTTPSを使っても良いかもしれないが
認証フォーム自体へのアクセスは防げないのなんだかなあ

SSH認証なら有効な鍵を持っている人だけがphpMyAdminにアクセスできる
SSH鍵自体にもパスワード掛ければ更に安全と思う

336nobodyさん2018/04/25(水) 14:25:39.76ID:???
まぁローカルホストからの接続に限定し, 認証と暗号化を備えたトンネルで接続するのであればちゃんと設定した上では安全でSSHポートフォワードでもVPNでも問題ない
VPNもセキュアでフリーな実装のOpenVPNとかあるから別に金もかからん

337nobodyさん2018/04/26(木) 01:41:21.66ID:???
出来うる当たり前の対策をするしかないわな
https://stackoverflow.com/questions/2631269/how-to-secure-phpmyadmin

338nobodyさん2018/04/26(木) 01:50:14.09ID:???
制限もそんなガチガチの制限かけないで緩い制限でも効果はでかいのでは
攻撃なんてほとんど海外からだからね
jp制限かけられてるってわかればvpnとか通して偽装してくるかもしれないけど
他に狙うとこもあるしそこまでする攻撃者は稀なので

339nobodyさん2018/04/26(木) 20:00:38.27ID:e0kKtexp
【山口達也】  女子高生にチュー  × <差別番組Zip!> ◯  手繋ぎデート不倫  【川島海荷】
http://rosie.5ch.net/test/read.cgi/liveplus/1524709646/l50

340nobodyさん2018/04/27(金) 12:05:11.16ID:kBikjo8b
開 2 ち ゃ ん ね る= 便 所 の 落 書 き ・ 痰 壷 の 更 に 劣 化 コ ピ ー の 3 流 掲 示 板
運 営 の 性 格 の 悪 い 引 き こ も り I T 土 方 メ ガ ネ ザ ル 早 く 死 な な い か な

341nobodyさん2018/04/29(日) 10:15:31.52ID:???
>>332
c言語は、web系の言語じゃないと思うが。

342nobodyさん2018/04/29(日) 11:47:12.71ID:???
>>341
は?
phpはCで動いてるのは常識だぞ

343nobodyさん2018/04/29(日) 12:33:52.69ID:???
>>342
じゃ、そもそもwebシステム最初からCで組めばいいじゃん

344nobodyさん2018/04/29(日) 13:52:45.22ID:???
>>343
別にCで書きたければ書いても良いけど?滅茶苦茶早くなる
あらゆるphpの資産を失うけどね。まぁ頑張って

345nobodyさん2018/04/29(日) 17:05:45.10ID:???
>>344
めんどくさいからPHPでええわ

346nobodyさん2018/04/29(日) 17:21:10.04ID:???
PHP自体が何で書かれてるって聞かれたらそりゃCだろ
PHPだけじゃなくPythonもRubyもCで書かれた処理系が一番使われてる

WebサーバもnginxもApacheもC

347nobodyさん2018/04/30(月) 01:36:56.71ID:???
>>341みたいなのがいるからPHPerはバカにされる

348nobodyさん2018/04/30(月) 06:51:03.66ID:???
紛れ込んだ初心者か例外だろ
もっと優しくしてやれよ

349nobodyさん2018/05/02(水) 04:09:38.08ID:???
スーパーグローバル変数の前後に.がついてる記述があるんですが
このドットはどういう意味なんでしょうか
例えばsql文をこんな感じで記述してたりするものです
$sql = "SELECT COUNT(*) FROM bbs WHERE name='''.$_POST["name"]."'";

350nobodyさん2018/05/02(水) 04:21:36.33ID:???
>>349
スーパーグローバルどうこうではなく文字列連結演算子

351nobodyさん2018/05/02(水) 14:58:58.69ID:???
count(*)だからたいして問題にはならんけど
それはsqlインジェクションの典型コードだから褒められたものではないな

352nobodyさん2018/05/02(水) 15:15:18.12ID:???
寧ろSQLインジェクションのコード例まである

353nobodyさん2018/05/02(水) 16:58:11.13ID:XHGDuEA2
$_POST['name']="';drop table bbs";
とか単行でできなかったっけ?

354nobodyさん2018/05/04(金) 18:40:21.61ID:???
>>353
出来ないはず
少なくともsqliteではできない
"忘れてるからでコメント入れとかないとシンタックスエラーになるわ

355nobodyさん2018/05/04(金) 19:02:58.13ID:???
UNIONすればいいから

356nobodyさん2018/05/11(金) 21:01:57.13ID:w2CoFO3p
opendir()を使って指定したフォルダ内のファイル名一覧を取得したいのですが、
一つのセッションで何回も opendir()実行すると、その度にディスクにアクセスして
サイトの表示が遅くなりますか?良い方法ありますか?

357nobodyさん2018/05/12(土) 00:19:20.02ID:???
中身かわったときに読み込んでDBなりファイルに書いときゃいい

358nobodyさん2018/05/12(土) 07:06:28.17ID:???
静的データ使うのがベストだがopendirの回数を減らす方向だと
処理ステップが多いopendirをする前に
より単純な方法で比較すればopendirまで行かなくて済む
例えばフォルダのfilemtimeをセッション変数にぶっこんどくとか

ユーザ用のデータで外からの更新がないとか
セッション開始時から終了時まで使いまわして問題がないなら
セッション変数にファイル一覧ぶっこんどきゃいい

359nobodyさん2018/05/12(土) 11:48:03.93ID:MPdqrTl4
>>357>>358
レスありがとうございました。
>セッション開始時から終了時まで使いまわして問題がないなら
その通りなので
>セッション変数にファイル一覧ぶっこんどきゃいい
そうします。
ちなみにstatic変数を使ってやっても良いですか?

360nobodyさん2018/05/12(土) 21:11:01.72ID:???
ページを表示した時点でプログラムが終了するので
次の動作(ページ遷移とか)をするとstaticじゃ保持されない
だからセッションやhiddenで持ちまわす

361nobodyさん2018/05/14(月) 12:05:38.71ID:bg4N3y/B
json_encodeで次のようになるデータを
[
{ "国": "アメリカ",
"地域": "ワシントン",
"人口": 19
},
{ "国": "日本",
"地域": "東京",
"人口": 7
},
{ "国": "日本",
"地域": "大阪",
"人口": 3
},
]
次のようにする方法教えて
[
"アメリカ": {
"ワシントン": {
"人口": 19
}
},
"日本": {
"東京": {
"人口": 7
},
"大阪": {
"人口": 3
}
}
]

362nobodyさん2018/05/14(月) 20:08:43.77ID:???
$a = json_decode($encodedData);
foreach ($a as $v) {
 $b[$v->{"国"}][$v->{"地域"}] = $v->{"人口"};
}
var_dump(json_encode($b));
あとは調整しれ
つか>>1

363nobodyさん2018/05/14(月) 20:14:32.47ID:???
$b[$v->{"国"}][$v->{"地域"}] = ["人口" => $v->{"人口"}];
だった

364nobodyさん2018/05/14(月) 22:20:49.44ID:???
ありがとう助かった
スレチだったみたいだなスマソ

365nobodyさん2018/05/14(月) 22:47:48.22ID:???
>>362
このくらいなら問題ないんじゃない?
手とり足とりって感じでもないし

JavaScriptも書く身としてはmapもアリかな
$a = array_map(function ($val) {
 $res[$val->{"国"}][$val->{"地域"}] = ["人口" => $v->{"人口"}];
 return $res;
}, json_decode($encodedData));

と思ったけどJavaScriptほどすっきりかけないからループの方がいいわ

366nobodyさん2018/05/15(火) 08:08:04.80ID:???
$obj->{""}
この表記はあまりなじみがないから
初心者じゃなくても結構悩むかもね

367nobodyさん2018/05/21(月) 07:51:27.75ID:???
phpで二回目にデータを渡すか、ユーザーの入力を待ちたい

////////ページ////////
[続けるボタン]
一回目の出力結果・・・
二回目の出力結果・・・

こんなページが作りたいのですが、
phpに書いたものはボタンを押すとリセットするようで、二回目が作れません
もしくは、while(){ボタン入力まで待機}
こんな書き方をしたいのですが、どちらかの実現方法を教えて下さい

368nobodyさん2018/05/21(月) 07:58:36.40ID:???
sessionがあるみたいなのでやってみます

369nobodyさん2018/05/21(月) 14:36:19.77ID:???
gRPCがPHPでRPCサーバーを作るのには対応していないのって何で?

PHP単体で動く(Apacheやnginxを使わない)まともなHTTPサーバーがないのが原因みたいに言われてたけど
それだけ?

そうだとして何でPHP単体で動いて
テストだけでなく本番でも十分使えるHTTPサーバーが無いのか

370nobodyさん2018/05/21(月) 14:42:31.54ID:???
WEB画面から文字列を入力しDBにInsertすると文字の頭になんか変な文字が入ってました。

そこで、テーブル上のデータをSQLファイルでダウンロードして
サクラエディタで見たところ空白にしかみえないです。

しかし、その空白部分を選択してみると、サクラエディタの右下に
U+30AD となっています。何かの文字を表している様ですが分かりません。

これは一旦何が入っているのでしょうか?

371nobodyさん2018/05/21(月) 15:29:39.14ID:???
>>367
JSONで非同期にしたら?

そんな処理でSessionとかcookie使うもんなの?

3723702018/05/21(月) 15:47:02.23ID:???
SQLで insert文で 'キ' と入力するとなぜか'キ'の左側に

U+FEFF ← が入ってしまっています。



(U+30AD  → 「キ」でありこれは問題ありません。)


BOM??らしいです。なんで'キ'入力の時だけ入るんだろうか。

373nobodyさん2018/05/26(土) 21:31:37.47ID:???
Laravelのドキュメントってどこにありますか?
公式laravel.jpのドキュメントはインストール設定と期待したものじゃないし
いくつか機能の紹介してるリンクはリンク切れだし
http://laravel4.kore1server.com/docs/routing
唯一まともなクイックスタートもちょっと少なすぎます
なんか1つテーマにしてサンプルを説明つきで作るようなやつはないんですかね

374nobodyさん2018/05/27(日) 01:53:43.88ID:???
甘えるな小僧

375nobodyさん2018/05/27(日) 10:33:53.98ID:???
PHPはFWが乱立しすぎて首をしめてるな
その点node.jsはどこいってもexpressでいいよだから楽
環境構築でいえばPHPのほうがだいぶ楽だから
サーバエンジニアがいないとどうしてもPHPになってしまうのだろう

376nobodyさん2018/05/28(月) 11:18:24.32ID:???
>>375
他に比べたらオプソFW乱立って程でもない

総じて質が低いのが問題
それに起因するのかオリジナルFWが輪をかけてゴミまき散らしてて首絞めてる

377nobodyさん2018/05/28(月) 12:20:46.25ID:???
このスレで使うFWを統一しよう(名案
そしたら他の死んだスレで一向に答えが来ない独り言しないで済むしな

378nobodyさん2018/05/31(木) 15:25:27.48ID:???
public function foo()
{
  return [
    'a' => 'b',
    'c' => 'd',
  ];
}

FWでこういうコードを入れる必要があるのですが、
何を意図してこんなことをさせるのですか?
$foo = ['a' => 'b', 'c' => 'd'];
でよくないですか?

379nobodyさん2018/05/31(木) 15:47:30.82ID:7ebU4p49

380nobodyさん2018/06/07(木) 15:40:45.53ID:???
ここのイケメン先輩達に質問しようと思って質問内容を整理して文を書いていたら、途中で答えがわかりました
ありがとうございました

381nobodyさん2018/06/07(木) 16:12:26.53ID:???
おう良いってことよ
感謝を忘れるなよ

382nobodyさん2018/06/07(木) 17:10:31.89ID:???
>>380
よくあるやーつ

383nobodyさん2018/06/16(土) 10:55:24.21ID:XFveZCTu
PHPって1リクエストで1プロセス使うの?
効率悪くね?
1万件コネクションあったら1万プロセス生成するの?
無理じゃね?

384nobodyさん2018/06/16(土) 11:33:21.06ID:???
>>383
その辺はうまく最適化されてるからそこまで考えなくてもいい
実際、動いてるっしょ

385nobodyさん2018/06/16(土) 12:28:52.66ID:XsXx5YxH
【誘われたら、優秀″】 手に、マイクロ・チップ  ←<関/輿水>→  メール、ネットで公開処刑
http://rosie.5ch.net/test/read.cgi/liveplus/1529112504/l50

386nobodyさん2018/06/16(土) 12:38:57.88ID:WL8j0F1D
>>384
貧弱なサーバーだと一万もプロセス生成できなくね?

プロセス大量に生成しない他言語の方が有利でしょ

387nobodyさん2018/06/16(土) 13:48:58.44ID:???
WebサーバがPHPを実行する際の仕組みに依存するんだから言語は関係ない

Apache+CGIならリクエスト毎にプロセス立ち上げるし
Apache+mod_phpならApacheのMPM次第だし
Apache/nginx+php-fpmならひとつのプロセスで複数のリクエストを捌くし

388nobodyさん2018/06/16(土) 14:16:49.57ID:XFveZCTu
>>387
>ひとつのプロセスで複数のリクエストを捌くし

同時には無理でしょ?

1万件接続されても1万プロセスは作らないけど
リクエストが来た時割り当てられるプロセスが無かったら
空きが出るまで待たされるってことだろ

nodeはそもそもApacheモジュールとかFastCGIとか使ってなくて
node単体でもHTTPサーバーとして動作するって話だ
nginxと組み合わせる場合はHTTPで通信する

nodeは非同期I/Oだから前のリクエストが終わらないと一切次のリクエストの処理が開始できないって事も無い

FastCGI自体1996年ぐらいに出てきてから
そんな進歩してないっぽいし

389nobodyさん2018/06/16(土) 16:23:45.43ID:???
>>386
もちろんそう
phpは基本Cのラッパーだから、直接C言語で書けば爆速で動くよ
いつ完成するかは知らないけど頑張って

>>388
言ってる意味がよくわからなi
おそらくリクエストが最多のgoolgleやyahooが重くて仕方ないならその意見はわかるけど、
一体何に対しての意見なの?

390nobodyさん2018/06/16(土) 17:51:24.35ID:EG3qtVlZ
レストランで喩えると
コース料理を全部出し終わるまで
次の客を待たせるのがPHP

料理を作り終わって
客が食べている間に時間が空いても
他の客の料理は決して作らない

391nobodyさん2018/06/16(土) 19:20:14.63ID:m7Q1wvls
客一人に一人ウェイターが付くシステムのレストラン=PHP

ウェイターが5人なら注文を聞ける客は5人まで
それでもレストランで食事がしたい客は待つしかない
混雑に対応するにはウェイターの人数をかなり増やす必要がある
しかし常に大人数のウェイターを待機させておくと暇な時の人件費が嵩む
だからって混雑時だけ応援を呼ぶと対応に時間が掛かる

普通のレストラン=Node.js
一人のウェイターが複数の客の注文を取るので遥かに効率的
混雑していても客はとりあえず店に入って注文を出せる
客の人数がウェイターの人数を超えると一切注文を出せず、料理も来ないPHPとは対照的
混雑時もPHPほど大人数のウェイターは必要ない

392nobodyさん2018/06/16(土) 21:53:50.62ID:???
PHPスレで, しかもPHPに限らないことでPHPをディスってもなぁ

nodeが最適な場面は確かにPHPには向いてないだろうけど, それ以上でもそれ以下でもない

393nobodyさん2018/06/16(土) 22:52:57.98ID:DoWXS1Yy
プロセス生成(prefork)するので
今でも使われてるのってRubyのUnicornぐらいしか知らない

394nobodyさん2018/06/17(日) 14:49:10.70ID:???
知ったかが何人もいるのか。お先真っ暗感

395nobodyさん2018/06/17(日) 14:52:25.05ID:???
phpはそういう言語だからね
大丈夫

396nobodyさん2018/06/17(日) 15:15:30.67ID:dwEPgyzc
PHPでもnodeみたいな非同期処理を実現するものとして
php-pmとかSwooleがあるけど
本番で使ってる奴なんておらんやろ?

397nobodyさん2018/06/17(日) 15:47:59.14ID:???
結局goの方が早いしな

398nobodyさん2018/06/17(日) 16:21:08.45ID:???
非同期処理でややこしくするよりかはサーバー増やしたほうがよっぽどコストがかからん

399nobodyさん2018/06/17(日) 17:20:28.95ID:dwEPgyzc
Swoole使うと
最大で30倍近く速くなるらしいのでそれは暴論

400nobodyさん2018/06/17(日) 23:16:57.06ID:???
1万リクエストあるからって1万生成されるわけじゃないし
プロセス生成数なんて気にする必要はない

401nobodyさん2018/06/18(月) 00:32:48.78ID:???
実際Node.jsでそれだけ回すと非同期(笑)状態がよくあるしな

402nobodyさん2018/06/18(月) 09:00:28.15ID:vorT3MqW
https://laravel-news.com/laravel-swoole

nginx/FPMの一般的な構成だと80.93リクエスト/秒なのが
Swoole仕様では8717リクエスト/秒に増加している
30倍どころか100倍以上
同期(笑)

メモリリークや不具合を起こす危険と引き換えに時間の掛かるPHPやフレームワークの初期化も省略できるからな
そりゃ早いだろ

php-pmはメモリリークを防ぐために一定数のリクエストを処理後に再起動出来たが
Swooleは知らない

403nobodyさん2018/06/18(月) 09:10:51.86ID:???
Swoole自体は面白いと思うけど, FPMのチューンが分からないからその比較に意味は無い
仕組み上捌けるリクエストは増えると思うけども

404nobodyさん2018/06/18(月) 16:16:03.97ID:???
Swooleって何?PHPのアプリケーションサーバー?

405nobodyさん2018/06/18(月) 16:20:58.89ID:???
非同期ネットワークIOの拡張モジュール written by C

406nobodyさん2018/06/18(月) 16:41:14.62ID:???
reactphpとはちがうのん?よくわからん・・・

407nobodyさん2018/06/18(月) 17:07:22.53ID:???
使ったことないからアレだけど, 機能的には重複すると思う
Cで書かれた拡張かPHPで書かれたライブラリかの違い

408nobodyさん2018/06/18(月) 17:15:36.91ID:???
なるほど、じゃSwoolのほうがよさそうだね
日本語資料少ないけどちょっと使ってみよう

409nobodyさん2018/06/18(月) 19:07:53.58ID:???
Falconみたく中身弄れる人限定とかじゃないの?

410nobodyさん2018/06/19(火) 01:56:57.10ID:???
従来PHPですべてやってたことを
PHP+AngularJSで開発しようとおもってます。
この場合PHPが行うことはWebAPIとして入力値からCRUDして
JSONなどAngularJS側で使うデータの出力でいいんですよね?

411nobodyさん2018/06/19(火) 23:28:58.36ID:sZEZNTYu
認証も必要

412nobodyさん2018/06/20(水) 08:19:33.32ID:???
>>411
どうもありがとうございます。
作ったことはないのですが、確か最近の応用情報かなんかの過去問見たとき、
WebAPI作る問題出てて、そこでも確かにHTTPSでBasic認証してました。
ちゃんとWebAPIの作り方調べてやってみたいと思います。

413nobodyさん2018/06/20(水) 09:14:44.17ID:Xst2QP85
>>412
何で例に出すのがBASIC認証なのか
APIならOAuthとかじゃねえの

414nobodyさん2018/06/20(水) 09:26:37.65ID:Xst2QP85
自分一人が個人的に使うシステムでも無い限り
OpenAPIやSwaggerで仕様を明確化した方がよい

あるいは昔ながらのREST APIではなくGraphQLでも良いかもしれない

RESTは自分でも作れるかもしれないが
GraphQLは割と複雑な仕様なのでライブラリーが必須

OAuthはOAuthで難しい
変な実装をすれば車が通れる程の大穴セキュリティホールが開く
https://www.sakimura.org/2012/02/1487/

415nobodyさん2018/06/20(水) 09:52:37.08ID:???

新着レスの表示
レスを投稿する