【PHP】下らねぇ質問はここに書き込みやがれ 8at TECH
【PHP】下らねぇ質問はここに書き込みやがれ 8 - 暇つぶし2ch596:デフォルトの名無しさん
17/09/06 04:03:33.47 /AYrWRAX0.net
IP192.168.1.1/24を192.168.1.1-192.168.255.255?に直したいのです

597:デフォルトの名無しさん
17/09/06 08:01:05.65 dNCjYifFM.net
正規表現とNet_IPv4を組み合わせて書けばできると思う

598:デフォルトの名無しさん
17/09/06 11:18:38.46 /M6wkDL00.net
>>585
PHPには long2ip() と ip2long() という便利な組み込み関数があるので
それとビット演算子を使えば比較的簡単にできると思う
$cidr = '192.168.1.1/24';
list($ip, $prefix) = explode('/', $cidr);
var_dump($ip . '/' . long2ip(0xFFFFFFFF << (32 - $prefix)));
// 俺にはこの程度の処理にPEARを使う理由と正規表現をどこで使うかがよく分からない

599:デフォルトの名無しさん
17/09/06 11:24:02.99 /M6wkDL00.net
>>580
というかそれまでMySQLでやってたような簡単な案件は
もう何年か前からとっくにMarinaに移行しちゃったけどなぁ
Oracleに買収された時点でこうなる事は予想してた人も多いと思う
PHPならPDO使ってれば何も修正するところなんて無いし

600:デフォルトの名無しさん
17/09/06 13:14:48.52 /AYrWRAX0.net
>>587
ありがとうございました

601:デフォルトの名無しさん
17/09/06 16:11:20.28 /M6wkDL00.net
>>589
>>585の内容を
192.168.1.0/24 ⇒ 192.168.1.0/255.255.255.0
という話と読み間違えてしまい
>>587のコードを書いたのだけどこれで良かった?
192.168.1.0/24 ⇒ 192.168.1.0 - 192.168.1.255
とするなら
$cidr = '192.168.1.0/24';
list($ip, $prefix) = explode('/', $cidr);
$ipLongStart = ip2long($ip);
$ipLongEnd = $ipLongStart + pow(2, 32 - $prefix) - 1;
var_dump($ip . ' - ' . long2ip($ipLongEnd));
流れはこんな感じ
よく読んでなくて申し訳ない

602:デフォルトの名無しさん
17/09/10 15:02:47.71 tcGc4Q6l0.net
// ディレクトリ階層以下のコピー
// 引数: コピー元ディレクトリ、コピー先ディレクトリ
// 戻り値: 結果
function dir_copy($dir_name, $new_dir)
{
if (!is_dir($new_dir)) {
mkdir($new_dir);
}
if (is_dir($dir_name)) {
if ($dh = opendir($dir_name)) {
while (($file = readdir($dh)) !== false) {
if ($file == "." || $file == "..") {
continue;
}
if (is_dir($dir_name . "/" . $file)) {
dir_copy($dir_name


603: . "/" . $file, $new_dir . "/" . $file);} else { copy($dir_name . "/" . $file, $new_dir . "/" . $file);} } closedir($dh); } } return true; } このコードの引数はどう指定したら動くのでしょうか? $dir_name = '../x'; $new_dir = '../y'; ↑こう指定したりFTPのフルパスを指定したりしましたが全く動く気配がありません、、 よろしくお願いいたします。



604:デフォルトの名無しさん
17/09/10 17:07:03.98 DbuZOcLu0.net
文字と数値を相互変換すれば、元に戻るはずなんですが、
これは一方がtrueにならないですが、原因わかりますか?
packの"v"は、16bit-Little-Endianの指示ですが、
元に戻るかはソースコードのエンコードも関係しますか? しないはずだとおもってます。

$moji = "亜";
$su = unpack("v", "亜"); $su = $su[1];
$moji2 = pack("v", $su);
$su2 = unpack("v", $moji2); $su2 = $su2[1];
echo "su==su2? "; var_dump($su==$su2);
echo "moji==moji2? "; var_dump($moji==$moji2);

