【PHP】下らねぇ質問はここに書き込みやがれ 3at TECH
【PHP】下らねぇ質問はここに書き込みやがれ 3 - 暇つぶし2ch2:デフォルトの名無しさん
15/11/14 18:59:23.41 AjDQR89s.net
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.5
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・ 解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・ 誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・ SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ

3:デフォルトの名無しさん
15/11/15 05:42:30.05 27iIExdb.net
PHP7は年内に正式リリースされますか?

4:デフォルトの名無しさん
15/11/15 08:55:09.65 V8NTA7lA.net
>>1

5:デフォルトの名無しさん
15/11/16 01:42:57.44 7yHHnP/U.net
職種別、資格別、スキル別の平均最低月給リスト
URLリンク(jobinjapan.jp)
全掲載求人109,160件の平均最低月給195,800円
PHPの求人 の平均最低月給219,600円
URLリンク(jobinjapan.jp)

6:デフォルトの名無しさん
15/11/18 20:20:52.39 2FaZ15Uc.net
PHPで掲示板を作るのにmysqlって必要?
SQL言語ってのがよくわからんから取っ掛かりにくいイメージ

7:デフォルトの名無しさん
15/11/18 20:28:57.34 DfzyxZL4.net
必須じゃない
掲示板データをファイルで持たせ、PHPで読み書きすればできる
でもDB使うのに比べると、処理が色々面倒

8:uy ◆Qawu9.2l1E
15/11/18 21:25:08.15 KcitbQC5.net
require "yaml"
y = YAML.load DATA.read
puts y["スレッドタイトル"]["time"]
puts y["スレッドタイトル"]["name"]
puts y["スレッドタイトル"]["message"]

__END__
スレッドタイトル:
  time : 2015-11-18
  name : uyyy
  message : test-submit

9:デフォルトの名無しさん
15/11/18 22:51:58.50 4T/DAPf8.net
sqliteでいいじゃん

10:デフォルトの名無しさん
15/11/19 23:58:23.69 TlO4dIMX.net
SQLが分かるなら、何でもいいよ

11:デフォルトの名無しさん
15/11/20 15:04:18.40 G0cvckZm.net
PHP、MySQLなんて窓から投げ捨てて、node.jsとMongoDBで作ればいいよ

12:デフォルトの名無しさん
15/11/21 02:07:47.22 uOqPRxa8.net
html のボタンから .php のページを作成して、
そのページからブラウザバックで戻る場合はhtmlに戻るんですが、
html → php → php で戻る時に”有効期限切れです”になります。
何か良い方法有りますでしょうか

13:デフォルトの名無しさん
15/11/21 16:25:19.02 U/iPWgJ7.net
そりゃ、良い方法はあるんだろうけどさ
その質問内容に答えられるかどうかは、難しい問題だな

14:デフォルトの名無しさん
15/11/22 11:17:31.43 i/I0leYF.net
説明するの面倒だからググってみたけど、このへんどう?
URLリンク(www.glamenv-septzen.net)

15:デフォルトの名無しさん
15/11/22 16:54:02.65 HWNgOEsY.net
>>10

<div class=“hoge” data-rows="10" data-order="DESC">
<article class=“hoge”> </article></div>
<script type="text/html" id=“hoge”>
<% for(var i=0,l=comments.length;i<l;i++) {%><% var n=(order==='ASC')?(l-1-i):i; %>
<article class=“hoge”><h3 class=“hoge”>
<a href="URLリンク(~~<%=comments[n].article_id%>.html"><%==comments[n].title%><)
<script type="text/javascript" src="URLリンク(.js"><)
<script type="text/javascript">
var rc = hoge(‘hoge’);
rc.render();
</script>

これうちのブログの最�


16:Vコメントを表示するスクリプトなんだけど、これって所謂SQL言語って奴なの?



17:デフォルトの名無しさん
15/11/22 17:14:08.23 6dgomfC7.net
こういうソース見るたびにサーバでやれよカスがって思う

18:デフォルトの名無しさん
15/11/22 17:15:29.20 i/I0leYF.net
それjqueryかなんかの一部じゃないの?
SQLといえるのはその中の ASC と DESC くらいだな
SELECT * FROM table WHERE id < 10 ORDER BY id DESC
とかがSQL

19:デフォルトの名無しさん
15/11/22 17:25:34.08 6dgomfC7.net
>>17
ASC, DESCはSQLでも使うけれどSQL以外でも普通に使われる、昇る・降るの意味のascend, descendの略語だぞ

20:デフォルトの名無しさん
15/11/22 17:27:20.08 i/I0leYF.net
んなわかりきったこと言いなおさんでも

21:デフォルトの名無しさん
15/11/22 17:30:41.49 6dgomfC7.net
そうか、余計なお世話だったな、悪かった

22:デフォルトの名無しさん
15/11/22 18:23:19.37 KRMusb0k.net
RSSリーダ(アグリゲータ?)を作っているのですが、現在は1時間に1回cronでスクリプトを動かし、
いくつかのサイトでデータを取得→MySQLに保存→それをPHPから読み込み表示 という風にしています。
今は自分だけがローカルで使うだけなのですが、このようなものを外部公開してある程度アクセスがあることを考えると、
PHPファイルを表示するたびにMySQLとやりとりするというのは手法として適切なのでしょうか?
データを取得するたびにHTMLファイルを生成するべきなのでしょうか?
この辺の、データベースの扱いに関する定石のようなものを教えていただきたいです。

23:デフォルトの名無しさん
15/11/22 19:12:02.12 z6GZ7E/8.net
1.表示するたびにMySQLとやりとりする
2.キャッシュの利用
3.静的ファイル(html)の生成
負荷が増大した場合には、上記の順に対応する。
大量のデータを集計するとかでないなら1で十分だと思うけど。

24:デフォルトの名無しさん
15/11/22 19:17:21.49 6dgomfC7.net
動的な部分以外をできるだけ再計算しないようにキャッシュするのはよくあるが
まずは1回の表示にどんだけCPUを食うかの見積もり/測定と
ピーク時のアクセス数/秒をどのくらいと想定するかだな

25:15
15/11/22 20:27:09.91 HWNgOEsY.net
>>16
すまん、ちょっとわからないから聞きたいんだけど、自分のデータベースに置いてあるデータって、ドメインが違う別のサイトからでもSQL文章書いて呼びだせるの?
無料ブログサービス(例えばlivedoor)にアンケートを設置して、その回答を別のサーバ(例えばさくら)に設置してあるDBから呼び出す事は可能?

26:デフォルトの名無しさん
15/11/22 22:41:11.98 PowSWGiN.net
たぶん、別のドメインにアクセスできないのは、
JavaScriptだけじゃないの?
クロスサイトスクリプティングで検索して

27:デフォルトの名無しさん
15/11/23 02:27:59.45 rcJ9bRS0.net
15も24もphp関係ない件

28:uy ◆Qawu9.2l1E
15/11/23 04:35:16.51 tOBxxsaN.net
Jekyll使いのワイ 高みの見物
PHPなんかやるよりJekyll覚えたほうが100倍役立つよ

29:デフォルトの名無しさん
15/11/23 04:41:30.81 5ff7Mw2t.net
>>24
呼び出せるかどうかはサーバの設定次第だろ
なんのためにDB接続する時にIP入力すると思ってんの?
localhostだけならそんなの必要ないだろう?

30:uy ◆Qawu9.2l1E
15/11/23 14:32:29.25 tOBxxsaN.net
2chの書き込みフォームを
Yahooログインフォームに見せかけてID pass入れさせる遊びなら中学生の頃にやってたわ

31:デフォルトの名無しさん
15/11/23 15:26:47.79 V5rLbgq+.net
餓鬼が混じってますね

32:uy ◆Qawu9.2l1E
15/11/23 17:05:47.74 QX2C8YaD.net
ペチパーはスキルが壊滅的

33:デフォルトの名無しさん
15/11/23 18:03:57.01 fL3P/oyE.net
>>22-23
ありがとうございます。
確かに実際の負荷を見ずには何とも言えませんね。
ひとまずCache_Liteなどを調べてみます。

34:デフォルトの名無しさん
15/11/23 19:27:18.15 V5rLbgq+.net
webpeog板のPHPスレ潰したやつこいつだったのか

35:uy ◆Qawu9.2l1E
15/11/23 22:22:23.18 QX2C8YaD.net
来年くらいにはJekyllに土下座してるよこのスレの奴ら
静的で良い場所をサーバーに処理させてる文化は死ね

36:デフォルトの名無しさん
15/11/23 22:38:29.62 oQzmq6S3.net
uyってクライアントに処理をさせることが静的だと表現するようなレベルの人だっけ

37:デフォルトの名無しさん
15/11/23 22:43:54.91 oQzmq6S3.net
2行目で話を広げてるのかと思ったけどJekyll限定の話か

38:デフォルトの名無しさん
15/11/23 22:49:05.80 TqdX98Rl.net
>>33
移動して正解だったね

39:uy ◆Qawu9.2l1E
15/11/24 05:56:55.80 hHA41+PV.net
>>33,37
Jekyllに搭載されたLiquidはとても簡潔な方法でページを生成する事ができます

40:デフォルトの名無しさん
15/11/24 07:05:51.45 2nZ7GnSB.net
スレ違いな布教は結構です。
バレたからって開き直って向こうの再現するのはやめてね。

41:uy ◆Qawu9.2l1E
15/11/24 18:41:59.83 lNjW2jss.net
>>39
これまで君がレスしている名無しは全部uyだったよドンマイ

42:デフォルトの名無しさん
15/11/25 02:59:46.94 SowMgAO+.net
>>39-40 は明らかな自演

43:デフォルトの名無しさん
15/11/25 04:00:20.02 Qex1VIVs.net
そう思った根拠は?

44:デフォルトの名無しさん
15/11/25 05:25:29.06 +GV/gedV.net
>>40 こいつすげえキモイな

45:デフォルトの名無しさん
15/11/25 14:52:15.69 D7leeLYt.net
ブログやるならwordpressってのは知ってるけど、WEBサービスとか掲示板とかを作る時もPHPでwordpress使うもんなの?

46:デフォルトの名無しさん
15/11/25 17:41:45.37 SQGzzFnc.net
>>44
WordPressは使わない。
CakePHPとかフレームワークを使う。

47:デフォルトの名無しさん
15/11/25 21:28:59.16 F4e0LlCS.net
<?php
$url = "URLリンク(yutori.rbbs1.net)
$rd[0] = mt_rand(0,12);
$rd[1] = mt_rand(0,12);
$rd[2] = mt_rand(0,12);
for ($k=0;$k<3;$k++) {
switch($k) {
case ($k==0): $wd = "w"; break;
case ($k==1): $wd = "うぇ"; break;
case ($k==2): $wd = "くぇ"; break;
}
for ($i = 0;$i < $rd[$k]; $i++) { $wd_array[] = $wd; }
}
unset($i); unset($k); unset($rd); unset($wd); unset($wd_array);
shuffle($wd_array);
foreach ($wd_array as $t) { $msg .= $t; }
unset($t);\
$data = array("mode"=> "res","name"=>"俺の脳内はポコニャン汁で満たされている",
"mail"=>"ぴゅっぴゅっぴゅっぴゅっぴゅっ","msg"=>$msg,"idoff"=>1,"deviceoff" => 1,);
$options = array("http" => array("method" => "POST","content" => http_build_query($data));
$contents = file_get_contents($url, false, stream_context_create($options));
if ($contents!==FALSE) {$result = "通報しますた!";} else {$result = "命拾いしたな!!";}
?>

48:デフォルトの名無しさん
15/11/25 22:46:34.06 SowMgAO+.net
>>46
$wdは配列化してforeachの方が分かりやすいんじゃないかな。

49:デフォルトの名無しさん
15/11/25 22:47:30.97 SowMgAO+.net
とおもったが
unset($wd_array);
shuffle($wd_array);
foreach ($wd_array as $t)
って。

50:デフォルトの名無しさん
15/11/26 17:29:59.67 nxLEBViH.net
file get contentsでサイトをスクレイピングする際に、スクリプトからのアクセスじゃなく、通常のサイトからのアクセスと相手側のサーバーに判断させる方法ってある?

51:デフォルトの名無しさん
15/11/26 17:39:43.14 kUQEgtrr.net
stream_context_create()でcontext作れ
javascriptやcookieを駆使して確認するサイトが相手なら諦めるかがんばれ

52:デフォルトの名無しさん
15/11/26 17:44:37.33 TMCNTirj.net
file_get_contentsの第3引数で通常のサイトからのアクセスとやらに合わせる

53:デフォルトの名無しさん
15/11/26 19:00:39.38 nxLEBViH.net
$hoge = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en¥r¥n" .
"Cookie: foo=bar¥r¥n"
)
);
$context = stream_context_create($hoge);
$html = file_get_contents(“http~”, false, $context);

これでやってみたんだけど、やっぱりアクセス規制されてしもうた…
arrayの中身をどう書けばいいかわからん

54:デフォルトの名無しさん
15/11/26 19:22:46.41 kUQEgtrr.net
普通のブラウザでアクセスしたときに送ってるHTTPリクエストヘッダをそのまま送れ
php.netのサンプルの記述そのまま送ってダメでしたーとかナメてんのか

55:デフォルトの名無しさん
15/11/26 19:59:05.34 HoDq/m7x.net
ゆとりだねえ

56:デフォルトの名無しさん
15/11/26 22:04:11.81 TsHDKWYc.net
URLリンク(rare-gacha.com)
ここの画像データはどこから拾ってきてるんですか

57:uy ◆Qawu9.2l1E
15/11/26 23:04:09.41 hdMKEMdm.net
>>44
ブログやるならどう考えてもJekyll一択
コメントにはDisqusを設置して終わり
サーバーサイドで一切処理させないからHTMLさえアップロード出来ればどこでもブログ設置出来る
さらに物足りなければjQuery使えば動的になる
ブログ製作としてPHPはオワコン

58:uy ◆Qawu9.2l1E
15/11/26 23:05:55.54 hdMKEMdm.net
一体PHPで何を作ろうとしているのですか?^^;
無駄過ぎwwwwwwwwwwww

59:デフォルトの名無しさん
15/11/26 23:34:19.72 w0MF98vj.net
昔ながらの申請承認システムを作ってます^^

60:デフォルトの名無しさん
15/11/27 05:11:29.32 j2B8VuQt.net
中卒引きこもりニートゆうちゃん予備軍相手すんな

61:uy ◆Qawu9.2l1E
15/11/27 05:25:52.07 2RpgJ5AO.net
自分は法を犯す事はしないよ
法律で裁けない悪事のギリギリラインまでしかしないスタンス
ちなみに急いでるわけでもない癖に信号無視をする人間が大嫌い

62:uy ◆Qawu9.2l1E
15/11/27 05:39:51.87 2RpgJ5AO.net
そういう小さな規則違反の積み重ねが治安を悪化させ凶悪犯罪を起こすんですよ
東京の道路にゴミはあまり落ちていません
理由は、ゴミが少しでも落ちていればそこにゴミを捨てる人が次々と現れ
ゴミ山がそこに出来上がるから
人通りの多い場所は徹底的に綺麗する必要があるのです
プログラミングも同じ
PHPのような言語があると凶悪なバグが発生するから駆逐しないとね

63:uy ◆Qawu9.2l1E
15/11/27 05:48:56.88 2RpgJ5AO.net
# まど☆まぎで分かるダメ言語

