【PHP】下らねぇ質問はここに書き込みやがれ 8at TECH
【PHP】下らねぇ質問はここに書き込みやがれ 8 - 暇つぶし2ch705:デフォルトの名無しさん
17/10/15 11:55:30.86 s8ygMoJ80.net
>>691
サーバサイドアプリケーションは大体そんなもんだと思うが
HTTPでセッションを跨いだクライアントの同一性保証なんて不可能だし
コードのパースとかの時間が気になるという意味ならopcacheのようなキャッシュ機構はある

とりあえずサーバサイドアプリケーションについて真面目に勉強するならLaravelとかSymfonyのチュートリアルくらいは触ってみたら
クライアントサイドとは全く違うから

706:デフォルトの名無しさん
17/10/15 13:46:10.80 CEYZTvIx0.net
>>692
了解です。ありがとうございます。
何らかの機構を備えていると勝手に信じていたので、軽く衝撃でした。
(ちなみにGoとかも同じですかね?ご存知であれば)
ただこれならPHPは各ページ毎に様々なことをするのには向いていますが、
(とはいえこれが通常のHP用途の90%以上を占めますが)
掲示板サイト等、ドメインで単一アプリを提供する際には本質的に遅いことになります。
別サイトで「こんなのどうよ?」と提案したところ、
「PHPでは無理だから止めろ、どうせNodeを使うことになるぞ」と避難轟々だったのも分かります。
この状況でフレームワークを使っていること自体が結構信じがたいです。
とはいえ今回は共用鯖等超軽量環境向けの為、NodeやGoは選択出来ず、PHPしかないのですが。
(参考) URLリンク(postd.cc)

別件ですが、CSRF脆弱性対策について、
これは単発のリンクを踏んだ(表示した)時用の対策であって、
ガチでのクライアントスクリプト等による攻撃向けではない、という事で合っていますか?
例えば、あるページを表示し、そ�


707:アのJavaScriptが実行されるなら、 ajaxでhtmlを取得し、CSRFトークンを取得して、 掲示板にその人が書き込んだように見せかけることは簡単に出来ますが。



708:デフォルトの名無しさん
17/10/15 14:31:37.78 s8ygMoJ80.net
>>693
お前さんが何をしたいのか分からんし衝撃受けるのも勝手だが, クライアントサイドの常識をサーバサイドに持ち込むな
PHPに限らずRubyだろうがPythonだろうが何も変わらん
NodeやGoや更に言えばC/C++でサーバ作るというのは考えられるがメンテコストが膨らむしデプロイも面倒
その必要が本当にあるのかよく考えろ
> CSRF
Same Origin Policy

709:デフォルトの名無しさん
17/10/15 17:17:04.22 u42Q3jAo0.net
>>694
> PHPに限らずRubyだろうがPythonだろうが何も変わらん
いや多分PHP特有ですよ。RubyやPythonは自前で鯖起動しますので。
Railsチラ見しましたがそんな感じです。
URLリンク(railsguides.jp)
ただ現実的にRubyやPythonは超軽量環境でも使えるのでRailsは選択肢になりますね。
とはいえPHPでもopcacheでほぼ問題ないはずですが。
まあとにかく今は味見中です。
作ろうとしているのは掲示板アプリで、GoやNodeの高性能版はOSSで既にあります。
もちろんPHP版も既にあるのですが、こちらも大体高性能化を目指しているので、
超軽量環境向けの廉価版を作ってみようかと。
AGPLv3で公開する予定ですので、興味があればどうぞ。
URLリンク(meguca.org)

710:デフォルトの名無しさん
17/10/15 17:24:11.11 L1ItWz+aa.net
>>695
Webrickのこと言ってんのか?
テストはともかく実用環境でWebrickなんか使わねぇよ
実環境ならUnicorn, PumaとかPassengerがアプリケーションサーバだよ

711:デフォルトの名無しさん
17/10/15 22:50:14.72 lMinf0FC0.net
遅い早いって2ch読み書きするのをストレスに感じないのであれば杞憂でしょう
ボトルネックになる部分はPHPの機構なんかよりもネットワーク間の問題のほうが大きいわけで

712:デフォルトの名無しさん
17/10/16 00:01:36.25 OoF3Ic3Va.net
自分もリクエストのたびにこの巨大なフレームワークを読むのか?
とひるんだ時がありましたが
そこは実行コードをキャッシュする仕組みでカバーできるんですね
というか今の人はスタートがnode.jsとかなんだなーという驚きがあります

713:デフォルトの名無しさん
17/10/16 00:42:39.22 DJrtJlQd0.net
node.jsってレンサバで動くんか???

714:デフォルトの名無しさん
17/10/16 02:50:04.46 N7MUl21Ra.net
vpsでやろ。

715:デフォルトの名無しさん
17/10/16 08:53:25.48 twPANPDV0.net
>>699
URLリンク(qiita.com)

716:デフォルトの名無しさん
17/10/16 23:32:43.30 DJrtJlQd0.net
ふぇ~さくらってスゴいのね

717:デフォルトの名無しさん
17/10/17 01:14:58.17 HUD/bT/k0.net
別にサクラはすごくないだろ
この手の方法はわりとどのレンサバでもできる

718:デフォルトの名無しさん
17/10/17 04:14:34.59 UUhSDchZ0.net
>>698
メモリを犠牲にして専用のアプリケーションサーバとそれ専用のフレームワークを作るのは
非常に面倒だけど別に難しいことじゃないのでPHPで作ってもいいのよ

719:デフォルトの名無しさん
17/10/17 06:07:25.14 C8ORuPRh0.net
質問です。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です。

720:デフォルトの名無しさん
17/10/17 09:57:21.02 RHJUWC0z0.net
>>705
1回のクエリで実行しようとしたらそらそうなるでしょ
あと一意性を保証したいならトランザクション分離レベルをRepeatable Read相当(SQLiteではIMMEDIATEだったっけ)にする必要がある

721:デフォルトの名無しさん
17/10/17 10:56:38.81 s8lIkCI50.net
>>695みたいなPHPのコストについての話が出る度に思うが
こういう人って今までどの程度の規模のサービスを扱った事があるんだろ?
10年ぐらい前に俺が個人の趣味の延長で開発してaspとして金取ってたサービス
800万PV前後/日程度だったが
当時のPHP4系・MySQL3系・Apach1系の組み合わせのサーバー1台(DBすら分けてない)で運用できてた
レンタル費用をケチろうと思ったんだろう
貸出先が業者にまんまUIパクったようなものを数百万で作らせたら
全然PV裁けなくなって業者に文句言ったら
捌けるようになるまでサーバーを増やせと言われたという笑い話
800万PVなんてここのプロ様に比べたらレベルが低すぎるだろうから
最低1億PV/日ぐらいは想定してるんだろうなきっと

722:デフォルトの名無しさん
17/10/17 11:13:26.21 RHJUWC0z0.net
でも実際物理で殴る方がお安く済む, でしょう?

723:デフォルトの名無しさん
17/10/17 14:02:18.91 0jVjcAN80.net
>>707
800万pvのサイト今もやってるの?

724:デフォルトの名無しさん
17/10/17 14:45:24.76 s8lIkCI50.net
>>709
UIまんまパクったものを業者に作らせてると知った時に
そっちへサービス切り替えた瞬間に全部停止する事にしたから当然今はやってない
当時は他でネタ扱いされる程に儲けてたし
ちなみに何故それを知ったかというとその業者の開発者の内の1名から
技術的な質問をされたから
当然教えるわけないというか「コイツ頭おかしいんじゃね?」と思った思い出
>>708
今はそうだろうね
当時のこの話の場合、結局パクったシステムのサーバー運用コストの方が高くなったという笑い話

725:デフォルトの名無しさん
17/10/17 21:06:15.90 rwpxP9zha.net
PHPでHTMLをパースして、
JavaScriptのquerySelectorみたいなもので要素を選択したいのですが
そういうライブラリみたいなものありますか?

726:デフォルトの名無しさん
17/10/17 21:39:14.67 uXsqtlL/0.net
phpquery

727:デフォルトの名無しさん
17/10/17 21:50:33.21 rwpxP9zha.net
>>712
自分でしこしこ書いてたんですが、もうあったんですね
この数日の努力とはなんだったのか・・。
でもありがとうございます

728:デフォルトの名無しさん
17/10/18 00:06:15.43 catz1Ji3a.net
>>680の件ですが
URLリンク(phpfiddle.org)
を見つけました
関数の補完があるのが良さそうです

729:デフォルトの名無しさん
17/10/18 00:30:04.05 catz1Ji3a.net
JavaScriptのプレイグラウンドはcdnからライブラリを読み込めますが
PHPのプレイグラウンドでライブラリを読めるものはないのでしょうか?

730:デフォルトの名無しさん
17/10/18 00:45:02.72 c6Rft4Lma.net
というかプレイグラウンドなのにライブラリ読み込めないって
全然遊べないですよね・・

731:デフォルトの名無しさん
17/10/18 05:41:41.19 IAqZZNli0.net
>>706
少し紛らわしかったので補足します。
705のコードはSQLite3では意図したようには動きません。
ただしMySQL等他DBなら動くようです。(FOR UPDATEはSQLite3ではエラー)
URLリンク(dba.stackexchange.com)
或いは以下の書き方も出来るようです。
$sql .= "UPDATE counters SET count = (@cur_value := count)+1 WHERE id = 'post';";
$sql .= "SELECT @cur_value;";
URLリンク(www.sqlines.com)
問題はSQLite3ではこれらが出来ないことです。
ググル限り、UPDATEとINSERTの戻り値はAndroidでは取れており、
URLリンク(naichilab.blogspot.jp)
URLリンク(android.roof-balcony.com)
これらはPHPでは SQLite3::changes SQLite3::lastInsertRowID であり、
rowID===INTEGER PRIMARY KEY なので、INSERTして取る方法でとりあえず回避しました。
URLリンク(www.dbonline.jp)
URLリンク(www.sqlite.org)
以下コードになります。
$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には出来ません。

732:デフォルトの名無しさん
17/10/18 05:42:26.75 IAqZZNli0.net
次の質問です。
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規制されており、代行してもらってます。
あまり面倒をかけるのも悪いので、以下に来てくれれば歓迎します。
URLリンク(meguca.org)

733:デフォルトの名無しさん
17/10/18 06:48:41.64 QGH5jOmla.net
>>718
迷惑だな

734:デフォルトの名無しさん
17/10/18 09:38:34.01 ZpnTdM5ra.net
>>713の件ですが
動作を確かめていますが、
phpquery、jqueryのセレクタが全部動いて素晴らしいですね

735:デフォルトの名無しさん
17/10/18 09:42:25.90 rF9hS7IgM.net
>>718
どんなマシン使ってるか知らんし、どれくらい書き込んでるし分からんが、いくら何でも遅すぎる
根本的になにかが間違ってると思うよ

736:デフォルトの名無しさん
17/10/18 12:36:34.56 v7V1Syde0.net
8Mpv/day=100pv/sが言い過ぎってさ…
実際に10年前に今より貧弱な環境で稼働させて
aspとして金を稼いでたサービスなんだけど(MAXで1000万/日超えた日もあった)
PHP4だったというのもあるけどさ
オブジェクト指向なんて全く理解してなかったしフレームワークも使ってない
クラス1個も使わずにfunctionとヒアドキュメントの組み合わせ
名前空間なんてものも当然なかった
DBへのアクセスが極力発生しないようにはしてたけど俺のレベルは糞低いぞ
サーバーのログはテキストでも壊れない…って事は全部テキストキャッシュにしてそれを読めばいい!と何でもテキストにしてたw
頭の悪い俺なりの発想

737:デフォルトの名無しさん
17/10/18 12:37:11.21 v7V1Syde0.net
昔こんな人と仕事をした事がある
色んな言語やデザインパターンを熟知してて
PHPも「これぞオブジェクト指向だ」と唸る程に素晴らしいコードを書ける
めちゃくちゃ頭が良いのが少し話すだけで分かるような人だった(後から知ったが東大卒だった)
でもその人が作ったサービスは激重で運用できなかった
俺は技術もないし頭が悪いからその人の何が悪いかは分からなかったけどw
お前らすごいね
実行レベル?イベントモデル?
pThreadだのGoだのNode.jsだのCloudFlareだの
俺には全然分からんわw
それでどんなサービスができるの?何人ぐらいに使ってもらってどれくらい捌けるの?
って事にしか興味がない
だってさ、使う人にとっては何の言語で書いてるとか関係ないじゃん
これだからPHPerは…って言われるんだろうけどこれでも金はそこそこ自慢できるぐらいは稼いできたからなぁ…

