【PHP】下らねぇ質問はここに書き込みやがれ 8at TECH
【PHP】下らねぇ質問はここに書き込みやがれ 8 - 暇つぶし2ch197:デフォルトの名無しさん
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とか使って手抜きの方法もあるけど

439:415 (ワッチョイ 6d6c-vtNh)
17/07/04 17:44:00.65 1MjQBQYF0.net
>>429
ありがとうございます。
Supervisorでデーモン化を頑張ってみます。
私鯖管じゃないんですけどね。
(なぜココまでやる必要があるのだろうか。。。これPHPerの仕事ですかね?)

440:デフォルトの名無しさん (JP 0H16-CicO)
17/07/04 18:22:31.77 jjyWg722H.net
>>430
起動するコマンドラインを
nohup php hogehoge.php --pidfile=/var/run/hogehoge.pid &
とすれば大丈夫。
大抵のプロセスはHUPシグナルを受け取ると終了しちゃうんだけど、ターミナルを閉じるときに
バックグラウンドジョブにHUPシグナルを送るかどうかは、ログインシェルの設定による。
システムのデフォルトで送るか送らないかは決まってるけど、個々人で設定もできる。
詳しい話は、こことか参照。
「技術/UNIX/なぜnohupをバックグランドジョブとして起動するのが定番なのか?(擬似端末, Pseudo Terminal, SIGHUP他)」
URLリンク(www.glamenv-septzen.net)

441:デフォルトの名無しさん (ドコグロ MMe1-rRjJ)
17/07/05 14:32:35.13 54CdfmVIM.net
この言語なんなん?
explodeとか命名センスが意味不明

442:415 (ワッチョイ 6d6c-vtNh)
17/07/05 19:15:50.84 3RASZjRP0.net
>>431
ありがとうございます。
調べてみます。

443:デフォルトの名無しさん (ワッチョイ ffb1-KuRC)
17/07/07 21:30:48.34 gJwEGw/+0.net
「implodeは配列を内部で破裂させてバラバラにする感じ」
↑わかる
「逆の処理も作ったし対義語のexplodeって名前にしたろ!」
↑アホなの?

444:デフォルトの名無しさん (ワッチョイ 172b-rvkC)
17/07/07 22:38:42.30 x02w4L3o0.net
>>434
頭大丈夫?

445:デフォルトの名無しさん (ワッチョイ 77c2-1B52)
17/07/10 13:42:32.90 d1/L8Z5+0.net
他言語だとsplitで正規表現も使えるのが多いわな
PHPの場合
perlの動作と同じ正規表現対応のsplit()もあったけど、5の途中から非推奨で7で削除
正規表現を使うならpreg_split()で使わないならexplode()
他言語でexplodeというのは、少なくとも俺は聞いた事がない
他言語を使う人なら、ここら辺がPHPのイケてないところというか「何か気持ち悪い」というのは分からなくもない

446:デフォルトの名無しさん (アウアウカー Sa2b-L5XL)
17/07/10 14:08:35.69 XWLrQ2QUa.net
>>436
splitはバイナリセーフじゃないしPOSIX拡張正規表現相当じゃなかった?

447:デフォルトの名無しさん (ワッチョイ 77c2-1B52)
17/07/10 14:57:50.74 d1/L8Z5+0.net
>>437
PHPのsplit()はそうだね(正規表現でいうとereg()系)
だから非推奨→削除となった

448:デフォルトの名無しさん (スプッッ Sd3f-AoV0)
17/07/10 17:26:55.18 L6zA5hfHd.net
cakephpを入れました。
php -i grep intl ってやるとずらずら出てくるのですがこれってなんですか?
phpのバージョンは7.0です。
grep.phpを実行してるってことですか?

449:デフォルトの名無しさん (スプッッ Sd3f-AoV0)
17/07/10 17:30:53.25 L6zA5hfHd.net
php -r 'phpinfo();'て書いた時とおんなじ文字が流れてきます。
intlってなんなんだ

450:デフォルトの名無しさん (スプッッ Sd3f-AoV0)
17/07/10 17:32:40.21 L6zA5hfHd.net
どういうことかわかりました。
php -iでphpinfo()の中身が出るんですね。ほげー

451:デフォルトの名無しさん (オイコラミネオ MM4f-cxsd)
17/07/10 22:06:55.26 aPcSY6kVM.net
grepは便利だから覚えとくといいよ