605:デフォルトの名無しさん
17/09/10 17:08:32.93 DbuZOcLu0.net
上の修正しました

$moji = "亜";
$su = unpack("v",$moji); $su = $su[1];
$moji2 = pack("v", $su);
$su2 = unpack("v", $moji2); $su2 = $su2[1];
echo "su==su2? "; var_dump($su==$su2);
echo "moji==moji2? "; var_dump($moji==$moji2);

606:デフォルトの名無しさん
17/09/10 18:02:41.43 hHLCpQAf0.net
>>592
UTF-8なら日本語は3byteで符号化される
亜は\xE4\xBA\x9Cだからリトルエンディアンのunsigned shortでunpackすると先頭2byte分の0xBAE4 = 47844だけとれる(残りは1byteしかないからunsigned shortでない=>無視)
これをリトルエンディアンのunsigne shortとしてpackしようとすると0xBAE4しかないから\xE4\xBAになる
したがって符号化が偶数bytesなら戻ることが期待されるがそもそもunpackの用途が間違ってる

607:デフォルトの名無しさん
17/09/10 18:18:05.52 DbuZOcLu0.net
>>594
サンクス。理解しました。くわしくありがとうございます。

608:デフォルトの名無しさん
17/09/13 04:50:40.83 xiEJvESo0.net
Seesaaブログでは、blogger,metaWeblog,mt 互換のXML-RPC APIをサポートしております。
URLリンク(faq.seesaa.net)
とあるんだけど、いいライブラリない?
packagistで調べてもどれがいいのかさっぱりわからん。

609:デフォルトの名無しさん
17/09/17 03:12:57.17 MBf3v3660.net
phpのrename関数ではなく、
system関数でwindowsのrenを使いたいのですがどう書けばよいのでしょうか?

610:デフォルトの名無しさん
17/09/17 05:06:59.87 NGMuhuel0.net
自分で言うてもうてるやん

611:デフォルトの名無しさん
17/09/20 05:30:54.15 uxx4ir4xa.net
phpをwindowsで自動化処理するのに使っていたんだが(使い慣れてるから)
node.jsでも出来るんじゃね?と思って書いてみたら出来た
イベント駆動型の設計思想が染み渡っているから書き心地がモダンで気持ちいい
phpもそろそろ寿命だよね?

612:デフォルトの名無しさん
17/09/20 07:01:36.97 wgVu7EJP0.net
自動化処理とかなんでもいいだろ
書き心地の問題じゃねえな
そのプラットフォームで最初から使えるかどうかの問題だ
windowsの場合どちらもあてはまらないわけで実にどうでもいい

613:デフォルトの名無しさん
17/09/20 08:45:24.51 hP30PlfN0.net
自動化処理って例えばどんな処理?

614:デフォルトの名無しさん
17/09/20 10:18:28.79 uxx4ir4xa.net
JavaScriptはPHPにあるような気軽さもあるし
それでいて育ちの良さもある
気取ったところのない、優秀ないい子って感じ
PHPも頑張ってたけど、もともとが魔改造されたPerlだからねぇ
MySQLの時代の言語だったのだ

615:デフォルトの名無しさん
17/09/20 16:01:01.72 UsXhYfbU0.net
>phpもそろそろ寿命だよね?
WordPressが存在する限り、PHPが無くなるわけない。

616:デフォルトの名無しさん
17/09/20 18:21:07.42 iy+cXLwo0.net
質問です。
PHP5.3でpostgresql9.4のクエリを書いたのですが、
テーブル名, 列名が日本語なのですが、
pgAdminIII上では日本語部分を""で囲めば動作するのですが、
PHP上だとrelation "テーブル名" does not exist となってしまいます。
$sql = "SELECT * FROM テーブル名"; //ダメ
$sql =

617:デフォルトの名無しさん
17/09/20 18:22:28.53 iy+cXLwo0.net
書き掛けで送信してしまったので再送
質問です。
PHP5.3でpostgresql9.4のクエリを書いたのですが、
テーブル名, 列名が日本語なのですが、
pgAdminIII上では日本語部分を""で囲めば動作するのですが、
PHP上だとrelation "テーブル名" does not exist となってしまいます。
$sql = "SELECT * FROM テーブル名"; //ダメ
$sql = "SELECT * FROM \"テーブル名\""; //ダブルクォートで囲ってエスケープしてもダメ
どのように書けばいいのでしょうか?
よろしくお願いします。

618:デフォルトの名無しさん
17/09/20 18:40:43.67 sgJ5KlC6a.net
文字列をシングルクォートで囲んでテーブル名をダブルクォートで囲んでもダメ?

619:デフォルトの名無しさん
17/09/20 18:42:00.70 7KzHzKme0.net
pgAdminIIIじゃ、win環境からだよね。
文字コードが postgresqlコンパイル時や設定と一致してないんじゃ無いの?

620:605
17/09/20 19:00:12.39 iy+cXLwo0.net
すいません。自己解決しました。
データベースのEncodingがSQL_ASCII になっていたからでした。
EncodingをUTF-8にして作り直したら
クォーテーションで囲まなくても動作しました。
ありがとうございました。

621:デフォルトの名無しさん
17/09/21 09:40:04.80 lfGfuJSn0.net
PHPは寿命どころか7で速くなったしセキュリティも改善されてきてるし
いい感じでないの

622:デフォルトの名無しさん
17/09/21 10:25:01.79 huYSseyKa.net
まぁJavaScript界隈と較べれば流れが遅い感はあるがどちらかといえば向こうが速過ぎる
フロントエンドとバックエンドで両方使うことが多いから比較してしまうのは分かるが

623:デフォルトの名無しさん
17/09/23 10:23:03.44 K87ZdYGi0.net
$obj = new stdClass;
$obj->hello = function() {
&nbsp;&nbsp;return "Hello World\n";
};
echo $obj->hello();
こういう書き方出来ないですか?

624:デフォルトの名無しさん
17/09/23 10:54:33.00 eYrz81G90.net
URLリンク(qiita.com)

625:デフォルトの名無しさん
17/09/23 11:07:31.38 K87ZdYGi0.net
>>612
ありがとうございます
stdClassじゃなくて無名クラス使うんですね
7はまだ導入できないので別の方法にしようと思います

626:デフォルトの名無しさん
17/09/23 11:07:33.25 CVbArZcy0.net
>>611
javascriptかよ
できないだろ普通

627:デフォルトの名無しさん
17/09/23 12:21:32.68 7ekNuEcJa.net
すごい感性だな

628:デフォルトの名無しさん
17/09/23 12:39:55.15 +Iwgt1nH0.net
>>611
URLリンク(ideone.com)

629:デフォルトの名無しさん
17/09/23 17:48:18.32 oX3foi7H0.net
$obj = new stdClass;
$obj->hello = function() { return "Hello World\n"; };
echo ($obj->hello)();
これは知らなかったな

630:デフォルトの名無しさん
17/09/23 19:19:16.21 X+9EjmZ60.net
なに、結局できるわけ?

631:デフォルトの名無しさん
17/09/23 20:39:16.95 +Iwgt1nH0.net
URLリンク(ideone.com)
こうしてやると見かけがJavaScriptっぽくなるな

632:デフォルトの名無しさん
17/09/24 00:58:26.35 tB2K64wQ0.net
スレ違いでしたら申し訳ありません
現在ワードプレスでサイトを作っていて
カスタム投稿に対して
サーバーから日付を取得して、今月だったらこの記事、来月の日付だったらこの記事というように条件分岐させた表示をさせたいです
別の箇所にはループ処理でカスタム投稿自体を表示させています
カスタム投稿投稿のうち、Aというタクソノミーを持つ投稿のみを対象にして
サーバーから取得した月と投稿月が同じものをモジュールクリックで表示、そうでないものはまとめてループ処理で取得させたいです
またカスタム投稿自体もタクソノミーで分けています
モジュールをクリックをする
→もしAというタクソノミーを持つ記事があったら
→サーバーから日付を取得
→取得した月(今なら9月)に投稿されているタクソノミーAの記事を取得
という形にしたいのですが書き方が全く思い浮かびません
お知恵をお貸しください

633:デフォルトの名無しさん
17/09/24 14:47:00.16 VatsPnR2a.net
WPで聞けよ

634:デフォルトの名無しさん
17/09/24 15:19:53.61 HTSoBxcb0.net
WP用のスレがあったんですね、失礼いたしました

635:デフォルトの名無しさん
17/09/24 21:57:03.16 u8f/hRUs0.net
Mysqlのカラムyearのレコードに $yearと入力しておきます
そして、PHP側で$year = xxxx;としておきます
これをPDOで値を呼び出した時に、レコードを変数に転換させる方法はないでしょうか?
普通に呼び出すと、ただの文字列としか認識してくれません。
なぜ、そんなことをしたいかというと、CSV出力の際のヘッダ部分をレコードとして
登録しておいたのですが、年数が可変なので、どうにかしたかったわけです。
無論、他の方法も考えてはいますが、もし、やり方次第で可能なら教えて欲しいです。
なお、ググってみたのですが、そんな阿呆なこと考える奴はいないのか、答えは出てきませんでした

636:デフォルトの名無しさん
17/09/24 22:29:04.81 GR7wHhZz0.net
URLリンク(php.net)
コレのこと?

637:デフォルトの名無しさん
17/09/25 01:38:24.44 mD+bXPPZ0.net
確かにアホっぽい
セキュリティホールにもなりかねないし

638:デフォルトの名無しさん
17/09/25 09:43:12.67 oQOcCvcr0.net
そのアホな思いつきのままだと evalになっちまう
たんに置換かけりゃいいだろ

639:デフォルトの名無しさん
17/09/25 13:41:45.15 s/BxTNWl0.net
>>623
ちょっと何言ってるかわかんない
insertする前に年数を整形すりゃいいだけっしょ
なんでそんな意味不明で面倒なことするかな

640:デフォルトの名無しさん
17/09/25 21:03:17.46 H7OZHsHG0.net
>>626
実際、そうしました
>>627
出力が必要な帳票のヘッダが不定数だったからです

641:デフォルトの名無しさん
17/09/26 02:06:10.20 iIk2lbGJ0.net
Winサーバに.NETのアプリ置いて、それを外部の端末からブラウザ経由で操作したいんだけど出来るかな?
或いはPHPからAjaxとか使ってる動的ページもそのままブラウザでアクセスしたみたいにエミュレートしたい。
PhantomJSとかあるけど安価なレンタルサーバにインストールできない可能性もあるので前者を考えてるんだけど。

642:デフォルトの名無しさん
17/09/26 02:06:29.86 iIk2lbGJ0.net
age

643:デフォルトの名無しさん
17/09/26 02:19:28.45 hdyDplTp0.net
何言ってるのか全然分からねぇ
その文脈で何でPhantomJS出てくるんだ?

644:デフォルトの名無しさん
17/09/26 02:47:00.78 iIk2lbGJ0.net
>>631
.net使えばブラウザコントロールとかあるので簡単にAjaxとか使ってるページでも動作させれるので
間接的に動かせないかなと思ってて。
それが無理なら直接PHPでJavaScript動かさないといけないからPhantomJSとかになるのかなと。

645:デフォルトの名無しさん
17/09/26 03:18:37.30 hdyDplTp0.net
こういうこと
* クライアント(ブラウザ) -[ネットワーク]-> サーバ(IIS etc.) -> .NETアプリケーション
をしたいと読めるわけだが, .NETからブラウザ操作する話がどうして出てくるのかとかPHPからJavaScript動かす話がどこに入るのか説明してくれ

646:デフォルトの名無しさん
17/09/26 03:32:01.32 iIk2lbGJ0.net
> クライアント(ブラウザ) -[ネットワーク]-> サーバ(IIS etc.)
だとAjax使ってるページのエミュレートが面倒なので
.net使ってAjaxページも問題なく動作するプログラムをサーバに置いて
それをクライアントがアクセスした時に上手く動かせる仕組みを作れないかなと。
直接サーバサイドのPHPでAjaxページが簡単に動作させられるならそれに越した事はないけど。

647:デフォルトの名無しさん
17/09/26 03:39:41.11 hdyDplTp0.net
もうさ, [Winサーバ], [.NETアプリ], [外部端末のブラウザ], [PHP], [Ajaxとか使ってる動的ページ]使って何がしたいのか図示してくれよ

648:デフォルトの名無しさん
17/09/26 03:50:19.75 mvSUAuA/0.net
Docker Hub で、公式イメージでも探せ
それか、VirtualBox, Vagrant, Chef など

649:デフォルトの名無しさん
17/09/26 04:20:53.63 iIk2lbGJ0.net
じゃ質問をシンプルにするよ。
PHPでアクセスしてAjax使ってる動的ページを正しく動かす方法で
一番シンプルなものってなにかな?
色々調べてPhantomJSがあるのは分かったけど
レンタルサーバによってはインストールできない可能性があるのでその問題がありそう。

650:デフォルトの名無しさん
17/09/26 06:31:31.27 M58WkJeo0.net
ちょっと調べて見たければphp製のjavascriptエンジンはないので無理ではないかなぁ

651:デフォルトの名無しさん
17/09/26 06:32:15.60 M58WkJeo0.net
ちょっと調べて見たければ→ちょっと調べてみたけれど

652:デフォルトの名無しさん
17/09/26 08:09:15.81 iIk2lbGJ0.net
>>638
そうか。しょうがないので自分のPCにPhantomJSをインストールして使う事にしてみたんだけど
今度はどうやってもステータスが0で困ってる。。
file_get_contents()だと表示されるのでPhantomJSの部分で問題が起こってるんだと思うけど。
ここの通りしたんだけど。$response->getStatus()で確認すると常にゼロで。
URLリンク(pg.kdtk.net)
PHPは5.6、Apacheは2.4、両方64bit
PhantomJSはcomposerで2.1.1をインストール

653:デフォルトの名無しさん
17/09/26 09:50:15.42 iIk2lbGJ0.net
自己解決
落としたバイナリがぶっ壊れてた。。

654:デフォルトの名無しさん
17/09/26 13:57:41.18 cwFxqDCFM.net
Headless Chromeもあるし
どうしてもPHPでやりたいってんならv8拡張がある
この場合ブラウザ側API全部再実装が必要だが

655:デフォルトの名無しさん
17/09/26 14:11:14.60 iIk2lbGJ0.net
>>642
PhantomJS試してるんだけどformをsubmitする処理とかだとなんか面倒そうなので
やっぱり他のでやった方がいいのかもしれない。
Headless Chrome?それも後で試してみるよ。ありがとう。

656:デフォルトの名無しさん
17/09/27 05:11:15.19 EHqNXxRy0.net
>>643
casperjsはphantomjsより扱いやすいよ

657:デフォルトの名無しさん
17/09/28 15:18:44.51 fKb4VnmR0.net
>>628
最後の1行読んだ感じでは
DBの正規化という言葉すら理解できてなさそうな臭いがするので
DBの設計から勉強し直してみてはどうだろうか?
根本的なところからおかしいので誰もまともに答えられないかと

658:デフォルトの名無しさん
17/09/30 20:51:24.62 CiKOls/60.net
フレームワーク、例えばcakePHPを習得するまでに
みんなどのくらいの期間かかった?
フレームワーク初体験で

659:デフォルトの名無しさん
17/09/30 22:47:17.93 h2RlFi9m0.net
新しい言語や技術は書籍で入門するのが当たり前という人にとっては
フレームワークはどれもたいへんだよ。

660:デフォルトの名無しさん
17/10/01 06:09:17.97 Ae9q61k/0.net
意欲の問題では
フレームワークは別になくてもいいわけで
なくてもいいものをわざわざ覚えるのかなんて思いながらやってると
なかなか身につかない
仕事でどうしても必要だとかそういう状況なら2週間で覚えるよ

661:デフォルトの名無しさん
17/10/01 15:24:34.49 mkxY3wW+0.net
>>646
初めてのフレームワークでCakePHPなんか触った時点で迷宮に迷い込んで成長止まる。

662:デフォルトの名無しさん
17/10/01 20:10:56.14 GM1LmHU+0.net
PHPって将来あるの?5年もしたらもうオワコンじゃないの?

663:デフォルトの名無しさん
17/10/01 20:19:14.76 Ae9q61k/0.net
言語を意識するような時代が終わりはじめてるのでは
一定のユーザがいる状態であれば安泰だよ

664:デフォルトの名無しさん
17/10/01 20:24:12.95 qGSPhC6b0.net
>>650
そう思うならNode.jsでも使っとけばいいんじゃね?

665:デフォルトの名無しさん
17/10/01 20:43:25.47 xDL2/91Y0.net
PHPが終わるとは思わん
ただタイプヒンティング強化してるからジェネリクスが欲しい
RFCにはあるけど誰も実装書かないんだろうなー

666:デフォルトの名無しさん
17/10/01 20:51:44.63 ycCVTNJ30.net
世界中にある動的Webサイトの過半数がPHPで動いてるんでしょ?
WordPressも含めて

667:デフォルトの名無しさん
17/10/01 20:53:18.27 qGSPhC6b0.net
なんか知らんけど恨みがあるんじゃね?PHPに

668:デフォルトの名無しさん
17/10/01 21:39:11.63 eMQOw+pd0.net
>>649
んじゃ、初めてのフレームワークでおすすめって何よ?w

669:デフォルトの名無しさん
17/10/01 22:53:55.25 UOMkiKCA0.net
>>656
CodeIgniter

670:デフォルトの名無しさん
17/10/01 23:04:09.52 UOMkiKCA0.net
>>654
むしろWordPressだけで過半数以上
これらのユーザーがPHPを意識してるとは思えないが
世界中で稼働しているWEB言語のシェアとしてはPHPは圧倒的
逆にWordPressの代替となるアプリが流行すればPHPは一気に消え失せる可能性はある
とはいえWordPressのようなパッケージアプリを除いた純粋にPHPを開発言語として利用しているシェアも
けっこう高いはずなので急にRubyやPythonやその他の新興言語に入れ替わるもんじゃないとは思う
その他の言語がなぜ入り込んでこないかというと、Perlの頑張りがあるからじゃないかと密かに思ってる
派遣を即席で育てて現場に投入できるっていう利点もあるから少なくとも日本だと衰退しないんじゃないかな

671:デフォルトの名無しさん
17/10/02 01:21:56.57 VyNVpuqG0.net
Laravelって誰も触れんな
日本では流行ってないか?
めちゃくちゃ使いやすいと思うけど

672:デフォルトの名無しさん
17/10/02 09:30:10.62 yY+xy6Qa0.net
>>658
代替となるアプリもPHPで作られるにきまってんじゃんw
PHPはフレームワークを作るための言語だよ?
なお、オレは最近は静的型付き言語ばかり書いている。とにかく、楽。

673:デフォルトの名無しさん
17/10/02 09:53:14.55 T1SDxagl0.net
おわったっていいじゃん
一生を捧げる言語を一つ選ぶような話じゃないでしょ。
今日の昼はA定食にしようかB定食にしようかって話で、B定食が今後なくなってもA定食食べればいい。
それより食堂がなくなる心配したほうがいい

674:デフォルトの名無しさん
17/10/02 21:00:14.97 fIRtXeXL0.net
ec-cubeのソースを見ていたら
require_once が書かれてなくて、useだけ書かれているファイルが沢山ありました。
なんで、エラーにならないの?

