PHPに関する下らない質問用避難スレです。
まず読むこと【PHPマニュアル】
http://www.php.net/manual/ja/
前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 7
http://echo.2ch.net/test/read.cgi/tech/1478657006/
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
【PHP】下らねぇ質問はここに書き込みやがれ 8 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ bfb2-csvI)
2017/03/15(水) 00:41:22.79ID:ko4BTSP20677デフォルトの名無しさん (アウアウイー Sa35-mO1K)
2017/10/09(月) 13:13:37.43ID:h4S41BKFa cake3も同じだわ
678デフォルトの名無しさん (ワッチョイ fa2e-IzxY)
2017/10/10(火) 17:56:47.10ID:xdjFdlld0679デフォルトの名無しさん (ワッチョイ 75eb-ZMO8)
2017/10/11(水) 03:47:35.08ID:KMdfjBPl0 Symfonyは文字数が多くなる気がして
個人的にはイマイチ子
個人的にはイマイチ子
680デフォルトの名無しさん (アウアウエー Sae3-B6a6)
2017/10/13(金) 20:01:46.42ID:s758Uzmra phpのプレイグラウンドサイトでいいところがあれば教えて下さい
https://www.tehplayground.com
とりあえず検索して見つかったここを使ってますが
もっといいところありますか?
https://www.tehplayground.com
とりあえず検索して見つかったここを使ってますが
もっといいところありますか?
681デフォルトの名無しさん (アウアウエー Sae3-B6a6)
2017/10/13(金) 20:02:50.62ID:s758Uzmra682デフォルトの名無しさん (ワッチョイ 2beb-KNNp)
2017/10/13(金) 21:02:49.56ID:NQNcqrHf0 Mac Sierra + XAMPPでCakePHP3のインストールが出来ないのだけど、
みんなどうやってインスコしてるの?
composerはインスコできたけど、intlが入らない
バージョン2はコピペで済んだから楽だったのにな〜・・・
みんなどうやってインスコしてるの?
composerはインスコできたけど、intlが入らない
バージョン2はコピペで済んだから楽だったのにな〜・・・
683デフォルトの名無しさん (アウアウエー Sae3-B6a6)
2017/10/13(金) 21:28:05.09ID:s758Uzmra684デフォルトの名無しさん (アウアウエー Sae3-B6a6)
2017/10/13(金) 23:35:56.43ID:s758Uzmra git for windowsを入れたら
gitbashの中でphpも実行できるので便利ですね?
コマンドラインと大差ないといえばないですが
gitbashは任意のフォルダから始められるところがいいです
gitbashの中でphpも実行できるので便利ですね?
コマンドラインと大差ないといえばないですが
gitbashは任意のフォルダから始められるところがいいです
685デフォルトの名無しさん (ワッチョイ f97c-4jF/)
2017/10/14(土) 04:10:36.29ID:TNxvk7D00 sourcetreeでいいよ
どうしてもコマンド打ちたいなら別だけど
どうしてもコマンド打ちたいなら別だけど
686デフォルトの名無しさん (アウアウエー Sae3-B6a6)
2017/10/14(土) 07:17:33.63ID:sv7zl76da atlassianってtrello買収のニュースで聞いたことがありましたが
こういうものを作っていたんですね
とりあえずインストールしてみました
こういうものを作っていたんですね
とりあえずインストールしてみました
687デフォルトの名無しさん (アウアウエー Sae3-B6a6)
2017/10/14(土) 16:05:22.67ID:sv7zl76da 正規表現では一重引用符、二重引用符ともに
エスケープする必要がないと知りました
エスケープをしても問題が出ないので今まで気づきませんでした
preg_match('/\"/','"',$matches);
var_dump($matches);
preg_match('/"/','"',$matches);
var_dump($matches);
どちらの結果も同じになります
何故エスケープする必要のない引用符をエスケープしても
問題が出ないのでしょうか?
エスケープする必要がないと知りました
エスケープをしても問題が出ないので今まで気づきませんでした
preg_match('/\"/','"',$matches);
var_dump($matches);
preg_match('/"/','"',$matches);
var_dump($matches);
どちらの結果も同じになります
何故エスケープする必要のない引用符をエスケープしても
問題が出ないのでしょうか?
688デフォルトの名無しさん (アウアウエー Sae3-B6a6)
2017/10/14(土) 18:01:08.37ID:sv7zl76da よく考えてみると、引用符をエスケープしなければいけないのは、
それが文字列と外界との境界を形成する特殊な文字だからで、
正規表現では文字列の境界をデリミタが形成するので、
引用符は普通の文字と全く変わりがない、
だから他の「普通の文字」をエスケープしても同じことではないか、
と思ってqで試してみたらやはり同じ動作になりました
preg_match('/\q/','q',$matches);
var_dump($matches);
正規表現エンジンは、
意味のないエスケープ文字
を単に無視するように出来ているのでしょうか?
それが文字列と外界との境界を形成する特殊な文字だからで、
正規表現では文字列の境界をデリミタが形成するので、
引用符は普通の文字と全く変わりがない、
だから他の「普通の文字」をエスケープしても同じことではないか、
と思ってqで試してみたらやはり同じ動作になりました
preg_match('/\q/','q',$matches);
var_dump($matches);
正規表現エンジンは、
意味のないエスケープ文字
を単に無視するように出来ているのでしょうか?
689片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd33-WP5G)
2017/10/14(土) 18:22:55.67ID:WLIJLkznd エスケープされた文字列を解釈するのはPHPのエンジンであり、解釈された文字列は、PHPの文字列になる。
正規表現エンジンは、当然PHPの文字列を、正規表現を表す文字列として解釈する。
最初の解釈で、無意味なエスケープはバックスラッシュが無視されるのだから、何も悪いことは起きない。
正規表現エンジンは、当然PHPの文字列を、正規表現を表す文字列として解釈する。
最初の解釈で、無意味なエスケープはバックスラッシュが無視されるのだから、何も悪いことは起きない。
690デフォルトの名無しさん (アウアウエー Sae3-B6a6)
2017/10/14(土) 18:34:55.85ID:sv7zl76da たしかにPHPの場合正規表現もまず最初に普通の文字列に入れられるので
>>688の言い方は適当ではなかったです
やはり正規表現エンジンは無意味なエスケープをただ無視するように作られているのですね
ありがとうございました
>>688の言い方は適当ではなかったです
やはり正規表現エンジンは無意味なエスケープをただ無視するように作られているのですね
ありがとうございました
691デフォルトの名無しさん (ワッチョイ 592a-fL/h)
2017/10/15(日) 11:18:23.57ID:CEYZTvIx0 PHP初心者です。
PHPの実行モデルがイマイチ分からないのですが、
これはイベントモデルではなくただのテンプレートエンジンで、
前回の結果(または鯖上でのコンテキスト)を引き継ぐことなく、
毎回毎回ゼロから構築する必要があるって認識で合っていますか?
具体的には、Webページ全体で使われるクラスやdefine()している場合、
それらを毎回includeする必要があるのでしょうか?(今のところそう見えます)
クライアントJavaScriptの場合はページ遷移がない限り一度構築した物は使えます。
Nodeは使ったことがないですが、多分同じです。
(これらはイベントモデルだからですが)
毎回毎回全構築となると、余分な構築を省かないと実行速度が気になります。
ドメイン全体で単一アプリを提供する場合は
PHPではなくNode等の方が向いているということなのでしょうか?
例えば、dbアクセス用にクラスを作った場合、
それぞれのWebページからはその全メソッドを使うことは通常あり得ません。
だからプログラム的に美しく一つのクラスに纏めるより、
フィールドを継承し、今使うメソッドだけの子クラスに無駄に分割した方が速いのか?とも思えます。
あるいはspl_autoload_register()した場合に、
名前参照だけではなくコンパイル済み状態で格納されるから速度上の問題はない、とかありますか?
PHPの実行モデルがイマイチ分からないのですが、
これはイベントモデルではなくただのテンプレートエンジンで、
前回の結果(または鯖上でのコンテキスト)を引き継ぐことなく、
毎回毎回ゼロから構築する必要があるって認識で合っていますか?
具体的には、Webページ全体で使われるクラスやdefine()している場合、
それらを毎回includeする必要があるのでしょうか?(今のところそう見えます)
クライアントJavaScriptの場合はページ遷移がない限り一度構築した物は使えます。
Nodeは使ったことがないですが、多分同じです。
(これらはイベントモデルだからですが)
毎回毎回全構築となると、余分な構築を省かないと実行速度が気になります。
ドメイン全体で単一アプリを提供する場合は
PHPではなくNode等の方が向いているということなのでしょうか?
例えば、dbアクセス用にクラスを作った場合、
それぞれのWebページからはその全メソッドを使うことは通常あり得ません。
だからプログラム的に美しく一つのクラスに纏めるより、
フィールドを継承し、今使うメソッドだけの子クラスに無駄に分割した方が速いのか?とも思えます。
あるいはspl_autoload_register()した場合に、
名前参照だけではなくコンパイル済み状態で格納されるから速度上の問題はない、とかありますか?
692デフォルトの名無しさん (ワッチョイ 795d-BSx0)
2017/10/15(日) 11:55:30.86ID:s8ygMoJ80 >>691
サーバサイドアプリケーションは大体そんなもんだと思うが
HTTPでセッションを跨いだクライアントの同一性保証なんて不可能だし
コードのパースとかの時間が気になるという意味ならopcacheのようなキャッシュ機構はある
とりあえずサーバサイドアプリケーションについて真面目に勉強するならLaravelとかSymfonyのチュートリアルくらいは触ってみたら
クライアントサイドとは全く違うから
サーバサイドアプリケーションは大体そんなもんだと思うが
HTTPでセッションを跨いだクライアントの同一性保証なんて不可能だし
コードのパースとかの時間が気になるという意味ならopcacheのようなキャッシュ機構はある
とりあえずサーバサイドアプリケーションについて真面目に勉強するならLaravelとかSymfonyのチュートリアルくらいは触ってみたら
クライアントサイドとは全く違うから
693デフォルトの名無しさん (ワッチョイ 592a-fL/h)
2017/10/15(日) 13:46:10.80ID:CEYZTvIx0 >>692
了解です。ありがとうございます。
何らかの機構を備えていると勝手に信じていたので、軽く衝撃でした。
(ちなみにGoとかも同じですかね?ご存知であれば)
ただこれならPHPは各ページ毎に様々なことをするのには向いていますが、
(とはいえこれが通常のHP用途の90%以上を占めますが)
掲示板サイト等、ドメインで単一アプリを提供する際には本質的に遅いことになります。
別サイトで「こんなのどうよ?」と提案したところ、
「PHPでは無理だから止めろ、どうせNodeを使うことになるぞ」と避難轟々だったのも分かります。
この状況でフレームワークを使っていること自体が結構信じがたいです。
とはいえ今回は共用鯖等超軽量環境向けの為、NodeやGoは選択出来ず、PHPしかないのですが。
(参考) http://postd.cc/websocket-shootout/
別件ですが、CSRF脆弱性対策について、
これは単発のリンクを踏んだ(表示した)時用の対策であって、
ガチでのクライアントスクリプト等による攻撃向けではない、という事で合っていますか?
例えば、あるページを表示し、そこのJavaScriptが実行されるなら、
ajaxでhtmlを取得し、CSRFトークンを取得して、
掲示板にその人が書き込んだように見せかけることは簡単に出来ますが。
了解です。ありがとうございます。
何らかの機構を備えていると勝手に信じていたので、軽く衝撃でした。
(ちなみにGoとかも同じですかね?ご存知であれば)
ただこれならPHPは各ページ毎に様々なことをするのには向いていますが、
(とはいえこれが通常のHP用途の90%以上を占めますが)
掲示板サイト等、ドメインで単一アプリを提供する際には本質的に遅いことになります。
別サイトで「こんなのどうよ?」と提案したところ、
「PHPでは無理だから止めろ、どうせNodeを使うことになるぞ」と避難轟々だったのも分かります。
この状況でフレームワークを使っていること自体が結構信じがたいです。
とはいえ今回は共用鯖等超軽量環境向けの為、NodeやGoは選択出来ず、PHPしかないのですが。
(参考) http://postd.cc/websocket-shootout/
別件ですが、CSRF脆弱性対策について、
これは単発のリンクを踏んだ(表示した)時用の対策であって、
ガチでのクライアントスクリプト等による攻撃向けではない、という事で合っていますか?
例えば、あるページを表示し、そこのJavaScriptが実行されるなら、
ajaxでhtmlを取得し、CSRFトークンを取得して、
掲示板にその人が書き込んだように見せかけることは簡単に出来ますが。
694デフォルトの名無しさん (ワッチョイ 795d-BSx0)
2017/10/15(日) 14:31:37.78ID:s8ygMoJ80 >>693
お前さんが何をしたいのか分からんし衝撃受けるのも勝手だが, クライアントサイドの常識をサーバサイドに持ち込むな
PHPに限らずRubyだろうがPythonだろうが何も変わらん
NodeやGoや更に言えばC/C++でサーバ作るというのは考えられるがメンテコストが膨らむしデプロイも面倒
その必要が本当にあるのかよく考えろ
> CSRF
Same Origin Policy
お前さんが何をしたいのか分からんし衝撃受けるのも勝手だが, クライアントサイドの常識をサーバサイドに持ち込むな
PHPに限らずRubyだろうがPythonだろうが何も変わらん
NodeやGoや更に言えばC/C++でサーバ作るというのは考えられるがメンテコストが膨らむしデプロイも面倒
その必要が本当にあるのかよく考えろ
> CSRF
Same Origin Policy
695デフォルトの名無しさん (ワッチョイ d12a-fL/h)
2017/10/15(日) 17:17:04.22ID:u42Q3jAo0 >>694
> PHPに限らずRubyだろうがPythonだろうが何も変わらん
いや多分PHP特有ですよ。RubyやPythonは自前で鯖起動しますので。
Railsチラ見しましたがそんな感じです。
https://railsguides.jp/getting_started.html
ただ現実的にRubyやPythonは超軽量環境でも使えるのでRailsは選択肢になりますね。
とはいえPHPでもopcacheでほぼ問題ないはずですが。
まあとにかく今は味見中です。
作ろうとしているのは掲示板アプリで、GoやNodeの高性能版はOSSで既にあります。
もちろんPHP版も既にあるのですが、こちらも大体高性能化を目指しているので、
超軽量環境向けの廉価版を作ってみようかと。
AGPLv3で公開する予定ですので、興味があればどうぞ。
https://meguca.org/g/2724701
> PHPに限らずRubyだろうがPythonだろうが何も変わらん
いや多分PHP特有ですよ。RubyやPythonは自前で鯖起動しますので。
Railsチラ見しましたがそんな感じです。
https://railsguides.jp/getting_started.html
ただ現実的にRubyやPythonは超軽量環境でも使えるのでRailsは選択肢になりますね。
とはいえPHPでもopcacheでほぼ問題ないはずですが。
まあとにかく今は味見中です。
作ろうとしているのは掲示板アプリで、GoやNodeの高性能版はOSSで既にあります。
もちろんPHP版も既にあるのですが、こちらも大体高性能化を目指しているので、
超軽量環境向けの廉価版を作ってみようかと。
AGPLv3で公開する予定ですので、興味があればどうぞ。
https://meguca.org/g/2724701
696デフォルトの名無しさん (アウアウカー Sad5-ZHAV)
2017/10/15(日) 17:24:11.11ID:L1ItWz+aa697デフォルトの名無しさん (ワッチョイ 8bb8-HXrW)
2017/10/15(日) 22:50:14.72ID:lMinf0FC0 遅い早いって2ch読み書きするのをストレスに感じないのであれば杞憂でしょう
ボトルネックになる部分はPHPの機構なんかよりもネットワーク間の問題のほうが大きいわけで
ボトルネックになる部分はPHPの機構なんかよりもネットワーク間の問題のほうが大きいわけで
698デフォルトの名無しさん (アウアウエー Sae3-B6a6)
2017/10/16(月) 00:01:36.25ID:OoF3Ic3Va 自分もリクエストのたびにこの巨大なフレームワークを読むのか?
とひるんだ時がありましたが
そこは実行コードをキャッシュする仕組みでカバーできるんですね
というか今の人はスタートがnode.jsとかなんだなーという驚きがあります
とひるんだ時がありましたが
そこは実行コードをキャッシュする仕組みでカバーできるんですね
というか今の人はスタートがnode.jsとかなんだなーという驚きがあります
699デフォルトの名無しさん (ワッチョイ 2beb-KNNp)
2017/10/16(月) 00:42:39.22ID:DJrtJlQd0 node.jsってレンサバで動くんか???
700デフォルトの名無しさん (アウアウイー Sac5-quH2)
2017/10/16(月) 02:50:04.46ID:N7MUl21Ra vpsでやろ。
701デフォルトの名無しさん (ワッチョイ 13d2-t9a5)
2017/10/16(月) 08:53:25.48ID:twPANPDV0702デフォルトの名無しさん (ワッチョイ 2beb-KNNp)
2017/10/16(月) 23:32:43.30ID:DJrtJlQd0 ふぇ〜さくらってスゴいのね
703デフォルトの名無しさん (ワッチョイ 533f-NewR)
2017/10/17(火) 01:14:58.17ID:HUD/bT/k0 別にサクラはすごくないだろ
この手の方法はわりとどのレンサバでもできる
この手の方法はわりとどのレンサバでもできる
704デフォルトの名無しさん (ワッチョイ 8bb8-HXrW)
2017/10/17(火) 04:14:34.59ID:UUhSDchZ0705デフォルトの名無しさん (ワッチョイ 912a-fL/h)
2017/10/17(火) 06:07:25.14ID:C8ORuPRh0 質問です。PHPとSQLite3共に初心者です。
PHP+SQLite3でatomic counterが欲しいのですが、変更前の値が上手く取れません。
(unique保証が必要です)
散々ググって試行錯誤もしたのですが、上手くいきません。もしかして綺麗には無理ですか?
$sql = "BEGIN;";
$sql .= "SELECT count FROM counters WHERE id = 'post';";
$sql .= "UPDATE counters SET count = count+1 WHERE id = 'post';";
$sql .= "COMMIT;";
// $result = $db->exec($sql); // インクリメントされるが肝心の値が取れない
$result = $db->querySingle($sql); // なぜかNULLが入っており、インクリメントされない
// $result = $db->query($sql); // その後で fetchArray(): Unable to execute statement: cannot start a transaction within a transaction と出てインクリメントされない
var_dump($result);
なお奇特な方のためのDB設定用コードは以下です。
$db->query('CREATE TABLE counters (id TEXT PRIMARY KEY, count INTEGER)');
$db->query('INSERT INTO counters VALUES ("post", 0)');
atomic自体はUPDATEだけで保証されているのですが、変更前の値をuniqueに掴みたいのです。
用途は例えば掲示板で、自分の投稿が何番か知りたい、とかです。
BEGIN/COMMITでくくらず別々にした場合はunique保証が出来ないのでNGです。
PHP+SQLite3でatomic counterが欲しいのですが、変更前の値が上手く取れません。
(unique保証が必要です)
散々ググって試行錯誤もしたのですが、上手くいきません。もしかして綺麗には無理ですか?
$sql = "BEGIN;";
$sql .= "SELECT count FROM counters WHERE id = 'post';";
$sql .= "UPDATE counters SET count = count+1 WHERE id = 'post';";
$sql .= "COMMIT;";
// $result = $db->exec($sql); // インクリメントされるが肝心の値が取れない
$result = $db->querySingle($sql); // なぜかNULLが入っており、インクリメントされない
// $result = $db->query($sql); // その後で fetchArray(): Unable to execute statement: cannot start a transaction within a transaction と出てインクリメントされない
var_dump($result);
なお奇特な方のためのDB設定用コードは以下です。
$db->query('CREATE TABLE counters (id TEXT PRIMARY KEY, count INTEGER)');
$db->query('INSERT INTO counters VALUES ("post", 0)');
atomic自体はUPDATEだけで保証されているのですが、変更前の値をuniqueに掴みたいのです。
用途は例えば掲示板で、自分の投稿が何番か知りたい、とかです。
BEGIN/COMMITでくくらず別々にした場合はunique保証が出来ないのでNGです。
706デフォルトの名無しさん (ワッチョイ 795d-BSx0)
2017/10/17(火) 09:57:21.02ID:RHJUWC0z0 >>705
1回のクエリで実行しようとしたらそらそうなるでしょ
あと一意性を保証したいならトランザクション分離レベルをRepeatable Read相当(SQLiteではIMMEDIATEだったっけ)にする必要がある
1回のクエリで実行しようとしたらそらそうなるでしょ
あと一意性を保証したいならトランザクション分離レベルをRepeatable Read相当(SQLiteではIMMEDIATEだったっけ)にする必要がある
707デフォルトの名無しさん (ワッチョイ 31e9-89ZN)
2017/10/17(火) 10:56:38.81ID:s8lIkCI50 >>695みたいなPHPのコストについての話が出る度に思うが
こういう人って今までどの程度の規模のサービスを扱った事があるんだろ?
10年ぐらい前に俺が個人の趣味の延長で開発してaspとして金取ってたサービス
800万PV前後/日程度だったが
当時のPHP4系・MySQL3系・Apach1系の組み合わせのサーバー1台(DBすら分けてない)で運用できてた
レンタル費用をケチろうと思ったんだろう
貸出先が業者にまんまUIパクったようなものを数百万で作らせたら
全然PV裁けなくなって業者に文句言ったら
捌けるようになるまでサーバーを増やせと言われたという笑い話
800万PVなんてここのプロ様に比べたらレベルが低すぎるだろうから
最低1億PV/日ぐらいは想定してるんだろうなきっと
こういう人って今までどの程度の規模のサービスを扱った事があるんだろ?
10年ぐらい前に俺が個人の趣味の延長で開発してaspとして金取ってたサービス
800万PV前後/日程度だったが
当時のPHP4系・MySQL3系・Apach1系の組み合わせのサーバー1台(DBすら分けてない)で運用できてた
レンタル費用をケチろうと思ったんだろう
貸出先が業者にまんまUIパクったようなものを数百万で作らせたら
全然PV裁けなくなって業者に文句言ったら
捌けるようになるまでサーバーを増やせと言われたという笑い話
800万PVなんてここのプロ様に比べたらレベルが低すぎるだろうから
最低1億PV/日ぐらいは想定してるんだろうなきっと
708デフォルトの名無しさん (ワッチョイ 795d-BSx0)
2017/10/17(火) 11:13:26.21ID:RHJUWC0z0 でも実際物理で殴る方がお安く済む, でしょう?
709デフォルトの名無しさん (ワッチョイ f99e-0oEc)
2017/10/17(火) 14:02:18.91ID:0jVjcAN80 >>707
800万pvのサイト今もやってるの?
800万pvのサイト今もやってるの?
710デフォルトの名無しさん (ワッチョイ 31e9-89ZN)
2017/10/17(火) 14:45:24.76ID:s8lIkCI50711デフォルトの名無しさん (アウアウエー Sae3-B6a6)
2017/10/17(火) 21:06:15.90ID:rwpxP9zha PHPでHTMLをパースして、
JavaScriptのquerySelectorみたいなもので要素を選択したいのですが
そういうライブラリみたいなものありますか?
JavaScriptのquerySelectorみたいなもので要素を選択したいのですが
そういうライブラリみたいなものありますか?
712デフォルトの名無しさん (ワッチョイ b923-Wja4)
2017/10/17(火) 21:39:14.67ID:uXsqtlL/0 phpquery
713デフォルトの名無しさん (アウアウエー Sae3-B6a6)
2017/10/17(火) 21:50:33.21ID:rwpxP9zha714デフォルトの名無しさん (アウアウエー Sae3-B6a6)
2017/10/18(水) 00:06:15.43ID:catz1Ji3a715デフォルトの名無しさん (アウアウエー Sae3-B6a6)
2017/10/18(水) 00:30:04.05ID:catz1Ji3a JavaScriptのプレイグラウンドはcdnからライブラリを読み込めますが
PHPのプレイグラウンドでライブラリを読めるものはないのでしょうか?
PHPのプレイグラウンドでライブラリを読めるものはないのでしょうか?
716デフォルトの名無しさん (アウアウエー Sae3-B6a6)
2017/10/18(水) 00:45:02.72ID:c6Rft4Lma というかプレイグラウンドなのにライブラリ読み込めないって
全然遊べないですよね・・
全然遊べないですよね・・
717デフォルトの名無しさん (ワッチョイ d12a-fL/h)
2017/10/18(水) 05:41:41.19ID:IAqZZNli0 >>706
少し紛らわしかったので補足します。
705のコードはSQLite3では意図したようには動きません。
ただしMySQL等他DBなら動くようです。(FOR UPDATEはSQLite3ではエラー)
https://dba.stackexchange.com/questions/61603/how-to-query-and-increase-a-value-counter-in-a-thread-safe-way-avoid-race-co
或いは以下の書き方も出来るようです。
$sql .= "UPDATE counters SET count = (@cur_value := count)+1 WHERE id = 'post';";
$sql .= "SELECT @cur_value;";
http://www.sqlines.com/mysql/how-to/select-update-single-statement-race-condition
問題はSQLite3ではこれらが出来ないことです。
ググル限り、UPDATEとINSERTの戻り値はAndroidでは取れており、
http://naichilab.blogspot.jp/2013/06/sqliteinsertautoincrement.html
http://android.roof-balcony.com/shori/strage/insert/
これらはPHPでは SQLite3::changes SQLite3::lastInsertRowID であり、
rowID===INTEGER PRIMARY KEY なので、INSERTして取る方法でとりあえず回避しました。
https://www.dbonline.jp/sqlite/table/index8.html
http://www.sqlite.org/autoinc.html
以下コードになります。
$sql .= "BEGIN EXCLUSIVE;";
$sql .= "INSERT INTO logs VALUES ((SELECT count FROM counters WHERE id = 'post'), date('now'), '$data');";
$sql .= "UPDATE counters SET count = count+1 WHERE id = 'post';";
$sql .= "COMMIT;";
$result = $db->exec($sql);
var_dump($db->lastInsertRowID());
カウンタに対して2回クエリしているのが無駄なんですが、何とかなりませんかね?
(とはいえこちらは我慢できる範囲ですが)
なおスレ毎にtableを分ける予定ですのでAUTOINCREMENTには出来ません。
少し紛らわしかったので補足します。
705のコードはSQLite3では意図したようには動きません。
ただしMySQL等他DBなら動くようです。(FOR UPDATEはSQLite3ではエラー)
https://dba.stackexchange.com/questions/61603/how-to-query-and-increase-a-value-counter-in-a-thread-safe-way-avoid-race-co
或いは以下の書き方も出来るようです。
$sql .= "UPDATE counters SET count = (@cur_value := count)+1 WHERE id = 'post';";
$sql .= "SELECT @cur_value;";
http://www.sqlines.com/mysql/how-to/select-update-single-statement-race-condition
問題はSQLite3ではこれらが出来ないことです。
ググル限り、UPDATEとINSERTの戻り値はAndroidでは取れており、
http://naichilab.blogspot.jp/2013/06/sqliteinsertautoincrement.html
http://android.roof-balcony.com/shori/strage/insert/
これらはPHPでは SQLite3::changes SQLite3::lastInsertRowID であり、
rowID===INTEGER PRIMARY KEY なので、INSERTして取る方法でとりあえず回避しました。
https://www.dbonline.jp/sqlite/table/index8.html
http://www.sqlite.org/autoinc.html
以下コードになります。
$sql .= "BEGIN EXCLUSIVE;";
$sql .= "INSERT INTO logs VALUES ((SELECT count FROM counters WHERE id = 'post'), date('now'), '$data');";
$sql .= "UPDATE counters SET count = count+1 WHERE id = 'post';";
$sql .= "COMMIT;";
$result = $db->exec($sql);
var_dump($db->lastInsertRowID());
カウンタに対して2回クエリしているのが無駄なんですが、何とかなりませんかね?
(とはいえこちらは我慢できる範囲ですが)
なおスレ毎にtableを分ける予定ですのでAUTOINCREMENTには出来ません。
718デフォルトの名無しさん (ワッチョイ d12a-fL/h)
2017/10/18(水) 05:42:26.75ID:IAqZZNli0 次の質問です。
PHPの出力の終了を宣言することは出来ますか?
(そこで一旦通信を終了させ、その後は(ユーザから見て)バックグラウンド的に処理する)
ob_end_clean()はバッファのオフであって終了宣言ではないように見えます。
register_shutdown_function でリクエストの一部にはならない版が欲しいのです。
具体的には、PVの話が出てきて、それもいいなと思ってRead側にもカウンタをつけたものの、
Read/Writeで100倍くらい違うのでこの処理を分けたいのです。
・マルチスレッド(pThread) ← インストール必要
・非同期 ← フレームワーク必須
のため、
・</html>送信後はユーザー側には見えなくなるのでここでやらせる
という作戦を考えましたが、見た目それようの関数がなさそうです。
詳細は後述しますが、これが出来ればユーザ側レスポンスが0.2秒ほど早くなります。
或いはReadに関してはApacheのログをcron等で処理させる方がいいのでしょうか?
ちなみに速度ですが、もう既に遅いです。
XAMPPのローカル環境ですが、純粋にReadだけなら100pv/s程度で、
PVカウンタをDBに持たせるとそこに書き込みが行われ、2pv/s程度まで落ちます。
投稿ならこの倍遅く、1pv/sec程度になります。
まだ味見程度で、全部で100行くらいしか実行してないんですけどね。DBもスカスカですし。
8Mpv/day=100pv/sというのは、ちょっと言い過ぎでは?
或いは304にするかCloudFlare等活用しないと厳しいと思われます。
8ch.netはvichan(PHP+MariaDB)で40kposts/day=0.46posts/sを処理できませんでしたし、
桁はこれで合っていると思います。
だからってGoやNodeがどれほど速いのかは知りません。
(なお上記はスループットではなくレイテンシからの算出なので、実際はこれより早いはずですが)
なお実はBBx規制されており、代行してもらってます。
あまり面倒をかけるのも悪いので、以下に来てくれれば歓迎します。
https://meguca.org/g/2746787
PHPの出力の終了を宣言することは出来ますか?
(そこで一旦通信を終了させ、その後は(ユーザから見て)バックグラウンド的に処理する)
ob_end_clean()はバッファのオフであって終了宣言ではないように見えます。
register_shutdown_function でリクエストの一部にはならない版が欲しいのです。
具体的には、PVの話が出てきて、それもいいなと思ってRead側にもカウンタをつけたものの、
Read/Writeで100倍くらい違うのでこの処理を分けたいのです。
・マルチスレッド(pThread) ← インストール必要
・非同期 ← フレームワーク必須
のため、
・</html>送信後はユーザー側には見えなくなるのでここでやらせる
という作戦を考えましたが、見た目それようの関数がなさそうです。
詳細は後述しますが、これが出来ればユーザ側レスポンスが0.2秒ほど早くなります。
或いはReadに関してはApacheのログをcron等で処理させる方がいいのでしょうか?
ちなみに速度ですが、もう既に遅いです。
XAMPPのローカル環境ですが、純粋にReadだけなら100pv/s程度で、
PVカウンタをDBに持たせるとそこに書き込みが行われ、2pv/s程度まで落ちます。
投稿ならこの倍遅く、1pv/sec程度になります。
まだ味見程度で、全部で100行くらいしか実行してないんですけどね。DBもスカスカですし。
8Mpv/day=100pv/sというのは、ちょっと言い過ぎでは?
或いは304にするかCloudFlare等活用しないと厳しいと思われます。
8ch.netはvichan(PHP+MariaDB)で40kposts/day=0.46posts/sを処理できませんでしたし、
桁はこれで合っていると思います。
だからってGoやNodeがどれほど速いのかは知りません。
(なお上記はスループットではなくレイテンシからの算出なので、実際はこれより早いはずですが)
なお実はBBx規制されており、代行してもらってます。
あまり面倒をかけるのも悪いので、以下に来てくれれば歓迎します。
https://meguca.org/g/2746787
719デフォルトの名無しさん (アウアウイー Sac5-quH2)
2017/10/18(水) 06:48:41.64ID:QGH5jOmla >>718
迷惑だな
迷惑だな
720デフォルトの名無しさん (アウアウエー Sae3-B6a6)
2017/10/18(水) 09:38:34.01ID:ZpnTdM5ra721デフォルトの名無しさん (オイコラミネオ MM8b-NewR)
2017/10/18(水) 09:42:25.90ID:rF9hS7IgM722デフォルトの名無しさん (ワッチョイ 31e9-89ZN)
2017/10/18(水) 12:36:34.56ID:v7V1Syde0 8Mpv/day=100pv/sが言い過ぎってさ…
実際に10年前に今より貧弱な環境で稼働させて
aspとして金を稼いでたサービスなんだけど(MAXで1000万/日超えた日もあった)
PHP4だったというのもあるけどさ
オブジェクト指向なんて全く理解してなかったしフレームワークも使ってない
クラス1個も使わずにfunctionとヒアドキュメントの組み合わせ
名前空間なんてものも当然なかった
DBへのアクセスが極力発生しないようにはしてたけど俺のレベルは糞低いぞ
サーバーのログはテキストでも壊れない…って事は全部テキストキャッシュにしてそれを読めばいい!と何でもテキストにしてたw
頭の悪い俺なりの発想
実際に10年前に今より貧弱な環境で稼働させて
aspとして金を稼いでたサービスなんだけど(MAXで1000万/日超えた日もあった)
PHP4だったというのもあるけどさ
オブジェクト指向なんて全く理解してなかったしフレームワークも使ってない
クラス1個も使わずにfunctionとヒアドキュメントの組み合わせ
名前空間なんてものも当然なかった
DBへのアクセスが極力発生しないようにはしてたけど俺のレベルは糞低いぞ
サーバーのログはテキストでも壊れない…って事は全部テキストキャッシュにしてそれを読めばいい!と何でもテキストにしてたw
頭の悪い俺なりの発想
723デフォルトの名無しさん (ワッチョイ 31e9-89ZN)
2017/10/18(水) 12:37:11.21ID:v7V1Syde0 昔こんな人と仕事をした事がある
色んな言語やデザインパターンを熟知してて
PHPも「これぞオブジェクト指向だ」と唸る程に素晴らしいコードを書ける
めちゃくちゃ頭が良いのが少し話すだけで分かるような人だった(後から知ったが東大卒だった)
でもその人が作ったサービスは激重で運用できなかった
俺は技術もないし頭が悪いからその人の何が悪いかは分からなかったけどw
お前らすごいね
実行レベル?イベントモデル?
pThreadだのGoだのNode.jsだのCloudFlareだの
俺には全然分からんわw
それでどんなサービスができるの?何人ぐらいに使ってもらってどれくらい捌けるの?
って事にしか興味がない
だってさ、使う人にとっては何の言語で書いてるとか関係ないじゃん
これだからPHPerは…って言われるんだろうけどこれでも金はそこそこ自慢できるぐらいは稼いできたからなぁ…
色んな言語やデザインパターンを熟知してて
PHPも「これぞオブジェクト指向だ」と唸る程に素晴らしいコードを書ける
めちゃくちゃ頭が良いのが少し話すだけで分かるような人だった(後から知ったが東大卒だった)
でもその人が作ったサービスは激重で運用できなかった
俺は技術もないし頭が悪いからその人の何が悪いかは分からなかったけどw
お前らすごいね
実行レベル?イベントモデル?
pThreadだのGoだのNode.jsだのCloudFlareだの
俺には全然分からんわw
それでどんなサービスができるの?何人ぐらいに使ってもらってどれくらい捌けるの?
って事にしか興味がない
だってさ、使う人にとっては何の言語で書いてるとか関係ないじゃん
これだからPHPerは…って言われるんだろうけどこれでも金はそこそこ自慢できるぐらいは稼いできたからなぁ…
724デフォルトの名無しさん (アウアウエー Sae3-B6a6)
2017/10/18(水) 14:36:39.14ID:ZpnTdM5ra PHPもwebrickやnode.jsみたいに
それ自体でサーバになればテストに便利なのに
と思って検索したら標準でビルトインウェブサーバーっていうのがあったんですね
それ自体でサーバになればテストに便利なのに
と思って検索したら標準でビルトインウェブサーバーっていうのがあったんですね
725デフォルトの名無しさん (ワッチョイ 795d-BSx0)
2017/10/18(水) 21:26:02.74ID:451ejlL00 君は知らなかったかもしれないがそれ標準で組み込まれてもう5年半なんだ
726デフォルトの名無しさん (アウアウエー Sae3-B6a6)
2017/10/18(水) 22:56:18.69ID:/mn5vVDsa 長い間情報収集を怠っていたので
世の中想像以上に便利になっててびっくりします
世の中想像以上に便利になっててびっくりします
727デフォルトの名無しさん (ワッチョイ 162a-B/u5)
2017/10/19(木) 04:05:45.17ID:lZeER9v70 >>721
こちらは桁が分かってないので助かります。
マシンは2007年製のポンコツで、書き込みは数文字だけですね。
レイテンシからスループットへの換算はやはり無理があるとして、
レイテンシだけにしても遅いので、問題もあるのだとは思います。(外部サイトの方が速い)
http://www.techempower.com/benchmarks/#section=data-r4&hw=ph&test=db
>>722-723
opcacheの無い状態だと、コードを美しく整えれば整えるほど遅くなるから、
それを最初に確認したのです。>>691
君が書いたコードは細切れのバラバラで、
結果的に使う部分だけ走行するから速かったのでしょう。
それの方がよければそうすればいいだけです。
> 全部テキストキャッシュ
結果的に静的ファイルでキャッシュが効いたということでしょう。
今も同じ問題がCloudFlareにもあります。
> って事にしか興味がない
結果指向なのは正しいと思いますよ。
プログラミングはあくまで手段であり、目的ではないので。
特にネット上だと本末転倒になっている人も散見されます。
全く考えないのも問題ですが、考えすぎて手が止まっているのも問題です。
なおPHPerは最も馬鹿にされているらしいですが、JavaScripterよりマシな気はしますよ。
そしてデザインパターン/言語コレクターは使い物にならないと個人的には思います。
こちらは桁が分かってないので助かります。
マシンは2007年製のポンコツで、書き込みは数文字だけですね。
レイテンシからスループットへの換算はやはり無理があるとして、
レイテンシだけにしても遅いので、問題もあるのだとは思います。(外部サイトの方が速い)
http://www.techempower.com/benchmarks/#section=data-r4&hw=ph&test=db
>>722-723
opcacheの無い状態だと、コードを美しく整えれば整えるほど遅くなるから、
それを最初に確認したのです。>>691
君が書いたコードは細切れのバラバラで、
結果的に使う部分だけ走行するから速かったのでしょう。
それの方がよければそうすればいいだけです。
> 全部テキストキャッシュ
結果的に静的ファイルでキャッシュが効いたということでしょう。
今も同じ問題がCloudFlareにもあります。
> って事にしか興味がない
結果指向なのは正しいと思いますよ。
プログラミングはあくまで手段であり、目的ではないので。
特にネット上だと本末転倒になっている人も散見されます。
全く考えないのも問題ですが、考えすぎて手が止まっているのも問題です。
なおPHPerは最も馬鹿にされているらしいですが、JavaScripterよりマシな気はしますよ。
そしてデザインパターン/言語コレクターは使い物にならないと個人的には思います。
728デフォルトの名無しさん (ワッチョイ 162a-B/u5)
2017/10/19(木) 04:06:52.86ID:lZeER9v70 次の質問です。
以下環境でtidewaysが動作している人は居ますか?
A. PHP7.1, Win32, x86
B. PHP7.1, Win32, x64
C. PHP7.1, Linux on VM (つかPHPerの標準環境ってこれ?)
または
D. tidewaysのWindows用ビルドに成功した人、または挑戦する気がある人
こちらはA環境で入れてはみたものの、上手く動きません。
(ライセンス無し、XHPROFの代用での使用)
反応はしており、walltimeが 0, -2,147,483,648, -4,294,967,296 なので、31bitずれています。
おそらくHPETの問題で、以下の
https://github.com/tideways/php-profiler-extension/blob/master/tideways.c#L3308-L3336
のところを修正すれば動く可能性があります。
ただこれはマシンにもよるし、ビルドは嵌る可能性が高い為、
VM等含めて動いている人が居るのであれば動くマシンを探し、駄目なら諦めかと。
誰かビルドに挑戦するのであれば協力はします。
なおビルドオプションは以下が参考になります。
https://ci.appveyor.com/project/tideways/php-profiler-extension/build/4.0.4.215/job/kmxa1he0cjomvjpr
或いは他プロファイラーでいいのがありますか?
以下環境でtidewaysが動作している人は居ますか?
A. PHP7.1, Win32, x86
B. PHP7.1, Win32, x64
C. PHP7.1, Linux on VM (つかPHPerの標準環境ってこれ?)
または
D. tidewaysのWindows用ビルドに成功した人、または挑戦する気がある人
こちらはA環境で入れてはみたものの、上手く動きません。
(ライセンス無し、XHPROFの代用での使用)
反応はしており、walltimeが 0, -2,147,483,648, -4,294,967,296 なので、31bitずれています。
おそらくHPETの問題で、以下の
https://github.com/tideways/php-profiler-extension/blob/master/tideways.c#L3308-L3336
のところを修正すれば動く可能性があります。
ただこれはマシンにもよるし、ビルドは嵌る可能性が高い為、
VM等含めて動いている人が居るのであれば動くマシンを探し、駄目なら諦めかと。
誰かビルドに挑戦するのであれば協力はします。
なおビルドオプションは以下が参考になります。
https://ci.appveyor.com/project/tideways/php-profiler-extension/build/4.0.4.215/job/kmxa1he0cjomvjpr
或いは他プロファイラーでいいのがありますか?
729デフォルトの名無しさん (ワッチョイ a55b-K+MB)
2017/10/19(木) 12:16:50.62ID:NzzKiK+50 > プログラミングはあくまで手段であり、目的ではないので。
> 特にネット上だと本末転倒になっている人も散見されます。
> 全く考えないのも問題ですが、考えすぎて手が止まっているのも問題です。
自己紹介乙
> 特にネット上だと本末転倒になっている人も散見されます。
> 全く考えないのも問題ですが、考えすぎて手が止まっているのも問題です。
自己紹介乙
730デフォルトの名無しさん (アウアウカー Sadd-TM8o)
2017/10/19(木) 12:28:28.36ID:FE92wYZta 僕はプログラミングが目的で仕事はついでです
731デフォルトの名無しさん (ワッチョイ d6b8-Y7bb)
2017/10/19(木) 22:44:13.21ID:KjwMHyuL0 Windows CLIアプリで、EMAILなんかのJIS(ISO-2022-JP)文字コードのファイルを、
読み込んで変換して表示することは出来るのですが、
PHP自体をJISにして、そのPHPに書かれている日本語をechoすると、
undifined variable $Bのようなnoticeが出ます。
もちろんちゃんとコードページにあった文字コード(cp932)に変換はしているのですが、
変換以前に日本語が変数と認識されてしまうようで、うまくいきません。
PHPをJISで保存するなんてことは普通しませんが、
JISでPHPを保存した場合でも、Windows CLIでうまく動作させる方法はありますか?
ttp://tsuttayo.jpn.org/bbs/read.php?FID=2&TID=519
このような記事を見つけて、書かれてる設定を加えてみたのですが、エラーは消えませんでした。
読み込んで変換して表示することは出来るのですが、
PHP自体をJISにして、そのPHPに書かれている日本語をechoすると、
undifined variable $Bのようなnoticeが出ます。
もちろんちゃんとコードページにあった文字コード(cp932)に変換はしているのですが、
変換以前に日本語が変数と認識されてしまうようで、うまくいきません。
PHPをJISで保存するなんてことは普通しませんが、
JISでPHPを保存した場合でも、Windows CLIでうまく動作させる方法はありますか?
ttp://tsuttayo.jpn.org/bbs/read.php?FID=2&TID=519
このような記事を見つけて、書かれてる設定を加えてみたのですが、エラーは消えませんでした。
732デフォルトの名無しさん (アウアウエー Sa22-bcII)
2017/10/20(金) 20:31:39.76ID:OAuKO2/4a PHPをJISで実行しなければいけない理由は何ですか?
733デフォルトの名無しさん (ワッチョイ d6b8-Y7bb)
2017/10/21(土) 08:07:53.66ID:7N/u1SNi0734デフォルトの名無しさん (ワッチョイ a568-U5aN)
2017/10/21(土) 10:33:40.68ID:LXe9cSfz0 PHPで作った自作のフォームに書き込みがなされると
メールで通知してくれるようにしている。
鯖の移転を考えてるんだけど(具体的にはByetという海外無料鯖)
あいにく候補の移転先はsendmailに非対応だったりする
(スパムメール対策だとか)
こういうときってどうやったらフォームへの書き込みを自分宛に
通知させることができるかな?
メールで通知してくれるようにしている。
鯖の移転を考えてるんだけど(具体的にはByetという海外無料鯖)
あいにく候補の移転先はsendmailに非対応だったりする
(スパムメール対策だとか)
こういうときってどうやったらフォームへの書き込みを自分宛に
通知させることができるかな?
735デフォルトの名無しさん (ワッチョイ 555d-0GSP)
2017/10/21(土) 13:19:00.37ID:jXM7J8Fl0 >>733
PHPCSに掛けよう
大抵のルールセットはソースがUTF-8以外で書かれていればエラー扱いにしてくれる
internal_encodingの問題じゃないかとは思うが, 不正な文字コードで保存された場合にはリポジトリにpushされる時点でエラー通知が飛ぶようにするべきだな
PHPCSに掛けよう
大抵のルールセットはソースがUTF-8以外で書かれていればエラー扱いにしてくれる
internal_encodingの問題じゃないかとは思うが, 不正な文字コードで保存された場合にはリポジトリにpushされる時点でエラー通知が飛ぶようにするべきだな
736デフォルトの名無しさん (アウアウエー Sa22-bcII)
2017/10/21(土) 13:59:33.75ID:ZxQy+kqda PHPとGoって何が違うの?LIGが自社サービス開発にGo言語を採用したお話
https://liginc.co.jp/284306
>Go言語がPHP 7の30倍、PHP 5.6と比べるとなんと82倍にも及ぶスピード
こんな記事を見つけました
OPcacheなどを使った場合と比べてどうなのでしょうか?
自分の考えるPHPの魅力は、
Javaからパクったオブジェクト指向、
標準の関数でウェブやデータベースアクセスが色々できて面倒くさくない、
といったものがありますが、
Goのようなモダン言語ならそのあたりもクリアしてるんじゃないかと思います
どうなのでしょうか?
https://liginc.co.jp/284306
>Go言語がPHP 7の30倍、PHP 5.6と比べるとなんと82倍にも及ぶスピード
こんな記事を見つけました
OPcacheなどを使った場合と比べてどうなのでしょうか?
自分の考えるPHPの魅力は、
Javaからパクったオブジェクト指向、
標準の関数でウェブやデータベースアクセスが色々できて面倒くさくない、
といったものがありますが、
Goのようなモダン言語ならそのあたりもクリアしてるんじゃないかと思います
どうなのでしょうか?
737名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ cea7-U5aN)
2017/10/22(日) 07:41:34.63ID:6vhnloCO0 他スレへGo!
738名無しさん@そうだ選挙に行こう! Go to vote! (アウアウエー Sa22-bcII)
2017/10/22(日) 08:49:39.36ID:FIB6YbKNa739名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ a568-U5aN)
2017/10/22(日) 11:43:49.92ID:hechdin40 >>738
うん、いいところだな、と思ったら肝心のsendmailが動いて無くてな・・・
フォームに書き込みがあるとリアルタイムでメールで通知してくれるプログラムを
PHPで組んでいたんだが、さてどうしたものか・・・
うん、いいところだな、と思ったら肝心のsendmailが動いて無くてな・・・
フォームに書き込みがあるとリアルタイムでメールで通知してくれるプログラムを
PHPで組んでいたんだが、さてどうしたものか・・・
740名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ 7523-wYkv)
2017/10/22(日) 12:04:54.94ID:UtqkZ3+I0 例えばプロバイダ等のメールサーバを使えばいいんじゃないか?
もしくはAWSのSEDとかも少量なら無料。
もしくはAWSのSEDとかも少量なら無料。
741名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ a568-U5aN)
2017/10/22(日) 12:08:52.24ID:hechdin40 >>740
PHP(しかも管理人でも無い末端のユーザーに)からGmailのSMTPサーバー利用できるの?
PHP(しかも管理人でも無い末端のユーザーに)からGmailのSMTPサーバー利用できるの?
742名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ 5581-/wYC)
2017/10/22(日) 13:05:50.25ID:4HKeVMJe0 ソケット使ってサーバーとお話し合いすれば出来そう
743名無しさん@そうだ選挙に行こう! Go to vote! (アウアウエー Sa22-bcII)
2017/10/22(日) 18:46:14.40ID:N3puxcTpa byetでRSSの出力をしようとしていたのですが、どうもうまくいかないので
調べていたのですが
byetに置かれたファイルを他のサーバから読むと、
This site requires Javascript to work, please enable Javascript in your browser
or use a browser with Javascript support
みたいなページに変わることに気づきました
ブラウザ以外のユーザエージェントから読まれることを禁じているようですね
やはり無料のサーバは何かしらあるのですね
ブラウザからPHPも編集できて、これこそプレイグラウンドやんと思ったのですが・・
調べていたのですが
byetに置かれたファイルを他のサーバから読むと、
This site requires Javascript to work, please enable Javascript in your browser
or use a browser with Javascript support
みたいなページに変わることに気づきました
ブラウザ以外のユーザエージェントから読まれることを禁じているようですね
やはり無料のサーバは何かしらあるのですね
ブラウザからPHPも編集できて、これこそプレイグラウンドやんと思ったのですが・・
744名無しさん@そうだ選挙に行こう! Go to vote! (ワッチョイ 7523-wYkv)
2017/10/22(日) 19:45:40.22ID:UtqkZ3+I0745デフォルトの名無しさん (ワッチョイ a568-U5aN)
2017/10/22(日) 20:10:10.98ID:hechdin40746デフォルトの名無しさん (ワッチョイ d6b8-Y7bb)
2017/10/23(月) 15:31:30.11ID:fxiC9AE30747デフォルトの名無しさん (ワッチョイ 4de9-I8tA)
2017/10/23(月) 18:29:23.56ID:n7tiHTCJ0 環境で詰まったというわけでなくプログラミングを勉強してる時に気になったことがあるのでテンプレ無しですがよろしくお願いします
インターフェースがクラスの設計書っていうのは説明読んでて理解出来たんだけど、例えば問い合わせインターフェースから最終的に問い合わせA,B,C,Dのクラスを作る前提で各クラスにはインターフェースで定義したメソッド1,2,3があるとします
メソッド2,3はクラスによって処理は違うけどメソッド1は処理が同じという場合はどう設計するのが良いのでしょうか?
共通の処理がなければ各クラス共にインターフェースを継承して作ればいいと思ったのですが、共通の処理がある場合まず問い合わせのベースとなるクラスを作ってそれを継承して各クラスを作るのが正解?
インターフェースがクラスの設計書っていうのは説明読んでて理解出来たんだけど、例えば問い合わせインターフェースから最終的に問い合わせA,B,C,Dのクラスを作る前提で各クラスにはインターフェースで定義したメソッド1,2,3があるとします
メソッド2,3はクラスによって処理は違うけどメソッド1は処理が同じという場合はどう設計するのが良いのでしょうか?
共通の処理がなければ各クラス共にインターフェースを継承して作ればいいと思ったのですが、共通の処理がある場合まず問い合わせのベースとなるクラスを作ってそれを継承して各クラスを作るのが正解?
748デフォルトの名無しさん (ワッチョイ 555d-976O)
2017/10/23(月) 18:54:12.29ID:EbwleLYx0 >>747
抽象クラス
抽象クラス
749デフォルトの名無しさん (ワッチョイ 4de9-I8tA)
2017/10/23(月) 19:03:19.99ID:n7tiHTCJ0750デフォルトの名無しさん (ワッチョイ a59f-wYkv)
2017/10/23(月) 19:53:41.90ID:1HzbJqCQ0 >>747
トレイト
トレイト
751デフォルトの名無しさん (アウアウエー Sa22-bcII)
2017/10/23(月) 21:05:52.52ID:tJp0k/Rla phpDocumentorの書き方ですが
クラスや関数や変数宣言ではない部分に書くコメントの場合でも
/**
*/
という記法で書くのでしょうか?
クラスや関数や変数宣言ではない部分に書くコメントの場合でも
/**
*/
という記法で書くのでしょうか?
752デフォルトの名無しさん (アウアウエー Sa22-bcII)
2017/10/23(月) 21:39:37.94ID:tJp0k/Rla それを元にドキュメントを作るのがphpDocumentorの目的ですが
インターフェイスと関わらない部分のコメントはドキュメントに載らないので、
この記法で書く必要はない気もしますが
コメントの記法を揃えないと、それはそれで気持ち悪いです
インターフェイスと関わらない部分のコメントはドキュメントに載らないので、
この記法で書く必要はない気もしますが
コメントの記法を揃えないと、それはそれで気持ち悪いです
753デフォルトの名無しさん (ワッチョイ 7523-wYkv)
2017/10/23(月) 23:29:47.09ID:Tv/dpLrE0 >>745
mailだったら何もしなくてもメールサーバー設定すりゃいいだろ
PHPのマニュアルにそのままgmailの送信サンプルあるのに何が不満なんだ?
あまり無料鯖は使わないほうだが規制にひっかかったことないぞ
mailだったら何もしなくてもメールサーバー設定すりゃいいだろ
PHPのマニュアルにそのままgmailの送信サンプルあるのに何が不満なんだ?
あまり無料鯖は使わないほうだが規制にひっかかったことないぞ
754デフォルトの名無しさん (ワッチョイ 555d-0GSP)
2017/10/24(火) 00:07:15.92ID:8OgpvEir0 素直にswiftmailerとか使うのが賢いと思うの
755デフォルトの名無しさん (アウアウエー Sa22-bcII)
2017/10/24(火) 20:09:11.71ID:4zuQt35qa PHPのバッチプログラムをcronで実行させた時に
期待した通りに動きませんでした
調べたらcron時はカレントディレクトリが
スクリプトのあるディレクトリではなく実行ユーザのホームディレクトリになるので
ファイルが思わぬ場所に作成されていたのでした
ファイルアクセスは基本的に絶対パスでやるべきなのですね
ですが、include_onceは相対パスで書いていたのに正常に動作していました
絶対パスで書く方が安心できるとは思いますが、
includeの場合は気にしなくていいのでしょうか?
期待した通りに動きませんでした
調べたらcron時はカレントディレクトリが
スクリプトのあるディレクトリではなく実行ユーザのホームディレクトリになるので
ファイルが思わぬ場所に作成されていたのでした
ファイルアクセスは基本的に絶対パスでやるべきなのですね
ですが、include_onceは相対パスで書いていたのに正常に動作していました
絶対パスで書く方が安心できるとは思いますが、
includeの場合は気にしなくていいのでしょうか?
756片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd9a-f2Bm)
2017/10/24(火) 20:22:12.50ID:+CxSIN/Vd >>755
データ展開を考えると、相対パスの方が便利だ。絶対パスがコロコロ変化する一方で、他方で相対パスが変化しないなら、相対パスの方がデプロイコストが低くなる。
データ展開を考えると、相対パスの方が便利だ。絶対パスがコロコロ変化する一方で、他方で相対パスが変化しないなら、相対パスの方がデプロイコストが低くなる。
757デフォルトの名無しさん (ワッチョイ a59f-wYkv)
2017/10/24(火) 20:24:10.80ID:vrotHuwu0 オレも相対パス派
758片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd9a-f2Bm)
2017/10/24(火) 20:38:04.82ID:+CxSIN/Vd 絶対パスを要求する場所では絶対パスを使う。相対パスを使ってもパスのリンケージが壊れない場所では相対パスを使う。
759デフォルトの名無しさん (ワッチョイ a568-U5aN)
2017/10/24(火) 20:59:24.65ID:yBPDUg+O0 >>754
> 素直にswiftmailerとか使うのが賢いと思うの
swifmailer調べてみた、インストール作業が必要なのね
レンタルサーバーだからインストール作業はちょっと・・・
代わりにPhpmailerってのが使えるみたい。これはファイル置くだけでいいっぽいから。
>>753
> PHPのマニュアルにそのままgmailの送信サンプルあるのに何が不満なんだ?
これのことかな?
Byetってレンサバだからsendmail.iniやphp.iniの改変は不可能なんだわ(´・ω・`)
http://php.net/manual/ja/function.mail.php
Changes required in sendmail.ini
smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=your-gmail-id@gmail.com
auth_password=your-gmail-password
force_sender=your-gmail-id@gmail.com
Changes required in php.ini
SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = your-gmail-id@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
;sendmail_path = "C:\xampp\mailtodisk\mailtodisk.exe"
> 素直にswiftmailerとか使うのが賢いと思うの
swifmailer調べてみた、インストール作業が必要なのね
レンタルサーバーだからインストール作業はちょっと・・・
代わりにPhpmailerってのが使えるみたい。これはファイル置くだけでいいっぽいから。
>>753
> PHPのマニュアルにそのままgmailの送信サンプルあるのに何が不満なんだ?
これのことかな?
Byetってレンサバだからsendmail.iniやphp.iniの改変は不可能なんだわ(´・ω・`)
http://php.net/manual/ja/function.mail.php
Changes required in sendmail.ini
smtp_server=smtp.gmail.com
smtp_port=587
error_logfile=error.log
debug_logfile=debug.log
auth_username=your-gmail-id@gmail.com
auth_password=your-gmail-password
force_sender=your-gmail-id@gmail.com
Changes required in php.ini
SMTP=smtp.gmail.com
smtp_port=587
sendmail_from = your-gmail-id@gmail.com
sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t"
;sendmail_path = "C:\xampp\mailtodisk\mailtodisk.exe"
760デフォルトの名無しさん (アウアウカー Sadd-976O)
2017/10/24(火) 21:09:39.54ID:Q75mHsE3a >>759
composer使えよ
composer使えよ
761デフォルトの名無しさん (アウアウエー Sa22-bcII)
2017/10/24(火) 22:58:25.66ID:4zuQt35qa 絶対パスと言ってもベタ書きではなく__DIR__を使って
そのファイル基準の絶対パスを実行のたびに作るやり方なら
ファイルの場所が変わっても問題は起きにくいのでは?
でもたしかに絶対に絶対パスを使った方がいい、というわけでもありませんね
ありがとうございました
そのファイル基準の絶対パスを実行のたびに作るやり方なら
ファイルの場所が変わっても問題は起きにくいのでは?
でもたしかに絶対に絶対パスを使った方がいい、というわけでもありませんね
ありがとうございました
762デフォルトの名無しさん (ワッチョイ 51e9-U5aN)
2017/10/25(水) 16:08:42.06ID:Cr59jy+d0763デフォルトの名無しさん (ワッチョイ 51e9-U5aN)
2017/10/25(水) 16:19:44.89ID:Cr59jy+d0 >>759
根本的に勘違いしてるっぽいし
あなたにレス付けてる人にも色々と問題があるので
今まで付いたレスは全部忘れた方がいい
まず、メールを送る方法は大雑把に2種類ある
1.自分のサーバーのMTAから送る方法
2.外部のSMTPサーバーを使って送る方法
あなたは今まで1の方法で送っていたが、
移転先では1の方法は使えないので2で送ると良い
例えば何らかのメールソフトを送ってメールを送ってると思うが、
それは2の方法なわけ(SMTPサーバーを設定するところがあるよね?)
だからPHPでも同じように2の方法で送れば良いだけ
お手軽なのはあなたも書いてるPHPMailer
WordPressなんかでも実績のあるライブラリで
メールソフトにSMTPサーバーを設定するのと同じ感覚で初心者にも簡単に使える
稀に脆弱性も見つかってるが、あなたの用途にはピッタリの筈
蛇足だが今時sendmailを使ってるところなんてまずない
PostfixあたりのMTAがsendmailと互換性があるように動いてるだけ
根本的に勘違いしてるっぽいし
あなたにレス付けてる人にも色々と問題があるので
今まで付いたレスは全部忘れた方がいい
まず、メールを送る方法は大雑把に2種類ある
1.自分のサーバーのMTAから送る方法
2.外部のSMTPサーバーを使って送る方法
あなたは今まで1の方法で送っていたが、
移転先では1の方法は使えないので2で送ると良い
例えば何らかのメールソフトを送ってメールを送ってると思うが、
それは2の方法なわけ(SMTPサーバーを設定するところがあるよね?)
だからPHPでも同じように2の方法で送れば良いだけ
お手軽なのはあなたも書いてるPHPMailer
WordPressなんかでも実績のあるライブラリで
メールソフトにSMTPサーバーを設定するのと同じ感覚で初心者にも簡単に使える
稀に脆弱性も見つかってるが、あなたの用途にはピッタリの筈
蛇足だが今時sendmailを使ってるところなんてまずない
PostfixあたりのMTAがsendmailと互換性があるように動いてるだけ
764デフォルトの名無しさん (ワッチョイ 51e9-U5aN)
2017/10/25(水) 16:29:03.87ID:Cr59jy+d0 ×何らかのメールソフトを送ってメールを送ってると思う
○何らかのメールソフトを「使って」メールを送ってると思う
訂正のついでに、ややトリッキーな手段としては、
A.MTAが使えるサーバーにおいた send.php
B.MTAが使えないサーバーおいた put.php
put.phpからsend.phpへ何らかの手段で送信メールの内容を送って(練習なら別にHTTP POSTとかでいい)、
send.phpを使ってメールを送るという手段なんかもある
APIみたいな使い方やね
○何らかのメールソフトを「使って」メールを送ってると思う
訂正のついでに、ややトリッキーな手段としては、
A.MTAが使えるサーバーにおいた send.php
B.MTAが使えないサーバーおいた put.php
put.phpからsend.phpへ何らかの手段で送信メールの内容を送って(練習なら別にHTTP POSTとかでいい)、
send.phpを使ってメールを送るという手段なんかもある
APIみたいな使い方やね
765デフォルトの名無しさん (ワッチョイ a55b-K+MB)
2017/10/25(水) 17:44:25.69ID:hphlT9kR0 レンサバのlocal mtaが使えないような環境のことで質問されてるのに
php.ini編集してmail()関数で送れといってみたり(つか今時mail()関数でメール送るやつなんかいねーよw)
composer使えといってみたり(composerと書きたかっただけだろw)
別の質問で相対パスか絶対パスかとかさ(てかnamespaceとオートローダー使えw)
色々酷すぎるとおもってレスしようとしたらほとんど全部書かれていたでござる
php.ini編集してmail()関数で送れといってみたり(つか今時mail()関数でメール送るやつなんかいねーよw)
composer使えといってみたり(composerと書きたかっただけだろw)
別の質問で相対パスか絶対パスかとかさ(てかnamespaceとオートローダー使えw)
色々酷すぎるとおもってレスしようとしたらほとんど全部書かれていたでござる
766デフォルトの名無しさん (ワッチョイ 51e9-U5aN)
2017/10/25(水) 18:05:21.53ID:Cr59jy+d0 使えないSEや仕事の遅いPGとかに多い
たったそれだけの事に何故わざわざそんな事をやるわけ?と問いただすと
結局は知識や経験不足で特定の方法しか知らないのが理由
色んな方法を知った上で相手に合わせた方法を提案するのがまともな人
SMTP使ってメールを送れば良いだけの話なのに
いやいや流石にそれは待てと長文も書きたくなるw
たったそれだけの事に何故わざわざそんな事をやるわけ?と問いただすと
結局は知識や経験不足で特定の方法しか知らないのが理由
色んな方法を知った上で相手に合わせた方法を提案するのがまともな人
SMTP使ってメールを送れば良いだけの話なのに
いやいや流石にそれは待てと長文も書きたくなるw
767デフォルトの名無しさん (スプッッ Sd7a-MuUE)
2017/10/25(水) 19:02:43.76ID:iV0okkYXd ITベンダは複数の選択肢なんて用意しないよ
社内に事例がないことはやらない
社内に事例がないことはやらない
768デフォルトの名無しさん (アウアウエー Sa22-bcII)
2017/10/25(水) 20:09:10.79ID:eczzyF0za >>762
カレントディレクトリを早い時点で設定していても
その後ライブラリの中で再設定されない保証もないのでは?
もちろん、そんなことするのはライブラリとして駄目ですが、
可能性としてないわけではありません
カレントディレクトリを早い時点で設定していても
その後ライブラリの中で再設定されない保証もないのでは?
もちろん、そんなことするのはライブラリとして駄目ですが、
可能性としてないわけではありません
769デフォルトの名無しさん (ワッチョイ a568-U5aN)
2017/10/25(水) 20:18:09.39ID:iHcJH4nT0 >>763
丁寧なレスありがとうm(_ _)m
おかげさまで安心してPHPMailer使えそう
ただ一点、SMTPサーバーのパスワードを平文で保存しないといけないのが気になるけど
ファイルのアクセス制御をしっかりかければ第三者から見られるわけでも無いし
レンタルサーバーの管理人からは見られちゃうけどそこは管理人を信用することにしますノシ
丁寧なレスありがとうm(_ _)m
おかげさまで安心してPHPMailer使えそう
ただ一点、SMTPサーバーのパスワードを平文で保存しないといけないのが気になるけど
ファイルのアクセス制御をしっかりかければ第三者から見られるわけでも無いし
レンタルサーバーの管理人からは見られちゃうけどそこは管理人を信用することにしますノシ
770デフォルトの名無しさん (アウアウカー Sadd-976O)
2017/10/25(水) 20:59:55.31ID:JdF6ntjza そりゃ手でも入れられるけどPHPMailerにせよSwiftMailerにせよcomposerの方が楽じゃん
グローバルに入ってなくてもphpコマンドさえ叩ければ使えるし最悪ローカルで操作してvendorごとアップロードもまぁ出来るしな
グローバルに入ってなくてもphpコマンドさえ叩ければ使えるし最悪ローカルで操作してvendorごとアップロードもまぁ出来るしな
771デフォルトの名無しさん (ワッチョイ c19b-MuUE)
2017/10/25(水) 21:08:30.16ID:BtMPlyUb0 やっぱり共有フォルダにデータ書き込むのは無理?
phpを対話ログイン可能なユーザーで実行するしかない?
phpを対話ログイン可能なユーザーで実行するしかない?
772デフォルトの名無しさん (ワッチョイ 89e9-Eec1)
2017/10/26(木) 09:22:38.49ID:gzc+jHaK0773デフォルトの名無しさん (ワッチョイ 89e9-Eec1)
2017/10/26(木) 09:32:12.60ID:gzc+jHaK0 >>768
ただのヘリクツだな
それを言い出すとオートローダーにしたって
元の定義を上書きするような挙動を後付で定義して
めちゃくちゃにすることだってできる場合もあるわけでして
それよりPHPerはもうちょい鯖の知識を付けた方がいい
そもそもPHPが何のユーザーでどういう権限で動いてるのか分かってたら
cronでミスなんかしないんだよね
ただのヘリクツだな
それを言い出すとオートローダーにしたって
元の定義を上書きするような挙動を後付で定義して
めちゃくちゃにすることだってできる場合もあるわけでして
それよりPHPerはもうちょい鯖の知識を付けた方がいい
そもそもPHPが何のユーザーでどういう権限で動いてるのか分かってたら
cronでミスなんかしないんだよね
774デフォルトの名無しさん (ワッチョイ 89e9-Eec1)
2017/10/26(木) 09:40:31.55ID:gzc+jHaK0 >>768
あと元のレスの
> include_onceは相対パスで書いていたのに正常に動作
に誰も答えてないみだから書くけど
phpinfo()でいいからinclude_path確認してみ
たぶんそっちから読んでたんでしょ
includeのPHPマニュアル読むといいかもね
なのでinclude_pathを変えるなんて方法もないわけじゃないけど
普通はやらない
あと元のレスの
> include_onceは相対パスで書いていたのに正常に動作
に誰も答えてないみだから書くけど
phpinfo()でいいからinclude_path確認してみ
たぶんそっちから読んでたんでしょ
includeのPHPマニュアル読むといいかもね
なのでinclude_pathを変えるなんて方法もないわけじゃないけど
普通はやらない
775デフォルトの名無しさん (ワッチョイ 89e9-Eec1)
2017/10/26(木) 10:21:31.02ID:gzc+jHaK0 >>769
> SMTPサーバーのパスワードを平文で保存しないといけないのが気になる
色々方法はあるけど
1.SMTPサーバーの設定を配列とかにしとく
2.1にserialize()かけて文字列にする
3.2に可逆式の暗号化をかける
4.どこか適当な場所に保存
設定を読み込む時は4⇒1の順に逆の事をすればいいだけ
これだと数行で書けそうだし楽かも
さらに言えばgmailなんて無料でいくらでもアカウント作れるので
新しく捨てアカ作ってそのID/PASSを使えばいいw
> SMTPサーバーのパスワードを平文で保存しないといけないのが気になる
色々方法はあるけど
1.SMTPサーバーの設定を配列とかにしとく
2.1にserialize()かけて文字列にする
3.2に可逆式の暗号化をかける
4.どこか適当な場所に保存
設定を読み込む時は4⇒1の順に逆の事をすればいいだけ
これだと数行で書けそうだし楽かも
さらに言えばgmailなんて無料でいくらでもアカウント作れるので
新しく捨てアカ作ってそのID/PASSを使えばいいw
776デフォルトの名無しさん (ワッチョイ 9168-Eec1)
2017/10/26(木) 21:02:24.29ID:tRiMi79S0777デフォルトの名無しさん (ワッチョイ f166-Eec1)
2017/10/27(金) 03:22:58.82ID:4DLzKJg10 なんか自宅にテスト用のCentOSマシン欲しくならね?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「偽サッチャー」「自滅的」「時代遅れ」 高市首相の経済政策を海外メディアが酷評 [蚤の市★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★2 [蚤の市★]
- 【ド軍】山本由伸、WBC出場を決断!ドジャースが本人の意向を尊重、佐々木朗希はチームが故障歴を懸念で不参加 [鉄チーズ烏★]
- 米大統領報道官「日本と強固な同盟維持、中国とも協力」 [少考さん★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ ★2 [蚤の市★]
- 秋田内陸縦貫鉄道「列車が脱線、転覆」と通報 北秋田市、萱草駅付近 [蚤の市★]
- 今年の漢字、きょう発表😉 [583597859]
- 女の子集合!
- 中国人、超ド正論。「チベットやウイグルに住んでるのはチベット族やウイグル族だが、アイヌから奪った土地に住んでる日本人こそ侵略者」 [314039747]
- 百合営業してるアイドル「これは営業だから…んっクチュクチュ」←これ
- 安倍さん死んでからの日本終わりだよ
- ひまでんぼ
