17/03/27 09:23:16.47 q0zQOh/l0.net
php7の環境に、過去に作ったプログラムを置いてみたら
全く動かんかった。
非推奨関数とか混ざりまくってるから
動くようにするには、かなり改修が必要そうだ。
118:デフォルトの名無しさん (オッペケ Srd3-6vFh)
17/03/27 19:26:19.03 MSc6E4Evr.net
あ~猿猿言ってたあのバカか
119:デフォルトの名無しさん (ワッチョイ dff0-FAJs)
17/03/27 23:21:57.68 jVvzovDA0.net
違うよ、猿猿言ってたあの天才だよ
120:デフォルトの名無しさん (ワッチョイ eb8c-aw5l)
17/03/28 16:14:08.72 1yY7UnQV0.net
ファイルのパスを以下の二通りで指定すると解釈が違うようなのだが何故だ?
./path/file
path/file
121:デフォルトの名無しさん (ワッチョイ dff0-FAJs)
17/03/28 20:39:00.69 ZGgECKv80.net
>>117
まぁ、その「解釈が違う」ケースを書いてみ。
ひょっとしたらそれを書けば、おまえの独力でも解決できちゃうんじゃね?
122:デフォルトの名無しさん (ワッチョイ 43f0-3+/Q)
17/03/30 10:16:57.78 IGixA1Qp0.net
>>105 : デフォルトの名無しさん (オッペケ Srd3-6vFh)2017/03/26(日) 09:34:49.48 ID:dNTFG84Fr
> ほらこいよ?
> なんならリアルで待ち合わせすっか?
> テメーのクソみたいな顔拝ませろ
来いよって言うから行ってやったら、なしのつぶての件、クソワロスwwwww
123:デフォルトの名無しさん (ワッチョイ bf3c-JD2G)
17/03/30 22:13:21.84 6Jc6zvAI0.net
>>117
実行時のカレントディレクトリが異なるんじゃないのかな
124:デフォルトの名無しさん (ワッチョイ bf3c-JD2G)
17/03/30 22:13:51.24 6Jc6zvAI0.net
あ、聞き流して
125:デフォルトの名無しさん (ワッチョイ 43f0-JzSF)
17/03/31 02:27:43.93 OV1cbLT20.net
>>120
言う奴出てくると思ってたよ…
126:デフォルトの名無しさん (ワッチョイ 73cd-nBmW)
17/03/31 17:00:01.66 Al0ruV+g0.net
>>122
よくわからないので解説頼んます
127:デフォルトの名無しさん (アウアウカー Sad7-19VF)
17/03/31 18:07:02.48 XglZkB2ga.net
const9割let1割var0割ですよね
128:デフォルトの名無しさん (ワッチョイ cf77-agmj)
17/04/01 01:09:12.28 FD993rOV0.net
some_fn(1,2,3,4)
こう渡すべき関数があって、渡したいデータは[1,2,3,4]という感じに配列に入っています。
some_fnを拡張する以外に、うまく渡す方法はないでしょうか?
129:デフォルトの名無しさん (ワッチョイ c36e-agmj)
17/04/01 05:52:10.21 rNRWzLeg0.net
let [ a, b, c, d ] = [1,2,3,4]
some_fn(a, b, c, d)
130:125 (ワッチョイ cf77-agmj)
17/04/01 07:09:38.94 6GQ7oWyp0.net
>>126
レスありがとうございます。
ちょっとそれだと自力感が強くて、some_fnの引数が可変だったり場合も応用がききづらいですね。
evalを思い出したので、入力も自分が用意するもので外部由来ではないので、他の方法思いつくまでevalで代用しておきます。
$a = [1,2,3,4];
$a = 'return some_fn('.implode(',',$a).');';
eval($a);
131:デフォルトの名無しさん (ワッチョイ 83d4-dtkB)
17/04/01 12:55:18.33 bQQZERCB0.net
some_fn(...$a);
PHP5.6からだけど
URLリンク(php.net)
132:デフォルトの名無しさん (ワッチョイ 43f0-3+/Q)
17/04/01 13:09:39.78 8fiaXEF90.net
またeval()厨かよ… ほんと死なねぇかな…
133:125 (ワッチョイ cf77-agmj)
17/04/01 18:01:50.26 6GQ7oWyp0.net
>>128
おー出来るようになってたんですね。
PHP5.4だったので早速アップデートしてみます。
ありがとうございました。
134:デフォルトの名無しさん (アウアウウー Sab7-Gwmd)
17/04/02 12:56:35.27 j7pqXAosa.net
【OS名】Debian 8
【PHPのバージョン】7.0
【連携ソフトウェア】なし
【質問内容】
あるクラス(仮にMy)のメソッド(同my())があるとします
Threadを継承したクラス(仮にMyThread)のインスタンスをstart()する式が中にあるmy()をコールしたとき、
生成したスレッドの終了を待たずにmy()を終了する方法はありますか?
class MyThread extends Thread {
function run() { echo "start!\n"; sleep(3); echo "stop!\n"; }
}
class My {
function my() { $thread = new MyThread(); $thread->start(); }
}
$my = new My();
$my->my();
echo "here!/n";
で start!->stop!->here! を start!->here!->stop! のようにしたいのです。
135:デフォルトの名無しさん (ワッチョイ 7331-QmV0)
17/04/02 17:07:14.61 sKaMUxEO0.net
PHPで簡易掲示板作成して公開してみたら英語ロシア語のスパム投稿が殺到するようになった
さっそくkcaptchaというツール使って画像認証機能付きに改造してみたんだけどそれでも
スパムが殺到するんだわ。
結局日本語以外の投稿は片っ端から破棄する方式に変えて対処できるようになったけど
それでも飽きずに投稿を試みてくるんだよw
ああいう画像認証突破って人海戦術で投稿してるんだろ?
拒絶されまくってるのによう飽きずに何度もチャレンジしてくるわな
ご苦労さんとしか言いようが無いw
136:デフォルトの名無しさん (ワッチョイ 3fcb-jsM4)
17/04/02 22:44:17.53 q06cgQNJ0.net
>>131
Worker使ってPoolに放り込む
但しWorkerも別スレッドなので処理順序に関しては保証出来ない(自分の環境だと"here"が最初になる)
どうしても実行順序を揃えたければPoolのsubmitメソッドをオーバーライドしてparent::submitコール後にウェイト掛けるようにすればいい
書けなかったのでideone
URLリンク(ideone.com)
137:デフォルトの名無しさん (アウアウウー Sab7-Gwmd)
17/04/02 23:32:30.74 0XahTNwQa.net
>>133
here!とstart!は前後しても大丈夫です。Poolを使えばいいのですね。ありがとうございます。
138:デフォルトの名無しさん (アウアウウー Sab7-19VF)
17/04/04 12:37:21.30 qjHKdF5aa.net
SQLを変数に格納するとき職場だと
$sql ="";
と初期化してからSelect文やらを代入し始めるのですがこれには何か意味があるんですか?
139:デフォルトの名無しさん (JP 0H7f-aCII)
17/04/04 13:21:18.91 pyoNKlrCH.net
>>135
> と初期化してからSelect文やらを代入し始めるのですがこれには何か意味があるんですか?
文字列接続でSQLを組み立てるときに、SQLがずれないという微妙なメリットがあるといえばある。
$sql = 'SELECT ...';
$sql .= 'FROM ...'
と
$sql = '';
$sql .= 'SELECT ...';
$sql .= 'FROM ...';
の違い。
ちなみに俺はヒアドキュメントを使う。
140:デフォルトの名無しさん (ワッチョイ cf1f-aC9I)
17/04/04 14:11:57.70 cKMtDqYa0.net
意味はないだろ。
変数は初期化してという職場ルールとかだろ。
141:デフォルトの名無しさん (JP 0H7f-aCII)
17/04/04 14:23:47.22 pyoNKlrCH.net
なるほど、こういう場合もありえるか。
URLリンク(php.net)
> 初期化されていない変数のデフォルト値に依存すると、そのファイルを
> include している別のファイルで同名の変数が使用されていた場合などに
> 問題を起こします。
> また、register_globals が on の場合には重大なセキュリティリスク
> を抱えることになります。
142:デフォルトの名無しさん (ササクッテロロ Sp17-icq5)
17/04/05 16:35:03.35 UwNB2dkTp.net
>>136
もちろんそうよ
143:デフォルトの名無しさん (オイコラミネオ MM7f-IVUN)
17/04/17 09:34:31.70 Exr9QGEtM.net
名前空間使わないとかクソだし
register_globalsがonの環境自体がクソだし
もっと手前のことを考えるべきだろうけど
144:デフォルトの名無しさん (ワッチョイ 2fa1-aVqD)
17/04/20 22:12:15.98 4IA48rrn0.net
PHPでゲーム開発って今どんな感じ?
まだ、現役で使える?
145:デフォルトの名無しさん (オイコラミネオ MM96-W/PI)
17/04/20 22:23:53.27 AQO4u6SrM.net
PHPしかできないならさすがに仕事はない
と元ゲームメーカープログラマの俺は思う
146:デフォルトの名無しさん (ワッチョイ 1e1f-MAHZ)
17/04/22 21:29:12.02 1HwydCHr0.net
携帯ゲーム開発やってたの?
147:デフォルトの名無しさん
17/04/23 20:03:20.59 TnE9jJi/0.net
質問させて頂きます。
PHPを使った簡単な選択ゲームを作成していまして、最初に名前(フォーム)を入力してもらい、以降のページでradio
ボックスを使って選択していく感じです。
クリア画面で最初のページで入力した名前(フォーム)を表示するにはどういったやり方がよろしいでしょうか?
148:デフォルトの名無しさん
17/04/23 21:59:06.82 Xx5iQvLa0.net
cookieがいいかと思います
149:デフォルトの名無しさん
17/04/23 22:07:04.98 aYUOvvWi0.net
普通セッションじゃないかな
150:デフォルトの名無しさん
17/04/24 08:48:00.52 aR8VAoat0.net
そんな初心者のあなたにはお手軽hidden
151:デフォルトの名無しさん
17/04/24 19:43:35.52 BQYXkJHP0.net
秘伝
152:デフォルトの名無しさん
17/04/27 21:37:03.43 rGgHpPcN0.net
php7 に uuidライブラリを導入したのですが、sudoでしか受け付けてくれません
インストールはpecl install uuidで入れたのですが、root以外はじかれて、ページ上では500エラーとなります
なにか間違っているんでしょうか?
153:デフォルトの名無しさん
17/04/27 22:22:51.23 GJNrvvrA0.net
特定のアプリを使える、group を追加すれば?
154:デフォルトの名無しさん
17/04/27 22:28:40.20 //GaaF5M0.net
>>149
メンテナンスされてないエクステンション使うよりメンテナンスされてるライブラリ使った方がいいよ
URLリンク(github.com)
155:デフォルトの名無しさん
17/04/29 09:36:48.80 gwV/3/wJ0.net
root使えないならcomposerで導入できるライブラリ探せ
>>151でまず問題ないはず
156:デフォルトの名無しさん
17/04/30 11:15:07.30 pYQ+I2xN0.net
PHP5でアンケートページを作りました。
「アンケート入力」の画面で送信ボタンをおしてページ移動を
しています。パソコンとマックのブラウザからはちゃんと
動作している(アンケート画面が移動する+MySQLにも書き込みが
されている)のですが、iPhoneのLINEからアクセスするとエラーが
出てしまいます。AndroidのLINEではエラーがでません。
iPhoneを持ってないので確認が難しいです。
googleで検索してもアプリ内ブラウザの違いのようなのですが、
具体的に何が原因なのかわかりません。
なにか注意点とかiPhoneのLINEだとこれはダメだなどありましたら
教えて頂けないでしょうか。よろしくお願いします。
157:デフォルトの名無しさん
17/04/30 11:40:09.81 nYTyUlyB0.net
せめてエラーログの内容くらい書いてほしい
iPhoneの場合は純粋のブラウザ(safari)でアクセスするのと、
アプリ内ブラウザで立ち上がるブラウザ(webview)が違う
例えばwebviewの場合はcookieを保存しないなど、ちょっと挙動が違うところもある
てか、開発するのにiPhoneの実機ないとはさすがにだめじゃね?
158:デフォルトの名無しさん
17/04/30 11:42:39.41 nYTyUlyB0.net
ちょっと雑に書いてしまったが、
cookieの件はアプリを終了すると消すという意味だから、
一時的に使うだけなら問題ないはず
159:デフォルトの名無しさん
17/05/04 20:08:49.82 MlwtpNm00.net
foreachで最後の一つ前にifを使いたいんだけど
何かいい方法ない?
160:デフォルトの名無しさん
17/05/04 23:16:53.77 MlwtpNm00.net
ないっぽいのでforでやります。
ありがとうございました。
161:デフォルトの名無しさん
17/05/06 12:08:30.95 6B+jWue50.net
webアプリケーションフレームワークのスレはこの板ではなく別の板でしょうか
162:デフォルトの名無しさん
17/05/06 23:02:40.18 6iamBiJv0.net
【OS名】Win7-Pro
【PHPのバージョン】5.6.28 (XAMPP v.3.2.2)
【連携ソフトウェア】ブラウザはFirefoxかChrome
【質問内容】
JavaScriptでPHPを起動し、これに処理をさせ返ってきた値を受け取りたいです。
参考にしたのは URLリンク(wpcos.com)
上のHPのJSとPHPのコードを丸コピーして Chrome57.0で実行させたところ下記のようになり
原因が分かりません。 PHPに問題があるようなのでこのスレで聞きました。
URLリンク(uproda11.2ch-library.com)
※XAMPPのApacheは起動済みです
※JSとPHPのファイルはUTF-8で保存済み
※Firefox53.0だと「XML パースエラー: 要素が見つかりません。」が出ます
何かヒントを下さい
163:デフォルトの名無しさん
17/05/06 23:14:04.15 aphLh83O0.net
>>159
Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
って思いっきり書いてあるんだけど?
164:デフォルトの名無しさん
17/05/06 23:15:36.45 b0MPlxsl0.net
URLリンク(127.0.0.1)
みたいにアクセスしないと
165:159
17/05/06 23:46:38.71 6iamBiJv0.net
レス有難うございます
>>160
「Cross origin requests are only supported for protocol schemes」自体で調べたところ、
『どうやらChromeではローカルでAjaxは使えない様です』 とのことなのですがFirefoxでも
上記の通りエラーになります。
結局、サーバー上でやった方が早いのでしょうか?
>>161
要求された URL は本サーバでは見つかりませんでした。 もし手入力で URL を入力した場合は、
綴りを確認して再度お試し下さい。
サーバーの障害と思われる場合は、ウェブ管理者までご連絡ください。
Error 404
と出ます
166:デフォルトの名無しさん
17/05/06 23:49:54.73 aphLh83O0.net
>>162
何故JavaScriptもPHPも分からないのに同時にやろうとするのか
サーバを介さずにリクエストして, 一体誰がPHPを実行すると考えている?
167:159
17/05/07 00:09:32.23 oPGKh2U00.net
>>163
サーバーにUpしたらFirefoxとChrome共にOKでした。
お手数をおかけしました。
168:デフォルトの名無しさん
17/05/07 00:11:18.55 RBu7YsoC0.net
>※XAMPPのApacheは起動済みです
起動しているなら、ブラウザでhtmlが表示できるんでしょ?
そこに置いてみた?
169:デフォルトの名無しさん
17/05/07 00:17:01.17 mGKAifTM0.net
Apacheなんて難し過ぎてきちんと分かってるとは到底思えない
XAMPP使うよりまずはPHPのビルトインサーバで勉強した方がいい
170:159
17/05/07 00:27:20.61 oPGKh2U00.net
>>165
はい。 普段使ってるlocalhostのphp置き場にhtmlとtest.phpを置いています。
htmlの起動はOKですが、ボタンを押すとエラーになります。
>>166
8年位前にやってたときはPHPを単独でインストールしてコマンドプロンプトで
やっていたのですが、PCを変えたときXAMPPなるものを試してみたかったので
171:デフォルトの名無しさん
17/05/07 00:50:33.47 RBu7YsoC0.net
>>167
URLリンク(uproda11.2ch-library.com)
ここのエラー表示を見ると、
C:/xampp/htdocs/ tests/test.php
となっているけど、
htdocs の中にあるフォルダ testsって、
先頭に空白文字があるの?何か変だよね?
172:159
17/05/07 01:08:20.14 oPGKh2U00.net
>>168
半角アンダーバーが入っています
173:デフォルトの名無しさん
17/05/07 01:30:39.86 RBu7YsoC0.net
test.htmlってブラウザからどのようにリクエストしてます?
URLリンク(localhost) ですか?
もしもそうなら、javascriptのこの部分、
$.get('test.php', を
同じようにフルパス指定にしてみたらどうかな?
174:デフォルトの名無しさん
17/05/07 01:50:04.63 mGKAifTM0.net
XAMPPのApacheを止めてそのファイルがあるディレクトリで
$ php -S localhost:8080
とでもしてビルトインサーバを起動して URLリンク(localhost:8080) にアクセスした方が早い
175:デフォルトの名無しさん
17/05/07 02:58:17.79 edBtKeoY0.net
jQueryは、こういう感じに書く
// 先に全体の設定
$.ajaxSetup({
data: {format: 'xml'},
timeout: 60 * 1000
});
$.ajax( 絶対パス )
.done(function( data, textStatus, jqXHR ) {
console.log('statusCode = ' + jqXHR.status,
' : ' + textStatus );
})
.fail(function( jqXHR, textStatus, errorThrown ) {
console.log('statusCode = ' + jqXHR.status,
' : ' + textStatus );
});
176:デフォルトの名無しさん
17/05/07 03:09:40.34 edBtKeoY0.net
CORS(Cross-Origin Resource Sharing)制限
ブラウザでAjax通信を行う際には、同一生成元ポリシー(Same Origin Policy)によって、
Webページを生成したドメイン以外へのHTTPリクエストができないので、
ajax通信のJSONP を使って、出来るようにしている
他にも、ブラウザの制限は厳しくて、
iframe内に、他のドメインのページを読み込んでも、
親側のHTMLからは、それにアクセスできない
177:デフォルトの名無しさん
17/05/07 12:31:13.16 FH3wsgTg0.net
JavaScriptはどれぐらい理解してるの?
山登り始めた人がいきなり冬の北アルプス登ろうとしてる感じに見える
178:159
17/05/07 18:30:42.76 oPGKh2U00.net
色々有難うございます。
>>170-171
171さんの方法で試してみます。
>>172
これは URLリンク(code.jquery.com) とかのjQueryを改造する場合の
ことでしょうか?
>>174
JavaScript自体は合計5年くらいの経験があり、たぶん100~200位のコードを書きましたが
その殆どがローカルで動くもので、また数理的な図形描画や可視化のようなものです。
例:分子構造のデータを読み込んでSVGライブラリ(Raphaelとか)で3Dベクター描画 とか
PHPも実務経験はありますが、8年くらい前にやったきりで今年になってようやく再度必要性が
生じて、昔の本やコードを引きずり出して再勉強しています。
平たく書くとローカル動作主体でWebやネットワークには弱いです。
179:デフォルトの名無しさん
17/05/07 18:44:21.97 FH3wsgTg0.net
まずはPHPとJavaScript別々に勉強を進めてはどうか
特にJavaScriptの通信は非同期処理になるので、
しっかり勉強しないと何をしてるか意味が分からないと思う
Cross origin requestのエラーであたふたするレベルだとちと厳しい
まずはJavaScriptかまさないPHPだけのをしっかり学んでからで良いと思います
180:デフォルトの名無しさん
17/05/07 18:46:20.00 FH3wsgTg0.net
あと、本で学ぶなら最新のを買ってきた方がいい
PHPもJavaScriptも8年前からかなり進化してる
実務で使うならなおさら最新のを学んだ方がいい
181:159
17/05/07 18:55:36.55 oPGKh2U00.net
>>176-177
有難うございます。 確かにそうですが、業務上JavaScriptとPHPの連携(連動)が
必要な案件を取りたいので基礎でも良いのでこの連動を実現したかったです。
実際の製品にするにはこの分野に強い業者と組むことになりますが、営業で回る前に
「これくらいは自分でやっとかないとアカンだろうなあ」と思いました。
本も「最新の知識以前に基礎が大事」という発想と、過去のコードをベースにして再勉強
したかったので買っていませんでした。 後で本屋を見てみます。
182:デフォルトの名無しさん
17/05/07 19:05:10.10 FH3wsgTg0.net
なるほど、立派な営業さんですね
自社製品なのに何も知らんで営業やってるやつがゴロゴロいるからねぇ
連携する部分はあるにせよ、一気に学ぼうとせずに、
ひとつひとつ学んでいく方が近道かと思いますので頑張ってください
183:デフォルトの名無しさん
17/05/07 19:12:17.90 BH039lXF0.net
画像にハッシュタグを付け、それに「何かしら識別コード」を関連付けて保存する。
それらを比較することで近しい画像を検索するというようなことがしたい。
この「何かしら識別コード」はなにかいいモノはないでしょうか?
184:デフォルトの名無しさん
17/05/07 19:53:43.65 YbUbsdG8M.net
「近しい画像」って何をどう比較して近しいとするの?
それが分からんと何ともアドバイスしにくい気がするけど
185:デフォルトの名無しさん
17/05/08 00:17:33.36 e9qNdiMD0.net
SimPixという同一、類似画像を探して、整理を補助するフリーソフトがあるんだけど
これみたいに使いたいのだがどういう原理で比較してるのかわからないのです。
186:デフォルトの名無しさん
17/05/08 02:11:52.13 WXUx4WWm0.net
コレとか
URLリンク(github.com)
187:デフォルトの名無しさん
17/05/08 17:29:24.75 e9qNdiMD0.net
ありがとうございます。
こういうのを探していました。
早速使ってみます。
188:デフォルトの名無しさん
17/05/08 18:08:55.09 04P2BCNBH.net
ペチパー(PHPer)って馬鹿にする文脈でしか見たことなかったが、今ではペチパーが普通なのか?
URLリンク(wordpress.ideacompo.com)
189:159
17/05/08 19:38:22.33 DHydgTad0.net
題:JavaScriptでPHPを起動し、これに処理をさせ返ってきた値を受け取りたい
>>171を試そうと
C:\xampp\htdocs\_tests>$ php -S localhost:8080
としたところ下記が出ました
'$' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
単にcdでディレクトリ移動して $ php -S localhost:8080 ではダメなのですか?
190:デフォルトの名無しさん
17/05/08 19:44:45.81 LksAbi0u0.net
windowsとlinuxの違いもわからんのかえ
191:デフォルトの名無しさん
17/05/08 20:09:49.73 93uC34hXM.net
Windows環境で試すならWindows環境で書いてる本買ってきて勉強した方が良いと思うよ
そこで躓くレベルだと手取り足取り教えてもらわんと進まないと思う
192:171
17/05/08 20:23:48.25 67J5jWuHa.net
えぇ・・・
193:159
17/05/08 21:17:26.26 DHydgTad0.net
>>187
159に明示していたのですが
194:デフォルトの名無しさん
17/05/08 23:03:16.81 GNYDAKwF0.net
>>190
$ はコマンド入力を示しているだけなので入れなくていいよ
195:159
17/05/08 23:12:59.99 DHydgTad0.net
>>191
どうも。 やってみましたがダメでした。
C:\xampp\htdocs\_tests>php -S localhost:8080
'php' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
196:デフォルトの名無しさん
17/05/08 23:31:11.67 9whwcEDU0.net
trim関数を文字列に適用する際は、事前に前後のいずれかに空白や改行文字があるかのチェックをした方がいいですか?
とりあえず放り込んどいても問題ないですかね?
197:デフォルトの名無しさん
17/05/08 23:55:01.57 pOsiqUbS0.net
>>192
C:\xampp\htdocs\_tests>php -S localhost:8080
この部分は、君が入力していないから、書かなくてよい
C:\xampp\htdocs\_tests>
php -S localhost:8080
環境変数PATHに、php の実行ファイル名を指定していないから、
php と言うコマンドが存在しない
PowerShell を起動して、以下を入力してみ。
$env:Path.split(";")
環境変数PATHは、; で区切り
「環境変数 path 追加」で検索して
198:デフォルトの名無しさん
17/05/08 23:58:02.04 GNYDAKwF0.net
環境変数に C:\xampp\php; を追加だね
とりあえず動かしたいなら ..\..\php\php -S localhost:8080
199:デフォルトの名無しさん
17/05/08 23:59:39.10 pOsiqUbS0.net
>>193
ここで聞く前に、やってみれば?
$str = "あいう";
$str = trim ($str);
echo $str;
200:デフォルトの名無しさん
17/05/09 00:04:20.24 q6L/Mjxw0.net
>>196
見かけ上問題ないのと本当に問題ないのは違うと思いまして質問させていただいた次第です
201:デフォルトの名無しさん
17/05/09 00:09:30.62 DXl/dI3b0.net
159ですがもう一つ質問があります。
【OS名】Win7-Pro
【PHPのバージョン】5.6.28 (XAMPP v.3.2.2)
【連携ソフトウェア】ブラウザはFirefoxかChrome
【質問内容】
JavaScriptでPHPを起動し、サーバー内の同一ディレクトリ内にある abc.txt (最初はカラ)
に文字列を書き込みたい。
本を見てローカルでは上手くいったので、159のURLリンク(wpcos.com) のコードの下に
$handle = fopen("abc.txt", "w");
flock($handle, LOCK_EX);
fwrite($handle, "テスト文章です");// abc.txtにデータを書き込む
flock($handle, LOCK_UN);
fclose($handle);
を追加したのですが、abc.txt は何も変化しません。 どうしたら良いでしょうか?
>>194-195
後で試してみます。 PowerShell って初めて聞きましたのでこっちも調べてみます
202:198
17/05/09 00:26:37.79 DXl/dI3b0.net
上記の「本を見てローカルでは上手くいったので」は
書き込みコード($handle~fclose($handle); )限定の話です
203:デフォルトの名無しさん
17/05/09 00:54:54.81 aLfyMh4W0.net
先の質問は解決してんのか?
してないんなら何やったって無駄
204:デフォルトの名無しさん
17/05/09 01:00:42.46 bmQioI1H0.net
>>197
しなくていいと思います
205:198
17/05/09 01:08:19.06 DXl/dI3b0.net
>>200
はい、解決しています>>164。 >>186~195は>>170-171 で提案して頂いた別案の検証です。
206:デフォルトの名無しさん
17/05/09 01:13:51.44 aLfyMh4W0.net
>>202
ならとりあえずエラー(Warning等)出てないかチェック
207:198
17/05/09 01:33:02.97 DXl/dI3b0.net
>>203
どうも。 下記のようにしたところ、 20 kakikomi と表示され、コード自体は実行されたようです。
※20は解消済みの掛け算。 コンソールログには何も表示されません。
try {
$handle = fopen("abc.txt", "w");// abc.txtを書き込みモードで開く
flock($handle, LOCK_EX);// abc.txtをロックする
fwrite($handle, "テスト文章です");// abc.txtにデータを書き込む
flock($handle, LOCK_UN);// abc.txtのロックを解除する
fclose($handle);// abc.txtを閉じる
print " kakikomi";
} catch (Exception $e) {
print " error";
}
208:デフォルトの名無しさん
17/05/09 01:37:20.86 aLfyMh4W0.net
コード先頭でerror_reporting(E_ALL);
209:デフォルトの名無しさん
17/05/09 17:01:44.91 oUHmrZCO0.net
>>204
その try catch に何を期待していたのか分からないが、
エラー処理は正確にね。
210:デフォルトの名無しさん
17/05/09 18:20:53.53 D8dw9aKcH.net
>>204
abc.txtを全ディスクで検索してみたら?
それか、fopen("C:\\abc.txt", "w")として、フルパスで指定するか。
211:デフォルトの名無しさん
17/05/09 18:36:53.05 me68cFh4M.net
教えてください。
PDOでSQLからデータ取ってきてそのまま配列に入れたら、
Array (
[0] => Array ( [title1] => hoge [0] => hoge [title2] => fuga [1] => fuga [title3] => piyo [2] => piyo )
…
てな感じで1つのRowに同じ値が2つな状態になるんですけど、
これ配列入れる前か後に、どっちか1つにできる方法ないですかね。
このあとforreachの処理に投げたんすけど、データがダブっておかしなことになったので…。
よろしくお願いします。
212:デフォルトの名無しさん
17/05/09 18:50:53.71 1JEWBzos0.net
>>208
ロードのオプションで、数字かキーか両方(指定なし)がえらべる
213:198
17/05/09 23:18:52.77 DXl/dI3b0.net
皆さん、有難うございます。
>>205
何も表示されませんでした
>>206
すいません気を付けます
print "例外キャッチ:", $e->getMessage(), "\n";
とかで書いておきます。
>>207
Cross origin requests でエラーが出たのでローカルでなくサーバー上でやっています。
214:デフォルトの名無しさん
17/05/10 00:26:12.62 KrmbBI200.net
>>210
ini_set('display_errors', 1);
も追加しとけ
215:デフォルトの名無しさん
17/05/10 00:37:08.48 KrmbBI200.net
>>210
あと勘違いしているようだから言っておくと, fopenは例外を投げない
というファイル操作関数は例外を投げない
ファイル操作で例外処理をしたければSplFileObjectを使うかset_error_handlerでエラーハンドラを書き換える
216:198
17/05/10 01:14:47.13 hTeNJ02Z0.net
>>211-212
有難うございます
217:デフォルトの名無しさん
17/05/10 11:18:19.10 fvTwvO+tM.net
>>209
公式に同じような配列の処理例がありますね…fetch使えばいいのか。
よく調べます、ありがとうございます。
218:デフォルトの名無しさん
17/05/10 12:07:27.61 kZ1vOxdN0.net
ImageCreateFromJPEG($imgfile);
$imgfileにjpg画像以外のpng画像やgif画像を入れるとエラーになるのはわかったのだけど
pn
219:g画像やgif画像をjpg画像に変換する方法がわかりません。 やり方が分かる人がいらっしゃいましたら教えてください。
220:デフォルトの名無しさん
17/05/10 12:15:15.94 kZ1vOxdN0.net
すいません。
できました。
imagecreatefromstring(file_get_contents($imgfile));
こうすればpng画像でもできるようです。
ありがとうございました。
221:デフォルトの名無しさん
17/05/10 14:02:06.75 DOCc0Zf4H.net
>>210
> ローカルでなくサーバー上でやっています。
なら、そのサーバ上のディレクトリに対して書き込み不可なんじゃないの?
やることその1: fopen()の戻り値$handleを調べて、成功しているかどうか確認する(falseなら失敗)
やることその2: サーバのエラーログを見る
222:デフォルトの名無しさん
17/05/10 22:09:56.39 auOc2utQM.net
とにかく不具合あればアクセスログ、エラーログを見ろ
それで8割は原因分かる
223:198
17/05/11 00:26:19.85 WqhQ6yh90.net
>>217-218
有難うございます。 昨日から体調が悪いので検証できません
224:デフォルトの名無しさん
17/05/11 17:04:44.60 jqKKP1Mj0.net
【OS名】Windows 10 Home
【PHPのバージョン】5.6.30
【連携ソフトウェア】OpenWeatherMap(API)
【質問内容】
URLリンク(ryus.co.jp) を参考にして、ウェブサイトに東京都の天気情報を表示したいです。
ただ、OpenWeatherMapからの天気情報をJSON形式で取得すると方角の値が0~360で返ってきます。
この値を方角に置き換えて風向きのテーブルに表示したいです。
まだ、PHPを始めたばかりでswitch分しかわからず、それを使用しています。
switch分を変数に代入したり、sprintf関数に組み込んでみたりと色々試しているのですが上手くできないです。
風向きのテーブルに方角を表示するためのアドバイスをください。
よろしくお願いします。
$url='URLリンク(api.openweathermap.org)';
$json=json_de
225:code(file_get_contents($url),true); $format=' <tr><td>気温</td><td>%s°C</td></tr> <tr><td>風向</td><td>【ここに方角を表示したいです】</td></tr> <tr><td>風速</td><td>%sm/s</td></tr> <tr><td>湿度</td><td>%s%%</td></tr> '; echo sprintf($format,$json['main']['temp'],$json['wind']['speed'],$json['main']['humidity']); $degree=$json['wind']['deg']; switch($degree){ case $degree > 348.75 && $degree < 11.25: echo'北'; break; (同じような感じで方角が16分割されています) }
226:デフォルトの名無しさん
17/05/11 17:06:00.89 qQCmyvYW0.net
GPLのダウンロード方法教えて下さい。
227:デフォルトの名無しさん
17/05/11 17:33:13.49 auiRJU69M.net
>>220
上手くできないって何が上手くできないのか?
エラーログが出てるならエラーログの内容をそのまま書いてほしい
エラーログが出ないなら、エラーログを出すようしにして、エラーログの内容を書いてほしい
そうすれば答えてくれる人がいると思う
228:デフォルトの名無しさん
17/05/11 18:28:19.55 g90U9udHa.net
array_reduceは常にインデックス通りの順番で動くことが保証されてますか?
例えば配列の全ての数字を引き算するときに使っても問題ありませんか?
229:220
17/05/11 18:35:43.44 jqKKP1Mj0.net
>>222
エラーが出ないというか出せないというかうまく言葉で説明できないです。
申し訳ないです。
もう少し試行錯誤します。
ありがとうございました。
230:デフォルトの名無しさん
17/05/11 19:23:37.16 SE/IN+7B0.net
>>220
$degree > 348.75 && $degree < 11.25:
348.75 より大きくて、かつ 11.25 よりも小さい数字ってあるかな?
231:デフォルトの名無しさん
17/05/11 19:30:24.73 5AwxqDXW0.net
jsonの中身を貼ればいいんじゃない?
232:デフォルトの名無しさん
17/05/11 20:28:10.01 bHhk+rd90.net
PHP5.6なのですが、php.iniのoutput_bufferingをOnにしないと
CookieやSessionが使えなくなったのですが、関係あります?
Cookieが使えない原因が分からず、output_bufferingをOnにしたら使えました
ググっても関連があるようには思えないのですが、もしあるなら教えてください
233:デフォルトの名無しさん
17/05/11 20:50:12.91 auiRJU69M.net
関係あるよ
URLリンク(php.net)
バッファオフにした場合は
出力した後にsetcookieしたらダメ
234:デフォルトの名無しさん
17/05/11 20:53:36.93 bHhk+rd90.net
>>228
マニュアルに書いてましたか・・・
勉強不足でした。ありがとうございました
235:デフォルトの名無しさん
17/05/13 14:56:11.69 DB8bCe2a0.net
みなさん、画像ファイルのアップロード先フォルダはどのようにしていますか?
単純に/uploadsみたいなところに入れますか?
それともWordpressみたいに
/uploads/2017/05というように日付でフォルダ分けして管理しますか?
236:デフォルトの名無しさん
17/05/13 15:15:34.69 EKwOhdT+0.net
状況に応じて変わるとしか言えん
どういう使い方するか考えればおのずと決まるはず
237:デフォルトの名無しさん
17/05/13 16:37:08.01 DB8bCe2a0.net
確かにそうなんですが、
ある程度のスタンダードな考え方・分け方は知りたいと思いまして。
他のサイトを調べると日付で分けることが多いみたいなんで、
大量に画像をアップロードする可能性があるなら、そうしてたほうが無難なんですかねぇ
238:デフォルトの名無しさん
17/05/13 19:20:12.73 bYeLo1gSa.net
imageフォルダでいいじゃん。
239:デフォルトの名無しさん
17/05/15 00:06:32.69 TcVKQbFq0.net
>>230
何故フォルダに分けてるのかは、お前は分かっていないということだな? 231、233も含めて
240:デフォルトの名無しさん
17/05/15 11:21:27.48 1833Pji90.net
Configure::read()
という書き方って専門用語でなんて言うのでしたっけ?
PHPのバージョンによってもこの書き方が使える場合とエラーになる場合があり、
それを調べようと思ったのですが、用語をど忘れしてしまいました
241:デフォルトの名無しさん
17/05/15 11:48:48.70 1833Pji90.net
疑似変数ですかね。
色々と質問させていただきましたが、
マニュアルを見逃すことが多いので、注意したいと思います。
242:デフォルトの名無しさん
17/05/15 12:28:14.73 Nyf5aX+Ca.net
スコープ定義演算子
243:198
17/05/15 17:52:15.38 dvw/ajfi0.net
(続き)今日はシフトの非番なのでやってみました
------------------
>>211の ini_set('display_errors', 1); は
failed to open stream: Permission denied in ・・・ test01.php
となりました。 ※長々と文章が続きますのでここだけ抜粋
------------------
>>212
例外処理でSplFileObjectを使ってみました。
try {
$obj = new SplFileObject("abc.txt", "w");
} catch (Exception $e) {
//エラー処理
echo $e->getMessage();
}
これだと 500 (Internal Server Error) が出ます。
set_error_handler は未だです
------------------
>>217の「fopen()の戻り値$handleを調べて」で
$handle = fopen("abc.txt", "w");// abc.txtを書き込みモードで開く
print $handle;
をやってみましたが、何も表示されません。
------------------
現時点での結論は「原因が全く分からない」です。
244:デフォルトの名無しさん
17/05/15 18:17:58.64 Jjv98UEoH.net
>>238
> >>217の「fopen()の戻り値$handleを調べて」で
> $handle = fopen("abc.txt", "w");// abc.txtを書き込みモードで開く
> print $handle;
> をやってみましたが、何も表示されません。
>
> ------------------
> 現時点での結論は「原因が全く分からない」です。
いやいや、何も表示されないというのは、fopen()が失敗してるってことだよ。
falseをprintしても何も表示されないから。
成功してたら、"Resouce id #5"みたいに表示されるはずだから。
245:デフォルトの名無しさん
17/05/15 18:24:42.83 Jjv98UEoH.net
つか、
>>238
> >>211の ini_set('display_errors', 1); は
> failed to open stream: Permission denied in ・・・ test01.php
> となりました。 ※長々と文章が続きますのでここだけ抜粋
エラーの原因出力されてるじゃん・・・
246:デフォルトの名無しさん
17/05/15 19:55:48.98 Vb5ZKsqrM.net
とにかくエラーログがてるところまで何とかしろ
そこにたどり着く前に色々やっても何も分からんだけ
先に進まず、まずはここだけやれ
そしてエラーログが出るようになったら必ずログを確認しろ
500エラーなら必ず理由がログに出る
247:211
17/05/15 20:17:22.18 nSGL9egfa.net
>>238
せめてさ, エラーメッセージでググるくらいのことはしてくれよ
248:デフォルトの名無しさん
17/05/15 21:04:15.00 fnDHHxZB0.net
ローカルで使用する時に別ドライブから画像参照したい
htmlだと
<img src="file:///I:/img/0000.jpg">
こう書けば別ドライブから画像を参照して表示できるのだけど
PHPではこう書いてもできない。
どうすればいいでしょうか?
249:211
17/05/15 21:15:35.34 nSGL9egfa.net
>>243
URLリンク(php.net)
250:198
17/05/15 22:19:38.89 dvw/ajfi0.net
>>239-242
FFFTPでサーバー上の目的テキストのパーミッションを開き、権限者「その他」で「書き込み」
にチェックマークを入れたところ、print $handle; は Resource id #3 が出ました。
※Chromeで実行しましたがエラーは出ていません
文字化けしていますが曲りなりに成功しました。 有難うございます。
251:198
17/05/15 22:44:25.11 dvw/ajfi0.net
(追記)
文字化けは、目的テキストの文字コードを UTF-8 にするため
$str = "テスト文章です";
$str = mb_convert_encoding($str, "UTF-8", "EUC-JP");
でOKでした。
何故か "EUC-JP" でなくファイルの元コード "sjis" や "Shift_JIS" から
変換すると文字化けのままです。
252:デフォルトの名無しさん
17/05/16 00:20:46.81 P5MMw6+60.net
>>244
お返事ありがとうございます。
ローカルだとうまくいきませんでした。
何か別の方法を考えてみます。
253:デフォルトの名無しさん
17/05/16 00:55:45.12 hc9PncuC0.net
>>247もそうだけど、上手くいかないならまずはアクセスログ、エラーログを見よ
ログがでてないならまずはログを出すところから始めろ
PHP ログ 出力 でググって調べろ
上手くいかない場合、ここで聞くよりログを見た方が確実だし早い
254:デフォルトの名無しさん
17/05/16 01:19:07.84 T1OkV7Tma.net
>>235
staticメソッド
255:デフォルトの名無しさん
17/05/16 11:16:48.66 3A9hLCJa0.net
冷たいようだが手遅れになる前にハッキリと言っとく
プログラムが意図した通りに動かない時
自分でエラーメッセージを確認してググるなり本なりで調べて解決しようとして
私はこう思ってこうしたのだけど動きません
という質問の仕方なら分かるし将来性はある
動きません
分かりません
という質問の仕方しかできないなら、ハッキリ言うがプログラミングには向いてない
手遅れになる前に他の業界にいきましょう
256:デフォルトの名無しさん
17/05/16 12:22:29.62 CV++bHOB0.net
>>250
でもそれはアナタが慣れているから。
初心者はエラーメッセージの出し方も分からないないし、長々としたメッセージの
どこを見れば良いかも分からない。
優越感の視点で書いちゃダメだよ。それに
> ハッキリ言うがプログラミングには向いてない
オマエ、FPGAのプログラミングもやったことあるの?
プログラミングなんてPC上でカタカタやって終わりのモノだけだと思ってないか?
それに資料の殆どが英語という言語もあるんだぜ
257:デフォルトの名無しさん
17/05/16 12:29:18.04 EpHNLcPNa.net
プログラミングやってたら知りたい情報が英語で書かれてることなんて珍しくもないし、そんなとこで優越感持たれても困る
業界どうこうの話じゃなくて、自助努力の痕跡が見つけられるかどうかでしょ
258:デフォルトの名無しさん
17/05/16 13:01:25.46 3A9hLCJa0.net
>>251
日進月歩の世界だから自分の力で調べて解決する能力のない人は向いてないってだけの話
長ったらしいエラーが出たら出たで、今度はそのエラーをググればいいじゃないか
昔はググる事すらできなかったのにさw
別にプログラミングに限った話でもない
20半ばぐらいまでならまだ間に合うから、さっさと業種を変えた方がいい
手遅れになった人を何人も見てきてるし30過ぎまで引きずるとほんと悲惨だよ
お前そんなんじゃ結婚もできないだろって奴ばっか
FPGAなんて言葉を出して優越感()に浸ってるお方には理解できないのかもしれないけどさw
259:デフォルトの名無しさん
17/05/16 13:04:24.73 UWwVfOAn0.net
というか物凄く親切丁寧なPHPのエラーですら読んで理解できないのはプログラム云々以前の問題だと思う
中学レベルの英語力すらないのか?
260:デフォルトの名無しさん
17/05/16 13:05:13.59 CV++bHOB0.net
>>253
要はエラーが出ない場合は、「エラーメッセージの出し方を教えて下さい」で、
あと「どの個所を見れば良いのですか?」 という2行を追加ということでOK?
あとFPGAの存在は知っておいて損は無いよ。
専用ツールをライセンス購入すると100万円超えるけど
261:デフォルトの名無しさん
17/05/16 13:10:06.47 7x0iPo/hM.net
優越感に浸ってる痛い255がいると聞いて
262:デフォルトの名無しさん
17/05/16 13:17:27.07 CV++bHOB0.net
このスレのキーワードは『優越感』になりそうだなw
263:デフォルトの名無しさん
17/05/16 13:25:03.78 Ilchk1CoH.net
>>251
オマエ、今年の痛い奴No1を更新したぞ
264:デフォルトの名無しさん
17/05/16 13:49:00.36 6VEQJAMtM.net
検証の手順と質問の仕方は考えてほしい
超能力者じゃないと答えられん質問投げられてもだれも得しない
エラーログを出す(まったく出てないなら出す方法から調べる)
エラーログを見る
エラーログをコピペしてググって調べる
再度ソースを確認する
それでも分からなければソースとエラーログを
他人に見られてはいけないところ(パスワードどか)以外全部ここにコピペで書け
そうすれば答えてくれる人も多くいると思う
ソースだけとかでも分からない場合が多いので
265:デフォルトの名無しさん
17/05/16 14:13:25.93 Ilchk1CoH.net
>>243
> ローカルで使用する時に別ドライブから画像参照したい
> htmlだと
> <img src="file:///I:/img/0000.jpg">
> こう書けば別ドライブから画像を参照して表示できるのだけど
「ローカル」というのがローカルPCで動作するHTTPサーバを指すなら、HTMLでも表示できないと思うが。
単にHTMLファイルをダブルクリックして表示することを指しているのなら、それに変わるPHPの使い方はできない。
266:デフォルトの名無しさん
17/05/16 14:34:15.08 l7Nmuuc60.net
テンプレに追記が必要か?
[プログラムが動かない場合]
* エラーは出ているか?
出ている→コードと内容をそのままコピペ
出ていない→error_reporting(E_ALL); ini_set('display_errors', true); をコード先頭に追記して実行して表示されるエラーをコピペ
267:デフォルトの名無しさん
17/05/16 16:49:20.37 WEDWU0250.net
すいません、以下質問させてください。
SQLで取得したデータを多次元配列に入れてHTMLのテーブルでリスト表示してます。
そのテーブルヘッダにドロップダウンリストを付けて、
複数条件の絞り込み機能を付けたいのですが、
配列をフィルタリングするにあたり、どのような関数またはロジックを使えばいいでしょうか。
キー(フィールド):
10列ほど。検索値の指定は全キー必須ではなく、指定したりしなかったりされる。
なお1列だけ数値データがあり、それについては範囲検索する。(0-3, 4-6, 7-9…)
配列形式:
Array (
[0] => Array ( [titile1] => hoge [titile2] => fuga [~ [title10] => 2 )
[1] => Array ( [titile1] => piyo [titile2] => fuga [~ [title10] => 7 )
[2] => Array ( [titile1] => hoge [titile2] => hogera [~ [title10] => 5 )
…
例えば、title1をhogeでドロップダウン選択したら、
Array0と2のレコードを抽出して表示
よろしくお願いします。
268:デフォルトの名無しさん
17/05/16 17:06:54.87 dXmAFpYY0.net
>>262
配列をフィルタリングするんじゃなくて sql の where 句を変えるようにするんだよ
269:デフォルトの名無しさん
17/05/16 17:36:29.81 WEDWU0250.net
>>263
ありがとうございます。
1ユーザー単位の検索回数が多いであろうと想定して必要以上のDBアクセスを避けるために、
最初のページ読込で全データとったらあとは配列でなんとかしたかったのですが無理そうですかね…。
270:デフォルトの名無しさん
17/05/16 17:48:51.64 Ilchk1CoH.net
>>264
Javascriptで実装する範疇ですね。
Web制作板に適切なスレがあるかも・・・。
まぁ簡単に言えば、条件に適合する行は描画して、そうでない行はスキップすればいい。
それを全部自前で実装するか、何かのライブラリを使うか、フレームワークを使うか。
ライブラリは、URLリンク(datatables.net)とか。
これ以上は、Web制作板かな。(Javascriptの質問を重ねないように)
271:デフォルトの名無しさん
17/05/16 17:53:29.44 ekUh1gbRa.net
普通にarray_filterじゃダメなの?
272:デフォルトの名無しさん
17/05/16 17:58:06.48 Ilchk1CoH.net
>>266
クライアントでやりたいんだと思うよ。
273:デフォルトの名無しさん
17/05/16 18:08:30.13 WEDWU0250.net
>>265
やはり、いち関数とかでどうこうできないですかね…残念。
検索値のログを取りたくてPHPを選択してみた経緯でした。
JavaScriptではファイル書き込みなどのファイル操作ができないようなので。
ありがとうございます。
274:デフォルトの名無しさん
17/05/16 18:13:09.89 Ilchk1CoH.net
>>268
サーバにクエリ投げてPHPで実装すれば?
275:デフォルトの名無しさん
17/05/16 18:15:43.77 /gdfS9gt0.net
いや、PHPでもゴリゴリ実装すればできると思うよ
ログも取れるし
SQLで間引くか、表示の直前で間引くかすれば良い
当然、適切なSQLを生成して必要な情報のみ取得して表示した方がサーバには優しい
276:デフォルトの名無しさん
17/05/16 18:16:14.25 dXmAFpYY0.net
>>264
まずは普通に作ってみたらいいのにと思うんだけど。
・>>265 がいうようにクライアントでフィルタをかけるなら、クライアントに全データを渡すこと�
277:ノなるのは問題ないのか (配列にフィルタかける方法を知りたがってるんだからクライアントでのフィルタは意図していないと思っていたけど) ・セッションに保持するなら、データが更新されたときの整合性はどう担保していくのか を考慮しないといけないんじゃない?
278:デフォルトの名無しさん
17/05/16 18:23:37.41 Ilchk1CoH.net
もう、全件Excelに読み込んで、Excelの機能でフィルタリングしちゃえ
279:デフォルトの名無しさん
17/05/16 18:30:03.35 l7Nmuuc60.net
RESTで必要な分だけJSONで取れるようにすればよいのでは
280:デフォルトの名無しさん
17/05/16 18:42:09.76 WEDWU0250.net
みなさん、ありがとうございます。
>>266
あらためて調べなおしてみたら、array_filterでいけるかもですね。
これだと検索キーのぶんだけ、ネストでぶら下げていかなきゃいけない…のかな。
とりあえずベタでやってみます。
数値の範囲指定検索がややこしそう…。
>>267
最初はJqueryとか使って動的にやれたらな~と軽く考えてましたが、
検索値指定してボタン押したら、セッションで検索値と配列渡して飛び先のphpページで処理して表示する流れにしました。
>>269
クエリでやらないのは>>264に書いた理由でした。
>>270
そうですねー、あまり余計な負荷は避けたいかなと。
>>271
クライアントにはデータは渡したくないので、あくまでサーバー側で処理したいと考えてます。
おっしゃる通り、まずはトライしてみます。array_filterで。
セッションの部分はまだ勉強不足でして…宿題です。
(データ登録は数日に1回10件くらいなのでシビアに見なくても大丈夫…かな?)
281:デフォルトの名無しさん
17/05/16 21:08:45.69 6VEQJAMtM.net
アクセス多いならデータベースに負荷をかけない方法として
memcacheやradisなどのキャッシュサーバ使ったり
PHPのAPCキャッシュを使うことも検討するといいよ
いきなりは厳しいけど、徐々に勉強していけばいいと思います
282:デフォルトの名無しさん
17/05/16 21:11:58.31 6VEQJAMtM.net
Redisは正式にはキャッシュじゃなかった
キャッシュ的にも使えるよ、という意味です
Sessionよりもより効率的なので将来的にはここまで頑張って進んでほしい
283:デフォルトの名無しさん
17/05/16 21:29:08.64 9H3961U80.net
>>261
良いのでは?
スレタイを声に出して100回読んでみろと言いたいところだが>>250は真実だしな
口が臭い奴にお前口が臭いよとはっきり言う方がある意味では親切なのと同じで
向いてない奴には向いてないとはっきり告げるのも必要だ
綺麗事だけじゃ仕事は勤まらん
284:デフォルトの名無しさん
17/05/16 21:33:22.36 9H3961U80.net
>>274
既に誰かが書いてたらすまないが、初回のsql発行結果を元に配列ソート用のJavaScriptのコードをPHPで出力してやるなんてやり方もあるよ
もう少し詳しく書きたいんだがスマホからなのですまない
285:デフォルトの名無しさん
17/05/16 21:57:02.88 P5MMw6+60.net
>>260
> 単にHTMLファイルをダブルクリックして表示することを指しているのなら、それに変わるPHPの使い方はできない。
ありがとうございます。
それがわかっただけでも対策を立てることができるので助かります。
286:デフォルトの名無しさん
17/05/17 07:51:06.10 3lPWTVzo0.net
すいませんapcuみたいな有効期限付けれる kvs ライブラリで有名なの教えてもらえませんか
拡張機能ではなくcomposerで入れられるのがいいです
287:デフォルトの名無しさん
17/05/17 09:42:34.81 u2bs0BxyM.net
>>280
URLリンク(github.com)
有名でもないし、有効期限の実装もまだかもしれん
PHPだけでの実装なら都度都度ディスクから読み書きするしかないだろうから色々と厳しそう
SQLite使えるならそこにKVS実装するとか
ぶっちゃけ、どこかにmemcachedプロセス立�
288:ソ上げるのが一番速いと思う
289:デフォルトの名無しさん
17/05/17 11:50:09.98 3lPWTVzo0.net
>>281
ランキング的なものをjsonで書き出して普段は読み込むだけなのでファイルでもいいかなと
レンサバなのでmemcachedは難しそうです
ありがとうございましたm(__)m
290:デフォルトの名無しさん
17/05/17 12:56:49.09 lSa7TP7B0.net
>>276
そうなんですよねー。
いずれSQLはコールドデータ的にして、Redisにコピってそっちでやり取りできたらいいなあと。
Dockerとかで環境作れそうですけど、基本的な実装が終わったらトライしてみたいですね。
APCキャッシュは知らなかったので調べてみます。
>>274
そんなやり方があるんですね。
お時間あったらでいいのでもう少し情報いただると助かります、
自分のほうでも調べてみますので。
ありがとうございます。
291:デフォルトの名無しさん
17/05/20 12:45:16.74 juCOIKkd0.net
文字列の最後が「Part1」とか「Part23」と感じなってるんだけど
この数値の部分を取り出すにはどうすればいいでしょう?
292:デフォルトの名無しさん
17/05/20 13:22:04.09 +AHq9zzn0.net
正規表現でいいだろ。とくに高速にこだわなければ。
293:デフォルトの名無しさん
17/05/20 14:06:53.01 fTSvx8FL0.net
Partを空文字列に変換する
294:デフォルトの名無しさん
17/05/20 14:23:35.28 VyG0A5Zf0.net
Partが固定長ならsubstrが最速だと思う
295:デフォルトの名無しさん
17/05/21 00:05:30.55 GvMHZSOA0.net
>>284です。
正規表現でできました。
ありがとうございます。
296:デフォルトの名無しさん
17/05/21 12:28:59.50 ANSA2OhR0.net
【OS名】WindowsServer2012R2
【PHPのバージョン】5.4.9
【連携ソフトウェア】Apache2.2
PECL2.0.1.2(PHP5.4ThreadSafe)
Oracle12.1.0.2(x64)
OracleInstantClientBasic12.2.0.1.0(x86)
OracleInstant ClienODBC12.2.0.1.0(x86)
【質問内容】PHPからDB接続が失敗します。
アドバイスください。
そもそもこの組み合わせで動作しない?
【やったこと】
環境変数Path
OracleInstantClientBasicのbinを先頭に追加。
tnsnames.ora、sqlnet.oraの設定
httpd.conf
LoadModule php5_module "c:/php/php5apache2_2.dll"
php.ini
extension_dir = "c:/php5/ext"
※"ext"、"c:\php5\ext"に変えても同じ
extension=php_oci8_12c.dll
(extフォルダにphp_oci8_12c.dllを格納)
apache再起動・OS再起動
参考にしたサイト
URLリンク(www.php.net)
【判明していること】
apacheのerror.log…oci_connect undefined function
phpinfo…oci8の項目がない。
他の32ビットアプリからOracle接続できています。
297:デフォルトの名無しさん
17/05/21 19:05:16.60 YAwwHXxQ0.net
extentionの組み込みに失敗してるようだから、
試しに他のextention組み込んでみれば?
それもダメならそもそもextention動的に追加できない環境とか
298:デフォルトの名無しさん
17/05/21 21:24:59.33 rRI3ub450.net
phpまったく分からない初心者で申し訳ないんですが、こちらの(URLリンク(www.punyu.net))お絵かき掲示板をサイトに設置したいのですが、設置方法通りにやっても
Parse error: syntax error, unexpected '}' in ""/poti/htmltemplate.inc(312) : eval()'d code on line 147
このようなエラーが出てしまいます…
該当のファイルは全く手を付けていないので原因が全く分かりません。
本来ならば配布サイトで聞くことなんですが、かなり昔に更新停止してしまっているようで…。
ご教示いただけたら幸いです。
299:デフォルトの名無しさん
17/05/21 22:10:58.34 YAwwHXxQ0.net
>>291
そのサイト見ても403エラーしか表示されないのでよくわらかんが、
syntaxエラーということはプログラムが正しい記法で記述されてないということ
PHPのバージョン違いで対応してないのかもしれない
そもそも更新が停止されてるプログラムなんかセキュリティホールあるかもしれんし
素人ならなおさら使うべきではないと思う
ちゃんと今もメンテされてるところを探すべき
300:デフォルトの名無しさん
17/05/21 22:14:17.37 1J6dhIFt0.net
そのファイル見たらfor PHP4とか書いてあるんだけど
PHP4のEOLから約9年なんですけど
301:デフォルトの名無しさん
17/05/21 22:27:21.97 rRI3ub450.net
みなさんアドバイスありがとうございます。やっぱり古いのはだめなんですね…。
今までレンタルサーバーを使っていたのですが、こちらのURLリンク(github.com)
ツールを使いたくて先程のお絵かき掲示板を設置しようとしていたのです…。こちらで普通につかえているようなので大丈夫だと思ったのですが…。
302:289
17/05/21 22:43:45.41 ANSA2OhR0.net
>>290
ありがとうございます。
明日試してみたいと思います。
303:デフォルトの名無しさん
17/05/22 11:49:09.51 d1deCwH80.net
訪問者が以前見ていたページからオススメのページを表示させたいのだけど
そういうことはできるのでしょうか?
詳細な情報は自分で調べてくるので大凡な概要を教えてください
304:デフォルトの名無しさん
17/05/22 11:58:52.67 wBUnNup00.net
出来るだろうけど、オススメのページを決めるのはあなただよね?
305:デフォルトの名無しさん
17/05/22 12:05:10.49 d1deCwH80.net
オススメというか同カテゴリの人気ページを表示させたいと思っています。
306:デフォルトの名無しさん
17/05/22 12:12:45.56 wBUnNup00.net
アクセスユーザーがログインする形なら、ログインしたユーザーID
ログインしいなら、クッキーを使ってアクセスユーザーを特定する
後はサーバー側で、人気ページ集計やオススメページを決定し
そのアドレスに誘導するなりお好きなように
307:デフォルトの名無しさん
17/05/22 12:17:01.23 d1deCwH80.net
ログインはないのでクッキーと言うものを使ってみようと思います。
ありがとうございました。
308:デフォルトの名無しさん
17/05/22 12:20:23.07 pVaUfe3+0.net
訪問者をどうやって区別するのか?
ログイン処理などでID管理してればID使えるし、そうでないならcookieで識別するか?
訪問者が以前見たページの情報をどこにどうやって保存するのか?
データベースに保存するのか、ファイルに保存するのか?
オススメのページをどう選定するのか?
ページのごとにIDをふって、オススメページの対応表を自分で作るのか?
ユーザの動向からオススメページを決める手法はかなり難しい
レコメンドアルゴリズムとか協調フィルタとかでぐぐれ
PHPにもライブラリはいくつかあるようだが、そのまま使うのは厳しいかも
309:デフォルトの名無しさん
17/05/22 13:31:50.42 o9BH+SoNH.net
>>296
「レコメンドエンジン」でググるといいよ。
たとえば、
「レコメンドエンジン(協調フィルタリング)をPHP+Redisで実装」
URLリンク(qiita.com)
310:デフォルトの名無しさん
17/05/22 16:59:57.37 0HmMgaGq0.net
switch文でcaseが30個超えたりする場合
もっと簡潔にする方法ってありますか?
単純に引数の値によって個々の返値を変えたいんですが、
シンプルな方法がわかりません。
311:デフォルトの名無しさん
17/05/22 17:17:20.84 QSwouUjx0.net
連想配列とissetでやるとか?
312:デフォルトの名無しさん
17/05/22 17:17:24.50 iPaI6PDPa.net
>>303
そのswitchが何回出て来るかによる
1回ならもうそのままでいいし繰り返し出て来るならケース自体をオブジェクトにしてexecute呼ぶだけにするとか
313:303
17/05/22 18:38:52.91 0HmMgaGq0.net
配列も考えたんですが、うまい方法がわかりませんでした。
出てくるのは一回だけなので、このままでいってみます。
ありがとうございました。
314:デフォルトの名無しさん
17/05/22 22:58:53.15 V20bT2wiM.net
連想配列の方がスマートだと思う
キーを定義ファイルとかにまとめればswitchよりもキレイで見やすい
315:デフォルトの名無しさん
17/05/23 21:42:21.92 t
316:FSGr+Xo0.net
317:デフォルトの名無しさん
17/05/23 21:45:25.83 tFSGr+Xo0.net
すみません誤記がありました
上記の
var_dump(require '/xxx/foo.php');
で requireとなっていますが、
var_dump(require_once '/xxx/foo.php');
でもtrueが返ります。
318:デフォルトの名無しさん
17/05/23 22:14:10.10 J05KrQMn0.net
>>308
use.phpとfoo.phpを同一ディレクトリに配置して
'/xxx/foo.php' -> __DIR__.'/foo.php'
に書き換えて動かしたけど再現しない
実際に再現するコードは?
319:デフォルトの名無しさん
17/05/23 22:29:34.43 tFSGr+Xo0.net
>>310
検証ありがとうございます。
今、私も foo.php と use.phpを同じカレントにおいて実行したところ
実行できました。
つまり、この問題は「foo.phpとuse.phpのディレクトリ(及び実行するカレントディレクトリ)が違う」
という問題が原因していることが新たにわかりました。
ディレクトリが違うと問題が起きるのでしょうか?
読み込んだモジュールと読み込んだ側、実行カレントなどの
ディレクトリを揃える手段ってありますか?
320:デフォルトの名無しさん
17/05/23 23:31:00.98 J05KrQMn0.net
>>311
ディレクトリaaaを掘ってそこにuse.phpを移動しかつ
__DIR__.'/foo.php' -> __DIR__.'/../foo.php'
として問題なく動作する
繰り返すが再現する条件と実行可能なコードを出せ
きちんと原因を知りたいならな
321:デフォルトの名無しさん
17/05/24 01:00:45.23 rx1CXyDY0.net
>>312
すみません、自己解決しました。
上記の質問をしたのは autoloadの useが使えなくなり、
require_once(); もcomposerでインストールしたライブラリでは
使えなかったためで、
そもそもの useが使えない原因を特定しました。
私はwindowsから macにPCを変えたばかりで、macでは
\マークと\ を分けていることに気が付きませんでした。
option + \ で \ を出力できることを知り、 useの問題を解決しました。
require_once ();の問題は解決したことにはなりませんが、
とりあえず useで問題なく外部ファイルを読み込めるのでこれで解決
と思うことにしました。
お騒がせして本当にすみません。
322:デフォルトの名無しさん
17/05/24 01:02:21.63 rx1CXyDY0.net
あれ、投稿したら ¥マークもバックスラッシュになっちゃいましたね・・
つまり、このことがよくわかっていなかったということになります。
323:デフォルトの名無しさん
17/05/24 13:44:43.12 AcsriXHn0.net
DIRECTORY_SEPARATOR
324:デフォルトの名無しさん
17/05/24 14:00:22.54 ktSIKEk8H.net
>>314
円記号とバックスラッシュは同じ文字コードです。
表示するフォントで見え方が違うだけ。
325:デフォルトの名無しさん
17/05/24 15:13:25.30 AcsriXHn0.net
>>316
せっかく環境まで書いてくれているというのに君は
326:デフォルトの名無しさん
17/05/24 15:28:30.43 ktSIKEk8H.net
>>317
macでは円記号とバックスラッシュは別の文字コードってことか?
327:デフォルトの名無しさん
17/05/24 15:35:58.82 ktSIKEk8H.net
なるほど、調べたらmacでは円記号は0xA5なのか。
それは知らなかった。
328:デフォルトの名無しさん
17/05/24 20:03:57.63 AcsriXHn0.net
>>319
utf-8で1バイト目が0xA5にはなりえないというのに君は
329:デフォルトの名無しさん
17/05/25 11:03:31.77 yXnULsJhH.net
>>320
何に関してレスされてるのかわからん。
macでバックスラッシュ使うところを0xA5の円記号を使っておかしくなったって話じゃないのか?
330:デフォルトの名無しさん
17/05/26 16:50:51.17 NBObyIGd0.net
コンストラクタの引数を使ってひとつの処理を実行するだけのオブジェクトを作る場合
コンストラクタに全ての処理を書いてインスタンス生成のみを行うのと
実行用のメソッドを作って、インスタンス生成直後に$foo->do()から実行するのと
どちらで作るのが一般的なんでしょうか?
処理は内部的な物で、どうしても必要なクラスという条件です
331:デフォルトの名無しさん
17/05/26 17:02:35.49 FvwfjnU+H.net
>>322
> 処理は内部的な物で、どうしても必要なクラスという条件です
なら、コンストラクタで実行するしかないよね。
332:デフォルトの名無しさん
17/05/26 17:03:43.14 EqtXAXHq0.net
インスタンス生成の必要がないように読めるが。
333:デフォルトの名無しさん
17/05/26 18:44:12.74 NBObyIGd0.net
確かに、必要なさそうでした・・
334:デフォルトの名無しさん
17/05/30 07:24:05.71 3I8BlO+30.net
>>322
生成&メソッド呼び出し
DIやテストを書いてみれば分かると思う
335:デフォルトの名無しさん
17/06/03 14:50:17.96 vHC5ipdf0.net
Webページのソースコードが文字化けするページを見つけたのですが対象方法がわかりませんでした。
どのようにすれば良いのでしょう?
$url="URLリンク(momoniji.com";)
$html=file_get_contents($url);
$html=mb_convert_encoding($html,'utf8','auto');
echo $html;
336:デフォルトの名無しさん
17/06/03 17:44:17.71 mWYP1opd0.net
文字化けではない
HTTPレスポンスヘッダのContent-Encodingを見れば分かるがレスポンスボディはgzip圧縮されている
だから結果をgzdecode関数にかければよい
337:デフォルトの名無しさん
17/06/03 19:15:54.54 vHC5ipdf0.net
>>328
ありがとうございます。
ずっと文字化けだと思っていました。
解決できました。
338:デフォルトの名無しさん (オッペケ Sr71-i0+1)
17/06/09 21:35:08.67 itsdSOhir.net
ftp関数ってftp関数の使用が許可されているサーバーから許可されていないサーバーに通信できるの?
さくらインターネットはftp関数使えないけど、使えるサーバーからさくらに接続できる?
339:デフォルトの名無しさん (オイコラミネオ MMeb-jiBQ)
17/06/09 22:47:35.09 ltTPD1ZbM.net
受け入れる側が許可してないと何やっても繋がらんよ
ftpdのプロセスが立ち上がってて、かつ必要なポート番号が開いてる必要がある
アクティブモードかパッシブモードかによって色々変わる
さくらのサーバ側がどうなってるか確認すれば良い
繋げる側は通信が外に出ていければだいたい大丈夫
もちろんftpプロトコルで通信できる環境は必要だが
340:デフォルトの名無しさん (オッペケ Sr71-i0+1)
17/06/10 00:10:31.61 0tXhVGnur.net
>>331
つまりftpソフトで繋がるサーバーならphpのftp関数とは関係なく大丈夫ってことですかね
繋げる側はエックスサーバーでやってみて大丈夫でした!
341:デフォルトの名無しさん (ワッチョイ 4500-jiBQ)
17/06/10 01:01:48.16 nnTfCPYs0.net
>>332
繋ごうとする側にFTPクライアントかFTP関数的なものが必要ということだよ
何のファイルを送受信するか分からんけど、
素のFTPだと暗号化されてないから注意せよ
今の時代ならSFTPとかSCPとか使う方が安全
342:デフォルトの名無しさん (オッペケ Sr71-i0+1)
17/06/10 06:16:39.22 0tXhVGnur.net
>>333
ああ、そうなんですね。
だとすると繋ごうとする先のレンタルサーバーを確認しないとダメですね。
うーん、仕様を確認してわかるものなのか…。
ちなみに送受信するのはhtmlやcssファイルです。
自分のサーバー(ftp関数を実行して繋ぐ側)はエックスサーバーで決まりなんですが、
ftp関数で繋ぐ先のサーバーはいろんなホスティング会社のサーバーです。
ロリポやさくらなどのレンタルサーバー会社。
ftpソフトで繋げられるからといってphpのftp関数でも繋げられるとは限らないということですね。
343:デフォルトの名無しさん (ワッチョイ 4500-jiBQ)
17/06/10 11:06:58.62 nnTfCPYs0.net
>>334
XServerはPHPがほぼ最新だし、
ftp_connect系の関数も基本は標準で入ってるはず
FTPプロトコルは接続時のお作法がサーバの設定によって色々変わるから大変だと思うが頑張って
344:デフォルトの名無しさん (オッペケ Sr71-i0+1)
17/06/10 12:10:45.46 0tXhVGnur.net
>>335
ありがとうございます!
ちょっと他のサーバーを仮契約して試してみます!
345:デフォルトの名無しさん (ワッチョイ 1532-Ell8)
17/06/12 02:02:20.17 9HEIoQd30.net
>>336
> ftpソフトで繋げられるからといってphpのftp関数でも繋げられるとは限らない
普通につながるから安心していいよ
つなぐ先のサーバのphpにftp関数があるかどうかは関係ない
346:デフォルトの名無しさん (オッペケ Sr71-i0+1)
17/06/12 11:13:25.44 9bwuxRECr.net
>>337
そうなんだ!
昨日からいくつかサーバー確認しはじめたけど、それがわかるならテストしなくていいから助かります!
347:デフォルトの名無しさん (オイコラミネオ MMeb-jiBQ)
17/06/12 21:29:01.90 HwT26Y2zM.net
いや、テストはした方がいいよ
そりゃ、たいていは繋がると思うが
ポート番号とかモードの設定とかサーバ側の設定次第で色々調整が必要になることはある
348:デフォルトの名無しさん (ワッチョイ 1532-Ell8)
17/06/13 00:13:35.53 MT1aMd9/0.net
ちなみにだけど不正アクセスには使ったらあかんよ
349:デフォルトの名無しさん (オッペケ Sr71-i0+1)
17/06/13 09:25:25.23 onzjies9r.net
>>339
ポート番号とかモードはユーザーが設定できるようにしてるので大丈夫かな
>>340
そういう目的じゃないので…
逆に不正アクセスできないように配慮はしてるつもり
350:デフォルトの名無しさん (ワッチョイ 15db-55DC)
17/06/13 11:59:39.85 y4mccwa90.net
画像ファイルをアップロードして一覧表示するプログラムを作成していて、
iOS端末だけ保存ファイル名が取れないのですが原因わかりますでしょうか。
formから以下の記述で取得してもすべてimage.jpgにリネームされて
複数アップロードしてもぜんぶ同じ画像になってしまいます。
index.html
<form name=“upform" method="post" action=“test.php" enctype="multipart/form-data">
<input type="file" name="uploadfile[]" multiple>
…
test.php
$_FILES["uploadfile"]["name"]
よろしくお願いします。
351:デフォルトの名無しさん (ワッチョイ e511-Z3xB)
17/06/13 16:22:16.49 e75WWAwz0.net
APIを作りたいんですが
codeigniterとかフレームワークを使うのってへんですか?
352:デフォルトの名無しさん (JP 0H6b-yTT2)
17/06/13 17:07:34.26 3KAtKhUpH.net
>>343
・そこそこの数のAPIを作る
・認証が必要
・自前でCSRFとかの対策だるい
・自前でルーティングするのだるい
とかなら、フレームワークおすすめ。
ただ、フルスタックのでかいフレームワークじゃなくて、マイクロフレームワークと呼ばれる
のを調べてみるといいよ。
LumenとかSlimとかSilexとか。
353:デフォルトの名無しさん (ワッチョイ 23cd-D9zB)
17/06/13 20:13:16.36 If/p8sdd0.net
>>343
変じゃない。
>>344が書いてるようにフレームワーク使った方が楽。
LumenやSlimもいいんだけど、マイナーだからなにか問題起こると
ググっただけでは答えが見つからないこともある。
初心者だったらメジャーなフレームワーク選ぶといいよ。
最近シェア落としてるけどcakeでいいと思う。
エラーメッセージそのままコピペしてググれば、ほぼ答えが出てくる。
354:デフォルトの名無しさん (ササクッテロル Sp71-DEJT)
17/06/14 01:10:32.29 7F7xS9xRp.net
ありがとうございます!
355:デフォルトの名無しさん (ワッチョイ ddc2-OlK+)
17/06/14 14:12:06.77 gEXW+PhK0.net
かなりひさしぶりにPHP触るんだけど今ってテンプレートエンジンは何が熱い?
昔は、smartyが遅いからsmarty記述法と互換性がある自作エンジンを作ってやってたんだけど
最近熱いエンジンのソースコードが見たくなった
356:デフォルトの名無しさん (ワッチョイ ddc2-OlK+)
17/06/14 14:13:39.40 gEXW+PhK0.net
「自作エンジンを作って」ってなんか頭痛が痛いみたいだ
気にしないでw
357:デフォルトの名無しさん (JP 0H6b-yTT2)
17/06/14 14:20:31.94 /XZF9UoWH.net
その自作エンジンでええやん
358:デフォルトの名無しさん (ワッチョイ 7d6c-Fz1p)
17/06/14 14:44:27.06 M56szTyh0.net
質問失礼します。
php7でサーバプログラムを作成中です。
HttpsRequestでデータを受けとってレスポンス、そのデータをWebSocketで別クライアントに返すという機能を実装したいのですが、
両方のポートで待ち受けるようなプログラムって実装可能なんでしょうか?
(1つのポートでも構いませんが、、、)
php7 + Apache で色々試したり、フレームワークのSilexを入れて試したりしましたが、
これってつまりプロセス間通信だったり、なにかしらのストレージに入れないと無理ですよね?
359:デフォルトの名無しさん (JP 0H6b-yTT2)
17/06/14 15:38:38.63 /XZF9UoWH.net
>>350
HTTPリクエストを受け取って処理する部分は、待ち受けする必要ないでしょ
リクエストを受け取って、何か処理して、WebSocketサーバにデータを送信する
WebSocketのサーバもPHPで書きたいなら、そこでは当然接続を待ち受ける必要がある
360:350 (ワッチョイ 7d6c-Fz1p)
17/06/14 15:57:19.95 M56szTyh0.net
>>351
WebSocketは待ち受けて、HttpRequestは待ち受けない(Apatchまかせ)のであれば、データをWebSocketでクライアントに送信する際、確実にストレージなりを利用する事になります。
今回それをやりたく無いので、両方同じクラス内で待ち受けて処理できれば、クラス内の一時メモリを使いまわせるのになぁ。
と思った次第です。Silexで試した理由はそれです。
361:デフォルトの名無しさん (JP 0H6b-m0Mh)
17/06/14 16:03:38.60 /XZF9UoWH.net
>>352
> データをWebSocketでクライアントに送信する際、確実にストレージなりを利用する事になります。
え?なんで?
a.phpがHTTPリクエストを処理したなら、a.phpからWebSocketサーバはsocket通信だよ?
362:デフォルトの名無しさん (JP 0H6b-m0Mh)
17/06/14 16:10:17.81 /XZF9UoWH.net
>>352
読み間違えてた
a.php: Apacheから呼び出される何かのリクエストを処理するコード
WebSocketサーバ:あるポートで待ち受ける、WebSocketプロトコルをしゃべるサーバ
のとき、a.phpはWebSocketクライアントだよ?
363:350 (ワッチョイ 7d6c-Fz1p)
17/06/14 16:11:37.43 M56szTyh0.net
>>353
という事は、a.phpが呼ばれたらlocalhostに接続して送信切断という流れなんですね。
確かにそれでも可能です。
後から要件追加して申し訳ないですが、a.phpが短時間に大量に実行されるので、できれば接続と切断は繰り返したくないのがあります。
364:350 (ワッチョイ 7d6c-Fz1p)
17/06/14 16:16:39.58 M56szTyh0.net
今試したら、WebSocketのsocket_acceptでHttpRequestを受け取れました。
httpもsocketも同じtcpだからacceptするんですね。目から鱗でした。
接続と切断を繰り返してしまいますが、これしかないですかねぇ。。。
365:デフォルトの名無しさん (JP 0H6b-m0Mh)
17/06/14 16:18:14.83 /XZF9UoWH.net
>>355
ちょっとまってくれよ
HTTPリクエストを捌くのはmustなの?そうじゃないの?
短時間に大量のリクエストってどれくらい?100req/sec?10000req/sec?
366:デフォルトの名無しさん (JP 0H6b-m0Mh)
17/06/14 16:19:03.30 /XZF9UoWH.net
>>356
つか、WebSocketが何者だか理解してるか?
367:デフォルトの名無しさん (ワッチョイ 1532-Ell8)
17/06/14 16:19:16.79 3zsLXGHk0.net
まるで同一サーバで別プロセスが同一ポートでLISTENしているかのような書き方だけど、どこかに隠し情報があるんだろうなぁ
368:デフォルトの名無しさん (ワッチョイ ddc2-OlK+)
17/06/14 16:21:41.56 gEXW+PhK0.net
>>349
他言語ばっかやっててPHP書くのなんて久しぶりだから
最近の流行りもののソースコードを何となく見てみたくなるんだよw
そこで自分が全く知らない新しい事を見つけたら嬉しくならない?
369:デフォルトの名無しさん (ワッチョイ 0be3-ceo9)
17/06/14 16:24:58.32 mnieIMJY0.net
海外レンタルサーバーを借りたのですが
○○○.com/ にアクセスると
○○○.com/?i=1
というように、すべてのurlに ?i=1がくっついてくるのですが、これを取り払うには htaccessに何と書けば良いのでしょうか?
それとも他に方法がありますでしょうか?
370:デフォルトの名無しさん (ワッチョイ 1532-Ell8)
17/06/14 16:29:06.69 3zsLXGHk0.net
>>360
どのくらい久しぶりなのかによるけど、改めてsmarty使ってみたら?
「smarty遅い」といってもいろんな理由があるので、使う側の問題で遅いということもある。
他のエンジンがいいならbladeとかtwigとか。
もっとも、やっぱり自作最高やってなりそうな人にも見えるので、やるだけ損かもしれない。
371:350 (ワッチョイ 7d6c-Fz1p)
17/06/14 16:30:12.68 M56szTyh0.net
>>357
同時接続2000人が想定のチャットサーバ書いてます。
WebSocketの処理でhttpのパケットを解析しようかとも考えたのですが、a.phpを叩いてもらって、
そこから接続切断する方が楽そうですね。。。
ブラウザからのhttp requestをWebSocketで受けたらデータが汚すぎて萎えました。
(接続と切断を2~3回繰り返す。。。)
372:デフォルトの名無しさん (JP 0H6b-yTT2)
17/06/14 16:33:39.90 /XZF9UoWH.net
>>360
> 最近の流行りもののソースコードを何となく見てみたくなるんだよw
見たいんならさっさと見ろ
373:デフォルトの名無しさん (JP 0H6b-m0Mh)
17/06/14 16:35:46.52 /XZF9UoWH.net
>>363
だーかーらー、そのチャット中にHTTPリクエストを捌くのは必要なの?不要なの?
いらないんじゃないの?
374:デフォルトの名無しさん (ワッチョイ 23cd-D9zB)
17/06/14 16:40:37.12 2WK2RY/D0.net
>>364
>>360みたいな人には何言っても無駄だよ。
「~したい」「~やりたい」と言うだけで実際には何もしないし出来ない。
そういう奴は相手しないこったね。
375:デフォルトの名無しさん (ワッチョイ 7d6c-Fz1p)
17/06/14 16:40:41.43 M56szTyh0.net
>>365
http request内のデータが取得できるのであれば、なんだって大丈夫です。
なのでmustではないという事になりますかね。
376:デフォルトの名無しさん (JP 0H6b-m0Mh)
17/06/14 16:40:42.09 /XZF9UoWH.net
WebSocketでチャットとかありがちで、ググればサンプルも死ぬほどあるだろうけど、
たとえは、これ URLリンク(qiita.com)
チャットそのものは、JavascriptとWebSocketサーバがやりとりする
WebSocketサーバは、別に何で実装してもいい
もちろん、最初のページはHTTPリクエストで取得する
このラインでいいの?駄目なの?
駄目だとしたら、何が必要なの?
377:350 (ワッチョイ 7d6c-Fz1p)
17/06/14 16:48:14.61 M56szTyh0.net
>>368
少し祖語があるみたいです。
http request発行者はクライアントではなく中核サーバーになります。
(上でブラウザで試したというのはクライアントを模してやったわけではなく、単なるテストとしてやりました)
今書いているコードはクライアントと中核サーバーとの中継サーバーのものです。
中核サーバーのコードは修正できません。
そこからhttp requestでメッセージが飛んでくるんです。
そういう意味ではhttp requestを捌くのはmustですね。。。
378:デフォルトの名無しさん (JP 0H6b-m0Mh)
17/06/14 16:58:29.14 /XZF9UoWH.net
>>369
やっと、どんなものか輪郭が見えたよ
> そういう意味ではhttp requestを捌くのはmustですね。。。
だったら、多数回の接続・切断は必要だということじゃないかな
まぁ、これ以上、俺からは何も言えないけど、ひとつだけ言えるとしたら、
最初に戻って、複数のポートで待ち受けできるかどうかだけど、できるよ
URLリンク(php.net)
379:350 (ワッチョイ 7d6c-Fz1p)
17/06/14 17:02:24.05 M56szTyh0.net
>>370
おお!
パッと見どうやって使うのか、まだよく理解できていませんが、貴重な情報ありがとうございます!
言葉足らずですいませんでした。
380:デフォルトの名無しさん (JP 0H6b-m0Mh)
17/06/14 17:06:01.29 /XZF9UoWH.net
>>371
実際PHPで使ったことないから、ほんとにできるかどうかは不明
できなかったらごめんね
PHPのサンプルは見つからなかったけど、select()はこんな感じで使える
URLリンク(totofuga.hateblo.jp)
381:デフォルトの名無しさん (ワッチョイ 23cd-D9zB)
17/06/14 17:08:42.57 2WK2RY/D0.net
同時接続2000人ってかなりデカいサービスなので数限られる。
動画配信が一番可能性高いけど、そういう仕事やってるとこは・・・。
まさか会社から2chに繋げてないよね?
知り合いの会社の社員のような気がしてきたw
2chに書き込むとインフラとセキュリティにメールが飛ぶとこもあるぞ。
気をつけなされ。
382:デフォルトの名無しさん (ワッチョイ 1532-Ell8)
17/06/14 17:10:02.55 3zsLXGHk0.net
>>372
> 実際PHPで使ったことないから、ほんとにできるかどうかは不明
> できなかったらごめんね
普通のソケットプログラミングとほぼ同じだよ
383:デフォルトの名無しさん (ワッチョイ ddc2-OlK+)
17/06/14 19:32:47.41 gEXW+PhK0.net
>>362
bladeとtwigありがと
smartyはこういうところが変わった
bladeはここがいい
今一番伸びてるのはtwigだ
そういうレスを期待してたんだけどね
なんかグダグダ余計な事言ってるアホが居るから消えるわ
>>366
なんだその決め付けはw
2ch脳も大概にしてくれや
面倒くせぇやつだな
384:デフォルトの名無しさん (ワッチョイ 9a88-y0cV)
17/06/15 00:40:42.03 yD3vPxkF0.net
アフィリエイトのリンクはクリックしたら広告先のURLに移動しますが、
PHPでアフィリエイトリンクからクリック先のURLを取得する方法はないでしょうか?
(つまり、クリックせずに正規のURLが取得したい)
get_headers($url)は無理でした
385:デフォルトの名無しさん (ワッチョイ aee3-yC+1)
17/06/15 00:52:33.37 orz99gKc0.net
>>376
通常はクリックするアクションでGetやPostを要求し、
サーバー側の処理により移動先サイトのURLを受けとることになる
だから、クリックしないと無理じゃないかな
386:デフォルトの名無しさん (ワッチョイ aee3-yC+1)
17/06/15 01:04:52.89 orz99gKc0.net
もしもHTMLソースに埋め込む様な形でリンクが張ってあるなら
ソースを読んで該当箇所を探し、取得する事は出来るかも知れない
387:デフォルトの名無しさん (オッペケ Srab-kfIt)
17/06/15 05:45:49.72 teBxPoyNr.net
アフィリリンクはたいていリダイレクトしてるから無理じゃないかな
388:デフォルトの名無しさん (ワッチョイ c791-FeJb)
17/06/15 08:48:34.30 3zpPLTtW0.net
head要求とか?
389:デフォルトの名無しさん (ワッチョイ 3aed-g/RG)
17/06/19 14:11:01.90 JoeiF6VU0.net
【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
と表示されました。
データベース接続のため、アドバイスをいただきたいと思います。
足りない情報などもあると思いますが、宜しくお願いいたします。
390:デフォルトの名無しさん (ワッチョイ 5383-VgqF)
17/06/19 14:28:03.46 4/2FI0cI0.net
・'mysql://user名:passlocalhost/データベース名' の内容が間違ってる
・MySQLが起動してない
あたりのオチでは?
そもそも今MDB2を使うメリットって皆無だと思うからPDOを勉強した方が良いと思うけど
391:デフォルトの名無しさん (JP 0Ha6-yC+1)
17/06/19 14:29:02.12 Ce38C9l/H.net
>>381
最初のアドバイスとしては、MDB2はもう未来がないからPDOにしとけってこと
392:デフォルトの名無しさん (JP 0Ha6-yC+1)
17/06/19 14:29:28.56 Ce38C9l/H.net
かぶったw
393:デフォルトの名無しさん (ワッチョイ 3acd-2WTa)
17/06/19 16:11:35.81 6320K+Ej0.net
10年前に終ってるものを今さら引き合いに出すなってw
394:デフォルトの名無しさん (ワッチョイ 5383-VgqF)
17/06/19 16:46:26.99 4/2FI0cI0.net
2014年発行の本でMDB2をとりあげた理由ってなんだろう
PHP5.3系の古いバージョンのPDOだと
文字コードの指定ができないという致命的な欠点があったけどその関係だろうか?
そこまで踏み込んで解説されてるのであれば別に良いけどね
恥ずかしながら
「一般社団法人 PHP技術者認定機構」なんてものがある事を初めて知ったw
実務でどれくらい役に立つんだろうねこれ
395:デフォルトの名無しさん (ワッチョイ 4fe3-yC+1)
17/06/19 17:27:56.89 7bEKAPau0.net
>>381
PHP5技術者認定初級の公式教本って
オライリージャパンの「初めてのPHP5 増補改訂版」かな?
原書の方は Final Release Date: June 2004ってある。
日本語翻訳で追補しているかも
7章の13辺りからPDOでの操作が載っているようだから、
その辺と読み替えてみたらどうだろう
396:デフォルトの名無しさん (ワッチョイ 876c-BQIS)
17/06/19 20:39:06.96 2foBmcl+0.net
2014年でMDB2なんて使う必要性ゼロだったと思う
当時でもPDOもしくはmysqliのどっちかしか推奨されてなかった気がする
その本はすぐに捨てて2015年以降に発刊された本を買い直した方がいい
できればPHP7に対応してるやつ
397:デフォルトの名無しさん (ワッチョイ 4fe3-yC+1)
17/06/19 21:49:59.12 7bEKAPau0.net
この本から出題されるらしいから、それは無理だと思う
398:デフォルトの名無しさん (ワッチョイ 87cd-hHqA)
17/06/19 21:50:08.46 LhGzpkui0.net
つか、phpなんてググるだけでいいだろ
教本なんていらんのや!
399:デフォルトの名無しさん (ワッチョイ 4fe3-yC+1)
17/06/19 21:58:44.96 7bEKAPau0.net
真面目な修行僧に失礼な!
400:デフォルトの名無しさん (ワッチョイ eb00-BQIS)
17/06/20 02:19:52.47 iK2sGPi10.net
目的はPHPの試験に受かりたいってこと?
なら動かさなくてもいいじゃん、暗記だけでいいと思うよ
正直、もうほとんど使われてないライブラリだから
実際には大して役に立たない
試験受かったら新しめの本買って学び直せ
401:デフォルトの名無しさん (ワッチョイ f723-Udsw)
17/06/28 23:04:51.83 7cLKB0Py0.net
PHPや他言語で、JSのconsole.log();みたいに
オブジェクトや配列を▼ボタンで折りたたみ/展開できる
デバッグ方法ない?
402:デフォルトの名無しさん (ワッチョイ 572b-LvKX)
17/06/28 23:07:31.32 8ccEp+RW0.net
>>393
それブラウザの機能だから
403:デフォルトの名無しさん (ワッチョイ c1c2-OatX)
17/06/29 08:09:11.69 IUqqYZb20.net
Laravel使ってdd()
404:デフォルトの名無しさん (ブーイモ MMed-p+6f)
17/06/29 17:16:58.19 olsHrbVIM.net
多次元配列どうしの結合で教えてくださいませ。
以下のようなそれぞれの配列を、
Array1
(
[0] => Array
(
[key1] => 1
[key2] => 2
)
Array2
(
[0] => Array
(
[key3] => 1
)
このように1つの配列にまとめたい場合はどのようにすればいいでしょうか。
Array
(
[0] => Array
(
[key1] => 1
[key2] => 2
[key3] => 1
)
よろしくお願いします。
405:デフォルトの名無しさん (アウアウカー Sae9-2GBU)
17/06/29 18:00:57.13 /ne8B1aHa.net
[array_merge(Array1[0],Array2[0])]
406:デフォルトの名無しさん (ブーイモ MMed-p+6f)
17/06/29 19:19:10.78 olsHrbVIM.net
>>
407:397 できました、ありがとうございます!
408:デフォルトの名無しさん (ワッチョイ c2cd-wjSU)
17/06/30 01:31:07.59 xquLJ6q20.net
$Array1[0] + $Array2[0] でもok
409:デフォルトの名無しさん (ブーイモ MM62-p+6f)
17/06/30 14:43:54.43 IOmACzTvM.net
質問させてください。
条件分岐で結果の数が多い場合、
if文でネストする以外にいい方法はありますでしょうか。
配列の同じキーの値を、1~5つ前まで順にたどって、
同じ値が続いていたら続いたぶんの数を新たに配列に入れたいと考えています。
よろしくお願いします。
410:デフォルトの名無しさん (ワッチョイ c2cd-0bL8)
17/06/30 15:29:51.48 xquLJ6q20.net
foreachで回してカウントすればいいのでは?
411:デフォルトの名無しさん (アウアウカー Sae9-2GBU)
17/06/30 15:57:18.21 rakscAnxa.net
>>400
同じキーの値ってどういうこと?
二次元配列?
ネストしてていいから一回コード見せてくれると助かる
412:デフォルトの名無しさん (ワッチョイ bdc2-nP2k)
17/06/30 16:18:07.71 EFdSifWf0.net
>>400
エスパーで答えるとarray_count_values()を使えば解決する気がする
413: (ブーイモ MM62-p+6f)
17/06/30 18:59:07.63 IOmACzTvM.net
もろもろレスありがとうございます。
>>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回目";
}
414: (ブーイモ MM62-p+6f)
17/06/30 19:00:51.81 IOmACzTvM.net
>>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回目
)
…
415:デフォルトの名無しさん (ワッチョイ bdc2-nP2k)
17/06/30 19:15:45.47 EFdSifWf0.net
array_column($allData, 'zeroOne');
で
'zeroOne'の値だけ抜き出した配列を別に作ってそれをforeach()あたりで回してチェックすればいいだけな気がするが
何か勘違いしてたらすまない
※array_column()はPHP5.5以上でしか使えないから注意。仮に使えなくても自分で作れるよね?
416:デフォルトの名無しさん (アウアウカー Sae9-2GBU)
17/06/30 19:29:33.71 cIeri8pZa.net
>>404
途中で1が出てきたら打ち切り?継続?
例えばzeroOneが0,0,1,0,0の順番だった場合はどうなるの?
417:デフォルトの名無しさん (アウアウカー Sae9-2GBU)
17/06/30 19:32:52.91 cIeri8pZa.net
>>404
あとその5とか7ってのは$allDataの長さなの?
それとも要素数が100でも最初の5つだけ見るって話?
$allDataの要素数が5未満になる可能性は考えなくていい?
418:デフォルトの名無しさん (ワッチョイ c183-nP2k)
17/06/30 19:38:09.13 R3qh0H/X0.net
いまいち何がしたいのか不明な部分が多いが
$zero = array();
foreach ($allData as $k => $v) {
if ($v['zeroOne'] === 0) {
$zero[] = $v['id'];
}
}
で'zeroOne'の値が0になってる'id'だけを収めた配列$zeroを作れば分かりやすいんじゃない?
419: (ブーイモ MM62-p+6f)
17/06/30 19:41:09.28 IOmACzTvM.net
>>406
PHPのバージョンは大丈夫です。
array_columnで抜き出してforeachで回したとして、
そこで連続してるかどうかの判定は同じような条件分岐が必要ですよね?
ちなみに上記のコードは配列全件($allData)をfor文で回してる中のコードなので結局同じのような気が…$iがそのfor文の変数です。
if文の数珠つなぎ以外で書ける方法がないか知りたいんですが、
わかりにくくてすいません。
420: (ブーイモ MM62-p+6f)
17/06/30 19:54:02.55 IOmACzTvM.net
>>407
1が出ても処理は継続します。
いまのとこ1が出てきたら適当な値を入れて全件最後まで回してます。
>>408
5とか7は要素の長さとかではなく、
「同じ値が何連続まで続いているか」の判定回数です。
要素は全件見ます、いままだ100件ほどですが。
要素は今後増えるので5未満は考えてません。
>>409
ありがとうございます、検証してみます。
421:デフォルトの名無しさん (ワッチョイ 2d2d-Vkm7)
17/06/30 20:48:04.60 jM2/iqY60.net
とりあえず殴り書いてみた
$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);
422: (ブーイモ MMed-p+6f)
17/07/03 12:23:07.80 B+GGE7aBM.net
>>412
すいません、レス遅くなりました。
試してみます、ありがとうございます!
423: (ブーイモ MMed-p+6f)
17/07/03 12:35:32.09 B+GGE7aBM.net
>>412
おぉ、まさに望んでいた処理ができました!
ありがとうございます!
424:デフォルトの名無しさん (ワッチョイ 6d6c-vtNh)
17/07/03 19:17:40.49 JHZQFGt10.net
質問失礼します。
WebSocket サーバーを php で作成したのですが、Linux のコマンドラインから実行するとフリーズします(当たり前ですが)
php hogehoge.php(エンター押したらフリーズ)
フリーズしないようにするにはどう書けば良いのでしょうか?
分かる方、よろしくお願いします。
425:デフォルトの名無しさん (オイコラミネオ MMd6-OatX)
17/07/03 21:32:52.53 gkI5GTRGM.net
最後に&付けてバックグラウンドにするとが、
デーモン化するとかじゃないの?
426:デフォルトの名無しさん (オイコラミネオ MMd6-OatX)
17/07/03 21:46:40.38 gkI5GTRGM.net
screenとかtmuxとか使える環境にした方がいいかもね
427:デフォルトの名無しさん (ブーイモ MMb6-tH5o)
17/07/04 13:26:39.98 7V16igb5M.net
>>415
それフリーズちゃうw
そんなんでソケット通信やって大丈夫なの?
428:デフォルトの名無しさん (ワッチョイ 6d6c-vtNh)
17/07/04 13:27:40.09 1MjQBQYF0.net
最後に&を付ける事で解決しました。
このやり方は知りませんでした。
ありがとうございます。
429:415 (ワッチョイ 6d6c-vtNh)
17/07/04 13:31:25.48 1MjQBQYF0.net
>>418
なんて呼んだら良いか分からないです。
正式名称はなんて言うのですか?
430:デフォルトの名無しさん (ブーイモ MMb6-tH5o)
17/07/04 13:37:48.03 7V16igb5M.net
>>420
実行中?w
431:デフォルトの名無しさん (ワッチョイ 6d6c-OatX)
17/07/04 14:10:34.27 Ij02Usie0.net
処理をバックグラウンドに回してるだけだから、
最後はちゃんとフォアグラウンドに戻して終了するとか、
PIDみてkillするとかしないとダメだからな
432:デフォルトの名無しさん (JP 0H16-CicO)
17/07/04 15:05:16.21 jjyWg722H.net
>>422
SIGHUPで自動的に終了する場合もあるけどね
433:デフォルトの名無しさん (アウアウカー Sae9-HpRm)
17/07/04 16:29:15.13 vUvZYSdca.net
フォアグラウンドで待受してる状態をフリーズと呼んでたのか成程
434:415 (ワッチョイ 6d6c-vtNh)
17/07/04 16:43:25.58 1MjQBQYF0.net
rcスクリプト書いて、
service hogehoged start
で起動するようにしました。
スクリプト内で
php hogehoge.php --pidfile=/var/run/hogehoge.pid &
という風に起動しています。
pidfile は hogehoge.php 内部で getmypid() を保存しています。
kill はそのrcスクリプト内で stop 命令の時にやっています。
案の定、起動直後に [ OK ] が表示されませんが、不都合は無さそうなのでとりあえずこれで良しとしています。
435:デフォルトの名無しさん (ワッチョイ 6d6c-OatX)
17/07/04 16:55:30.44 Ij02Usie0.net
サーバーいじれる立場ならSupervisorとか使えば
PIDの管理とかいちいちしなくても簡単にできるよ
436:デフォルトの名無しさん (JP 0H16-CicO)
17/07/04 17:01:51.07 jjyWg722H.net
>>425
そのやり方だと、ターミナル閉じたら終わっちゃう環境もあるよ
437:415 (ワッチョイ 6d6c-vtNh)
17/07/04 17:32:02.24 1MjQBQYF0.net
>>426
ありがとうございます。
調べてみます。
>>427
マジですか。。。
ターミナル閉じて終わらないか確認しておきます。
幸いターミナルを起動するPCは1つだけなので、それで終わらなければ、、、
良い、、、ですよね、、、
438:デフォルトの名無しさん (ワッチョイ 6d6c-OatX)
17/07/04 17:39:59.80 Ij02Usie0.net
>>428
tty 切り離し でぐくれば色々出てくるかと
落としたくないならちゃんとデーモン化しないとダメだね
Supervisorもそのためのものです
screenとか使って手抜きの方法もあるけど