675:デフォルトの名無しさん
17/10/02 21:17:59.72 T8QXjIur0.net
>>662
composer.jsonのautoloadセクションにオートローディングの設定書いてりゃrequire_onceが必要なのはエントリポイントだけ

676:デフォルトの名無しさん
17/10/02 21:28:04.49 V+ucx/B30.net
ソース見ないとわからんけど、__autoload とか使ってるんじゃ無い?

677:デフォルトの名無しさん
17/10/02 21:30:47.93 fIRtXeXL0.net
>>663
おー、わかった
サンクス

678:デフォルトの名無しさん
17/10/05 12:46:13.98 HZkkfHm10.net
テスト

679:デフォルトの名無しさん
17/10/05 13:00:26.21 HZkkfHm10.net
コード貼ると書き込めないようで・・・
URLリンク(ideone.com)
いずれも問題なく動作するのですが
mb系の関数ってどういうところで使うんでしょう?

680:デフォルトの名無しさん
17/10/05 13:48:00.22 PIRKucuZ0.net
strlenの値見てみればいいじゃん

681:デフォルトの名無しさん
17/10/07 03:33:19.78 E8QcxmPR0.net
cakeのヘンなURLはみんな一々普通の書式に書き換えてるの?
/index/limit:3/page:2 ←キモい
index/?page=2    ←普通こんな感じだよね
フレームワークってたいへんだね

682:デフォルトの名無しさん
17/10/07 04:28:12.75 n7/qhps90.net
動けばいいのよ

683:デフォルトの名無しさん
17/10/07 07:48:18.63 gc7GFpiH0.net
>>669
むしろ下のURLの方が汚らしいんじゃね

684:デフォルトの名無しさん
17/10/07 08:58:47.62 CQDT89una.net
>>671
あまり言ってやるな

685:デフォルトの名無しさん
17/10/08 06:58:12.38 CWK8ZE8n0.net
>>669
反吐が出そうなスタイルから一般的なスタイルにしたきゃ
paramType を querystring にすりゃいい

686:デフォルトの名無しさん
17/10/08 19:54:00.65 31mgpPhM0.net
>>673
㌧クス 直った。あー気持ち悪かったw

687:デフォルトの名無しさん
17/10/08 21:19:07.77 Uwv5PG/i0.net
静的Pathにするのって、Google対策だっけ?

688:デフォルトの名無しさん
17/10/09 12:03:26.40 YlLc/E6M0.net
>>659
世界ではLaravel主流になろうとしてるけど、ちょこちょこバージョン上げすぎなんじゃ
日本語翻訳された頃には次のバージョン出てたらかなわん

689:デフォルトの名無しさん
17/10/09 13:13:37.43 h4S41BKFa.net
cake3も同じだわ

690:デフォルトの名無しさん
17/10/10 17:56:47.10 xdjFdlld0.net
Symfonyはどうなの?
合計10億ダウンロードを達成したようだが
URLリンク(symfony.com)

691:デフォルトの名無しさん
17/10/11 03:47:35.08 KMdfjBPl0.net
Symfonyは文字数が多くなる気がして
個人的にはイマイチ子

692:デフォルトの名無しさん
17/10/13 20:01:46.42 s758Uzmra.net
phpのプレイグラウンドサイトでいいところがあれば教えて下さい
URLリンク(www.tehplayground.com)
とりあえず検索して見つかったここを使ってますが
もっといいところありますか?

693:デフォルトの名無しさん
17/10/13 20:02:50.62 s758Uzmra.net
>>678
すごいスピードで増えてますね
日本の借金のようです

694:デフォルトの名無しさん
17/10/13 21:02:49.56 NQNcqrHf0.net
Mac Sierra + XAMPPでCakePHP3のインストールが出来ないのだけど、
みんなどうやってインスコしてるの?
composerはインスコできたけど、intlが入らない
バージョン2はコピペで済んだから楽だったのにな~・・・

695:デフォルトの名無しさん
17/10/13 21:28:05.09 s758Uzmra.net
>>667
ここ良さそうですね
php以外にも大量に書けますし

