X



PHP質問・雑談スレ4【初心者お断り(ROM歓迎)】 [無断転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
0100nobodyさん
垢版 |
2017/08/19(土) 16:20:11.70ID:???
>>98-99
ありがとうございます
さすがにまんまなものはなかったんですね
>>99さんのリンクのを使わせていただきます
0101nobodyさん
垢版 |
2017/08/19(土) 20:11:02.89ID:???
すげー細かいことだけどxorしてからシフトすればシフト1回で済む
PHPでandとxorどっちが早いかは確かめていない
0102nobodyさん
垢版 |
2017/08/20(日) 01:48:19.58ID:???
もっと細かいことだけど
れるられる
が気になる
0104nobodyさん
垢版 |
2017/08/24(木) 20:16:03.54ID:???
自サーバの指定ポートが使われてる(LISTEN状態)かチェックする方法ってありますか?
0105nobodyさん
垢版 |
2017/08/24(木) 23:47:48.82ID:e59+rI+5
もしかしたらすれ違いかも知れませんが気にせず質問させていただきます

先日パソコンが壊れました
電源をつけると5秒後に再起動を繰り返してしまいます
原因がわからないのですが
どなたか対応方法などご存知の方いたら教えてください
0106nobodyさん
垢版 |
2017/08/25(金) 02:32:32.38ID:???
HDDかマザーかメモリーが壊れてるんだろ
0108nobodyさん
垢版 |
2017/08/25(金) 04:29:08.22ID:???
>>107
エラーを出せばわかるのですが実行前に検出したいです
file_get_contentsの前にfile_existsをやるようなイメージです
0109nobodyさん
垢版 |
2017/08/25(金) 04:36:31.07ID:???
よくわからんけど netstat -an をexec()したら?
0110nobodyさん
垢版 |
2017/08/25(金) 05:05:45.19ID:???
>>109
エラー制御とかErrorException投げるようにすればいいのですが
fsockopenで開いてないポートに接続するとE_WARNINGが出るのがいまいちで
$errstr参照できるようにしてるのだからFALSE返せばいいのに・・・
説明には
>hostname が有効なドメインでない場合は E_WARNING をスローします。
って書いてますけどhostnameは有効なのにportとセットになっちゃってるようですね

netstatコマンド叩く案で対処しようと思います
どうもありがとう
0112nobodyさん
垢版 |
2017/08/30(水) 19:27:46.70ID:???
tmpfile() で作ったファイル名を知りたい
0113nobodyさん
垢版 |
2017/08/30(水) 19:39:21.19ID:???
>>112

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

tempnam()は単に文字列としてのパスを生成するだけでなく、パスの競合を避ける為に一時ファイルを作ることに注意。
0114nobodyさん
垢版 |
2017/08/30(水) 20:28:44.54ID:???
$fp=tmpfile();
print stream_get_meta_data($fp)['uri'];
0115nobodyさん
垢版 |
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系のしかありませんが
非英語圏、非日本語圏の場合はどうするのかなど
これが本当に正しい検出順ってのがありましたら教えて下さい
0116115
垢版 |
2017/09/09(土) 20:10:54.83ID:???
やっぱみなさんもよくわかってないで設定してるかんじなんですかね?
0117nobodyさん
垢版 |
2017/09/09(土) 20:18:41.74ID:???
今どきはutf-8が先頭じゃね?
0118nobodyさん
垢版 |
2017/09/09(土) 20:38:35.05ID:???
負荷だって問題になるし誤判定防止の観点も重要だし、何を優先したいかじゃないんか
つか自動検出したいって対象というか目的が限られるよな
0119nobodyさん
垢版 |
2017/09/10(日) 16:35:08.02ID:???
完全な自動検出なんてそもそも無理だし>>115が何を以って正しいとするのか不明だしアホかと
0120nobodyさん
垢版 |
2017/09/18(月) 04:42:58.32ID:???
PHPコミュ死亡したの?PHP7も特に話題にもならなかったしついにPHPも終焉か
目新しいものもないし仕方ないか・・・
0121nobodyさん
垢版 |
2017/09/18(月) 13:00:42.35ID:???
死亡したことにしたいならそうすればいいんじゃないかな
0122nobodyさん
垢版 |
2017/09/19(火) 10:33:16.80ID:???
PHPってバイナリごと配布しておk?
0123nobodyさん
垢版 |
2017/09/19(火) 11:02:07.42ID:???
LISENCEファイルの本文冒頭に書いてあるぞ
0126nobodyさん
垢版 |
2017/09/20(水) 06:59:21.00ID:???
よくわからないからxampp参考にするか
.\licenses\phpに入ってるな
.\phpにも入ってるけど
くっそめんどくせえ
0127nobodyさん
垢版 |
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で必要項目全チェックしたり
なかった場合に例外なり出したりとかするんでしょうか?
0128nobodyさん
垢版 |
2017/09/23(土) 10:19:41.47ID:???
プロの皆さんは、とか臭い
自分で考えろ
0129nobodyさん
垢版 |
2017/09/23(土) 12:11:13.07ID:???
noticeが出ない程度にissetとnullセットをしつつ
実際に実行したときに問題が起きて終了するか
データのvalidationまでやって実行前に正しいか事前にチェックするか
ちょうどコンパイラとインタプリタの概念に近いもんだと思うけど面倒だから前者だな
0130nobodyさん
垢版 |
2017/09/23(土) 12:31:50.42ID:???
noticeはだめでwarningはいいんだね
0131nobodyさん
垢版 |
2017/09/23(土) 14:14:29.35ID:???
……?例外投げるとか、Fatalで終了させるとかそういうのじゃないのか
0132nobodyさん
垢版 |
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が効かないのが気持ち悪くて。。。
0133132
垢版 |
2017/09/23(土) 20:32:44.12ID:???
補足
.user.iniに書いているのは
post_max_size=15M
のみです
0134nobodyさん
垢版 |
2017/09/23(土) 21:06:12.60ID:???
そのPHPの実行環境はどれなの?
CLIかmod_phpかphp_fpmか
0135nobodyさん
垢版 |
2017/09/23(土) 21:12:50.05ID:???
Webサーバ通してphpinfo見てて、
php.iniでuser_ini.*を編集してからWebサーバ再起動してなかった
ってオチじゃないだろうな
0136nobodyさん
垢版 |
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と表示されています
0137nobodyさん
垢版 |
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 ファイルを使えば同じ機能を実現できます。
0138nobodyさん
垢版 |
2017/09/24(日) 08:20:24.15ID:???
いまどきmod_phpなんて使ってるから
0140nobodyさん
垢版 |
2017/09/25(月) 06:46:06.55ID:???
アップローダーで、
「名前、コメント、URL、アップロード時刻、ファイルサイズ」の4つを|文字区切りでログしていて、
名前 コメントは$_POSTで|文字を使うことが出来ない、
URLはオリジナルファイル名を破棄してuniqidを付与したもの、
アップロード時刻 ファイルサイズはtimeやfilesizeでシステムからのものという仕様になっています。
これらをhtmlに表示する場合、
システム側が作成する、[a-f0-9]のファイル名(URL)や、
intであるはずのtime(dateで変換して読みやすく表示)やfilesizeは安全な値だと思うのですが、
これらをhtmlspecialcharsする理由はなんなんでしょうか?
0141nobodyさん
垢版 |
2017/09/25(月) 07:21:56.76ID:???
>>140
分けるのがめんどいから一括でサニタイズしているだけだと思う
0142140
垢版 |
2017/09/25(月) 08:08:18.75ID:???
>>141
なるほど、ありがとうございます。
0143nobodyさん
垢版 |
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など動的言語は確実に廃れる。
保守に強い言語のみ生き残れる。
0144nobodyさん
垢版 |
2017/09/25(月) 14:08:58.86ID:???
お前少しスレが伸びると登場するよな
0145nobodyさん
垢版 |
2017/09/27(水) 19:56:39.79ID:???
保守に強いのって何だろう?
Java?
0146nobodyさん
垢版 |
2017/09/27(水) 20:10:15.96ID:???
無駄にコード長くなる冗長なJavaが保守に強いってか
つうかこのスレ向けの話題じゃないしPHP関係ないからム板で聞きなさい
http://mevius.2ch.net/tech/
0147nobodyさん
垢版 |
2017/10/02(月) 16:41:56.90ID:???
作ったコンソールアプリをwindowsでバックグランドで動作させるにはどうしたらいいですか?
cmd画面だしっぱで動作させることは出来るのですが、
タスクトレイには表示させてもいいですが、ついうっかりバツボタン押しちゃうので、
誤操作防止にもタクスバーに残らないようにしたいです。
切るときはタスクトレイから止めるか、タスクマネージャーから直接止めるという感じにしたいです。
可能でしたら方法教えてください。お願いします。
0148nobodyさん
垢版 |
2017/10/03(火) 02:44:51.89ID:???
php-win.exeで起動させるとcmd画面が表示されない
0149147
垢版 |
2017/10/03(火) 22:58:08.51ID:???
>>148
出来ました。どうもありがとうございます。
0150nobodyさん
垢版 |
2017/10/05(木) 00:05:56.71ID:???
デバッガ付きのIDEってないですか?
XAMPP入れたりApacheやPHPの設定するのが大変です
しかもしょっちゅうおかしくなって再起動必要だし・・・
0152nobodyさん
垢版 |
2017/10/08(日) 12:02:16.66ID:???
xamppで質問なんですが、スレチだったらすいません
php.iniで
include_path = "D:\xampp\php\lib\smarty"
と設定した場合、smarty内のphpファイルを全部読み込むということなんでしょうか?
0153nobodyさん
垢版 |
2017/10/08(日) 12:17:16.23ID:???
>>152
検索パスであって勝手に読むわけではない

あと今はグローバルにインストールしてinclude_path指定するよりcomposerでプロジェクト毎にインストールするのが普通
0154nobodyさん
垢版 |
2017/10/08(日) 12:28:27.60ID:???
>>153
あー、なるほど
つまりパスを登録しておけば
require( 'Smarty.class.php' );
で読み込める事ができて楽、ということなんですね

後、パスを複数登録した時、同じ名前のファイルがあるとどうなるのでしょうか
0157nobodyさん
垢版 |
2017/10/08(日) 14:26:08.75ID:???
>>154
一つ上の階層をインクルードpathにして
フォルダで分けるそしてrequiireを
require( 'smarty¥Smarty.class.php' );
とする
0158nobodyさん
垢版 |
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)
0159nobodyさん
垢版 |
2017/10/23(月) 19:03:31.63ID:???
php ver7は、odbc_connectは実装されていないの?
関数がないっていうエラーになるんだけど。
0161nobodyさん
垢版 |
2017/10/23(月) 19:22:39.89ID:???
>>160
はい、知ってます。
が、実際はサポートされていないようなのです。
0162nobodyさん
垢版 |
2017/10/23(月) 20:50:45.96ID:???
>>161
エクステンションなんだからお前さんの環境で有効になってるかぐらい確認しろ
0163nobodyさん
垢版 |
2017/10/23(月) 21:46:47.32ID:???
ご自分の設定ミスなのにサポートされてないとか言っちゃったらそりゃ反感買う罠w
0165nobodyさん
垢版 |
2017/10/24(火) 20:10:43.03ID:???
俺環は、Windowsなんだけどネ。

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


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

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

て書いてあるし。
文句は甘んじて受けるから、odbc関数動かす方法教えてくれ。
0166nobodyさん
垢版 |
2017/10/24(火) 20:52:02.86ID:???
いや、、、php.iniは確認したの? ; をちゃんと外した?
0167nobodyさん
垢版 |
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
0168nobodyさん
垢版 |
2017/10/25(水) 06:48:22.49ID:???
すまん。
php_odbc.dll ってのがあったw
0169nobodyさん
垢版 |
2017/10/25(水) 07:43:05.92ID:???
確認しろと言われても確認すら出来ない
しかもちゃんと謝れない

ゴミクズですわ
0170nobodyさん
垢版 |
2017/10/25(水) 07:45:37.79ID:???
程度がひどいなあ…
0171nobodyさん
垢版 |
2017/10/25(水) 10:18:40.93ID:???
自分よりもマニュアルが間違ってるって発想する人間だし
0172nobodyさん
垢版 |
2017/10/26(木) 14:44:35.78ID:???
www.example.comみたいなホスト名からドメイン名の部分をとりたいです。
最初に考えたのはドットで配列に区切って後ろの2つをくっつけるですが、
ne.jpとかのドメインを思い出して、その場合3つをくっつけないといけません。
既知のドメインをリスト化するのは大変だし、新しいものに対応するのも難しいのですが、
なんかいい方法や関数ないでしょうか?
ne.jpやco.jpがneやcoの部分が2文字まで、exampleの部分が3文字以上じゃないと無理とかなら、
まだやりようはあるんですが、そういったルールはないですよね?
0173nobodyさん
垢版 |
2017/10/26(木) 18:41:59.01ID:???
2つとか3つとかそれぞれで
checkdnsrrでチェックするとか
0174nobodyさん
垢版 |
2017/10/26(木) 19:01:32.40ID:???
>exampleの部分が3文字以上じゃないと無理とかなら、

三文字以上じゃなきゃ取れなかったと思うから2以下なら3つっくっつければいいんじゃね?
0175172
垢版 |
2017/10/26(木) 21:27:47.65ID:???
>>173-174
>>173さんの方法でうまくいきました。
レスどうもありがとうございました。
0176nobodyさん
垢版 |
2017/10/31(火) 06:58:11.21ID:???
無名関数でuseというキーワードがありますが、これって引数で渡すのと比べた違いは、
>引き継がれた変数の値は、関数が定義された時点のものであり
これだけですよね?
両者とも参照渡しは可能で、globalのように親スコープの変数を変えることもできないので。

PHP5では無理なようですが即時関数のような振る舞いを期待して、
定義後にすぐ呼び出すならuseキーワード使ったほうがいい感じですかね?
0177nobodyさん
垢版 |
2017/10/31(火) 13:01:16.18ID:???
>>176
特に理由がなければuseするわ
引数にすると2回書かにゃならんし

あと即時関数はPHP7からは
(function (...) {...})(...)
で可能だしPHP5でも
call_user_func(functuion (...) {...}, ...)
で可能だったと思うが
0178176
垢版 |
2017/10/31(火) 19:36:45.24ID:???
>>177
ありがとうございます。
やっぱ基本useがいいですね。自分も書いてて2回書くのは気になりました。
ただ書いてて気づいたのは、$thisはuseで渡せないようなので、
その時はやむを得ない感じかなと思いました。

call_use_funcは知りませんでした。どうもありがとうございます。
JavaScriptもやっていて、無名関数の書式に慣れてるし、
もし今使ってるレンサバがPHP7対応したら置き換えやすいので、
とりあえずこのままで行きたいと思います。
0179nobodyさん
垢版 |
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なプロパティというのは実装可能なんでしょうか?
0180nobodyさん
垢版 |
2017/11/03(金) 17:46:13.00ID:???
>>179
Cでエクステンション書けばPHPの文法を超えることが実現出来る
0181nobodyさん
垢版 |
2017/11/03(金) 18:06:42.77ID:???
>>180
なるほど
やっぱりPHPだけじゃ無理でそういうレベルの話だったんですね
DOMElement->tagName変えようとしたらmain()とかでエラー出てたので
なんかそんな感じはしました
レスどうもありがとうございました
0182nobodyさん
垢版 |
2017/11/03(金) 18:26:11.55ID:???
でもまぁreadonlyプロパティとか欲しいよね実際
0183nobodyさん
垢版 |
2017/11/04(土) 00:09:02.36ID:???
constもいらなくなっちゃうな
0184nobodyさん
垢版 |
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
0185nobodyさん
垢版 |
2017/11/14(火) 14:49:47.97ID:???
if (!preg_match('/regex/', $arg))
{
 throw new xxxException();
}

LogicException系ですが、
引数が期待する値でないのでこれはInvalidArgumentExceptionですか?
それとも定義したデータドメインにあってないのでDomainExceptionですか?
いまいちExceptionの使い分けがわかりません。
0186nobodyさん
垢版 |
2017/11/14(火) 22:59:01.79ID:???
>>185
InvalidArgumentExceptionのドキュメントを読むとTypeError相当のものに見える
DomainExceptionのサンプルからもその用途にはこちらが向いているだろう

// サンプルなんだろうけどその判定式はstrposが最良では
0187nobodyさん
垢版 |
2017/11/15(水) 12:55:13.16ID:???
>>186
'/'.preg_quote($regex, '/').'/'と書くべきでしたね。
ややこしくしてすみません。
DomainException使おうと思います。
レスどうもありがとうございました。
0188nobodyさん
垢版 |
2017/11/17(金) 01:05:40.09ID:pCghqI8+
なんで標準Exceptionだけで全てを仕分けしようとしてるん…
0189nobodyさん
垢版 |
2017/11/17(金) 02:33:45.51ID:???
じゃ>>187に例外命名してみ
たぶん無駄に終わるだけだから
0190nobodyさん
垢版 |
2017/11/25(土) 18:53:56.05ID:zV7O0yGe
mysqlなんですが
外部結合などの依存関係を無視して強制的に
データを削除したいんですがどうしたら良いですか?
0191nobodyさん
垢版 |
2017/11/25(土) 21:39:26.35ID:???
mysqlですかそうですか
0192nobodyさん
垢版 |
2017/11/25(土) 21:45:16.13ID:???
db板ってのがあったような
0193nobodyさん
垢版 |
2017/12/01(金) 10:17:37.90ID:???
pcntlが有効になっていない環境で、
Aさんがsleepしているのを Bさんが起こす
ということをしたいのですが、どうしたらよいでしょうか

pcntlがあればAさんはsignalハンドラ定義してsleepして
BさんがSIGUSR1でも投げればよいのですが・・・
0194nobodyさん
垢版 |
2017/12/01(金) 20:36:51.33ID:ZfGIb43l
いや〜噂には聞いてたがさ
F/Wも増えてるしphp開発の話も多いし
大丈夫だろうと思ったんだよ

実際にphp屋に転職したらマジ吐きそう・・・
0195nobodyさん
垢版 |
2017/12/02(土) 14:06:37.01ID:???
>>194
グダグタシステムのメンテとか?
0196nobodyさん
垢版 |
2017/12/02(土) 19:05:55.95ID:wRelxMGw
今時PHPに固執してる会社なんて
スパゲッティ屋に決まってるだろ

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

http://isucon.net/archives/51000131.html
ISUCON(いい感じにスピードアップコンテスト)では
本戦出場の53.3%がgolang使い
0198nobodyさん
垢版 |
2017/12/02(土) 19:13:22.27ID:wRelxMGw
※PHP組は予選で淘汰された
0199nobodyさん
垢版 |
2017/12/02(土) 19:14:32.65ID:???
pythonも淘汰されてるやんけぇ!
Ruby以下やん
0200nobodyさん
垢版 |
2017/12/03(日) 04:40:18.09ID:???
PHPはインタプリタ言語で開発速度優先
Goはコンパイラ言語で実行速度優先
一長一短だぞ
Goのコンパイル時間はC言語と比べるとめちゃ早いが
インタプリタ言語よりは遅い
0201nobodyさん
垢版 |
2017/12/03(日) 07:55:49.90ID:???
kuinって言語のコンパイルが爆速だったな
0202nobodyさん
垢版 |
2017/12/03(日) 15:58:47.22ID:???
kuinは流石に泡沫言語すぎるな
githubで公開されてない、萌え絵を全面に出してる時点で
評価は得られないだろう
0203nobodyさん
垢版 |
2017/12/03(日) 18:03:11.48ID:???
一つだけ言えることは

GOは糞
0204nobodyさん
垢版 |
2017/12/03(日) 18:05:18.15ID:???
Goむずかしいやん
PHPくらいのがチンパンにはちょうどいいんや
0205nobodyさん
垢版 |
2017/12/03(日) 18:11:45.82ID:???
>>204
わかる
なんつーかこう、肌に合ってる
0206nobodyさん
垢版 |
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()

こっちのほうが可読性高くね?
0208nobodyさん
垢版 |
2017/12/04(月) 13:31:21.58ID:???
GOは新言語が取り入れるべきヌル安全性がない
これは糞
0210nobodyさん
垢版 |
2017/12/09(土) 14:41:18.85ID:Dbh0aDdH
自宅鯖でWordPressを動かしてるんだが、ログイン状態でPCかブラウザがクラッシュして再起動すると、必ずログアウトされてる
PHPってブラウザ再起動したらセッション無効にするみたいな設定あったっけ?
どういう仕組みでこうなるのか調べたけど案外情報が無くてわからんかった
0212nobodyさん
垢版 |
2017/12/09(土) 15:31:04.88ID:Dbh0aDdH
それも考えたけど別のサイトではそうならないんだよな
0213nobodyさん
垢版 |
2017/12/09(土) 19:08:15.58ID:???
>>210
>自宅鯖+PC再起動
セッションはメモリ上に保存されてるからね、ログアウトも仕方ないね

ブラウザの場合はわからんが、ブラウザじゃなくて鯖が再起動になってるんじゃないの
0214nobodyさん
垢版 |
2017/12/09(土) 20:09:18.81ID:Dbh0aDdH
更に調べたらやはりブラウザのせいぽい
Operaでだけ発生しChromeではならない、が、何故なのかはまだわからない

>>213
鯖は再起動になってない
0215nobodyさん
垢版 |
2017/12/09(土) 20:38:19.56ID:???
operaが再起動でクッキー消失する設定になってるかなんかじゃないか
あと今のoperaは使わんほうがいいと思うぞ
せめてvivaldyのほうがいい
0216nobodyさん
垢版 |
2017/12/09(土) 21:34:00.94ID:Dbh0aDdH
>>215
同じOperaでもサイトによって挙動が違って謎
どこかにドメイン別の設定でもあるのだろうか…
0217nobodyさん
垢版 |
2017/12/09(土) 21:43:08.38ID:???
operaは中国企業が買収したし何がどうなってるかわからん
使うの怖いわ
原因も調べるだけ時間の無駄
ってかそもそも、今どの層が使ってるんだ?
0218nobodyさん
垢版 |
2017/12/09(土) 22:17:40.13ID:Dbh0aDdH
うーんVivaldyでも起きた…Operaの問題というわけでもないようだ
PHPのセッションに、ブラウザ閉じたら終わるみたいな機能ないよね?そもそも検知できないと思うし
0219nobodyさん
垢版 |
2017/12/09(土) 22:20:19.23ID:???
シークレットモードだったらぶっとばす
0220nobodyさん
垢版 |
2017/12/11(月) 09:14:23.38ID:???
クッキーの有効期限がブラウザ閉じるまでになってるんだろ
0221nobodyさん
垢版 |
2017/12/17(日) 12:45:40.44ID:D/sBsoe5
>>213
>セッションはメモリ上に保存されてるから