738:デフォルトの名無しさん
17/10/18 14:36:39.14 ZpnTdM5ra.net
PHPもwebrickやnode.jsみたいに
それ自体でサーバになればテストに便利なのに
と思って検索したら標準でビルトインウェブサーバーっていうのがあったんですね

739:デフォルトの名無しさん
17/10/18 21:26:02.74 451ejlL00.net
君は知らなかったかもしれないがそれ標準で組み込まれてもう5年半なんだ

740:デフォルトの名無しさん
17/10/18 22:56:18.69 /mn5vVDsa.net
長い間情報収集を怠っていたので
世の中想像以上に便利になっててびっくりします

741:デフォルトの名無しさん
17/10/19 04:05:45.17 lZeER9v70.net
>>721
こちらは桁が分かってないので助かります。
マシンは2007年製のポンコツで、書き込みは数文字だけですね。
レイテンシからスループットへの換算はやはり無理があるとして、
レイテンシだけにしても遅いので、問題もあるのだとは思います。(外部サイトの方が速い)
URLリンク(www.techempower.com)

>>722-723
opcacheの無い状態だと、コードを美しく整えれば整えるほど遅くなるから、
それを最初に確認したのです。>>691
君が書いたコードは細切れのバラバラで、
結果的に使う部分だけ走行するから速かったのでしょう。
それの方がよければそうすればいいだけです。
> 全部テキストキャッシュ
結果的に静的ファイルでキャッシュが効いたということでしょう。
今も同じ問題がCloudFlareにもあります。
> って事にしか興味がない
結果指向なのは正しいと思いますよ。
プログラミングはあくまで手段であり、目的ではないので。
特にネット上だと本末転倒になっている人も散見されます。
全く考えないのも問題ですが、考えすぎて手が止まっているのも問題です。
なおPHPerは最も馬鹿にされているらしいですが、JavaScripterよりマシな気はしますよ。
そしてデザインパターン/言語コレクターは使い物にならないと個人的には思います。

742:デフォルトの名無しさん
17/10/19 04:06:52.86 lZeER9v70.net
次の質問です。
以下環境で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の問題で、以下の
URLリンク(github.com)
のところを修正すれば動く可能性があります。
ただこれはマシンにもよるし、ビルドは嵌る可能性が高い為、
VM等含めて動いている人が居るのであれば動くマシンを探し、駄目なら諦めかと。
誰かビルドに挑戦するのであれば協力はします。
なおビルドオプションは以下が参考になります。
URLリンク(ci.appveyor.com)
或いは他プロファイラーでいいのがありますか?

743:デフォルトの名無しさん
17/10/19 12:16:50.62 NzzKiK+50.net
> プログラミングはあくまで手段であり、目的ではないので。
> 特にネット上だと本末転倒になっている人も散見されます。
> 全く考えないのも問題ですが、考えすぎて手が止まっているのも問題です。
自己紹介乙

744:デフォルトの名無しさん
17/10/19 12:28:28.36 FE92wYZta.net
僕はプログラミングが目的で仕事はついでです

745:デフォルトの名無しさん
17/10/19 22:44:13.21 KjwMHyuL0.net
Windows CLIアプリで、EMAILなんかのJIS(ISO-2022-JP)文字コードのファイルを、
読み込んで変換して表示することは出来るのですが、
PHP自体をJISにして、そのPHPに書かれている日本語をechoすると、
undifined variable $Bのようなnoticeが出ます。
もちろんちゃんとコードページにあった文字コード(cp932)に変換はしているのですが、
変換以前に日本語が変数と認識されてしまうようで、うまくいきません。
PHPをJISで保存するなんてことは普通しませんが、
JISでPHPを保存した場合でも、Windows CLIでうまく動作させる方法はありますか?
URLリンク(tsuttayo.jpn.org)
このような記事を見つけて、書かれてる設定を加えてみたのですが、エラーは消えませんでした。

746:デフォルトの名無しさん
17/10/20 20:31:39.76 OAuKO2/4a.net
PHPをJISで実行しなければいけない理由は何ですか?

747:デフォルトの名無しさん
17/10/21 08:07:53.66 7N/u1SNi0.net
>>732
もし数行で対処出来るようなら取り入れようという感じのもので、
出来ないなら出来ないで構わないのですが、
JISで上書きしなおされるというイレギュラーに対処するためです。

748:デフォルトの名無しさん
17/10/21 10:33:40.68 LXe9cSfz0.net
PHPで作った自作のフォームに書き込みがなされると
メールで通知してくれるようにしている。
鯖の移転を考えてるんだけど(具体的にはByetという海外無料鯖)
あいにく候補の移転先はsendmailに非対応だったりする
(スパムメール対策だとか)
こういうときってどうやったらフォームへの書き込みを自分宛に
通知させることができるかな?

749:デフォルトの名無しさん
17/10/21 13:19:00.37 jXM7J8Fl0.net
>>733
PHPCSに掛けよう
大抵のルールセットはソースがUTF-8以外で書かれていればエラー扱いにしてくれる
internal_encodingの問題じゃないかとは思うが, 不正な文字コードで保存された場合にはリポジトリにpushされる時点でエラー通知が飛ぶようにするべきだな

750:デフォルトの名無しさん
17/10/21 13:59:33.75 ZxQy+kqda.net
PHPとGoって何が違うの?LIGが自社サービス開発にGo言語を採用したお話
URLリンク(liginc.co.jp)
>Go言語がPHP 7の30倍、PHP 5.6と比べるとなんと82倍にも及ぶスピード
こんな記事を見つけました
OPcacheなどを使った場合と比べてどうなのでしょうか?
自分の考えるPHPの魅力は、
Javaからパクったオブジェクト指向、
標準の関数でウェブやデータベースアクセスが色々できて面倒くさくない、
といったものがありますが、
Goのようなモダン言語ならそのあたりもクリアしてるんじゃないかと思います
どうなのでしょうか?

751:名無しさん@そうだ選挙に行こう! Go to vote!
17/10/22 07:41:34.63 6vhnloCO0.net
他スレへGo!

752:名無しさん@そうだ選挙に行こう! Go to vote!
17/10/22 08:49:39.36 FIB6YbKNa.net
>>734
このbyetってところいいですね
cronも使えるし

753:名無しさん@そうだ選挙に行こう! Go to vote!
17/10/22 11:43:49.92 hechdin40.net
>>738
うん、いいところだな、と思ったら肝心のsendmailが動いて無くてな・・・
フォームに書き込みがあるとリアルタイムでメールで通知してくれるプログラムを
PHPで組んでいたんだが、さてどうしたものか・・・

754:名無しさん@そうだ選挙に行こう! Go to vote!
17/10/22 12:04:54.94 UtqkZ3+I0.net
例えばプロバイダ等のメールサーバを使えばいいんじゃないか?
もしくはAWSのSEDとかも少量なら無料。

755:名無しさん@そうだ選挙に行こう! Go to vote!
17/10/22 12:08:52.24 hechdin40.net
>>740
PHP(しかも管理人でも無い末端のユーザーに)からGmailのSMTPサーバー利用できるの?

756:名無しさん@そうだ選挙に行こう! Go to vote!
17/10/22 13:05:50.25 4HKeVMJe0.net
ソケット使ってサーバーとお話し合いすれば出来そう

757:名無しさん@そうだ選挙に行こう! Go to vote!
17/10/22 18:46:14.40 N3puxcTpa.net
byetでRSSの出力をしようとしていたのですが、どうもうまくいかないので
調べていたのですが
byetに置かれたファイルを他のサーバから読むと、
This site requires Javascript to work, please enable Javascript in your browser
or use a browser with Javascript support
みたいなページに変わることに気づきました
ブラウザ以外のユーザエージェントから読まれることを禁じているようですね
やはり無料のサーバは何かしらあるのですね
ブラウザからPHPも編集できて、これこそプレイグラウンドやんと思ったのですが・・

758:名無しさん@そうだ選挙に行こう! Go to vote!
17/10/22 19:45:40.22 UtqkZ3+I0.net
>>741
出来ない理由がないでしょ?
sendmailにこだわるんだったら話は別だけど

759:デフォルトの名無しさん
17/10/22 20:10:10.98 hechdin40.net
>>744
今までmail()を使ってメールを送信していたんだけど
この関数使ってsendmail以外を選ぶことって可能?

760:デフォルトの名無しさん
17/10/23 15:31:30.11 fxiC9AE30.net
>>735
面白そうなものを紹介していただき、どうもありがとうございます。
早速導入して検証してみようと思います。

761:デフォルトの名無しさん
17/10/23 18:29:23.56 n7tiHTCJ0.net
環境で詰まったというわけでなくプログラミングを勉強してる時に気になったことがあるのでテンプレ無しですがよろしくお願いします
インターフェースがクラスの設計書っていうのは説明読んでて理解出来たんだけど、例えば問い合わせインターフェースから最終的に問い合わせA,B,C,Dのクラスを作る前提で各クラスにはインターフェースで定義したメソッド1,2,3があるとします
メソッド2,3はクラスによって処理は違うけどメソッド1は処理が同じという場合はどう設計するのが良いのでしょうか?
共通の処理がなければ各クラス共にインターフェースを継承して作ればいいと思ったのですが、共通の処理がある場合まず問い合わせのベースとなるクラスを作ってそれを継承して各クラスを作るのが正解?

762:デフォルトの名無しさん
17/10/23 18:54:12.29 EbwleLYx0.net
>>747
抽象クラス

763:デフォルトの名無しさん
17/10/23 19:03:19.99 n7tiHTCJ0.net
>>748
もう少し本読み進めてから質問すればよかった・・・
ありがとうございます!

764:デフォルトの名無しさん
17/10/23 19:53:41.90 1HzbJqCQ0.net
>>747
トレイト

765:デフォルトの名無しさん
17/10/23 21:05:52.52 tJp0k/Rla.net
phpDocumentorの書き方ですが
クラスや関数や変数宣言ではない部分に書くコメントの場合でも
/**
*/
という記法で書くのでしょうか?

766:デフォルトの名無しさん
17/10/23 21:39:37.94 tJp0k/Rla.net
それを元にドキュメントを作るのがphpDocumentorの目的ですが
インターフェイスと関わらない部分のコメントはドキュメントに載らないので、
この記法で書く必要はない気もしますが
コメントの記法を揃えないと、それはそれで気持ち悪いです

767:デフォルトの名無しさん
17/10/23 23:29:47.09 Tv/dpLrE0.net
>>745
mailだったら何もしなくてもメールサーバー設定すりゃいいだろ
PHPのマニュアルにそのままgmailの送信サンプルあるのに何が不満なんだ?
あまり無料鯖は使わないほうだが規制にひっかかったことないぞ

768:デフォルトの名無しさん
17/10/24 00:07:15.92 8OgpvEir0.net
素直にswiftmailerとか使うのが賢いと思うの

769:デフォルトの名無しさん
17/10/24 20:09:11.71 4zuQt35qa.net
PHPのバッチプログラムをcronで実行させた時に
期待した通りに動きませんでした
調べたらcron時はカレントディレクトリが
スクリプトのあるディレクトリではなく実行ユーザのホームディレクトリになるので
ファイルが思わぬ場所に作成されていたのでした
ファイルアクセスは基本的に絶対パスでやるべきなのですね
ですが、include_onceは相対パスで書いていたのに正常に動作していました
絶対パスで書く方が安心できるとは思いますが、
includeの場合は気にしなくていいのでしょうか?

770:片山博文MZ
17/10/24 20:22:12.50 +CxSIN/Vd.net
>>755
データ展開を考えると、相対パスの方が便利だ。絶対パスがコロコロ変化する一方で、他方で相対パスが変化しないなら、相対パスの方がデプロイコストが低くなる。

771:デフォルトの名無しさん
17/10/24 20:24:10.80 vrotHuwu0.net
オレも相対パス派

772:片山博文MZ
17/10/24 20:38:04.82 +CxSIN/Vd.net
絶対パスを要求する場所では絶対パスを使う。相対パスを使ってもパスのリンケージが壊れない場所では相対パスを使う。

