PHPに関する下らない質問用避難スレです。
まず読むこと【PHPマニュアル】
http://www.php.net/manual/ja/
前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 7
http://echo.2ch.net/test/read.cgi/tech/1478657006/
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
【PHP】下らねぇ質問はここに書き込みやがれ 8 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん 転載ダメ©2ch.net (ワッチョイ bfb2-csvI)
2017/03/15(水) 00:41:22.79ID:ko4BTSP20348デフォルトの名無しさん (ワッチョイ ddc2-OlK+)
2017/06/14(水) 14:13:39.40ID:gEXW+PhK0 「自作エンジンを作って」ってなんか頭痛が痛いみたいだ
気にしないでw
気にしないでw
349デフォルトの名無しさん (JP 0H6b-yTT2)
2017/06/14(水) 14:20:31.94ID:/XZF9UoWH その自作エンジンでええやん
350デフォルトの名無しさん (ワッチョイ 7d6c-Fz1p)
2017/06/14(水) 14:44:27.06ID:M56szTyh0 質問失礼します。
php7でサーバプログラムを作成中です。
HttpsRequestでデータを受けとってレスポンス、そのデータをWebSocketで別クライアントに返すという機能を実装したいのですが、
両方のポートで待ち受けるようなプログラムって実装可能なんでしょうか?
(1つのポートでも構いませんが、、、)
php7 + Apache で色々試したり、フレームワークのSilexを入れて試したりしましたが、
これってつまりプロセス間通信だったり、なにかしらのストレージに入れないと無理ですよね?
php7でサーバプログラムを作成中です。
HttpsRequestでデータを受けとってレスポンス、そのデータをWebSocketで別クライアントに返すという機能を実装したいのですが、
両方のポートで待ち受けるようなプログラムって実装可能なんでしょうか?
(1つのポートでも構いませんが、、、)
php7 + Apache で色々試したり、フレームワークのSilexを入れて試したりしましたが、
これってつまりプロセス間通信だったり、なにかしらのストレージに入れないと無理ですよね?
351デフォルトの名無しさん (JP 0H6b-yTT2)
2017/06/14(水) 15:38:38.63ID:/XZF9UoWH >>350
HTTPリクエストを受け取って処理する部分は、待ち受けする必要ないでしょ
リクエストを受け取って、何か処理して、WebSocketサーバにデータを送信する
WebSocketのサーバもPHPで書きたいなら、そこでは当然接続を待ち受ける必要がある
HTTPリクエストを受け取って処理する部分は、待ち受けする必要ないでしょ
リクエストを受け取って、何か処理して、WebSocketサーバにデータを送信する
WebSocketのサーバもPHPで書きたいなら、そこでは当然接続を待ち受ける必要がある
352350 (ワッチョイ 7d6c-Fz1p)
2017/06/14(水) 15:57:19.95ID:M56szTyh0 >>351
WebSocketは待ち受けて、HttpRequestは待ち受けない(Apatchまかせ)のであれば、データをWebSocketでクライアントに送信する際、確実にストレージなりを利用する事になります。
今回それをやりたく無いので、両方同じクラス内で待ち受けて処理できれば、クラス内の一時メモリを使いまわせるのになぁ。
と思った次第です。Silexで試した理由はそれです。
WebSocketは待ち受けて、HttpRequestは待ち受けない(Apatchまかせ)のであれば、データをWebSocketでクライアントに送信する際、確実にストレージなりを利用する事になります。
今回それをやりたく無いので、両方同じクラス内で待ち受けて処理できれば、クラス内の一時メモリを使いまわせるのになぁ。
と思った次第です。Silexで試した理由はそれです。
353デフォルトの名無しさん (JP 0H6b-m0Mh)
2017/06/14(水) 16:03:38.60ID:/XZF9UoWH >>352
> データをWebSocketでクライアントに送信する際、確実にストレージなりを利用する事になります。
え?なんで?
a.phpがHTTPリクエストを処理したなら、a.phpからWebSocketサーバはsocket通信だよ?
> データをWebSocketでクライアントに送信する際、確実にストレージなりを利用する事になります。
え?なんで?
a.phpがHTTPリクエストを処理したなら、a.phpからWebSocketサーバはsocket通信だよ?
354デフォルトの名無しさん (JP 0H6b-m0Mh)
2017/06/14(水) 16:10:17.81ID:/XZF9UoWH >>352
読み間違えてた
a.php: Apacheから呼び出される何かのリクエストを処理するコード
WebSocketサーバ:あるポートで待ち受ける、WebSocketプロトコルをしゃべるサーバ
のとき、a.phpはWebSocketクライアントだよ?
読み間違えてた
a.php: Apacheから呼び出される何かのリクエストを処理するコード
WebSocketサーバ:あるポートで待ち受ける、WebSocketプロトコルをしゃべるサーバ
のとき、a.phpはWebSocketクライアントだよ?
355350 (ワッチョイ 7d6c-Fz1p)
2017/06/14(水) 16:11:37.43ID:M56szTyh0 >>353
という事は、a.phpが呼ばれたらlocalhostに接続して送信切断という流れなんですね。
確かにそれでも可能です。
後から要件追加して申し訳ないですが、a.phpが短時間に大量に実行されるので、できれば接続と切断は繰り返したくないのがあります。
という事は、a.phpが呼ばれたらlocalhostに接続して送信切断という流れなんですね。
確かにそれでも可能です。
後から要件追加して申し訳ないですが、a.phpが短時間に大量に実行されるので、できれば接続と切断は繰り返したくないのがあります。
356350 (ワッチョイ 7d6c-Fz1p)
2017/06/14(水) 16:16:39.58ID:M56szTyh0 今試したら、WebSocketのsocket_acceptでHttpRequestを受け取れました。
httpもsocketも同じtcpだからacceptするんですね。目から鱗でした。
接続と切断を繰り返してしまいますが、これしかないですかねぇ。。。
httpもsocketも同じtcpだからacceptするんですね。目から鱗でした。
接続と切断を繰り返してしまいますが、これしかないですかねぇ。。。
357デフォルトの名無しさん (JP 0H6b-m0Mh)
2017/06/14(水) 16:18:14.83ID:/XZF9UoWH358デフォルトの名無しさん (JP 0H6b-m0Mh)
2017/06/14(水) 16:19:03.30ID:/XZF9UoWH >>356
つか、WebSocketが何者だか理解してるか?
つか、WebSocketが何者だか理解してるか?
359デフォルトの名無しさん (ワッチョイ 1532-Ell8)
2017/06/14(水) 16:19:16.79ID:3zsLXGHk0 まるで同一サーバで別プロセスが同一ポートでLISTENしているかのような書き方だけど、どこかに隠し情報があるんだろうなぁ
360デフォルトの名無しさん (ワッチョイ ddc2-OlK+)
2017/06/14(水) 16:21:41.56ID:gEXW+PhK0361デフォルトの名無しさん (ワッチョイ 0be3-ceo9)
2017/06/14(水) 16:24:58.32ID:mnieIMJY0 海外レンタルサーバーを借りたのですが
○○○.com/ にアクセスると
○○○.com/?i=1
というように、すべてのurlに ?i=1がくっついてくるのですが、これを取り払うには htaccessに何と書けば良いのでしょうか?
それとも他に方法がありますでしょうか?
○○○.com/ にアクセスると
○○○.com/?i=1
というように、すべてのurlに ?i=1がくっついてくるのですが、これを取り払うには htaccessに何と書けば良いのでしょうか?
それとも他に方法がありますでしょうか?
362デフォルトの名無しさん (ワッチョイ 1532-Ell8)
2017/06/14(水) 16:29:06.69ID:3zsLXGHk0 >>360
どのくらい久しぶりなのかによるけど、改めてsmarty使ってみたら?
「smarty遅い」といってもいろんな理由があるので、使う側の問題で遅いということもある。
他のエンジンがいいならbladeとかtwigとか。
もっとも、やっぱり自作最高やってなりそうな人にも見えるので、やるだけ損かもしれない。
どのくらい久しぶりなのかによるけど、改めてsmarty使ってみたら?
「smarty遅い」といってもいろんな理由があるので、使う側の問題で遅いということもある。
他のエンジンがいいならbladeとかtwigとか。
もっとも、やっぱり自作最高やってなりそうな人にも見えるので、やるだけ損かもしれない。
363350 (ワッチョイ 7d6c-Fz1p)
2017/06/14(水) 16:30:12.68ID:M56szTyh0 >>357
同時接続2000人が想定のチャットサーバ書いてます。
WebSocketの処理でhttpのパケットを解析しようかとも考えたのですが、a.phpを叩いてもらって、
そこから接続切断する方が楽そうですね。。。
ブラウザからのhttp requestをWebSocketで受けたらデータが汚すぎて萎えました。
(接続と切断を2〜3回繰り返す。。。)
同時接続2000人が想定のチャットサーバ書いてます。
WebSocketの処理でhttpのパケットを解析しようかとも考えたのですが、a.phpを叩いてもらって、
そこから接続切断する方が楽そうですね。。。
ブラウザからのhttp requestをWebSocketで受けたらデータが汚すぎて萎えました。
(接続と切断を2〜3回繰り返す。。。)
364デフォルトの名無しさん (JP 0H6b-yTT2)
2017/06/14(水) 16:33:39.90ID:/XZF9UoWH365デフォルトの名無しさん (JP 0H6b-m0Mh)
2017/06/14(水) 16:35:46.52ID:/XZF9UoWH366デフォルトの名無しさん (ワッチョイ 23cd-D9zB)
2017/06/14(水) 16:40:37.12ID:2WK2RY/D0367デフォルトの名無しさん (ワッチョイ 7d6c-Fz1p)
2017/06/14(水) 16:40:41.43ID:M56szTyh0368デフォルトの名無しさん (JP 0H6b-m0Mh)
2017/06/14(水) 16:40:42.09ID:/XZF9UoWH WebSocketでチャットとかありがちで、ググればサンプルも死ぬほどあるだろうけど、
たとえは、これ http://qiita.com/hosomichi/items/66b309a6c3c20d910218
チャットそのものは、JavascriptとWebSocketサーバがやりとりする
WebSocketサーバは、別に何で実装してもいい
もちろん、最初のページはHTTPリクエストで取得する
このラインでいいの?駄目なの?
駄目だとしたら、何が必要なの?
たとえは、これ http://qiita.com/hosomichi/items/66b309a6c3c20d910218
チャットそのものは、JavascriptとWebSocketサーバがやりとりする
WebSocketサーバは、別に何で実装してもいい
もちろん、最初のページはHTTPリクエストで取得する
このラインでいいの?駄目なの?
駄目だとしたら、何が必要なの?
369350 (ワッチョイ 7d6c-Fz1p)
2017/06/14(水) 16:48:14.61ID:M56szTyh0 >>368
少し祖語があるみたいです。
http request発行者はクライアントではなく中核サーバーになります。
(上でブラウザで試したというのはクライアントを模してやったわけではなく、単なるテストとしてやりました)
今書いているコードはクライアントと中核サーバーとの中継サーバーのものです。
中核サーバーのコードは修正できません。
そこからhttp requestでメッセージが飛んでくるんです。
そういう意味ではhttp requestを捌くのはmustですね。。。
少し祖語があるみたいです。
http request発行者はクライアントではなく中核サーバーになります。
(上でブラウザで試したというのはクライアントを模してやったわけではなく、単なるテストとしてやりました)
今書いているコードはクライアントと中核サーバーとの中継サーバーのものです。
中核サーバーのコードは修正できません。
そこからhttp requestでメッセージが飛んでくるんです。
そういう意味ではhttp requestを捌くのはmustですね。。。
370デフォルトの名無しさん (JP 0H6b-m0Mh)
2017/06/14(水) 16:58:29.14ID:/XZF9UoWH >>369
やっと、どんなものか輪郭が見えたよ
> そういう意味ではhttp requestを捌くのはmustですね。。。
だったら、多数回の接続・切断は必要だということじゃないかな
まぁ、これ以上、俺からは何も言えないけど、ひとつだけ言えるとしたら、
最初に戻って、複数のポートで待ち受けできるかどうかだけど、できるよ
http://php.net/manual/ja/function.socket-select.php
やっと、どんなものか輪郭が見えたよ
> そういう意味ではhttp requestを捌くのはmustですね。。。
だったら、多数回の接続・切断は必要だということじゃないかな
まぁ、これ以上、俺からは何も言えないけど、ひとつだけ言えるとしたら、
最初に戻って、複数のポートで待ち受けできるかどうかだけど、できるよ
http://php.net/manual/ja/function.socket-select.php
371350 (ワッチョイ 7d6c-Fz1p)
2017/06/14(水) 17:02:24.05ID:M56szTyh0372デフォルトの名無しさん (JP 0H6b-m0Mh)
2017/06/14(水) 17:06:01.29ID:/XZF9UoWH >>371
実際PHPで使ったことないから、ほんとにできるかどうかは不明
できなかったらごめんね
PHPのサンプルは見つからなかったけど、select()はこんな感じで使える
http://totofuga.hateblo.jp/entry/2014/09/05/174554
実際PHPで使ったことないから、ほんとにできるかどうかは不明
できなかったらごめんね
PHPのサンプルは見つからなかったけど、select()はこんな感じで使える
http://totofuga.hateblo.jp/entry/2014/09/05/174554
373デフォルトの名無しさん (ワッチョイ 23cd-D9zB)
2017/06/14(水) 17:08:42.57ID:2WK2RY/D0 同時接続2000人ってかなりデカいサービスなので数限られる。
動画配信が一番可能性高いけど、そういう仕事やってるとこは・・・。
まさか会社から2chに繋げてないよね?
知り合いの会社の社員のような気がしてきたw
2chに書き込むとインフラとセキュリティにメールが飛ぶとこもあるぞ。
気をつけなされ。
動画配信が一番可能性高いけど、そういう仕事やってるとこは・・・。
まさか会社から2chに繋げてないよね?
知り合いの会社の社員のような気がしてきたw
2chに書き込むとインフラとセキュリティにメールが飛ぶとこもあるぞ。
気をつけなされ。
374デフォルトの名無しさん (ワッチョイ 1532-Ell8)
2017/06/14(水) 17:10:02.55ID:3zsLXGHk0375デフォルトの名無しさん (ワッチョイ ddc2-OlK+)
2017/06/14(水) 19:32:47.41ID:gEXW+PhK0376デフォルトの名無しさん (ワッチョイ 9a88-y0cV)
2017/06/15(木) 00:40:42.03ID:yD3vPxkF0 アフィリエイトのリンクはクリックしたら広告先のURLに移動しますが、
PHPでアフィリエイトリンクからクリック先のURLを取得する方法はないでしょうか?
(つまり、クリックせずに正規のURLが取得したい)
get_headers($url)は無理でした
PHPでアフィリエイトリンクからクリック先のURLを取得する方法はないでしょうか?
(つまり、クリックせずに正規のURLが取得したい)
get_headers($url)は無理でした
377デフォルトの名無しさん (ワッチョイ aee3-yC+1)
2017/06/15(木) 00:52:33.37ID:orz99gKc0378デフォルトの名無しさん (ワッチョイ aee3-yC+1)
2017/06/15(木) 01:04:52.89ID:orz99gKc0 もしもHTMLソースに埋め込む様な形でリンクが張ってあるなら
ソースを読んで該当箇所を探し、取得する事は出来るかも知れない
ソースを読んで該当箇所を探し、取得する事は出来るかも知れない
379デフォルトの名無しさん (オッペケ Srab-kfIt)
2017/06/15(木) 05:45:49.72ID:teBxPoyNr アフィリリンクはたいていリダイレクトしてるから無理じゃないかな
380デフォルトの名無しさん (ワッチョイ c791-FeJb)
2017/06/15(木) 08:48:34.30ID:3zpPLTtW0 head要求とか?
381デフォルトの名無しさん (ワッチョイ 3aed-g/RG)
2017/06/19(月) 14:11:01.90ID:JoeiF6VU0 【OS名】Win10
【PHPのバージョン】 5.6.30
【連携ソフトウェア】MySQL XAMPP
PHP5技術者認定初級の公式教本(2014年9月20日発行)を読みながら勉強をしてる全くの初心者です。
データベースを作成、接続する部分でつまづいてしまいました。データベース、ユーザーの作成を行い
<meta charset = "UTF-8">
<?php
require 'MDB2.php';
$db = MDB2::connect('mysql://user名:passlocalhost/データベース名');
if(PEAR::isError($db)){
die ("接続失敗:" . $db->getMessage());
}else{
echo "接続できました。";
}
を実行、「接続失敗:MDB2 Error: connect failed」と返ってきます。
PHP5.3以降でMDB2_1.4以降を利用するためにはエラー制御、またはMDB2ドライバのbeta版インストールが必要とのことなのでbeta版のインストールをしました。
この手順に失敗があったのか確認する方法がわからず、とりあえずpaer listで確認したところ、
INSTALLED PACKAGES, CHANNEL PEAR.PHP.NET:
=========================================
PACKAGE VERSION STATE
Archive_Tar 1.4.3 stable
Console_Getopt 1.4.1 stable
MDB2 2.5.0b5 beta
MDB2_Driver_mysql 1.5.0b4 beta
PEAR 1.10.4 stable
Structures_Graph 1.1.1 stable
XML_Util 1.4.2 stable
と表示されました。
データベース接続のため、アドバイスをいただきたいと思います。
足りない情報などもあると思いますが、宜しくお願いいたします。
【PHPのバージョン】 5.6.30
【連携ソフトウェア】MySQL XAMPP
PHP5技術者認定初級の公式教本(2014年9月20日発行)を読みながら勉強をしてる全くの初心者です。
データベースを作成、接続する部分でつまづいてしまいました。データベース、ユーザーの作成を行い
<meta charset = "UTF-8">
<?php
require 'MDB2.php';
$db = MDB2::connect('mysql://user名:passlocalhost/データベース名');
if(PEAR::isError($db)){
die ("接続失敗:" . $db->getMessage());
}else{
echo "接続できました。";
}
を実行、「接続失敗:MDB2 Error: connect failed」と返ってきます。
PHP5.3以降でMDB2_1.4以降を利用するためにはエラー制御、またはMDB2ドライバのbeta版インストールが必要とのことなのでbeta版のインストールをしました。
この手順に失敗があったのか確認する方法がわからず、とりあえずpaer listで確認したところ、
INSTALLED PACKAGES, CHANNEL PEAR.PHP.NET:
=========================================
PACKAGE VERSION STATE
Archive_Tar 1.4.3 stable
Console_Getopt 1.4.1 stable
MDB2 2.5.0b5 beta
MDB2_Driver_mysql 1.5.0b4 beta
PEAR 1.10.4 stable
Structures_Graph 1.1.1 stable
XML_Util 1.4.2 stable
と表示されました。
データベース接続のため、アドバイスをいただきたいと思います。
足りない情報などもあると思いますが、宜しくお願いいたします。
382デフォルトの名無しさん (ワッチョイ 5383-VgqF)
2017/06/19(月) 14:28:03.46ID:4/2FI0cI0 ・'mysql://user名:passlocalhost/データベース名' の内容が間違ってる
・MySQLが起動してない
あたりのオチでは?
そもそも今MDB2を使うメリットって皆無だと思うからPDOを勉強した方が良いと思うけど
・MySQLが起動してない
あたりのオチでは?
そもそも今MDB2を使うメリットって皆無だと思うからPDOを勉強した方が良いと思うけど
383デフォルトの名無しさん (JP 0Ha6-yC+1)
2017/06/19(月) 14:29:02.12ID:Ce38C9l/H >>381
最初のアドバイスとしては、MDB2はもう未来がないからPDOにしとけってこと
最初のアドバイスとしては、MDB2はもう未来がないからPDOにしとけってこと
384デフォルトの名無しさん (JP 0Ha6-yC+1)
2017/06/19(月) 14:29:28.56ID:Ce38C9l/H かぶったw
385デフォルトの名無しさん (ワッチョイ 3acd-2WTa)
2017/06/19(月) 16:11:35.81ID:6320K+Ej0 10年前に終ってるものを今さら引き合いに出すなってw
386デフォルトの名無しさん (ワッチョイ 5383-VgqF)
2017/06/19(月) 16:46:26.99ID:4/2FI0cI0 2014年発行の本でMDB2をとりあげた理由ってなんだろう
PHP5.3系の古いバージョンのPDOだと
文字コードの指定ができないという致命的な欠点があったけどその関係だろうか?
そこまで踏み込んで解説されてるのであれば別に良いけどね
恥ずかしながら
「一般社団法人 PHP技術者認定機構」なんてものがある事を初めて知ったw
実務でどれくらい役に立つんだろうねこれ
PHP5.3系の古いバージョンのPDOだと
文字コードの指定ができないという致命的な欠点があったけどその関係だろうか?
そこまで踏み込んで解説されてるのであれば別に良いけどね
恥ずかしながら
「一般社団法人 PHP技術者認定機構」なんてものがある事を初めて知ったw
実務でどれくらい役に立つんだろうねこれ
387デフォルトの名無しさん (ワッチョイ 4fe3-yC+1)
2017/06/19(月) 17:27:56.89ID:7bEKAPau0 >>381
PHP5技術者認定初級の公式教本って
オライリージャパンの「初めてのPHP5 増補改訂版」かな?
原書の方は Final Release Date: June 2004ってある。
日本語翻訳で追補しているかも
7章の13辺りからPDOでの操作が載っているようだから、
その辺と読み替えてみたらどうだろう
PHP5技術者認定初級の公式教本って
オライリージャパンの「初めてのPHP5 増補改訂版」かな?
原書の方は Final Release Date: June 2004ってある。
日本語翻訳で追補しているかも
7章の13辺りからPDOでの操作が載っているようだから、
その辺と読み替えてみたらどうだろう
388デフォルトの名無しさん (ワッチョイ 876c-BQIS)
2017/06/19(月) 20:39:06.96ID:2foBmcl+0 2014年でMDB2なんて使う必要性ゼロだったと思う
当時でもPDOもしくはmysqliのどっちかしか推奨されてなかった気がする
その本はすぐに捨てて2015年以降に発刊された本を買い直した方がいい
できればPHP7に対応してるやつ
当時でもPDOもしくはmysqliのどっちかしか推奨されてなかった気がする
その本はすぐに捨てて2015年以降に発刊された本を買い直した方がいい
できればPHP7に対応してるやつ
389デフォルトの名無しさん (ワッチョイ 4fe3-yC+1)
2017/06/19(月) 21:49:59.12ID:7bEKAPau0 この本から出題されるらしいから、それは無理だと思う
390デフォルトの名無しさん (ワッチョイ 87cd-hHqA)
2017/06/19(月) 21:50:08.46ID:LhGzpkui0 つか、phpなんてググるだけでいいだろ
教本なんていらんのや!
教本なんていらんのや!
391デフォルトの名無しさん (ワッチョイ 4fe3-yC+1)
2017/06/19(月) 21:58:44.96ID:7bEKAPau0 真面目な修行僧に失礼な!
392デフォルトの名無しさん (ワッチョイ eb00-BQIS)
2017/06/20(火) 02:19:52.47ID:iK2sGPi10 目的はPHPの試験に受かりたいってこと?
なら動かさなくてもいいじゃん、暗記だけでいいと思うよ
正直、もうほとんど使われてないライブラリだから
実際には大して役に立たない
試験受かったら新しめの本買って学び直せ
なら動かさなくてもいいじゃん、暗記だけでいいと思うよ
正直、もうほとんど使われてないライブラリだから
実際には大して役に立たない
試験受かったら新しめの本買って学び直せ
393デフォルトの名無しさん (ワッチョイ f723-Udsw)
2017/06/28(水) 23:04:51.83ID:7cLKB0Py0 PHPや他言語で、JSのconsole.log();みたいに
オブジェクトや配列を▼ボタンで折りたたみ/展開できる
デバッグ方法ない?
オブジェクトや配列を▼ボタンで折りたたみ/展開できる
デバッグ方法ない?
394デフォルトの名無しさん (ワッチョイ 572b-LvKX)
2017/06/28(水) 23:07:31.32ID:8ccEp+RW0 >>393
それブラウザの機能だから
それブラウザの機能だから
395デフォルトの名無しさん (ワッチョイ c1c2-OatX)
2017/06/29(木) 08:09:11.69ID:IUqqYZb20 Laravel使ってdd()
396デフォルトの名無しさん (ブーイモ MMed-p+6f)
2017/06/29(木) 17:16:58.19ID:olsHrbVIM 多次元配列どうしの結合で教えてくださいませ。
以下のようなそれぞれの配列を、
Array1
(
[0] => Array
(
[key1] => 1
[key2] => 2
)
Array2
(
[0] => Array
(
[key3] => 1
)
このように1つの配列にまとめたい場合はどのようにすればいいでしょうか。
Array
(
[0] => Array
(
[key1] => 1
[key2] => 2
[key3] => 1
)
よろしくお願いします。
以下のようなそれぞれの配列を、
Array1
(
[0] => Array
(
[key1] => 1
[key2] => 2
)
Array2
(
[0] => Array
(
[key3] => 1
)
このように1つの配列にまとめたい場合はどのようにすればいいでしょうか。
Array
(
[0] => Array
(
[key1] => 1
[key2] => 2
[key3] => 1
)
よろしくお願いします。
397デフォルトの名無しさん (アウアウカー Sae9-2GBU)
2017/06/29(木) 18:00:57.13ID:/ne8B1aHa [array_merge(Array1[0],Array2[0])]
398デフォルトの名無しさん (ブーイモ MMed-p+6f)
2017/06/29(木) 19:19:10.78ID:olsHrbVIM >>397
できました、ありがとうございます!
できました、ありがとうございます!
399デフォルトの名無しさん (ワッチョイ c2cd-wjSU)
2017/06/30(金) 01:31:07.59ID:xquLJ6q20 $Array1[0] + $Array2[0] でもok
400デフォルトの名無しさん (ブーイモ MM62-p+6f)
2017/06/30(金) 14:43:54.43ID:IOmACzTvM 質問させてください。
条件分岐で結果の数が多い場合、
if文でネストする以外にいい方法はありますでしょうか。
配列の同じキーの値を、1〜5つ前まで順にたどって、
同じ値が続いていたら続いたぶんの数を新たに配列に入れたいと考えています。
よろしくお願いします。
条件分岐で結果の数が多い場合、
if文でネストする以外にいい方法はありますでしょうか。
配列の同じキーの値を、1〜5つ前まで順にたどって、
同じ値が続いていたら続いたぶんの数を新たに配列に入れたいと考えています。
よろしくお願いします。
401デフォルトの名無しさん (ワッチョイ c2cd-0bL8)
2017/06/30(金) 15:29:51.48ID:xquLJ6q20 foreachで回してカウントすればいいのでは?
402デフォルトの名無しさん (アウアウカー Sae9-2GBU)
2017/06/30(金) 15:57:18.21ID:rakscAnxa403デフォルトの名無しさん (ワッチョイ bdc2-nP2k)
2017/06/30(金) 16:18:07.71ID:EFdSifWf0 >>400
エスパーで答えるとarray_count_values()を使えば解決する気がする
エスパーで答えるとarray_count_values()を使えば解決する気がする
404 (ブーイモ MM62-p+6f)
2017/06/30(金) 18:59:07.63ID:IOmACzTvM もろもろレスありがとうございます。
>>402
いまこんな感じです。
配列allDataのhogeValue値をもとに、
1件前との差分値がdiffValueに入っており、
zeroOneに下がったか上がったかのフラグ値が0or1で入ってます。
実際は5連続まで判定したいのでネスト足りてませんが、
以下のコードは配列allDataのzeroOneキーを3つ前までたどって、
0が続いた場合に連続してます値をzeroCheckキーにPushしてます。
いまは5連続までですが、最終的に7くらいまで増える可能性があります。
if($allData[$i - 1]["zeroOne"] == 0) {
if($allData[$i - 2]["zeroOne"] == 0) {
if($allData[$i - 3]["zeroOne"] == 0) {
$allData[$i]["zeroCheck"] = "4連続";
} else {
$allData[$i]["zeroCheck"] = "3連続";
}
} else {
$allData[$i]["zeroCheck"] = "2連続";
}
} else {
$hairetsu[$i]["zeroCheck"] = "1回目";
}
>>402
いまこんな感じです。
配列allDataのhogeValue値をもとに、
1件前との差分値がdiffValueに入っており、
zeroOneに下がったか上がったかのフラグ値が0or1で入ってます。
実際は5連続まで判定したいのでネスト足りてませんが、
以下のコードは配列allDataのzeroOneキーを3つ前までたどって、
0が続いた場合に連続してます値をzeroCheckキーにPushしてます。
いまは5連続までですが、最終的に7くらいまで増える可能性があります。
if($allData[$i - 1]["zeroOne"] == 0) {
if($allData[$i - 2]["zeroOne"] == 0) {
if($allData[$i - 3]["zeroOne"] == 0) {
$allData[$i]["zeroCheck"] = "4連続";
} else {
$allData[$i]["zeroCheck"] = "3連続";
}
} else {
$allData[$i]["zeroCheck"] = "2連続";
}
} else {
$hairetsu[$i]["zeroCheck"] = "1回目";
}
405 (ブーイモ MM62-p+6f)
2017/06/30(金) 19:00:51.81ID:IOmACzTvM >>402
まとめて送信できなかったので、配列は以下の通りです
配列:$allData
Array
(
[0] => Array
(
[id] => 1
[hogeValue] => 9594
[diffValue] => 0
[zeroOne] => 0
[zeroCheck] => 0
)
[1] => Array
(
[id] => 2
[hogeValue] => 9494
[diffValue] => -100
[zeroOne] => 0
[zeroCheck] => 1回目
)
…
まとめて送信できなかったので、配列は以下の通りです
配列:$allData
Array
(
[0] => Array
(
[id] => 1
[hogeValue] => 9594
[diffValue] => 0
[zeroOne] => 0
[zeroCheck] => 0
)
[1] => Array
(
[id] => 2
[hogeValue] => 9494
[diffValue] => -100
[zeroOne] => 0
[zeroCheck] => 1回目
)
…
406デフォルトの名無しさん (ワッチョイ bdc2-nP2k)
2017/06/30(金) 19:15:45.47ID:EFdSifWf0 array_column($allData, 'zeroOne');
で
'zeroOne'の値だけ抜き出した配列を別に作ってそれをforeach()あたりで回してチェックすればいいだけな気がするが
何か勘違いしてたらすまない
※array_column()はPHP5.5以上でしか使えないから注意。仮に使えなくても自分で作れるよね?
で
'zeroOne'の値だけ抜き出した配列を別に作ってそれをforeach()あたりで回してチェックすればいいだけな気がするが
何か勘違いしてたらすまない
※array_column()はPHP5.5以上でしか使えないから注意。仮に使えなくても自分で作れるよね?
407デフォルトの名無しさん (アウアウカー Sae9-2GBU)
2017/06/30(金) 19:29:33.71ID:cIeri8pZa408デフォルトの名無しさん (アウアウカー Sae9-2GBU)
2017/06/30(金) 19:32:52.91ID:cIeri8pZa409デフォルトの名無しさん (ワッチョイ c183-nP2k)
2017/06/30(金) 19:38:09.13ID:R3qh0H/X0 いまいち何がしたいのか不明な部分が多いが
$zero = array();
foreach ($allData as $k => $v) {
if ($v['zeroOne'] === 0) {
$zero[] = $v['id'];
}
}
で'zeroOne'の値が0になってる'id'だけを収めた配列$zeroを作れば分かりやすいんじゃない?
$zero = array();
foreach ($allData as $k => $v) {
if ($v['zeroOne'] === 0) {
$zero[] = $v['id'];
}
}
で'zeroOne'の値が0になってる'id'だけを収めた配列$zeroを作れば分かりやすいんじゃない?
410 (ブーイモ MM62-p+6f)
2017/06/30(金) 19:41:09.28ID:IOmACzTvM >>406
PHPのバージョンは大丈夫です。
array_columnで抜き出してforeachで回したとして、
そこで連続してるかどうかの判定は同じような条件分岐が必要ですよね?
ちなみに上記のコードは配列全件($allData)をfor文で回してる中のコードなので結局同じのような気が…$iがそのfor文の変数です。
if文の数珠つなぎ以外で書ける方法がないか知りたいんですが、
わかりにくくてすいません。
PHPのバージョンは大丈夫です。
array_columnで抜き出してforeachで回したとして、
そこで連続してるかどうかの判定は同じような条件分岐が必要ですよね?
ちなみに上記のコードは配列全件($allData)をfor文で回してる中のコードなので結局同じのような気が…$iがそのfor文の変数です。
if文の数珠つなぎ以外で書ける方法がないか知りたいんですが、
わかりにくくてすいません。
411 (ブーイモ MM62-p+6f)
2017/06/30(金) 19:54:02.55ID:IOmACzTvM412デフォルトの名無しさん (ワッチョイ 2d2d-Vkm7)
2017/06/30(金) 20:48:04.60ID:jM2/iqY60 とりあえず殴り書いてみた
$zeroCount = 0;
foreach($allData as &$data){
if($data['zeroOne'] === 1 ){
$zeroCount = 0;
$data['zeroCheck'] = 'reset';
}elseif($data['zeroOne'] === 0){
++$zeroCount;
$data['zeroCheck'] = $zeroCount===1 ? '1回目' : $zeroCount.'連続';
}
}
unset($data);
$zeroCount = 0;
foreach($allData as &$data){
if($data['zeroOne'] === 1 ){
$zeroCount = 0;
$data['zeroCheck'] = 'reset';
}elseif($data['zeroOne'] === 0){
++$zeroCount;
$data['zeroCheck'] = $zeroCount===1 ? '1回目' : $zeroCount.'連続';
}
}
unset($data);
413 (ブーイモ MMed-p+6f)
2017/07/03(月) 12:23:07.80ID:B+GGE7aBM414 (ブーイモ MMed-p+6f)
2017/07/03(月) 12:35:32.09ID:B+GGE7aBM415デフォルトの名無しさん (ワッチョイ 6d6c-vtNh)
2017/07/03(月) 19:17:40.49ID:JHZQFGt10 質問失礼します。
WebSocket サーバーを php で作成したのですが、Linux のコマンドラインから実行するとフリーズします(当たり前ですが)
php hogehoge.php(エンター押したらフリーズ)
フリーズしないようにするにはどう書けば良いのでしょうか?
分かる方、よろしくお願いします。
WebSocket サーバーを php で作成したのですが、Linux のコマンドラインから実行するとフリーズします(当たり前ですが)
php hogehoge.php(エンター押したらフリーズ)
フリーズしないようにするにはどう書けば良いのでしょうか?
分かる方、よろしくお願いします。
416デフォルトの名無しさん (オイコラミネオ MMd6-OatX)
2017/07/03(月) 21:32:52.53ID:gkI5GTRGM 最後に&付けてバックグラウンドにするとが、
デーモン化するとかじゃないの?
デーモン化するとかじゃないの?
417デフォルトの名無しさん (オイコラミネオ MMd6-OatX)
2017/07/03(月) 21:46:40.38ID:gkI5GTRGM screenとかtmuxとか使える環境にした方がいいかもね
418デフォルトの名無しさん (ブーイモ MMb6-tH5o)
2017/07/04(火) 13:26:39.98ID:7V16igb5M419デフォルトの名無しさん (ワッチョイ 6d6c-vtNh)
2017/07/04(火) 13:27:40.09ID:1MjQBQYF0 最後に&を付ける事で解決しました。
このやり方は知りませんでした。
ありがとうございます。
このやり方は知りませんでした。
ありがとうございます。
420415 (ワッチョイ 6d6c-vtNh)
2017/07/04(火) 13:31:25.48ID:1MjQBQYF0421デフォルトの名無しさん (ブーイモ MMb6-tH5o)
2017/07/04(火) 13:37:48.03ID:7V16igb5M >>420
実行中?w
実行中?w
422デフォルトの名無しさん (ワッチョイ 6d6c-OatX)
2017/07/04(火) 14:10:34.27ID:Ij02Usie0 処理をバックグラウンドに回してるだけだから、
最後はちゃんとフォアグラウンドに戻して終了するとか、
PIDみてkillするとかしないとダメだからな
最後はちゃんとフォアグラウンドに戻して終了するとか、
PIDみてkillするとかしないとダメだからな
423デフォルトの名無しさん (JP 0H16-CicO)
2017/07/04(火) 15:05:16.21ID:jjyWg722H >>422
SIGHUPで自動的に終了する場合もあるけどね
SIGHUPで自動的に終了する場合もあるけどね
424デフォルトの名無しさん (アウアウカー Sae9-HpRm)
2017/07/04(火) 16:29:15.13ID:vUvZYSdca フォアグラウンドで待受してる状態をフリーズと呼んでたのか成程
425415 (ワッチョイ 6d6c-vtNh)
2017/07/04(火) 16:43:25.58ID:1MjQBQYF0 rcスクリプト書いて、
service hogehoged start
で起動するようにしました。
スクリプト内で
php hogehoge.php --pidfile=/var/run/hogehoge.pid &
という風に起動しています。
pidfile は hogehoge.php 内部で getmypid() を保存しています。
kill はそのrcスクリプト内で stop 命令の時にやっています。
案の定、起動直後に [ OK ] が表示されませんが、不都合は無さそうなのでとりあえずこれで良しとしています。
service hogehoged start
で起動するようにしました。
スクリプト内で
php hogehoge.php --pidfile=/var/run/hogehoge.pid &
という風に起動しています。
pidfile は hogehoge.php 内部で getmypid() を保存しています。
kill はそのrcスクリプト内で stop 命令の時にやっています。
案の定、起動直後に [ OK ] が表示されませんが、不都合は無さそうなのでとりあえずこれで良しとしています。
426デフォルトの名無しさん (ワッチョイ 6d6c-OatX)
2017/07/04(火) 16:55:30.44ID:Ij02Usie0 サーバーいじれる立場ならSupervisorとか使えば
PIDの管理とかいちいちしなくても簡単にできるよ
PIDの管理とかいちいちしなくても簡単にできるよ
427デフォルトの名無しさん (JP 0H16-CicO)
2017/07/04(火) 17:01:51.07ID:jjyWg722H >>425
そのやり方だと、ターミナル閉じたら終わっちゃう環境もあるよ
そのやり方だと、ターミナル閉じたら終わっちゃう環境もあるよ
428415 (ワッチョイ 6d6c-vtNh)
2017/07/04(火) 17:32:02.24ID:1MjQBQYF0429デフォルトの名無しさん (ワッチョイ 6d6c-OatX)
2017/07/04(火) 17:39:59.80ID:Ij02Usie0430415 (ワッチョイ 6d6c-vtNh)
2017/07/04(火) 17:44:00.65ID:1MjQBQYF0431デフォルトの名無しさん (JP 0H16-CicO)
2017/07/04(火) 18:22:31.77ID:jjyWg722H >>430
起動するコマンドラインを
nohup php hogehoge.php --pidfile=/var/run/hogehoge.pid &
とすれば大丈夫。
大抵のプロセスはHUPシグナルを受け取ると終了しちゃうんだけど、ターミナルを閉じるときに
バックグラウンドジョブにHUPシグナルを送るかどうかは、ログインシェルの設定による。
システムのデフォルトで送るか送らないかは決まってるけど、個々人で設定もできる。
詳しい話は、こことか参照。
「技術/UNIX/なぜnohupをバックグランドジョブとして起動するのが定番なのか?(擬似端末, Pseudo Terminal, SIGHUP他)」
https://www.glamenv-septzen.net/view/854
起動するコマンドラインを
nohup php hogehoge.php --pidfile=/var/run/hogehoge.pid &
とすれば大丈夫。
大抵のプロセスはHUPシグナルを受け取ると終了しちゃうんだけど、ターミナルを閉じるときに
バックグラウンドジョブにHUPシグナルを送るかどうかは、ログインシェルの設定による。
システムのデフォルトで送るか送らないかは決まってるけど、個々人で設定もできる。
詳しい話は、こことか参照。
「技術/UNIX/なぜnohupをバックグランドジョブとして起動するのが定番なのか?(擬似端末, Pseudo Terminal, SIGHUP他)」
https://www.glamenv-septzen.net/view/854
432デフォルトの名無しさん (ドコグロ MMe1-rRjJ)
2017/07/05(水) 14:32:35.13ID:54CdfmVIM この言語なんなん?
explodeとか命名センスが意味不明
explodeとか命名センスが意味不明
434デフォルトの名無しさん (ワッチョイ ffb1-KuRC)
2017/07/07(金) 21:30:48.34ID:gJwEGw/+0 「implodeは配列を内部で破裂させてバラバラにする感じ」
↑わかる
「逆の処理も作ったし対義語のexplodeって名前にしたろ!」
↑アホなの?
↑わかる
「逆の処理も作ったし対義語のexplodeって名前にしたろ!」
↑アホなの?
435デフォルトの名無しさん (ワッチョイ 172b-rvkC)
2017/07/07(金) 22:38:42.30ID:x02w4L3o0 >>434
頭大丈夫?
頭大丈夫?
436デフォルトの名無しさん (ワッチョイ 77c2-1B52)
2017/07/10(月) 13:42:32.90ID:d1/L8Z5+0 他言語だとsplitで正規表現も使えるのが多いわな
PHPの場合
perlの動作と同じ正規表現対応のsplit()もあったけど、5の途中から非推奨で7で削除
正規表現を使うならpreg_split()で使わないならexplode()
他言語でexplodeというのは、少なくとも俺は聞いた事がない
他言語を使う人なら、ここら辺がPHPのイケてないところというか「何か気持ち悪い」というのは分からなくもない
PHPの場合
perlの動作と同じ正規表現対応のsplit()もあったけど、5の途中から非推奨で7で削除
正規表現を使うならpreg_split()で使わないならexplode()
他言語でexplodeというのは、少なくとも俺は聞いた事がない
他言語を使う人なら、ここら辺がPHPのイケてないところというか「何か気持ち悪い」というのは分からなくもない
437デフォルトの名無しさん (アウアウカー Sa2b-L5XL)
2017/07/10(月) 14:08:35.69ID:XWLrQ2QUa >>436
splitはバイナリセーフじゃないしPOSIX拡張正規表現相当じゃなかった?
splitはバイナリセーフじゃないしPOSIX拡張正規表現相当じゃなかった?
438デフォルトの名無しさん (ワッチョイ 77c2-1B52)
2017/07/10(月) 14:57:50.74ID:d1/L8Z5+0439デフォルトの名無しさん (スプッッ Sd3f-AoV0)
2017/07/10(月) 17:26:55.18ID:L6zA5hfHd cakephpを入れました。
php -i grep intl ってやるとずらずら出てくるのですがこれってなんですか?
phpのバージョンは7.0です。
grep.phpを実行してるってことですか?
php -i grep intl ってやるとずらずら出てくるのですがこれってなんですか?
phpのバージョンは7.0です。
grep.phpを実行してるってことですか?
440デフォルトの名無しさん (スプッッ Sd3f-AoV0)
2017/07/10(月) 17:30:53.25ID:L6zA5hfHd php -r 'phpinfo();'て書いた時とおんなじ文字が流れてきます。
intlってなんなんだ
intlってなんなんだ
441デフォルトの名無しさん (スプッッ Sd3f-AoV0)
2017/07/10(月) 17:32:40.21ID:L6zA5hfHd どういうことかわかりました。
php -iでphpinfo()の中身が出るんですね。ほげー
php -iでphpinfo()の中身が出るんですね。ほげー
442デフォルトの名無しさん (オイコラミネオ MM4f-cxsd)
2017/07/10(月) 22:06:55.26ID:aPcSY6kVM grepは便利だから覚えとくといいよ
443デフォルトの名無しさん (ワッチョイ f72d-rE3N)
2017/07/10(月) 22:11:41.31ID:eOXntHhA0 g/re/p
444デフォルトの名無しさん (ワッチョイ f791-KuRC)
2017/07/11(火) 10:58:05.61ID:9WLXDmTn0 お願いします。
以前、どこかのスレで、
「xamppを使ってPHPの開発してるなんて素人だけ。プロは使わない」
というレスを見ました。
xamppの何がいけないんでしょうか?
xamppでは開発できないことってあるんですか?
以前、どこかのスレで、
「xamppを使ってPHPの開発してるなんて素人だけ。プロは使わない」
というレスを見ました。
xamppの何がいけないんでしょうか?
xamppでは開発できないことってあるんですか?
445デフォルトの名無しさん (ワッチョイ f76c-cxsd)
2017/07/11(火) 11:43:10.26ID:oWge628W0 自分が使いやすいのを使えば良い
いちいち人の意見に流されるな
ただ、XAMPPの環境はかなり独自だから、使い方をを誤ると失敗することもある
ある程度の人数で共同開発する場合は、環境の差異をできるだけ少なくすることが大事で、
そういう意味ではXAMPPが向かないのも事実
Dockerとか使えて色々な環境に合わせられる人の方が重宝されると思う
いちいち人の意見に流されるな
ただ、XAMPPの環境はかなり独自だから、使い方をを誤ると失敗することもある
ある程度の人数で共同開発する場合は、環境の差異をできるだけ少なくすることが大事で、
そういう意味ではXAMPPが向かないのも事実
Dockerとか使えて色々な環境に合わせられる人の方が重宝されると思う
446デフォルトの名無しさん (ワッチョイ 77c2-1B52)
2017/07/11(火) 11:43:40.90ID:/I8grlwO0 どこのプロかは知らないけど普通にxampp+PhpStormで開発してるし
たぶんそこらのプロよりは今まで稼いできたと思う
「何で」作るかなんかどうでもいいんだよ
大事なのは「何を」作るか
そこんところ勘違いしてる自己満が多すぎるのがこの世界
たぶんそこらのプロよりは今まで稼いできたと思う
「何で」作るかなんかどうでもいいんだよ
大事なのは「何を」作るか
そこんところ勘違いしてる自己満が多すぎるのがこの世界
447デフォルトの名無しさん (ワッチョイ d7e3-A4lm)
2017/07/11(火) 11:53:22.03ID:1hL73PK30 素人でもプロでもXAMPPは使う価値は低いだろ。
PHP自体、単体動作するし、HTMLサーバーが必要なら実運用と同環境にすればいいし。
PHP自体、単体動作するし、HTMLサーバーが必要なら実運用と同環境にすればいいし。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「偽サッチャー」「自滅的」「時代遅れ」 高市首相の経済政策を海外メディアが酷評 [蚤の市★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★2 [蚤の市★]
- 【ド軍】山本由伸、WBC出場を決断!ドジャースが本人の意向を尊重、佐々木朗希はチームが故障歴を懸念で不参加 [鉄チーズ烏★]
- 米大統領報道官「日本と強固な同盟維持、中国とも協力」 [少考さん★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ ★2 [蚤の市★]
- 秋田内陸縦貫鉄道「列車が脱線、転覆」と通報 北秋田市、萱草駅付近 [蚤の市★]
- 今年の漢字、きょう発表😉 [583597859]
- 女の子集合!
- 中国人、超ド正論。「チベットやウイグルに住んでるのはチベット族やウイグル族だが、アイヌから奪った土地に住んでる日本人こそ侵略者」 [314039747]
- おまえらもうクリスマスツリー出した?
- 百合営業してるアイドル「これは営業だから…んっクチュクチュ」←これ
- (´・ω・`)ニュー速VIPのみんなへ