こいつ、何言ってんの?
0222nobodyさん
垢版 |
2017/12/17(日) 13:14:06.84ID:???
>セッションはメモリ上に保存されてる
でしょ
>>221は何言ってるの?
0223nobodyさん
垢版 |
2017/12/17(日) 18:02:08.76ID:???
実装次第だが少なくともPHPのセッションはデフォルトでファイルなはず
自分が使用してるバージョンではそうなってる
ブラウザは終了時にセッション(クッキー)を削除するのでそこでセッションは切れる
ただ異常終了した場合は前回のセッション復帰を試みるブラウザもある(ブラウザ次第)
PHPがセッションを削除するタイミングは
たしかアクセスがあった時にランダムで有効期限が切れたものを削除してた気がする
なのでサーバ再起動した場合でもまだ有効期限内なら確立されるはず(ブラウザ側で残ってれば)
サーバ再起動時にPHPのセッションを削除するようにしてる場合はこの限りではない
0224nobodyさん
垢版 |
2017/12/18(月) 15:18:34.00ID:thWVCCul
>>218
phpのセッションは、ブラウザのcookieに保存されたセッションIDと
サーバ側のセッションファイル(メモリキャッシュを使ってる場合はメモリ)の
突き合わせで行われる。
だからブラウザのcookieとサーバのセッションファイルを調べればだいたい原因が分かるよ。
たぶんcookieがないかセッションIDが変わってるだけだと思う。

君らのレス見てると、案外phpのセッションを理解してる人は少ないみたいだな。
まあたしかに分かりにくいけど。
0225nobodyさん
垢版 |
2017/12/18(月) 16:38:31.32ID:???
どちらかというとcookieの仕組みを理解してないだけだろう
俺も昔勉強したきりでもう覚えてないが
expiresが設定されてないとブラウザ終了時に消されるんだっけか
0226nobodyさん
垢版 |
2017/12/18(月) 18:13:20.39ID:thWVCCul
>>225
そう。

最近はフレームワークが面倒な作業を全部やってくれるから、
新人(でなくてもか)がphpのセッションを学ぶ機会がないんだよね。
session_start()さえ自分で書かないんだもん。
そりゃ何やってんだか分からんって。
できればこの辺のことは学校でやってきて欲しいんだがな。
0227nobodyさん
垢版 |
2017/12/18(月) 21:00:05.64ID:eDqIAEPx
ブラウザ終了時にクッキー消される場合があるのはわかるが、異常終了時はどうなるんだろう?
再起動時に前回異常終了したことを検知して、正しく処理をするのかな?その結果クッキーは消えると
0228nobodyさん
垢版 |
2017/12/19(火) 12:41:13.65ID:???
異常終了時はブラウザがCookieを消すという動作が出来てない可能性があり、
この場合ブラウザには残ってるということになる。
これらのCookieをどう次回の起動時にどう扱うかはブラウザ次第。
勝手に復元したり、復元するか聞いてきたり、リセットして通常起動をしたり。
0229nobodyさん
垢版 |
2017/12/21(木) 21:53:07.61ID:LS3FMJ0q
>>222

ヴァーカ
0230nobodyさん
垢版 |
2017/12/22(金) 06:40:12.07ID:???
中途半端に勉強してフレームワークを変にカスタマイズして
セキュリティホールができるよりかは何も出来ない方がいいという昨今
0231nobodyさん
垢版 |
2017/12/22(金) 08:32:30.47ID:???
そうやってできたセキュリティホールなんてそう簡単に検知出来ない
ソースがオープンであることが一番怖いのだよ
逆にオープンであるといろんな視点から修正も可能になるから
堅牢なものに仕上がるわけだけど
0232nobodyさん
垢版 |
2017/12/22(金) 12:18:36.73ID:???
Googleがemojiのユニコード化に乗り出したときにperlだとemojiをutf8にする決定版モジュールがすぐに出たし
PHPだと暫定的にHTML_Emojiを使ってたけど5.4以降の関数を使った新しいモジュールが見つからない
何かおすすめの携帯emoji自動変換ないでしょうか
0233nobodyさん
垢版 |
2017/12/23(土) 00:06:44.08ID:Xl1aztuq
お前は20年前から来たのか?
0234nobodyさん
垢版 |
2017/12/24(日) 19:23:17.05ID:???
今でもガラケー使ってる人いるだろ
0235nobodyさん
垢版 |
2017/12/25(月) 12:18:38.90ID:???
PHPerはないものを生み出すのが得意になるように
言語が誘導してくれてるんだから自分で作るんだ!!!!!!
0236nobodyさん
垢版 |
2017/12/28(木) 01:52:50.40ID:LaR6+9Gu
PHPerってある物を変に変えるのが得意だろ
0237nobodyさん
垢版 |
2017/12/28(木) 10:18:49.47ID:???
車輪の再発明が大好きだからな
趣味でやる分の傾向としては別に悪くはない
0238nobodyさん
垢版 |
2017/12/30(土) 12:09:28.28ID:YhlYw6jg
誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。

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

MHWTZ79CQR
0239nobodyさん
垢版 |
2018/01/04(木) 13:53:25.48ID:???
PHPから大量のデータを送る方法を教えてください
思いついたのが、
1、一旦ファイルに保存してファイルの一覧をクライアントに送る
2、クライアントから順次ファイルの送信を要求する
です
0240nobodyさん
垢版 |
2018/01/04(木) 14:01:30.28ID:???
専用のプロトコルでやり取りする
0241nobodyさん
垢版 |
2018/01/04(木) 17:18:29.54ID:???
Socket.ioなどを使えということでしょうか?
勉強してみます
0242nobodyさん
垢版 |
2018/01/04(木) 18:27:18.33ID:???
PHPもsocket使えるんですけどね
0243nobodyさん
垢版 |
2018/01/04(木) 20:06:31.03ID:???
npmがエラーはきまくりで進まなくなった。。。
なにこれ
Error: Cannot find module ....\npm-cli.js

socketは。。。portとかまためんどくさい話がありそうで。。。
0244nobodyさん
垢版 |
2018/01/04(木) 20:11:56.98ID:???
>>239は同期が必要なゲームデータのやり取りを想定してると思っての答えなんだろうけど。
1や2見るとそういう用途とは思えないな。
1がいまいち意味わからないけど。
0245nobodyさん
垢版 |
2018/01/10(水) 19:17:52.42ID:???
スレチとか低レベ質問だったらすまん
headerを使用したリダイレクトとApacheのリバースプロキシを利用したリダイレクトはどう違うんでしょうか?
レスのヘッダーの中身が違うんですか?
0246nobodyさん
垢版 |
2018/01/11(木) 08:02:03.52ID:???
headerはブラウザがページ遷移を処理する
リバースプロキシはサーバが接続処理する
前者はリダイレクト前後でURLが変わるが後者は見かけ上変化しない
0247nobodyさん
垢版 |
2018/01/12(金) 07:35:52.10ID:???
>>246
ありがとうございます
今朝検証したらその通りになりました

ちょっとハマってたので助かりました
0248nobodyさん
垢版 |
2018/01/22(月) 17:23:29.75ID:???
良くできてるプラグインとかに感動しなくなってしまった
0249nobodyさん
垢版 |
2018/01/23(火) 14:48:39.99ID:2Wa7Kih8
phpのf/wってルートネームスペースにエイリアス置きたがるけどさ
use句があった方が圧倒的にわかりやすいと思うんだが、なんか理由ってあるのん?
0250nobodyさん
垢版 |
2018/01/24(水) 21:33:51.91ID:wn68glNS
同一サーバでドメインごとにphpのバージョンを切り替えたいんですが
どうしたらいいですか?
0251nobodyさん
垢版 |
2018/01/24(水) 21:44:46.08ID:???
KubernetesでドメインごとにPods分ける
0252nobodyさん
垢版 |
2018/01/29(月) 23:40:26.63ID:???
Pythonおっそ・・・
PHPに戻ってきたよ
0253nobodyさん
垢版 |
2018/01/30(火) 20:55:34.50ID:???
Python遅いって一体何をしたんだ
0254nobodyさん
垢版 |
2018/02/04(日) 00:19:15.00ID:???
phpexcelを使って、読み込んだエクセルのマクロを実行する方法はないでしょうか
0255nobodyさん
垢版 |
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
0256nobodyさん
垢版 |
2018/02/04(日) 08:13:01.47ID:???
Windows Serverでやればできる
0257nobodyさん
垢版 |
2018/02/05(月) 03:33:46.05ID:???
PHP5時代ではコンストラクタはクラス名ではなく__constructを使う
public修飾子はつけるというルールがSHOULDだったと思うのですが
PHP7時代でもそうなのでしょうか?
0259nobodyさん
垢版 |
2018/02/05(月) 05:55:18.96ID:???
>>258
ありがとうございます
両方MUSTなんですね
0260nobodyさん
垢版 |
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のデータは問題なく取得できます。
原因だけでもわかるとありがたいです。
お願いします。
0262nobodyさん
垢版 |
2018/02/09(金) 19:13:46.61ID:???
>>261
ですよねー、取れるのが普通ですもんね
何故か自分の環境では取れないんですよ
特にfile_getにこだわってるわけではないんでcurlでもどちらでも良いんですが何故かbitbank.ccのデータだけNULLになっちゃう
0263nobodyさん
垢版 |
2018/02/09(金) 19:43:03.84ID:???
とりあえず環境かな, OS分からんし
可能ならPHPのバージョン上げるとか(5.3はもう死んだ, どころか5.5まで死んでる)

因みに手元ではcURLだけじゃなくfile_get_contentsも問題なし
0264nobodyさん
垢版 |
2018/02/09(金) 20:03:54.06ID:???
ありがとうございます。
PHPのバージョンを上げてから再度検証してみます。
0265nobodyさん
垢版 |
2018/02/09(金) 20:09:43.52ID:???
変えられるならもういっそ7.2まで上げてしまうといい
どうせ早いか遅いかだ
0266nobodyさん
垢版 |
2018/02/09(金) 23:22:33.34ID:???
HTTPS周りならOpenSSL関連かもしれんし
なんかヘッダが必要かもしれんからcontext作って渡すとか
基本的なことをやってから
0267nobodyさん
垢版 |
2018/02/10(土) 07:06:11.19ID:???
>>266
それやってもわかんなかったから質問したのよね
0268nobodyさん
垢版 |
2018/02/10(土) 09:41:56.07ID:???
お前もかよ
ビットコインブームにあやかりやがって!
0269nobodyさん
垢版 |
2018/02/12(月) 08:06:33.44ID:???
PHP経由で画像を出力する手法があるかと思いますが、この場合スクリプトで
いろいろと制限をかけることができ、セキュリティ上よろしいようですが
Apacheが即座に画像を返すのに対し、一度スクリプトを走らせて画像を出力するのは
パフォーマンス的に厳しい気がするのですが、どうなんでしょうか
0270nobodyさん
垢版 |
2018/02/12(月) 08:26:04.99ID:???
計測すればいいんじゃないか
一枚ぐらいなら楽勝だけど、アクセスごとに100枚も200枚も出してたら重くなると思う
とりあえずパフォーマンスなんて考えずに作ればいいよ

どうせ誰も使わないサイトだからwww
0271nobodyさん
垢版 |
2018/02/14(水) 18:29:59.40ID:???
PHPの開発環境のシェアは
Eclipseが8割り位占めてる?
0272nobodyさん
垢版 |
2018/02/14(水) 20:25:33.13ID:???
>>269
セキュリティ上別によろしくはない
何が目的かは知らないけどはっきりいって無駄だと思うぞ

>>271
いいえ Eclipseなんて1割もおらんだろ
0274nobodyさん
垢版 |
2018/02/14(水) 20:45:14.35ID:???
有料だけどPHPStorm使うと戻れないわ
0275nobodyさん
垢版 |
2018/02/14(水) 20:59:33.05ID:???
PHPStormの人気すごいな
使った人みんな同じこと言ってる
0276nobodyさん
垢版 |
2018/02/15(木) 00:18:11.97ID:???
>>72
それまじか?

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

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

PHP Stormもサーバ直結で開発出来ますか?
0277nobodyさん
垢版 |
2018/02/15(木) 03:37:49.22ID:???
サーバ直結の意味がわからん
0279nobodyさん
垢版 |
2018/02/15(木) 07:36:52.45ID:???
有料 PhpStorm(業界標準)>SublimeText>VS
無料 IDE組(NetBeans,Eclipse)>古参エディタ組(Emacs,Vim)>新参エディタ組(VSCode,Atom)>触り組(メモ帳に準ずる物)

こんな感じだと思う
ちなみに俺はVS
PhpStorm以外は分散してて1割以上シェアないと思う
0280nobodyさん
垢版 |
2018/02/15(木) 08:00:37.57ID:???
sakuraエディタやね
0282nobodyさん
垢版 |
2018/02/16(金) 13:55:30.64ID:???
ファイル管理のみ便利でDreamweaver使ってるわ
0283nobodyさん
垢版 |
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だけのリネームで問題ないのでしょうか?
0284nobodyさん
垢版 |
2018/02/18(日) 15:31:50.99ID:???
問題が起きた時にその問題について聞けよ
0285283
垢版 |
2018/02/19(月) 08:00:37.25ID:???
Visual Studioのアップデートがきてたので適用したら、
非互換とかになってPHP Toolsでの開発が出来なくなりましたw
1日で使えなくなってしまった。
0286nobodyさん
垢版 |
2018/02/19(月) 21:41:51.01ID:???
☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の
両院で、改憲議員が3分の2を超えております。
『憲法改正国民投票法』、でググってみてください。国会の発議は
すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
0289nobodyさん
垢版 |
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
0290nobodyさん
垢版 |
2018/02/28(水) 19:16:52.60ID:???
1人でphpで作っているプロジェクト(と言ってもDBでユーザ管理するぐらいのもの)の
進捗状況(編集履歴)を外部に見てもらうためにはBitbucketとか使えば良い?
1日の終わりにプロジェクトのルートディレクトリごと放り込めば
webで差分とかがわかるとかできたらいいんだけどどうでしょう?
0291nobodyさん
垢版 |
2018/02/28(水) 19:19:01.97ID:oG8SOZNq
createFromFormatの場合、!が無いと現在のシステム時刻で初期化されるとは確かに書いてありますが
直感的でなくて分かりにくい挙動だと思います。

http://php.net/manual/ja/datetime.createfromformat.php
0293nobodyさん
垢版 |
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が返ってきているのは
間違いないと思うんですが、なぜ、エラーが表示されず
真っ白なページになってしまうんでしょうか?
よろしくお願いします。
 
0295nobodyさん
垢版 |
2018/03/08(木) 06:24:23.39ID:???
PHPになんらかのエラーがあった場合、通常はレスポンスコードは200で返ってきて、
エラー個所を表示するようになってる。
どの種別のエラーを表示させるかというのはサーバ側(PHP)の設定次第だし、
エラーには時に重要な情報も含まれる可能性があるので、
第三者に見られないよう、エラー表示自体をしないことも可能。
また、レスポンスコードをどう返すかというのもサーバ次第で、
通常200のところを、500にすることも可能だし、
同じ500でも、PerlCGIとPHPでは返すドキュメント(body)を別にすることも可能だし、
もちろんbodyを含まない、ヘッダ情報のみを返すことも可能。

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

Chromeのやってることは、レスポンスにbodyがないので(=真っ白になる)、
ユーザに何が起きてるかわかるように、おせっかいにも補完表示してるだけと考えられる。
0296293
垢版 |
2018/03/08(木) 07:28:24.52ID:???
>>294-295
ありがとうございます。

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

何となく分かってきました。
ありがとうございます。
0297nobodyさん
垢版 |
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ではそういうことになるのだろう
0298nobodyさん
垢版 |
2018/03/08(木) 13:04:50.53ID:???
ちなみに500ページを表示させたいというなら
htaccessが使えるなら設定してみては?
apacheは詳しくないんで答えれないけどできそう
0299293
垢版 |
2018/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のエラー画面が返ってくる。
0300293
垢版 |
2018/03/08(木) 13:16:27.67ID:???
>>298
自作500ページを表示しようとして表示できないからおかしいなって思って、
いろいろ試して、Apacheデフォルトの500も表示されないって気付いた。

404とかは、自作にしたら自作が表示されて、
自作じゃなくしたらApacheのデフォルトが表示される。
0301nobodyさん
垢版 |
2018/03/08(木) 13:48:41.66ID:???
phpがエラー検出したあとapacheに対してこれを返してくれと
500レスポンスコードにContent-Length:0の空のHTMLを送ってるイメージ
0302301
垢版 |
2018/03/08(木) 14:16:08.24ID:???
if (responceStatus == 500 && responceBody.length == 0) {
 responceBody = readFile("/errors/500.html");
}
疑似コードだけど
こんな感じのをhtaccessで設定できるならいけるんじゃないのってことね
0305nobodyさん
垢版 |
2018/03/08(木) 15:12:09.63ID:???
PHPでどうこうするっていうソリューションはあんまりよくないよねえ
httpdでどうにかしたいところ
ところでresponceじゃなくてresponseだった恥ずかしい
0307293
垢版 |
2018/03/08(木) 17:13:23.25ID:???
>>301-302
真っ白になるイメージはまさに>>301だし、
やりたいことはまさに>>302の通りです。

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

ってことで、みなさんいろいろとありがとうございました。
500エラーではなく、PHPの中でエラーを処理して
普通のHTMLでエラーメッセージを出す、ということにしました。
ありがとうございました。
0308nobodyさん
垢版 |
2018/03/08(木) 22:15:46.47ID:???
PHPバカな子でごめんな
0309nobodyさん
垢版 |
2018/03/11(日) 00:58:34.82ID:???
>>293
大方PHPがmod_phpで動いてる
phpinfo()でSAPI APIを確認してみ
0310nobodyさん
垢版 |
2018/03/29(木) 15:13:07.71ID:XiaDFUEL
Composerのautoload.phpって、全然autoloadじゃねぇんだよな。
0311nobodyさん
垢版 |
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?

ここで終わってやがる…
0312nobodyさん
垢版 |
2018/04/02(月) 00:29:19.22ID:???
セマンティックバージョニング的にもメジャーバージョンアップは後方互換性破壊があり得る変更なわけだし
0313nobodyさん
垢版 |
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.


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


はぁ?
0315nobodyさん
垢版 |
2018/04/12(木) 08:21:18.40ID:???
FacebookがおもらししたのはPHPで構築されてたから?
0316nobodyさん
垢版 |
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をアクセス数多いサイトで使う時は
静的キャッシュを行ってサーバーに負荷掛からないようにするのがデフォらしい
0317nobodyさん
垢版 |
2018/04/17(火) 06:20:15.60ID:???
後はcssとjs、ファイルを分けずにhtmlの中に書いてしまう
0318nobodyさん
垢版 |
2018/04/17(火) 06:20:44.28ID:???
要は読み込むファイルはhtmlファイル一枚だけにする
画像もsvg
そうすれば超早い
0319nobodyさん
垢版 |
2018/04/17(火) 10:37:30.26ID:???
早い遅いいうけど人間の認識できる速度じゃないから
別に実用上はなんら問題ないんだよ
0320nobodyさん
垢版 |
2018/04/17(火) 10:56:24.98ID:???
ローディング遅けりゃ離脱増えるぞ
0321nobodyさん
垢版 |
2018/04/17(火) 14:52:40.68ID:???
そんなにI/Oにご不満ならメモリに全部展開しときゃいいよ
ユーザーの誰が気にするのかしらんけど
0322nobodyさん
垢版 |
2018/04/17(火) 22:46:50.61ID:???
>>319
少し違う
phpやdb構築の際、速度を気にせずに重い処理を平気で書くことが出来るようになる
「これ重くなるだろうなぁ・・・かいてまえ!」→やり直し
が無くなる
0323nobodyさん
垢版 |
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やで";
しか記述していません。
0326nobodyさん
垢版 |
2018/04/18(水) 23:39:44.72ID:???
何が原因ってまんまエラーに書いてるのにそれがわからんってのがわからんでw
0327nobodyさん
垢版 |
2018/04/22(日) 12:53:22.27ID:qxkyJl8C
phpMyAdminってインターネットに晒すとヤバイの?

まあDBのパス漏れたら何でも出来ちゃうよね
あるいはphpMyAdmin自体に何か脆弱性があってもパスが漏れて終わる
0328nobodyさん
垢版 |
2018/04/22(日) 19:29:29.60ID:???
>>327
それも分からないならweb制作やるべきじゃないと思う
0329nobodyさん
垢版 |
2018/04/24(火) 01:43:06.76ID:???
攻撃者は狙ったアプリケーションのデフォルトの配置場所やファイル名でアクセスして
200が返ってきたらさらに調べてみて狙ったアプリケーションであるなら
既知の脆弱性を利用した攻撃あるいは管理ページ等にデフォルト情報でログインを試みる

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

レンタル鯖の管理人でもなければ
どこからもリンクしない適当なディレクトリに展開しておけ
ついでにアクセス制限かけとけ
それだけでほぼ問題はない
0330nobodyさん
垢版 |
2018/04/24(火) 18:43:18.05ID:???
なんだかんだ批判はあるものの、ウェブ開発においてPHPが業界標準なんですね。
0331nobodyさん
垢版 |
2018/04/24(火) 18:44:52.12ID:???
phpMyAdmin自体がPHPで作られてるんだけど。

ところでphpは何の言語で作られてるんだ???
0335nobodyさん
垢版 |
2018/04/25(水) 09:45:41.44ID:Wx6vo3v+
phpMyAdminを複数の場所からアクセス出来るようにするには
SSHのポートフォワードを使えば良い?

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

SSH認証なら有効な鍵を持っている人だけがphpMyAdminにアクセスできる
SSH鍵自体にもパスワード掛ければ更に安全と思う
0336nobodyさん
垢版 |
2018/04/25(水) 14:25:39.76ID:???
まぁローカルホストからの接続に限定し, 認証と暗号化を備えたトンネルで接続するのであればちゃんと設定した上では安全でSSHポートフォワードでもVPNでも問題ない
VPNもセキュアでフリーな実装のOpenVPNとかあるから別に金もかからん
0338nobodyさん
垢版 |
2018/04/26(木) 01:50:14.09ID:???
制限もそんなガチガチの制限かけないで緩い制限でも効果はでかいのでは
攻撃なんてほとんど海外からだからね
jp制限かけられてるってわかればvpnとか通して偽装してくるかもしれないけど
他に狙うとこもあるしそこまでする攻撃者は稀なので
0340nobodyさん
垢版 |
2018/04/27(金) 12:05:11.16ID:kBikjo8b
開 2 ち ゃ ん ね る= 便 所 の 落 書 き ・ 痰 壷 の 更 に 劣 化 コ ピ ー の 3 流 掲 示 板
運 営 の 性 格 の 悪 い 引 き こ も り I T 土 方 メ ガ ネ ザ ル 早 く 死 な な い か な
0341nobodyさん
垢版 |
2018/04/29(日) 10:15:31.52ID:???
>>332
c言語は、web系の言語じゃないと思うが。
0342nobodyさん
垢版 |
2018/04/29(日) 11:47:12.71ID:???
>>341
は?
phpはCで動いてるのは常識だぞ
0343nobodyさん
垢版 |
2018/04/29(日) 12:33:52.69ID:???
>>342
じゃ、そもそもwebシステム最初からCで組めばいいじゃん
0344nobodyさん
垢版 |
2018/04/29(日) 13:52:45.22ID:???
>>343
別にCで書きたければ書いても良いけど?滅茶苦茶早くなる
あらゆるphpの資産を失うけどね。まぁ頑張って
0346nobodyさん
垢版 |
2018/04/29(日) 17:21:10.04ID:???
PHP自体が何で書かれてるって聞かれたらそりゃCだろ
PHPだけじゃなくPythonもRubyもCで書かれた処理系が一番使われてる