773:デフォルトの名無しさん
17/10/24 20:59:24.65 yBPDUg+O0.net
>>754
> 素直にswiftmailerとか使うのが賢いと思うの
swifmailer調べてみた、インストール作業が必要なのね
レンタルサーバーだからインストール作業はちょっと・・・
代わりにPhpmailerってのが使えるみたい。これはファイル置くだけでいいっぽいから。
>>753
> PHPのマニュアルにそのままgmailの送信サンプルあるのに何が不満なんだ?
これのことかな?
Byetってレンサバだからsendmail.iniやphp.iniの改変は不可能なんだわ(´・ω・`)
URLリンク(php.net)
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"

774:デフォルトの名無しさん
17/10/24 21:09:39.54 Q75mHsE3a.net
>>759
composer使えよ

775:デフォルトの名無しさん
17/10/24 22:58:25.66 4zuQt35qa.net
絶対パスと言ってもベタ書きではなく__DIR__を使って
そのファイル基準の絶対パスを実行のたびに作るやり方なら
ファイルの場所が変わっても問題は起きにくいのでは?
でもたしかに絶対に絶対パスを使った方がいい、というわけでもありませんね
ありがとうございました

776:デフォルトの名無しさん
17/10/25 16:08:42.06 Cr59jy+d0.net
>>761
__DIR__ あたりで絶対パス取って
chdir()でカレントディレクトリはここだと決めて
それから後は全部相対パスを使うようにすればいい
そうすれば>>755で書いてるようなミスは絶対に起こらないし
テスト環境と本番環境の差異も簡単に吸収できる
あとライブラリの読み込みはなるべくオートローダーを使った方がいい

777:デフォルトの名無しさん
17/10/25 16:19:44.89 Cr59jy+d0.net
>>759
根本的に勘違いしてるっぽいし
あなたにレス付けてる人にも色々と問題があるので
今まで付いたレスは全部忘れた方がいい
まず、メールを送る方法は大雑把に2種類ある
1.自分のサーバーのMTAから送る方法
2.外部のSMTPサーバーを使って送る方法
あなたは今まで1の方法で送っていたが、
移転先では1の方法は使えないので2で送ると良い
例えば何らかのメールソフトを送ってメールを送ってると思うが、
それは2の方法なわけ(SMTPサーバーを設定するところがあるよね?)
だからPHPでも同じように2の方法で送れば良いだけ
お手軽なのはあなたも書いてるPHPMailer
WordPressなんかでも実績のあるライブラリで
メールソフトにSMTPサーバーを設定するのと同じ感覚で初心者にも簡単に使える
稀に脆弱性も見つかってるが、あなたの用途にはピッタリの筈

蛇足だが今時sendmailを使ってるところなんてまずない
PostfixあたりのMTAがsendmailと互換性があるように動いてるだけ

778:デフォルトの名無しさん
17/10/25 16:29:03.87 Cr59jy+d0.net
×何らかのメールソフトを送ってメールを送ってると思う
○何らかのメールソフトを「使って」メールを送ってると思う
訂正のついでに、ややトリッキーな手段としては、
A.MTAが使えるサーバーにおいた send.php
B.MTAが使えないサーバーおいた put.php
put.phpからsend.phpへ何らかの手段で送信メールの内容を送って(練習なら別にHTTP POSTとかでいい)、
send.phpを使ってメールを送るという手段なんかもある
APIみたいな使い方やね

779:デフォルトの名無しさん
17/10/25 17:44:25.69 hphlT9kR0.net
レンサバのlocal mtaが使えないような環境のことで質問されてるのに
php.ini編集してmail()関数で送れといってみたり(つか今時mail()関数でメール送るやつなんかいねーよw)
composer使えといってみたり(composerと書きたかっただけだろw)
別の質問で相対パスか絶対パスかとかさ(てかnamespaceとオートローダー使えw)
色々酷すぎるとおもってレスしようとしたらほとんど全部書かれていたでござる

780:デフォルトの名無しさん
17/10/25 18:05:21.53 Cr59jy+d0.net
使えないSEや仕事の遅いPGとかに多い
たったそれだけの事に何故わざわざそんな事をやるわけ?と問いただすと
結局は知識や経験不足で特定の方法しか知らないのが理由
色んな方法を知った上で相手に合わせた方法を提案するのがまともな人
SMTP使ってメールを送れば良いだけの話なのに
いやいや流石にそれは待てと長文も書きた


781:くなるw



782:デフォルトの名無しさん
17/10/25 19:02:43.76 iV0okkYXd.net
ITベンダは複数の選択肢なんて用意しないよ
社内に事例がないことはやらない

783:デフォルトの名無しさん
17/10/25 20:09:10.79 eczzyF0za.net
>>762
カレントディレクトリを早い時点で設定していても
その後ライブラリの中で再設定されない保証もないのでは?
もちろん、そんなことするのはライブラリとして駄目ですが、
可能性としてないわけではありません

784:デフォルトの名無しさん
17/10/25 20:18:09.39 iHcJH4nT0.net
>>763
丁寧なレスありがとうm(_ _)m
おかげさまで安心してPHPMailer使えそう
ただ一点、SMTPサーバーのパスワードを平文で保存しないといけないのが気になるけど
ファイルのアクセス制御をしっかりかければ第三者から見られるわけでも無いし
レンタルサーバーの管理人からは見られちゃうけどそこは管理人を信用することにしますノシ

785:デフォルトの名無しさん
17/10/25 20:59:55.31 JdF6ntjza.net
そりゃ手でも入れられるけどPHPMailerにせよSwiftMailerにせよcomposerの方が楽じゃん
グローバルに入ってなくてもphpコマンドさえ叩ければ使えるし最悪ローカルで操作してvendorごとアップロードもまぁ出来るしな

786:デフォルトの名無しさん
17/10/25 21:08:30.16 BtMPlyUb0.net
やっぱり共有フォルダにデータ書き込むのは無理?
phpを対話ログイン可能なユーザーで実行するしかない?

787:デフォルトの名無しさん
17/10/26 09:22:38.49 gzc+jHaK0.net
>>770
そんな事はたぶんみんな分かってるよw
ITベンダ()とかいい出しちゃってる人までいるしもういいよw

788:デフォルトの名無しさん
17/10/26 09:32:12.60 gzc+jHaK0.net
>>768
ただのヘリクツだな
それを言い出すとオートローダーにしたって
元の定義を上書きするような挙動を後付で定義して
めちゃくちゃにすることだってできる場合もあるわけでして
それよりPHPerはもうちょい鯖の知識を付けた方がいい
そもそもPHPが何のユーザーでどういう権限で動いてるのか分かってたら
cronでミスなんかしないんだよね

789:デフォルトの名無しさん
17/10/26 09:40:31.55 gzc+jHaK0.net
>>768
あと元のレスの
> include_onceは相対パスで書いていたのに正常に動作
に誰も答えてないみだから書くけど
phpinfo()でいいからinclude_path確認してみ
たぶんそっちから読んでたんでしょ
includeのPHPマニュアル読むといいかもね
なのでinclude_pathを変えるなんて方法もないわけじゃないけど
普通はやらない

790:デフォルトの名無しさん
17/10/26 10:21:31.02 gzc+jHaK0.net
>>769
> SMTPサーバーのパスワードを平文で保存しないといけないのが気になる
色々方法はあるけど
1.SMTPサーバーの設定を配列とかにしとく
2.1にserialize()かけて文字列にする
3.2に可逆式の暗号化をかける
4.どこか適当な場所に保存
設定を読み込む時は4⇒1の順に逆の事をすればいいだけ
これだと数行で書けそうだし楽かも
さらに言えばgmailなんて無料でいくらでもアカウント作れるので
新しく捨てアカ作ってそのID/PASSを使えばいいw

791:デフォルトの名無しさん
17/10/26 21:02:24.29 tRiMi79S0.net
>>775
㌧㌧
ちゃんと暗号化のやり方ってあるのね
ありがとうノシ

792:デフォルトの名無しさん
17/10/27 03:22:58.82 4DLzKJg10.net
なんか自宅にテスト用のCentOSマシン欲しくならね?

793:デフォルトの名無しさん
17/10/27 06:29:55.24 1txrbLzrd.net
シェル使えるレン鯖でいいだろ
もしくはVPS

794:デフォルトの名無しさん
17/10/27 07:15:15.66 XNLqI4Wk0.net
item(0)->length; //itemは配列としてitem[0]のstrlen
item->length; //itemは配列としてcount(item)のような感じ
プロパティの部分はメソッドでもいいですが
こういうのってどうやって実装するんですか?
$thisを返すとメソッドチェーンが出来るのはわかるのですが
$this配列にしないと返せないしそうするとitem(0)[0]みたいな参照になってしまって
カッコ悪いしそんな表記は見たこともないので

795:779
17/10/27 07:31:39.80 XNLqI4Wk0.net
忘れてましたが環境は5.4でお願いします

796:デフォルトの名無しさん
17/10/27 15:57:31.80 Q4ZTdDse0.net
>>777
一人でやるならDocker使ってCentOSイメージ使ってコンテナ立てるのが一番楽で早くて手軽だ
VirtualBoxとかVagrantの時代は過ぎた

797:デフォルトの名無しさん
17/10/27 17:25:24.66 nbs4Y8NPa.net
curlにオブジェクト指向のインターフェイスはないのだろうと思って調べていて
CURLFileというのを見つけたのですが、何か思っていたのと違います
普通curlへのアクセス自体をオブジェクト指向化しますよね?
URLリンク(php.net)
を見ると、
オブジェクトを使って手続き型の処理をしていてびびりました
どうなっているのでしょうか?

798:デフォルトの名無しさん
17/10/27 18:05:39.00 wVlMe2dFa.net
無名関数のuseに配列の要素を渡したいんですがuse($hoge['piyo'])と書くとエラーになります
一旦別の変数に代入するか配列ごと渡さないとダメですかね?

799:デフォルトの名無しさん
17/10/27 23:11:25.54 diny/lofa.net
CURLOPT_RETURNTRANSFER
をtrueにしたら結果が文字列で返ってくる→分かる
falseにしたら結果が標準出力に出力される→は?
curl実行の際の出力を抑制するためにはtrueにするのが必須になりますが
結果取得のためのtrueなのか出力抑制のためのtrueなのかがはっきりせず、
イケてないと言わざるを得ません
「標準関数なのだから相当の試行錯誤の結果作られているのだろう」
という予想がPHPの場合は通用しませんね?

800:デフォルトの名無しさん
17/10/28 01:33:02.73 YoZCditl0.net
>>783
そのまま$hogeで渡して中で展開するか、別の変数に入れるか
>>784
通用しない

801:デフォルトの名無しさん
17/10/28 07:55:58.34 QrqdVCJa0.net
hogeとかbarって何なんです?

802:デフォルトの名無しさん
17/10/28 23:08:37.14 qzigG1UZ0.net
読んで字のごとく

803:片山博文MZ
17/10/28 23:11:10.51 TWx2GtJid.net
>>786
特に意味がない名前を付けたものだ。名前の意味は気にしないでいい。ただ名前は他と区別するためにある。

804:デフォルトの名無しさん
17/10/28 23:13:38.01 QDh5TOuc0.net
こっそりhageとかに変える

805:デフォルトの名無しさん
17/10/29 01:45:02.78 scCjgZM20.net
この$hogeーーー!

806:デフォルトの名無しさん
17/10/29 01:55:09.22 wekqFwi10.net
PHPのデバッグの仕方教えておくれ!!

807:片山博文MZ
17/10/29 02:02:51.30 k1qoOab2d.net
>>791
警告とエラーの違いはわかるか? テストでは警告はすべて出力させる。
PHP7ではassertが使えるので、活用するように。

808:片山博文MZ
17/10/29 02:11:50.01 k1qoOab2d.net
ちなみにPHPのIDEはPhpStormがオススメだ。

809:片山博文MZ
17/10/29 02:25:50.82 k1qoOab2d.net
C/C++などでも一般に言えることだが、IDEのデバッグ機能はユーザーによって実行を制御したり、変数の中身を確認できる。例えば、指定した行で実行を止めたり、少しずつ実行させたりできる。

810:デフォルトの名無しさん
17/10/29 10:41:47.50 htd7uCcc0.net
file_get_contentsを何回かやるので、関数化しました。
header部分も欲しいので、$http_response_headerも一緒にreturnするようにしたのですが、
関数化前と違うものが返ってくるようになりました。
キャッシュか何か残ってるのでしょうか?何が原因でしょう?
Set-Cookieヘッダを使うので、返ってくるものが違って挙動がうまくいかなくなって困ってます。
ベタ書きすればうまく動作するのですが、コードがどうしても長くなって読みづらくて。

811:795
17/10/29 10:46:01.97 htd7uCcc0.net
補足です。関数内で何回かfile_get_contentsをやってるわけではありません。
関数内では1回しか使っていません。
前後に共通のコードが書かれてたり、file_get_contentsのリクエストヘッダを少し変えてます。

812:片山博文MZ
17/10/29 11:10:05.24 k1qoOab2d.net
二つの戻り値をどういう風にreturnしてる?

813:片山博文MZ
17/10/29 11:25:49.77 k1qoOab2d.net
ソースをアップするのが確実だけど、公開できないの?

814:795
17/10/29 11:26:37.79 htd7uCcc0.net
>>797
配列です。
return [ $http_response_header, $body ];
おかしいのは、どうもSet-CookieのセッションIDが変わってしまってるのが原因のようです。
'http' => [
 'header' => "Cookie: " . $this->getCookie($url) . "\r\n"
]
毎回このようなクッキー送るコンテキストは指定して、
file_get_contentsしてから、新規のクッキーは、
$this->setCookie($url, $http_response_header);
という具合にしてからreturnしています。
ベタ書きだとちゃんと動作します。

815:795
17/10/29 11:31:50.57 htd7uCcc0.net
>>798
private function request($url, $context = null) {
 $http_request_header = null;
 if (!$context) {
 $cookie = $this->getCookie($url);
 $context = [
  'http' => [
   'method' => 'GET',
   'protcol_version' => 1.1,
   'ignore_errors' => true,
   'header' => 'Host: ' . parse_url($url)['host'] . "\r\n",
   'Cookie: ' . $cookie . "\r\n",
   "Connection: close\r\n"
  ]
 ];
 $body = file_get_contents($url, false, stream_context_create($context));
 $this->setCookie($url, $http_response_header);
 return [$http_response_header, $body];
}
こんな感じです。

816:795
17/10/29 11:33:41.53 htd7uCcc0.net
インデント調整ミスってif文の閉じ消してしまいました。
private function request($url, $context = null) {
 $http_request_header = null;
 if (!$context) {
  $cookie = $this->getCookie($url);
  $context = [
   'http' => [
    'method' => 'GET',
    'protcol_version' => 1.1,
    'ignore_errors' => true,
    'header' => 'Host: ' . parse_url($url)['host'] . "\r\n",
    'Cookie: ' . $cookie . "\r\n",
    "Connection: close\r\n"
   ]
  ];
 }
 $body = file_get_contents($url, false, stream_context_create($context));
 $this->setCookie($url, $http_response_header);
 return [$http_response_header, $body];
}

817:片山博文MZ
17/10/29 12:34:43.84 k1qoOab2d.net
Cookie に =>がない。

818:片山博文MZ
17/10/29 12:35:56.57 k1qoOab2d.net
じゃなかった。カンマとピリオドを間違えている。文字列をつなげるのはピリオド。

819:795
17/10/29 12:40:46.31 htd7uCcc0.net
>>802
レスありがとうございます。
そこはドット演算子で連結しているのでそれで問題ありません。
って・・・ドットじゃなくてカンマになってる。
お恥ずかしい。エラーにもならないので気づきませんでした。
どうもありがとうございます。無事動くようになりました。

820:795
17/10/29 12:41:28.48 htd7uCcc0.net
リロードしてませんでした。感謝!

821:デフォルトの名無しさん
17/10/29 15:35:37.96 DVVe4DD2M.net
IDEとxdebug使ってのデバッグがイマイチ使いこなせないわ
毎回設定してはめんどくさくてやめる
フレームワークとか作る仕事ならまだしも、
フレームワーク使ってつくるもんだと変数トレースしたいとか
ブレイクポイント使いたいとかあまりない気がしてて
複雑怪奇なシステムとか作るなら必要なんだろうが
iOSアプリとかのSwiftとかだとないと厳しいけどさ

822:片山博文MZ
17/10/29 15:38:34.24 k1qoOab2d.net
モダンブラウザなら、ブラウザからでもデバッグできるし、色んな機能があるよ。

823:デフォルトの名無しさん
17/10/29 17:24:25.73 xmzrQ2Sc0.net
もうechoと打たなくていいんだ!

824:デフォルトの名無しさん
17/10/29 17:27:03.74 lZu6ERZg0.net
有料のPHPStormじゃなくて
無料のnetbeans使ってバグ全部取ったのに
ブラウザが真っ白のまま
もう何がなんだか・・・

825:デフォルトの名無しさん
17/10/29 22:41:34.91 RyqL6Q1z0.net
バグ全部取りきれてないんだろ

826:片山博文MZ
17/10/29 22:51:58.54 k1qoOab2d.net
>>809
警告をオンにしてhtmlソース見ろよ

827:デフォルトの名無しさん
17/10/30 00:11:23.58 UPoKErNA0.net
>>809
netbeansでもxdebug使えるからトレースすりゃいいんじゃないの?
バグじゃなくてエラーを全部なくしただけでしょ?
本当のデバッグはそこがスタートだよ
どうせエラー表示したら500エラーが出てるよ
>>806
作り方がうまいからじゃねーの
まぁ、新規で使うことは少ないけど、改修や保守開発だと必須じゃね

828:デフォルトの名無しさん
17/10/30 00:11:52.95 UPoKErNA0.net
>>809
あ、PHPってちゃんとログにエラー残してるからログも見ろよ

829:デフォルトの名無しさん
17/10/30 00:12:19.06 UPoKErNA0.net
>>809
PHPのログ、フレームワークのログをみて
さらに自分でログ出力もしっかりしてな

830:デフォルトの名無しさん
17/10/30 00:56:01.34 JH+/yPWP0.net
>>806
フレームワークの時点でバグが潰されてるから
FW使う一方ならそんな
深いデバッグ要らないってのはあるな
>>812
保守だとプログラムを理解しづらいからね

831:デフォルトの名無しさん
17/10/30 05:43:01.84 OFPISIv40.net
テンプレート言語でフレームワークを使うという冗長

832:デフォルトの名無しさん
17/10/30 14:24:02.82 6Zg8+NGr0.net
Google Apps Scriptで
URLリンク(www.pre-practice.net)
ここを参考にLINEBOTを作っていて、
文章中の特定の文字列に反応して返答するようにしたのですが、
(1)
else if (strpos(input_text, "寒い") !== false ) {
reply_text = "もう冬だね";
  }
これを挿入しても反応してくれません。
その上、その下部に配置した
(2)
else {
reply_text = "答えられません";
}
が反応しなくなります。
(1)を削除すると、(2)は動きます。
(1)のstrposを正常に稼働させるには
何がいけないのでしょうか教えてください。
お願い致します。

833:デフォルトの名無しさん
17/10/30 14:33:01.75 6Zg8+NGr0.net
>>817
訂正
(2)だからというわけではなく、
(1)があるとその下部のelseがすべて無効になります
削除すると、すべてのelseが反応するようになります。

834:デフォルトの名無しさん
17/10/30 14:52:57.48 xmd0Xo8s0.net
データベースに記事のデータを無数に登録しておき、それをPHPで読み出して
ブログサイトのように表示するみたいなプログラムを作りたいのですが
そういうのってWebサイトではありがちな気がするのですが、何か簡単に実現できる
フレームワークやツール的なものってあるのでしょうか

835:デフォルトの名無しさん
17/10/30 15:21:21.27 TBBBeiZLa.net
>>817
Google Apps Scriptってよく知らんけどJavaScript互換じゃないの?

836:デフォルトの名無しさん
17/10/30 15:38:04.49 6Zg8+NGr0.net
javaScriptがわからないのですが、
上記の>>817のソースをそっくりそのままコピペすると、正常に動くんです
else if (strpos(input_text, "寒い") !== false ) {
reply_text = "もう冬だね";
  }
ほかは何もいじらずこれだけを挿入するのですが、「寒い」のメッセージに無反応なんです。

837:デフォルトの名無しさん
17/10/30 15:51:26.23 6Zg8+NGr0.net
>>817質問変えます
URLリンク(www.pre-practice.net)
上記URLのソースコードを使用して、
文章中に「寒い」が含まれるメッセージが来たら
「冬ですね」と返答する事ができるようにするにはどうしたらいいかお願いですから教えてください。

838:デフォルトの名無しさん
17/10/30 16:09:26.30 6Zg8+NGr0.net
////////////////////////////
var input_text = e.message.text;
var reply_text = "";
if (input_text == "こんにちは") {
reply_text = "元気?";
}
/////////////////////////
現状は「こんにちは」のテキストに完全一致でしか「元気?」と出力しない状態です。
これを文章中に「こんにちは」が含まれる部分一致の場合に「元気?」と出力する方法教えてください。
連投すんません、このくだらない問題に2日無駄にしてつらいです。

839:デフォルトの名無しさん
17/10/30 16:14:49.49 sK+sC+Du0.net
>>822
strpos このメソッドって存在しますか?
文章中に"寒い"があるかどうかを判定するだけなら
input_text.match(/寒い/)
で判定出来るんじゃないかな?

840:デフォルトの名無しさん
17/10/30 16:31:42.84 vEI+28/Ca.net
>>823
えっと、間違ってたらごめんだけど、見た感じ>>817はJavaScriptのコードで、strposはphpの関数だから、存在しない関数を使ってるせいでエラーになってるんじゃないかな
containsやindexOfみたいなJavaScriptの関数で判定してみたらどうでしょうか

841:デフォルトの名無しさん
17/10/30 16:45:24.01 6Zg8+NGr0.net
>>824
>>825
ありがとうありがとうありがとうありがとう
ヒントくださって本当にありがとう
行き詰まって調べたくても何もなかったからどうにもできなかった
その二つ調べて頑張ります本当にありがとう

842:デフォルトの名無しさん
17/10/30 17:15:37.08 JH+/yPWP0.net
>>819
ワードプレス

843:デフォルトの名無しさん
17/10/30 17:34:29.87 6Zg8+NGr0.net
>>824
>>825
     )、._人_人__,.イ.、._人_人_人
   <´ indexOf使ったら動いたよ!! >
    ⌒ v'⌒ヽr -、_  ,r v'⌒ヽr ' ⌒
// // ///:: <   _,ノ`' 、ヽ、_ ノ  ;;;ヽ  //
///// /::::   (y○')`ヽ) ( ´(y○')    ;;|  /
// //,|:::     ( ( /    ヽ) )+ あ   ;| /
/ // |:::     +  ) )|~ ̄ ̄~.|( (   り   ;;;|// ////
/// :|::       ( (||||! i: |||! !| |) ) が    ;;;|// ///
////|::::    +   U | |||| !! !!||| :U と ;;; ;;;| ///
////|:::::       | |!!||l ll|| !! !!| |  う ;;;;;;| ////
// / ヽ:::::       | ! || | ||!!|    ;;;;;;/// //
// // ゝ:::::::: :   | `ー-----' |__////

844:デフォルトの名無しさん
17/10/30 18:06:32.72 ki8heFlTa.net
>>828
良かったけど、そもそもなぜここで聞いたんだw
がんばってください

845:デフォルトの名無しさん
17/10/30 18:11:09.44 sK+sC+Du0.net
優しいスレだなあ、ほっこり

846:デフォルトの名無しさん
17/10/30 19:38:09.54 EhzU2sDl0.net
>>806
初心者がいきなりフレームワークという最近の傾向には俺も疑問
フレームワークを知らなかったからこそ、
初めてチーム組んでフレームワークを使った開発をした時に
その必要性や有難味を理解できるもんだ
酷いのになるとフレームワークの使い方しか知らなくて
全く潰しの効かない人とかいるしね
最近のruby界隈は結構酷いのがいる(もちろんPHPよりはましだがw)

847:デフォルトの名無しさん
17/10/30 19:48:34.15 EhzU2sDl0.net
>>782,784
どうなってる?と言われても知らんがなw
そう思うなら自分で作ればいいじゃない
curlの関数群にOOPなインターフェースを与えるのなんて簡単な事だろ
CURLFileがいけてない?
PHPのcurlなんて単なるlibcurlのうっすーいラッパーに過ぎないが
PHPのcurlは「@」の扱いからして全然いけてないよw
他人が設計したクラスに文句垂れるだけでろくにラッパークラスも作れない人なの?
違うでしょ?
他のレス見ても君はPHPには明らかに向いてない
君の性格にはPhthonがおすすめ
PHPなんてクソ言語はさっさと捨てて
ついでにこんな糞スレにも二度と戻って来ない方がいい

848:デフォルトの名無しさん
17/10/30 21:00:34.82 6Zg8+NGr0.net
ほんとマジありがとうございました。

849:デフォルトの名無しさん
17/10/30 21:19:35.82 6OnifbBOM.net
>>831
まあ、言いたいことは分かるよ
でも、たとえばAPCキャッシュがどういう理屈で速い機械語書き出してるか?
とかそういうことまで把握してるペチパーなんてほんの一握りだろう
それでもみんなAPCキャッシュ使ってるからな
どういう層までやりこんで覚えるかは時代の流れもあるんじゃないかなぁ
慢性的な技術者不足だし、この傾向はどんどん進んでいくと思うけどね

850:デフォルトの名無しさん
17/10/31 01:49:29.16 TDK9QP8S0.net
APCなんて5.3の頃にとっくに滅んだろ・・・。

851:デフォルトの名無しさん
17/10/31 07:33:32.84 hw8F/Qhk0.net
>>827
やはりワードプレスってそういうものなんですか
どうもです

852:デフォルトの名無しさん
17/10/31 14:52:17.88 TJmT6ypb0.net
>>835
ああOPcacheだっけか、今は
歳とって記憶がもうやばい

853:デフォルトの名無しさん
17/10/31 21:30:40.63 vrxKr+8C0.net
てか、APCにしろOPcacheにしろ、中間コードをキャッシュしてるだけで、そっこから実行コードにするのは別のとこでしょ?

854:デフォルトの名無しさん
17/11/01 00:51:20.56 Do6LjQMZ0.net
初心者はフレームワークを使わないほうがいいんですか?

855:デフォルトの名無しさん
17/11/01 01:26:07.73 2VhajyTi0.net
目的次第か
ただサイト作りたいだけなら使うべきだろうし、
PHPを極めたいとかプログラミングを楽しみたいとかなら
使わずに一から作る方がいいかもしんない

856:デフォルトの名無しさん
17/11/01 06:31:00.29 SVj9mMjCd.net
phpはテンプレート言語だからフレームワークなんて必要ないしね

857:デフォルトの名無しさん
17/11/01 08:06:41.70 y4RLmNPl0.net
車輪の再発明うんぬん言うのは、手っ取り早く目先の仕事を片付けたいなら
フレームワークのような既存コード使えって話であって、プログラマーとして
スキルを高めたいって話なら、例え誰かが既に実装してる機能であっても
自分で試行錯誤して作る経験をつむことに意味があるからね
この点については「プログラマが知るべき97のこと」にもあるね

858:デフォルトの名無しさん
17/11/01 12:25:32.18 6Bes9s9x0.net
97って多すぎるんだよな… 8つくらいに絞れよ…

859:デフォルトの名無しさん
17/11/03 00:16:36.67 N/6B30hr0.net
ubuntuでphp7をpurgeしたんだけどphp -vでみたら
バージョンが7.0になったままなんだけど
php7がpurgeできてないってことですか?

860:デフォルトの名無しさん
17/11/03 00:24:51.93 khFcMPIR0.net
>>843
いまググったら107個に増えてた

861:デフォルトの名無しさん
17/11/03 02:49:44.71 9CXEo34m0.net
97を8つくらいに絞ったら
個々のページが増えるだろ
つまり8章立ての本になる
20ページとかの本じゃ売れないからな

862:デフォルトの名無しさん
17/11/03 04:27:57.37 E/qemGJoa.net
PHPはコメントに#も使えますが
シバンは<?phpより前に書かれるので、
これはシェルスクリプトやPerlのように「コメントだから無視されている」
というわけではないですよね?
何故PHPでもシバンが無視されるのでしょうか?

863:デフォルトの名無しさん
17/11/03 04:30:09.06 9CXEo34m0.net
そう読める機能が実行環境に備わってるから

864:デフォルトの名無しさん
17/11/03 11:45:13.22 E/qemGJoa.net
「一行目が#!から始まっていたら無視をする」
という処理を行っているのでしょうか
たしかにふるまいを見るとそうしているように見えますが、
ドキュメントのどこに書いていますか?

865:デフォルトの名無しさん
17/11/04 12:45:29.26 lmIJ2Kma0.net
ファイル単体が純粋にPHPのコードで書かれていても
PHPはテンプレート言語でもあるのでHTMLとの境界を定めるために<?php開始タグが必要
これはCGIとして動作させるためにシバンを書く時も例外ではないので

866:デフォルトの名無しさん
17/11/05 16:14:45.84 6RtNgLoYa.net
PHPで標準出力を一時的にファイルに変えることは出来ますか?

867:デフォルトの名無しさん
17/11/05 17:48:41.64 YrMOHTVWE.net
なんでここIPでないの?

868:デフォルトの名無しさん
17/11/05 17:53:09.84 5rLvqL+M0.net
スレ立てる時にワッチョイの指定で出来るけど、
そこまでやる必要があるのかな?

869:デフォルトの名無しさん
17/11/05 21:18:41.00 mZtOvkfq0.net
IPまではいらない

870:デフォルトの名無しさん
17/11/06 02:07:54.67 4QwjxNvAa.net
URLリンク(qiita.com)
file_get_contentsのタイムアウトを設定しても
何故か設定値の2倍の時間がタイムアウトまでの時間になる
という情報がネットにあります
これはstream_context_createで作成したストリームコンテキストを
fopenに渡した場合でも同じなのでしょうか?

871:デフォルトの名無しさん
17/11/06 09:37:09.15 RWNw7rPfE.net
自分で試せば分かることを聞くのかw

872:デフォルトの名無しさん
17/11/06 10:41:08.05 8ugsVuBB0.net
サーバーサイドで、PHPがNode.jsより得意なことってなんでしょう?
サーバーサイド・クライアントサイドで共通の言語を使うという夢を捨てきれずも
とりあえずPHPに甘んじているところです

873:デフォルトの名無しさん
17/11/06 11:07:34.47 xs24eGnra.net
>>856
単に「試して終わり」の問題じゃないですから。
タイムアウトが2倍になるのがそもそも意味不明です
その意味不明の現象は今でも存在するのかとか
原因は分かったのか、そういう周辺の情報も知りたいので質問しました

874:デフォルトの名無しさん
17/11/06 11:09:54.91 xs24eGnra.net
>>857
デフォルトの関数が揃っていることでしょうか
PHPは十徳ナイフみたいなものです
つっこんだ使い方しようと思うといまいち使えないところも笑

875:デフォルトの名無しさん
17/11/06 11:39:06.57 RWNw7rPfE.net
>>858
タイムアウトが2倍になる理由を調べたいなら--enable-debug付けてコンパイルしたphpでgdbで調べるしかないんじゃないの?
>これはstream_context_createで作成したストリームコンテキストを
>fopenに渡した場合でも同じなのでしょうか?
file_get_contentsと同根の現象かは自分で試せば分かるよね
丸投げしないで試した上で質問してよ

876:デフォルトの名無しさん
17/11/06 11:43:22.57 RWNw7rPfE.net
file_get_contentsだとタイムアウトが2倍になるので
stream_context_createで作成したストリームコンテキストを
fopenに渡したどうなるか試してみたら2倍に(なりました|なりませんでした)
これはどうしてでしょうか?
なら答えたくなるのにな~

877:デフォルトの名無しさん
17/11/06 12:07:39.62 xs24eGnra.net
>>860
既にやってる人がいるなら聞く方が早いですよね?
なんで車輪の再発明を強いるんですか?

878:デフォルトの名無しさん
17/11/06 12:07:52.24 8ugsVuBB0.net
>>859
なるほど、やはりPHPはWebに特化した言語だけに、汚らしいけど話が早い言語って
感じなんですかね、他と比べると
自分にとってはそれはけっこう魅力的かもしれません
サーバーサイドに労力使ってる場合じゃないって考えなので
しばらくはPHPで良い気がしてきました、どうもです

879:デフォルトの名無しさん
17/11/06 12:08:58.41 xs24eGnra.net
>>861
あなたの答えたい|答えたくないなんてどうでもいいんですよ
有能な人はしょうもない出し惜しみはしません

880:デフォルトの名無しさん
17/11/06 12:14:52.40 mhUqyjwpx.net
>>857
node.jsってwindowsで動かないじゃないか

881:デフォルトの名無しさん
17/11/06 15:16:15.83 YE3zxJrDM.net
はい?

882:デフォルトの名無しさん
17/11/06 17:39:49.53 GazGq00E0.net
元々MVCやWebフレームワークなんかの概念が薄かった時代に開発された
C言語用のWebフレームワークの前身みたいなもんで元々プログラム言語として開発されたものじゃない
他に飲まれるの嫌って発展優先させて作りなおすこともしなかったから
エイリアス作ったりJavaに似せたり文法的に扱いやすいものになったけど汚いもんになってしまった
省略可能な引数に後々問題が出てやっぱ省略だめ!って言いたくなるのは仕方ないとしても
歴史的理由を言い訳にしてるものはさっさと廃止すればいいのに

883:デフォルトの名無しさん
17/11/06 19:44:28.39 tjV5ukzM0.net
>>857
PHPは使うハードルが低いのがメリット
現にあなたが甘んじてるのが動かぬ証拠
Nodeはクラサバを共通化できても
導入のハードルが高い
そもそもJavaScriptが扱いにくい
ぶっちゃけJSの仕様も汚い
同じ汚いなら使いやすい方が良い

884:デフォルトの名無しさん
17/11/06 20:16:13.56 HXs9Xdf90.net
車輪の再発明をするな=「手を抜くこと」と勘違いしてるアホっているよな
Wikipediaにすら
> プログラマもしばしばその技術を深く理解して自身の技術を向上させるために敢えて「車輪の再発明」をすることもある
と書かれているのになぁ…
これじゃPHPer()と揶揄されるのも仕方ないわw

885:デフォルトの名無しさん
17/11/06 20:23:03.01 HXs9Xdf90.net
>>863
PHPは短時間で「とりあえず動きゃいい」って感じで書くのには良い言語だが
「正しく」書こうとすると、他言語の経験がないとかなり難易度が高い



886:えばGETリクエストの値の取り方 例えばPDOでのDB接続 例えば正規表現 挙げればきりがないが、まともなコード載せてるページなんかほとんどないよ 知識がないと、うんこの海から金塊を探し出すぐらい難しい



887:デフォルトの名無しさん
17/11/06 20:35:09.12 HXs9Xdf90.net
ちなみに正規表現界隈では、PHP使いはもう正規表現をblogに書くな
なんて何年も前に言われてたし
今でもPHP使いが載せてる正規表現はレベルが低すぎて話にならない
とよく言われる
まぁでも「正しく」書く必要がないケースなら
結果を最短で出せる事もよくあるから書けたら便利よ
例えば手元でちゃちゃっとスクレイピング処理したい時とかね
下手すりゃ他言語の重いIDE起動してる時間でPHPなら結果まで出せる

888:デフォルトの名無しさん
17/11/06 23:27:37.35 B8HU4dAL0.net
>>868
いやJavaScriptの方がPHPよりだいぶマシ。
ここ3週間ほどPHPをいじってみたが、変な癖が付くかも、というのは分かる。

889:デフォルトの名無しさん
17/11/07 02:54:22.53 2tGtnuO50.net
正規表現のスクリプトは基本コピペしかしたことないわ
エラー出たらまんま知恵袋に乗っけてベストアンサーをまた再コピペ
これで一度も困ったことない
今後もずっとこれで行くつもり

890:デフォルトの名無しさん
17/11/07 04:19:21.38 3AcTSaMS0.net
>>例えばPDOでのDB接続
確かによくわからんエラーばかり出る

891:デフォルトの名無しさん
17/11/07 06:16:53.91 /dIYjzhA0.net
>ここ3週間ほどPHPをいじってみたが、変な癖が付くかも、というのは分かる。
どういう変な癖?

892:デフォルトの名無しさん
17/11/07 12:19:29.07 b0eaqMwO0.net
結論としてはサーバーサイドはRubyとかJava使えってことなの?

893:デフォルトの名無しさん
17/11/07 13:33:59.17 gh/A0PF2M.net
>>864
有能な人でもこの書き込み見たあとに書き込むことはない

894:デフォルトの名無しさん
17/11/07 15:38:49.25 JdOQp9jh0.net
>>864 は、せめて自分が有能になってから発言すべきだったな。

895:デフォルトの名無しさん
17/11/07 17:00:01.66 qTtPzD5n0.net
>>876
小規模ならJavaよりPHPの方が手軽で使いやすい

896:デフォルトの名無しさん
17/11/07 17:55:39.61 lL2IWG1w0.net
スマホアプリから始めてる最近の連中には1つの言語でいいから楽かもしれないけど
Javaは時間的な開発コストがかかりすぎ
PHPがいいかといったらPythonとかと比べちゃうと良くないけども

897:デフォルトの名無しさん
17/11/07 18:10:39.32 AlF6JHNEa.net
サーバーサイドなら今のところGo言語が一番使い心地いい
でも最近Elixirが気になる

898:デフォルトの名無しさん
17/11/07 18:36:43.37 /3lRCBy00.net
ワールドワイドウェブ←PHP。
業務システム←Java。
こういう使い分け。
作られた目的で使うのが楽。

899:デフォルトの名無しさん
17/11/07 19:12:10.18 44ffyb5e0.net
PHPを勉強しちまった
Javaは勉強したくない・・・

900:デフォルトの名無しさん
17/11/07 19:53:28.62 1fNnAx110.net
Javaはガチガチすぎて自由度がないからな
コードは長ったらしいものが出来上がるし出来れば触れたくない
自由度高すぎでなんでも配列になりがちなPHPはコード汚くなりがちだけど個人の力量次第
簡単に始められるけど素人向けにみえて全然素人向けじゃないのがPHP
PythonはPHPerが次に学ぶには最適
オブジェクトと手続きが混在した同じようなパラダイムだからとっつきやすいだろう
Goは知らね 一度やろうとして入れたらアンチウイルスソフトが反応したから諦めた

901:デフォルトの名無しさん
17/11/07 20:21:31.14 /3lRCBy00.net
同じことが出来るなら好き嫌いで選ぶのも良いのだが、JavaとPHPは明らかに対象が違う。

902:デフォルトの名無しさん
17/11/07 20:22:50.59 /3lRCBy00.net
対象による分類でいえばPythonはJavaと同じグループに属するのではないか。

903:デフォルトの名無しさん
17/11/07 22:02:46.43 1fNnAx110.net
対象なんてPHPと比較してんだからWebアプリに決まってる

904:デフォルトの名無しさん
17/11/07 23:51:12.20 Sa0oaD5/0.net
>>875
汚いコードを書く癖、だな。
というか仕様が汚いから、綺麗なコードを(上級者でも)書きにくい。
だからPHPには本質的に綺麗なコードがない。(はず。或いは他言語と比べて圧倒的に少ない)
この結果、PHPのみのPHPerは綺麗なコードを見たことがなく、何が綺麗なのか理解出来ない。
たぶんこれがPHPerが強烈に馬鹿にされる理由ではないかな。
JavaScriptの問題は局所的なので上級者なら回避出来るし、ちゃんと書けばかなり速く動く。
(実際は糞コードが蔓延しているが)
PHPの場合は上級者でも「これでどうしろと?」になってしまう。腕があっても発揮しようもない。
これが上級者が強烈にPHPを敵視する理由だろう。
逆に言えば、腕が悪くても(上級者に)置き去りにされないし、
仕様の洗練具合も「ちょっと調子に乗り始めた」中級者に成り立ての頃と合致しているから、
その辺の人達にとっては非常に心地いいはず。これが多数から支持されてる理由だろう。
人数でいえば必ず上級者<<<中級者<<<初心者だし。
例えば、Cの関数ポインタの型宣言とか、洗練されてはいるが洗練されすぎてて意味不明だ。
そこはGoでは反省して仕様としての統一性より可読性を取ったと公式に言われてる。
URLリンク(blog.golang.org)
従来はほぼ全ての言語が「上級者用」に出来てた。
ただ今はもう全員がプログラミングする時代だから、変わりつつあるって事だろう。
PHPはある意味「馬鹿に丁度いい頃合い」の仕様だから、人数だけで言えば支持されることになる。
とはいえ、綺麗なコードを書くことも、後からのメンテと実行性能を上げる手段でしかないから、
使い捨て主体で早くリリースすることが重要なWebの世界では必ずしも必要ではない。
それがいまだにPHPが盛んな理由だろう。

905:デフォルトの名無しさん
17/11/08 01:26:15.87 2WiQV3soa.net
世界の嫌われ言語第二位にランクインしたぞ

906:デフォルトの名無しさん
17/11/08 07:48:26.15 2qR6LDLx0.net
二位か。
名誉である。

907:デフォルトの名無しさん
17/11/08 11:19:42.51 jWA44EcM0.net
3位と4位の間に超えられない壁がある4位
URLリンク(japan.zdnet.com)
タイトルは嫌われてるって書いてるけど使いたくない言語が正しい
変態言語は上位になる
シンプルなPythonに比べて複雑なRubyが上位なのも納得

908:デフォルトの名無しさん
17/11/08 12:59:13.64 MI2OSjnpa.net
PHPはコミュニティベースの多数決意思決定がとてもダメに見える
良くも悪くも特にオープンソース開発では優しい独裁者は必要なんやなって

909:デフォルトの名無しさん
17/11/08 19:25:20.07 ZQcBC1OD0.net
>>892
開発を早急に進めるには独裁的な方法は良いと思うけど
PHPの場合は、未だに5系を使ってるのが多いようで
あまり急ぐ必要性もないのかなとも思う。

910:デフォルトの名無しさん
17/11/08 19:38:40.39 ToLSiZTza.net
6の失敗で様子見が長いのかな
5を使うのって

911:デフォルトの名無しさん
17/11/08 20:24:43.81 yXBCWp2w0.net
>>891
上位の言語は
仕事で使わざるを得ない状況になって
嫌いになったんじゃないの
Clojureとか仕事で使わないだろ

912:デフォルトの名無しさん
17/11/08 20:59:17.53 CdH0AkI70.net
5.x 系はもうセキュリティfixのみ。5.6以外は既にセキュリティ保守もされていない。
7.0も来月には保守に移行、とっとと、7..1系に移るべし。
URLリンク(php.net)

913:デフォルトの名無しさん
17/11/08 21:06:09.41 yXBCWp2w0.net
>>891
Haskellの嫌われぶりも相当だな
前後のC/C++やJavaに比べたら
使用者人口が圧倒的に少ないだろうに

914:デフォルトの名無しさん
17/11/08 21:15:37.90 7RlofB9P0.net
>>891
いまいち見方がわからん
横の長さは何を表してるの?

915:デフォルトの名無しさん
17/11/08 22:37:46.88 sLplUZSS0.net
>>898
好かれてない度

916:デフォルトの名無しさん
17/11/09 01:20:29.97 2oYBDwYL0.net
webプログラマーの俺が思う、PHPの気に入らない点
関数の引数に法則性がない、せめてhaystackとneedleの順序ぐらいは統一してくれ
変数にグローバルスコープがない(いちいちオブジェクト化しないといけないのが鬱陶しい)

917:デフォルトの名無しさん
17/11/09 01:46:15.65 oTLZ7Zqm0.net
グローバル変数はできるかぎり使うな

918:デフォルトの名無しさん
17/11/09 07:05:11.47 pml0kuKU0.net
サーバーサイドだとPythonが今好まれてるってことなのか?
でもWebに特化してないし、作りやすいのかね

919:デフォルトの名無しさん
17/11/09 08:58:24.86 oTLZ7Zqm0.net
Pythonは機械学習で流行に乗ったけど
Webアプリは作りやすくない

920:デフォルトの名無しさん
17/11/09 09:44:04.31 Hn5JglTy0.net
PHPのようにサクっとはじめれないけど
用意するもの用意したらPHPより早く完成品出来上がるよ
まあぶっちゃけサーバサイドなんてなんでもいいんだけどね

921:デフォルトの名無しさん
17/11/09 17:38:26.86 Q2HXYGEY0.net
Ruby on Railsに精通してるやつのWebアプリデプロイするまでの尋常じゃないスピードにビビる

922:デフォルトの名無しさん
17/11/09 18:16:04.39 aoNmqvFxa.net
RubyはぶっちゃけいかにRailsを使いこなせるかの言語だからな

923:デフォルトの名無しさん
17/11/10 08:18:02.39 RkYtVGAQ0.net
>>852
IPがいる理由が謎
セキュリティ的に害悪でしかない

924:デフォルトの名無しさん
17/11/10 09:40:25.64 UzIhbEi50.net
固定IPでアクセスしている奴がいるのか?
そちらの方がセキュリティ感覚がないんじゃ

925:デフォルトの名無しさん
17/11/10 11:58:24.69 YGcZE3ch0.net
IP表示なんてしたらスレ乱立するのは目に見えてるからなあ
ID出す出さないで長年揉めてたぐらいだし

926:デフォルトの名無しさん
17/11/10 19:24:21.77 LsbUks3P0.net
IDがないと自演し放題で荒れるからな
レンサバとWebProgとかIDないけど
荒し簡単にNGできなくてイラつく

927:デフォルトの名無しさん
17/11/13 11:23:34.57 4mbmImdF0.net
>>902
Pythonはプログラミングを初めてやる人にはいい言語
Web向けのフレームワークもいくつかある
PHPみたいに1つの事をやるのに複数のやり方がある言語は
とっつきやすいが学習にとってはデメリットも多い
言語なんか手段に過ぎないからな
近所のコンビニへ買い物いくのにF1カーに乗るアホはおらんだろ
特定の言語にケチ付ける人ってたぶん仕事やらせたら手が遅いんだろうなって思う

928:デフォルトの名無しさん
17/11/13 11:27:09.02 4mbmImdF0.net
>>900
グローバルスコープはあるが使うわけがない
もしその理由が分からないなら相当ヤバいと思う
グローバルスコープ汚染しまくる言語って大昔のperlや
アホの書いたJavaScriptのイメージが強いが
どの言語出身?

929:デフォルトの名無しさん
17/11/14 00:49:07.85 Cwk2PbMg0.net
phpdbgをみんな使ってる?

930:デフォルトの名無しさん
17/11/16 20:26:54.97 daoo5ECaa.net
久しぶりに紀伊國屋に行ったら
PHPとPythonの本棚におけるシェアが増えて、Rubyが減っていました
PHPの場所は一時はかなり減っていましたが、大分盛り返した様子です
Pythonの流行はあきらかに機械学習の興隆と連動しています
ウェブではまだまだPHPが存在感を発揮していくのでしょうか?

931:デフォルトの名無しさん
17/11/16 21:14:09.06 0WmOdyh+0.net
WebならPHPが一番多いよ

932:デフォルトの名無しさん
17/11/16 22:59:14.51 daoo5ECaa.net
Pythonもしていますが、定数がなかったり、
オブジェクトのメソッドの第一引数がオブジェクト自身だったりと
いまいちモダンじゃないですよね
PHPは節操なく流行りを取り入れる姿勢なので、
モダン性が保たれているところはありますね

933:デフォルトの名無しさん
17/11/16 23:28:54.07 0WmOdyh+0.net
いやPythonの方がキレイな言語だろ
たしかにselfだらけなのは冗長だと思うが

934:デフォルトの名無しさん
17/11/16 23:34:30.35 lNSovIGo0.net
プラグマティック
[形動]実利的。実際的。実用主義的。実利主義的。

935:デフォルトの名無しさん
17/11/16 23:45:25.89 H4f2B3nT0.net
Pythonもなんちゃってオブジェクト指向だからPHPといいお友達だよ

936:デフォルトの名無しさん
17/11/16 23:51:10.19 EIKDxuPB0.net
webプログラミングやるなら
一度はPHPを勉強して損はないと思う

937:デフォルトの名無しさん
17/11/17 00:03:09.52 Fyg+unP40.net
JAVA、C#で徹底的に冗長性排除したのに
再び冗長性のあるプログラミング言語が興隆してくるあたり
人間の堕落さが垣間見れる

938:デフォルトの名無しさん
17/11/17 00:21:03.83 Geoynnp60.net
>>921
ナイスジョーク

939:デフォルトの名無しさん
17/11/17 01:03:42.02 5LcvEdL4a.net
タチの悪いジョークだなぁ

940:デフォルトの名無しさん
17/11/17 01:09:05.80 XOzbrcQ20.net
Javaの方が冗長

941:デフォルトの名無しさん
17/11/17 01:18:51.27 ma/QnAue0.net
「太子。人間、孤独であるよりは悪とともにあったほうがよいとみえるな」

942:デフォルトの名無しさん
17/11/17 01:47:17.15 kCNvi1ria.net
>>920
ガバガバ感を弁えるためにな

943:デフォルトの名無しさん
17/11/17 13:10:05.05 lGyDcZb2a.net
PHP以外の言語は、ある機能を使いたかった時に
この関数が含まれているパッケージは~とか、
いちいち調べなきゃいけないのが面倒くさいと思っていましたが
パッケージをクラス、関数をメソッドくらいの感覚で考えたら
そんなに面倒くさくないと気づきました

944:デフォルトの名無しさん
17/11/17 14:52:01.73 jmNY7gbT0.net
PHPは自分さえしっかりしてれば(スキルがあれば)エレガントに安全に書ける言語だと思うよ
だから個人でWebやる場合、そういう自信があるなら有力な選択肢だと思う
ただ仕事などチームでやる場合、糞コード生産しそうな奴がまじってるとPHPは
選択したくないかも(必ずいる)

945:デフォルトの名無しさん
17/11/18 14:42:47.14 2G8xzSWu0.net
PHPは書くと楽な言語であって、読むのは最悪。他人が絡むから。

946:デフォルトの名無しさん
17/11/18 18:17:30.20 STVf0d+x0.net
>>929
プログラムって大体そういうものだ

947:デフォルトの名無しさん
17/11/18 21:10:40.83 nUbPTPuI0.net
だから差が出ないようにコーディング規約とかあるんやで

948:デフォルトの名無しさん
17/11/18 23:59:16.26 AvOAupbn0.net
年収500万でPHPのソースレビュー要員募集してるところもあるくらい
規約は徹底したほうがいい
規模でかいなら尚更

949:デフォルトの名無しさん
17/11/19 22:41:33.65 t82UL78Aa.net
>>736の件ですが
なんとGoはオブジェクト指向言語じゃないと分かりました
あくまでモダンCであってモダン言語と呼ぶには苦しい感じがします

950:デフォルトの名無しさん
17/11/19 23:44:09.71 MOlyybMm0.net
モダン=オブジェクト指向みたいになっとるがな

951:デフォルトの名無しさん
17/11/20 00:27:23.79 izNCqxH/0.net
どっちゃもいけるC++やPHPみたいな言語が、適材適所で使えて超便利。

952:デフォルトの名無しさん
17/11/20 09:21:45.62 5CA8WQiUM.net
AWS Lambdaでネイティブサポートする言語に
PHPが入っていないのって何故でしょうか?
GoとRubyは次にサポートする言語の投票対象になってましたが
PHPは入ってませんでした

953:デフォルトの名無しさん
17/11/20 10:34:23.37 Jkag+4y4a.net
オブジェクト指向と関数型を両方できるのが今のモダン言語でしょう

954:デフォルトの名無しさん
17/11/20 12:09:37.89 m3rw4xgt0.net
Scalaとかな

955:デフォルトの名無しさん
17/11/20 12:16:46.46 L+bcHflj0.net
関数型言語を学んだことないんだけど
学ぶとどんないいことがある?

956:デフォルトの名無しさん
17/11/20 17:53:01.40 jMZlCBbia.net
・むやみやたらに変数に再代入しなくなる
・参照透過性や副作用に気をつけるようになる
・小さな汎用関数を組み合わせて目的の処理を作り上げるのが楽しい
・汎用とまでは言わなくとも関数内で無名関数作って処理分離させるのが楽しい
・楽しいだけじゃなくそれぞれが細かく独立してるので保守しやすい
・宣言的に書けるため見通しがスッキリする
・大抵の場合で関数呼び出しのオーバーヘッドを気にする必要がないことに気づく
・いまいち使い道のわからなかったarray_map, array_filter, array_reduceあたりを息を吐くように使うようになる
・ただし大量の配列をmapしてfilterしてってやるのは遅延評価じゃないPHPではオススメしない

957:デフォルトの名無しさん
17/11/20 18:22:48.01 QCK988O10.net
手続き型より関数型に寄ってる言語は触った程度しか経験ないけど, 関数型のメリットは型システムとの関わりが強いことだと思ってる
この辺は上の宣言的に書けるとかその辺か
型無しラムダ?知らんな
あとPHPは型システムが極めて貧弱貧弱ゥなのがアレ

958:デフォルトの名無しさん
17/11/20 23:43:49.46 Qkk3FtfL0.net
業務中に少し行き詰ったので質問。サーバーPCの環境はwin32でPHP5.6、XAMPP上で動いてる
これを同一ネットワーク内の別PCでアクセスして、サーバーPC上のファイルをデスクトップ上に受け取りたい
単純にcopy関数を使っただけだと、access deniedで怒られたので、サーバーPC上のディレクトリに権限を
与えてみたが、これも駄目
php.iniのallow_file_uploadedなんかはすべてonにしてるだけど、どうやったらアクセス制限で弾かれずに
複写できる?

959:デフォルトの名無しさん
17/11/20 23:51:56.67 8KCSU74o0.net
>>942
コンテンツタイプを指定してストリームで受けとったら?

960:デフォルトの名無しさん
17/11/20 23:52:29.59 Qkk3FtfL0.net
そのファイルはxlsファイルで何十もある。ただ、ダウンロードするだけならheader関数で制御すればいいんだけど、
エクセルマクロをダウンロードしてから、それを一通り走査して値を代入する(図表も入ってるからPHPExcelは使えない)
流れとしては
サーバーPC上で元ファイルを複製

複製したファイルをローカル環境上に配置(Desktop/固定フォルダ/タイムスタンプ/hogehoge1.xls)

必要数を配置したら、xlsmファイルをダウンロード

xlsmファイル上のVBAマクロが動き、配置したxlsファイルに値を出力(図表が混じってるので、PHP_Excelが使えない)
こういう動きをさせたいので

961:デフォルトの名無しさん
17/11/20 23:56:13.25 Qkk3FtfL0.net
>>943
ありがとう、ストリームについて調べてみる

962:デフォルトの名無しさん
17/11/21 00:06:48.02 ZEWdnSYv0.net
サーバ側のアプリケーションを作りたいのかクライアント側のアプリケーションを作りたいのか両方なのか
更にクライアント側でVBAを動かす処理系はどうするのか(Excel起動するの?)とか

963:デフォルトの名無しさん
17/11/21 00:36:29.65 nHtR4tFla.net
>>936
PHPは他言語の機能を積極的にパクってきましたが
PHPが他言語にパクられた機能というのは、特に思い当たりません
そういうところで軽視されがちなのは、
そんなPHPのオリジナリティのなさが原因ではないかと思います

964:デフォルトの名無しさん
17/11/21 00:41:02.65 tVCufCc10.net
当初ローカル環境だけで作ってたから、いざサーバーに載せ替えたときに、クライアント側で
ファイルの複製ができなくなったって所。ローカルだけだとPHPもVBAもちゃんと動いてたんだけど
Excelはクライアント側で起動させる

965:デフォルトの名無しさん
17/11/22 01:17:28.95 wJEVnqEH0.net
サーバサイドのコードもクライアントサイドのコードも書いて, どっちもローカルの環境では動いたけど
サーバサイドのコードを実環境にデプロイしたらサーバサイドのコードは正しく動くけどクライアントサイドのコードは正しく動かなかったってこと?

966:デフォルトの名無しさん
17/11/22 03:13:02.56 X0CV9K0Z0.net
禅問答か

967:デフォルトの名無しさん
17/11/22 03:36:33.52 Fja20xY70.net
早口言葉

968:デフォルトの名無しさん
17/11/22 03:39:53.11 wJEVnqEH0.net
対話的インターフェイス

969:デフォルトの名無しさん
17/11/22 15:50:49.68 HyQAr+nB0.net
ローカルの環境の中に、仮想OSをインストールして、スコープやパーミッションの相違を見落とすのを防いでおくのが吉

970:デフォルトの名無しさん
17/11/22 23:04:57.76 12pr/mHg0.net
うちの会社でもDockerやらAWSのサービス使って
Blue-Greenデプロイとかしたいけど
まだ手が出せてない
なんか難しそうだし
ローカルのPHP開発環境としてならDockerは使ってるんだが

971:デフォルトの名無しさん
17/11/23 00:48:07.37 0zddhcTM0.net
去年秋にリリースしたサービスはDocker使ってるけどノントラブルだな
それほどアクセスないからってのもあるだろうが

972:デフォルトの名無しさん
17/11/24 19:41:14.05 DaQyC7B30.net
質問です。
最新版のSQLiteを試してみたいのですが、やり方を知っている人は居ますか?
環境はPHP7.1.8+SQLite3.15.1(今年9月時点でのxampp最新版)で、
試しにSQLite3.21.0のDLLを公式からDLして差し替えてみましたが動作しませんでした。

他詳細を知りたければ以下で。
スレリンク(db板:646番)

973:デフォルトの名無しさん
17/11/24 21:22:21.08 NGnFjFYxa.net
自分でビルドできる前提?

974:デフォルトの名無しさん
17/11/24 21:26:05.17 9sTMSHCv0.net
XAMPPでのがしんどいよなぁ…
まさか開発用ってわけじゃなく勉強用だよね?
検証してくれる優しい人出るまで待つしかなさそう

975:デフォルトの名無しさん
17/11/24 21:52:04.12 DaQyC7B30.net
>>957
いや、出来ない前提。というかしたくない。
自分でしないと駄目なのか?ググッたらそのまま使えるみたいな人も居たんだが。
URLリンク(www.dbonline.jp)
なおSystem32に置いても駄目でした。
ちなみにxampp on Windowsね。(すまんこれを言い忘れていた、重要だったかも?)
ビルドするにしてもどうせVCだし、同じバイナリが出来るはずだから意味無いと思っている。

>>958
勉強用だけどAGPLv3でリリースするよ。それなりに動く物を作るつもり。
プログラミング初心者ではないから。
xamppってまずい?一番簡単だったからこれにしたが、
(というか最初はこれくらい簡単でないと無理)
今ならvirtualBoxとかに鞍替えできるけど、そっちの方がいい?
まあそもそもSQLiteのATTACHが異常に遅いのが問題で、
それが無ければ旧版で(つまりxamppで)問題なかったんだけどね。

976:デフォルトの名無しさん
17/11/24 21:57:17.25 C3/IvF2B0.net
XAMPP使わないからよく分からんのだけど, 同梱のphp_sqlite3.dllとかphp_pdo_sqlite3.dllのサイズを見る限りSQLite3は静的リンクされてるんじゃないのか?
ちゃんとDLLの中身見れば静的リンクされてるか動的リンクされてるかは分かるけど, 静的リンクされてるなら自分でリビルドが必要だよ

977:デフォルトの名無しさん
17/11/24 21:59:01.78 lD80x27g0.net
>>959
そのサイトで「使える」と言っているのは、PHPでSQLiteの利用が出来るというだけで、
実際にSQL書いていく時はファイルオープン、ファイルクローズなどやらないと行けないはず
その辺は必要箇所を見つけて自分で直さないと行けないのではないかな?
PHPでSQLを利用するサンプルを一度移植してみると分かると思う。

978:デフォルトの名無しさん
17/11/24 22:27:59.22 DaQyC7B30.net
>>960
Goみたいなキチガイじゃなければ、静的リンクなんてありえないと思うが。
また、静的リンクだったら差し替えても反応するはずが無く、そのまま3.15.1がリンクされっぱなしになるはずだが、
phpinfoで見ると消えてしまう。だから反応はしている。つまり動的リンクのはず。
サイズはほぼ同じ。
3.15.1(859,648Bytes)
3.21.0(852,754Bytes)
なお俺が使っているのは32bit版。

>>961
既に言ったが俺はプログラミング初心者ではないからその辺は分かっているし、
もう既に動かしている。
なおそのサイトは結構いいと思うよ。SQLはそこで基礎を確認した。

979:デフォルトの名無しさん
17/11/25 00:07:20.86 SR+igXjo0.net
>>962
残念だけどちゃんと調べたらソースごとバンドルされてるから静的ビルドよ
URLリンク(github.com)

980:デフォルトの名無しさん
17/11/25 00:11:53.87 SR+igXjo0.net
静的ビルドじゃねぇな, リンクでもないし静的に組み込まれてる

981:デフォルトの名無しさん
17/11/25 00:49:57.60 hdwDPoQO0.net
>>964
違うぞ。てかお前動的リンクと静的リンクの違い分かってないだろ。
ソースがそこにある=パッケージ内でビルドされている、であって、動的/静的は関係ない。
自分でDLLを作るとき、プロジェクト内にソースは当然あるだろ。

こっちも調べた。DLLを直接確認したらget_module関数が無い。それでググったら以下が出た。
URLリンク(www.php-cpp.com)
要するに通常のDLLでは無く、Zendのラッパ(ではないが)が必要で、そこからアドオンとして組み込んでる。
だからphp.iniを見て動的に組み込む。
FireFoxとかのプラグインと同じ構造(のはず)
Zendからヘッダを入手してビルドするのは面倒なので、
誰か既にビルド済みなのを探しているのだが(これがwindowsの利点だし)、今のところない。
誰か発見したらよろしく。
なおReleaseNoteを見る限り、ATTACH自体はまだ枯れてないので可能性がある。
> 2. Allow ATTACH and DETACH commands to work inside of a transaction.
> URLリンク(www.sqlite.org)
ただまあそれ以前に、ATTACHの仕方によっては遅くならないようなので、それも確認中。

982:デフォルトの名無しさん
17/11/25 01:43:46.47 hdwDPoQO0.net
ちなみにバイナリはあった。
URLリンク(windows.php.net)
そしてPHP7.1.12RC1のdllと差し替えたら反応はするのだがSQLite自体は3.15.1のまま。
おそらくPHP7.1系はSQLite3.15.1なのだろう。
ならばとPHP7.2.0RC6も試したが、
こちらはVC15のランタイムをインストールした際「再起動が必要」と出たが無視しているので結果は未定。
再起動無しの状態では使えない。(読みに行くがリンクできない関数があって落ちる)

983:デフォルトの名無しさん
17/11/25 02:08:17.99 SR+igXjo0.net
理解してないのはお前だよ
php_sqlite3.dllやphp_pdo_sqlite.dllは実行時にPHPにロードされるいわゆるモジュールだが, こいつらとsqlite3.dllは同一じゃない
sqlite3.cのソースコードを使ってSQLiteはこれらのモジュールに「静的に」組み込まれている
sqlite3.dllならPHPから独立だろうがphp_sqlite3.dllはphp7ts.dllに依存しているからその辺で読めないんじゃないの
ちゃんとエラーログ見ればモジュール読めないってPHP Startup Error出てるだろうよ

984:デフォルトの名無しさん
17/11/25 08:23:48.80 hdwDPoQO0.net
>>967
> 実行時にPHPにロードされる
> 「静的に」
馬鹿乙。つかマジでもうちょっとちゃんと勉強しろ。
PHPerは馬鹿だとは聞いたが、なるほどこれでは馬鹿にされるだろうさ。

985:デフォルトの名無しさん
17/11/25 12:15:37.58 hVOq/yrX0.net
どっちにせよ、こんなことで時間潰れるの勿体ない
最初からVirtualBoxとかでやった方がいいと思うな

986:デフォルトの名無しさん
17/11/25 12:39:50.58 hdwDPoQO0.net
>>969
いや、virtualBoxの方がいいのか?
Unixにポーティングしたらそこで問題がー、って人も居るみたいだけど。
URLリンク(torhamzedd.halteria.com)
まあ言っていることはごもっともなんだが。xamppで実運用する可能性は皆無だし。
なおいろいろ試した結果、ATTACHの問題というよりは特性であり、
こちらのプログラムで改善/回避できそうな雰囲気なので、環境が悪いわけではなさそうだ。
まだ詳細を詰め切れていないが。

987:デフォルトの名無しさん
17/11/25 14:36:44.48 hdwDPoQO0.net
なおATTACHについては自己解決した。詳細は以下参照。
スレリンク(db板:647番)
これだと最新版で改善されている可能性もあり、試すべきだが、
再起動するのはかなり面倒なのでとりあえず放置する。(後日結果を報告するかも)
対応してくれた人はありがとう。

988:デフォルトの名無しさん
17/11/27 12:53:10.05 nNid/MSoM.net
用途をみるに、sqliteを最新にする必要があるのか謎。

989:デフォルトの名無しさん
17/11/27 12:54:20.73 nNid/MSoM.net
あー最新版の修正目当てか。失礼

990:デフォルトの名無しさん
17/11/27 17:21:44.79 hfMnpxmx0.net
>>968
痛々しいわ
SQLite関数を使う上での依存関係は
PHPコア -> php_sqlite3モジュール -> SQLite3ライブラリ
なんだから,
PHPコア -> php_sqlite3モジュール : 実行時にphp.iniの設定を見てロード
php_sqlite3モジュール -> SQLite3ライブラリ : php_sqlite3モジュールのビルド時に静的に組み込み
で何も矛盾してない
最初から最後までSQLite3ライブラリの最新版を使いたいなら「php_sqlite3モジュールを新しいSQLite3ライブラリを使って再ビルドしろ」が結論

991:デフォルトの名無しさん
17/11/27 19:07:02.53 pbeBNwkp0.net
>>973
3.21.0で追加された、transaction内でのATTACH/DETACHがあれば、
スレリンク(db板:663番)
に書いたtempの手法が使えるようになる。
ただ、今は、それ以前に、file_put_contentsでarchive用のjsonファイルを静的に作成する方法を試している。
速度は10倍ほど出ている。(DBに書くと40-60msかかるが、ファイルなら3-4ms)
今は本当にこれでいけるか、こちらに一本化すべきかを考えているところ。
(archiveは動的側面が全くないはずなのでいけるはずだが、運用上問題がないか?)

>>974
> 痛々しいわ
お前がな。最近この手の馬鹿は増えたが。
まあ永久に無知なままでいろ。

992:デフォルトの名無しさん
17/11/27 21:04:12.30 hfMnpxmx0.net
>>975
誤解してるわけでもなさそうだしまぁいいや
実際ビルドし直さずに最新版使えるならそれがベストではあるしな
是非成功させて勉強させてくれ

993:デフォルトの名無しさん
17/12/14 18:31:35.65 O42iwrkx0.net
php pdo mysql について質問です。
ローカルのxampp環境でinsert時にexceptionを吐いているのですが、サーバーのlinux環境ではexceptionを吐きません。
接続直後に
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
としているのですが、環境によってexceptionをthrowしない場合ってあるのでしょうか?
この問題は非常に質が悪く、$stmt->errorCode();で取得できませんし、$stmt->rowCount();で1が返ってきてしまいます。
エラーログには出力されているようです。
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'hogehoge' in ...
どうやったらexceptionをthrowしてくれるようにできるのでしょうか?
また、throwは諦める場合、エラーを検出したいのですがどうやったら良いでしょうか?

994:デフォルトの名無しさん
17/12/14 18:54:42.13 O42iwrkx0.net
なんか分かった気がします。
prepare? execute? がエラーを throw していたのですが、
それらをコールしている関数の外で try catch していたので、そこまで到達していなかったようです。
php.ini の設定なんですかね�


995:H とりあえず自己解決しました。 ありがとうございました。



996:デフォルトの名無しさん
17/12/14 21:55:30.52 c3uOfk7qM.net
解決したからいいけど、XAMPP環境での開発はお勧めできん
WindowsでもMacでもDocker使うなり仮想つかうなりで、
本番環境とほぼ同じ状態で開発しないと
PHPのバージョンや組み込まれてるライブラリ、php.iniもすべて合わせれば
そんなエラーで時間潰すこともまずなかろう

997:デフォルトの名無しさん
17/12/14 23:08:01.53 kcFY4zVmM.net
phpのフレームワークにララベル使おうかと思ってるんだけど、なんか他に良いフレームワークってあるの?

998:デフォルトの名無しさん
17/12/15 00:18:58.55 zZ0+kx4X0.net
個人的にはLaravelが一番いいと思うよ
FuelPHPとかPhalconとか最近はあまり聞かなくなったな

999:デフォルトの名無しさん
17/12/17 12:52:10.72 hlhRQlj10.net
>>979
XAMPP全く関係ないじゃん。ヴァカなの?

1000:デフォルトの名無しさん
17/12/19 01:55:46.54 lVjWNMP2a.net
WindowsのファイルシステムのエンコードはUTF-16 らしいですが
scandirで取得したファイル名はUTF-8になっています
これはPHPが内部で変換してるのでしょうか?

1001:デフォルトの名無しさん
17/12/19 10:43:30.09 lVjWNMP2a.net
Win10のコマンドラインからPHPを実行してUTF-8の文字列を表示すると
文字化けせずに表示されました
Win7以前はSJISに変換してから表示しないと化けたはずです
Win10のコマンドラインのエンコードはUTF-8になったのでしょうか?
だとすれば、コマンドライン=SJIS、を前提にして書かれたコードは
問題が出てきますよね
現に出ているから調べ始めたのですが・・

1002:デフォルトの名無しさん
17/12/19 12:01:10.63 lVjWNMP2a.net
バッチファイルからUTF-8文字列を出力するとやはり化けたので
WindowsではなくPHP側の問題かと思って検索したらありました
Windows版 PHP 7.1 で日本語パス(パス文字列のエンコーディング)が
対応されることによる影響
URLリンク(qiita.com)

1003:デフォルトの名無しさん
17/12/19 12:43:11.61 o48rTZ2B0.net
windows10が今手元にないからうまく答えれないけど、
コマンドラインでchcpってうってみて文字コード確認してみればいいんじゃない?

1004:デフォルトの名無しさん
17/12/19 13:15:06.92 1yPg30uza.net
ありがとうございます
しっかり932って表示されました

1005:デフォルトの名無しさん
17/12/20 09:16:36.60 +UrT0jgrM.net
>>982
はあ? あるじゃん
本番環境と開発環境の構成がずれててエラー起きてるんだから

1006:デフォルトの名無しさん
17/12/20 13:31:42.83 Wkwa3Cn2a.net
自分もXAMPPを使っているのですが
MySQLのデフォルトがInnoDBになっていたのでそのまま使っていたのですが、
データベースが壊れました
innodb_force_recoveryオプションを使って修復してもまたすぐ壊れます
MyISAMの時はmyisamchkにかければそれで直っていたのに。
InnoDBは同時アクセス対策の機能が豊富ですが
同時アクセスがさほど想定されない場合は
シンプルで堅牢なMyISAMを使うべきなのでしょうか?

1007:デフォルトの名無しさん
17/12/20 13:38:21.86 xHqi669x0.net
>さほど想定されない
dbの形式以前に、ロックをしない構文構造に問題があるのでは?

1008:デフォルトの名無しさん
17/12/20 13:45:16.71 Wkwa3Cn2a.net
ロックですか
していませんでした
MyISAMの時と同じ書き方をしていました
InnoDBではそういうのがいるんですね
ありがとうございます

1009:デフォルトの名無しさん
17/12/20 14:51:09.36 Xzv3JYGc0.net
InnoDBが壊れるってそうそう起きないだろ
ロック云々の人為的ミスで壊れるなんて今はまずないと思うけど
そのXAMPPのMySQLのバージョンいくつか知らんが、
5.1とか使ってるなら5.7に上げるのがいいと思うが
MyISAMにするってのはかなりズレてると思うよ

1010:デフォルトの名無しさん
17/12/20 15:34:56.61 8R4SVzVb0.net
>>3の修正案
関連リンク
■PHPマニュアル    URLリンク(www.php.net)
■日本PHPユーザ会  URLリンク(www.php.gr.jp)
■PHPNG        URLリンク(wiki.php.net)
■メーリングリスト   URLリンク(ml.php.gr.jp)
(以下英語)
■公式リポジトリ URLリンク(git.php.net)
■PHP-RFC URLリンク(wiki.php.net)
■PECL URLリンク(pecl.php.net)
■Composer URLリンク(getcomposer.org)
■Packagist URLリンク(packagist.org)
■Zend Tech. Ltd. URLリンク(www.zend.com)
フレームワーク(一部)
■Zend Framework  URLリンク(framework.zend.com)
■Symfony   URLリンク(symfony.com)
■Laravel URLリンク(laravel.com)
■CodeIgniter URLリンク(codeigniter.com)
■Yii URLリンク(www.yiiframework.com)
■FuelPHP URLリンク(fuelphp.com)
■CakePHP URLリンク(cakephp.org)
テンプレートエンジン(一部)
■Twig URLリンク(twig.symfony.com)
■Blade URLリンク(laravel.com)

1011:デフォルトの名無しさん
17/12/20 15:38:27.23 8R4SVzVb0.net
>>993 >>3
スペース直した
関連リンク
■PHPマニュアル    URLリンク(www.php.net)
■日本PHPユーザ会  URLリンク(www.php.gr.jp)
■PHPNG        URLリンク(wiki.php.net)
■メーリングリスト   URLリンク(ml.php.gr.jp)
(以下英語)
■公式リポジトリ     URLリンク(git.php.net)
■PHP-RFC       URLリンク(wiki.php.net)
■PECL          URLリンク(pecl.php.net)
■Composer       URLリンク(getcomposer.org)
■Packagist        URLリンク(packagist.org)
■Zend Tech. Ltd.    URLリンク(www.zend.com)
フレームワーク(一部)
■Zend Framework   URLリンク(framework.zend.com)
■Symfony        URLリンク(symfony.com)
■Laravel         URLリンク(laravel.com)
■CodeIgniter       URLリンク(codeigniter.com)
■Yii            URLリンク(www.yiiframework.com)
■FuelPHP        URLリンク(fuelphp.com)
■CakePHP        URLリンク(cakephp.org)
テンプレートエンジン(一部)
■Twig           URLリンク(twig.symfony.com)
■Blade          URLリンク(laravel.com)


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch