【PHP】下らねぇ質問はここに書き込みやがれ 8at TECH
【PHP】下らねぇ質問はここに書き込みやがれ 8 - 暇つぶし2ch797:デフォルトの名無しさん
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)

1012:デフォルトの名無しさん
17/12/20 18:37:45.96 Ahhn3Ak50.net
次スレ
【PHP】下らねぇ質問はここに 9
スレリンク(tech板)

1013:デフォルトの名無しさん
17/12/20 18:38:40.73 Ahhn3Ak50.net
996

1014:デフォルトの名無しさん
17/12/20 18:39:17.00 Ahhn3Ak50.net
997

1015:デフォルトの名無しさん
17/12/20 18:39:47.24 Ahhn3Ak50.net
998

1016:デフォルトの名無しさん
17/12/20 18:40:27.20 Ahhn3Ak50.net
999

1017:デフォルトの名無しさん
17/12/20 18:40:55.62 Ahhn3Ak50.net
1000

1018:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 280日 17時間 59分 33秒

1019:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています


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