WebサーバもnginxもApacheもC
0347nobodyさん
垢版 |
2018/04/30(月) 01:36:56.71ID:???
>>341みたいなのがいるからPHPerはバカにされる
0348nobodyさん
垢版 |
2018/04/30(月) 06:51:03.66ID:???
紛れ込んだ初心者か例外だろ
もっと優しくしてやれよ
0349nobodyさん
垢版 |
2018/05/02(水) 04:09:38.08ID:???
スーパーグローバル変数の前後に.がついてる記述があるんですが
このドットはどういう意味なんでしょうか
例えばsql文をこんな感じで記述してたりするものです
$sql = "SELECT COUNT(*) FROM bbs WHERE name='''.$_POST["name"]."'";
0350nobodyさん
垢版 |
2018/05/02(水) 04:21:36.33ID:???
>>349
スーパーグローバルどうこうではなく文字列連結演算子
0351nobodyさん
垢版 |
2018/05/02(水) 14:58:58.69ID:???
count(*)だからたいして問題にはならんけど
それはsqlインジェクションの典型コードだから褒められたものではないな
0352nobodyさん
垢版 |
2018/05/02(水) 15:15:18.12ID:???
寧ろSQLインジェクションのコード例まである
0353nobodyさん
垢版 |
2018/05/02(水) 16:58:11.13ID:XHGDuEA2
$_POST['name']="';drop table bbs";
とか単行でできなかったっけ?
0354nobodyさん
垢版 |
2018/05/04(金) 18:40:21.61ID:???
>>353
出来ないはず
少なくともsqliteではできない
"忘れてるからでコメント入れとかないとシンタックスエラーになるわ
0355nobodyさん
垢版 |
2018/05/04(金) 19:02:58.13ID:???
UNIONすればいいから
0356nobodyさん
垢版 |
2018/05/11(金) 21:01:57.13ID:w2CoFO3p
opendir()を使って指定したフォルダ内のファイル名一覧を取得したいのですが、
一つのセッションで何回も opendir()実行すると、その度にディスクにアクセスして
サイトの表示が遅くなりますか?良い方法ありますか?
0357nobodyさん
垢版 |
2018/05/12(土) 00:19:20.02ID:???
中身かわったときに読み込んでDBなりファイルに書いときゃいい
0358nobodyさん
垢版 |
2018/05/12(土) 07:06:28.17ID:???
静的データ使うのがベストだがopendirの回数を減らす方向だと
処理ステップが多いopendirをする前に
より単純な方法で比較すればopendirまで行かなくて済む
例えばフォルダのfilemtimeをセッション変数にぶっこんどくとか

ユーザ用のデータで外からの更新がないとか
セッション開始時から終了時まで使いまわして問題がないなら
セッション変数にファイル一覧ぶっこんどきゃいい
0359nobodyさん
垢版 |
2018/05/12(土) 11:48:03.93ID:MPdqrTl4
>>357>>358
レスありがとうございました。
>セッション開始時から終了時まで使いまわして問題がないなら
その通りなので
>セッション変数にファイル一覧ぶっこんどきゃいい
そうします。
ちなみにstatic変数を使ってやっても良いですか?
0360nobodyさん
垢版 |
2018/05/12(土) 21:11:01.72ID:???
ページを表示した時点でプログラムが終了するので
次の動作(ページ遷移とか)をするとstaticじゃ保持されない
だからセッションやhiddenで持ちまわす
0361nobodyさん
垢版 |
2018/05/14(月) 12:05:38.71ID:bg4N3y/B
json_encodeで次のようになるデータを
[
{ "国": "アメリカ",
"地域": "ワシントン",
"人口": 19
},
{ "国": "日本",
"地域": "東京",
"人口": 7
},
{ "国": "日本",
"地域": "大阪",
"人口": 3
},
]
次のようにする方法教えて
[
"アメリカ": {
"ワシントン": {
"人口": 19
}
},
"日本": {
"東京": {
"人口": 7
},
"大阪": {
"人口": 3
}
}
]
0362nobodyさん
垢版 |
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
0363nobodyさん
垢版 |
2018/05/14(月) 20:14:32.47ID:???
$b[$v->{"国"}][$v->{"地域"}] = ["人口" => $v->{"人口"}];
だった
0364nobodyさん
垢版 |
2018/05/14(月) 22:20:49.44ID:???
ありがとう助かった
スレチだったみたいだなスマソ
0365nobodyさん
垢版 |
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ほどすっきりかけないからループの方がいいわ
0366nobodyさん
垢版 |
2018/05/15(火) 08:08:04.80ID:???
$obj->{""}
この表記はあまりなじみがないから
初心者じゃなくても結構悩むかもね
0367nobodyさん
垢版 |
2018/05/21(月) 07:51:27.75ID:???
phpで二回目にデータを渡すか、ユーザーの入力を待ちたい

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

こんなページが作りたいのですが、
phpに書いたものはボタンを押すとリセットするようで、二回目が作れません
もしくは、while(){ボタン入力まで待機}
こんな書き方をしたいのですが、どちらかの実現方法を教えて下さい
0368nobodyさん
垢版 |
2018/05/21(月) 07:58:36.40ID:???
sessionがあるみたいなのでやってみます
0369nobodyさん
垢版 |
2018/05/21(月) 14:36:19.77ID:???
gRPCがPHPでRPCサーバーを作るのには対応していないのって何で?

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

そうだとして何でPHP単体で動いて
テストだけでなく本番でも十分使えるHTTPサーバーが無いのか
0370nobodyさん
垢版 |
2018/05/21(月) 14:42:31.54ID:???
WEB画面から文字列を入力しDBにInsertすると文字の頭になんか変な文字が入ってました。

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

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

これは一旦何が入っているのでしょうか?
0371nobodyさん
垢版 |
2018/05/21(月) 15:29:39.14ID:???
>>367
JSONで非同期にしたら?

そんな処理でSessionとかcookie使うもんなの?
0372370
垢版 |
2018/05/21(月) 15:47:02.23ID:???
SQLで insert文で 'キ' と入力するとなぜか'キ'の左側に

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



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


BOM??らしいです。なんで'キ'入力の時だけ入るんだろうか。
0373nobodyさん
垢版 |
2018/05/26(土) 21:31:37.47ID:???
Laravelのドキュメントってどこにありますか?
公式laravel.jpのドキュメントはインストール設定と期待したものじゃないし
いくつか機能の紹介してるリンクはリンク切れだし
http://laravel4.kore1server.com/docs/routing
唯一まともなクイックスタートもちょっと少なすぎます
なんか1つテーマにしてサンプルを説明つきで作るようなやつはないんですかね
0375nobodyさん
垢版 |
2018/05/27(日) 10:33:53.98ID:???
PHPはFWが乱立しすぎて首をしめてるな
その点node.jsはどこいってもexpressでいいよだから楽
環境構築でいえばPHPのほうがだいぶ楽だから
サーバエンジニアがいないとどうしてもPHPになってしまうのだろう
0376nobodyさん
垢版 |
2018/05/28(月) 11:18:24.32ID:???
>>375
他に比べたらオプソFW乱立って程でもない

総じて質が低いのが問題
それに起因するのかオリジナルFWが輪をかけてゴミまき散らしてて首絞めてる
0377nobodyさん
垢版 |
2018/05/28(月) 12:20:46.25ID:???
このスレで使うFWを統一しよう(名案
そしたら他の死んだスレで一向に答えが来ない独り言しないで済むしな
0378nobodyさん
垢版 |
2018/05/31(木) 15:25:27.48ID:???
public function foo()
{
  return [
    'a' => 'b',
    'c' => 'd',
  ];
}

FWでこういうコードを入れる必要があるのですが、
何を意図してこんなことをさせるのですか?
$foo = ['a' => 'b', 'c' => 'd'];
でよくないですか?
0380nobodyさん
垢版 |
2018/06/07(木) 15:40:45.53ID:???
ここのイケメン先輩達に質問しようと思って質問内容を整理して文を書いていたら、途中で答えがわかりました
ありがとうございました
0381nobodyさん
垢版 |
2018/06/07(木) 16:12:26.53ID:???
おう良いってことよ
感謝を忘れるなよ
0383nobodyさん
垢版 |
2018/06/16(土) 10:55:24.21ID:XFveZCTu
PHPって1リクエストで1プロセス使うの?
効率悪くね?
1万件コネクションあったら1万プロセス生成するの?
無理じゃね?
0384nobodyさん
垢版 |
2018/06/16(土) 11:33:21.06ID:???
>>383
その辺はうまく最適化されてるからそこまで考えなくてもいい
実際、動いてるっしょ
0386nobodyさん
垢版 |
2018/06/16(土) 12:38:57.88ID:WL8j0F1D
>>384
貧弱なサーバーだと一万もプロセス生成できなくね?

プロセス大量に生成しない他言語の方が有利でしょ
0387nobodyさん
垢版 |
2018/06/16(土) 13:48:58.44ID:???
WebサーバがPHPを実行する際の仕組みに依存するんだから言語は関係ない

Apache+CGIならリクエスト毎にプロセス立ち上げるし
Apache+mod_phpならApacheのMPM次第だし
Apache/nginx+php-fpmならひとつのプロセスで複数のリクエストを捌くし
0388nobodyさん
垢版 |
2018/06/16(土) 14:16:49.57ID:XFveZCTu
>>387
>ひとつのプロセスで複数のリクエストを捌くし

同時には無理でしょ?

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

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

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

FastCGI自体1996年ぐらいに出てきてから
そんな進歩してないっぽいし
0389nobodyさん
垢版 |
2018/06/16(土) 16:23:45.43ID:???
>>386
もちろんそう
phpは基本Cのラッパーだから、直接C言語で書けば爆速で動くよ
いつ完成するかは知らないけど頑張って

>>388
言ってる意味がよくわからなi
おそらくリクエストが最多のgoolgleやyahooが重くて仕方ないならその意見はわかるけど、
一体何に対しての意見なの?
0390nobodyさん
垢版 |
2018/06/16(土) 17:51:24.35ID:EG3qtVlZ
レストランで喩えると
コース料理を全部出し終わるまで
次の客を待たせるのがPHP

料理を作り終わって
客が食べている間に時間が空いても
他の客の料理は決して作らない
0391nobodyさん
垢版 |
2018/06/16(土) 19:20:14.63ID:m7Q1wvls
客一人に一人ウェイターが付くシステムのレストラン=PHP

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

普通のレストラン=Node.js
一人のウェイターが複数の客の注文を取るので遥かに効率的
混雑していても客はとりあえず店に入って注文を出せる
客の人数がウェイターの人数を超えると一切注文を出せず、料理も来ないPHPとは対照的
混雑時もPHPほど大人数のウェイターは必要ない
0392nobodyさん
垢版 |
2018/06/16(土) 21:53:50.62ID:???
PHPスレで, しかもPHPに限らないことでPHPをディスってもなぁ

nodeが最適な場面は確かにPHPには向いてないだろうけど, それ以上でもそれ以下でもない
0393nobodyさん
垢版 |
2018/06/16(土) 22:52:57.98ID:DoWXS1Yy
プロセス生成(prefork)するので
今でも使われてるのってRubyのUnicornぐらいしか知らない
0394nobodyさん
垢版 |
2018/06/17(日) 14:49:10.70ID:???
知ったかが何人もいるのか。お先真っ暗感
0395nobodyさん
垢版 |
2018/06/17(日) 14:52:25.05ID:???
phpはそういう言語だからね
大丈夫
0396nobodyさん
垢版 |
2018/06/17(日) 15:15:30.67ID:dwEPgyzc
PHPでもnodeみたいな非同期処理を実現するものとして
php-pmとかSwooleがあるけど
本番で使ってる奴なんておらんやろ?
0397nobodyさん
垢版 |
2018/06/17(日) 15:47:59.14ID:???
結局goの方が早いしな
0398nobodyさん
垢版 |
2018/06/17(日) 16:21:08.45ID:???
非同期処理でややこしくするよりかはサーバー増やしたほうがよっぽどコストがかからん
0399nobodyさん
垢版 |
2018/06/17(日) 17:20:28.95ID:dwEPgyzc
Swoole使うと
最大で30倍近く速くなるらしいのでそれは暴論
0400nobodyさん
垢版 |
2018/06/17(日) 23:16:57.06ID:???
1万リクエストあるからって1万生成されるわけじゃないし
プロセス生成数なんて気にする必要はない
0401nobodyさん
垢版 |
2018/06/18(月) 00:32:48.78ID:???
実際Node.jsでそれだけ回すと非同期(笑)状態がよくあるしな
0402nobodyさん
垢版 |
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は知らない
0403nobodyさん
垢版 |
2018/06/18(月) 09:10:51.86ID:???
Swoole自体は面白いと思うけど, FPMのチューンが分からないからその比較に意味は無い
仕組み上捌けるリクエストは増えると思うけども
0404nobodyさん
垢版 |
2018/06/18(月) 16:16:03.97ID:???
Swooleって何?PHPのアプリケーションサーバー?
0405nobodyさん
垢版 |
2018/06/18(月) 16:20:58.89ID:???
非同期ネットワークIOの拡張モジュール written by C
0406nobodyさん
垢版 |
2018/06/18(月) 16:41:14.62ID:???
reactphpとはちがうのん?よくわからん・・・
0407nobodyさん
垢版 |
2018/06/18(月) 17:07:22.53ID:???
使ったことないからアレだけど, 機能的には重複すると思う
Cで書かれた拡張かPHPで書かれたライブラリかの違い
0408nobodyさん
垢版 |
2018/06/18(月) 17:15:36.91ID:???
なるほど、じゃSwoolのほうがよさそうだね
日本語資料少ないけどちょっと使ってみよう
0409nobodyさん
垢版 |
2018/06/18(月) 19:07:53.58ID:???
Falconみたく中身弄れる人限定とかじゃないの?
0410nobodyさん
垢版 |
2018/06/19(火) 01:56:57.10ID:???
従来PHPですべてやってたことを
PHP+AngularJSで開発しようとおもってます。
この場合PHPが行うことはWebAPIとして入力値からCRUDして
JSONなどAngularJS側で使うデータの出力でいいんですよね?
0411nobodyさん
垢版 |
2018/06/19(火) 23:28:58.36ID:sZEZNTYu
認証も必要
0412nobodyさん
垢版 |
2018/06/20(水) 08:19:33.32ID:???
>>411
どうもありがとうございます。
作ったことはないのですが、確か最近の応用情報かなんかの過去問見たとき、
WebAPI作る問題出てて、そこでも確かにHTTPSでBasic認証してました。
ちゃんとWebAPIの作り方調べてやってみたいと思います。
0413nobodyさん
垢版 |
2018/06/20(水) 09:14:44.17ID:Xst2QP85
>>412
何で例に出すのがBASIC認証なのか
APIならOAuthとかじゃねえの
0414nobodyさん
垢版 |
2018/06/20(水) 09:26:37.65ID:Xst2QP85
自分一人が個人的に使うシステムでも無い限り
OpenAPIやSwaggerで仕様を明確化した方がよい

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

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

OAuthはOAuthで難しい
変な実装をすれば車が通れる程の大穴セキュリティホールが開く
https://www.sakimura.org/2012/02/1487/
0416nobodyさん
垢版 |
2018/06/20(水) 20:32:46.35ID:UnZq46Ab
プログラミングを誰でも習得できる方法は、「前場アキドルのプログラミングマスター方法」というブログで見られるらしいよ。ネットで調べると見られるらしいです。

5648W
0417nobodyさん
垢版 |
2018/06/21(木) 04:46:25.17ID:joNehjCV
掲示板が作りたくてデータベースとのやり取りをするPHPとそれのインターフェイスとなるHTMLを作りました
投稿時の想定は「まずHTMLにアクセスしてそこで項目を入力してPHPを通してデータベースにデータを入力」です
これはAjaxやPDOを使うことで作ることが出来ました
しかしHTML(JavaScript)のソースコードからPHPのファイル名を見つけてPHPを直接叩くことで簡単に荒らしが出来てしまいます
この問題を解決したいと思い、PHPをドキュメントルートから外したのですがそれはアクセスが出来ず失敗に終わりました
皆さんはこのような問題に対してどのような対策を施しているのでしょうか?
0418nobodyさん
垢版 |
2018/06/21(木) 05:56:58.20ID:???
相手が荒らすのに苦労する仕組みを作るといい

1文字 同じ文字のみ 英数字のみ URLとかスパムに使われそうなものを制限する
連投制限の仕組み作る(IPベース、クッキーベース、セッションベース、それら組み合わせ)
若干面倒な登録を経て登録者のみ投稿できる会員制にする
ログと投稿をつきあわせて類似度を比較する(処理は遅くなる)
AIで意味のある文章か判断する(PHPerには難易度が高すぎる)
0419nobodyさん
垢版 |
2018/06/21(木) 06:50:01.75ID:???
ワンタイムトークン
0421nobodyさん
垢版 |
2018/06/21(木) 17:51:48.90ID:???
直接PHP叩くのと、フォームから入力するのと、
マクロにとっては荒らしのしやすさになんの差もないと思うのだけど。
0422nobodyさん
垢版 |
2018/06/21(木) 22:09:54.17ID:p4z3zI1o
reCAPTCHA v3ではユーザーのアクションなしに相手がロボットがどうか
判別できるようになるらしい
0423nobodyさん
垢版 |
2018/06/22(金) 06:56:12.83ID:0CbeJ1vw
回答ありがとうございます

>>418-420
ワンタイムトークンが良さそうだと思いました

>>421
マクロだと確かにそうですね
IPアドレスで連投を規制したりすることも検討してみます
0424nobodyさん
垢版 |
2018/06/22(金) 14:11:43.65ID:HDxTbLco
PeachPieって言う.NETでPHP動かす環境あるらしいけど
どうなの?
そもそも使い物になる?
0425nobodyさん
垢版 |
2018/06/22(金) 21:01:21.02ID:???
検索したらエロい店ばっかりでてきて吹いた
0426nobodyさん
垢版 |
2018/06/22(金) 21:02:21.49ID:???
>>424
使ったこと無いけど、ASP.NET Webサーバー使ってるなら良さそう
ってかそれ意外になにもメリットなさそう
0427nobodyさん
垢版 |
2018/06/22(金) 21:16:34.26ID:???
力技すぎて面白い
0429nobodyさん
垢版 |
2018/06/23(土) 11:55:24.07ID:???
CILにコンパイルされてから実行されるわけだからパフォーマンスは向上するわな(Phalangerと同じ)
あとはエクステンションがどのくらい互換性持って提供されるかだと思う
使い物になるかで言えば公式が「まだexperimentalだよ」って言ってる以上は(productionでは)全く使えない

>>428
plaintextのベンチとか意味あるの?
0430nobodyさん
垢版 |
2018/06/23(土) 12:38:28.80ID:JGE8gBSU
単なるプレーンテキストの送信でも言語やフレームワークによってかなり差が出るのは分かる

PeachPie自体はまだ実験的な物ではあるが
WordPressは既に動かせるらしい
0431nobodyさん
垢版 |
2018/06/26(火) 00:02:49.58ID:vSUzM4yv
composerってメモリ使い過ぎじゃね?
サーバーの利用可能なメモリが少ないとSymfony4のインストールすら完了しない

composerのロックファイルは
十分メモリのあるローカル環境で作り
メモリーの少ないサーバーではロックファイルからcomposer installするのがオヌヌメらしい
とは言えもう少し少なく出来ないのか?
0433nobodyさん
垢版 |
2018/06/26(火) 00:10:24.54ID:R+4nVO22
あくってなに?
0435nobodyさん
垢版 |
2018/06/28(木) 16:38:17.84ID:???
早くしろよ

あくしろよ

あく
0436nobodyさん
垢版 |
2018/06/28(木) 20:03:07.10ID:???
汚ねえスレだなあ
0437nobodyさん
垢版 |
2018/06/29(金) 00:44:22.34ID:???
>>410あたりを見て気になったんだけど
API作るというだけでは認証機構入れる必要これっぽっちもないよね?

BASIC含め簡単なものや固定のものは投げてる要求確認すれば丸わかり

バッチ等からのアクセスが主だったり他サイトに利用させるとかが絡むなら
事前認証してtoken吐いて……って機構が必要かもしれないけど>>410はブラウザ経由

認証つけるにしても、もしAPI以外でログイン認証してるならそっちのセッションをそのまま使える
0438nobodyさん
垢版 |
2018/06/29(金) 08:59:46.28ID:???
いろんなところから利用可能にするためにWebAPI使うんじゃないのか
0439nobodyさん
垢版 |
2018/06/29(金) 09:31:29.33ID:???
そらTwitterみたいに本家がユーザ認証前提の仕組みで他所でも認証してあーだこーだって話なら、な
例えばYahooのルビ振りWebAPIなんかは認証なんてない
0440nobodyさん
垢版 |
2018/06/29(金) 10:47:32.20ID:???
appidってのがそうなんじゃないの
0441nobodyさん
垢版 |
2018/06/29(金) 12:09:11.00ID:???
事前登録したIDを送るのは認証とはちょっと違くね
0442nobodyさん
垢版 |
2018/06/30(土) 13:16:02.58ID:HFlHS16J
composerはなぜかパッケージのダウンロードが一個ずつって特徴もある
並列化する非公式プラグインはあるが
何で公式は並列ダウンロードしないのか

https://github.com/hirak/prestissimo
0443nobodyさん
垢版 |
2018/06/30(土) 13:23:07.35ID:???
なぜかって普通だし
さして重要じゃないだろそれ
0444nobodyさん
垢版 |
2018/06/30(土) 14:09:23.84ID:HFlHS16J
並列ダウンロードが当たり前の他のパッケージマネージャに慣れていると
遅く感じる

プラグイン作者によるプルリクエストがcomposerにあったが
マージされるのはいつか分からない
0445nobodyさん
垢版 |
2018/06/30(土) 14:13:48.30ID:???
composer使うのやめればいいじゃん
0446nobodyさん
垢版 |
2018/06/30(土) 15:02:10.11ID:TwF5k2FW
PHPもやめます
0447nobodyさん
垢版 |
2018/06/30(土) 17:48:37.84ID:???
そもそもcomposerってなんで出てきたの?
必要なのこれ
composerじゃなきゃダメなことなんかあるの
0448nobodyさん
垢版 |
2018/06/30(土) 18:04:13.84ID:grfnyPlf
知らないのに使わなければ良いとか言ってんの?
0449nobodyさん
垢版 |
2018/06/30(土) 18:11:10.91ID:???
フレームワーク使いたい奴には必須かもしれないけど
それ以外は別に使わなくても問題ない っていうイメージ

つか何故公式が云々って公式の気持ちなんか知るか国語のテストかよ
0450nobodyさん
垢版 |
2018/06/30(土) 18:44:02.99ID:grfnyPlf
composerの中の人は忙しいので
並列ダウンロードは皆があったら便利だと思う機能とは知っているが
優先度を低くしている
そんな感じでプルリク作成から2年経った
0451nobodyさん
垢版 |
2018/07/01(日) 01:30:55.83ID:???
あれから2年、君は成長できただろうか
0452nobodyさん
垢版 |
2018/07/01(日) 12:23:54.18ID:???
composerは車輪の再発明が嫌いな
再利用大好人間たちがコードを持ち寄って使いあったり
そこから新しいのを作るためのなれ合いツール
0453nobodyさん
垢版 |
2018/07/01(日) 12:49:01.19ID:???
pear/peclが要らなくなるわけじゃないんだよな
0454nobodyさん
垢版 |
2018/07/01(日) 13:49:42.07ID:???
peclはともかくpearはいらないだろ
0455nobodyさん
垢版 |
2018/07/02(月) 09:37:25.47ID:???
composerにあるライブラリって全部PHPでしょ?
pearを進化させたようなもんだよねたぶん
0457nobodyさん
垢版 |
2018/07/03(火) 19:57:52.06ID:???
最近必死すぎだろw
飢え死ねアフィカスwww
0458nobodyさん
垢版 |
2018/07/03(火) 20:05:02.85ID:???
ComposerのロゴはGo以来のイラッと感を覚えるわけよ
0459nobodyさん
垢版 |
2018/07/03(火) 22:45:29.42ID:nJxIsGZ6
PHPの拡張ってプロジェクト毎にはインストール出来ない?

拡張を実行時に動的に読むdlって関数が昔あったらしいが
削除されてるし
dlは使い物にならなかったのか

他言語ではC拡張のあるライブラリも
他のライブラリと同じ様に
そのプロジェクトだけのインストールができるのが普通
0461nobodyさん
垢版 |
2018/07/04(水) 00:54:24.18ID:???
>>459
現状出来ない
実行時に拡張をロードする機能自体が存在しないのでどうにもならない
やりようがあるとすれば実行時ロード機能を提供するPHP拡張を作成することくらい
PECLに登録して最終的に本体にバンドルされるところまで至らないとエコシステムには取り込まれないだろうなぁ
rasmusとかandiとかzeevとかの基幹メンバーがとんでもなく保守的だし正直何やっても絶望的だと思う

この辺は割とマジで根本的に設計上の欠陥だと思うわ
0462nobodyさん
垢版 |
2018/07/04(水) 02:12:15.23ID:???
.phpから拡張を読み込むことができるようになると
セキュリティホールが量産されそうな気がするが
その辺、大丈夫なのか?
0463nobodyさん
垢版 |
2018/07/04(水) 03:09:24.37ID:???
何となくそういう懸念が浮かぶのは分かる
ただ他言語, 具体的にはPythonとかRuby, Nodeなんかでは頻繁に使われてる
system系の関数使って実行ファイルを叩くのとどう違ってくるのかと考えると別に実行時に拡張ロード出来ても良かろう(dlが削除されたのは安定性が理由だと書いてあるし)
0464nobodyさん
垢版 |
2018/07/04(水) 03:49:54.33ID:???
PHPの用途で動的に読み込めると何が嬉しいのか、
まともな理由がないから削られちゃったんだろ
0465nobodyさん
垢版 |
2018/07/04(水) 06:31:20.45ID:???
プロジェクト毎にPHPインストールすりゃいいんじゃね
0466nobodyさん
垢版 |
2018/07/04(水) 07:52:00.71ID:???
>system系の関数使って実行ファイルを叩くのとどう違ってくるのかと考えると

systemやexecは、php.iniで包括的に設定するしか手がない disable_functions 設定で禁止できる
かなり違うんじゃないかね

http://php.net/manual/ja/info.configuration.php#ini.enable-dl
>このディレクティブは、Apacheモジュール版のPHPを使用した場合にのみ 有用です。
>PHPの動的ロード拡張機能をdl()で 仮想サーバー毎またはディレクトリ毎にオンまたはオフに変更することが できます。
>
>動的ロード機能をオフにするのは主としてセキュリティ上の理由によります。
>動的ロード機能により、 open_basedir の拘束を全て 無視することが可能になります。
0467nobodyさん
垢版 |
2018/07/04(水) 09:59:47.40ID:VNkVp5lL
そもそもdlって最近は削除されて使えないんじゃなかったの?
0468nobodyさん
垢版 |
2018/07/04(水) 20:40:21.34ID:???
exec使える状態って
アホなアップローダとか置いてた日にはopen_basedirの拘束なんて無視して好き放題されちゃうよね
0469nobodyさん
垢版 |
2018/07/05(木) 04:15:11.30ID:???
>>466
いや, php.iniだけで動的モジュールロードの可否を与える(php.iniのみで設定可能な)ディレクティブがあれば一緒だろ
自分でdlの例出してるじゃん

mod_phpで実行する場合は権限がWebサーバになるからそれが嫌だというのはよく分かるが
0470nobodyさん
垢版 |
2018/07/05(木) 04:17:30.15ID:???
変なところにペーストしちゃったけどまぁいいや
0471nobodyさん
垢版 |
2018/07/05(木) 08:10:38.44ID:6vNW6Lds
dlは安定性に問題があるから削除したって言うけど
他の言語で出来ていることが何で出来ない?
PHPはリクエストの度にメモリの内容破棄するから?
0472nobodyさん
垢版 |
2018/07/05(木) 16:56:15.00ID:???
extensionの動的ロードしたいってどんなとき
0476nobodyさん
垢版 |
2018/07/06(金) 14:57:23.38ID:P0O2iWzc
PHPは巨大化し過ぎた
山ほどあるビルトイン関数を削除して
プログラミング言語に最低限必要なライブラリだけをOOPで作り
使うかどうか分からない機能は動的ロードするようにすべきだ

そんな事したらもうPHPじゃない?
そんなの知るか
0477nobodyさん
垢版 |
2018/07/06(金) 15:48:38.10ID:g8pVEt14
そこまでするならフォークして別言語にしろ
QIQとかかっこいい名前付けてもいいぞ
0478nobodyさん
垢版 |
2018/07/06(金) 15:51:08.89ID:???
>>477のセンスを向上させるにはどうしたらいいですか
0479nobodyさん
垢版 |
2018/07/06(金) 17:09:27.76ID:???
ビルトイン関数なんて削っても
PHP本体のソースコードがすっきりするだけで
別に劇的に早くなるわけじゃないしユーザ側が受けるメリットなんて大してないだろ
0480nobodyさん
垢版 |
2018/07/06(金) 20:02:27.67ID:AtnEoX2L
すっきりしたら
ごちゃごちゃの状態よりバグが少なくなったり
本体が小さくなるとかのメリットはある

配列とか文字列がプリミティブ型みたいな扱いなのも
なんとかしる
array_系の関数が重ねて適用しようとしたら使いづらいったらありゃしない
0481nobodyさん
垢版 |
2018/07/06(金) 20:52:45.52ID:???
デフォルトでなんでもアリだからこそ受けてると思うんだけどな
今の時代で多少軽くなってもたかが知れている。ってかそもそもそんなに重くないだろう
そんなに重いならsmartyでも使えばphpの負荷は大きく下がる
0482nobodyさん
垢版 |
2018/07/06(金) 21:03:08.11ID:???
smartyでphpの負荷が下がるってどゆこと
0483nobodyさん
垢版 |
2018/07/06(金) 21:30:44.60ID:YHCASoUv
ビルトイン関数使ってたら
テストを書く時モックするのが難しい
time()とかrand()とか

名前空間使ったハック(\timeのように書いてると不可)やPHP拡張を使う方法もあるが
他の言語だとそんなの必要ないじゃん
キモい

テストを全く書いてない奴はお帰りください
0484nobodyさん
垢版 |
2018/07/06(金) 22:22:39.57ID:???
rubyのnokogiriみたくネイティブライブラリをラップするライブラリって使えれば需要あると思うけど
特にcomposerが普及した今なら更に
0485nobodyさん
垢版 |
2018/07/06(金) 23:05:33.81ID:wqmurizE
今どきsmartyって…w
0486nobodyさん
垢版 |
2018/07/07(土) 07:12:24.91ID:???
php4時代のコードでも少しの変更でphp7で動くようにできるというのがphpのメリットで
何するにしても後方互換の問題があるわけで
pythonのような英断をしなければphpが変わることはないし
成熟してしまって時期的にそのチャンスはもう逃した
お前らがforkして新php作ればいいよ
まあオリジナルの差分をコミットする作業が面倒で3日で匙投げるだろうが
0487nobodyさん
垢版 |
2018/07/07(土) 12:18:10.37ID:y8vJRkpl
既にHackで爆死経験済みだろ。
0488nobodyさん
垢版 |
2018/07/07(土) 14:07:12.63ID:???
pythonはpythonで2と3が両立していた時期があってあれはハチャメチャだった
0489nobodyさん
垢版 |
2018/07/07(土) 14:21:17.62ID:???
php++の前段階として既存の糞ビルトイン関数のラッパークラスをphpで作ればいいよ
0490nobodyさん
垢版 |
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;
 }
}
0491nobodyさん
垢版 |
2018/07/07(土) 15:39:21.40ID:2YJkuak7
あらゆるライブラリがそのラッパークラスとやらに対応してくれないと
何度も変換する必要があって使いづらい
0492nobodyさん
垢版 |
2018/07/07(土) 16:24:29.33ID:???
言語ごとラッパー作るなんてできるのか?
0493nobodyさん
垢版 |
2018/07/07(土) 19:39:28.88ID:???
イメージ的にはJavaScriptに対するjQuery
jQueryの書き方に慣れてきたころにjQueryの構文やオブジェクトを実装したJavaScript2登場みたいな
0494nobodyさん
垢版 |
2018/07/07(土) 20:28:57.57ID:2YJkuak7
PHPの言語仕様が嫌だが
PHPのライブラリや既存コードも使う必要があるってなら
他の言語で書いてPHPに変換出来るAltJSならぬAltPHPを使えば良いかも

ただ、PHPの場合それが出来て
ある程度人気があるのはHaxeだけだと思う
JSは本当に色々あるのに

https://stackoverflow.com/questions/6551089/is-there-anything-like-coffeescript-for-php
0495nobodyさん
垢版 |
2018/07/07(土) 20:35:32.20ID:2YJkuak7
HackはPHPと互換性があるがVMも違うやつ使う必要があるから
AltPHPでは無いよね
0496nobodyさん
垢版 |
2018/07/07(土) 20:43:49.76ID:???
糞だと思うなら使わなけりゃいいじゃん
0497nobodyさん
垢版 |
2018/07/07(土) 20:53:26.11ID:???
JSはPHP以上にカオスだと思うんだけどな
0498nobodyさん
垢版 |
2018/07/07(土) 20:55:25.59ID:???
JSはundifendeの辺りが怖すぎる
0499nobodyさん
垢版 |
2018/07/08(日) 14:20:25.97ID:???
そんなにjsがいいならjsの子になっちゃいなさい!
0500nobodyさん
垢版 |
2018/07/08(日) 15:23:04.10ID:4WOWpkJq
JSはブラウザで動くのがJSしか無いから
AltJSみたいのが生まれたけど
サーバーサイドは別に代わりがいくらでもあるしね
0501nobodyさん
垢版 |
2018/07/08(日) 15:34:54.96ID:???
ブラウザで動くのがjsしかないのが異常というか
jsだけとはいえブラウザで動かせること事態が本来異常というか
0502nobodyさん
垢版 |
2018/07/08(日) 15:47:47.44ID:???
jsで、任意のファイルを読み書きできるの?

出来てしまうとセキュリティ上やばい気がするのだが。。。
0503nobodyさん
垢版 |
2018/07/08(日) 16:18:42.43ID:4WOWpkJq
>>502
なんの話?
ブラウザのJSは勝手に他サイトやファイルシステムの内容を読めるAPIは無いし
脆弱性を利用してブラウザのセキュリティを突破しようにも
サンドボックスがあったりして難しい
0504nobodyさん
垢版 |
2018/07/08(日) 17:48:47.31ID:???
サーバサイドプログラムでjsを使う場合の話です。

任意のファイルの読み書きはできるのでしょうか?
0505nobodyさん
垢版 |
2018/07/08(日) 18:08:13.66ID:???
node.jsならできるよ。
require('fs');
0506nobodyさん
垢版 |
2018/07/08(日) 21:06:37.76ID:???
jsだからどうという話ではないな。nodeがそうだというだけで。
0509nobodyさん
垢版 |
2018/07/09(月) 14:38:37.47ID:???
>>502=>>504なら
なぜPHPならセキュリティ上問題ないと思った?ていう
まぁ多分本人が考えてることと他のやつが考えてることが違うのだろうけど
0510nobodyさん
垢版 |
2018/07/09(月) 14:59:42.48ID:???
まあお茶でも飲んで落ち着けよハゲ
0511nobodyさん
垢版 |
2018/07/09(月) 19:52:51.86ID:???
これが落ち着いていられるか!
0512nobodyさん
垢版 |
2018/07/14(土) 17:07:18.88ID:8nY3xhKd
このスレであってるかな…?
掲示板を作れるようになりたいんだが、正直マジでCSSとHTMLと少しのPHPの知識(スクレイピングなど)ぐらいしか知識がなくてどういう仕組みなのかわからない。
PHPで掲示板って作れる?
理想としてはガールズちゃんねるそのまんまなのが作れたら最高
0513nobodyさん
垢版 |
2018/07/14(土) 17:24:51.99ID:???
掲示板と言っても、DBを使う/使わないで難易度が大きく変わる

作らなくてもその辺にサンプルどころかそのまま使えるものが山程落ちてるよ
それを改造するところから初めてみては
0514nobodyさん
垢版 |
2018/07/14(土) 17:37:27.52ID:8nY3xhKd
>>513
DBを使わないPHPの簡易掲示板はコピペしたり改造したりしてなんとか作れた。
ただ、txtファイルに書き込みデータを保存する方法だと簡易的すぎるかなと。

理想はガルちゃんみたいにユーザーが自由にトピックを立てられる形にしたいから、DBを使ってやりたい…

どっかにわかりやすい雛形でもあればいいんだけど、何から手をつければいいかすらわからない…
0515nobodyさん
垢版 |
2018/07/14(土) 17:46:54.13ID:???
>>514
俺も昔やろうとしたんだけど、掲示板はセキュリティに気をつけないとあっという間に終わる
更にセキュリティ的に問題なくても、連投や巨大投稿、大量の改行コードだけの投稿などをどう取り扱うかで永久に終わらない

トピックというかスレでいいなら
「2ch風掲示板 cgi」
「2ch風掲示板 php」
この辺で検索してみてはどうかな
0516nobodyさん
垢版 |
2018/07/14(土) 17:48:37.61ID:???
要求仕様を実現するのに最低限必要なことと、そうでないことを切り分けられる頭がないと無理

ガルch形式のbbsも2ch形式のbbsもc, perl, php, その他わりとどんな言語でも作れる
それとtxt方式かDB利用かは直接関係ないし
どちらにしてもどのようにデータを読み書きするかという設計を自分で出来ないと話にならない

コピペと改造でなんとか、ってレベルで何が簡易的なのか判断しようとしてる時点でおかしいことに気付け
0517nobodyさん
垢版 |
2018/07/14(土) 17:50:06.34ID:???
まぁこういうアドバイスはガン無視して、結局自分で作ってから気づくんだよね
俺の時もそうだった
とりあえずDBは使わない形がいいよ、セキュリティと言う名の闇が待っている
0518nobodyさん
垢版 |
2018/07/14(土) 17:54:21.71ID:???
技術がなにで出来てるのか勘違いしてるパターン
0519nobodyさん
垢版 |
2018/07/14(土) 17:55:49.32ID:???
cgi拾ってきてcssとjs設定すれば終わりなのに、何でそんなに難しくしたがるんだろう
0520nobodyさん
垢版 |
2018/07/14(土) 18:23:17.42ID:???
テキストかデータベースかは、見た目や運用上の設計には関係ないから、とりあえずテキストでいいと思うよ。
書き込みや読み込みの処理の部分をあちこちでやらずに1箇所で行うように設計すれば、あとでデータベース式に変更するのも修正箇所が少なくて済む。

テキストファイルは拡張子をphpとかplとかにして、直接アクセスされたら実行エラーになるようにしておけばよいかと。
0521nobodyさん
垢版 |
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);
}
0522nobodyさん
垢版 |
2018/07/14(土) 18:37:57.75ID:8nY3xhKd
>>515
っぽいねー。
実はtxt自動生成して書き込み保存する簡単な掲示板を設置して見たことがあるんだが、放置してたら謎の大量文字化け(スクリプト?)の投稿で荒らされまくってダメだった…
0523nobodyさん
垢版 |
2018/07/14(土) 18:39:40.35ID:8nY3xhKd
>>516
ありがとう。
txtかDBってとこがポイントではないんだね。
txtファイルでも書き込み内容の分類やら保管やらをしっかり設計できれば運営していけるってことか…。
なんとなく通常のサービスはDBを利用してるからDBが正義だと思ってたわ。
0524nobodyさん
垢版 |
2018/07/14(土) 18:44:13.44ID:???
まぁ最初から完璧なものなんて作れるわけないしまずはウダウダ言ってないで動くものを作れと
0525nobodyさん
垢版 |
2018/07/14(土) 19:21:07.65ID:???
>>522
海外アクセス弾くだけでほぼ無くなる。「htaccess 海外 拒否」などで検索

もしくはNGワードの処理をかます。
これは書き込み後にテキトーに判定してdie()するだけでいい。めんどくさい事は後で考えて、生産的な事をまずやろう
0526nobodyさん
垢版 |
2018/07/14(土) 20:48:13.31ID:???
>>525
私は書き込み文字の中に全角文字がひとつも無かったら、「全角文字を含めてね」ってメッセージを出して弾くようにしたら、海外のスパム書き込みは100%排除できました。
0527nobodyさん
垢版 |
2018/07/14(土) 21:12:36.64ID:???
>526
頭いいな、いろんな意味で完璧な対策と思う
素直にすごい
0528nobodyさん
垢版 |
2018/07/14(土) 21:25:53.98ID:???
中国弾けなさそう
0529nobodyさん
垢版 |
2018/07/14(土) 21:46:15.25ID:???
>>528
確かに中国語だと弾けないですね笑
でも今まで中国語の書き込みは無いです。

てか、もし私が中国のスパム業者なら、日本や欧米の掲示板に中国語で書き込んだりせず、書くならやっぱり英語だと思います。
0530nobodyさん
垢版 |
2018/07/14(土) 23:27:28.81ID:???
ジェレレーターw
0531nobodyさん
垢版 |
2018/07/15(日) 14:57:05.88ID:OQU8pbJ/
考える人より手を動かした人の方が早く覚えるよ
まずは本買うなりサイト見るなりして作ってみればいい
0532nobodyさん
垢版 |
2018/07/15(日) 18:25:13.91ID:???
外部設計と内部設計の違いもわからないような奴が
いくら本を読んでも手を動かしても100%無理
既存のサービスやプログラムをとっかかりにして
仕様も機能もひとつひとつなぜ存在するのかなぜこうなってるのか学ぶしかない
0533nobodyさん
垢版 |
2018/07/15(日) 18:40:30.19ID:???
公開されてるの?
0534nobodyさん
垢版 |
2018/07/16(月) 01:05:08.50ID:???
公開されてるのもある
公開されてないものも設計を考える力を養うにはもってこいの材料
0535nobodyさん
垢版 |
2018/07/16(月) 21:26:48.20ID:???
!omikujiみたいな公開しないとわからん機能じゃなくて
使ってて目に見える部分であれば
たいていどういう風に作るかイメージが沸く
このスレの人はtwitterだろうがfacebookだろうが作ろうと思えば作れるんじゃないか?
気力がない 作っても流行らない うっかり流行ったら500との闘い 解消するためにサーバ月何十万
PHPerの限界とは経済力と時間の限界なのである
0536nobodyさん
垢版 |
2018/07/16(月) 21:30:35.61ID:Jh/2B4in
AWSもLinuxもそこそこ扱えるし作ろうと思えば作れるけど、
レッドオーシャンに飛び込むような元気はない
0538nobodyさん
垢版 |
2018/07/16(月) 22:36:10.37ID:???
機能それぞれ単体なら比較的容易
全部まとめて、さらにセキュリティ、速度、……となると設計だけでも
かなり複雑になってくるから時間がかかるようになる

ただ、10年前の自分じゃ機能単体もおぼつかなかったと思う
0539nobodyさん
垢版 |
2018/07/17(火) 20:43:36.89ID:???
>>536
今の知識もったまま20年前にタイムスリップしたいよな
0541nobodyさん
垢版 |
2018/07/20(金) 17:25:59.13ID:???
JSのように
$a = 10;
$b = $a || 20;
echo $b; //20
にならんかなあ
これ糞便利なんだけど
論理演算子はorだけでもいいよねえ
0542nobodyさん
垢版 |
2018/07/20(金) 17:26:34.38ID:???
$a = 10;
$b = $a || 20;
echo $b; //20
ごめんこれ10だわw
$a = 0って書いたつもり
0543nobodyさん
垢版 |
2018/07/20(金) 17:50:29.12ID:???
null合体演算子(??)を使え
短絡評価した結果何を返すのかなんて後から変えられるわけねぇだろ
0544nobodyさん
垢版 |
2018/07/20(金) 19:43:58.83ID:???
型ってもんがあるからtrue/falseで返してくれないと怖い
0546nobodyさん
垢版 |
2018/07/20(金) 23:26:40.30ID:???
>>545
いっそそこまで覚悟出来るならやればいいとは思う
混乱はあったけど結果としてPythonの決断は正しかったのだろう

とは言え短絡評価を結果をbooleanにするのも最終評価値にするのも良し悪しだからなぁ
0547nobodyさん
垢版 |
2018/07/20(金) 23:57:25.93ID:???
何が入るかわからないのがな
最悪を想定するなら短絡評価の前に中身の判別を入れなきゃならない
想定した型かどうか事前に判別するなら短絡評価要らない
0548nobodyさん
垢版 |
2018/07/21(土) 17:38:08.88ID:gWhxLgcg
$b = (!empty($a)) ? $a : 20;
NULL合体演算子はissetだからだめだな
0549nobodyさん
垢版 |
2018/07/21(土) 19:13:06.04ID:???
JavaScriptも三項演算子使えるんだからそれでよくね
短絡評価は言語ごとに差があるからあんまり使いたくない
0550nobodyさん
垢版 |
2018/07/21(土) 19:16:09.41ID:???
愚直でもわかりやすい判断分岐で書かれてると読む人間にはありがたい
0551nobodyさん
垢版 |
2018/07/21(土) 19:18:20.55ID:???
なんでも短絡や三項にすれば短いだろってより
素朴にIF文使って書いてある方が
読みやすい場合が多々あるな
0552nobodyさん
垢版 |
2018/07/21(土) 19:25:35.94ID:???
ネストしてないに限れば三項演算子は読みやすいな
条件部分を>>548のようにちゃんと()で囲ってればif文の変化形にも見えるし
コーディング規約で禁止してるとこは結構あるし賛否両論なのは確かだが
0553nobodyさん
垢版 |
2018/07/21(土) 19:33:59.72ID:???
phpで三項演算子のネスト書く奴は頭からカレーかけられても文句言えない
ネスト階層が深けりゃコーンスープ付き
0554nobodyさん
垢版 |
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;
 }
})();

上だとなんか感覚的にいやだ
0555nobodyさん
垢版 |
2018/07/22(日) 05:45:59.43ID:???
何に代入しているのかを特に明示したいならそれでいんじゃね

単純な代入ならインデントで即わかるとは思うが

読みやすさわかりやすさを理由に(if等で)わかりやすい分岐を・・・って話の流れで
if使いながら$aそのまま(のbool変換値)ifに流すだけなところと
ifに渡すだけの箇所で!!$aってやってるところが意味不明だが
0556nobodyさん
垢版 |
2018/07/22(日) 06:26:18.55ID:???
> !!$a

これ、 $a == true と等価だよな?