696:デフォルトの名無しさん
17/10/13 23:35:56.43 s758Uzmra.net
git for windowsを入れたら
gitbashの中でphpも実行できるので便利ですね?
コマンドラインと大差ないといえばないですが
gitbashは任意のフォルダから始められるところがいいです

697:デフォルトの名無しさん
17/10/14 04:10:36.29 TNxvk7D00.net
sourcetreeでいいよ
どうしてもコマンド打ちたいなら別だけど

698:デフォルトの名無しさん
17/10/14 07:17:33.63 sv7zl76da.net
atlassianってtrello買収のニュースで聞いたことがありましたが
こういうものを作っていたんですね
とりあえずインストールしてみました

699:デフォルトの名無しさん
17/10/14 16:05:22.67 sv7zl76da.net
正規表現では一重引用符、二重引用符ともに
エスケープする必要がないと知りました
エスケープをしても問題が出ないので今まで気づきませんでした
preg_match('/\"/','"',$matches);
var_dump($matches);

preg_match('/"/','"',$matches);
var_dump($matches);

どちらの結果も同じになります
何故エスケープする必要のない引用符をエスケープしても
問題が出ないのでしょうか?

700:デフォルトの名無しさん
17/10/14 18:01:08.37 sv7zl76da.net
よく考えてみると、引用符をエスケープしなければいけないのは、
それが文字列と外界との境界を形成する特殊な文字だからで、
正規表現では文字列の境界をデリミタが形成するので、
引用符は普通の文字と全く変わりがない、
だから他の「普通の文字」をエスケープしても同じことではないか、
と思ってqで試してみたらやはり同じ動作になりました
preg_match('/\q/','q',$matches);
var_dump($matches);
正規表現エンジンは、
意味のないエスケープ文字
を単に無視するように出来ているのでしょうか?

701:片山博文MZ
17/10/14 18:22:55.67 WLIJLkznd.net
エスケープされた文字列を解釈するのはPHPのエンジンであり、解釈された文字列は、PHPの文字列になる。
正規表現エンジンは、�


702:桝RPHPの文字列を、正規表現を表す文字列として解釈する。 最初の解釈で、無意味なエスケープはバックスラッシュが無視されるのだから、何も悪いことは起きない。



703:デフォルトの名無しさん
17/10/14 18:34:55.85 sv7zl76da.net
たしかにPHPの場合正規表現もまず最初に普通の文字列に入れられるので
>>688の言い方は適当ではなかったです
やはり正規表現エンジンは無意味なエスケープをただ無視するように作られているのですね
ありがとうございました

704:デフォルトの名無しさん
17/10/15 11:18:23.57 CEYZTvIx0.net
PHP初心者です。
PHPの実行モデルがイマイチ分からないのですが、
これはイベントモデルではなくただのテンプレートエンジンで、
前回の結果(または鯖上でのコンテキスト)を引き継ぐことなく、
毎回毎回ゼロから構築する必要があるって認識で合っていますか?
具体的には、Webページ全体で使われるクラスやdefine()している場合、
それらを毎回includeする必要があるのでしょうか?(今のところそう見えます)
クライアントJavaScriptの場合はページ遷移がない限り一度構築した物は使えます。
Nodeは使ったことがないですが、多分同じです。
(これらはイベントモデルだからですが)
毎回毎回全構築となると、余分な構築を省かないと実行速度が気になります。
ドメイン全体で単一アプリを提供する場合は
PHPではなくNode等の方が向いているということなのでしょうか?
例えば、dbアクセス用にクラスを作った場合、
それぞれのWebページからはその全メソッドを使うことは通常あり得ません。
だからプログラム的に美しく一つのクラスに纏めるより、
フィールドを継承し、今使うメソッドだけの子クラスに無駄に分割した方が速いのか?とも思えます。
あるいはspl_autoload_register()した場合に、
名前参照だけではなくコンパイル済み状態で格納されるから速度上の問題はない、とかありますか?

705:デフォルトの名無しさん
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
好かれてない度


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