まどか「ほのかちゃん????・・・なんでそんな言語使ってるのy??OI?^??n」
ほのか「え?まどかもプログラミングに興味があるの?」
まどか「だめだよ・・・??鎖? \?・?e?Bだめだよそんな言語・・・」
ほのか「ちょっと、大丈夫?」
まどか「だめだよ\?OI?^??±!!!{?????≪?A?l????a??B?μ???a?B?±????e??^????d??a?¢?e??¢??????B?≫(グサッ」
ほのか「キャアアアアア奮レアサ鋠・豎ア楹イ.....」
まどか「ほのかちゃS?c?u??????c?V?μ?¢?A?C?f?A?a?H?v」

いつかこういう事件が起きる

64:デフォルトの名無しさん
15/11/27 07:42:18.96 rRYNYnxD.net
君さぁ・・・やることもなくてアニメばっか見てるから現実感がないことばっか言ってるよ
もっとリアル大切にね

65:デフォルトの名無しさん
15/11/27 10:37:22.00 pFPyxWBn.net
犯罪者が沸いてるな

66:デフォルトの名無しさん
15/11/27 15:04:07.26 xCOpxAq/.net
phpとの関係ほんのちょっとしかないんだけど
ファイル添付機能があるとして、
添付ファイル単体と添付ファイル全体のファイルサイズの上限値を定数で規定するとき、定数名なんて書くべき?

67:デフォルトの名無しさん
15/11/27 22:38:01.84 wAnq9rzm.net
割れ窓理論からのまどマギ。うま…くない

68:uy ◆Qawu9.2l1E
15/11/28 06:20:50.80 lBYFUN9m.net
SIZE

69:デフォルトの名無しさん
15/11/28 11:45:51.95 wlOalWDw.net
質問です。
if文等の処理を、StateパターンやStrategyパターンに置き換えると、
if文が消えるという説明を本やネットで見かけました。
たしかに、処理中でのif文は無くなります。
しかし結局、各処理のオブジェクトを生成するために、if文等の分岐が必要です。
if文が消えるというというよくある説明は誤りではないでしょうか?

70:デフォルトの名無しさん
15/11/28 11:59:08.29 qx4IBKnQ.net
>>68
URLリンク(codepad.org)
簡単なのでいいから

71:デフォルトの名無しさん
15/11/28 12:24:10.31 VMolQjLG.net
そりゃ実践上はソースから完全にifを無くすのは無理だろうがそういうことじゃないだろ
ある機能について、状態やらサブクラスやらを事前に準備しておくことで、処理がまっすぐ一本道に流れるようにってことだろ

72:デフォルトの名無しさん
15/11/28 12:42:45.03 wlOalWDw.net
ご回答ありがとうございます。
>>69
コードを書くのは大変なので。すみません。
>>70
よくある説明で、「if文がなくなります」とあるのに、
処理の外側にif文が移っただけじゃん!と疑問に思ったもので。
Strategyパターンを採用した場合、メインの処理からif文はなくなるけど、
結局、前準備ではif文等でオブジェクトを作り分けないとダメなんですね。

73:デフォルトの名無しさん
15/11/28 12:43:58.77 SH+3mbvY.net
オブジェクト指向っていっても言語によって仕様は違うし足りないものもある
if文を完全に排除した記述が出来る言語もあればそれが出来ない言語もある
といったところでしょう
例えばwikipediaのSingletonの実装例もそうだけど
URLリンク(ja.wikipedia.org)
phpには問題点および改善策の
>private static final Singleton instance = new Singleton();
このような記述が出来ないから
このロジックにおいてifが必要になったりするわけだし

74:デフォルトの名無しさん
15/11/28 13:04:36.96 VMolQjLG.net
まず仕様がこれこれこうで、この仕様ならこの部分はこういうやり方すれば生産性向上・バグ発生低減・改修難易度減少が見込めそう、でやり方を選んで設計
ここで「やり方」の選択肢として持っておくのがデザパタ、あくまで選択肢でしかない
ifを除去できるとか細かいことにこだわってどうする
そのパターン使ってもifを他所に押し付けるだけの結果にしかならない処理を書くときに、そのパターンを無理やり使うならそれはただのアホ
どんな状況でもこのパターンを使えばifがなくなってスッキリ書けますなんて言う奴がもしいたとしても、それをうのみにして考えるやつもアホ

75:デフォルトの名無しさん
15/11/28 13:54:09.77 wlOalWDw.net
>>72-73
とても参考になります。
ありがとうございました。

76:デフォルトの名無しさん
15/11/28 18:05:09.08 l+/0cMLb.net
>>68
state次第で実行するメソッドを分岐させるから呼ばれるメソッド内部でif文が発生することがないってことじゃなくて?

77:uy ◆Qawu9.2l1E
15/11/29 04:25:54.53 RQPUWZLH.net
初期化を複雑にすればif文はすべて消すことは可能だけど
デザパタなんて頼ってる奴が言ってるのはif文を「減らす」程度の事しか言ってないよ

78:デフォルトの名無しさん
15/11/29 13:08:03.83 urMq5ega.net
システム内検索どうしてる?
全て諦めてGoogle検索利用する手もあるけど

79:デフォルトの名無しさん
15/11/29 14:58:26.84 6C60q/4Y.net
スマホサイトを構築しているんですが、Androidでの動画アップロードが出来ないんです・・・。
画像に関しては問題なくアップ出来るんですが。
標準ブラウザが原因だと思ってChromeをインストールして試したのですが、
それでもアップロードが出来ませんでした。
原因や可能性などお分かりの方がいたら、是非お知恵をお貸し下さいm(_ _)m

80:デフォルトの名無しさん
15/11/29 15:05:35.05 RQ97x6ZU.net
>>78
MIMEとアップロード最大サイズの設定は?

81:デフォルトの名無しさん
15/11/29 15:10:37.72 6C60q/4Y.net
video/mp4,mov,avi,3gp,wmv,webm
データ許容は100MBです

82:デフォルトの名無しさん
15/11/29 15:17:03.27 RQ97x6ZU.net
MIME周辺のコードを晒して下さい

83:デフォルトの名無しさん
15/11/29 15:21:20.04 RQ97x6ZU.net
クォータに余裕はありますか?

84:デフォルトの名無しさん
15/11/29 15:33:14.64 urMq5ega.net
もしかして: URLリンク(php.net)

85:デフォルトの名無しさん
15/11/30 07:31:38.27 gf8VmUCn.net
帯域制限かけられてんじゃね

86:デフォルトの名無しさん
15/11/30 07:32:12.01 gf8VmUCn.net
↑WIFI接続で問題ないならね

87:デフォルトの名無しさん
15/11/30 20:24:45.97 LYBH4EyE.net
railsやdjangoみたいにプロジェクト内にシステムファイルをインストールしないフレームワークってありませんか?
同じバージョンのフレームワークで一括で管理したい

88:デフォルトの名無しさん
15/11/30 21:17:15.27 Yn3dZ4FQ.net
共通の場所においてシンボリックリンク貼れば統一できるよ

89:デフォルトの名無しさん
15/12/02 23:46:15.37 J6p04YqG.net
iphoneのクッキーの保存期間が短かい気がするのですが

90:デフォルトの名無しさん
15/12/03 11:34:07.25 m5yVC19F.net
クッキーってブラウザの設定のせいか勝手に消えるのがあるよね。
時々会員からログインできないとか勝手にログアウトしたとか連絡きて困る。

91:デフォルトの名無しさん
15/12/03 13:38:11.00 gcox+NXP.net
password_hash()ってphp7でsaltオプションが非推奨になってE_DEPRECATED出るようになるけど
パスワード認証の処理って
「ユーザ入力のパスワードをハッシュ化したもの」と
サーバ内に持ってる「パスワードをハッシュ化したもの」とを比較するもんじゃないの?
さすがに完全固定だとまずいから、動的に、かつ、同じ状況なら一意に、なるように生成したsaltを使ってハッシュ化するもんじゃないの?
すごい人教えて下さい

92:デフォルトの名無しさん
15/12/03 13:44:50.69 gcox+NXP.net
すまん自己解決
password_hash()ってハッシュ文字列かfalseしか返さないじゃんと思ってたけど
正常終了時に返す文字列に方法・コストだけじゃなくsaltも含んでたんだな
だからpassword_verify( $password, $hash )だけで確認できるのか

93:デフォルトの名無しさん
15/12/04 17:10:00.25 BH0jlOjz.net
phpの求人とかってどういう所行けばあるんですかね

94:デフォルトの名無しさん
15/12/04 17:50:28.62 1332PcFc.net
求人情報ぐらい調べることも出来ないやつはお呼びじゃないです

95:デフォルトの名無しさん
15/12/04 19:06:33.76 voaNk3eY.net
独学レベルの30歳は厳しいですかね

96:デフォルトの名無しさん
15/12/04 21:54:27.43 SdLT9ePi.net
PHP 7.0.0 Released
The PHP development team announces the immediate availability of PHP 7.0.0.
This release marks the start of the new major PHP 7 series.
URLリンク(php.net)

97:デフォルトの名無しさん
15/12/04 23:13:40.20 U4cocLhy.net
今日は宴だ
年内に正式リリースできてよかった

98:デフォルトの名無しさん
15/12/04 23:45:22.99 eV2PGPuH.net
>>94
独学の内容によるとしか

99:デフォルトの名無しさん
15/12/04 23:52:21.96 km/Is7rX.net
ふえーphpってもう7.0でてたんだ
いまだに5.5使ってるわ

100:デフォルトの名無しさん
15/12/05 00:30:17.24 BHJJmj19.net
5.5 -> 5.6 -> 7.0 だから安心して

101:デフォルトの名無しさん
15/12/05 00:40:30.25 4lBJEMQK.net
ああ、6無理だったのか

102:デフォルトの名無しさん
15/12/05 02:56:02.75 7gxdTJZp.net
>>97
MVCで裏側含めてブログ作っただけだ。デザインパターンは全てを網羅できてない。

103:デフォルトの名無しさん
15/12/05 12:58:46.75 0XvEswv0.net
趣味だから楽しいんだ
毎日やったら苦痛

104:デフォルトの名無しさん
15/12/05 17:45:45.86 7gxdTJZp.net
やっぱそれか。
ただ、実務がどんなもんか知りたいんだよなー。趣味レベルと変わらんのなら無駄だけど。

105:デフォルトの名無しさん
15/12/05 20:11:09.76 pR99dpk0.net
IT系の仕事委託サイトとか見てみれば?
PHPの案件も結構あるよ。良し悪しはさておき。

106:デフォルトの名無しさん
15/12/06 03:04:20.71 rJPGjx9a.net
アドバイスサンキューだぜ。委託とか何か請求されそうで怖いわ。スレ違いに仕事の相談すんのもあれなんでボチボチがんばりますわ。

107:デフォルトの名無しさん
15/12/06 17:20:54.51 d5BBG+3T.net
ブログ作ったといわれても、ふーんってなるだけでまるで技術レベルが見えないな。
そう考えると人事って大変な仕事なんだな。

108:デフォルトの名無しさん
15/12/06 18:01:17.82 Mda62mqF.net
いやブログ見れば技術レベルはわかるだろ
細かい所のミスチェックする人間かどうかもよくわかるし

109:デフォルトの名無しさん
15/12/06 18:11:02.99 55IDH4Bi.net
技術レベルといえば、PHPの民間資格あったよね。

110:デフォルトの名無しさん
15/12/06 18:24:03.17 e/f/cCl4.net
あの資格の評価ってどうなの?
試験問題見る限り、なんかPHPのメソッドどれだけ暗記してるかの
確認テストにしか見えなかったんだけど。
今からPHP5って資格を取るのがそもそも微妙な感じだけど。

111:デフォルトの名無しさん
15/12/06 19:48:18.36 Mda62mqF.net
それ以外の何で評価するの?

112:デフォルトの名無しさん
15/12/06 20:45:27.04 55IDH4Bi.net
>>109
基本情報とか応用情報の方が評価されそう。
あと受験料が高かった気がする。

113:デフォルトの名無しさん
15/12/07 03:24:01.91 Egfo5+P2.net
>>110
「それ」ってメソッドをどれだけ暗記しているかを指してるんだよね。
>>107と相反してないか

114:デフォルトの名無しさん
15/12/07 17:03:31.28 7L51O5Jz.net
>>112の発言にどういう意図があるのか知らんが >>109は民間資格に何期待してんだって嘲笑しつつ適当に煽り入れただけだよ
もし>>109が本気で資格について考慮し、意見を持つ人間なら そこで具体的な案が出るだろうし、ただ単に不満を吐き出すだけのつまらない人間の無駄話ならそこで収束する
あまり俺の意見はそこには出してないつもり

115:109
15/12/07 21:45:33.48 Ezteh0P6.net
>>112
いや、応用もJavaのSJC-PとかOracleマスターとかも持ってるから、
最近仕事でPHPやったついでに取ろうかと思ったんだけどさ。
なんか両者が体系的な知識とか言語仕様の考え方とか、
バックグラウンド的な話をしっかり押さえさせるのと比べて、
関数の使い方がどうこうみたいな話が多いような気がしたんだよね?
それって別に毎回APIググればいいじゃんと。
まあ単に出回ってる教科書や参考書がいけてないだけなのかもしれんけど。

116:109
15/12/07 21:46:29.47 Ezteh0P6.net
レス番間違えた…

117:デフォルトの名無しさん
15/12/08 03:55:30.46 njHdrP3c.net
一から出直しな。

118:デフォルトの名無しさん
15/12/08 05:23:51.09 +azNL848.net
>>114
ocj-pやoracle masterが運転免許証なら
PHP技術者認定試験はなめ猫免許証
精通してるフレームワークの名前を列挙した方がマシ

119:デフォルトの名無しさん
15/12/08 09:48:54.78 TDczgCiy.net
確かに金積めば手にはいる免許証だな
PHPにはそういうものはないだろう

120:デフォルトの名無しさん
15/12/08 10:32:24.67 mJhPwWLH.net
死ぬまで有効

121:デフォルトの名無しさん
15/12/08 14:45:54.07 njHdrP3c.net
7リリースされたからもう無効だろ

122:デフォルトの名無しさん
15/12/08 15:00:47.88 uetFDAJu.net
PHP巻き返しなるか動向に注目だな

123:uy ◆Qawu9.2l1E
15/12/08 16:19:47.99 4X3jy2q/.net
括弧もセミコロンも省略できない動的言語使ってる奴いる?

124:デフォルトの名無しさん
15/12/09 14:11:11.30 3ciM3Sf4.net
いるよー

125:デフォルトの名無しさん
15/12/10 13:11:02.72 pn8oaSSs.net
セミコロン省略できる言語ってどーなん
個人的にセミコロンが省略できる言語って嫌いなんだけど

126:デフォルトの名無しさん
15/12/10 13:47:14.43 iwZgNtxz.net
PythonとかRubyとか
これらはセミコロンあってもエラーにならないんだから、嫌なら書けばいいのに嫌いってなんだよ
動的じゃないけどSwiftもそうだな
実際にセミコロン無しでコード書くとCとかphpでもつい忘れるくらい無いほうが自然なことだと思う

127:デフォルトの名無しさん
15/12/10 18:10:46.55 bKbWS+iE.net
セミコロン省略じゃないけど条件式は必ずboolになる値であっても
($param) や ( ! $param )などとしないで === true や === false を付けるようにしてる

128:デフォルトの名無しさん
15/12/10 20:38:41.34 i0vE+fvx.net
荒らしはスルーしとけよ

129:デフォルトの名無しさん
15/12/10 20:41:05.30 pn8oaSSs.net
パイソンってなんかきっちりしてるイメージあるけど 省略して書けるんだ 意外だな

130:デフォルトの名無しさん
15/12/10 22:50:09.24 LAAKLk6w.net
その代わり複数行にまたがるときは行末バックスラッシュじゃなかったかな。
VBが_だったように。
インデントさえ正しければブロック表現にカーリーブレースは不要と判断した言語だし、
1文1行であることがほとんどだという前提に立てばセミコロン不要という方針もさほど不思議じゃないかなーって思うよ。

131:デフォルトの名無しさん
15/12/10 23:21:27.10 V7ddkloI.net
JavaScriptがセミコロン省略可能だろ
このスレの住人なら普段から使ってるだろう

132:デフォルトの名無しさん
15/12/11 14:02:07.80 /dTmo1eO.net
くだらない話続けてんじゃねーよ

133:デフォルトの名無しさん
15/12/14 20:47:26.64 QJL07hoX.net
>>124
c言語なんかもセミコロン無しで組めるね

134:デフォルトの名無しさん
15/12/15 05:09:02.60 ykQTajwy.net
カンマですか

135:デフォルトの名無しさん
15/12/15 18:06:41.02 oDr79mCW.net
文字列の先頭1バイトだけ切り出したい時は
$string[0]で先頭1バイトだけを確保しておいて残りをsubstr($string, 1)するか、preg_*を使うか、しかないですか?
explode()はデリミタに空文字列を使えないし
られるけどunset($string[0])は使えないしshift()も文字列に対して使えません
かなりの回数で繰り返し処理するので出来るだけ処理コストを減らしたいです

136:デフォルトの名無しさん
15/12/15 20:14:42.64 wfwMHlSZ.net
1文字じゃなくて1バイトって表現が曖昧すぎる

137:デフォルトの名無しさん
15/12/15 20:15:48.91 9ZU9YluN.net
substr($string, 0, 1)
文字列 string の、startで指定された位置から length バイト分の文字列を返します。
URLリンク(php.net)
mb_substr($string, 0, 1)
文字数に基づきマルチバイト対応の substr() 処理を行います。
位置は、 strの始めから数えられます。 最初の文字の位置は 0、2 番目の文字の位置は 1、といったようになります。
URLリンク(php.net)
確認のため聞くけど、先頭の1文字ではなくて、1バイトを切り出したいの?

138:デフォルトの名無しさん
15/12/15 21:01:04.18 Ztl+JyxZ.net
文字列がphp内部では(mb文字列でも)バイト配列で扱われているからバイト単位のほうがシンプルだろうことと
今自分が作ろうとしている処理では先頭がASCII文字と確定していることから
先頭1バイトと聞きましたが、別にこだわりはありませんので、1バイトではなく1文字の時に使える良い方法があるならそれで構いません
あいまいですかね?

139:デフォルトの名無しさん
15/12/15 22:16:36.47 9ZU9YluN.net
あいまいというか、1バイトを切り出すって表現は
あまり聞かないから違和感を覚えるかな。
文字コードも何を使うか書いてないし。
ASCII文字のみなら、これで良いんじゃない?
substr($string, 0, 1)
マルチバイト文字を含むならこれで。
mb_substr($string, 0, 1)
正規表現は遅いから避けるべきと言われている。
その他の候補については自分でベンチマークを取るといいよ。

140:デフォルトの名無しさん
15/12/15 22:37:00.73 9ZU9YluN.net
あと、>>134 はマルチバイト文字を扱っていて、その前提で、
「1バイトを切り出したい」とも�


141:ヌめてしまう点では、あいまいと言えるかな。



142:デフォルトの名無しさん
15/12/15 22:55:21.84 ykQTajwy.net
1バイトをっていうのは全然あいまいじゃないよ。きわめて明確な表現だし、一般に使われている表現。
雰囲気的には、先頭1バイトとそれ以外に分割したいって感じなので、>>134で書いてるとおり、
先頭1バイト確保と残りをsubstrでいいよ。pregはだめ。要求に対して高価すぎる。
ところで、>>134 = >>137でいいんだよね。

143:デフォルトの名無しさん
15/12/15 23:10:32.38 Ztl+JyxZ.net
ID変わってたのに気付いてませんでした >>134イコール>>137です
javascriptのshift, slice, spliceみたいなものを考えていました
やっぱりsubstr()しかないですかね、これで書くことにします
>>138
キモは残りの部分の取得なんです
先頭1バイトを得るだけなら $head = $string[0]; で $head = substr($string, 0, 1); より1.5倍以上早くかつ簡潔に書けますんで

144:デフォルトの名無しさん
15/12/15 23:49:33.01 9ZU9YluN.net
そもそも、$stringには具体的に何が入っているの?
コードで示せる?

145:デフォルトの名無しさん
15/12/15 23:59:29.27 Dgo682IE.net
$head = $str[0];
$str[0] = '';

146:デフォルトの名無しさん
15/12/16 00:06:10.74 ucrbRogg.net
ダンプしたら文字列長は切り詰められずインデックス0に空文字列が代入されているキモい状態だったから良くない気がしてきた

147:デフォルトの名無しさん
15/12/16 00:07:29.87 2u+0RRKa.net
やめなされやめなされ、と書こうと思ったら自分で気づいてて一安心

148:デフォルトの名無しさん
15/12/16 00:09:43.81 8/FCyWgw.net
んじゃtrimでもいれておきましょうかね

149:デフォルトの名無しさん
15/12/16 00:12:30.51 2u+0RRKa.net
それならsubstrの方が分かりやすいとなる

150:デフォルトの名無しさん
15/12/16 00:17:52.76 jAibl+ep.net
なるほど、と感心しながら
$head = $str[0]; $str = substr($str, 1);
$head = $str[0]; $str = ltrim($str, $head);
どっちが早いのか試してみたらsubstrの方が早かったでござる
わかりにくいだけじゃなく遅い、そりゃそうだよな……
>>144
ord($str)すればわかるけど、それは空文字列でも半角スペースでもなく、0x00すなわちnull byteだ

151:デフォルトの名無しさん
15/12/16 00:20:39.06 2u+0RRKa.net
>>148
分かりにくい上に、$str = '1 abc' のようなものだった場合、
除去しなくていい空白を除去してしまうという挙動の違いをも生んでいる。
やめなされやめなされ。

152:デフォルトの名無しさん
15/12/16 00:28:08.52 8/FCyWgw.net
substrより高速にできるかを競う競技

153:デフォルトの名無しさん
15/12/16 00:29:14.85 jAibl+ep.net
>>149
trim, rtrim, ltrim は第2引数を指定したときは、第2引数に空文字列類が含まれないなら空白とかを除去しないぞ
しかし$str = '+++++';とか$str = '111222333';だった場合に必要ないとこまで文字が消えちゃうのは確か
やめようやめよう

154:デフォルトの名無しさん
15/12/16 00:31:07.04 2u+0RRKa.net
ああー、第二引数にちゃんと$head書いてた。
こんな見落としも発生する、そんなコードでした。

155:デフォルトの名無しさん
15/12/16 00:34:35.69 2u+0RRKa.net
って、$head…?
$head = $str[0];
$str[0] = '';
$str = ltrim($str, "\0");
を目指しているのかと思ったらそうでもなかったことに気づけなかった
>>143>>146 を見てたから勘違いしたと言い訳

156:デフォルトの名無しさん
15/12/16 10:08:13.19 RWx+UBiH.net
>>141
//$stringの扱い
$head = $string[0]; //配列を扱っている
$head = substr($string, 0, 1); //変数を扱っている
配列と変数をごっちゃにしてるから話がかみ合わないんじゃね?

157:デフォルトの名無しさん
15/12/16 18:44:10.56 jAibl+ep.net
>>154
URLリンク(php.net)
なおcのchar型を連想するかもしれないが添え字・null文字などの扱いはかなり違う

158:デフォルトの名無しさん
15/12/16 20:06:12.03 mKkXa/E+.net
>>155
シングルバイト限定ながらC言語っぽい扱いができるのか。
無知ですみませんでした。勉強になります。

159:デフォルトの名無しさん
15/12/16 22:08:01.51 54oMNAWx.net
ごめんちょっとレベル低い奴が混ざりますが…
>148の  $head = $str[0];  とか実行したとき、$headは1バイトになるの? 1文字の後ろにNULL文字で終結した2バイトになるの?
それを確認する方法はあるの?

160:デフォルトの名無しさん
15/12/16 22:59:12.81 2u+0RRKa.net
文字型は存在せず、長さ1の文字列になる。
URLリンク(php.net)
PHPの変数は内部的にこういう構造体で処理されてる。
文字列の場合はここに実データが入ってる。
struct {
char *val;
int len; /* this will always be set for strings */
} str; /* string (always has length) */
これで分かるといいんだけど。

161:デフォルトの名無しさん
15/12/17 11:20:55.06 b8C1/Jn0.net
for ( $i = 0; $i < count($array); ++$i)
ってあんまり良くないと思うんだけど
ループの中で配列の長さが変わるときはしょうがないよね?
そもそもループ中に長さ変える設計すんなって話はおいといて

162:デフォルトの名無しさん
15/12/17 14:08:20.09 EA75t6cQ.net
バグの温床

163:デフォルトの名無しさん
15/12/17 17:15:17.26 yOofk2l4.net
どうしてもループ条件で毎回count()しなきゃいけないならそれでいい
そうでないなら、ループ中で判定して必要な時だけcount()しよう
whileに変えてしまう手もある

164:デフォルトの名無しさん
15/12/17 20:19:22.38 Qd/jqAZO.net
ループの中で配列の長さが変わるってどういう目的の処理なの?

165:デフォルトの名無しさん
15/12/17 20:30:46.43 KnvvCMjo.net
lenが可変なのにforループ使うってとこがよーわからん
i使うんか?

166:デフォルトの名無しさん
15/12/17 23:35:21.32 iepwcvsH.net
>159
俺だったらそういうときはforじゃなくてwhileにする
while(true) {
 主処理
 $i++;
 if(終了条件)break;
}

167:デフォルトの名無しさん
15/12/18 01:08:54.76 kkYL7SI3.net
話を置いといちゃだめなんじゃないかそれ

168:デフォルトの名無しさん
15/12/18 03:30:22.16 h6euVKNg.net
別においといてもいい話だよ

169:デフォルトの名無しさん
15/12/18 12:20:48.92 G2ICrWxY.net
なんだか無限ループになりそう。

170:デフォルトの名無しさん
15/12/18 16:02:44.19 gUzp7lKI.net
ascii制御文字以外の制御文字、
たとえばUTFの空白・改行類、非文字とかはバリデーションで除去すべき?気にしないでいい?

171:デフォルトの名無しさん
15/12/18 16:23:39.49 o8VbV2r8.net
>>168
validationはデータを加工するものではない。
加工したかったら勝手にやれ。

172:デフォルトの名無しさん
15/12/18 22:52:07.83 CgLrkKvQ.net
>>168
除去するんじゃなくて、受け付けないようにするべき。

173:デフォルトの名無しさん
15/12/19 01:55:48.11 yn9wbRdq.net
加工するならvalidationいらないじゃん

174:デフォルトの名無しさん
15/12/19 02:29:09.65 4mHs0UKU.net
ちょっとレベル高くなったと思ったら即なにもかも大幅レベルダウン

175:デフォルトの名無しさん
15/12/19 02:49:41.81 TNhDb7hV.net
レベルの低い質問が多数を占めるのは当然だよ

176:デフォルトの名無しさん
15/12/19 09:11:48.07 7bBCpgVz.net
プログラマはMacを使ってるってマジ?
スレリンク(news板)

177:デフォルトの名無しさん
15/12/19 14:23:53.30 iSzrpGEp.net
PHP7のソースコードを読むには、C言語の学習がどれくらい必要ですか?
また、どういう学習をすればいいのでしょうか?

178:デフォルトの名無しさん
15/12/19 21:56:39.92 4mHs0UKU.net
メモリ・ポインタ周りと型、構造体の基礎をみっちり叩き込んでおけば
あとはひたすら読んで慣れるだけじゃね

179:デフォルトの名無しさん
15/12/20 02:21:46.61 KXRSmZfD.net
phpってCだったんだ いつもバイナリか 適当にconfigureとかやってインストールするだけだからしらなんだ
そういやビルド?する時うんにゃらかんにゃら.cとか大量に出てたような・・・

180:デフォルトの名無しさん
15/12/20 06:35:13.38 2dmew1rh.net
>>168
適切なタイミングで適切な関数でエクケープされてれば問題ないから気にしない

181:デフォルトの名無しさん
15/12/20 08:02:11.37 bi38SwTZ.net
エクケープw

182:デフォルトの名無しさん
15/12/20 10:46:03.83 3lON+F9T.net
>>177
大抵のものはCでできてる

183:デフォルトの名無しさん
15/12/20 13:07:43.88 2R1JBddu.net
>>180
ならcは何で出来てるの

184:デフォルトの名無しさん
15/12/20 13:15:16.26 +kPEBi+w.net
>>181
GCCコンパイラはGCCでコンパイルします

185:デフォルトの名無しさん
15/12/20 13:33:54.43 6AuOod77.net
>>176
C言語の入門書を片手に簡単な関数から挑戦してみます。
ありがとうございました!

186:デフォルトの名無しさん
15/12/20 14:20:43.32 2R1JBddu.net
>>182
マジカw

187:デフォルトの名無しさん
15/12/20 16:44:14.08 aff6rPUa.net
昔のSolarisはCコンパイラ入ってなかったからなー
有料のコンパイラ買ってない人はGCCのソース一式と
古いバージョンのGCCのバイナリダウンロードして
GCCのコンパイルから始めてたな

188:デフォルトの名無しさん
15/12/20 23:21:18.16 AcNqT0Vl.net
今さらアセンブラで作ったって、動作環境が狭くなるだけだよな…

189:デフォルトの名無しさん
15/12/21 00:11:38.60 Xg5lqxRJ.net
アセンブラ良く知らないけど今でも組み込み系では普通に使われてるんじゃないの?

190:デフォルトの名無しさん
15/12/21 00:26:12.47 Dxjo9Gwi.net
組み込みはハードウェア依存で構わないですしおすし

191:デフォルトの名無しさん
15/12/21 01:48:03.70 Mn6N2/NM.net
昔と違ってハードの性能もいいし、開発コストも低いしで、最近の組み込みはJavaっすね。

192:デフォルトの名無しさん
15/12/21 01:53:26.13 +biuSiP9.net
環境によるだろうけど Javaなら安くできそうだよな

193:デフォルトの名無しさん
15/12/21 13:29:11.20 +gb1Psu3.net
Javaにしても、VMは何で書かれてるのさ

194:デフォルトの名無しさん
15/12/21 13:48:33.20 Pzpo8xdR.net
なんで唐突にVMが出てくるんだ・・・

195:デフォルトの名無しさん
15/12/21 14:04:39.87 C5LR6bgt.net
最近覚えた言葉
察してやれよ

196:デフォルトの名無しさん
15/12/21 14:34:31.64 A5ehQ6jk.net
PHP関係なさすぎる

197:デフォルトの名無しさん
15/12/21 16:02:37.89 +gb1Psu3.net
Javaの名前が出たからVM出したんだろう
そりゃPHPは関係ないけどJavaには関係あるよ
もしかして別のVMだと思った?

198:デフォルトの名無しさん
15/12/21 16:07:24.05 C5LR6bgt.net
まずスレ違いだと言うことを謝ろうな

199:デフォルトの名無しさん
15/12/21 18:41:37.43 Bx2NAXNu.net
何を言ってるのかね君は
JavaやるのにVMから作るわけ?

200:デフォルトの名無しさん
15/12/21 19:45:01.97 xmPmRQsS.net
流れ的には自然なんだけどな。スレ違いは間違いない

201:デフォルトの名無しさん
15/12/21 20:05:06.70 Xg5lqxRJ.net
java vmも元はcで今はjavaで書かれててjavaサポートしてるgccとか.netでビルドするとか
今haskellをビルドしようとするとghcが必要なのと同じ感じか
しかしsdkはともかく組み込み用のjava vmのソースは非公開とも聞いた
いずれにしても根幹として生成されるのはマシン語だけど
phpはともかく他は必ずしもソース読むのにcだけ知ってればOKとは限らない
…とはいえ、組み込み分野に足を突っ込むかどうかは別としても、cは出来るようになって損しない
phpをメインで使ってても、一部の組み込み系と同じように速度が重視される場所で、コアの部分だけc cgiにするってこともあるだろうから

202:デフォルトの名無しさん
15/12/21 20:13:34.22 to6XxzZD.net
何独り言いってんの?

203:デフォルトの名無しさん
15/12/21 20:16:17.68 bqsP7T8n.net
無料鯖だと鯖再度言語がPHPくらいしか使えないからjavaとかc勉強してもな

204:デフォルトの名無しさん
15/12/21 20:27:09.90 6+hqb9rY.net
chinko() or die("うんこ");
みたいなのりで、
chinko() or return false;
とやりたいよなーとずっと思ってるんだけど
そろそろ特例で出来るようにならないかな

205:デフォルトの名無しさん
15/12/21 21:59:12.93 A5ehQ6jk.net
なんでPHPで書いてるかって言えばどこでも使えるからだしな

206:デフォルトの名無しさん
15/12/22 11:43:47.46 Upxd9PjQ.net
PHPでExcel, PDF出力するならおすすめのライブラリはなんでしょう
Excelはレポートのダウンロード用でだだっ広い表一枚、
PDFは注文書などの印刷用で住所などのヘッダーと品名数量一覧、て感じです

207:デフォルトの名無しさん
15/12/22 13:08:08.74 1IjfeHrT.net
>>204
PHPExcel以外に選択肢があるなら、逆に聞きたい。

208:デフォルトの名無しさん
15/12/22 16:00:47.70 Upxd9PjQ.net
>>205
今は、無理やりExcel XML形式で書き出してますw
VB.NETですけどかなりうんざりなので

209:デフォルトの名無しさん
15/12/22 16:38:48.36 1IjfeHrT.net
>>206
そういうことなら、
PHPExcel
 参考:
  PHPExcelの使い方・エクセル操作方法のまとめ
  URLリンク(mizyupon-rpg.com)
TCPDF (+FPDI)
 参考
  PHPでPDF帳票を出力する方法(TCPDF + FPDI)
  URLリンク(qiita.com)
が良いと思う。

210:デフォルトの名無しさん
15/12/22 16:47:14.13 l38ceWj3.net
「既存のPDFをテンプレートとして活用し、そこに必要な文字だけ配置していくことで」ってとこで
MS Accessを思い出した

211:デフォルトの名無しさん
15/12/23 07:12:52.20 BrF2rpGX.net
PHPじゃなくて外部プログラムでやったほうがいいでえ
ルート権がなければしょうがないけど

212:デフォルトの名無しさん
15/12/23 08:13:43.51 VcQzzop0.net
preg_matchなどに渡す正規表現で . ドットそのものにマッチさせたいとき、
ただしいのは'/\\./'でしょうか'/\./'でしょうか
どちらも機能するようにみえるのですが

213:デフォルトの名無しさん
15/12/23 08:37:35.39 BrF2rpGX.net
[.]

214:デフォルトの名無しさん
15/12/23 10:23:03.27 p9aCHGv3.net
>>207
どうもありがとうございます
気が付いたらIISに簡単にPHPインストール出来るやん、
だったらめんどくさいところPHPにしたいということで
試してみます

215:デフォルトの名無しさん
15/12/23 20:37:37.07 TzyhEOiS.net
ios端末で書いたチルダがWin上のphpで拾えないんですが、どうやったらいいんでしょうか(´・ω・`)

216:デフォルトの名無しさん
15/12/24 00:16:25.67 /QJT0Eks.net
XP使ってんの?

217:デフォルトの名無しさん
15/12/24 13:37:05.84 raS3FEsP.net
【OS名】CentOS
【PHPのバージョン】5.2
【連携ソフトウェア】なし
【質問内容】
文字列の配列から、"unko"という文字列を一括削除したいんだけど
どう書くのがかっこいい?

218:デフォルトの名無しさん
15/12/24 15:11:40.93 2UP1MsSC.net
$a = ['unko', 'unk', 'ununko', 'unkoununko'];
$a = array_map(function($_a){
return str_replace('unko', '', $_a);
}, $a);
callbackに無名関数渡すとcoolだろぉ?
別に早くはない

219:デフォルトの名無しさん
15/12/24 15:21:06.33 nTCupmHp.net
だが待って欲しい
str_replaceは配列なhaystackもきちんと処理してくれるのだからarray_mapいらなくね?

220:デフォルトの名無しさん
15/12/24 15:22:25.17 QmDYk9Ce.net
パッと思いついたのは>>216と同じだったが、調べたらstr_replaceだけでいけるね

221:デフォルトの名無しさん
15/12/24 16:11:37.73 raS3FEsP.net
>>216
ごめん
その例でいうなら、痴漢後の配列が
$a = ['unk', 'ununko', 'unkoununko'];
になってほしいんだ。

222:デフォルトの名無しさん
15/12/24 18:45:10.76 7SbnL0v4.net
>>219
これもまた速くはないけど。
$a = array('unko', 'unk', 'ununko', 'unko', 'unkoununko');
$a = array_diff($a, array('unko'));
ループでまわしてunsetが一番速いと思うよ。

223:デフォルトの名無しさん
15/12/24 20:51:13.00 raS3FEsP.net
>>220
なるほど、差分だから引き算だから削除になるのか。
ディフフ

224:デフォルトの名無しさん
15/12/25 12:32:58.26 OVXWXNxb.net
PEAR::AUTHからjwtに換えないといかんということになってさ
あれは要するに「サーバ側だけで隠し持てるJSON」として扱っていいのかな、
沢山持たせすぎて重いとか無いよね別に
良いなら色々、アクセス可能なモデルとか持たせようと思います

225:デフォルトの名無しさん
15/12/28 23:01:52.20 wHGPXB9y.net
PHPで計算機を作成しているのですが一回目に計算した値に二回目以降の計算した値を加算していきたいのですが
どうすればいいのでしょうか。
調べたところセッション関数を使えばいいようなのですが…

226:デフォルトの名無しさん
15/12/29 00:38:59.01 Kpb8+VpB.net
計算機でsession?ブラウザ上で何回か計算させんの?

227:デフォルトの名無しさん
15/12/29 00:47:38.81 Kpb8+VpB.net
>>78
upload_max_filesizeがデフォじゃねーの?w

228:デフォルトの名無しさん
15/12/29 02:08:09.49 kJTcdl6n.net
a.phpからb.phpに動的なデータ(ユーザー情報)を送る場合、どういった方法があるのでしょうか。
通信はhttps使う予定です

229:デフォルトの名無しさん
15/12/29 02:10:48.95 R0ql8/pO.net
b.phpに対し、POSTかGETのリクエストを送る

230:デフォルトの名無しさん
15/12/29 04:05:11.67 qHplhu/m.net
>>224
yesそんな感じです。

231:デフォルトの名無しさん
15/12/29 04:43:55.21 bHe3iwsI.net
計算が終わったあとに、setcookie() する
計算が終わったあとに、計算実行させる<form>に<input type="hidden">を設け計算結果を仕込む
計算が終わったあとに、計算実行させる<form>のaction属性のURLに計算結果を仕込む
とりあえず何も考えずに session_start() して計算が終わったあとに $_SESSION['result'] に結果を仕込む
上3つはユーザが容易に好き勝手に変えられる値でしかも文字列型なので、検証したり明示的に型キャストしてやったりすると良い

232:デフォルトの名無しさん
15/12/29 06:17:02.79 VXcnTZbe.net
ブラウザで計算させて結果だけサーバに保持するのか、
ブラウザで計算するパラメタだけ入力し計算処理はサーバで
させるのかによって、実装が違ってくる。
どっちにしても、まずはsession_start()しよう。

233:デフォルトの名無しさん
15/12/29 10:42:51.14 V4/5oFij.net
>>223
ブラウザで計算させるだけなら普通はJavaScriptを使うよ。
PHPを使うのは、値を永続的に記録したいとき。
その場合、ファイルに記録したりデータベースを利用する。
そうではなく、たとえばクイズの得点の加算なんかなら
PHPでセッションやクッキーを使えばいい。
それにJavaScriptでもクッキーは使える。

234:デフォルトの名無しさん
15/12/29 12:10:52.58 2bysKUYX.net
助けてください。PHPのオブジェクト指向プログラミングの基本を学び、Youtube APIを使うグーグルのライブラリを使おうとしています。
サンプルを参考に改造しているのですが、難しすぎます。メソッドの定義を見に行く→定義ないので親クラスを見る→クラスの中に別のクラスのオブジェクトがある→
またそれを見に行く… これを繰り返してます。こういうもんなんでしょうか?何かコツのようなものがあれば教えてください。もしくは参考になる書籍など。
↓このファイルなんかは1万行超えてます…。普通こういうのをこまめに読みながら進めていくものなんでしょうか?
URLリンク(github.com)

235:デフォルトの名無しさん
15/12/29 13:01:32.76 /5tSBWu/.net
サンプル…?

236:デフォルトの名無しさん
15/12/29 13:10:08.04 WW2BuOkl.net
PHP使うのにリバースエンジニアリングしてソースコード解析から始めますか?
たまにそういう変態もいるかもしれないけど内部の仕様なんて知る必要はないんやでえ
それと同じで仕様書やサンプルをちゃんと見て下さい

237:デフォルトの名無しさん
15/12/29 13:13:05.56 WW2BuOkl.net
サンプルが英語でよくわからなくて該当コード探すのがわからないなら
とりあえずサンプルファイル郡に対してyoutubeでgrepかけてみたらええんやないの

238:デフォルトの名無しさん
15/12/29 13:19:59.60 bHe3iwsI.net
>Youtube APIを使うグーグルのライブラリを使ってみよう
わかる
>サンプルを基礎に改造していこう
わかる
>ライブラリのメソッドの定義を見に行く
??
あるライブラリの使い方を把握したうえでさらに細かいことしたいならライブラリの中身見るのもわかるが
そんな酔狂なことしたいんじゃなけりゃ、つまづいたらライブラリのドキュメントを読む、これが正解

239:デフォルトの名無しさん
15/12/29 14:02:43.68 5o0CYWec.net
Collectionの種類やメソッドは、
理解できるまで、じっくり見た方がよい

240:デフォルトの名無しさん
15/12/29 15:33:26.34 f95NQVFO.net
>>231
PHPでやりたいからここに来ているのを察せないの

241:デフォルトの名無しさん
15/12/29 17:01:36.30 Kpb8+VpB.net
>>228
まぁ上の諸先輩が言うようにsession_start()から始めるか、Javascript
何れにしろcookie使うんだが、10年前のガラケーはcookie実装してないからなw
PHPのsession関数マニュアルを200回読むように

242:デフォルトの名無しさん
15/12/29 17:07:13.08 Kpb8+VpB.net
>>229
> 計算が終わったあとに、計算実行させる<form>に<input type="hidden">を設け計算結果を仕込む
それが一番確実簡単良い方法だと思うw 初心に帰れという言葉を思い出したww

243:デフォルトの名無しさん
15/12/29 17:13:39.85 Kpb8+VpB.net
>>226
httpsってのは通信プロトコルだからPHPにはかんけーねー
PHPっつうか、先ずはhtmlのformメソッドを勉強しなさい
どういう動的やりとりなのかわからんけど、ヒマがあればAjaxもやっとけば未来は多少明るくなるw

244:デフォルトの名無しさん
15/12/29 18:46:45.91 qHplhu/m.net
>>223です
とりあえずssession_start()して
<form>に<input type="hidden">を設け計算結果を仕込むってのでやってみます。
でvalue属性内に$_POST["keisan_3"]を入れたいんですけどどうすればいいんですかね。
エラーは出ないんですけどなんかうまくいかないんです
<input type="hidden" name="keisan_3" value="<?php htmlspecialchars($_POST["keisan_3"],ENT_QUOTES,'UTF-8');?>"/>
なんか間違ってますかね

245:デフォルトの名無しさん
15/12/29 19:16:10.63 pHdit4cS.net
>>242
Twigとかでデザインとロジック分離した方がいいよ, という点をおいておけばそれで問題ないはず
というか動かせばわかるよね?

246:デフォルトの名無しさん
15/12/29 19:18:42.09 Kpb8+VpB.net
>>242
> >>223です
> とりあえずssession_start()して
> <form>に<input type="hidden">を設け計算結果を仕込むってのでやってみます。
formのhidden使うなら、わざわざsessionは要らない、とおもふ
htmlからさぶみっと

phpでvalue受け取って計算 結果をhtmlで出力
結果はhiddenに入れとく

htmlからさぶみっと

phpでvalue受け取って計算 結果をhtmlで出力
結果はhiddenに入れとく
の繰り返しだべ?
> でvalue属性内に$_POST["keisan_3"]を入れたいんですけどどうすればいいんですかね。
>


247:エラーは出ないんですけどなんかうまくいかないんです > <input type="hidden" name="keisan_3" value="<?php htmlspecialchars($_POST["keisan_3"],ENT_QUOTES,'UTF-8');?>"/> それ、さぶみっと後に出力したhtml内に書いてんだよね? $_POSTってのは、PHPマニュル読めばわかるけど 「HTTP リクエストで、 HTTP POST メソッドから現在のスクリプトに渡された変数の連想配列です」 つまり、PHPスクリプト内で使えるわけ PHPのソースで受け取った時に $banzai = htmlspecialchars($_POST["keisan_3"]);



248:デフォルトの名無しさん
15/12/29 19:21:50.35 pHdit4cS.net
とりあえず部分じゃなく全体のコードを出せ, と

249:デフォルトの名無しさん
15/12/29 19:26:22.42 Kpb8+VpB.net
>>243
テンプレエンジンはここまでの初心者には不要じゃね というかますます、わけわかめ、になるよw
SmartyとかTwigはobjectを理解してからの第2段階だろー

250:デフォルトの名無しさん
15/12/29 19:35:57.06 Kpb8+VpB.net
>>242
あとな、htmlspecialcharsでXSS対策とか、勉強して入れたんだと思うけど、作ってるの計算機だべ?
それなら、受け取ったあとに数値だけのチェックして、数値もしくは小数点以外なら
print "変なもんいれんなや";
exit;
の方が確実だぞw

251:デフォルトの名無しさん
15/12/30 00:34:23.84 PWJM0BV8.net
相手が初心者ならまず
value="<?php htmlspecialchars($_POST["keisan_3"],ENT_QUOTES,'UTF-8'); ?>"
これだと出力しない value要素は空のままだ、と教えてやれよ
value="<?= echo htmlspecialchars($_POST["keisan_3"],ENT_QUOTES,'UTF-8'); ?>"
などとして明示的に出力してやらなきゃいけない
上手くいかないのはこれ
value="<?= htmlspecialchars($_POST["keisan_3"],ENT_QUOTES,'UTF-8'); ?>"
こう書いても出力できるが、short_open_tag 設定が on になっている必要がある
あと $_POST["keisan_3"] が来てるかどうかはわからないのだから前もって isset($_POST["keisan_3"])で確認しろとかな

252:デフォルトの名無しさん
15/12/30 00:36:05.43 PWJM0BV8.net
そしてコピペミスしたわけだが
例文2行目の頭は value="<?= echo じゃなくて value="<?php echo だった吊ってくる

253:デフォルトの名無しさん
15/12/30 02:09:15.29 3alGq9af.net
いろいろやってみた結果
1ページ目で
$_SESSION["total"]=$keisan_3;として
二ページ目以降
echo $_SESSION["total"]+$keisan_3;
  $_SESSION["total"]=$_SESSION["total"]+$keisan_3;
のようにば加算されていきますよね?
実際動いているので問題ないんと思うんですが…なんだか頭がこんがらがってきました…

254:デフォルトの名無しさん
15/12/30 02:27:51.57 mOtrRral.net
>>250
まーいろんなやり方があるわけで この程度でこんがらがるようじゃ、センスが無い、と諦めるのも一考
実際のページとソース全部出せば、親切で暇な人が教えてくれるよ

255:デフォルトの名無しさん
15/12/30 02:30:18.07 BriEFJHd.net
最初に、     $_SESSION["total"]=0: にしておく
以降は、     $_SESSION["total"]+=$keisan_3; とする
加算した後に、 echo $_SESSION["total"]; で表示する。
でどうですか?

256:デフォルトの名無しさん
15/12/30 02:36:17.85 X0vYHUCK.net
プログラム経験はそれなりにあっても今始めてステートレスな環境でどうすればいいか困ってるのかもしれないし、
一概にセンスがないと言い切れるもんじゃないような。

257:デフォルトの名無しさん
15/12/30 02:49:16.11 3alGq9af.net
>>252
僕には合わないみたいですすいません。
でもありがとうございます。

258:デフォルトの名無しさん
15/12/30 08:10:01.35 HDt7R2Vx.net
>この程度でこんがらがるようじゃ、センスが無い、と諦めるのも一考
こんな↑大馬鹿の言うこと気にする必要はありません。
疑問を持ち、それを解決しようと努力する貴方のような姿勢こそ、最も大切な能力です。
分からない部分は、そこだけ取り出したコードを書いて、理解しながら進めると良いよ。
(その作業が面白いと思えるのも能力のひとつかもしれません)

259:デフォルトの名無しさん
15/12/30 08:15:51.87 HDt7R2Vx.net
まず、↓のコードをコピペして、ブラウザで何度も再表示してみてください。
ブラウザの再表示で前回の結果を引き継げることが分かると思います。
<?php
error_reporting(0);
session_start();
$xxx = $_SESSION["xxx"];
$xxx ++;
echo $xxx;
$_SESSION["xxx"] = $xxx;

260:デフォルトの名無しさん
15/12/30 08:50:48.17 PRQQH4Sb.net
・返される値を気にするのでなければ $xxx++ より ++$xxx を使う方が良い
・存在が確定しているならば良いが、そうとは限らないのならば
  $_SESSION["xxx"]を使う前に、まず最初に isset($_SESSION["xxx"]) で配列$_SESSIONと要素"xxx"の存在を確認すべき
・初期化の概念は初心者にとって大事
・俺理論だが、型を意識するよう (string)($xxx) と明示的にキャストするクセをつけるとクドい反面安心感がある

どうでもいいけど isset( $array['foo']['var'] ) がfalseになるときって
$array['foo']['var'] がないのか $array['foo'] がないのか $array がないのか、区別つかんよね

261:デフォルトの名無しさん
15/12/30 12:16:27.79 3alGq9af.net
>>255
センスと言われればまぁあれですがPHPって楽しいですね
進め方って重要ですよね。参考にしますありがとうございます
>>257
ほう…なんだか自分のコードが穴だらけのような気がします…
ありがとうございます

262:デフォルトの名無しさん
15/12/30 12:26:55.91 PgKYd+R7.net
>>257
keyの有無を調べたいならarray_key_exists() とか?
例2 array_key_exists() 対 isset()
URLリンク(php.net)

263:デフォルトの名無しさん
15/12/30 12:45:41.68 UceytvZf.net
まぁ先にC言語とかやっとくと, PHPの型の取り扱いの気持ち悪さはよく理解出来ると思う
PHP7で基本型タイプヒンティングが入ったから型チェックの手間は随分省けるようになったけど, 要所では自動変換に頼らず明示的なキャストで書いた方が安全だし読むときに分かりやすいよね

264:デフォルトの名無しさん
15/12/30 12:57:03.00 JM6HwSlE.net
インタプリタ使う意味が半分ぐらいなくなるわw

265:デフォルトの名無しさん
15/12/30 13:02:04.80 PRQQH4Sb.net
んだな
phpの動的型付け・型相違時の柔軟な処理がすごくラクで助かる時もあるから
一概にどっちが良いとも言いがたいけど、意識しておくと後々ラクなのも事実 先にcやれが正論過ぎるが
>>259
言いたかったことはそれとは違って、警告出してくれるIDEは素晴らしいで終わる話だが、
例えば、$_SESSION['test'] を $_SESSSION['test'] と打ち間違えていた時
他で$_SESSSIONなんて使ってなければ、isset( $_SESSSION['test'] ) は常にfalseを返してくることになり
php側ではNoticeを出してくれない、デバッグ時に何が悪いか30分悩みまくる、ってことを以前経験した

266:デフォルトの名無しさん
15/12/30 13:14:46.04 xHbCmVj1.net
>>262
私の場合よく使う変数は参照渡し返す関数作ってミスを防いでるけど、それじゃ効率悪いよな…。

267:デフォルトの名無しさん
15/12/30 13:41:15.53 UceytvZf.net
PHPCSとかで命名を咎めてもらうのかなぁ

268:デフォルトの名無しさん
15/12/30 14:26:15.68 HDt7R2Vx.net
>>257
知ったかぶり乙

269:デフォルトの名無しさん
15/12/30 15:47:29.74 UljFI1i+.net
俺のPHPのコードは半分くらい
//ob_start();
//var_dump(疑わしい変数);
とかだからな

270:デフォルトの名無しさん
15/12/30 15:58:01.97 R6S1A8we.net
加算機 先生方、こんなのダメかい?w
<?php
//---------------------------------
session_start();
$cal=$_POST['cal'];
if(!preg_match('[0-9.]',$cal)){
    $_SESSION['hage']=$_POST['hage'];
    if($cal=='+')    $_SESSION['total']+=$_SESSION['hage'];
    else{
    $_SESSION = array();
    $_SESSION['total']=0;
    }
}
//---------------------------------
?>
<html lang="ja"><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head>
<body><form method="POST" action="./cal.php">
入力値:<input type="text" name="hage" size="20"><br />合計:<?php echo $_SESSION['total'];?><br />
<input type="submit" name="cal" value="+"><input type="submit" name="cal" value="CLEAR"></form><body></html>

271:デフォルトの名無しさん
15/12/30 16:18:42.60 R6S1A8we.net
あ、ソース名はcal.php 

272:デフォルトの名無しさん
15/12/30 17:22:37.17 JM6HwSlE.net
session_start()の前に
error_reporting(E_ALL);
入れてみ

273:デフォルトの名無しさん
15/12/30 18:00:59.44 gRxyxMba.net
【OS名】Ubuntu15.10
【PHPのバージョン】5.6.11
【連携ソフトウェア】apache
【質問内容】
ファイルをflockでロックするテストをしていたらロックできなくなりました。
ロックした状態のままリロードしたらそうなったんだと思います。
どうすればロックを解除できますか?

274:デフォルトの名無しさん
15/12/30 18:05:05.96 SOn9TqmP.net
>>269
厳しいなぁ先生w
<?php
//---------------------------------
session_start();
$cal = (isset($_POST['cal'])) ? $_POST['cal'] : null;
if(!preg_match('[0-9.]',$cal)){
  $hage = (isset($_POST['hage'])) ? $_POST['hage'] : null;
  $_SESSION['hage']=$hage;
  if($cal=='+')  $_SESSION['total']+=$_SESSION['hage'];
  else{
    $_SESSION = array();
    $_SESSION['total']=0;
  }
}
//---------------------------------
?>
<html lang="ja"><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head>
<body>
<form method="POST" action="./cal.php">入力値:<input type="text" name="hage" size="20"><br />合計:<?php echo $_SESSION['total'];?><br />
<input type="submit" name="cal" value="+"><input type="submit" name="cal" value="CLEAR">
</form><body></html>

275:270
15/12/30 18:35:33.32 gRxyxMba.net
apacheリスタートしたら解除されました。他に方法ないんですかね?

276:デフォルトの名無しさん
15/12/30 19:04:45.85 JM6HwSlE.net
>>271
preg_match→is_numericでいい それと$cal(中身は+かCLEAR)じゃなくて$hageに対してやれ
$_SESSION['hage']いらない
適切に処理された安全な値でもhtmlに変数echoするときはhtmlspecialcharsかませる癖をつけたほうがいい
セッション使いたかっただけなら別にいけどsessionは大げさ hiddenフィールドでやればいい

277:デフォルトの名無しさん
15/12/30 19:16:40.72 zANMIO+6.net
>>273
271ざんす おれ質問主じゃないんだ ヒマで書いてみただけw
sessionいらねえと思ったけどみんなsessionsessionって言ってたし
あ、$calと$hage間違ってるわ、ビール飲み過ぎたごめん
もちろん仕事時はhtmlspecialcharsとか使ってるよー

278:デフォルトの名無しさん
15/12/30 19:26:01.91 zANMIO+6.net
正規表現やりすぎるとis_numericとか忘れるなぁ・・
もういっかい初心に戻って勉強しなおすお

279:デフォルトの名無しさん
15/12/30 21:58:07.47 gDwmGNes.net
ちょっとした計算が、こんなに難しいの?
JavaScriptの方が、簡単

280:デフォルトの名無しさん
15/12/30 22:39:50.58 X0vYHUCK.net
>>276
いや、同じくらい簡単だよ
やろうとしてることが違うだけで

281:デフォルトの名無しさん
15/12/30 22:41:16.58 X0vYHUCK.net
>>275
is_numericとその正規表現は真と判定される基準が全然違うので、is_numericがいいかというとどうなんだろうね。

282:デフォルトの名無しさん
15/12/30 22:46:15.45 UceytvZf.net
正直先の正規表現は穴だらけなので, どう考えてもis_numericの方がいい
正規表現でIEEE小数表現をきちんと書くならそれはそれでいいけど

283:デフォルトの名無しさん
15/12/30 22:50:10.24 BriEFJHd.net
数値の桁数チェックとか、楽なので

284:232q
15/12/30 23:32:42.35 wmKVqfCX.net
>>234-237
ありがとうございます。当該ライブラリは独立したドキュメントが整備されておらず、
ソースのコメントに仕様が書かれており、ソースをきっちり読んでいるかのようなコメントになってしまいました。
JSON, オブジェクトイテレーションなど、私の知識不足が原因でサンプルを読んで混乱していたようです。

285:デフォルトの名無しさん
15/12/30 23:54:08.37 X0vYHUCK.net
>>279
それらの入力を期待しているかどうかによるんだけど、たぶん質問主はそれを期待してないよ。

286:デフォルトの名無しさん
15/12/31 00:38:12.93 3gTqCnws.net
/^[0-9\.]+$/じゃあいくら何でもザル過ぎるから/^[0-9]+(\.[0-9]+)?$/ぐらいにすべきだろうけど, こんなん正規表現で書くよりis_numericと書いた方がいいでしょ

287:デフォルトの名無しさん
15/12/31 00:51:05.43 T4L8KKE0.net
何を持ってざるとするのか

288:デフォルトの名無しさん
15/12/31 01:19:19.64 MIlX8fvc.net
>>281
ちゃんと探した?
URLリンク(developers.google.com)
URLリンク(developers.google.com)
URLリンク(developers.google.com)
簡易的なものなら
URLリンク(developers.google.com)

289:デフォルトの名無しさん
15/12/31 01:32:46.86 MIlX8fvc.net
16進数やら指数表記入れてくるのはわざとやってるんだろうから
その辺は考慮しなくていいと思うけどね
PHP7からはちゃんと16進数も弾いてくれるみたいだけど

290:デフォルトの名無しさん
15/12/31 03:16:49.20 T4L8KKE0.net
>>286
何言ってんだ?

291:デフォルトの名無しさん
16/01/02 18:45:54.31 UuhQB48c.net
どんどん加算していってトータルが100を超えたら特定のページに飛ぶようにしたいのですが
if ($_SESSION["total"]>100||$_SESSION["total_2"]>100) {
header("Location:パス名");
}
これだと100を超えた次の計算後に飛ぶようになってしまいます
どうすればいいでしょう
こんな感じに加算しています
$keisan_3=$keisan_2-$keisan+$_SESSION["total"];
$keisan_3+$_SESSION["total"];
echo "<td>";
echo '<p>';
echo htmlspecialchars($keisan_3,ENT_QUOTES,'UTF-8');
echo '</p>';
echo "</td>";
$_SESSION["total"]=$keisan_3;
$keisan_4=$keisan-$keisan_2+$_SESSION["total_2"];
$keisan_4+$_SESSION["total_2"];
echo "<td>";
echo '<p>';
echo htmlspecialchars($keisan_4,ENT_QUOTES,'UTF-8');
echo '</p>';
echo "</td>";
$_SESSION["total_2"]=$keisan_4;

292:デフォルトの名無しさん
16/01/02 19:06:05.47 VLzeBTkn.net
>= 100 か > 99 使えばいいんじゃね

293:デフォルトの名無しさん
16/01/02 19:27:33.49 XBUisDtv.net
>>288
何してるのこれ?
$keisan_3+$_SESSION[

294:デフォルトの名無しさん
16/01/02 19:29:01.64 XBUisDtv.net
途切れた。2行目のこれ。
$keisan_3+$_SESSION["total"];

295:デフォルトの名無しさん
16/01/02 19:32:28.01 3xAvnogN.net
再帰したフォルダをJSON(d3.js形式)にしたいのですが、そういったサンプルコードが中々ない
例 / URLリンク(bl.ocks.org)
これって案外簡単にできるものなんです?

296:デフォルトの名無しさん
16/01/02 19:44:17.21 UuhQB48c.net
>>289
試したんですけどダメでした
>>291
これは…その…いらなかったですね…
ありがとうございます

297:デフォルトの名無しさん
16/01/02 20:05:41.32 XBUisDtv.net
>>293
session_start はファイルの上部に入れる。
session_start の直後にif文を入れれば想定した動作になるはず。
ダメならtotalの中身を表示しながら少しずつ動作を確認するといい。
それか自分で要件を勘違いしてる可能性もある。
<?php
session_start();
if ($_SESSION["total"]>100||$_SESSION["total_2"]>100) {
header("Location:パス名");
}
//以下計算処理

298:デフォルトの名無しさん
16/01/02 21:32:41.03 VLzeBTkn.net
>>292
よくわからんけど対象以下のディレクトリ・ファイルを再帰的に全部拾ってって
それをd3.jsで読める形にしてd3側でツリー描きたいとかそゆこと?

299:デフォルトの名無しさん
16/01/02 21:51:22.37 B+tUCmqX.net
Groovyなら、eachFileRecurse で、
ディレクトリ階層を深さ優先探索できる

300:デフォルトの名無しさん
16/01/02 21:57:54.66 ta1uD6qZ.net
>>292
例で示されたサンプルは、flare.jsonがその表示データみたいですね。
このデータはまさにJSON形式だから、ディレクトリを再帰検索して多次元配列にして取得し、
それをjson_encode()すればいいんじゃないの?

301:デフォルトの名無しさん
16/01/03 09:05:46.06 flrhEOJ+.net
すごく下らないことなのかもですが・・・
無名関数にuseで変数を渡すとき、渡すものがオブジェクトだと
参照渡しにせずとも状態が受け継がれるのはなぜでしょうか?
class ExampleCounter {
  private $counter;
  public function __construct(){ $this->counter = 0; }
  public function get(){ return $this->counter; }
  public function count(){ ++$this->counter; }
}
$ec = new ExampleCounter;
$counter_a = $counter_b = 0;
$string = preg_replace_callback(
  '/@\-.+?\-@/',
  function ($match) use ($ec, $counter_a, &$counter_b) {
    $counter = (string)$ec->get() . (string)$counter_a . (string)$counter_b ;
    $ec->count(); ++$counter_a; ++$counter_b;
    return $counter;
  },
  'abc@-def-@ghi@-jkl-@mno@-pqr-@stu@-vwx-@yz'
);
var_dump($ec->get(), $counter_a, $counter_b, $string);

302:デフォルトの名無しさん
16/01/03 10:31:02.34 RMeP4ml1.net
>>298
PHP5でのオブジェクト指向プログラミングのポイントとしてよく言われるのは
「オブジェクトはデフォルトでは参照渡しとなります」ということです。
URLリンク(php.net)

303:デフォルトの名無しさん
16/01/03 10:35:03.90 RMeP4ml1.net
つまり、わざわざ&をつけなくても参照渡しになるってこと。

304:デフォルトの名無しさん
16/01/03 10:43:10.82 flrhEOJ+.net
>>299-300
やばい知らなかった arrayが値渡しになってるからてっきり……だからsingletonそのまま渡しても動いてたのか
しかもphp.netの中にあったとは。ありがとうございます

305:デフォルトの名無しさん
16/01/03 16:29:08.20 jR+Nkr2H.net
>>299
このぺーじは何回読んでも 参照とIDのコピーの区別がつかない
どう読んでも参照だろとしか思えない

306:デフォルトの名無しさん
16/01/03 17:03:38.48 E2yOOycQ.net
>>299のページは, 違うけど, だから何なのかということが書いてないのがアレ
わざわざマニュアルに書くということは実際にPHPでコードを書くときに問題になることが有り得るということなのか?
内部的な扱いの違いだけで(実行速度を除けば)PHPプログラマは気にしなくてよい?

307:デフォルトの名無しさん
16/01/03 17:31:48.27 flrhEOJ+.net
参照じゃないから・・・
コピー元をunsetしてもコピー先がnull参照になったりしないとか
どこからも参照されなくなったあとにgcされるとかそういうことですかね?

308:デフォルトの名無しさん
16/01/03 17:36:43.18 flrhEOJ+.net
そういえば、>>301に値渡しとは書いたけど
普通にarrayを渡すときであってもCopy On Writeがあるから
渡した先で書き換えない限りはでかいデータを渡してもメモリ肥大化しないで処理してくれるわけで、これもある意味自動参照渡し

309:デフォルトの名無しさん
16/01/03 18:11:01.17 vYwnzBVC.net
本を参考にして掲示板をつくっています。
数字:名前:本文、という風にしたいのですが、この数字の部分が表示されません。
プログラムは以下のようになっています。
<?php
$s=mysql_connect("localhost","root","souhei") or die("失敗しました");
print "接続OK!<br>";
mysql_select_db("db1");
$a1_d=$_POST["a1"];/*氏名*/
$a2_d=$_POST["a2"];/*本文*/
mysql_query("insert into tbk (nama,mess) values('$a1_d','$a2_d')");
$re=mysql_query("select * from tbk order by bang");/* bang=番号のこと*/
while($kekka=mysql_fetch_array($re)){
print $kekka[0];
print ":";
print $kekka[1];
print ":";
print $kekka[2];
print "<br>";
}
mysql_clo


310:se($s); print "<br><a href='kantan.html'>トップメニューに戻ります</a>"; ?> どこが間違っているかご教示お願いします。



311:デフォルトの名無しさん
16/01/03 19:14:47.80 vYwnzBVC.net
すみません、306ですが自己解決しました。
スレ汚し申し訳ありませんでした。

312:デフォルトの名無しさん
16/01/03 19:26:03.79 8xMDsXMt.net
初心者のDBに関する質問て軒並みmysql関数使ってるね。
もう、古いPHPの解説書全部焼却した方が色んな意味でみんなのためなんじゃないかな。

313:デフォルトの名無しさん
16/01/03 19:54:52.92 Aw+loPRS.net
mysql_num_rowsは便利だったけどね。PDOに相当のメソッドがないのは痛い。
PDOStatement::rowCountはselect文では微妙だし。

314:デフォルトの名無しさん
16/01/03 20:50:27.45 Ga7S25j+.net
PDOが推奨される理由ってインジェクション対策のエスケープがやりやすいという以外の理由がありますか?

315:デフォルトの名無しさん
16/01/03 21:14:26.45 KfQ2xAcB.net
PDOで特段エスケープがやりやすいっていうことはないと思うけど
PDOの主目的はアクセスの抽象化で
接続部分書き換えるだけで対応してるDBに切り替える事ができるのがポイント
ただPDOはO/Rマッパーではないから実際問題として
ベンダー固有の機能(SQL)使ってたりしてそのまま動くってわけにもいかんだろうけど

316:デフォルトの名無しさん
16/01/03 21:26:55.68 +3E/SZnp.net
>>309
mysql_num_rowsなんて
結果セット(≠SQL_CALC_FOUND_ROWS)をカウントするだけなんだからどうでもいいよ
実際どうでもいいから消えたし

317:デフォルトの名無しさん
16/01/03 22:15:57.50 7hdqvuO7.net
なるほど。
やはりPDOだと件数の取得は、件数用のクエリを別に発行しないと駄目なんだね。

318:デフォルトの名無しさん
16/01/04 12:50:34.91 WKhSyJYd.net
>>312
ページあたり○件表示 をやるときに全ページ数求めるのに使うよ!

319:デフォルトの名無しさん
16/01/04 13:00:09.43 WKhSyJYd.net
>>313
rowCount()で求められるよ!

320:デフォルトの名無しさん
16/01/04 14:13:23.78 QdkZIWcg.net
全レコードフェッチしてカウントするのか。たまげたなぁ、、、。
>>313
互換性の観点から、そうしたほうがいいと思う

321:デフォルトの名無しさん
16/01/04 14:59:10.08 OaDNUvqZ.net
PDOの仕様上は、select文の場合PDOStatement::rowCountで結果セットの行数
を取得できる保証はないけど、実際のところどうなんでしょうか?
 MySQL
 PostgreSQL
 SQLite
 SQLServer
で知りたいです。
(すみません試す環境が現在ないので・・・)

322:デフォルトの名無しさん
16/01/04 15:48:16.33 xU2s8ar4.net
$array["3"]="hoge";してもあとでforeachかけるとkeyがintの3にすりかわってて、うっかり === 比較とかするとハマる
$array["03"]だと$array[3]と同義にはならずkeyはstringの"03"
誰が得するんですかこの仕様

323:デフォルトの名無しさん
16/01/04 16:23:05.04 7kte6BbK.net
それはおまえさんのやりかたがまずいだけだろ

324:デフォルトの名無しさん
16/01/04 16:58:05.41 kA444xDU.net
>>318
マニュアルのノートにもあるね。
URLリンク(php.net)
String keys of associative arrays, for which is_numeric() is true and which can be type-juggled to an int
will be cast to an int!
意訳:連想配列のstringの数字キーがintに変わっちゃうよ!

325:デフォルトの名無しさん
16/01/04 17:18:13.58 xU2s8ar4.net
>>320
cookieは文字列型、DBから文字列型で返ってくる、と同様FAQ的だとわかっちゃいたけど
実際これに当たるとすっごく面倒だった
配列のキーにぶち込んでるものと変数/配列の値にぶちこんでるものを比較するのに
わざわざ前もってctype_digit($string)と$string[0]!=='0'を確認させる羽目になった
ところでそれ、is_numeric()じゃダメだな。'10.0'や'0,1'はtrueを返されるけど、配列キーにしても整数型キャストされない
この変換、なんか歴史的事情でもあるんだろうか?
>>319
困らないならそれでいいんじゃないかな

326:デフォルトの名無しさん
16/01/04 18:45:17.18 A2K+UcjX.net
型の自動変換をさせない設定にできるといいんだけどね。

327:デフォルトの名無しさん
16/01/04 18:59:44.66 OaDNUvqZ.net
そもそも配列のキーに、
$array[3]

$array["3"]
を区別したいという使い方が想像できない。

328:デフォルトの名無しさん
16/01/04 19:24:29.50 ES5+LcGZ.net
>>321
しょうがないからキーにする数値に文字列プレフィクスつけたりした

329:デフォルトの名無しさん
16/01/04 23:32:32.08 8u7a3/zf.net
>>311
ありがとうございます。コードの汎用性が上がるんですね。

330:デフォルトの名無しさん
16/01/05 16:14:28.63 DBF3ayuU.net
phpでサイトを作ろうと思っているのですが、virtualboxを使う際はnginxとphp-fpmとmysqlとvsftpをインストールするだけでpcからサイトを確認・編集出来るようになりますか?

331:デフォルトの名無しさん
16/01/05 16:17:36.63 DBF3ayuU.net
>>326 ですが、説明が不足していたので追記します。
作りたいのはphpサイトのテスト環境です。

332:デフォルトの名無しさん
16/01/05 16:26:28.65 QeOiEXTF.net
>>326
設定済みのVagrantのファイルを見つけてきたら、
VagrantとVirtualBoxとputty(ターミナル)でいけるよ
同期も自動的に出来る

333:デフォルトの名無しさん
16/01/05 17:06:55.24 6S/N1hh8.net
>>326
インストールと設定をすればできるようになるよ。
あとテストしたいことによってはmysqlいらない。

334:デフォルトの名無しさん
16/01/07 13:35:07.18 nOAVWNy7.net
配列をMySQLに保存する時にserialize()を使うというのはわかりました。
$db3 = serialize( array("label1", "label2") );
このように挿入したdb3列があるとして、label1を含む行のみをDBから取り出すのはどうしたらよいでしょうか?
全部取得してunserialize()してlabel1を含むものを探すのは非効率ではないかと思います。
挿入するデータ構造を変えるべきでしょうか?シリアライズする配列の要素数は行によって違います。

335:デフォルトの名無しさん
16/01/07 15:21:45.50 wk6H0iR6.net
単純な文字列検索でいいなら、 WHERE で指定してやれば良いはずだが
serializeしたものをvar_dumpして確認してみ

336:デフォルトの名無しさん
16/01/07 15:26:15.64 elcoV0S6.net
>>330
データベースに「付随する可変長のオブジェクトをなんとか格納したい」時にしょうがなく使うものなので、検索対象には普通しないよ、serializeとかJson型とかは
検索対象にしたいなら、データベースの列を一個追加して
配列の最初の値をその列に入れて
その列にインデックス付ける
とすると高速に検索出来ます。
でも、その値は100万行に対して数種類しかない、だと高速化もたかが数分の一になるのでよく考えてね

337:デフォルトの名無しさん
16/01/07 15:27:07.55 kiPrQRCq.net
>>330
配列要素をDBから検索したいなら、格納時にシリアライズは使わずに、
適当な記号文字で連結して一つの文字列にし、格納する方が良いように思う。

338:デフォルトの名無しさん
16/01/07 15:37:53.97 mR6oAbiO.net
>>332
なんで配列の最初の値だけしか検索対象にしないという仕様に変更しちゃうの?

339:デフォルトの名無しさん
16/01/07 16:20:10.57 MPmNMeUD.net
>>334
「とかすると」に訂正するよw

340:デフォルトの名無しさん
16/01/07 20:17:30.66 1sig02kA.net
>>330
一つのカラムに複数の値を持つ属性を格納するのはSQLアンチパターンの一つ。
根本的な解決策は、テーブルを一つ増やすこと。つまり、交差テーブルを作成する。

341:デフォルトの名無しさん
16/01/07 20:27:13.84 QG9KWxbk.net
>>332
>検索対象にしたいなら、データベースの列を一個追加して
こういう糞みたいなテーブル設計、結構あるよね。
RDBの使い方わかってない馬鹿設計。
>>336みたいな当たり前のことを全く勉強しない。

342:デフォルトの名無しさん
16/01/07 21:24:22.54 VxA2n+jW.net
>>336
正論だと思う。
でも、
  >適当な記号文字で連結して一つの文字列にし、格納する
も場合によっては簡単で良い場合もあると思う。
どんな場合も絶対にSQLアンチパターンとは言えないような気がします。
MySQLには配列型というフィールド型はないのか。。。

343:デフォルトの名無しさん
16/01/07 21:49:23.73 QG9KWxbk.net
↑こういう考え方する人って、
その後同様の方法で機能拡張されていった時に
どんなシステムになるかって事、全く考えてないよな。
場当たり的で、今さえ良ければいい、
後でシステム触る人のことなんか考えもしない。
糞生産マシーン。

344:デフォルトの名無しさん
16/01/07 21:53:27.53 QG9KWxbk.net
>どんな場合も絶対にSQLアンチパターンとは言えないような気がします。
気がするのは勝手だけど、明らかにアンチパターンだから。
いい加減に気づいて。

345:デフォルトの名無しさん
16/01/07 21:54:14.87 wk6H0iR6.net
そりゃまあDB的には突き詰めれば別テーブル使えになるのは仕方ない
が、>>332は「配列の最初の値をその列に入れて」だぞ
追加した1カラムにserializeした配列をぶっこめっつってるんじゃないぞ
挙動が変わってんじゃねーかという突っ込みは真っ当だが正規化がどうのは筋違いでは

なおserializeしたものをDBに突っ込むと意外とデータ量増えるが配列に戻す時に楽ではある
多次元でも楽々。アレだけど対応してればオブジェクトも楽々

346:デフォルトの名無しさん
16/01/07 21:54:39.91 lBSXDGgS.net
ここは、PHPのスレだからね

347:デフォルトの名無しさん
16/01/07 22:06:22.16 QG9KWxbk.net
>>341
アホなのかな?
後で、やっぱりlabel2も検索したいです~ってなったら、またカラム増やすの?
開発中ならまだいいけど、運用中にテーブル構造いじるの、けっこう胃が痛いよ。
だったら最初から別テーブル作ればいいじゃん。複合プライマリキーで。
いくつ配列要素増えようが、インデックス効くから高速に検索できる。
DBの基本中の基本じゃないの。
PHPのスレだからとか関係ない。それともPHPerはDBも満足に扱えないの?

348:デフォルトの名無しさん
16/01/07 22:12:18.90 QG9KWxbk.net
>突き詰めれば別テーブル使えになるのは仕方ない
仕方ないって、頭おかしいのかな? 理想だ、ならわかるが。
本当にRDBの事全くわかってないな。

349:デフォルトの名無しさん
16/01/07 22:13:55.32 lBSXDGgS.net
DB板でやれば良い。ちゃんと誘導すれば済む話。
閑古鳥が泣いてるよ(泣く方が意味伝わるな)

350:デフォルトの名無しさん
16/01/07 22:28:58.44 PsJSsRuX.net
好きなようにやれよ
業務用じゃないんだろ

351:デフォルトの名無しさん
16/01/07 22:30:40.24 QG9KWxbk.net
OK
elcoV0S6 kiPrQRCq VxA2n+jW wk6H0iR6 は、PHPerの面汚しだから、
DB板に行って3年ROMれ。

352:デフォルトの名無しさん
16/01/07 22:34:04.85 zlqF3Cm9.net
>>330
纏めておくと, とりあえずシリアライズして保存するならば検索は諦める。
検索したいという目的があるならば, データ構造に対して適切なテーブル設計を行う必要がある(何のためのJOINか)。
テーブル構造についてはID:QG9KWxbkの述べている通りだが, PHPとは無関係だから本来はデータベース板で訊くべき。

353:デフォルトの名無しさん
16/01/07 22:39:18.45 mR6oAbiO.net
正規化しなさい以外に答えはないけど、このへんでどうぞ。
すぐ荒れるスレだけど、悪いスレじゃない。
DB設計を語るスレ 9
スレリンク(db板)

354:デフォルトの名無しさん
16/01/07 22:40:09.61 KI3qNwRQ.net
まあ何事にもトレードオフがつきものだ。

355:デフォルトの名無しさん
16/01/07 22:41:41.00 nOAVWNy7.net
>>331-349
すんまへん、大変勉強になりました。
私の書き方が悪く、label1だけでなくlabel2でも検索することも想定しています。
たしかにDB板に投稿するべき内容だったかもしれません。
みなさんのアドバイスから検索した結果参考になりそうなページをみつけました。
SQLアンチパターン1章 Jaywalking(信号無視)
URLリンク(qiita.com)
言語の文法をひと通り勉強しても周辺技術も学ばないとまともなソフトはなかなか作れませんね。。

356:デフォルトの名無しさん
16/01/07 23:50:37.77 MPmNMeUD.net
1対1でレコードにシリアライズやBLOBやJsonを入れたい、かつ検索したい
なら検索用フィールドを追加する、ってなるけど
実は1対Nやったんや、ってオチが大抵付くので
元テーブル+BLOBテーブル+関連付けテーブル
にしといた方がいいか

357:デフォルトの名無しさん
16/01/08 03:09:27.33 ZC031pcb.net
>>351
> 言語の文法をひと通り勉強しても周辺技術も学ばないとまともなソフトはなかなか作れませんね。。
みんな通る道だしゴールしたと言い切れる人もいないだろうし。
気にしなくていいよ。
>>352
なんで誘導先に移動しないの?

358:デフォルトの名無しさん
16/01/09 02:13:36.29 e4D1bXEw.net
鯖AをWeb鯖として、アクセスされた時に
1. 鯖AからBに認証コードを要求
2. 鯖AからBにKeep-Aliveで接続
3. 認証コードを元にユーザーをBにリダイレクト
4. 鯖BからAにレスポンスが届く
5. 処理
としたくて、A←→Bでの通信はC++で実装してあるのでexecでnohupして呼び出したところ、
ローカル実行では上手くいったものの、nginx+fastcgiで呼び出した場合にnohupがうまく呼ばれてないようです。
execする対象はchmod a+xしてあります。
何が原因でしょうか?

359:デフォルトの名無しさん
16/01/09 02:59:47.94 r2xp7j2i.net
>>354
ピーエイチピー!!!!!!!!

360:デフォルトの名無しさん
16/01/09 03:28:28.92 hDaixTvf.net
>>354
ほとんどが不要な情報じゃないだろうか。
nginx+fastcgi の環境下で exec('nohup hoge') が実行できないってことでいいのかな。

361:デフォルトの名無しさん
16/01/09 03:31:41.55 PU5LksXv.net
とりあえずexecの代わりにshell_execで実行結果の確認(出力, 返値)をすることから始めるんじゃないですかね

362:デフォルトの名無しさん
16/01/09 08:59:13.82 UDcRuxMJ.net
>>354
もしかしてchrootしてないか?

363:デフォルトの名無しさん
16/01/09 11:00:31.17 e4D1bXEw.net
>>357
>>358
なるほど、調べてみます。
もしどうしても出来ない時は
ソケット通信を使って非同期にしようと思います。

364:デフォルトの名無しさん
16/01/09 12:00:50.97 pmNGPpRJ.net
ローカル環境と本番で、php.iniの設定が違うように思う。
そこに原因があるのでは。

365:デフォルトの名無しさん
16/01/10 17:21:39.48 2wAawuwm.net
プログラム言語的なものを作るとして
str:a = "Hello";
str:b = "World";
say(a + b);
これを
$a = "Hello";
$b = "World";
echo $a . $b;
に変換してみて下さい!

366:デフォルトの名無しさん
16/01/10 17:29:15.07 2wAawuwm.net
ちなみに僕ではこれが限界です\(^o^)/
<?php
$str = <<<EOD
str:a = "Hello";
str:b = "World";
say(a + b);
EOD;
$str = str_replace(["str:a", "str:b", "say(a + b)"], ["\$a", "\$b", "echo
\$a . \$b"], $str);
eval($str);

367:デフォルトの名無しさん
16/01/10 17:36:39.47 E61+414H.net
ヒアドキュメントが絶対必要なとき以外はNowdoc構文を使え

368:デフォルトの名無しさん
16/01/10 17:43:17.74 5QIV+MjV.net
>>363
理由を説明しなければ説得力なし

369:デフォルトの名無しさん
16/01/10 17:44:56.59 2wAawuwm.net
ほーNowdocなんてものがあったんですか
php5.2で思考停止して最近arrayも[]に変えたぐらいなので知りませんでした

370:デフォルトの名無しさん
16/01/10 18:51:02.08 E61+414H.net
>>364
単純に遅い $記号を意図せず使っていると変数扱いされる

371:デフォルトの名無しさん
16/01/11 02:04:49.32 zpiPzR4s.net
字句解析や構文解析を書けってか

372:デフォルトの名無しさん
16/01/11 08:39:20.66 7ROk/vF5.net
phpってなんでこんな簡単なのにみんな使わないの?

373:デフォルトの名無しさん
16/01/11 08:56:10.77 59+0WYwJ.net
使うとペチパーってバカにされるから…
簡単だし、薄く使えば遅くないのにね

374:デフォルトの名無しさん
16/01/11 09:01:04.44 7ROk/vF5.net
ペチパーって呼び方初めて聞いたww  語呂の良さが異常

375:デフォルトの名無しさん
16/01/11 10:18:36.33 Sg+RIRQN.net
Cannot modify header information
というエラーはヘッダ情報を出力する前にゴミ出してるエラーだけど
これの犯人を捕まえたいときは どう追えばいいの?
最終的にどれだけのファイルをincludeしたかを知りたいんだけど
知る手段はある?

376:デフォルトの名無しさん
16/01/11 11:08:37.15 eFIzy0+D.net
>>371
インクルードされるファイルの戻り値を確認するのはどう?
URLリンク(php.net)
例4 インクルードの戻り値を比較する
例5 include と return 文

377:デフォルトの名無しさん
16/01/11 11:09:57.23 eFIzy0+D.net
それか、debug_print_backtrace の方がいいかも。
debug_print_backtrace() は PHPバックトレースを表示します。
関数のコール、include / require されているファイル、そして eval() された内容などが表示されます。
URLリンク(php.net)

378:デフォルトの名無しさん
16/01/11 15:15:49.79 VWhKDzdW.net
>>373
これ試す
オートロードでもちゃんと動きそう

379:デフォルトの名無しさん
16/01/11 18:27:59.94 uSmHGUn0.net
リスト中の文字列すべてに対して類似検索をかけたい
文字列は文字列長50文字未満(要するに短い)英数記号だけでなくUTF8マルチバイトもある
リストは100~500件程度
処理コストを出来るだけ抑えたい
こういうとき、どうすれば良いでしょうか?

380:デフォルトの名無しさん
16/01/11 18:47:50.44 4


381:Ze6IrjD.net



382:デフォルトの名無しさん
16/01/11 21:02:46.19 79D4A84J.net
PHPでサーバデーモンを書きたいのですが
書いたものはターミナルからどうやって起動させるのでしょうか?
linuxからなら
nohup php server.php &
とかでいいのでしょうか?

383:デフォルトの名無しさん
16/01/11 21:05:45.24 Sg+RIRQN.net
>>377
デーモンならちょっぴり悩むとこだけど
サーバならxinetdでいいっしょ

384:デフォルトの名無しさん
16/01/11 21:18:13.13 79D4A84J.net
>>378
どうもありがとうございます
inetdでの設定方法がちょっとわかりませんが頑張ってみます

385:デフォルトの名無しさん
16/01/11 21:36:41.54 uSmHGUn0.net
>>376
sqliteをmemoryに置いて高速に…まではわかるんですが
sqlite側だけで(sqlのlikeではなく)類似検索をやってもらえるもんなんですか?

386:デフォルトの名無しさん
16/01/11 23:07:45.03 bjDzOe/b.net
やりたいことって、
例えば言葉を入力してもらい、
「それに一番近い、または似ている言葉をリストの中から見つけたい」
というようなこと?

387:デフォルトの名無しさん
16/01/11 23:21:30.71 NHMT9p3u.net
どのくらいの精度が欲しいのか知らないが、similar_textじゃダメなの?

388:デフォルトの名無しさん
16/01/11 23:54:38.73 FvSmyCNC.net
類似検索の定義がなんなのかはっきりしないことには答えようがないで
like検索のようなものと想定してsqlite言ったんだと思う

389:デフォルトの名無しさん
16/01/11 23:59:48.64 uSmHGUn0.net
>>381
そう、そういうことです。比較対象が画像や記事など大き目のデータではなく短い文字列
similar_text()等だとマルチバイト対応化したコード例もあるものの
速度が気になっていて、リスト件数450件程で20msec
単純に検索文字列をn文字ずつずらしながらm文字ずつ取っていって配列にして
リスト文字列全てから検索文字列配列のいずれかが含まれるものを拾っていって
マッチ回数を順位・精度に使って…とすると2msec位程度には早くなるけどもここからの改善が難しくて難儀してます
sqliteだと固有の機能としてlikeでない類似検索機能はなさそうなので、後者のパターンに近い感じですよね
でもlikeの単純マッチだけになるから順位付け・精度向上は難しそう


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