数文字タイプする手間を惜しんで2回反転させる計算コストを発生させてる?
0557554
垢版 |
2018/07/22(日) 06:58:19.63ID:???
booleanキャストのつもりで使ったが
確かにいらんな
0558nobodyさん
垢版 |
2018/07/22(日) 07:54:39.39ID:???
素直メンはイケメン
0559nobodyさん
垢版 |
2018/07/22(日) 08:21:29.99ID:???
!!って書けることを知らなかったw
!!!もできる?
0560nobodyさん
垢版 |
2018/07/22(日) 08:32:08.34ID:???
やってどうすんのよ
0561nobodyさん
垢版 |
2018/07/22(日) 09:22:46.00ID:???
エントロピーを増大させるのだ
0562nobodyさん
垢版 |
2018/07/22(日) 10:22:27.72ID:???
>>560
その発想がなかったから、そんな事できるんだって目から鱗なだけ。
0563nobodyさん
垢版 |
2018/07/22(日) 10:39:15.79ID:???
!!!$varは!$varと等価だろ
0564nobodyさん
垢版 |
2018/07/22(日) 11:57:10.28ID:???
いやだからさ、そんな事もできるんだ!
すごい面白い!
じゃあ何個まで重ねられるんだろう?って話だよ。
どこかでエラーにされて怒られるとは思うけどさ。
0565nobodyさん
垢版 |
2018/07/22(日) 13:15:13.80ID:???
eval()あんだから自分で試してみりゃいいじゃん
0566nobodyさん
垢版 |
2018/07/22(日) 13:35:16.79ID:???
>>554
下はJavaScriptが好きそうだな
「名前空間が汚れる」とか言って
でも上のシンプルな方が読みやすい

>>556
>$a == true
これもこの素朴な方が分かりやすい
「!!$a」とか多用すると読みにくい

トリッキーな書き方より
それを抑えて読みやすくする方が大事
0568nobodyさん
垢版 |
2018/07/22(日) 17:01:30.11ID:???
>>550
>>551
同意
書く方は短い方が書きやすいんどろうけど
0569nobodyさん
垢版 |
2018/07/22(日) 19:17:55.24ID:???
短く書くことが目的化してるコードはバグ出やすい上にデバッグし難いんだよなあ
0570nobodyさん
垢版 |
2018/07/22(日) 19:19:38.87ID:???
でもさすがにisset($_POST/$_GET)は三項演算子使うでしょ?
0572nobodyさん
垢版 |
2018/07/22(日) 19:35:16.04ID:???
まとめて初期化、まとめて確認って手もあるしなあ
スタンダードというわけじゃなし
0573nobodyさん
垢版 |
2018/07/22(日) 19:40:11.51ID:???
filter_inputってバリデーションでしょ?
issetしたあとに使うものだよね?
0574nobodyさん
垢版 |
2018/07/22(日) 19:56:43.65ID:???
転載アフィか何かなの?
0575nobodyさん
垢版 |
2018/07/22(日) 20:01:42.81ID:???
その辺の処理は各々好きにしろとしか
・NOTICEが出ない
・その後の処理でバグを生まないようにする(デフォルト値設定、検証除去etc)
これが出来てれば良いわけで
0576nobodyさん
垢版 |
2018/07/22(日) 20:10:17.68ID:???
>>573
マニュアル読んでみ。幸せになれる。スーパーグローバルから開放されるぞw
0577nobodyさん
垢版 |
2018/07/22(日) 20:36:58.12ID:???
>>554
elseまでいかんでも
$b = $a;
if (!$b) $b = 20;
0578nobodyさん
垢版 |
2018/07/22(日) 20:41:29.86ID:???
>>575
後々、それが出来てるかどうか、バグを生んだのがそこかどうか確認するのに
文字数少ない代わりにわかりにくい書き方とか最悪だろって話
0579nobodyさん
垢版 |
2018/07/22(日) 20:47:50.31ID:???
$aの型が例えばintなどと保証されてるのか?

保証されてるなら!$aなんてint(0)の判別にしかならないのに直感的じゃない

保証されてないなら'abc'やarray(0)が来た時どうすんの
0580nobodyさん
垢版 |
2018/07/22(日) 20:52:50.72ID:???
三項演算子の何がわかりにくいのか理解に苦しむな
ワンライナーで書けるってだけでif-elseと変わらんのに
(condition)
?
 when-true
:
 when-false
;
0581nobodyさん
垢版 |
2018/07/22(日) 21:18:33.98ID:???
プログラム書く上で1行で書けるかどうかってなんか価値があるの?
コードゴルファーphp?
0582nobodyさん
垢版 |
2018/07/22(日) 21:22:28.39ID:???
if( ~~~~ ) ~~~~; else ~~~~;
三項演算子の特権じゃないじゃん
0583nobodyさん
垢版 |
2018/07/22(日) 21:25:51.63ID:???
>>581
1行だ短いだなんだじゃなくて、何がわかりにくいのか理解不能
0584nobodyさん
垢版 |
2018/07/22(日) 21:34:23.08ID:???
ワンライナーって見ただけで私アホですと脳内変換されるわ
0586nobodyさん
垢版 |
2018/07/22(日) 21:39:59.36ID:???
>>585
ワンライナー
-rオプション使いまくってる人?えっ違うのですか?

ぺちぱー
吠えてるだけ
0587nobodyさん
垢版 |
2018/07/22(日) 21:42:00.36ID:???
関数型言語で発狂してこいよ
0588nobodyさん
垢版 |
2018/07/22(日) 21:42:30.07ID:???
価値はある
行数ベースで費用計算してるとき安くなる
0589nobodyさん
垢版 |
2018/07/22(日) 21:43:56.87ID:???
三項演算子は短く書くためのものじゃないが。
その程度の理解なのなら自分で言ってるように使わないのが無難だな。
無駄にマウント取ってるのは笑えるがw
ifelseは組み込み制御構文で三項演算子のように式が要求されるところには置けない(評価されて値になれない)
0590nobodyさん
垢版 |
2018/07/22(日) 22:05:07.77ID:???
同じことが実現できる場合の書き方の比較であって
誰もそんな当たり前の話しとらんのだが
0592nobodyさん
垢版 |
2018/07/22(日) 22:09:52.68ID:???
ドヤ顔マウンターぺちぱー(笑)
0593nobodyさん
垢版 |
2018/07/22(日) 22:25:04.60ID:???
で、1行でかけることになにか価値あるの?
0594nobodyさん
垢版 |
2018/07/22(日) 22:29:44.80ID:???
ないよ。正確にいうと関係ない。
一行で書くためにあるものじゃないからね。三項演算子は。
0595nobodyさん
垢版 |
2018/07/22(日) 22:34:07.28ID:???
なんで話の流れと関係ないのに、三項演算子だけの特権でもないのに、ワンライナーで書けるってことをわざわざ書いたの?
0596580
垢版 |
2018/07/22(日) 22:39:48.38ID:???
ん?俺がワンライナーとか言ったのがまずかったのか?
普通三項演算子はワンライナーで書くもんだからそう言っただけなのだが
別にそこはメインじゃないし主題ではない

?:という2つの演算子しか使っておらず、間違い探しをするようなものでもなく
何がわかりづらいのか理解できないって話をしただけ

ちなみに会話してんの俺じゃないぞ・・・
0597nobodyさん
垢版 |
2018/07/22(日) 22:40:24.80ID:???
少ない行がいいなら最期に&#165;rと&#165;nを置き換えて1行にすればいいやんm
0598nobodyさん
垢版 |
2018/07/22(日) 22:44:10.15ID:???
>普通三項演算子はワンライナーで書くもんだから

俺ルール広めようとしないでくれない?
0599580
垢版 |
2018/07/22(日) 22:49:21.00ID:???
主観ではあるけど
googleで画像検索したりしても、実際ワンライナーが多数派じゃない?
そもそもネストするようなケースじゃほとんど使われないし
これも主観だけど感覚的に正しいと思う
0600nobodyさん
垢版 |
2018/07/22(日) 22:53:20.12ID:???
改行とインデントで整えないなら1層ですら可読性低いんだけど

しかし、なんで一行・1行などと書かないでワンライナーって書くのかね
文字数多いじゃん検索用ってか
0601nobodyさん
垢版 |
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'
0602580
垢版 |
2018/07/22(日) 23:14:53.52ID:???
可読性の定義は人によってさまざまだけど
長ったらしいのはかえって可読性が下がると俺は思う
>>601では真ん中が一番読みやすい
0603nobodyさん
垢版 |
2018/07/22(日) 23:16:56.10ID:???
ビットにしてswitchしよう
0604580
垢版 |
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';
  }
}

やっぱこれは俺にはあってないな
0605nobodyさん
垢版 |
2018/07/22(日) 23:20:56.62ID:???
一番下もおかしいんだが
php書けないのか
0606580
垢版 |
2018/07/22(日) 23:25:42.57ID:???
>>605
これPHPじゃないし
三項演算子の可読性について、stackoverflowで引き合いに出されてたコード
PHPは評価の仕方が他の言語と違うので
そもそも一番下のようなコードは書いたことがない
0607nobodyさん
垢版 |
2018/07/22(日) 23:33:07.26ID:???
>>602
同意

ネストしないなら3項演算子がシンプルでよいがネストさせるヤツは死ねと思ってしまう
0608nobodyさん
垢版 |
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';
0610nobodyさん
垢版 |
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つの文字列どちらか選択とかならまだいいけど
関数や式が絡むと : の区切りがわかりづらくなるんだよな
0611nobodyさん
垢版 |
2018/07/23(月) 00:00:45.23ID:???
実務的にはそれぞれ属性を自分のobjectに聞いて、って感じのが多いかな
0612nobodyさん
垢版 |
2018/07/23(月) 00:14:43.72ID:???
stackoverflow探してみたけどそれっぽいのが見つからないわ
0614nobodyさん
垢版 |
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には処理済み変数のみを埋め込むのを徹底すればいい。
0615nobodyさん
垢版 |
2018/07/23(月) 01:22:26.76ID:???
表示名の場合はだいたい
$nameを先に'anonymous'で初期化しておいて
セッションがあってDBから取ってくる等の時に$nameを上書きする
ってやるよね
0617nobodyさん
垢版 |
2018/07/23(月) 01:27:21.03ID:???
条件2つ処理する2x2の構図でも
条件1の結果によって条件2の式自体が変わる場合は
Balancedケースでも可読性落ちるよね
0618nobodyさん
垢版 |
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 ;
みたいな書き方だったら多少複雑でもいい
0619nobodyさん
垢版 |
2018/07/23(月) 01:46:11.40ID:???
簡潔じゃないと1重なのか2重3重になってるのかパッと見てわからないからな
その辺ifでは迷ったことがあまりない
0620nobodyさん
垢版 |
2018/07/23(月) 06:55:36.75ID:???
> 18<=ageのときは性別にunknownやnewhalfが追加されたら
そこまでくると>>603が良さそう
1(under18)
2(over18)
4(male)
8(female)
16(unknown)
32(newhalf)

ちなみにnewhalfじゃなくて
shemaleとかladyboyが正しいおっぱいおちんちんMAN
0621nobodyさん
垢版 |
2018/07/23(月) 07:10:51.79ID:???
なんだそれは
ageもgenderも1つに閉じ込めてbit演算するならunder18/over18は下位1bit、genderは以降上位bit、ってとこだろう
maleやfemaleを両方選択可能の並存状態にしてどうするんだよ
2値が1種、4値が1種なら3bitで済むだろう
0622nobodyさん
垢版 |
2018/07/23(月) 07:29:32.52ID:???
そもそも話題が>>618の趣旨とは離れることだが、1点付け加えると
条件がどう動くかわからず拡張性を考えるのであれば
愚直にifやswitchで構造化するか
>>610のように1つ1つ条件を絞れば引き当てられるtableを作るのが筋だろう

ageの判定処理は完全固定と断定できないだろうし
age自体を現在日付とユーザ誕生日設定によって動的に取得させることになる可能性がある
フラグ化してのbit演算では柔軟性・拡張性に乏しい、全然良さそうじゃない
0624nobodyさん
垢版 |
2018/07/23(月) 10:47:42.67ID:???
$age+$genderでやれば拡張も容易
0625nobodyさん
垢版 |
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'
}
0626nobodyさん
垢版 |
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';

みたいに出来るから考えようによってはいいかもね
0627nobodyさん
垢版 |
2018/07/23(月) 11:39:51.37ID:???

配列も出来るらしい
$title = [GENDER_TS+AGE_UNDER18 => 'Mx'];
みたいに
知らなかった
0628nobodyさん
垢版 |
2018/07/23(月) 11:43:37.99ID:???
>>610と比較して1次元になるだけでメリットはないな
0629nobodyさん
垢版 |
2018/07/23(月) 11:48:06.16ID:???
条件使わなくて済むよ
下準備も大変になるけど
0630nobodyさん
垢版 |
2018/07/23(月) 12:06:46.43ID:???
>>625
ぱっと見何やってるのかよくわからない
三項演算子もそうだけど結局読む人のレベル次第だな
0631nobodyさん
垢版 |
2018/07/23(月) 14:58:02.10ID:???
>>629
三項演算子だと処理が煩雑になるほど記述が鬱陶しくなるか難しいかのトレードオフじゃん
0632nobodyさん
垢版 |
2018/07/23(月) 15:11:43.17ID:ci3EIyjd
Pythonにすれば良い

$bar = $fooVal == 10 ? $trueVal : $falseVal

の代わりに

$bar = $trueVal if $fooVal == 10 else $falseVal

みたいに書けてちょー分かりやすい
0634nobodyさん
垢版 |
2018/07/23(月) 15:19:01.63ID:???
phpどころかビット演算というプログラムの基本すら知らない奴が居付いている
0635nobodyさん
垢版 |
2018/07/23(月) 15:21:44.19ID:KYWJiLD7
関数型言語では同じ変数に何度も代入するって事は基本やらない
明示的に値を変更可能な変数にすれば再代入可能だが
乱用すると関数型使う意味が無くなる

なぜ再代入を避けるかって言ったら
理由は色々あるが
一番はバグの原因になるから

ScalaにもPythonのような式扱いのif文があったり
switchが無く代わりにmatchを使うのもそれが理由
0636nobodyさん
垢版 |
2018/07/23(月) 17:34:07.95ID:???
ビットフラグ立ててるだけでビット演算をしてるわけじゃないからな
0637nobodyさん
垢版 |
2018/07/23(月) 18:00:32.66ID:???
初見のわかりやすさってのはシンボルか単語かの違いってのが大きいのだろうけど
みんな大嫌い正規表現だって慣れれば大したことはない
三項演算子はネスト出来ることが問題なのであってネストしなければ問題はないのである
0638nobodyさん
垢版 |
2018/07/23(月) 18:05:34.79ID:???
正規表現わけわかんないよ

慣れるしかないんだろうね
0639nobodyさん
垢版 |
2018/07/23(月) 18:17:28.84ID:???
どこまでが条件部かどこが区切りか
誰が見ても即座にわかる単純明快なケース限定ならいいかもね
それかキッチリ改行入れること
0640nobodyさん
垢版 |
2018/07/23(月) 19:16:40.02ID:???
改行が減る=行数ベースの料金が下がる
文字数が減る=文字数ベースの料金が下がる
0641nobodyさん
垢版 |
2018/07/23(月) 19:38:29.41ID:???
プログラムがより単純化するのは流れであって
コード単価あげるか 成果物に対して報酬をもらえばおk
0642nobodyさん
垢版 |
2018/07/23(月) 20:20:18.09ID:???
正規表現はperl時代に超覚えてマスターした気になっていたが、
PHPやJavaScriptだと微妙に違ったり後方参照も違ったり、
なんか1日中悩んでたりする。
0643nobodyさん
垢版 |
2018/07/23(月) 21:10:25.52ID:???
>>642
言語で微妙に違うんですね
苦手です
0644nobodyさん
垢版 |
2018/07/23(月) 21:41:55.31ID:???
>>643
慣れの問題だと思います。
PCREなのに使いこなせない自分が情けない…
preg_matchすら悩むw
0645nobodyさん
垢版 |
2018/07/25(水) 20:02:42.21ID:???
parse_ini_fileの結果を取得するときに、
セクション名そのものを取得したい場合はどう書いたら良いでしょう?
0646nobodyさん
垢版 |
2018/07/25(水) 20:27:43.62ID:???
2番目の引数にtrue設定すればいいんじゃね
0647nobodyさん
垢版 |
2018/07/25(水) 21:42:20.18ID:???
ありがとうございます。
それは知っていたんですが、そういう次元じゃなかったです。
変数名をtypoしていただけでしたw
お騒がせしました…
0651nobodyさん
垢版 |
2018/08/03(金) 08:21:39.65ID:???
Windows版のPHP7(XAMPP)で、posix関数を使うにはどうしたら良いですか?
今は特に何もせずにデフォルトインストール状態で、
関数がundefinedエラーになってしまいます。
0652nobodyさん
垢版 |
2018/08/03(金) 08:30:42.36ID:???
http://php.net/manual/ja/intro.posix.php
>注意: この拡張モジュールは Windows 環境では利用できません。

どうしたら良いかというと、VirtualBoxでWindowsの上にLinuxを乗っける、などしか手はないかと
0653nobodyさん
垢版 |
2018/08/03(金) 09:00:23.87ID:???
了解です。ありがとうございました!
OS判定して、Windows版の時はその処理はスルーして目を瞑ることにします。
PHPはやっぱりLinuxの方がいいですね。
0655nobodyさん
垢版 |
2018/08/05(日) 09:24:57.34ID:???
ActiveRecodeのORMはたくさんありますけど
パフォーマンスが特に優れてるおすすめのものありますか?
処理性能重視したらPDOでSQLゴリゴリ書いたほうがいいのでしょうけど
いまいち自分のSQLに自信がもてないのでSQL書くのは減らしていこうと思っています
0657nobodyさん
垢版 |
2018/08/05(日) 13:09:36.79ID:???
どれでも大差ないんじゃね?
一番メジャーなのを使っておくのが後々のため…
0658nobodyさん
垢版 |
2018/08/05(日) 15:07:22.88ID:???
DB設計を確認したほうがパフォーマンス改善効果見込めるのでは
0659nobodyさん
垢版 |
2018/08/05(日) 15:07:42.32ID:???
俺がそうなんだけど、抽象化がたりないとSQLベタ書きDAOパターンになるよね。
0660nobodyさん
垢版 |
2018/08/05(日) 22:12:43.12ID:???
元DB屋的にはORMで結合グチュグチュやるより
出来るところはビュー作っといた方がいい希ガス
0661nobodyさん
垢版 |
2018/08/05(日) 22:36:24.70ID:???
DB担当に流せる仕事は最大限DB担当に流してしまえという風潮

合理的だと思う
0662nobodyさん
垢版 |
2018/08/06(月) 19:58:51.12ID:???
composerってなんでjsonわざわざ書くの?それが主流みたいだけど
installコマンドは一応用意されてるんだよね?
なんか理由あるんですか?
0663662
垢版 |
2018/08/06(月) 20:00:59.88ID:???
installじゃなくてrequireか
composer require 'namespace/some_package.3.2.1'
0664nobodyさん
垢版 |
2018/08/06(月) 20:38:35.03ID:???
流行り
かっこいい気がする

OSSのフロントエンドはこんなノリ
0665nobodyさん
垢版 |
2018/08/07(火) 09:57:45.32ID:spyDBr61
どっちもできることにこしたことはないと思うが
0666nobodyさん
垢版 |
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 が見当たりませんでした。

よろしくお願いします。
0667nobodyさん
垢版 |
2018/08/07(火) 10:44:03.07ID:???
そのapacheを起動した人が手順を知らないか間違えてるんだと思うぞ。
環境変数が付いてる方の起動方法を間違えてる。 

個人のプロセスじゃないのに、個人の環境変数を引き継いでどうすんだよw
serviceコマンドとか使わずに、いきなりhttpdを起動したんじゃないかと。
0668nobodyさん
垢版 |
2018/08/07(火) 11:11:49.87ID:???
> Environment の設定している場所を特定したいのですが、どこを見たら良いでしょうか?

hogeユーザのHOMEディレクトリ指定はApache httpd側ではなくOS側
/etc/passw d
たぶんLinuxだと思うけど、ならここに書かれてる
ただし、わかってるなら直接編集してもいいけど通常はコマンド経由で変えるもんだと思う
0669nobodyさん
垢版 |
2018/08/07(火) 11:17:25.39ID:???
>>667
>環境変数が付いてる方の起動方法を間違えてる。 
>個人のプロセスじゃないのに、個人の環境変数を引き継いでどうすんだよw

別に$HOMEが設定されてること自体はあんまり問題じゃないかも
個人の環境変数を引き継ぐ、というのも……じゃあ誰権限で実行すんの?ってことだし
"service httpd"等で起動していても、誰かの権限で動くのだから
※Windowsだとサービス化してればlocalService権限だっけ

んなことよりデーモン起動ユーザのシェルを/sbin/nologinにしとこう
0670nobodyさん
垢版 |
2018/08/07(火) 11:26:09.24ID:???
どんなユーザ権限で実行しているか等は基礎の基礎
起動ユーザ権限のことを知りたければhttpd.confのUserとGroupの説明をよく嫁そして100%理解しろ
0671nobodyさん
垢版 |
2018/08/07(火) 11:38:33.77ID:???
かの有名なqmailの作者であるdjb様は、
env - /path/to/bin
のような起動方法を推奨してたぞ。
って今時そんな人知らんかw
0672nobodyさん
垢版 |
2018/08/07(火) 11:43:59.63ID:???
Linux serviceコマンド 環境変数
これでググっておけよ。
環境変数を意識してないと超レアだが意図しない結果に繋がる可能性はある。
0673nobodyさん
垢版 |
2018/08/07(火) 11:48:30.16ID:???
単純にchkconfig/serviceで動かすようにしたところ意図せずroot権限で動かしてしまってて書いた.phpの穴突っつかれて以下略
こわいこわい
0674nobodyさん
垢版 |
2018/08/07(火) 11:55:14.18ID:???
httpdをrootで動かすにはコンパイルオプションが必要…
0675nobodyさん
垢版 |
2018/08/07(火) 12:00:18.77ID:???
phpのコンパイル直後のmake testに疑問を感じて早数年
でも毎回ちゃんとやってちゃんと結果確認してる
0677nobodyさん
垢版 |
2018/08/07(火) 12:04:52.52ID:baYuORhx
>んなことよりデーモン起動ユーザのシェルを/sbin/nologinにしとこう
なんで?
起動ユーザはrootで、nologinにするのはWorkerプロセスのユーザでしょ。
ApacheにしろNginxにしろ、そういう風に作られてるわけで。
単一で動くタイプとごっちゃにしたらいかんよ。
0678nobodyさん
垢版 |
2018/08/07(火) 12:13:53.51ID:???
>>677
全面的にすまんかった
> nologinにするのはWorkerプロセスのユーザ
こっちを意図して「デーモン起動ユーザ」と書いてた
0679nobodyさん
垢版 |
2018/08/07(火) 12:39:41.49ID:???
chsh -s /sbin/nologin root
0681nobodyさん
垢版 |
2018/08/07(火) 14:28:42.07ID:???
突然思い出したが、
むかーしのFreeBSDってnologinの中身がexitって書かれてるシェルスクリプトだったなw
0682nobodyさん
垢版 |
2018/08/07(火) 14:33:20.67ID:???
それで機能しちゃうもんなのか
0683nobodyさん
垢版 |
2018/08/07(火) 17:00:47.53ID:7Qa/G72W
/bin/falseとかでもええんやで。
0684nobodyさん
垢版 |
2018/08/07(火) 17:39:43.15ID:???
特に理由もなく/dev/nullが好きだった時期があった
0685nobodyさん
垢版 |
2018/08/07(火) 19:04:34.22ID:???
UNIXアカウント=メアドという古き良き安全なインターネットの時代は、
/usr/bin/passwdをログインシェルに設定して、
パスワード変更はtelnetで繋ぐとかもあったな。
0686nobodyさん
垢版 |
2018/08/07(火) 22:31:33.33ID:???
>>666
php-fpmならpool.dは見たのかな
php-cgiでsuexecやmod_suphpならユーザー権限になって当然だし