452:デフォルトの名無しさん (ワッチョイ f72d-rE3N)
17/07/10 22:11:41.31 eOXntHhA0.net
g/re/p

453:デフォルトの名無しさん (ワッチョイ f791-KuRC)
17/07/11 10:58:05.61 9WLXDmTn0.net
お願いします。
以前、どこかのスレで、
「xamppを使ってPHPの開発してるなんて素人だけ。プロは使わない」
というレスを見ました。
xamppの何がいけないんでしょうか?
xamppでは開発できないことってあるんですか?

454:デフォルトの名無しさん (ワッチョイ f76c-cxsd)
17/07/11 11:43:10.26 oWge628W0.net
自分が使いやすいのを使えば良い
いちいち人の意見に流されるな
ただ、XAMPPの環境はかなり独自だから、使い方をを誤ると失敗することもある
ある程度の人数で共同開発する場合は、環境の差異をできるだけ少なくすることが大事で、
そういう意味ではXAMPPが向かないのも事実
Dockerとか使えて色々な環境に合わせられる人の方が重宝されると思う

455:デフォルトの名無しさん (ワッチョイ 77c2-1B52)
17/07/11 11:43:40.90 /I8grlwO0.net
どこのプロかは知らないけど普通にxampp+PhpStormで開発してるし
たぶんそこらのプロよりは今まで稼いできたと思う
「何で」作るかなんかどうでもいいんだよ
大事なのは「何を」作るか
そこんところ勘違いしてる自己満が多すぎるのがこの世界

456:デフォルトの名無しさん (ワッチョイ d7e3-A4lm)
17/07/11 11:53:22.03 1hL73PK30.net
素人でもプロでもXAMPPは使う価値は低いだろ。
PHP自体、単体動作するし、HTMLサーバーが必要なら実運用と同環境にすればいいし。

457:デフォルトの名無しさん (ワッチョイ d7e3-A4lm)
17/07/11 12:01:38.00 1hL73PK30.net
大抵のエディタなら、編集中のPHPファイルを保存して
PHPへコマンドライン渡すのをボタン一つに割り当てられるし、
初心者がわざわざ手間のかかる、複雑なXAMPPを導入する必要はないかと。
出力をテキスト出力したければteeとかいうlinuxコマンドつかえばいい。

458:デフォルトの名無しさん (JP 0H4f-rvkC)
17/07/11 13:25:40.02 eDZ2eR9HH.net
xamppを使ってると、いつまでたってもプロビジョニングのスキルが付かないという問題はある

459:デフォルトの名無しさん (ワッチョイ 172b-rvkC)
17/07/11 14:14:23.17 17VXZGZl0.net
使うことを否定はしないけど, あえて使う理由は全くない, という認識だなぁ
初心者がXAMPP使うって言ったらPHPビルトインサーバじゃダメなの?って必ず聞く程度には

460:デフォルトの名無しさん (ワッチョイ fc6c-Xm5V)
17/07/14 18:54:08.74 JfSdowtd0.net
phpにdefineを書いて、そのphpをrequireで読み込むのと、
DBからselectして読み込むのと、どちらが早いのでしょうか?
環境はphp7.0です。

461:デフォルトの名無しさん (アウアウカー Sa11-keXt)
17/07/14 18:56:12.40 jnI4lmfma.net
後者が速い道理がないと思うが

462:デフォルトの名無しさん (ワッチョイ aef3-sRAo)
17/07/14 19:11:27.17 HO8OiFgU0.net
ちょとしたマスターはphpで配列で記述するな。いちいちデータベースにテーブル作るのが面倒臭いし

463:デフォルトの名無しさん (ワッチョイ 0f2c-oLxb)
17/07/17 14:15:03.61 skPTPWAp0.net
[NEET@]$ sudo pecl upgrade --force
pear.php.net is using a unsupported protocol - This should never happen.
PEAR Version: 1.10.1
PHP Version: 7.0.18-0ubuntu0.16.04.1
Zend Engine Version: 3.0.0

bosukete

464:デフォルトの名無しさん (ワッチョイ e168-S4qQ)
17/07/17 22:44:40.32 JiDb02xz0.net
(*´ω`*)敗北獣クヤシタン達が使う単語は「キチガイ」
(*´ω`*)むぅは基地外基地外連呼されている未来が見えるむぅ
(*´ω`*)語彙力に乏しいチンパン達むぅ
(*´ω`*)予想できてしまうむぅ

465:デフォルトの名無しさん (ワッチョイ e168-S4qQ)
17/07/17 22:46:08.35 JiDb02xz0.net
(*´ω`*)だだだだだだれもむぅの相手してねーし!俺は放置してたし!
(*´ω`*)これも簡単に予測できてしまうむぅ
(*´ω`*)悲しいまでにむぅの予測の範囲内の行動と言動むぅ
(*´ω`*)いつまでもむぅには勝てないむぅ

466:デフォルトの名無しさん (スプッッ Sd9e-6y5b)
17/07/18 01:48:33.36 C9WrI85dd.net
>>456
tasukete

467:デフォルトの名無しさん (ワッチョイ a72e-wRDQ)
17/07/19 10:50:46.59 /cP3Nfpt0.net
OPCache Control Panelで項目値を見ると、
Num Cached Scripts、Num Cached Keys、Misses
これらが全部1,000越えで同じ数値です。
これはMissesということは悪いことなんですよね?
これはどの項目を調整するのでしょうか?

468:デフォルトの名無しさん (ワッチョイ a72c-sZOJ)
17/07/20 18:55:16.33.net
Downloader.php kara error message otteru
bosukete;;

469:  (ワッチョイ a7db-HOSA)
17/07/21 12:38:52.89.net
>>459
syoboiyo, masarusan

470:デフォルトの名無しさん (ワッチョイ a72c-sZOJ)
17/07/21 15:55:04.27 A3+KSiPv0.net
犯人をついに突き止めたお。やっぴょんやっぴょん

471:デフォルトの名無しさん (ワッチョイ a72c-sZOJ)
17/07/21 16:58:17.71 A3+KSiPv0.net
バージョン1個違うだけで変なエラー起きるとか怖すぎる
しかもグーグルにも載って中田

472:デフォルトの名無しさん (ワッチョイ 673a-QK4i)
17/07/24 09:41:11.23 ec5+WQ9L0.net
じゃ、グーグルに載せといて

473:デフォルトの名無しさん (スプッッ Sddb-twOH)
17/07/24 12:15:14.49 L9kPqg7Vd.net
xmlの読み込みモジュールとchannel見比べてるとわかるお

474:デフォルトの名無しさん (ワッチョイ a72c-sZOJ)
17/07/24 13:59:06.94 12EOQT380.net
まぁ困ってない奴にはどうでもいいエラーだし変にスレで騒いですまんかったお
rom

475:デフォルトの名無しさん (ワッチョイ 2768-QK4i)
17/07/25 20:58:38.97 kCK3fogD0.net
(*´ω`*)今月からお給料が上がって幸せむぅ
(*´ω`*)>>1000なら母港拡張に書類一式を購入してを由良改二に渡して幸せにするむぅ