>>667
あなたの環境では非特権ユーザーがポート80をバインドできるようにlibcapを使っているんですね
それはあまり普通じゃないので、人と話すときの前提にしない方がいいですよ

>>671
バーンスタイン先生はEd25519でSSHやTLS界隈じゃバリ現役
0687nobodyさん
垢版 |
2018/08/08(水) 01:27:35.83ID:???
phpで、 $var = 'text'; // ←これ、この代入を検知して代入直後に何らかの処理を自動発動させる、ってこと、できる?

ループ中で逐一$varをチェックする、というようなのではなく
0688nobodyさん
垢版 |
2018/08/08(水) 01:38:57.92ID:???
その代入文の次の行に処理書けばいいだけでは?
0689nobodyさん
垢版 |
2018/08/08(水) 03:47:12.65ID:???
オブジェクトにしてセッター通す
0691nobodyさん
垢版 |
2018/08/08(水) 10:39:23.28ID:8EBBnoJ7
>>686
qmailとかなんとかdnsとかdaemontoolsとか見事に全部放り投げたなw
あんだけ他攻撃してたくせに。
0692nobodyさん
垢版 |
2018/08/08(水) 15:42:04.42ID:???
PHPマニュアルってすげー優秀だなー
セキュリティーで嫌煙されてるがCHMが用意されてるのがでかい
これでネットもつながらない山の中でもPHPならスムーズに開発ができるわ
0693nobodyさん
垢版 |
2018/08/08(水) 15:53:58.68ID:???
CHMってなんだと思いかけたけど
あれかhtmlヘルプファイルの.chmか

用意されてるの知らんかったサンキュー兄貴
0694nobodyさん
垢版 |
2018/08/08(水) 16:53:50.96ID:???
>>693
おうよブラザー
ダウンロードしたCHMはセキュリティ厳しくなっててそのままじゃ見れないから
プロパティ開いてブロック解除忘れずにね
0695nobodyさん
垢版 |
2018/08/08(水) 17:11:31.35ID:???
>>691
しかし、あの考え方はその後に大きな影響を与えたと思う。
Postfixなんてのが良い例かと…

攻撃という意味では、日本のqmaiサイトを運営してた某教授の方が酷かったw
0696nobodyさん
垢版 |
2018/08/08(水) 19:06:25.42ID:???
>>691
public domainにしてくれたのはありがたかった
qmailはまだまだ現役で運用してるとこ結構ある
djbdnsはパッチなしだと来年死ぬけどね

>>695
大岡山かw
0697nobodyさん
垢版 |
2018/08/09(木) 02:14:42.91ID:???
djbdns使ってないからdjbdnsが来年ってなんだろうと思って 2019年 djbdns ぐぐった
2番目に出てきたURLのタイトルが「2019年入籍日おすすめランキング」だった
終わってんな
0698nobodyさん
垢版 |
2018/08/09(木) 02:42:28.01ID:???
わたしもqmailまだ使ってる
0699nobodyさん
垢版 |
2018/08/09(木) 08:04:46.57ID:???
daemontoolsってCD/DVD/BDとかの仮想ソフトじゃなかったっけ
って思ったら全く関係なかったでござる
0700nobodyさん
垢版 |
2018/08/10(金) 17:13:37.72ID:???
ドラえもん道具?
0701nobodyさん
垢版 |
2018/08/10(金) 20:47:36.56ID:???
だえもんとぅーる
0703nobodyさん
垢版 |
2018/08/11(土) 19:58:51.69ID:???
>>695
M野先生?准教授止まりじゃなかった?
0705nobodyさん
垢版 |
2018/08/12(日) 04:37:30.63ID:???
>>695
あの人ちょっとゴリホーモ入っとるよな
0706nobodyさん
垢版 |
2018/08/12(日) 12:00:04.80ID:???
PHPのネタないの?
0707nobodyさん
垢版 |
2018/08/12(日) 16:05:25.58ID:???
ネタは無いがphpとシェルや他言語とのバッチの書きやすさの違いを聞いてみたい
0708nobodyさん
垢版 |
2018/08/12(日) 16:48:11.26ID:???
>>707
慣れとしか言えないと思う
バッチファイルはphpで書いて、シェルからアクセスするというやり方にしてるわ
0710nobodyさん
垢版 |
2018/08/12(日) 20:32:52.06ID:???
正直マオリ語か何かにしか思えないperlで書かれたバッチも、慣れれば都なのだろうか
0711nobodyさん
垢版 |
2018/08/12(日) 20:36:16.09ID:???
そうではないから廃れたんやぞ
0712nobodyさん
垢版 |
2018/08/12(日) 21:12:13.44ID:???
prelは正直、割とマジでキツイ
文法が違いすぎるから、しばらく離れてるとどう読んで良いのかがわからない
0713nobodyさん
垢版 |
2018/08/12(日) 21:27:47.32ID:???
perlはプリミティブなんだよな。
やりたい事を細かく制御して書かないといけない。
でも文字列処理だけは感心する。
0714nobodyさん
垢版 |
2018/08/12(日) 21:51:00.56ID:???
phpの話じゃなくてperlの話になってるじゃないですか!
0715nobodyさん
垢版 |
2018/08/12(日) 21:56:40.87ID:???
個人的にはPHPの方が気楽に書けて好きなんだけど, 現実的にはPythonで書くのがいいんだろうなぁ
PHPとPythonの共通点はbattery includedなあたりか
0716nobodyさん
垢版 |
2018/08/12(日) 22:33:57.36ID:???
phpとperl、cgiは一昔前は選択性みたいな感じだったのにね
いつの間にやらphp一辺倒になってた

>>715
一度pythonでサイト作ってみたけど本気でめんどくさかった
phpがもてはやされる理由がよくわかった
0717nobodyさん
垢版 |
2018/08/12(日) 22:40:19.13ID:???
ちょっと離れるけどバッチもWebもnodeであれこれやってみたことがあった
くそめんどかった
0718nobodyさん
垢版 |
2018/08/13(月) 00:07:08.75ID:???
>>710
鯖管あたりは配列とループ使うのにシェルスクリプト代わりにperlって人多い
0719nobodyさん
垢版 |
2018/08/13(月) 07:03:51.93ID:???
言語的な扱いやすさを取るか環境的な扱いやすさを取るかの天秤
そういう意味ではperlはありでもpyは意味がわからないo
0720nobodyさん
垢版 |
2018/08/13(月) 13:44:45.42ID:???
なぜPythonはダメ?
いずれ何でもかんでもPythonになる可能性すら秘めているのに…
まあ、互換性は不安あるけど。
Perlは下位互換が優秀だったからなあ…
0721nobodyさん
垢版 |
2018/08/13(月) 14:25:38.56ID:sZ92TvgJ
配列とループw
PerlもPHPもPython他の足元にも及ばんだろ。
ちょっとしたデータ処理しようと思ったときに、絶対に選ばない2大言語。
0722nobodyさん
垢版 |
2018/08/13(月) 15:45:58.02ID:zFMgiLTA
適材適所だし、どっちが上とかないしょ
PHPが未だにこれだけ使われてるしね
0723nobodyさん
垢版 |
2018/08/13(月) 16:08:50.29ID:???
>ちょっとしたデータ処理
環境構築を考えれば、こんなもん普段使ってる言語一択だろ
バカか
0724nobodyさん
垢版 |
2018/08/13(月) 16:41:01.31ID:???
自分のとこだけで動かすなら普段使いの言語だが, 他環境で動かす可能性があるならLSBに入ってるPerlかPythonだなー
0725nobodyさん
垢版 |
2018/08/14(火) 01:01:33.04ID:???
>>721
わかってないねぇ
標準インストールで入ってる可能性がダントツで高いのがperlなんだよ
0726nobodyさん
垢版 |
2018/08/14(火) 05:00:24.02ID:???
連想配列をjson_encodeでjsonにした際、「/」が、エスケープ処理されておらず困っているのですが
対処法はありますか?

オプションにJSON_UNESCAPED_SLASHESを指定しなければ、エスケープされるような記載を見掛けるのですが・・・

PHPバージョンは7.1です
0727nobodyさん
垢版 |
2018/08/14(火) 06:07:12.85ID:???
手元の7.2.1でjson_encode('test/test')とすると、test\/testが返ってくる

json_encodeの第二引数を明示的に 0 にしてみるとか
事前に(必要に応じて再帰的に)自分で/を\/にするとか
0728nobodyさん
垢版 |
2018/08/15(水) 08:05:27.87ID:qP4cYvWG
デフォルトがエスケープありになってるのか。
0729nobodyさん
垢版 |
2018/08/17(金) 14:43:40.86ID:???
ログインシェルをPHPにしたらオワタ
0730nobodyさん
垢版 |
2018/08/17(金) 14:54:08.54ID:???
お前の頭がインタラクティブ
0731nobodyさん
垢版 |
2018/08/17(金) 22:51:59.09ID:???
マルチメディアに対応したかったんだよ…
0732nobodyさん
垢版 |
2018/08/18(土) 01:34:32.30ID:???
>>727
すみません。勘違いしていました。
「/」ではなく、U+2044というFRACTION SLASHを記載して、
それに対してエスケープされないと嘆いてました。
0733nobodyさん
垢版 |
2018/08/18(土) 19:23:26.94ID:???
言われてるほどシェル言語としてだめなわけじゃない
あきらかにshやbashよりは使いやすいだろう
0734nobodyさん
垢版 |
2018/08/19(日) 12:23:47.75ID:???
win10のie11で外部pcの共有フォルダに置いてるpdfをphp関数で表示したいのですがどうすればいいでしょうか?
fopenのハンドルも取れず、readfileでも無反応です
ブラウザからファイルパス入力だと表示できます
0735nobodyさん
垢版 |
2018/08/19(日) 12:25:45.74ID:???
ブラウザ関係なくね?
他のブラウザなら思った通りになるの?
0736nobodyさん
垢版 |
2018/08/19(日) 12:32:11.81ID:Il2RNG8O
何やりたいかさっぱり分からん
質問するなら他人にちゃんと伝わるように書け
0737nobodyさん
垢版 |
2018/08/19(日) 12:36:15.56ID:???
NASみたいな共有フォルダにあるファイルにアクセスしたいってことでしょ…
PDFかどうか以前に、他のファイルも試してみろと。

PHPはなにのサーバーで動いていて、
バージョンはいくつなのかとか環境を書けよ。
ブラウザとかどうでもいいしw
0738734
垢版 |
2018/08/19(日) 12:37:22.17ID:???
vistaのie9だとできてたんですが
最新環境だとできないのです
0739734
垢版 |
2018/08/19(日) 12:38:27.17ID:???
apache2.2 php4.3です
0741nobodyさん
垢版 |
2018/08/19(日) 12:40:22.71ID:???
最新って何?
XAMPPとか使っててPHP 7.2.xとか?
0742734
垢版 |
2018/08/19(日) 12:42:00.39ID:???
最新と言うのはOSとブラウザがってことです 64bitです vistaは32bitです
phpとapacheはそのままです
0743nobodyさん
垢版 |
2018/08/19(日) 12:47:01.68ID:???
ここまでのやりとりで、教えるのは無理とわかったから他に行きな。
まともに質問すらできないんだから教えようがない。
0744nobodyさん
垢版 |
2018/08/19(日) 13:01:24.89ID:???
初心者お断りスレだしなー
0745nobodyさん
垢版 |
2018/08/19(日) 14:34:59.94ID:Il2RNG8O
まずはログとか見ろよ
ログに何も出てないなら何か根本的に間違ってるってこと
0746nobodyさん
垢版 |
2018/08/19(日) 14:49:41.25ID:???
俺の頭髪も根本が根本的に間違ってる
0747nobodyさん
垢版 |
2018/08/19(日) 17:12:58.11ID:kRBINjI+
PHPのsystem()でmysqldumpを使ってテーブルごとのsqlファイルを出力して、
それを圧縮して保存するプログラムを作った。
直接ブラウザでアクセスしてプログラムを動かすと正常に圧縮ファイルが保存される。
しかしcronで動かすと、全く空欄のsqlファイルを圧縮したものが保存される。

私には、全く原因が分からず修正できません。
原因はどういったものが考えられますでしょうか?
0748nobodyさん
垢版 |
2018/08/19(日) 17:17:02.88ID:???
cronでやらないで、CLIで一度実行してみたらいい
権限関係でねーのと思う
0749!ninja
垢版 |
2018/08/19(日) 17:18:09.56ID:???
ブラウザの裏で動いているPHPのユーザー権限や、
crontabのユーザー権限や、
ファイル類のパス、
実行カレントディレクトリ等は一致してますかね?
0750nobodyさん
垢版 |
2018/08/19(日) 18:18:48.73ID:Il2RNG8O
cronでありがちなのはファイルパスの指定ミス
実行プログラムやファイルの指定を相対パスで書くと事故ること多し
簡単に対応するなら全部絶対パスで書け
0751747
垢版 |
2018/08/19(日) 19:28:59.75ID:kRBINjI+
皆さん、ありがとう御座います。
まだ解決は出来てないのですが、調べるべき方向は見えてきました。
0752nobodyさん
垢版 |
2018/08/19(日) 19:31:32.86ID:???
実行権限の違いじゃね
webサーバはapache で
cron はcrontab -eで登録したユーザー
とか
0753nobodyさん
垢版 |
2018/08/19(日) 21:13:04.70ID:???
id > /tmp/log
pwd >> /tmp/log
env >> /tmp/log
0754nobodyさん
垢版 |
2018/08/25(土) 11:11:15.78ID:mbihd+U1
composerのclassmap-authorativeの最適化
場合によっては遅くなるってマジ?
速くなる場合もあるが以下の条件では遅くなるって

・依存ライブラリが多い
・リクエストで実際には使わないクラスが多い
・ファイルシステムからの検索が速い

最適化を有効にすると
読み込めるクラスを全部PHPの配列に入れるから
逆に速度が落ちる場合もある

opcacheが有効だとファイルシステムが遅くても緩和されるし
PHPファイルが更新されないならタイムスタンプのチェックも無効にすれば
PHPファイルを見る必要無くなるね

https://blobfolio.com/2017/03/benchmark-composer-autoloader/

APCU使った最適化については書いてない
0755nobodyさん
垢版 |
2018/08/25(土) 18:38:08.55ID:???
真実かどうか聞きたいのか、それとも自分で確認した事実を書きたいのか
0756nobodyさん
垢版 |
2018/08/25(土) 19:07:29.36ID:yUon0wwz
どうしても知りたいなら自分でベンチ取ってみるしかないだろう
0757nobodyさん
垢版 |
2018/08/25(土) 19:26:31.29ID:???
環境のせいで多少遅ってるかもしれない可能性を確認するよりも
コードを見直したほうがずっと早く改善できそう
0758nobodyさん
垢版 |
2018/08/26(日) 09:42:55.24ID:nAEEME22
こちらで質問させてください
classの必要性がいまいちわからないんですが、普通に自作関数を使うのとどう違うんでしょうか?
0759nobodyさん
垢版 |
2018/08/26(日) 10:00:36.02ID:???
classと同じようなことの実現は関数・objectを駆使すればたぶん無理ではない
けど非常にめんどい
継承とか再利用なんかはどうしようと悩む
0760nobodyさん
垢版 |
2018/08/26(日) 10:00:45.66ID:???
>>758
一人で作るプロジェクト、しかも関数だけだと特に変わらないね
消費税の計算するだけなら別にどっちでもいい。関数にもしなくて良い


今はまだ分からないかもしれないけど、
コンストラクタ、ガベージコレクション、トレイトなど便利な機能が山程ある
其内色々な機能を使うようになると思うので、とりあえずclassに慣れておいた方が良い・・・としか言えない
0761nobodyさん
垢版 |
2018/08/26(日) 10:01:30.69ID:???
>>759
継承の場合は丸ごとコピーになるね
で、一箇所かえたら両方変更する必要があり・・・とどんどん煩雑になる
0762nobodyさん
垢版 |
2018/08/26(日) 10:06:53.90ID:???
>>761
コードをコピペしたらもうそれは継承ではなくなってしまうな

関数名を扱うことでコールバック的にやろうとすれば、そこはもう地獄

うーむ
0763nobodyさん
垢版 |
2018/08/26(日) 10:10:44.53ID:???
とりあえずGCはclassに限った話じゃなくね?
関数内でも一応無関係ではないはず
インスタンスに対するGCは
関数主体の場合だと関数内の変数や関数外の変数に対するGCが当てはまるわけで
0764nobodyさん
垢版 |
2018/08/26(日) 10:25:52.22ID:???
あまりclassがうんぬんを意識しないで使ってるものを考えたらわかりやすいかも
PDOとかExceptionとか
0765758
垢版 |
2018/08/26(日) 11:12:05.68ID:nAEEME22
独学で基礎的なことだけ覚えたんですが、わりと小規模な会員機能付きのブログエンジンやデータベース系のサイト程度なら作れるようになったんですが(プロから見たら多分穴だらけ)、クラスの必要性が分からず全て関数作ってやってました
コードの使い回しにしても関数にしておいて1度呼び出しておけば何度も使えるし、継承にしても関数内で別の関数を呼び出したりして
直感的にも使いやすかったのでそうしてるんですが、今後もっと複雑な事をやろうとするとやっぱりクラスに慣れて使った方がいいんですかね

関係ない話ですが、人のコードとか見ると多次元配列の回し方とか他にもいろいろ人と違うし自分の脳の作りを疑ってしまう。。
0766nobodyさん
垢版 |
2018/08/26(日) 11:43:42.77ID:???
>>765
その場合は「状態」を誰が持っているのかってのが一つのポイントだと思う
状態をグローバル変数に持つのは嫌だし, 関数に持たせるのも良くない
0767nobodyさん
垢版 |
2018/08/26(日) 15:35:20.70ID:???
コードの書き方は設計にもつながるからなあ
DB使ってるならPDOがまさにインスタンスごとに別のコネクションを保持できて
class=インスタンスの中に関係関数がまとまってて
classの利点がわかりやすい
0768nobodyさん
垢版 |
2018/08/26(日) 15:36:42.57ID:???
名前空間が分かれるだけでもありがたいよ
0769nobodyさん
垢版 |
2018/08/26(日) 18:00:16.90ID:???
標準クラスの名前空間って\だよね?
0770nobodyさん
垢版 |
2018/08/26(日) 22:34:08.74ID:???
>わりと小規模な会員機能付きのブログエンジンやデータベース系のサイト程度

ここら辺に何かを感じる
0771nobodyさん
垢版 |
2018/08/27(月) 00:48:28.21ID:???
そこはいいの。お節介するところじゃない。
0773nobodyさん
垢版 |
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です。
0774nobodyさん
垢版 |
2018/08/27(月) 13:10:26.40ID:???
>$http_response_headerに載っているContent-Lengthに比べても少ない
>そのタイミングでリトライしても結果は変わらず

比べてみて、少なかったら
成功するまでリトライすればいいじゃない
contextつきでもfile_get_contentsで問題があって、しかしcurlを使うと問題が出なくなるということもある(※実話)
0775nobodyさん
垢版 |
2018/08/27(月) 14:00:52.82ID:???
自分の場合どっちもだめでfsockopenでようやくいけたなんてことがあったな
一番詳細なこと出来るのはfsockopenだからねえ
0776nobodyさん
垢版 |
2018/08/27(月) 14:23:18.31ID:???
自前でソケット通信考えたらredirectとかkeepaliveとかくっそ面倒だった記憶がある
0777nobodyさん
垢版 |
2018/08/27(月) 14:56:47.44ID:???
>>774
>成功するまでリトライすればいいじゃない
同プロセスでは何度やっても一度も正しく取得できないんです…
別プロセスで起動し直すと正しく取得できるときもあるのですが、
それは使用リソース的な問題であまりやりたくないというか…

curlを試してみるしかないですかね

>>775
どっちもだめ…curlの勝算も低いですかね…
fsockopen使うくらいなら別言語を検討してしまいそうだ
0778nobodyさん
垢版 |
2018/08/27(月) 15:20:54.44ID:MKVYhJ6R
ググったら1番上の記事(公式マニュアル除く)にあるじゃん。
0779nobodyさん
垢版 |
2018/08/27(月) 15:46:07.23ID:???
具体的に何回やったのか
そのうち本当に通信が発生してるのは何回か
調査と試験どっちもしないの
0780nobodyさん
垢版 |
2018/09/01(土) 14:57:08.37ID:xLd9eNnQ
APCuキャッシュを使っている。
管理画面apc.phpに表示されるFragmentationが日々上がっていっている。
現在10%ぐらいだが、まだまだ上がりそう。
この断片化率が上がると何か問題があるのか?
何%ぐらだと問題で、対策はどうすればいいのか?
0781nobodyさん
垢版 |
2018/09/01(土) 15:32:43.35ID:???
APCuって自分でなんとかできる人が使うもんじゃなかったっけ
ほかの選択肢あるっしょ
0782nobodyさん
垢版 |
2018/09/01(土) 15:45:20.23ID:???
ググってわからなかったら、
夜中とか定期的に完全削除しちゃえ。

キャッシュなんてすぐ育つから。
0783780
垢版 |
2018/09/01(土) 16:19:01.86ID:xLd9eNnQ
俺は、自分で調べないわけじゃないぜ。ただ少なくとも日本語の情報は殆どない。
「apcu 断片化」では20件程度、「apcu Fragmentation」なら沢山ヒットするが、対象を日本語ページに絞ると10件程度しかない。
これらは全部読んだが「Fragmentationが高くなったら、キャッシュをクリアしろ」ということが書いてあっただけで、
何%だと問題なのか、そもそもどのような問題が発生するのか分からない。
英語が読めないわけじゃないけど、英語で検索して必要な情報を調べるのは苦労するよ。
0784nobodyさん
垢版 |
2018/09/01(土) 16:28:38.69ID:???
自分でベンチマーク取って検証するんだ。
そして報告すれば誰かの役に立つ。
ちなみに俺は何も知らない。すまん…w
0785nobodyさん
垢版 |
2018/09/01(土) 16:30:11.58ID:???
いっそのことソース読んだら
0786nobodyさん
垢版 |
2018/09/01(土) 16:30:52.08ID:???
ソース読んで効果がわかる部分じゃないだろ…
0787nobodyさん
垢版 |
2018/09/01(土) 16:44:49.29ID:???
ソース読めば全部わかるだろ
0788nobodyさん
垢版 |
2018/09/01(土) 16:52:55.17ID:???
ソース読んで、何%断片化すると悪影響が出るかわかる?
キャッシュの実装方法がわかっても測定しないとわからないことだよ。
0789nobodyさん
垢版 |
2018/09/01(土) 16:58:46.78ID:???
APCuって
オペコードキャッシュ部分がなくなって、cookieみたいなkey-valueのデータを自前で自サーバのメモリに共有するだけに単純化されたもんでねえの
DISKにcsvで持ったりDB使ったりで共有するんじゃなくてメモリに持って共有しましょう的な

だとすると、キャッシュクリア=メモリ上の情報破棄だから気軽にやっちゃあかんし
fragmentになってるっていうなら、
それがメモリ上にあるというだけで他はDISKにおけるfragmentと同じでしょ?同じように考えりゃいいじゃん
0790nobodyさん
垢版 |
2018/09/01(土) 17:03:03.50ID:???
>>788
メモリにどういう配置してどう読み書きしてるかがわからないと
断片化を操作する検証も度合いごとに断片化が及ぼす影響の調査もできなくない?

ことが断片化だから、意図的に特定の断片化状態を作るのって
内部知らないと相当難しいように思うんだけど
0791nobodyさん
垢版 |
2018/09/01(土) 17:04:43.00ID:???
突き詰めるとメモリ領域の話になってくるんけ?
0792nobodyさん
垢版 |
2018/09/01(土) 17:17:23.22ID:???
ソースだけ見れば分かるならプロファイラ何か要らないんだよなー
0793nobodyさん
垢版 |
2018/09/01(土) 18:19:46.16ID:???
Fragmentationが100%に達してても
キャッシュヒット率が高ければ問題ないらしい
(書き込みは遅くなるが読み取りは遅くならない)

https://serverfault.com/questions/506328/php-apc-is-100-fragmentation-a-bad-thing

とは言っても書き込みは遅くなるわけで
実際パフォーマンスにどれくらい影響が出るかは使用状況によるので一概に言えない

本番環境のパフォーマンスを見るには
New Relic APMがおすすめらしいけど
自分は使ったこと無い
0794nobodyさん
垢版 |
2018/09/01(土) 18:45:33.01ID:???
JavaのGCだとコンパクションとか
断片化を防ぐ仕組みはあったけど
多分apcuにはそんな仕組みはないと思われ
動的に確保するから更新・削除を何度も行うと細切れになる

断片化率は5MB以下のブロックが全体に占める割合みたいなことが書いてある

解放されたブロックが隣接してたらマージして1つのブロックにする、とも書いてあるが
これだけだと完全に断片化は防げないとか?

https://github.com/krakjoe/apcu/issues/127#issuecomment-244362339

NewRelic使えとかはこの辺で見た

https://medium.com/@davidtstrauss/avoiding-the-pitfalls-of-apcu-4aa9de00ef93
0795nobodyさん
垢版 |
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.

https://symfony.com/doc/current/components/cache/adapters/apcu_adapter.html
0796780
垢版 |
2018/09/01(土) 21:31:23.17ID:xLd9eNnQ
ありがとう。少し分かってきた。
英語での情報収集が必要とかレベルが上ってきた感じがしていいね。
0797nobodyさん
垢版 |
2018/09/02(日) 06:36:05.35ID:???
クソッ、話が高度すぎる・・・
今日からPHPUnit使うなんて言い出せないじゃないか。
0798nobodyさん
垢版 |
2018/09/02(日) 09:08:26.43ID:???
APCuってしらんが
セッションにDBのハンドラ入れても使えなかったのを
使えるようになるような代物かね?
0799nobodyさん
垢版 |
2018/09/02(日) 09:36:09.10ID:???
>>798
言ってる意味がわからない
DBの接続はリクエスト終わったら切られるだろ
0800nobodyさん
垢版 |
2018/09/02(日) 10:26:34.63ID:???
>>799
いやわかるけど

で、sessionで使えなかったのを使えるようになるような代物ではない
serializeできないものは無理、sessionも共有メモリもそう
リソース型と一部のオブジェクトは無理
0801nobodyさん
垢版 |
2018/09/02(日) 10:35:20.45ID:???
DB接続やファイルハンドラが処理終了時に自動的に切られるのは、
そういう扱いをされるべきリソース型であって確実にデストラクタが呼ばれてるからという理由であって、
処理終了時にシンボルテーブルにある全変数が解放されるのとは無関係、
よって、変数の格納先が異なるだけの$_SESSIONや共有メモリでもこの事情は変わらない、

と理解している
json化できないものは入れられないwebStorageみたいな感覚
0802nobodyさん
垢版 |
2018/09/02(日) 20:02:16.35ID:???
Dockerで
nginxコンテナとphpfpmコンテナを分けてコンテナで分けて作った時
nginxの方はphpファイル入ってなくてもディレクトリさえあれば普通に動くな

開発する時はDockerボリュームを2つのコンテナにマウントしてたが
本番用イメージをCIで作る時は・・・?2つのイメージに同じphpファイルを入れなくちゃいけないのか?って思って調べたらこのような方法が見つかった

画像やCSSとかの静的ファイルは・・・nginxの方だけに入れるか
0803nobodyさん
垢版 |
2018/09/02(日) 20:04:53.11ID:???
phpMyAdminの公式Dockerイメージはnginxとphpが一つのコンテナになってたけど
あれって面倒?

php:7.2-fpmをベースイメージとしてそのまま使うのは出来なくなるよな
それだけでめんどそう
0804nobodyさん
垢版 |
2018/09/03(月) 07:53:52.79ID:???
速度重視じゃないから構わないのでは…
0805nobodyさん
垢版 |
2018/09/03(月) 14:47:55.71ID:???
というかホスト側ポートに繋げて直接外に晒すなりのホストのhttpdからリバースプロキシして使うもんだろ?
nginxコンテナとphp-fpmコンテナに静的コンテンツと動的コンテンツを分けて入れてnginxコンテナからphp-fpmコンテナを見えるようにしてとか, そんな細かい粒度にする必要を感じない
0806nobodyさん
垢版 |
2018/09/03(月) 19:59:04.77ID:???
phpMyAdminのDockerイメージが使ってるのはsupervisordだった

ベースイメージはphpで、supervisordやnginxを別途インストールしている
意外と難しくない?
0807734
垢版 |
2018/09/03(月) 20:04:21.13ID:???
遅ればせながら自己解決
0808nobodyさん
垢版 |
2018/09/04(火) 11:02:04.45ID:???
supervisordは落とし穴が多い
使わなくて済むなら使いたくない
0809nobodyさん
垢版 |
2018/09/05(水) 07:35:09.46ID:???
俺なんかhttpdはinetdの下でいいやと思うことすらある。
ただし、apapche 1みたないのよりずっと軽いやつね。
0810nobodyさん
垢版 |
2018/09/05(水) 08:52:13.09ID:WQzBx9At
どうしても一つにしたいならApacheでいいじゃん。
docker-composeとかあって分けるのが大した面倒でもないのに、一つに拘る理由がわからんけど。
0811nobodyさん
垢版 |
2018/09/05(水) 08:58:29.76ID:???
Dockerが使えれば女の子にモテモテ
0813nobodyさん
垢版 |
2018/09/05(水) 12:09:37.13ID:???
Docker使えるならいいと思うよ
0815nobodyさん
垢版 |
2018/09/05(水) 17:00:56.76ID:???
dockerってぶっちゃけそこまで便利というか必須?
0816nobodyさん
垢版 |
2018/09/05(水) 17:21:02.69ID:???
Dockerの誤解と神話。識者が語るDockerの使いどころとは? Docker座談会(前編)
https://thinkit.co.jp/article/2127

下手したらバズワードで終わる…ほど酷くはないな。
大昔のフロッピー起動みたいに
ガチャガチャ差し替えて使うようなもんかね。
0817nobodyさん
垢版 |
2018/09/05(水) 17:47:40.73ID:???
コンテナでアプリケーション作るならDocker-ComposeないしはDocker単体でいいけどサービス作るならKunernetesくらいは知っとけよって感じ
0818nobodyさん
垢版 |
2018/09/05(水) 18:02:18.87ID:???
え?なんだって?
0819nobodyさん
垢版 |
2018/09/05(水) 18:07:56.14ID:???
DevOpsってさあ…
昔やってた開発と運用のいっしょくたに戻しただけだよね。
理想は違うんだろうが現実は(笑)
10年後はまた分業とか言ってんだぜ、どうせ…
0820nobodyさん
垢版 |
2018/09/05(水) 18:13:01.00ID:???
10年後には地球がなくなってるよ
絶対だよ
0822nobodyさん
垢版 |
2018/09/05(水) 22:49:42.31ID:???
なんかPHPって覚えるスキルRubyやPythonよりおおくね?
0824nobodyさん
垢版 |
2018/09/06(木) 07:11:57.58ID:???
バッドノウハウと関数がね
0825nobodyさん
垢版 |
2018/09/06(木) 12:33:18.54ID:???
PHPはWebProg言語としては登場時期は早かったが
いかんせん類友なのか開発陣が無能なもんでいつもどこかの後追い
PHPerだからといって覚えることが特に多いわけではなく
他言語にはあるがPHPにはないから作ろう
そんな車輪の再発明まがいのことを続けてきた結果であって
一言で言えばご苦労なだけなのである
0826nobodyさん
垢版 |
2018/09/06(木) 13:44:51.41ID:???
別に先陣切って何かを実装してくれとは思わないからいいよ。
それに、他はできるのにPHPはできないってのも良くないだろw
0827nobodyさん
垢版 |
2018/09/06(木) 15:12:11.31ID:???
俺はもうDockerが無いと生きていけない体にされてしまった

必要なプログラムが全て入ったイメージが作れるので
実際に本番環境にアップロードしたら動かなかったけど、
ローカルの開発環境では動いたんだよ!
みたいな事が起こるリスクを下げる

各開発者の開発環境の構築も簡単
docker-composeのファイルとか配ればいい
0828nobodyさん
垢版 |
2018/09/06(木) 15:57:43.54ID:???
そんでもってテスト用のまま間違って本番稼働させるんだろう?
知ってるよ
0829nobodyさん
垢版 |
2018/09/06(木) 17:52:35.05ID:???
仮想化は楽だろうしDockerはGoogleのハードな使い方にも耐えてるほど
耐久性も信頼性も高いのだろうけど
やっぱり専用サーバで環境作るのが俺は好きなんだよ!
0830nobodyさん
垢版 |
2018/09/06(木) 18:26:07.22ID:???
手段と目的を間違えて無ければ何でもいいよ。
Dockerはもちろん良い物だけど必須ではない。
0831nobodyさん
垢版 |
2018/09/07(金) 16:08:31.23ID:???
PHPで動画編集できるライブラリ無いかな?画像編集できるGDみたいなさ

既存動画のカットと動画連結、字幕が付けれて、それをmp4に出力で来て、
youtubeでアップロードできれば最高なんだけど

コマンドラインで別のプログラム実行するとかじゃなくてね
まぁ無理かな…
0832nobodyさん
垢版 |
2018/09/07(金) 16:58:28.42ID:???
PHPの場合, ライブラリでやるとなるとピュアPHPになるが動画編集はそれじゃあ重過ぎるだろう
他の言語だとネイティブに近いレイヤのライブラリをラップしてバインディングすると思うけどPHPには実行時にネイティブ拡張をロードする機能がない
0833nobodyさん
垢版 |
2018/09/07(金) 17:15:32.51ID:YySmCjy1
http://phpopencv.org
これ使って何とかならんの?
0834nobodyさん
垢版 |
2018/09/07(金) 19:18:12.39ID:???
文章が臭いなと思ったが

>既存動画のカットと動画連結、字幕が付けれて、それをmp4に出力で来て、

なんかやることが量産クソyoutubeアフィっぽい
0835nobodyさん
垢版 |
2018/09/07(金) 20:20:39.44ID:???
動画編集をブラウザでやるってのが無理ありすぎ
重い 遅い 面倒なのは容易に想像でき
あきらかにプラットフォームに向いてない
0836nobodyさん
垢版 |
2018/09/07(金) 21:02:34.48ID:???
そのぐらいのオンラインサービスなら既にありそうだけどね。
0837nobodyさん
垢版 |
2018/09/07(金) 21:24:58.65ID:???
WebGL使えば何でも出来る
動画をテクスチャにすればどんなエフェクトも実現出来る

ブラウザ上ではプレビューだけで
エンコードは強力なサーバーのCPUとGPUをぶん回す

PHPとかもう関係ねえか
0839nobodyさん
垢版 |
2018/09/08(土) 00:15:30.05ID:???
gif動画くらいならまだわからんでもないがmp4ってご職業をたずねたくなる
0840nobodyさん
垢版 |
2018/09/08(土) 00:59:50.88ID:???
>エンコードは強力なサーバーのCPUとGPUをぶん回す
サービス化するとなると結構きついよそれ
JSで各クライアントにやらせたほういいね
そうすると専用ソフトでやったほうがいいってとこに帰結する
0841nobodyさん
垢版 |
2018/09/08(土) 01:05:23.39ID:???
jsで動画エンコードってさ、こうなりそう

利用者=負荷がかかるとわかってる
→鯖管理者=coinhiveみたいなminerを仕込んでおく
→鯖管理者=広告と採掘で両得、サーバ負荷なし
0842nobodyさん
垢版 |
2018/09/08(土) 07:30:59.70ID:???
ffmpegをEmscriptenで動かすような方式なら
オーバーヘッドでかいしシングルスレッドだが動く

SharedArrayBuffer使えば
マルチスレッド出来るらしいがSpetre、Meltdownのせいでしばらくは復活しない
0843nobodyさん
垢版 |
2018/09/11(火) 17:07:25.22ID:???
CRON起動すると多重で起動されたりするのって当たり前?
0844nobodyさん
垢版 |
2018/09/11(火) 17:31:28.03ID:???
いいえ
処理時間が長すぎて、前回の処理と重複してんじゃないですかね?
0846nobodyさん
垢版 |
2018/09/15(土) 11:31:27.49ID:???
* * * * * /path/to/unko.php
のういうの見ると、daemonにしてよとか思う。
0848nobodyさん
垢版 |
2018/09/15(土) 11:57:01.30ID:???
そんなクソなコードなの…?
まあでも、起動時に一応ulimitしたり落ちたら再起動とかフォローはするけど。
0849nobodyさん
垢版 |
2018/09/15(土) 13:00:39.79ID:AkqW0gAt
Drupalはメモリの内容を使い回すphp-pmではメモリリークして安定動作しないらしい
php-pmにも一定数のリクエストを処理すると再起動する機能があるが、リークの程度が大きいとそれでも問題になる

Drupalのコードはメモリの内容をリクエスト後に破棄する前提で
あちこちでキャッシュしまくってんのかな?
0850nobodyさん
垢版 |
2018/09/15(土) 14:19:19.63ID:???
>>846
なんで?落ちたら再起動させるようにするとかよっぽど手間じゃないか
0851nobodyさん
垢版 |
2018/09/15(土) 14:36:06.00ID:???
今まで見て来た範囲で大半は、
リアルタイムにしたいのに技術力がなくてできなくて、
そんでもって処理も下手で起動が遅かったり
多重動作したりしてたから。

daemonにしたらそういうことはなくなる。
そもそも落ちるなんて稀な品質で作るし、
落ちたら条件付きで自動再起動するのは
他のサービスでもやるからね。

毎分起動ですぐに処理が終わって、
リアルタイム性を要求されてないならOKだよ。
でもそんなの少ない。
0852nobodyさん
垢版 |
2018/09/15(土) 14:38:21.89ID:g0abHATJ
コンテナオーケストレーターのAmazon ECS使うわ

プロセスが仮に落ちても自動で再起動してくれる
使用するメモリーも制限できる

cronのような定期実行も一応出来る
0853nobodyさん
垢版 |
2018/09/15(土) 14:50:10.75ID:???
>>851
>リアルタイムにしたい
それバッチでやることじゃないのにバッチを使ってる、っていう転用事例だよな後出しじゃん

>そんでもって処理も下手で起動が遅かったり
>多重動作したりしてたから
バッチ利用が悪くてdaemonなら良い、っていう問題じゃないよなコレ。ただの技術力の低さ

>毎分起動ですぐに処理が終わって、
>リアルタイム性を要求されてないならOKだよ。
>でもそんなの少ない。

後の2行はdaemon利用であるかどうかと無関係
むしろ上述の前提のとおり技術力がないならdaemonでもトラブル多発する

>毎分起動ですぐに処理が終わって、
>リアルタイム性を要求されてないならOKだよ。
>でもそんなの少ない。