476:  (ワッチョイ 7bdb-dA36)
17/07/27 19:35:33.46 Csut7k2B0.net
教えてください。
以下のような多次元配列で、
[result]-[name]のWIN値をカウントしたい
(もしくはこのKeyに入ってる値それぞれカウント)のですが、
いい方法ありますでしょうか。
array_count_valuesかなと思いましたが、
多次元だとKeyの指定がよくわからず詰まっています。
よろしくお願いします。
Array(
[0] => Array(
[time] => 1500819445
[num] => 148
[result] => Array(
[hoge] => PERFECT
[name] => WIN
)
)
[1] => Array(

)

477:デフォルトの名無しさん (アウアウカー Safb-DM25)
17/07/27 20:05:23.44 sZy4zkwKa.net
>>467
いまいち何がしたいのかわからんけど、array[i]['result']['name']に'WIN'という文字列が入っている要素の個数を知りたいってこと?

478:  (ワッチョイ 7bdb-dA36)
17/07/27 20:24:38.68 Csut7k2B0.net
>>468
そうですね、要は勝利(敗北)数と勝率を出したいです。

479:デフォルトの名無しさん (ワッチョイ bef3-V1Wy)
17/07/27 21:08:37.22 XkpzjwEU0.net
URLリンク(ideone.com)
自分ならこんな感じにするでえ

480:デフォルトの名無しさん (ワッチョイ bef3-V1Wy)
17/07/27 21:13:57.44 XkpzjwEU0.net
ERRORになった部分は除外したけど無効試合とするのもありやな

481:  (ワッチョイ 7bdb-dA36)
17/07/28 11:38:43.28 QA+Om+Ws0.net
>>470
おお、勉強になります。
自分の方でも調べましたが、
array_count_values自体は指定したキーを
再帰的になめてカウントしてくれるような機能じゃないみたいですね…勘違いしてました。
やはり配列ループの中で条件判定が良さそうですね。
ご教授のコードは汎用性が高そうなので、
検証してベースにしてみます。
ありがとうございました!

482:デフォルトの名無しさん
17/08/04 04:22:27.98 ZjmB654k0.net
質問です
jcode.phpを使っているRSSリーダーが突然読み込まなくなりました
まさかとは思いますが、配布元のURLリンク(www.spencernetwork.org)が死んでると使えないのでしょうか?

483:デフォルトの名無しさん
17/08/04 13:33:36.78 xSyituw+M.net
ソースコード読んで怪しいところ探してみなよ

484:デフォルトの名無しさん
17/08/04 20:43:08.37 PWtrz3SN0.net
質問です。
特定のアドレスに届いたメールを転送するさい、MLのように転送するスクリプトを書いています。
配信されるユーザのメアド: A
MLのメアド: B
実際に配信されるメールの中を
To: B
としたいのですが、テストをしてみると
To: A, B
となってしまいます。解決策はありますでしょうか?
以下、コードです。
$headers .= "To: " . $B . "\n";
$headers .= "Reply-To: " . $B . "\n";
mail($A, $subject, $body, $headers);

485:デフォルトの名無しさん
17/08/09 20:55:24.38 pAntvA3G0.net
>>475
初心者の俺にソースコード全部見せてみな

486:デフォルトの名無しさん
17/08/10 00:02:22.23 VfqLhNcf0.net
SMTPレイヤでRCPT TOヘッダで宛先指定すればよい
が, そもそもmail関数, というかバックエンドのsendmailコマンドでSMTPレイヤの操作って出来るのか?
リレーが設定されてなければ単にメールヘッダのToをSMTPのRCPT TOヘッダにコピーしているだけじゃなかろうか
まぁfsocketとかでSMTPサーバと会話すればいけるんじゃなかろうか

487:デフォルトの名無しさん
17/08/10 00:30:25.23 ukk4ErN50.net
>>475
$header に "To~"を入れずに、
mail($B,~ってやってみたら?

488:デフォルトの名無しさん
17/08/10 19:53:21.78 LQiYfoLSp.net
教えてください
入力フォーム→確認画面→完了画面、という流れがあったとき、
それぞれの画面をそれぞれ1ファイルで作るのは普通なんでしょうか。
たとえば、
input.php、chech.php、kanryo.php みたいな。
間に、修正画面 edit.phpが入ったりします。
自分のイメージだと、同一ファイル内(たとえばform.php)でPOSTとかsubmitされてきたフラグか何かで画面切り替えるように作るのがいいと思っているのですが、
ファイルを分ける方が一般的なのでしょうか。

489:デフォルトの名無しさん
17/08/10 20:01:27.03 VfqLhNcf0.net
フレームワーク使ってるならリクエストの振り分けはrouterの仕事
PHP側をREST APIとかにしてしまうならUI側はJavaScriptの管轄
全部スクラッチからやるなら好きにすればよい

490:デフォルトの名無しさん
17/08/10 20:38:23.52 LT6YffV+0.net
何が普通かは色々だが、
一つのソースで全部こなしたいなら
フォームにhiddenで現在のステップを埋め込み
その値をみてphp側の表示や処理を切り替えれば

491:デフォルトの名無しさん
17/08/11 16:26:25.43 cXbjkXwe0.net
>>480-481
どっちも質問の答えになってないw
質問に答えず、自分のいいたいことばっか言ってる。
こういうのがマの悪いとこだね。

492:デフォルトの名無しさん
17/08/11 18:05:30.47 IvoVUaP30.net
まずは好きに作ってみろ
答えなどないのだから
余裕ができたら他人のプログラム見ると


493:かしてみればいい



494:デフォルトの名無しさん
17/08/11 18:22:23.78 cXbjkXwe0.net
>>483
だからそれは質問の答えじゃない。
てか、なんでそんなに上から目線なの?

495:デフォルトの名無しさん
17/08/11 18:46:14.61 KjR7l4H4M.net
>>483
じゃ、お前が答えろよ
一番偉そうにしてるのもお前だし
お前みたいな口だけ番長が一番たちが悪い

496:デフォルトの名無しさん
17/08/11 19:57:59.57 cXbjkXwe0.net
ネット弁慶多すぎw
なんですぐ「~しろ」と偉そうな口調になるんだろう。
もういいや、俺が答えちゃおう。
はっきり言うと、どちらが一般的かはわからない。
すべての開発者にアンケート取って聞いたわけでもないし、
世界中に転がってる入力フォームのソース調べて集計とったわけでもないから。
でも、どちらがより合理的かといえば、1ファイルで完結させる方。
たぶん質問者はフレームワークを使わずオブジェクト指向で書いてもいないみたいなので、
1ファイル完結の方が手間は少ないはず。
画面部分にしてもロジック部分にしても同じようなこと何度もやることになる。
だから、単純なphpで書く場合、ファイルわけちゃうと面倒なんだよね。
でもまあ、こんなこと考えるくらいならフレームワーク使った方が早いよ。
無駄なこと考えなくてよくなる。

497:デフォルトの名無しさん
17/08/12 11:35:16.93 A4v2+zpKH.net
>>486
フレームワーク使う/使わないと、1ページで完結させる/させないは別問題

498:デフォルトの名無しさん
17/08/13 11:49:31.99 7mRWDzm30.net
>>487
別問題だからこそ、余分なこと考えなくてよくなるんだよ。

499:デフォルトの名無しさん
17/08/13 12:42:20.05 8bOINrWDH.net
>>488
> 別問題だからこそ、余分なこと考えなくてよくなるんだよ。
別問題だから、フレームワークを使う場合でも使わない場合でも、1ページで完結させるかどうかは
考えないといけないということ

500:デフォルトの名無しさん
17/08/13 13:24:12.29 7mRWDzm30.net
>>489
ちゃうちゃうw
そもそもなぜこんな質問が出たのかといえば、controllerとviewが分離できていないからでしょ。
さらにいえば、controllerとbusiness logicが分離できていないから。
そのへんがちゃんと出来ていれば、1ページ(1controller、1class、1function・・・)完結でも
そうでなくてもたいした問題じゃなくてなる。
そういう分離はフレームワークの基本設計の範囲に含まれるから、
何も考えなくても自然とできるようになるよ。
てかさ、元々の質問は「一般的かどうか」でしょ。
なぜ俺以外答えてやらないんだよ。
わからないならわからないでもいいじゃん。
それなのに偉そうに講釈たれるのはホントみっともない。
社会的にプログラマーの地位が低いのはそういうとこに原因がある。

501:デフォルトの名無しさん
17/08/13 13:32:39.79 8bOINrWDH.net
>>490
> そもそもなぜこんな質問が出たのかといえば、controllerとviewが分離できていないからでしょ。
controllerとviewが分離できているかどうかと、1ページで完結させるかどうかは別問題
> それなのに偉そうに講釈たれるのはホントみっともない。
関係ないこと垂れ流してるという自覚はないんですかね

502:デフォルトの名無しさん
17/08/13 13:39:51.33 8bOINrWDH.net
まあどうしても一般的かどうかを知りたいということであれば、
> 入力フォーム→確認画面→完了画面、という流れがあったとき、
> それぞれの画面をそれぞれ1ファイルで作るのは普通なんでしょうか。
は、もはや一般的ではないでしょうね。
さらに言えば、確認画面を挟むというやり方も古いと思うよ。
ユーザーは確認画面で確認なんかめったにしない。邪魔に思う人が大半。

503:デフォルトの名無しさん
17/08/13 13:46:06.21 8bOINrWDH.net
こんな感じでやればいいと思うよ。
・GET form.phpで入力ページ表示
・form.phpのsubmit先は自分自身
・入力内容をチェックしてエラーがあるなら、それも含めてまたform.phpを表示
・エラーがないなら、確認画面や完了画面にリダイレクト

504:デフォルトの名無しさん
17/08/13 14:22:04.36 7mRWDzm30.net
こういう過剰反応もアレだよなw
こんなんじゃ実際の仕事でも苦労しそうだね。

505:デフォルトの名無しさん
17/08/13 14:40:52.47 8bOINrWDH.net
>>480-481で十分なのに、自分の承認欲求を抑えられないお子様よりはましだと思うよ

506:デフォルトの名無しさん
17/08/13 17:10:21.18 YepLcy2FM.net
479


507:の質問 1ファイルで作るのは一般的か? どう作ればいいか聞いてない 読解力の問題ですね



508:デフォルトの名無しさん
17/08/13 17:20:01.06 dm/KZ1el0.net
A. ケースバイケースです
とか
A. 設計に依ります
とか, そんな回答求められてないと思うんだけど, 最終的には質問者が判断することでしょ
内容に明らかな誤りがあるとかなら分かるけどわざわざ突っかかる必要あったかね

509:デフォルトの名無しさん
17/08/13 17:20:34.33 8bOINrWDH.net
>>483が正しいかな
最近あちこちのスレで上から目線がどうのとか言ってる奴見かけるけど、同一人物か?

510:デフォルトの名無しさん
17/08/21 13:36:52.44 Eyk6c/J70.net
echoそのものにhtmlspecialcharsを仕込むことって可能ですか?
HTML側の出力を常に<?=$hoge?>にしたいです
今はエイリアスのh関数を作って<?=h($hoge)?>で出力しています

511:デフォルトの名無しさん
17/08/21 13:41:30.93 KruMS+wFH.net
>>499
> echoそのものにhtmlspecialcharsを仕込むことって可能ですか?
できません

512:デフォルトの名無しさん
17/08/21 13:49:34.80 e6Asz/TwM.net
>>500
了解す
あざした

513:デフォルトの名無しさん
17/08/21 21:05:28.15 qHWC5mXrM.net
フレームワークとかテンプレートエンジンとか使わんのは理由あるのかな?

514:デフォルトの名無しさん
17/08/22 09:05:09.59 FeXVI5vr0.net
PHP7.1を使っています。
$_SERVER['REQUEST_TIME_FLOAT']をvar_dumpしてみたところ
float(1503359895.526)
のように表示されました。
PHPマニュアルにはマイクロ秒単位でタイムスタンプを取得できるように
書いてありますが、これってミリ秒単位ですよね?
どういうことでしょうか。

515:503
17/08/22 10:27:34.58 FeXVI5vr0.net
なんとなく自己解釈すると、マイクロ秒単位まで出せる可能性があるけど
環境によっては精度が落ちるってことなんですかね…。
そう納得することにしました。

516:503
17/08/22 10:37:25.65 FeXVI5vr0.net
いや、まてよ、float型の有効桁数の問題かな?

517:デフォルトの名無しさん
17/08/22 10:38:14.89 +Na4Vgs50.net
>>504
自分も初心者なのでさっぱりんこだけど、paiza.ioとかcodechefのようなオンライン実行環境だと100マイクロ秒(小数点4位)までは出力されてるから、そういう事なんかなと

518:デフォルトの名無しさん
17/08/22 11:04:05.27 FeXVI5vr0.net
>>506
貴重な情報ありがとうございます。
microtime関数の場合だと、
microtime(false)で実行すると
"0.31535500 1503365783"のように小数部と整数部を分離した文字列が返るので
マイクロ秒の精度が得られますが
microtime(true)でfloat型の返り値を得ると
1503365783.3154のように精度が落ちますね
有効桁数の問題なんでしょうかね。このへんあやふやなんですが…。

519:デフォルトの名無しさん
17/08/22 12:24:32.06 JvbUbNw40.net
floatというか倍精度での有効桁数は十進数で16桁未満ですしおすし

520:503
17/08/22 12:36:42.11 FeXVI5vr0.net
Unixタイムスタンプによる表現だと、整数部がでかくなればなるほど
つまり時代が進めば進むほど、小数部の精度が悪くなるってことですかね。
昔は精度高かったのかな。

521:デフォルトの名無しさん
17/08/22 13:19:56.03 BcNwm5wtH.net
そもそも100nsの桁ですら、正しいかどうかあやしいんでないの?

522:デフォルトの名無しさん
17/08/22 13:21:31.58 BcNwm5wtH.net
というか、1us以上の部分も正しいかどうか怪しいかもね

523:デフォルトの名無しさん
17/08/22 13:23:20.25 JvbUbNw40.net
浮動小数を使うのがそもそもまともではない
で, 日本語版の訳が誤りであるというのが妥当で, 英語版では,
> If get_as_float is set to TRUE, then microtime() returns a float, which represents the current time in seconds since the Unix epoch accurate to the nearest microsecond.
とあるから, マイクロ秒単位で精度が出るとは書いてない, floatの精度内で現在のマイクロ秒時刻に最も近い値を返すと読める


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