オレオレ常識を前提にして語らないでくれます?
0854nobodyさん
垢版 |
2018/09/15(土) 14:53:20.31ID:???
なんかカス知識しかない営業や広報が「ファイルなんてあり得ないDBなら問題ゼロなのに」と言ってる感じ
0855nobodyさん
垢版 |
2018/09/15(土) 14:54:04.17ID:???
すまん広報は上のオレオレ常識だな忘れてくれ
0856nobodyさん
垢版 |
2018/09/15(土) 14:59:44.14ID:???
>>853
何だよ、連投して噛み付きたいだけか。若いな…
ごめんね。
自分で作った訳じゃないから技術力は俺のせいじゃないしw
お客さんか、その場開発元に言って。
0857>>854-855
垢版 |
2018/09/15(土) 15:00:39.55ID:???
なんかすまんな営業君
0858nobodyさん
垢版 |
2018/09/15(土) 15:09:30.71ID:???
>>856
後出し、論点すり替え、に追加で人格攻撃に責任転嫁
倍満ってとこかな?
まあ大方ステマの類だろうけど
0859nobodyさん
垢版 |
2018/09/15(土) 20:11:41.06ID:???
完全論破( ー`дー´)キリッ
0860nobodyさん
垢版 |
2018/09/15(土) 20:16:27.14ID:???
リアルタイムと言うけど
一体全体どんな処理を想定しているんだ
手段として常駐化が使えてかつ常駐化が効率的であるケースはそう多くない
というかぶっちゃけかなり少ないように思われるんだけど
0861nobodyさん
垢版 |
2018/09/15(土) 20:57:38.10ID:???
どちらかといえば実装ではなく設計もしくはその上流の問題かな
オンデマンドでもなく毎分起動、しかもphp実装
ポート開けて待ち構えるでもない

問題があるとすればその所在はdeamon云々ではなく別のところ
0862nobodyさん
垢版 |
2018/09/16(日) 22:52:24.26ID:???
>>109
みやえらってYouTubeでも他のアフィリエイターの名前を利用して集客してるよね。
それで散々否定した上で、自分のサロンみたいなものに誘導してる。
一番、卑怯なタイプですよね。
0863nobodyさん
垢版 |
2018/09/17(月) 11:09:15.41ID:pOFnQ2V0
phpって
クラスのフィールドに代入する時
クラスで定義してない名前のフィールドにも代入出来る?

何でこの辺ゆるゆるなんだ
0864nobodyさん
垢版 |
2018/09/17(月) 15:16:51.62ID: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">
と自分自身に渡す場合エラーになってしまいます。
どうすべき、どうしてますか?
0865nobodyさん
垢版 |
2018/09/17(月) 15:29:30.63ID:???
if(!isset($_POST["token"]) || $_POST["token"] !== 値 ){エラー表示}

のところの「値」が数値型になってないか?
0866nobodyさん
垢版 |
2018/09/17(月) 17:02:21.91ID:???
ifの中身が予想に反する結果になるんだったらまずvar_dumpして原因探れよ
0867nobodyさん
垢版 |
2018/09/17(月) 21:53:00.13ID:???
>>865
文字型です。
別画面へ移動ならエラーにならないのでそこは問題ありません。

>>866
予想通りの結果です。
CSRF対策で、ページが最初に読み込まれたときの処理をどうしてますか?
0868nobodyさん
垢版 |
2018/09/17(月) 22:03:36.74ID:???
>>867
hoge1.phpとhoge2.phpの内容を
(おおまか)
などと言って省略しないで全部出せ

それか、再現可能な最小のコードを書け
0869nobodyさん
垢版 |
2018/09/17(月) 22:27:37.65ID:???
質問者の意図がわからずブチ切れ
ほぼ間違いなくCSRF対策の意味がわかってない
0870nobodyさん
垢版 |
2018/09/17(月) 22:37:31.33ID:???
配列長が500、[0]から[99]までは値が1、[100]から[499]までは値が0、という配列を作るのってどうすればいいですか?
やはり面倒でもforでまわすのが確実でわかりやすいでしょうか
0871nobodyさん
垢版 |
2018/09/17(月) 22:50:49.71ID:v4ZYnSR8
<form action="hoge2.php">
methodが抜けてる時点で、お話にならない。
0873nobodyさん
垢版 |
2018/09/17(月) 23:02:38.57ID:???
>>872
配列長100で全要素の値が1の配列Aに、配列長500で全要素の値が0の配列Bをmargeするということでしょうか
0874nobodyさん
垢版 |
2018/09/17(月) 23:06:54.07ID:???
連投すいません

array_mergeの動作を勘違いしていました
array_merge( array_fill(0, 100, 1), array_fill(100, 400, 0) )
これだけで重複させずに生成できるんですね
ありがとうございました
0875nobodyさん
垢版 |
2018/09/17(月) 23:14:38.03ID:???
>>871
質問に余分な箇所は削るという感じでしたので省略しました。
そこ必要でしたか?ちなみにPOSTです。
0876nobodyさん
垢版 |
2018/09/17(月) 23:18:31.41ID:???
>>871
methodが何であれ対策に根本的には関係ない
すでに書かれてるのにあえてまた書くがエラーが出て困ってるのではないとわかってる?
0877nobodyさん
垢版 |
2018/09/17(月) 23:20:48.74ID:???
>>871は頭悪いのか?なくても予想できるだろ
>別画面へ移動ならエラーにならない
0880nobodyさん
垢版 |
2018/09/18(火) 06:05:33.23ID:???
低レベルな喧嘩は初心者スレでやってくれる?
0881nobodyさん
垢版 |
2018/09/18(火) 19:59:18.63ID:???
問題点が見えていない2人(か1人か)のために書くと

$_POST['token']には何かしら値が入っているはず
入ってなければ不正アクセス等(で強制終了可)

ところが自分呼び出しでは最初は値が入っていない
だからエラー処理してるとそれになる
不正アクセス等の区別をどうするかということだな

エラー処理せずスルーするか
0882nobodyさん
垢版 |
2018/09/18(火) 20:26:37.82ID:UTbc9qbB
sessionが空
postが空
sessionとpostが一致しない
 => でてけ!
0883nobodyさん
垢版 |
2018/09/18(火) 21:16:13.02ID:???
>>868
(おおまか)は !is_string($_POST['token']) など質問に全く関係ないバリデなどです。
他スレではどこも関係ない部分は消せと言われますがここは全部書いた方がいいのでしょうか?
>>864は100%再現します。
0884nobodyさん
垢版 |
2018/09/18(火) 21:19:41.01ID:???
$_POST['token']以外に何も判断材料がないのかね
0885nobodyさん
垢版 |
2018/09/18(火) 21:22:12.02ID:???
method記述がないコードでhoge2.phpに投げるとなぜか$_POST['token']に値が入ります!再現します!
0886nobodyさん
垢版 |
2018/09/18(火) 21:55:49.75ID:???
>>884
判断材料とはなんでしょうか?>>881の通りです。

フラグに初回で値入れるか変えて
それ以降受け渡して使い回しすれば判定できますがそれはちょっと。
みなさんはどう判定してるのでしょうか?
0888nobodyさん
垢版 |
2018/09/19(水) 15:07:37.46ID:vkVFY1/A
そもそもスーパーグローバルとか使うなや
0889nobodyさん
垢版 |
2018/09/19(水) 19:30:11.00ID:???
SESSIONならいいんじゃね
0890nobodyさん
垢版 |
2018/09/19(水) 20:44:33.16ID:???
別に使っても構わんだろ
0891nobodyさん
垢版 |
2018/09/19(水) 22:12:38.81ID:???
filter_input覚えたからってスーパーグローバルだから使うなって理屈はおかしい
スーパーグローバルがいじれてしまっても意図したことなのでなんの不都合もない
0892nobodyさん
垢版 |
2018/09/19(水) 22:42:03.69ID:AG3DKNyH
そもそもPHP使うなや
0894nobodyさん
垢版 |
2018/09/20(木) 04:30:30.01ID:???
バリデーションが貧弱でFILTER_CALLBACK使いまくりの
汚らしいコードになるのがfilter_input
すっきりでもなんでもねえや
0895nobodyさん
垢版 |
2018/09/20(木) 07:47:03.15ID:RWskJfDy
なんでPHPのフレームワーク使わないの?
0896nobodyさん
垢版 |
2018/09/20(木) 08:22:15.22ID:???
ageてるやつはちょっと頭悪すぎてこのスレに不要なんで消えてくれるかな
0897nobodyさん
垢版 |
2018/09/20(木) 15:04:04.76ID:r6jO1NK4
スーパーグローバルなんて使ったらテスト出来ないじゃん
禄にテストしないとgoto failを誤記述してセキュリティに大穴空けたiOSみたいになるぞ
0899nobodyさん
垢版 |
2018/09/20(木) 19:08:24.84ID:???
自己呼び出しはそんな特別なことでもないのにな
皆対策してないのか
0900nobodyさん
垢版 |
2018/09/20(木) 20:58:49.72ID:???
CSRF対策とはなんぞや、から説明し出す人を待ってるのかな
0901nobodyさん
垢版 |
2018/09/20(木) 21:56:25.03ID:???
OAuth2のstateは?

リンクを踏ませて攻撃者のアカウントにログインさせられるのを防ぐらしい

図解:OAuth 2.0に潜む「5つの脆弱性」と解決法 (2/4)
http://www.atmarkit.co.jp/ait/articles/1710/24/news011_2.html

しかし、ユーザーのアカウントを盗むのではなく
騙して攻撃者のアカウントにログインさせるのって
何に使えるんだ?
0902nobodyさん
垢版 |
2018/09/20(木) 23:15:09.43ID:???
>>900
そんな説明はいらんし、上見た感じ質問者以外説明できるのここにはいないだろ
0903nobodyさん
垢版 |
2018/09/21(金) 00:22:36.65ID:???
なんぞやを引き出そうとは読めんしな。

>>901
読んでないがカウンターじゃね。
0904nobodyさん
垢版 |
2018/09/21(金) 02:45:20.98ID:???
$_POST["token"] !== 値

!==だから「$_POST["token"]」と「値」では型が違うんじゃね?くらいしかわからん
値をどうやって作ってるのか見ないと何とも言えない
0905nobodyさん
垢版 |
2018/09/21(金) 09:29:51.47ID:???
CSRFなんてXSSと並んで初歩中の初歩なんだが
0906nobodyさん
垢版 |
2018/09/21(金) 17:04:25.95ID:???
知っておくべきことやっておくべきことではあるが、初歩ではないぞ
0907nobodyさん
垢版 |
2018/09/21(金) 22:40:04.68ID:???
初歩的な知識ではあるが技術的にはかなりしんどい
単純なシステムならいいが、複ログインや古いシステムが絡まると手がつけられなくなる
0908nobodyさん
垢版 |
2018/09/21(金) 22:55:58.39ID:???
初心者お断りスレの対象じゃないということで
0909nobodyさん
垢版 |
2018/09/21(金) 23:23:26.53ID:???
>>904
いやだから同じページでなければそこは正常動作してるんだって
初期表示と不正侵入の区別
これは理論上無理だからページ構成変えるとか
例えばお問い合わせフォームなら次ページ次ページと行けるから自然と値は入る
0911nobodyさん
垢版 |
2018/09/22(土) 02:15:22.08ID:???
CakePHPとか何かフレームワーク入れりゃそれがXSS対策・CSRF対策をしてくれるからな
特段なんか対策用の仕組みを考えたりとかしてないだろ?
0912nobodyさん
垢版 |
2018/09/22(土) 05:13:29.59ID:???
新手のオラつき方だな
0913nobodyさん
垢版 |
2018/09/22(土) 06:03:21.81ID:???
CSRFとその他をごっちゃにしすぎ
まずはCSRFだけに注目して考える
それでどういう対策が有効かを考え
その対策をしたときに生まれる新たな問題がないかを検討
そうやって問題がないところまで考えることができればミジンコ卒業
0914nobodyさん
垢版 |
2018/09/22(土) 08:04:21.67ID:???
FW使えば問答無用で対策がされるわけないだろ
FWのルールに従い FWの機能を使っているうちはそうではあるが
もともと備わってるそういう機能やルールがあるのを知らず
一歩踏み外して自前でコードを書き出せば常に危険は伴う
ただしいリスクに対する対策ができればそういったケースでも安全
FWにも学習コストがかかるわけで
方言のようなFWの流儀覚えるからセキュリティなんて考慮しないではなく
標準語としてピュアPHPなコードで学習しないとFWに頼りきってると痛い目見る
0915nobodyさん
垢版 |
2018/09/22(土) 14:55:29.83ID:???
>>913
CSRF以外話には出てないが?
君がごっちゃにしてるだけだろ
0916nobodyさん
垢版 |
2018/09/22(土) 14:57:31.34ID:???
まあまずは頭の中を整理しよな
0917nobodyさん
垢版 |
2018/09/22(土) 16:06:23.64ID:???
>>914
同感
壁にぶつかってそれを対策するためだけにFW使えとは本末転倒
FW使うにしろ基本に取り組むことは正しいし後々役に立つこともある

>>916
>>880
0918nobodyさん
垢版 |
2018/09/22(土) 21:20:14.76ID:???
>>910
なにがおかしい?そのままその通りだが
0919nobodyさん
垢版 |
2018/09/22(土) 21:59:52.93ID:???
>>905
なら答えようか、初回のエラー対策。
はいどうぞ↓
0920nobodyさん
垢版 |
2018/09/22(土) 22:03:57.01ID:???
>>919
丸一日半も経ってからその程度しかレスできないの?
君、生きてる価値ないw
0922nobodyさん
垢版 |
2018/09/22(土) 23:47:56.96ID:???
>>920
丸一日?誰と勘違いしてんだ。
ようは答えられないのだな。
0923nobodyさん
垢版 |
2018/09/23(日) 00:29:13.67ID:???
ここは答えられない人がいちゃもんつけるスレです
0924nobodyさん
垢版 |
2018/09/23(日) 06:27:52.89ID:???
ぼくはまちちゃんも知らない新参が増えてきてんだな
0925nobodyさん
垢版 |
2018/09/23(日) 07:57:41.92ID:???
よそのサイトがよそのサイトにリクエスト送って
それを受理してしまうとまずい状況なのがCSRFな
別にまずくないなら仕様で片付けられる問題
0926nobodyさん
垢版 |
2018/09/23(日) 09:00:09.80ID:???
>>911
間違いなくCakePHPだと今回のような同一ページでも対策してくれる?
他に同一ページで対策するものはある?
0927nobodyさん
垢版 |
2018/09/23(日) 09:21:26.76ID:???
もう1週間近くになるのにまだできてないの
0928nobodyさん
垢版 |
2018/09/23(日) 09:47:44.59ID:???
もう1週間近くになるのにまだ答えられてないの
0929nobodyさん
垢版 |
2018/09/23(日) 10:47:41.49ID:???
そもそも質問した人と断定してることが痛い
0930nobodyさん
垢版 |
2018/09/23(日) 11:04:50.91ID:???
ほんと初心者スレでやってくんないかな
ここ過疎スレなんでねえ
下らないレスで流さないでほしいんだわ
0931nobodyさん
垢版 |
2018/09/23(日) 14:16:22.72ID:???
>>930
雑談スレでもあるから話自体はOK
892, 920のような不毛なレスが余計なだけ
0932nobodyさん
垢版 |
2018/09/23(日) 19:01:10.04ID:???
>>927
とうにできてます。
速度など別の理由で>>909に近い感じにしつつ自分自身に渡すようにしました。
元々お問い合わせフォームの流れなら全く問題なかったので。
0933nobodyさん
垢版 |
2018/09/23(日) 23:50:42.36ID:???
指摘できるならここぞとばかり反論してきたであろう>>910
結局何も言えずに終わったな
これへの返しもwだけだろ
0935nobodyさん
垢版 |
2018/09/24(月) 12:45:34.83ID:???
釣られてやんのw
0936nobodyさん
垢版 |
2018/09/26(水) 19:14:49.36ID:???
>>926
そもそも>>864だけでは再現性が無い
>>871指摘、>>875の通り、method="post"と書けば動作する
問題のコードが端折られているから何が問題なのか分からん
0937nobodyさん
垢版 |
2018/09/26(水) 19:46:53.24ID:???
初心者スレでないからといって
エラーがなにかを書かないとエスパーじゃないと答えられん
0938nobodyさん
垢版 |
2018/09/26(水) 20:47:45.23ID:???
くどい、まだ言ってるのか

>何が問題なのか分からん
読解力が問題
0939nobodyさん
垢版 |
2018/09/26(水) 21:52:45.49ID:???
Windows10でXAMPP使ってる人に
ProでなくHomeで使ってる人いる?
0940nobodyさん
垢版 |
2018/09/26(水) 21:58:12.55ID:???
>939
xamppとwindowsのhome/proは関係ないと思うけど、何を聞きたいの
結局hostsw書き換えるだけだよ
0941nobodyさん
垢版 |
2018/09/26(水) 23:15:25.06ID:???
>>940
肝心なこと書いてなくてすまん
windowsの更新で問題点や面倒さなど違いあるかなと
みんな自動更新抑制ツールなど入れてるだろうから同じことかな
0942nobodyさん
垢版 |
2018/09/26(水) 23:22:34.52ID:???
>>941
特にない
強いて言えば、仮想環境を作る時にPROの方が多少パフォーマンスが優遇されてた気がする
0943nobodyさん
垢版 |
2018/09/26(水) 23:27:14.94ID:???
ProだとHyper-Vが使える
そもそもXAMPP使わないけど
0944nobodyさん
垢版 |
2018/09/27(木) 08:42:18.63ID:???
10 homeでxampp使ってるぞ
もともと7 homeからたけどな
phpの動作確認なんてこれで十分や
0945nobodyさん
垢版 |
2018/09/27(木) 19:59:39.18ID:???
みんなありがとう、よく参考になった
0946nobodyさん
垢版 |
2018/09/27(木) 20:31:30.36ID:???
本件から逸れて申し訳ないけど, XAMPPって中途半端じゃない?
手元での動作確認ならビルトインサーバでいいしテスト用環境ならコンテナなり仮想なりで動かすし
実際にApacheで動かせるって言っても今はphp-fpmの方もかなりあるし
何れにしてもビルトインサーバよりXAMPPのほうがいい状況が分からない(MariaDBも一緒に入ってくることくらい?)
0947nobodyさん
垢版 |
2018/09/27(木) 20:49:57.19ID:???
>>936
答えてもいいがもうくどいしそういう流れでもないからヒントだけ書く

自分で実際にやってみなさい
値は乱数でもsessionでも極端に定数でも何であれ関係ない
0948nobodyさん
垢版 |
2018/09/28(金) 02:52:40.17ID:???
ビルトインでは何か挙動が違うことがない?
ディレクトリ設定というか、エイリアス処理をしてる場合とか。
本番環境ならhoge/であのスクリプトにアクセスするのにビルトインだと違うみたいな

コンテナなり仮想環境なりは実行まで手間が掛かったりしない?
仮想環境起動に6秒くらい掛かったり、配備が手間だったり。
0949nobodyさん
垢版 |
2018/09/28(金) 08:00:49.46ID:???
ビルトインこそ中途半端だわ
アプリケーション毎に仮想環境を用意するのも自分はあんま理解できんな
XAMPPで作ったやつが動かんことあっても5分で修正出来るレベルの内容だろう
0950nobodyさん
垢版 |
2018/09/28(金) 08:08:40.57ID:???
OSやバージョン無視したコード書かないのが大前提でね
初心者じゃないしマニュアル見ながらそんくらい把握できるじゃろ
0951nobodyさん
垢版 |
2018/09/28(金) 08:09:11.73ID:???
結局どうやってもサーバーと色々差異があるので、dev.example.〜にしてるわ
コピーして終わり
よぽど特殊なサイトはxampp
0952nobodyさん
垢版 |
2018/09/28(金) 08:15:32.89ID:???
スルーしてたけどビルトインサーバってもしかしてphpのビルトインウェブサーバ?
使いもんになるのアレ
0953nobodyさん
垢版 |
2018/09/28(金) 08:20:50.57ID:???
>OSやバージョン無視したコード書かないのが大前提でね

これどういうこと?
何使うにしてもテスト環境あるならそのverで使えない組み込み関数使えば
テストでエラー吐かれるんだしバージョン無視コードがわからない
OS無視コードも何を指してるのかわからない
0954nobodyさん
垢版 |
2018/09/28(金) 09:25:43.46ID:???
>>953
XAMPP使って仮想環境を用意しないということは
本番とはバージョンやOSが違う状態で開発してるという想定をして
ちゃんとコードをかけるかどうかっていう話だがそんな難しいことじゃねえだろ
0955nobodyさん
垢版 |
2018/09/28(金) 09:52:55.62ID:???
>>954
バージョン違うとは限らんだろ
OSにしてもOS依存のコードって意識的に書かないと無理でね?
0956nobodyさん
垢版 |
2018/09/28(金) 09:56:23.92ID:???
Windowsじゃ使えない機能はいくつか知ってるけども
あとは……なんかあったっけ?
0957nobodyさん
垢版 |
2018/09/28(金) 10:29:29.10ID:???
>>955
意識的にかけるならいいんだよ
書けない人が動かんって言ってるわけで

>>956
関数でOSやFSに依存したり制限をうけるものもそうだけど
(問題になるかは別として)CRLFをPHP_EOLで書いてみたりとか
(このスレにいるかは別として)C:\users\unko\manko.pngとかパス書いちゃうやつとか
ちょっとバイナリプログラミングに手を出してみてエンディアン考えない実装したりとか
ほとんどミラクルケースではあるがまあいろいろある
0958nobodyさん
垢版 |
2018/09/28(金) 10:46:04.89ID:???
>>957
とりあえずOSについてだけ、だけど、正直あんまり同意できない

ファイルシステム関係は・・・どんなんがあった?
意識してWindowsの特有のACLを操作するときとか?わからんけど

PHP_EOLはわざわざ意識的に「OS依存の改行コード」を指定してるんだから関係なくね

パスの問題は環境が異なるのに絶対パスで書くこと自体がNGなのであってOS関係ないはず

エンディアンが問題になるって、ファイル読んで$char[$n]だったら問題にならないし
pack/unpackだったらまず間違いなくOSによらず意識的にエンディアン指定するんでねーの

あと意識しないで改行コードが変わりうるfputcsvみたいなやつか
parse_ini_fileはどうだったっけ
0959nobodyさん
垢版 |
2018/09/28(金) 10:48:09.51ID:???
ミラクルケースに近いけど32bit/64bitの数値上限とか
0960nobodyさん
垢版 |
2018/09/28(金) 12:34:50.29ID:???
>PHP_EOLはわざわざ意識的に「OS依存の改行コード」を指定してる
$tmp_path = "/var/tmp";
$updir = $tmp . DIRECTORY_SEPARATOR . "upload";
とか明らかに無意識というか脳死してる人は割と多い。
0961946
垢版 |
2018/09/28(金) 12:46:39.01ID:???
今時PHPを含めスクリプトならどんな言語でも開発用には簡易サーバ使うと思ってる
PHPならビルトインサーバだしRubyならWebrick, PythonならDjangoのdevserverが主要どころだろう

多人数の開発でApacheの設定をさせるのって難しくない?
自分だけで開発してるならXAMPPも分かるけど, でもフレームワークの開発用サーバ起動コマンド使う方が楽じゃない?

手元では簡易サーバで動かしたりテスト走らせたりしつつ, リポジトリpushしたときにCIサーバ側でテスト用コンテナ立ててテスト走らせれば本番環境に近い環境でテスト出来るし
0962nobodyさん
垢版 |
2018/09/28(金) 12:58:27.95ID:???
単一ページならともかく
リクエストまたぐときは論外
0963nobodyさん
垢版 |
2018/09/28(金) 13:25:42.97ID:???
OS依存とかバージョン依存話してる奴らはまだいい
946ちゃんはアカン
0964nobodyさん
垢版 |
2018/09/28(金) 13:29:07.65ID:???
>>960
WinでもLinuxでもパス区切り記号は / 使っていいと思ってたわ
いや実際普通に使えるんだが。絶対パスやマルチバイト使わなきゃ大抵は平気なんだが

むしろなんでそんな定数使おうとするんだろう。一体何を考えて・・・
0965nobodyさん
垢版 |
2018/09/28(金) 17:28:51.84ID:???
964に同意でーす

DIRECTORY_SEPARATORなんて使ったことねーぞ
頭の中では死語になってる
0966nobodyさん
垢版 |
2018/09/28(金) 20:14:32.88ID:???
>>961
Apacheの設定って設定終わったら設定コピーするだけじゃん
多人数だとその設定はリポジトリを通して共有されるものだろう?
0967nobodyさん
垢版 |
2018/09/28(金) 20:15:52.53ID:???
pathに"C:"が入ってたらデバッグモード・・・
ってのを昔やってたな
色々めんどくなってサブドメイン管理にするようになったけど
0968nobodyさん
垢版 |
2018/09/28(金) 20:23:44.53ID:???
DIRECTORY_SEPARATORは確かCakeに入ってたな
今も入ってるかしらないけど
define("DS", DIRECTORY_SEPARATOR)
とかでDSだらけだった記憶が
0969nobodyさん
垢版 |
2018/09/28(金) 22:36:46.84ID:???
php.iniならまだギリわかるが(設定コピーすりゃいいけど)
apache httpdのhttpd.confでなんか開発に影響あってめんどいのってあるか?
httpdの設定も満足にできない、って相当だぞ
0970nobodyさん
垢版 |
2018/09/28(金) 22:47:02.93ID:???
>>969

レンサバの保守をやる場合サーバー側で設定できない事がある
専サバなら本当に楽
0971nobodyさん
垢版 |
2018/09/28(金) 22:49:40.40ID:???
>>970
これ手元のローカルの開発環境の話だろ
レンサバでphpのビルトインウェブサーバ使うのかお前は
0972nobodyさん
垢版 |
2018/09/28(金) 22:52:55.62ID:???
>>971
そりゃそうでしょ
レンサバでphpのビルトインウェブサーバは使えないだろう
・・・と思ったけど使えたらすまん
0973nobodyさん
垢版 |
2018/09/28(金) 23:01:47.62ID:???
非開発者が話に混じってる感
0974946
垢版 |
2018/09/28(金) 23:20:50.08ID:???
楽出来るなら楽した方がいいよねって話よ
何よりビルトインサーバの方が手間が少ないから
あとApacheとかnginxとかのフル機能Webサーバの設定ってコピペだけならいざ知らずちゃんとやるのはかなり勉強が必要だと思うけど
ましてトラブル発生時とか

上でも書いたけどPythonやRoRのプロジェクトでrunserverとかrails sとか開発時にはそっち使わない?
開発時からApache/nginx + Passenger/Unicorn/gunicorn/uWSGIとかでやるのが普通なのかな
0975nobodyさん
垢版 |
2018/09/28(金) 23:45:46.98ID:???
httpd.confの編集がおぼつかないというのは
socketってなんですかpathってなんですか正規表現ってなんですか、というレベルだろう
ふれーむわーくに頼ってて中身把握できてない人材と同じ系統
むしろ学ばせてレベル底上げする、あるいはふるいにかける良い機会では
0976nobodyさん
垢版 |
2018/09/29(土) 00:44:45.56ID:???
>>974
XAMPP入れるだけで動く環境が出来るんだからラクだろう
PHP入れる手間でApacheも付いてくるようなものだ

それとここPHPのスレなんだが
PythonやRoRの話したけりゃ別スレ行けよ
0977nobodyさん
垢版 |
2018/09/29(土) 08:37:50.46ID:???
プログラマって、なんですか・・・・
0978nobodyさん
垢版 |
2018/09/29(土) 09:09:44.84ID:N/7exOLA
>>976
xamppとかゴミ以下の存在。
開発環境としては、オートリロードもできないし(自分で仕込まない限り)、
本番環境としてはまったく使えないから、プロダクションの知識も役に立たない。
仮想環境とかDockerとか他にもーーっといいやり方がある。
0979nobodyさん
垢版 |
2018/09/29(土) 09:43:37.88ID:???
ゴミ以下の理由がオートリロードって…
0980nobodyさん
垢版 |
2018/09/29(土) 11:24:22.81ID:???
まるで仮想環境やDockerなら
何もしなくてもオートリロードしてくれるみたいな言い方だな
0982nobodyさん
垢版 |
2018/09/30(日) 00:01:21.98ID:???
xamppアンチとか珍種すぎるわ
ただのテスト環境に噛み付くってほんっとうに暇なのか
0983nobodyさん
垢版 |
2018/09/30(日) 05:31:44.75ID:???
オートリロードって何だ?IDEの機能じゃね―の?
0984nobodyさん
垢版 |
2018/09/30(日) 10:27:11.81ID:???
チートの一種だよ
0987nobodyさん
垢版 |
2018/10/02(火) 23:04:48.21ID:???
MANGA版のゴッドマーズも動かないの
0989nobodyさん
垢版 |
2018/10/06(土) 09:12:30.09ID:CwzvffqG
Docker Toolboxでphpファイルの入ってるWindowsのディレクトリをマウントして使うと遅い

rsyncやunison syncを使う手もあるが
ちょっと面倒くさい
それ使わないで速く出来ない?
0990nobodyさん
垢版 |
2018/10/06(土) 09:45:15.10ID:???
dockerやめれば速くなる
0991nobodyさん
垢版 |
2018/10/10(水) 16:17:39.86ID:???
if文で文字列想定の変数を否定演算子でチェックするのはやめてって言われたんですが何故でしょうか
0992nobodyさん
垢版 |
2018/10/10(水) 16:22:20.86ID:???
言った人に聞きましょう
0993nobodyさん
垢版 |
2018/10/10(水) 17:10:56.68ID:???
空文字""や"0"を想定しないといけないケースなんでは
まぁこれらを文字"列"というべきかどうか…
0994nobodyさん
垢版 |
2018/10/14(日) 22:26:04.60ID:???
function setAttribute($attr_name, $value) {
 $this->attr_name = $val;
}
これっていわゆるsetterと考えていいんでしょうか?
0995nobodyさん
垢版 |
2018/10/14(日) 22:38:04.69ID:???
>>991
"0"がFALSEになるとかじゃないの
"0foo"でもなるかもしれない
俺もこんなケース覚えてないから文字列長0かどうかで判定している
絶対にやめておいたほうが良いぞ
0997nobodyさん
垢版 |
2018/10/15(月) 10:29:45.42ID:???
そろそろ新スレに
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 473日 22時間 47分 4秒
10021002
垢版 |
Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/

▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。

ニューススポーツなんでも実況