1 :
デフォルトの名無しさん 転載ダメ©2ch.net
2015/11/14(土) 18:58:08.11 ID:AjDQR89s
2 :
デフォルトの名無しさん
2015/11/14(土) 18:59:23.41 ID:AjDQR89s
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.5
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・ 解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・ 誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・ SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
3 :
デフォルトの名無しさん
2015/11/15(日) 05:42:30.05 ID:27iIExdb
PHP7は年内に正式リリースされますか?
4 :
デフォルトの名無しさん
2015/11/15(日) 08:55:09.65 ID:V8NTA7lA
5 :
デフォルトの名無しさん
2015/11/16(月) 01:42:57.44 ID:7yHHnP/U
6 :
デフォルトの名無しさん
2015/11/18(水) 20:20:52.39 ID:2FaZ15Uc
PHPで掲示板を作るのにmysqlって必要?
SQL言語ってのがよくわからんから取っ掛かりにくいイメージ
7 :
デフォルトの名無しさん
2015/11/18(水) 20:28:57.34 ID:DfzyxZL4
必須じゃない
掲示板データをファイルで持たせ、PHPで読み書きすればできる
でもDB使うのに比べると、処理が色々面倒
8 :
uy ◆Qawu9.2l1E
2015/11/18(水) 21:25:08.15 ID:KcitbQC5
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 :
デフォルトの名無しさん
2015/11/18(水) 22:51:58.50 ID:4T/DAPf8
sqliteでいいじゃん
10 :
デフォルトの名無しさん
2015/11/19(木) 23:58:23.69 ID:TlO4dIMX
SQLが分かるなら、何でもいいよ
11 :
デフォルトの名無しさん
2015/11/20(金) 15:04:18.40 ID:G0cvckZm
PHP、MySQLなんて窓から投げ捨てて、node.jsとMongoDBで作ればいいよ
12 :
デフォルトの名無しさん
2015/11/21(土) 02:07:47.22 ID:uOqPRxa8
html のボタンから .php のページを作成して、
そのページからブラウザバックで戻る場合はhtmlに戻るんですが、
html → php → php で戻る時に”有効期限切れです”になります。
何か良い方法有りますでしょうか
13 :
デフォルトの名無しさん
2015/11/21(土) 16:25:19.02 ID:U/iPWgJ7
そりゃ、良い方法はあるんだろうけどさ
その質問内容に答えられるかどうかは、難しい問題だな
14 :
デフォルトの名無しさん
2015/11/22(日) 11:17:31.43 ID:i/I0leYF
15 :
デフォルトの名無しさん
2015/11/22(日) 16:54:02.65 ID:HWNgOEsY
>>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="
http://~~<%=comments[n].article_id%>.html"><%==comments[n].title%></a></h3>
<script type="text/javascript" src="
http://.js"></script>
<script type="text/javascript">
var rc = hoge(‘hoge’);
rc.render();
</script>
これうちのブログの最新コメントを表示するスクリプトなんだけど、これって所謂SQL言語って奴なの?
16 :
デフォルトの名無しさん
2015/11/22(日) 17:14:08.23 ID:6dgomfC7
こういうソース見るたびにサーバでやれよカスがって思う
17 :
デフォルトの名無しさん
2015/11/22(日) 17:15:29.20 ID:i/I0leYF
それjqueryかなんかの一部じゃないの?
SQLといえるのはその中の ASC と DESC くらいだな
SELECT * FROM table WHERE id < 10 ORDER BY id DESC
とかがSQL
18 :
デフォルトの名無しさん
2015/11/22(日) 17:25:34.08 ID:6dgomfC7
>>17 ASC, DESCはSQLでも使うけれどSQL以外でも普通に使われる、昇る・降るの意味のascend, descendの略語だぞ
19 :
デフォルトの名無しさん
2015/11/22(日) 17:27:20.08 ID:i/I0leYF
んなわかりきったこと言いなおさんでも
20 :
デフォルトの名無しさん
2015/11/22(日) 17:30:41.49 ID:6dgomfC7
そうか、余計なお世話だったな、悪かった
21 :
デフォルトの名無しさん
2015/11/22(日) 18:23:19.37 ID:KRMusb0k
RSSリーダ(アグリゲータ?)を作っているのですが、現在は1時間に1回cronでスクリプトを動かし、
いくつかのサイトでデータを取得→MySQLに保存→それをPHPから読み込み表示 という風にしています。
今は自分だけがローカルで使うだけなのですが、このようなものを外部公開してある程度アクセスがあることを考えると、
PHPファイルを表示するたびにMySQLとやりとりするというのは手法として適切なのでしょうか?
データを取得するたびにHTMLファイルを生成するべきなのでしょうか?
この辺の、データベースの扱いに関する定石のようなものを教えていただきたいです。
22 :
デフォルトの名無しさん
2015/11/22(日) 19:12:02.12 ID:z6GZ7E/8
1.表示するたびにMySQLとやりとりする
2.キャッシュの利用
3.静的ファイル(html)の生成
負荷が増大した場合には、上記の順に対応する。
大量のデータを集計するとかでないなら1で十分だと思うけど。
23 :
デフォルトの名無しさん
2015/11/22(日) 19:17:21.49 ID:6dgomfC7
動的な部分以外をできるだけ再計算しないようにキャッシュするのはよくあるが
まずは1回の表示にどんだけCPUを食うかの見積もり/測定と
ピーク時のアクセス数/秒をどのくらいと想定するかだな
24 :
15
2015/11/22(日) 20:27:09.91 ID:HWNgOEsY
>>16 すまん、ちょっとわからないから聞きたいんだけど、自分のデータベースに置いてあるデータって、ドメインが違う別のサイトからでもSQL文章書いて呼びだせるの?
無料ブログサービス(例えばlivedoor)にアンケートを設置して、その回答を別のサーバ(例えばさくら)に設置してあるDBから呼び出す事は可能?
25 :
デフォルトの名無しさん
2015/11/22(日) 22:41:11.98 ID:PowSWGiN
たぶん、別のドメインにアクセスできないのは、
JavaScriptだけじゃないの?
クロスサイトスクリプティングで検索して
26 :
デフォルトの名無しさん
2015/11/23(月) 02:27:59.45 ID:rcJ9bRS0
15も24もphp関係ない件
27 :
uy ◆Qawu9.2l1E
2015/11/23(月) 04:35:16.51 ID:tOBxxsaN
Jekyll使いのワイ 高みの見物
PHPなんかやるよりJekyll覚えたほうが100倍役立つよ
28 :
デフォルトの名無しさん
2015/11/23(月) 04:41:30.81 ID:5ff7Mw2t
>>24 呼び出せるかどうかはサーバの設定次第だろ
なんのためにDB接続する時にIP入力すると思ってんの?
localhostだけならそんなの必要ないだろう?
29 :
uy ◆Qawu9.2l1E
2015/11/23(月) 14:32:29.25 ID:tOBxxsaN
2chの書き込みフォームを
Yahooログインフォームに見せかけてID pass入れさせる遊びなら中学生の頃にやってたわ
30 :
デフォルトの名無しさん
2015/11/23(月) 15:26:47.79 ID:V5rLbgq+
餓鬼が混じってますね
31 :
uy ◆Qawu9.2l1E
2015/11/23(月) 17:05:47.74 ID:QX2C8YaD
ペチパーはスキルが壊滅的
32 :
デフォルトの名無しさん
2015/11/23(月) 18:03:57.01 ID:fL3P/oyE
>>22-23 ありがとうございます。
確かに実際の負荷を見ずには何とも言えませんね。
ひとまずCache_Liteなどを調べてみます。
33 :
デフォルトの名無しさん
2015/11/23(月) 19:27:18.15 ID:V5rLbgq+
webpeog板のPHPスレ潰したやつこいつだったのか
34 :
uy ◆Qawu9.2l1E
2015/11/23(月) 22:22:23.18 ID:QX2C8YaD
来年くらいにはJekyllに土下座してるよこのスレの奴ら
静的で良い場所をサーバーに処理させてる文化は死ね
35 :
デフォルトの名無しさん
2015/11/23(月) 22:38:29.62 ID:oQzmq6S3
uyってクライアントに処理をさせることが静的だと表現するようなレベルの人だっけ
36 :
デフォルトの名無しさん
2015/11/23(月) 22:43:54.91 ID:oQzmq6S3
2行目で話を広げてるのかと思ったけどJekyll限定の話か
37 :
デフォルトの名無しさん
2015/11/23(月) 22:49:05.80 ID:TqdX98Rl
38 :
uy ◆Qawu9.2l1E
2015/11/24(火) 05:56:55.80 ID:hHA41+PV
>>33,37
Jekyllに搭載されたLiquidはとても簡潔な方法でページを生成する事ができます
39 :
デフォルトの名無しさん
2015/11/24(火) 07:05:51.45 ID:2nZ7GnSB
スレ違いな布教は結構です。
バレたからって開き直って向こうの再現するのはやめてね。
40 :
uy ◆Qawu9.2l1E
2015/11/24(火) 18:41:59.83 ID:lNjW2jss
>>39 これまで君がレスしている名無しは全部uyだったよドンマイ
41 :
デフォルトの名無しさん
2015/11/25(水) 02:59:46.94 ID:SowMgAO+
42 :
デフォルトの名無しさん
2015/11/25(水) 04:00:20.02 ID:Qex1VIVs
そう思った根拠は?
43 :
デフォルトの名無しさん
2015/11/25(水) 05:25:29.06 ID:+GV/gedV
44 :
デフォルトの名無しさん
2015/11/25(水) 14:52:15.69 ID:D7leeLYt
ブログやるならwordpressってのは知ってるけど、WEBサービスとか掲示板とかを作る時もPHPでwordpress使うもんなの?
45 :
デフォルトの名無しさん
2015/11/25(水) 17:41:45.37 ID:SQGzzFnc
>>44 WordPressは使わない。
CakePHPとかフレームワークを使う。
46 :
デフォルトの名無しさん
2015/11/25(水) 21:28:59.16 ID:F4e0LlCS
<?php
$url = "
http://yutori.rbbs1.net/bbs/form/8966/";
$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 = "命拾いしたな!!";}
?>
47 :
デフォルトの名無しさん
2015/11/25(水) 22:46:34.06 ID:SowMgAO+
>>46 $wdは配列化してforeachの方が分かりやすいんじゃないかな。
48 :
デフォルトの名無しさん
2015/11/25(水) 22:47:30.97 ID:SowMgAO+
とおもったが
unset($wd_array);
shuffle($wd_array);
foreach ($wd_array as $t)
って。
49 :
デフォルトの名無しさん
2015/11/26(木) 17:29:59.67 ID:nxLEBViH
file get contentsでサイトをスクレイピングする際に、スクリプトからのアクセスじゃなく、通常のサイトからのアクセスと相手側のサーバーに判断させる方法ってある?
50 :
デフォルトの名無しさん
2015/11/26(木) 17:39:43.14 ID:kUQEgtrr
stream_context_create()でcontext作れ
javascriptやcookieを駆使して確認するサイトが相手なら諦めるかがんばれ
51 :
デフォルトの名無しさん
2015/11/26(木) 17:44:37.33 ID:TMCNTirj
file_get_contentsの第3引数で通常のサイトからのアクセスとやらに合わせる
52 :
デフォルトの名無しさん
2015/11/26(木) 19:00:39.38 ID:nxLEBViH
$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の中身をどう書けばいいかわからん
53 :
デフォルトの名無しさん
2015/11/26(木) 19:22:46.41 ID:kUQEgtrr
普通のブラウザでアクセスしたときに送ってるHTTPリクエストヘッダをそのまま送れ
php.netのサンプルの記述そのまま送ってダメでしたーとかナメてんのか
54 :
デフォルトの名無しさん
2015/11/26(木) 19:59:05.34 ID:HoDq/m7x
ゆとりだねえ
55 :
デフォルトの名無しさん
2015/11/26(木) 22:04:11.81 ID:TsHDKWYc
56 :
uy ◆Qawu9.2l1E
2015/11/26(木) 23:04:09.41 ID:hdMKEMdm
>>44 ブログやるならどう考えてもJekyll一択
コメントにはDisqusを設置して終わり
サーバーサイドで一切処理させないからHTMLさえアップロード出来ればどこでもブログ設置出来る
さらに物足りなければjQuery使えば動的になる
ブログ製作としてPHPはオワコン
57 :
uy ◆Qawu9.2l1E
2015/11/26(木) 23:05:55.54 ID:hdMKEMdm
一体PHPで何を作ろうとしているのですか?^^;
無駄過ぎwwwwwwwwwwww
58 :
デフォルトの名無しさん
2015/11/26(木) 23:34:19.72 ID:w0MF98vj
昔ながらの申請承認システムを作ってます^^
59 :
デフォルトの名無しさん
2015/11/27(金) 05:11:29.32 ID:j2B8VuQt
中卒引きこもりニートゆうちゃん予備軍相手すんな
60 :
uy ◆Qawu9.2l1E
2015/11/27(金) 05:25:52.07 ID:2RpgJ5AO
自分は法を犯す事はしないよ
法律で裁けない悪事のギリギリラインまでしかしないスタンス
ちなみに急いでるわけでもない癖に信号無視をする人間が大嫌い
61 :
uy ◆Qawu9.2l1E
2015/11/27(金) 05:39:51.87 ID:2RpgJ5AO
そういう小さな規則違反の積み重ねが治安を悪化させ凶悪犯罪を起こすんですよ
東京の道路にゴミはあまり落ちていません
理由は、ゴミが少しでも落ちていればそこにゴミを捨てる人が次々と現れ
ゴミ山がそこに出来上がるから
人通りの多い場所は徹底的に綺麗する必要があるのです
プログラミングも同じ
PHPのような言語があると凶悪なバグが発生するから駆逐しないとね
62 :
uy ◆Qawu9.2l1E
2015/11/27(金) 05:48:56.88 ID:2RpgJ5AO
# まど☆まぎで分かるダメ言語
まどか「ほのかちゃん????・・・なんでそんな言語使ってるの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」
いつかこういう事件が起きる
63 :
デフォルトの名無しさん
2015/11/27(金) 07:42:18.96 ID:rRYNYnxD
君さぁ・・・やることもなくてアニメばっか見てるから現実感がないことばっか言ってるよ
もっとリアル大切にね
64 :
デフォルトの名無しさん
2015/11/27(金) 10:37:22.00 ID:pFPyxWBn
犯罪者が沸いてるな
65 :
デフォルトの名無しさん
2015/11/27(金) 15:04:07.26 ID:xCOpxAq/
phpとの関係ほんのちょっとしかないんだけど
ファイル添付機能があるとして、
添付ファイル単体と添付ファイル全体のファイルサイズの上限値を定数で規定するとき、定数名なんて書くべき?
66 :
デフォルトの名無しさん
2015/11/27(金) 22:38:01.84 ID:wAnq9rzm
割れ窓理論からのまどマギ。うま…くない
67 :
uy ◆Qawu9.2l1E
2015/11/28(土) 06:20:50.80 ID:lBYFUN9m
SIZE
68 :
デフォルトの名無しさん
2015/11/28(土) 11:45:51.95 ID:wlOalWDw
質問です。
if文等の処理を、StateパターンやStrategyパターンに置き換えると、
if文が消えるという説明を本やネットで見かけました。
たしかに、処理中でのif文は無くなります。
しかし結局、各処理のオブジェクトを生成するために、if文等の分岐が必要です。
if文が消えるというというよくある説明は誤りではないでしょうか?
69 :
デフォルトの名無しさん
2015/11/28(土) 11:59:08.29 ID:qx4IBKnQ
70 :
デフォルトの名無しさん
2015/11/28(土) 12:24:10.31 ID:VMolQjLG
そりゃ実践上はソースから完全にifを無くすのは無理だろうがそういうことじゃないだろ
ある機能について、状態やらサブクラスやらを事前に準備しておくことで、処理がまっすぐ一本道に流れるようにってことだろ
71 :
デフォルトの名無しさん
2015/11/28(土) 12:42:45.03 ID:wlOalWDw
ご回答ありがとうございます。
>>69 コードを書くのは大変なので。すみません。
>>70 よくある説明で、「if文がなくなります」とあるのに、
処理の外側にif文が移っただけじゃん!と疑問に思ったもので。
Strategyパターンを採用した場合、メインの処理からif文はなくなるけど、
結局、前準備ではif文等でオブジェクトを作り分けないとダメなんですね。
72 :
デフォルトの名無しさん
2015/11/28(土) 12:43:58.77 ID:SH+3mbvY
73 :
デフォルトの名無しさん
2015/11/28(土) 13:04:36.96 ID:VMolQjLG
まず仕様がこれこれこうで、この仕様ならこの部分はこういうやり方すれば生産性向上・バグ発生低減・改修難易度減少が見込めそう、でやり方を選んで設計
ここで「やり方」の選択肢として持っておくのがデザパタ、あくまで選択肢でしかない
ifを除去できるとか細かいことにこだわってどうする
そのパターン使ってもifを他所に押し付けるだけの結果にしかならない処理を書くときに、そのパターンを無理やり使うならそれはただのアホ
どんな状況でもこのパターンを使えばifがなくなってスッキリ書けますなんて言う奴がもしいたとしても、それをうのみにして考えるやつもアホ
74 :
デフォルトの名無しさん
2015/11/28(土) 13:54:09.77 ID:wlOalWDw
75 :
デフォルトの名無しさん
2015/11/28(土) 18:05:09.08 ID:l+/0cMLb
>>68 state次第で実行するメソッドを分岐させるから呼ばれるメソッド内部でif文が発生することがないってことじゃなくて?
76 :
uy ◆Qawu9.2l1E
2015/11/29(日) 04:25:54.53 ID:RQPUWZLH
初期化を複雑にすればif文はすべて消すことは可能だけど
デザパタなんて頼ってる奴が言ってるのはif文を「減らす」程度の事しか言ってないよ
77 :
デフォルトの名無しさん
2015/11/29(日) 13:08:03.83 ID:urMq5ega
システム内検索どうしてる?
全て諦めてGoogle検索利用する手もあるけど
78 :
デフォルトの名無しさん
2015/11/29(日) 14:58:26.84 ID:6C60q/4Y
スマホサイトを構築しているんですが、Androidでの動画アップロードが出来ないんです・・・。
画像に関しては問題なくアップ出来るんですが。
標準ブラウザが原因だと思ってChromeをインストールして試したのですが、
それでもアップロードが出来ませんでした。
原因や可能性などお分かりの方がいたら、是非お知恵をお貸し下さいm(_ _)m
79 :
デフォルトの名無しさん
2015/11/29(日) 15:05:35.05 ID:RQ97x6ZU
>>78 MIMEとアップロード最大サイズの設定は?
80 :
デフォルトの名無しさん
2015/11/29(日) 15:10:37.72 ID:6C60q/4Y
video/mp4,mov,avi,3gp,wmv,webm
データ許容は100MBです
81 :
デフォルトの名無しさん
2015/11/29(日) 15:17:03.27 ID:RQ97x6ZU
MIME周辺のコードを晒して下さい
82 :
デフォルトの名無しさん
2015/11/29(日) 15:21:20.04 ID:RQ97x6ZU
クォータに余裕はありますか?
83 :
デフォルトの名無しさん
2015/11/29(日) 15:33:14.64 ID:urMq5ega
84 :
デフォルトの名無しさん
2015/11/30(月) 07:31:38.27 ID:gf8VmUCn
帯域制限かけられてんじゃね
85 :
デフォルトの名無しさん
2015/11/30(月) 07:32:12.01 ID:gf8VmUCn
↑WIFI接続で問題ないならね
86 :
デフォルトの名無しさん
2015/11/30(月) 20:24:45.97 ID:LYBH4EyE
railsやdjangoみたいにプロジェクト内にシステムファイルをインストールしないフレームワークってありませんか?
同じバージョンのフレームワークで一括で管理したい
87 :
デフォルトの名無しさん
2015/11/30(月) 21:17:15.27 ID:Yn3dZ4FQ
共通の場所においてシンボリックリンク貼れば統一できるよ
88 :
デフォルトの名無しさん
2015/12/02(水) 23:46:15.37 ID:J6p04YqG
iphoneのクッキーの保存期間が短かい気がするのですが
89 :
デフォルトの名無しさん
2015/12/03(木) 11:34:07.25 ID:m5yVC19F
クッキーってブラウザの設定のせいか勝手に消えるのがあるよね。
時々会員からログインできないとか勝手にログアウトしたとか連絡きて困る。
90 :
デフォルトの名無しさん
2015/12/03(木) 13:38:11.00 ID:gcox+NXP
password_hash()ってphp7でsaltオプションが非推奨になってE_DEPRECATED出るようになるけど
パスワード認証の処理って
「ユーザ入力のパスワードをハッシュ化したもの」と
サーバ内に持ってる「パスワードをハッシュ化したもの」とを比較するもんじゃないの?
さすがに完全固定だとまずいから、動的に、かつ、同じ状況なら一意に、なるように生成したsaltを使ってハッシュ化するもんじゃないの?
すごい人教えて下さい
91 :
デフォルトの名無しさん
2015/12/03(木) 13:44:50.69 ID:gcox+NXP
すまん自己解決
password_hash()ってハッシュ文字列かfalseしか返さないじゃんと思ってたけど
正常終了時に返す文字列に方法・コストだけじゃなくsaltも含んでたんだな
だからpassword_verify( $password, $hash )だけで確認できるのか
92 :
デフォルトの名無しさん
2015/12/04(金) 17:10:00.25 ID:BH0jlOjz
phpの求人とかってどういう所行けばあるんですかね
93 :
デフォルトの名無しさん
2015/12/04(金) 17:50:28.62 ID:1332PcFc
求人情報ぐらい調べることも出来ないやつはお呼びじゃないです
94 :
デフォルトの名無しさん
2015/12/04(金) 19:06:33.76 ID:voaNk3eY
独学レベルの30歳は厳しいですかね
95 :
デフォルトの名無しさん
2015/12/04(金) 21:54:27.43 ID:SdLT9ePi
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.
http://php.net/ 96 :
デフォルトの名無しさん
2015/12/04(金) 23:13:40.20 ID:U4cocLhy
今日は宴だ
年内に正式リリースできてよかった
97 :
デフォルトの名無しさん
2015/12/04(金) 23:45:22.99 ID:eV2PGPuH
98 :
デフォルトの名無しさん
2015/12/04(金) 23:52:21.96 ID:km/Is7rX
ふえーphpってもう7.0でてたんだ
いまだに5.5使ってるわ
99 :
デフォルトの名無しさん
2015/12/05(土) 00:30:17.24 ID:BHJJmj19
5.5 -> 5.6 -> 7.0 だから安心して
100 :
デフォルトの名無しさん
2015/12/05(土) 00:40:30.25 ID:4lBJEMQK
ああ、6無理だったのか
101 :
デフォルトの名無しさん
2015/12/05(土) 02:56:02.75 ID:7gxdTJZp
>>97 MVCで裏側含めてブログ作っただけだ。デザインパターンは全てを網羅できてない。
102 :
デフォルトの名無しさん
2015/12/05(土) 12:58:46.75 ID:0XvEswv0
趣味だから楽しいんだ
毎日やったら苦痛
103 :
デフォルトの名無しさん
2015/12/05(土) 17:45:45.86 ID:7gxdTJZp
やっぱそれか。
ただ、実務がどんなもんか知りたいんだよなー。趣味レベルと変わらんのなら無駄だけど。
104 :
デフォルトの名無しさん
2015/12/05(土) 20:11:09.76 ID:pR99dpk0
IT系の仕事委託サイトとか見てみれば?
PHPの案件も結構あるよ。良し悪しはさておき。
105 :
デフォルトの名無しさん
2015/12/06(日) 03:04:20.71 ID:rJPGjx9a
アドバイスサンキューだぜ。委託とか何か請求されそうで怖いわ。スレ違いに仕事の相談すんのもあれなんでボチボチがんばりますわ。
106 :
デフォルトの名無しさん
2015/12/06(日) 17:20:54.51 ID:d5BBG+3T
ブログ作ったといわれても、ふーんってなるだけでまるで技術レベルが見えないな。
そう考えると人事って大変な仕事なんだな。
107 :
デフォルトの名無しさん
2015/12/06(日) 18:01:17.82 ID:Mda62mqF
いやブログ見れば技術レベルはわかるだろ
細かい所のミスチェックする人間かどうかもよくわかるし
108 :
デフォルトの名無しさん
2015/12/06(日) 18:11:02.99 ID:55IDH4Bi
技術レベルといえば、PHPの民間資格あったよね。
109 :
デフォルトの名無しさん
2015/12/06(日) 18:24:03.17 ID:e/f/cCl4
あの資格の評価ってどうなの?
試験問題見る限り、なんかPHPのメソッドどれだけ暗記してるかの
確認テストにしか見えなかったんだけど。
今からPHP5って資格を取るのがそもそも微妙な感じだけど。
110 :
デフォルトの名無しさん
2015/12/06(日) 19:48:18.36 ID:Mda62mqF
それ以外の何で評価するの?
111 :
デフォルトの名無しさん
2015/12/06(日) 20:45:27.04 ID:55IDH4Bi
>>109 基本情報とか応用情報の方が評価されそう。
あと受験料が高かった気がする。
112 :
デフォルトの名無しさん
2015/12/07(月) 03:24:01.91 ID:Egfo5+P2
>>110 「それ」ってメソッドをどれだけ暗記しているかを指してるんだよね。
>>107と相反してないか
113 :
デフォルトの名無しさん
2015/12/07(月) 17:03:31.28 ID:7L51O5Jz
>>112の発言にどういう意図があるのか知らんが
>>109は民間資格に何期待してんだって嘲笑しつつ適当に煽り入れただけだよ
もし
>>109が本気で資格について考慮し、意見を持つ人間なら そこで具体的な案が出るだろうし、ただ単に不満を吐き出すだけのつまらない人間の無駄話ならそこで収束する
あまり俺の意見はそこには出してないつもり
114 :
109
2015/12/07(月) 21:45:33.48 ID:Ezteh0P6
>>112 いや、応用もJavaのSJC-PとかOracleマスターとかも持ってるから、
最近仕事でPHPやったついでに取ろうかと思ったんだけどさ。
なんか両者が体系的な知識とか言語仕様の考え方とか、
バックグラウンド的な話をしっかり押さえさせるのと比べて、
関数の使い方がどうこうみたいな話が多いような気がしたんだよね?
それって別に毎回APIググればいいじゃんと。
まあ単に出回ってる教科書や参考書がいけてないだけなのかもしれんけど。
115 :
109
2015/12/07(月) 21:46:29.47 ID:Ezteh0P6
レス番間違えた…
116 :
デフォルトの名無しさん
2015/12/08(火) 03:55:30.46 ID:njHdrP3c
一から出直しな。
117 :
デフォルトの名無しさん
2015/12/08(火) 05:23:51.09 ID:+azNL848
>>114 ocj-pやoracle masterが運転免許証なら
PHP技術者認定試験はなめ猫免許証
精通してるフレームワークの名前を列挙した方がマシ
118 :
デフォルトの名無しさん
2015/12/08(火) 09:48:54.78 ID:TDczgCiy
確かに金積めば手にはいる免許証だな
PHPにはそういうものはないだろう
119 :
デフォルトの名無しさん
2015/12/08(火) 10:32:24.67 ID:mJhPwWLH
死ぬまで有効
120 :
デフォルトの名無しさん
2015/12/08(火) 14:45:54.07 ID:njHdrP3c
7リリースされたからもう無効だろ
121 :
デフォルトの名無しさん
2015/12/08(火) 15:00:47.88 ID:uetFDAJu
PHP巻き返しなるか動向に注目だな
122 :
uy ◆Qawu9.2l1E
2015/12/08(火) 16:19:47.99 ID:4X3jy2q/
括弧もセミコロンも省略できない動的言語使ってる奴いる?
123 :
デフォルトの名無しさん
2015/12/09(水) 14:11:11.30 ID:3ciM3Sf4
いるよー
124 :
デフォルトの名無しさん
2015/12/10(木) 13:11:02.72 ID:pn8oaSSs
セミコロン省略できる言語ってどーなん
個人的にセミコロンが省略できる言語って嫌いなんだけど
125 :
デフォルトの名無しさん
2015/12/10(木) 13:47:14.43 ID:iwZgNtxz
PythonとかRubyとか
これらはセミコロンあってもエラーにならないんだから、嫌なら書けばいいのに嫌いってなんだよ
動的じゃないけどSwiftもそうだな
実際にセミコロン無しでコード書くとCとかphpでもつい忘れるくらい無いほうが自然なことだと思う
126 :
デフォルトの名無しさん
2015/12/10(木) 18:10:46.55 ID:bKbWS+iE
セミコロン省略じゃないけど条件式は必ずboolになる値であっても
($param) や ( ! $param )などとしないで === true や === false を付けるようにしてる
127 :
デフォルトの名無しさん
2015/12/10(木) 20:38:41.34 ID:i0vE+fvx
荒らしはスルーしとけよ
128 :
デフォルトの名無しさん
2015/12/10(木) 20:41:05.30 ID:pn8oaSSs
パイソンってなんかきっちりしてるイメージあるけど 省略して書けるんだ 意外だな
129 :
デフォルトの名無しさん
2015/12/10(木) 22:50:09.24 ID:LAAKLk6w
その代わり複数行にまたがるときは行末バックスラッシュじゃなかったかな。
VBが_だったように。
インデントさえ正しければブロック表現にカーリーブレースは不要と判断した言語だし、
1文1行であることがほとんどだという前提に立てばセミコロン不要という方針もさほど不思議じゃないかなーって思うよ。
130 :
デフォルトの名無しさん
2015/12/10(木) 23:21:27.10 ID:V7ddkloI
JavaScriptがセミコロン省略可能だろ
このスレの住人なら普段から使ってるだろう
131 :
デフォルトの名無しさん
2015/12/11(金) 14:02:07.80 ID:/dTmo1eO
くだらない話続けてんじゃねーよ
132 :
デフォルトの名無しさん
2015/12/14(月) 20:47:26.64 ID:QJL07hoX
>>124 c言語なんかもセミコロン無しで組めるね
133 :
デフォルトの名無しさん
2015/12/15(火) 05:09:02.60 ID:ykQTajwy
カンマですか
134 :
デフォルトの名無しさん
2015/12/15(火) 18:06:41.02 ID:oDr79mCW
文字列の先頭1バイトだけ切り出したい時は
$string[0]で先頭1バイトだけを確保しておいて残りをsubstr($string, 1)するか、preg_*を使うか、しかないですか?
explode()はデリミタに空文字列を使えないし
られるけどunset($string[0])は使えないしshift()も文字列に対して使えません
かなりの回数で繰り返し処理するので出来るだけ処理コストを減らしたいです
135 :
デフォルトの名無しさん
2015/12/15(火) 20:14:42.64 ID:wfwMHlSZ
1文字じゃなくて1バイトって表現が曖昧すぎる
136 :
デフォルトの名無しさん
2015/12/15(火) 20:15:48.91 ID:9ZU9YluN
137 :
デフォルトの名無しさん
2015/12/15(火) 21:01:04.18 ID:Ztl+JyxZ
文字列がphp内部では(mb文字列でも)バイト配列で扱われているからバイト単位のほうがシンプルだろうことと
今自分が作ろうとしている処理では先頭がASCII文字と確定していることから
先頭1バイトと聞きましたが、別にこだわりはありませんので、1バイトではなく1文字の時に使える良い方法があるならそれで構いません
あいまいですかね?
138 :
デフォルトの名無しさん
2015/12/15(火) 22:16:36.47 ID:9ZU9YluN
あいまいというか、1バイトを切り出すって表現は
あまり聞かないから違和感を覚えるかな。
文字コードも何を使うか書いてないし。
ASCII文字のみなら、これで良いんじゃない?
substr($string, 0, 1)
マルチバイト文字を含むならこれで。
mb_substr($string, 0, 1)
正規表現は遅いから避けるべきと言われている。
その他の候補については自分でベンチマークを取るといいよ。
139 :
デフォルトの名無しさん
2015/12/15(火) 22:37:00.73 ID:9ZU9YluN
あと、
>>134 はマルチバイト文字を扱っていて、その前提で、
「1バイトを切り出したい」とも読めてしまう点では、あいまいと言えるかな。
140 :
デフォルトの名無しさん
2015/12/15(火) 22:55:21.84 ID:ykQTajwy
1バイトをっていうのは全然あいまいじゃないよ。きわめて明確な表現だし、一般に使われている表現。
雰囲気的には、先頭1バイトとそれ以外に分割したいって感じなので、
>>134で書いてるとおり、
先頭1バイト確保と残りをsubstrでいいよ。pregはだめ。要求に対して高価すぎる。
ところで、
>>134 =
>>137でいいんだよね。
141 :
デフォルトの名無しさん
2015/12/15(火) 23:10:32.38 ID:Ztl+JyxZ
ID変わってたのに気付いてませんでした
>>134イコール
>>137です
javascriptのshift, slice, spliceみたいなものを考えていました
やっぱりsubstr()しかないですかね、これで書くことにします
>>138 キモは残りの部分の取得なんです
先頭1バイトを得るだけなら $head = $string[0]; で $head = substr($string, 0, 1); より1.5倍以上早くかつ簡潔に書けますんで
142 :
デフォルトの名無しさん
2015/12/15(火) 23:49:33.01 ID:9ZU9YluN
そもそも、$stringには具体的に何が入っているの?
コードで示せる?
143 :
デフォルトの名無しさん
2015/12/15(火) 23:59:29.27 ID:Dgo682IE
$head = $str[0];
$str[0] = '';
144 :
デフォルトの名無しさん
2015/12/16(水) 00:06:10.74 ID:ucrbRogg
ダンプしたら文字列長は切り詰められずインデックス0に空文字列が代入されているキモい状態だったから良くない気がしてきた
145 :
デフォルトの名無しさん
2015/12/16(水) 00:07:29.87 ID:2u+0RRKa
やめなされやめなされ、と書こうと思ったら自分で気づいてて一安心
146 :
デフォルトの名無しさん
2015/12/16(水) 00:09:43.81 ID:8/FCyWgw
んじゃtrimでもいれておきましょうかね
147 :
デフォルトの名無しさん
2015/12/16(水) 00:12:30.51 ID:2u+0RRKa
それならsubstrの方が分かりやすいとなる
148 :
デフォルトの名無しさん
2015/12/16(水) 00:17:52.76 ID:jAibl+ep
なるほど、と感心しながら
$head = $str[0]; $str = substr($str, 1);
$head = $str[0]; $str = ltrim($str, $head);
どっちが早いのか試してみたらsubstrの方が早かったでござる
わかりにくいだけじゃなく遅い、そりゃそうだよな……
>>144 ord($str)すればわかるけど、それは空文字列でも半角スペースでもなく、0x00すなわちnull byteだ
149 :
デフォルトの名無しさん
2015/12/16(水) 00:20:39.06 ID:2u+0RRKa
>>148 分かりにくい上に、$str = '1 abc' のようなものだった場合、
除去しなくていい空白を除去してしまうという挙動の違いをも生んでいる。
やめなされやめなされ。
150 :
デフォルトの名無しさん
2015/12/16(水) 00:28:08.52 ID:8/FCyWgw
substrより高速にできるかを競う競技
151 :
デフォルトの名無しさん
2015/12/16(水) 00:29:14.85 ID:jAibl+ep
>>149 trim, rtrim, ltrim は第2引数を指定したときは、第2引数に空文字列類が含まれないなら空白とかを除去しないぞ
しかし$str = '+++++';とか$str = '111222333';だった場合に必要ないとこまで文字が消えちゃうのは確か
やめようやめよう
152 :
デフォルトの名無しさん
2015/12/16(水) 00:31:07.04 ID:2u+0RRKa
ああー、第二引数にちゃんと$head書いてた。
こんな見落としも発生する、そんなコードでした。
153 :
デフォルトの名無しさん
2015/12/16(水) 00:34:35.69 ID:2u+0RRKa
って、$head…?
$head = $str[0];
$str[0] = '';
$str = ltrim($str, "\0");
を目指しているのかと思ったらそうでもなかったことに気づけなかった
>>143 →
>>146 を見てたから勘違いしたと言い訳
154 :
デフォルトの名無しさん
2015/12/16(水) 10:08:13.19 ID:RWx+UBiH
>>141 //$stringの扱い
$head = $string[0]; //配列を扱っている
$head = substr($string, 0, 1); //変数を扱っている
配列と変数をごっちゃにしてるから話がかみ合わないんじゃね?
155 :
デフォルトの名無しさん
2015/12/16(水) 18:44:10.56 ID:jAibl+ep
156 :
デフォルトの名無しさん
2015/12/16(水) 20:06:12.03 ID:mKkXa/E+
>>155 シングルバイト限定ながらC言語っぽい扱いができるのか。
無知ですみませんでした。勉強になります。
157 :
デフォルトの名無しさん
2015/12/16(水) 22:08:01.51 ID:54oMNAWx
ごめんちょっとレベル低い奴が混ざりますが…
>148の $head = $str[0]; とか実行したとき、$headは1バイトになるの? 1文字の後ろにNULL文字で終結した2バイトになるの?
それを確認する方法はあるの?
158 :
デフォルトの名無しさん
2015/12/16(水) 22:59:12.81 ID:2u+0RRKa
159 :
デフォルトの名無しさん
2015/12/17(木) 11:20:55.06 ID:b8C1/Jn0
for ( $i = 0; $i < count($array); ++$i)
ってあんまり良くないと思うんだけど
ループの中で配列の長さが変わるときはしょうがないよね?
そもそもループ中に長さ変える設計すんなって話はおいといて
160 :
デフォルトの名無しさん
2015/12/17(木) 14:08:20.09 ID:EA75t6cQ
バグの温床
161 :
デフォルトの名無しさん
2015/12/17(木) 17:15:17.26 ID:yOofk2l4
どうしてもループ条件で毎回count()しなきゃいけないならそれでいい
そうでないなら、ループ中で判定して必要な時だけcount()しよう
whileに変えてしまう手もある
162 :
デフォルトの名無しさん
2015/12/17(木) 20:19:22.38 ID:Qd/jqAZO
ループの中で配列の長さが変わるってどういう目的の処理なの?
163 :
デフォルトの名無しさん
2015/12/17(木) 20:30:46.43 ID:KnvvCMjo
lenが可変なのにforループ使うってとこがよーわからん
i使うんか?
164 :
デフォルトの名無しさん
2015/12/17(木) 23:35:21.32 ID:iepwcvsH
>159
俺だったらそういうときはforじゃなくてwhileにする
while(true) {
主処理
$i++;
if(終了条件)break;
}
165 :
デフォルトの名無しさん
2015/12/18(金) 01:08:54.76 ID:kkYL7SI3
話を置いといちゃだめなんじゃないかそれ
166 :
デフォルトの名無しさん
2015/12/18(金) 03:30:22.16 ID:h6euVKNg
別においといてもいい話だよ
167 :
デフォルトの名無しさん
2015/12/18(金) 12:20:48.92 ID:G2ICrWxY
なんだか無限ループになりそう。
168 :
デフォルトの名無しさん
2015/12/18(金) 16:02:44.19 ID:gUzp7lKI
ascii制御文字以外の制御文字、
たとえばUTFの空白・改行類、非文字とかはバリデーションで除去すべき?気にしないでいい?
169 :
デフォルトの名無しさん
2015/12/18(金) 16:23:39.49 ID:o8VbV2r8
>>168 validationはデータを加工するものではない。
加工したかったら勝手にやれ。
170 :
デフォルトの名無しさん
2015/12/18(金) 22:52:07.83 ID:CgLrkKvQ
>>168 除去するんじゃなくて、受け付けないようにするべき。
171 :
デフォルトの名無しさん
2015/12/19(土) 01:55:48.11 ID:yn9wbRdq
加工するならvalidationいらないじゃん
172 :
デフォルトの名無しさん
2015/12/19(土) 02:29:09.65 ID:4mHs0UKU
ちょっとレベル高くなったと思ったら即なにもかも大幅レベルダウン
173 :
デフォルトの名無しさん
2015/12/19(土) 02:49:41.81 ID:TNhDb7hV
レベルの低い質問が多数を占めるのは当然だよ
174 :
デフォルトの名無しさん
2015/12/19(土) 09:11:48.07 ID:7bBCpgVz
175 :
デフォルトの名無しさん
2015/12/19(土) 14:23:53.30 ID:iSzrpGEp
PHP7のソースコードを読むには、C言語の学習がどれくらい必要ですか?
また、どういう学習をすればいいのでしょうか?
176 :
デフォルトの名無しさん
2015/12/19(土) 21:56:39.92 ID:4mHs0UKU
メモリ・ポインタ周りと型、構造体の基礎をみっちり叩き込んでおけば
あとはひたすら読んで慣れるだけじゃね
177 :
デフォルトの名無しさん
2015/12/20(日) 02:21:46.61 ID:KXRSmZfD
phpってCだったんだ いつもバイナリか 適当にconfigureとかやってインストールするだけだからしらなんだ
そういやビルド?する時うんにゃらかんにゃら.cとか大量に出てたような・・・
178 :
デフォルトの名無しさん
2015/12/20(日) 06:35:13.38 ID:2dmew1rh
>>168 適切なタイミングで適切な関数でエクケープされてれば問題ないから気にしない
179 :
デフォルトの名無しさん
2015/12/20(日) 08:02:11.37 ID:bi38SwTZ
エクケープw
180 :
デフォルトの名無しさん
2015/12/20(日) 10:46:03.83 ID:3lON+F9T
181 :
デフォルトの名無しさん
2015/12/20(日) 13:07:43.88 ID:2R1JBddu
182 :
デフォルトの名無しさん
2015/12/20(日) 13:15:16.26 ID:+kPEBi+w
>>181 GCCコンパイラはGCCでコンパイルします
183 :
デフォルトの名無しさん
2015/12/20(日) 13:33:54.43 ID:6AuOod77
>>176 C言語の入門書を片手に簡単な関数から挑戦してみます。
ありがとうございました!
184 :
デフォルトの名無しさん
2015/12/20(日) 14:20:43.32 ID:2R1JBddu
185 :
デフォルトの名無しさん
2015/12/20(日) 16:44:14.08 ID:aff6rPUa
昔のSolarisはCコンパイラ入ってなかったからなー
有料のコンパイラ買ってない人はGCCのソース一式と
古いバージョンのGCCのバイナリダウンロードして
GCCのコンパイルから始めてたな
186 :
デフォルトの名無しさん
2015/12/20(日) 23:21:18.16 ID:AcNqT0Vl
今さらアセンブラで作ったって、動作環境が狭くなるだけだよな…
187 :
デフォルトの名無しさん
2015/12/21(月) 00:11:38.60 ID:Xg5lqxRJ
アセンブラ良く知らないけど今でも組み込み系では普通に使われてるんじゃないの?
188 :
デフォルトの名無しさん
2015/12/21(月) 00:26:12.47 ID:Dxjo9Gwi
組み込みはハードウェア依存で構わないですしおすし
189 :
デフォルトの名無しさん
2015/12/21(月) 01:48:03.70 ID:Mn6N2/NM
昔と違ってハードの性能もいいし、開発コストも低いしで、最近の組み込みはJavaっすね。
190 :
デフォルトの名無しさん
2015/12/21(月) 01:53:26.13 ID:+biuSiP9
環境によるだろうけど Javaなら安くできそうだよな
191 :
デフォルトの名無しさん
2015/12/21(月) 13:29:11.20 ID:+gb1Psu3
Javaにしても、VMは何で書かれてるのさ
192 :
デフォルトの名無しさん
2015/12/21(月) 13:48:33.20 ID:Pzpo8xdR
なんで唐突にVMが出てくるんだ・・・
193 :
デフォルトの名無しさん
2015/12/21(月) 14:04:39.87 ID:C5LR6bgt
最近覚えた言葉
察してやれよ
194 :
デフォルトの名無しさん
2015/12/21(月) 14:34:31.64 ID:A5ehQ6jk
PHP関係なさすぎる
195 :
デフォルトの名無しさん
2015/12/21(月) 16:02:37.89 ID:+gb1Psu3
Javaの名前が出たからVM出したんだろう
そりゃPHPは関係ないけどJavaには関係あるよ
もしかして別のVMだと思った?
196 :
デフォルトの名無しさん
2015/12/21(月) 16:07:24.05 ID:C5LR6bgt
まずスレ違いだと言うことを謝ろうな
197 :
デフォルトの名無しさん
2015/12/21(月) 18:41:37.43 ID:Bx2NAXNu
何を言ってるのかね君は
JavaやるのにVMから作るわけ?
198 :
デフォルトの名無しさん
2015/12/21(月) 19:45:01.97 ID:xmPmRQsS
流れ的には自然なんだけどな。スレ違いは間違いない
199 :
デフォルトの名無しさん
2015/12/21(月) 20:05:06.70 ID:Xg5lqxRJ
java vmも元はcで今はjavaで書かれててjavaサポートしてるgccとか.netでビルドするとか
今haskellをビルドしようとするとghcが必要なのと同じ感じか
しかしsdkはともかく組み込み用のjava vmのソースは非公開とも聞いた
いずれにしても根幹として生成されるのはマシン語だけど
phpはともかく他は必ずしもソース読むのにcだけ知ってればOKとは限らない
…とはいえ、組み込み分野に足を突っ込むかどうかは別としても、cは出来るようになって損しない
phpをメインで使ってても、一部の組み込み系と同じように速度が重視される場所で、コアの部分だけc cgiにするってこともあるだろうから
200 :
デフォルトの名無しさん
2015/12/21(月) 20:13:34.22 ID:to6XxzZD
何独り言いってんの?
201 :
デフォルトの名無しさん
2015/12/21(月) 20:16:17.68 ID:bqsP7T8n
無料鯖だと鯖再度言語がPHPくらいしか使えないからjavaとかc勉強してもな
202 :
デフォルトの名無しさん
2015/12/21(月) 20:27:09.90 ID:6+hqb9rY
chinko() or die("うんこ");
みたいなのりで、
chinko() or return false;
とやりたいよなーとずっと思ってるんだけど
そろそろ特例で出来るようにならないかな
203 :
デフォルトの名無しさん
2015/12/21(月) 21:59:12.93 ID:A5ehQ6jk
なんでPHPで書いてるかって言えばどこでも使えるからだしな
204 :
デフォルトの名無しさん
2015/12/22(火) 11:43:47.46 ID:Upxd9PjQ
PHPでExcel, PDF出力するならおすすめのライブラリはなんでしょう
Excelはレポートのダウンロード用でだだっ広い表一枚、
PDFは注文書などの印刷用で住所などのヘッダーと品名数量一覧、て感じです
205 :
デフォルトの名無しさん
2015/12/22(火) 13:08:08.74 ID:1IjfeHrT
>>204 PHPExcel以外に選択肢があるなら、逆に聞きたい。
206 :
デフォルトの名無しさん
2015/12/22(火) 16:00:47.70 ID:Upxd9PjQ
>>205 今は、無理やりExcel XML形式で書き出してますw
VB.NETですけどかなりうんざりなので
207 :
デフォルトの名無しさん
2015/12/22(火) 16:38:48.36 ID:1IjfeHrT
208 :
デフォルトの名無しさん
2015/12/22(火) 16:47:14.13 ID:l38ceWj3
「既存のPDFをテンプレートとして活用し、そこに必要な文字だけ配置していくことで」ってとこで
MS Accessを思い出した
209 :
デフォルトの名無しさん
2015/12/23(水) 07:12:52.20 ID:BrF2rpGX
PHPじゃなくて外部プログラムでやったほうがいいでえ
ルート権がなければしょうがないけど
210 :
デフォルトの名無しさん
2015/12/23(水) 08:13:43.51 ID:VcQzzop0
preg_matchなどに渡す正規表現で . ドットそのものにマッチさせたいとき、
ただしいのは'/\\./'でしょうか'/\./'でしょうか
どちらも機能するようにみえるのですが
211 :
デフォルトの名無しさん
2015/12/23(水) 08:37:35.39 ID:BrF2rpGX
[.]
212 :
デフォルトの名無しさん
2015/12/23(水) 10:23:03.27 ID:p9aCHGv3
>>207 どうもありがとうございます
気が付いたらIISに簡単にPHPインストール出来るやん、
だったらめんどくさいところPHPにしたいということで
試してみます
213 :
デフォルトの名無しさん
2015/12/23(水) 20:37:37.07 ID:TzyhEOiS
ios端末で書いたチルダがWin上のphpで拾えないんですが、どうやったらいいんでしょうか(´・ω・`)
214 :
デフォルトの名無しさん
2015/12/24(木) 00:16:25.67 ID:/QJT0Eks
XP使ってんの?
215 :
デフォルトの名無しさん
2015/12/24(木) 13:37:05.84 ID:raS3FEsP
【OS名】CentOS
【PHPのバージョン】5.2
【連携ソフトウェア】なし
【質問内容】
文字列の配列から、"unko"という文字列を一括削除したいんだけど
どう書くのがかっこいい?
216 :
デフォルトの名無しさん
2015/12/24(木) 15:11:40.93 ID:2UP1MsSC
$a = ['unko', 'unk', 'ununko', 'unkoununko'];
$a = array_map(function($_a){
return str_replace('unko', '', $_a);
}, $a);
callbackに無名関数渡すとcoolだろぉ?
別に早くはない
217 :
デフォルトの名無しさん
2015/12/24(木) 15:21:06.33 ID:nTCupmHp
だが待って欲しい
str_replaceは配列なhaystackもきちんと処理してくれるのだからarray_mapいらなくね?
218 :
デフォルトの名無しさん
2015/12/24(木) 15:22:25.17 ID:QmDYk9Ce
パッと思いついたのは
>>216と同じだったが、調べたらstr_replaceだけでいけるね
219 :
デフォルトの名無しさん
2015/12/24(木) 16:11:37.73 ID:raS3FEsP
>>216 ごめん
その例でいうなら、痴漢後の配列が
$a = ['unk', 'ununko', 'unkoununko'];
になってほしいんだ。
220 :
デフォルトの名無しさん
2015/12/24(木) 18:45:10.76 ID:7SbnL0v4
>>219 これもまた速くはないけど。
$a = array('unko', 'unk', 'ununko', 'unko', 'unkoununko');
$a = array_diff($a, array('unko'));
ループでまわしてunsetが一番速いと思うよ。
221 :
デフォルトの名無しさん
2015/12/24(木) 20:51:13.00 ID:raS3FEsP
>>220 なるほど、差分だから引き算だから削除になるのか。
ディフフ
222 :
デフォルトの名無しさん
2015/12/25(金) 12:32:58.26 ID:OVXWXNxb
PEAR::AUTHからjwtに換えないといかんということになってさ
あれは要するに「サーバ側だけで隠し持てるJSON」として扱っていいのかな、
沢山持たせすぎて重いとか無いよね別に
良いなら色々、アクセス可能なモデルとか持たせようと思います
223 :
デフォルトの名無しさん
2015/12/28(月) 23:01:52.20 ID:wHGPXB9y
PHPで計算機を作成しているのですが一回目に計算した値に二回目以降の計算した値を加算していきたいのですが
どうすればいいのでしょうか。
調べたところセッション関数を使えばいいようなのですが…
224 :
デフォルトの名無しさん
2015/12/29(火) 00:38:59.01 ID:Kpb8+VpB
計算機でsession?ブラウザ上で何回か計算させんの?
225 :
デフォルトの名無しさん
2015/12/29(火) 00:47:38.81 ID:Kpb8+VpB
>>78 upload_max_filesizeがデフォじゃねーの?w
226 :
デフォルトの名無しさん
2015/12/29(火) 02:08:09.49 ID:kJTcdl6n
a.phpからb.phpに動的なデータ(ユーザー情報)を送る場合、どういった方法があるのでしょうか。
通信はhttps使う予定です
227 :
デフォルトの名無しさん
2015/12/29(火) 02:10:48.95 ID:R0ql8/pO
b.phpに対し、POSTかGETのリクエストを送る
228 :
デフォルトの名無しさん
2015/12/29(火) 04:05:11.67 ID:qHplhu/m
229 :
デフォルトの名無しさん
2015/12/29(火) 04:43:55.21 ID:bHe3iwsI
計算が終わったあとに、setcookie() する
計算が終わったあとに、計算実行させる<form>に<input type="hidden">を設け計算結果を仕込む
計算が終わったあとに、計算実行させる<form>のaction属性のURLに計算結果を仕込む
とりあえず何も考えずに session_start() して計算が終わったあとに $_SESSION['result'] に結果を仕込む
上3つはユーザが容易に好き勝手に変えられる値でしかも文字列型なので、検証したり明示的に型キャストしてやったりすると良い
230 :
デフォルトの名無しさん
2015/12/29(火) 06:17:02.79 ID:VXcnTZbe
ブラウザで計算させて結果だけサーバに保持するのか、
ブラウザで計算するパラメタだけ入力し計算処理はサーバで
させるのかによって、実装が違ってくる。
どっちにしても、まずはsession_start()しよう。
231 :
デフォルトの名無しさん
2015/12/29(火) 10:42:51.14 ID:V4/5oFij
>>223 ブラウザで計算させるだけなら普通はJavaScriptを使うよ。
PHPを使うのは、値を永続的に記録したいとき。
その場合、ファイルに記録したりデータベースを利用する。
そうではなく、たとえばクイズの得点の加算なんかなら
PHPでセッションやクッキーを使えばいい。
それにJavaScriptでもクッキーは使える。
232 :
デフォルトの名無しさん
2015/12/29(火) 12:10:52.58 ID:2bysKUYX
233 :
デフォルトの名無しさん
2015/12/29(火) 13:01:32.76 ID:/5tSBWu/
サンプル…?
234 :
デフォルトの名無しさん
2015/12/29(火) 13:10:08.04 ID:WW2BuOkl
PHP使うのにリバースエンジニアリングしてソースコード解析から始めますか?
たまにそういう変態もいるかもしれないけど内部の仕様なんて知る必要はないんやでえ
それと同じで仕様書やサンプルをちゃんと見て下さい
235 :
デフォルトの名無しさん
2015/12/29(火) 13:13:05.56 ID:WW2BuOkl
サンプルが英語でよくわからなくて該当コード探すのがわからないなら
とりあえずサンプルファイル郡に対してyoutubeでgrepかけてみたらええんやないの
236 :
デフォルトの名無しさん
2015/12/29(火) 13:19:59.60 ID:bHe3iwsI
>Youtube APIを使うグーグルのライブラリを使ってみよう
わかる
>サンプルを基礎に改造していこう
わかる
>ライブラリのメソッドの定義を見に行く
??
あるライブラリの使い方を把握したうえでさらに細かいことしたいならライブラリの中身見るのもわかるが
そんな酔狂なことしたいんじゃなけりゃ、つまづいたらライブラリのドキュメントを読む、これが正解
237 :
デフォルトの名無しさん
2015/12/29(火) 14:02:43.68 ID:5o0CYWec
Collectionの種類やメソッドは、
理解できるまで、じっくり見た方がよい
238 :
デフォルトの名無しさん
2015/12/29(火) 15:33:26.34 ID:f95NQVFO
>>231 PHPでやりたいからここに来ているのを察せないの
239 :
デフォルトの名無しさん
2015/12/29(火) 17:01:36.30 ID:Kpb8+VpB
>>228 まぁ上の諸先輩が言うようにsession_start()から始めるか、Javascript
何れにしろcookie使うんだが、10年前のガラケーはcookie実装してないからなw
PHPのsession関数マニュアルを200回読むように
240 :
デフォルトの名無しさん
2015/12/29(火) 17:07:13.08 ID:Kpb8+VpB
>>229 > 計算が終わったあとに、計算実行させる<form>に<input type="hidden">を設け計算結果を仕込む
それが一番確実簡単良い方法だと思うw 初心に帰れという言葉を思い出したww
241 :
デフォルトの名無しさん
2015/12/29(火) 17:13:39.85 ID:Kpb8+VpB
>>226 httpsってのは通信プロトコルだからPHPにはかんけーねー
PHPっつうか、先ずはhtmlのformメソッドを勉強しなさい
どういう動的やりとりなのかわからんけど、ヒマがあればAjaxもやっとけば未来は多少明るくなるw
242 :
デフォルトの名無しさん
2015/12/29(火) 18:46:45.91 ID:qHplhu/m
>>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');?>"/>
なんか間違ってますかね
243 :
デフォルトの名無しさん
2015/12/29(火) 19:16:10.63 ID:pHdit4cS
>>242 Twigとかでデザインとロジック分離した方がいいよ, という点をおいておけばそれで問題ないはず
というか動かせばわかるよね?
244 :
デフォルトの名無しさん
2015/12/29(火) 19:18:42.09 ID:Kpb8+VpB
>>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"]を入れたいんですけどどうすればいいんですかね。
> エラーは出ないんですけどなんかうまくいかないんです
> <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"]);
245 :
デフォルトの名無しさん
2015/12/29(火) 19:21:50.35 ID:pHdit4cS
とりあえず部分じゃなく全体のコードを出せ, と
246 :
デフォルトの名無しさん
2015/12/29(火) 19:26:22.42 ID:Kpb8+VpB
>>243 テンプレエンジンはここまでの初心者には不要じゃね というかますます、わけわかめ、になるよw
SmartyとかTwigはobjectを理解してからの第2段階だろー
247 :
デフォルトの名無しさん
2015/12/29(火) 19:35:57.06 ID:Kpb8+VpB
>>242 あとな、htmlspecialcharsでXSS対策とか、勉強して入れたんだと思うけど、作ってるの計算機だべ?
それなら、受け取ったあとに数値だけのチェックして、数値もしくは小数点以外なら
print "変なもんいれんなや";
exit;
の方が確実だぞw
248 :
デフォルトの名無しさん
2015/12/30(水) 00:34:23.84 ID:PWJM0BV8
相手が初心者ならまず
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"])で確認しろとかな
249 :
デフォルトの名無しさん
2015/12/30(水) 00:36:05.43 ID:PWJM0BV8
そしてコピペミスしたわけだが
例文2行目の頭は value="<?= echo じゃなくて value="<?php echo だった吊ってくる
250 :
デフォルトの名無しさん
2015/12/30(水) 02:09:15.29 ID:3alGq9af
いろいろやってみた結果
1ページ目で
$_SESSION["total"]=$keisan_3;として
二ページ目以降
echo $_SESSION["total"]+$keisan_3;
$_SESSION["total"]=$_SESSION["total"]+$keisan_3;
のようにば加算されていきますよね?
実際動いているので問題ないんと思うんですが…なんだか頭がこんがらがってきました…
251 :
デフォルトの名無しさん
2015/12/30(水) 02:27:51.57 ID:mOtrRral
>>250 まーいろんなやり方があるわけで この程度でこんがらがるようじゃ、センスが無い、と諦めるのも一考
実際のページとソース全部出せば、親切で暇な人が教えてくれるよ
252 :
デフォルトの名無しさん
2015/12/30(水) 02:30:18.07 ID:BriEFJHd
最初に、 $_SESSION["total"]=0: にしておく
以降は、 $_SESSION["total"]+=$keisan_3; とする
加算した後に、 echo $_SESSION["total"]; で表示する。
でどうですか?
253 :
デフォルトの名無しさん
2015/12/30(水) 02:36:17.85 ID:X0vYHUCK
プログラム経験はそれなりにあっても今始めてステートレスな環境でどうすればいいか困ってるのかもしれないし、
一概にセンスがないと言い切れるもんじゃないような。
254 :
デフォルトの名無しさん
2015/12/30(水) 02:49:16.11 ID:3alGq9af
>>252 僕には合わないみたいですすいません。
でもありがとうございます。
255 :
デフォルトの名無しさん
2015/12/30(水) 08:10:01.35 ID:HDt7R2Vx
>この程度でこんがらがるようじゃ、センスが無い、と諦めるのも一考
こんな↑大馬鹿の言うこと気にする必要はありません。
疑問を持ち、それを解決しようと努力する貴方のような姿勢こそ、最も大切な能力です。
分からない部分は、そこだけ取り出したコードを書いて、理解しながら進めると良いよ。
(その作業が面白いと思えるのも能力のひとつかもしれません)
256 :
デフォルトの名無しさん
2015/12/30(水) 08:15:51.87 ID:HDt7R2Vx
まず、↓のコードをコピペして、ブラウザで何度も再表示してみてください。
ブラウザの再表示で前回の結果を引き継げることが分かると思います。
<?php
error_reporting(0);
session_start();
$xxx = $_SESSION["xxx"];
$xxx ++;
echo $xxx;
$_SESSION["xxx"] = $xxx;
257 :
デフォルトの名無しさん
2015/12/30(水) 08:50:48.17 ID:PRQQH4Sb
・返される値を気にするのでなければ $xxx++ より ++$xxx を使う方が良い
・存在が確定しているならば良いが、そうとは限らないのならば
$_SESSION["xxx"]を使う前に、まず最初に isset($_SESSION["xxx"]) で配列$_SESSIONと要素"xxx"の存在を確認すべき
・初期化の概念は初心者にとって大事
・俺理論だが、型を意識するよう (string)($xxx) と明示的にキャストするクセをつけるとクドい反面安心感がある
どうでもいいけど isset( $array['foo']['var'] ) がfalseになるときって
$array['foo']['var'] がないのか $array['foo'] がないのか $array がないのか、区別つかんよね
258 :
デフォルトの名無しさん
2015/12/30(水) 12:16:27.79 ID:3alGq9af
>>255 センスと言われればまぁあれですがPHPって楽しいですね
進め方って重要ですよね。参考にしますありがとうございます
>>257 ほう…なんだか自分のコードが穴だらけのような気がします…
ありがとうございます
259 :
デフォルトの名無しさん
2015/12/30(水) 12:26:55.91 ID:PgKYd+R7
260 :
デフォルトの名無しさん
2015/12/30(水) 12:45:41.68 ID:UceytvZf
まぁ先にC言語とかやっとくと, PHPの型の取り扱いの気持ち悪さはよく理解出来ると思う
PHP7で基本型タイプヒンティングが入ったから型チェックの手間は随分省けるようになったけど, 要所では自動変換に頼らず明示的なキャストで書いた方が安全だし読むときに分かりやすいよね
261 :
デフォルトの名無しさん
2015/12/30(水) 12:57:03.00 ID:JM6HwSlE
インタプリタ使う意味が半分ぐらいなくなるわw
262 :
デフォルトの名無しさん
2015/12/30(水) 13:02:04.80 ID:PRQQH4Sb
んだな
phpの動的型付け・型相違時の柔軟な処理がすごくラクで助かる時もあるから
一概にどっちが良いとも言いがたいけど、意識しておくと後々ラクなのも事実 先にcやれが正論過ぎるが
>>259 言いたかったことはそれとは違って、警告出してくれるIDEは素晴らしいで終わる話だが、
例えば、$_SESSION['test'] を $_SESSSION['test'] と打ち間違えていた時
他で$_SESSSIONなんて使ってなければ、isset( $_SESSSION['test'] ) は常にfalseを返してくることになり
php側ではNoticeを出してくれない、デバッグ時に何が悪いか30分悩みまくる、ってことを以前経験した
263 :
デフォルトの名無しさん
2015/12/30(水) 13:14:46.04 ID:xHbCmVj1
>>262 私の場合よく使う変数は参照渡し返す関数作ってミスを防いでるけど、それじゃ効率悪いよな…。
264 :
デフォルトの名無しさん
2015/12/30(水) 13:41:15.53 ID:UceytvZf
PHPCSとかで命名を咎めてもらうのかなぁ
265 :
デフォルトの名無しさん
2015/12/30(水) 14:26:15.68 ID:HDt7R2Vx
266 :
デフォルトの名無しさん
2015/12/30(水) 15:47:29.74 ID:UljFI1i+
俺のPHPのコードは半分くらい
//ob_start();
//var_dump(疑わしい変数);
とかだからな
267 :
デフォルトの名無しさん
2015/12/30(水) 15:58:01.97 ID:R6S1A8we
加算機 先生方、こんなのダメかい?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>
268 :
デフォルトの名無しさん
2015/12/30(水) 16:18:42.60 ID:R6S1A8we
あ、ソース名はcal.php
269 :
デフォルトの名無しさん
2015/12/30(水) 17:22:37.17 ID:JM6HwSlE
session_start()の前に
error_reporting(E_ALL);
入れてみ
270 :
デフォルトの名無しさん
2015/12/30(水) 18:00:59.44 ID:gRxyxMba
【OS名】Ubuntu15.10
【PHPのバージョン】5.6.11
【連携ソフトウェア】apache
【質問内容】
ファイルをflockでロックするテストをしていたらロックできなくなりました。
ロックした状態のままリロードしたらそうなったんだと思います。
どうすればロックを解除できますか?
271 :
デフォルトの名無しさん
2015/12/30(水) 18:05:05.96 ID:SOn9TqmP
>>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>
272 :
270
2015/12/30(水) 18:35:33.32 ID:gRxyxMba
apacheリスタートしたら解除されました。他に方法ないんですかね?
273 :
デフォルトの名無しさん
2015/12/30(水) 19:04:45.85 ID:JM6HwSlE
>>271 preg_match→is_numericでいい それと$cal(中身は+かCLEAR)じゃなくて$hageに対してやれ
$_SESSION['hage']いらない
適切に処理された安全な値でもhtmlに変数echoするときはhtmlspecialcharsかませる癖をつけたほうがいい
セッション使いたかっただけなら別にいけどsessionは大げさ hiddenフィールドでやればいい
274 :
デフォルトの名無しさん
2015/12/30(水) 19:16:40.72 ID:zANMIO+6
>>273 271ざんす おれ質問主じゃないんだ ヒマで書いてみただけw
sessionいらねえと思ったけどみんなsessionsessionって言ってたし
あ、$calと$hage間違ってるわ、ビール飲み過ぎたごめん
もちろん仕事時はhtmlspecialcharsとか使ってるよー
275 :
デフォルトの名無しさん
2015/12/30(水) 19:26:01.91 ID:zANMIO+6
正規表現やりすぎるとis_numericとか忘れるなぁ・・
もういっかい初心に戻って勉強しなおすお
276 :
デフォルトの名無しさん
2015/12/30(水) 21:58:07.47 ID:gDwmGNes
ちょっとした計算が、こんなに難しいの?
JavaScriptの方が、簡単
277 :
デフォルトの名無しさん
2015/12/30(水) 22:39:50.58 ID:X0vYHUCK
>>276 いや、同じくらい簡単だよ
やろうとしてることが違うだけで
278 :
デフォルトの名無しさん
2015/12/30(水) 22:41:16.58 ID:X0vYHUCK
>>275 is_numericとその正規表現は真と判定される基準が全然違うので、is_numericがいいかというとどうなんだろうね。
279 :
デフォルトの名無しさん
2015/12/30(水) 22:46:15.45 ID:UceytvZf
正直先の正規表現は穴だらけなので, どう考えてもis_numericの方がいい
正規表現でIEEE小数表現をきちんと書くならそれはそれでいいけど
280 :
デフォルトの名無しさん
2015/12/30(水) 22:50:10.24 ID:BriEFJHd
数値の桁数チェックとか、楽なので
281 :
232q
2015/12/30(水) 23:32:42.35 ID:wmKVqfCX
>>234-237 ありがとうございます。当該ライブラリは独立したドキュメントが整備されておらず、
ソースのコメントに仕様が書かれており、ソースをきっちり読んでいるかのようなコメントになってしまいました。
JSON, オブジェクトイテレーションなど、私の知識不足が原因でサンプルを読んで混乱していたようです。
282 :
デフォルトの名無しさん
2015/12/30(水) 23:54:08.37 ID:X0vYHUCK
>>279 それらの入力を期待しているかどうかによるんだけど、たぶん質問主はそれを期待してないよ。
283 :
デフォルトの名無しさん
2015/12/31(木) 00:38:12.93 ID:3gTqCnws
/^[0-9\.]+$/じゃあいくら何でもザル過ぎるから/^[0-9]+(\.[0-9]+)?$/ぐらいにすべきだろうけど, こんなん正規表現で書くよりis_numericと書いた方がいいでしょ
284 :
デフォルトの名無しさん
2015/12/31(木) 00:51:05.43 ID:T4L8KKE0
何を持ってざるとするのか
285 :
デフォルトの名無しさん
2015/12/31(木) 01:19:19.64 ID:MIlX8fvc
286 :
デフォルトの名無しさん
2015/12/31(木) 01:32:46.86 ID:MIlX8fvc
16進数やら指数表記入れてくるのはわざとやってるんだろうから
その辺は考慮しなくていいと思うけどね
PHP7からはちゃんと16進数も弾いてくれるみたいだけど
287 :
デフォルトの名無しさん
2015/12/31(木) 03:16:49.20 ID:T4L8KKE0
288 :
デフォルトの名無しさん
2016/01/02(土) 18:45:54.31 ID:UuhQB48c
どんどん加算していってトータルが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;
289 :
デフォルトの名無しさん
2016/01/02(土) 19:06:05.47 ID:VLzeBTkn
>= 100 か > 99 使えばいいんじゃね
290 :
デフォルトの名無しさん
2016/01/02(土) 19:27:33.49 ID:XBUisDtv
>>288 何してるのこれ?
$keisan_3+$_SESSION[
291 :
デフォルトの名無しさん
2016/01/02(土) 19:29:01.64 ID:XBUisDtv
途切れた。2行目のこれ。
$keisan_3+$_SESSION["total"];
292 :
デフォルトの名無しさん
2016/01/02(土) 19:32:28.01 ID:3xAvnogN
293 :
デフォルトの名無しさん
2016/01/02(土) 19:44:17.21 ID:UuhQB48c
>>289 試したんですけどダメでした
>>291 これは…その…いらなかったですね…
ありがとうございます
294 :
デフォルトの名無しさん
2016/01/02(土) 20:05:41.32 ID:XBUisDtv
>>293 session_start はファイルの上部に入れる。
session_start の直後にif文を入れれば想定した動作になるはず。
ダメならtotalの中身を表示しながら少しずつ動作を確認するといい。
それか自分で要件を勘違いしてる可能性もある。
<?php
session_start();
if ($_SESSION["total"]>100||$_SESSION["total_2"]>100) {
header("Location:パス名");
}
//以下計算処理
295 :
デフォルトの名無しさん
2016/01/02(土) 21:32:41.03 ID:VLzeBTkn
>>292 よくわからんけど対象以下のディレクトリ・ファイルを再帰的に全部拾ってって
それをd3.jsで読める形にしてd3側でツリー描きたいとかそゆこと?
296 :
デフォルトの名無しさん
2016/01/02(土) 21:51:22.37 ID:B+tUCmqX
Groovyなら、eachFileRecurse で、
ディレクトリ階層を深さ優先探索できる
297 :
デフォルトの名無しさん
2016/01/02(土) 21:57:54.66 ID:ta1uD6qZ
>>292 例で示されたサンプルは、flare.jsonがその表示データみたいですね。
このデータはまさにJSON形式だから、ディレクトリを再帰検索して多次元配列にして取得し、
それをjson_encode()すればいいんじゃないの?
298 :
デフォルトの名無しさん
2016/01/03(日) 09:05:46.06 ID:flrhEOJ+
すごく下らないことなのかもですが・・・
無名関数に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);
299 :
デフォルトの名無しさん
2016/01/03(日) 10:31:02.34 ID:RMeP4ml1
300 :
デフォルトの名無しさん
2016/01/03(日) 10:35:03.90 ID:RMeP4ml1
つまり、わざわざ&をつけなくても参照渡しになるってこと。
301 :
デフォルトの名無しさん
2016/01/03(日) 10:43:10.82 ID:flrhEOJ+
>>299-300 やばい知らなかった arrayが値渡しになってるからてっきり……だからsingletonそのまま渡しても動いてたのか
しかもphp.netの中にあったとは。ありがとうございます
302 :
デフォルトの名無しさん
2016/01/03(日) 16:29:08.20 ID:jR+Nkr2H
>>299 このぺーじは何回読んでも 参照とIDのコピーの区別がつかない
どう読んでも参照だろとしか思えない
303 :
デフォルトの名無しさん
2016/01/03(日) 17:03:38.48 ID:E2yOOycQ
>>299のページは, 違うけど, だから何なのかということが書いてないのがアレ
わざわざマニュアルに書くということは実際にPHPでコードを書くときに問題になることが有り得るということなのか?
内部的な扱いの違いだけで(実行速度を除けば)PHPプログラマは気にしなくてよい?
304 :
デフォルトの名無しさん
2016/01/03(日) 17:31:48.27 ID:flrhEOJ+
参照じゃないから・・・
コピー元をunsetしてもコピー先がnull参照になったりしないとか
どこからも参照されなくなったあとにgcされるとかそういうことですかね?
305 :
デフォルトの名無しさん
2016/01/03(日) 17:36:43.18 ID:flrhEOJ+
そういえば、
>>301に値渡しとは書いたけど
普通にarrayを渡すときであってもCopy On Writeがあるから
渡した先で書き換えない限りはでかいデータを渡してもメモリ肥大化しないで処理してくれるわけで、これもある意味自動参照渡し
306 :
デフォルトの名無しさん
2016/01/03(日) 18:11:01.17 ID:vYwnzBVC
本を参考にして掲示板をつくっています。
数字:名前:本文、という風にしたいのですが、この数字の部分が表示されません。
プログラムは以下のようになっています。
<?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_close($s);
print "<br><a href='kantan.html'>トップメニューに戻ります</a>";
?>
どこが間違っているかご教示お願いします。
307 :
デフォルトの名無しさん
2016/01/03(日) 19:14:47.80 ID:vYwnzBVC
すみません、306ですが自己解決しました。
スレ汚し申し訳ありませんでした。
308 :
デフォルトの名無しさん
2016/01/03(日) 19:26:03.79 ID:8xMDsXMt
初心者のDBに関する質問て軒並みmysql関数使ってるね。
もう、古いPHPの解説書全部焼却した方が色んな意味でみんなのためなんじゃないかな。
309 :
デフォルトの名無しさん
2016/01/03(日) 19:54:52.92 ID:Aw+loPRS
mysql_num_rowsは便利だったけどね。PDOに相当のメソッドがないのは痛い。
PDOStatement::rowCountはselect文では微妙だし。
310 :
デフォルトの名無しさん
2016/01/03(日) 20:50:27.45 ID:Ga7S25j+
PDOが推奨される理由ってインジェクション対策のエスケープがやりやすいという以外の理由がありますか?
311 :
デフォルトの名無しさん
2016/01/03(日) 21:14:26.45 ID:KfQ2xAcB
PDOで特段エスケープがやりやすいっていうことはないと思うけど
PDOの主目的はアクセスの抽象化で
接続部分書き換えるだけで対応してるDBに切り替える事ができるのがポイント
ただPDOはO/Rマッパーではないから実際問題として
ベンダー固有の機能(SQL)使ってたりしてそのまま動くってわけにもいかんだろうけど
312 :
デフォルトの名無しさん
2016/01/03(日) 21:26:55.68 ID:+3E/SZnp
>>309 mysql_num_rowsなんて
結果セット(≠SQL_CALC_FOUND_ROWS)をカウントするだけなんだからどうでもいいよ
実際どうでもいいから消えたし
313 :
デフォルトの名無しさん
2016/01/03(日) 22:15:57.50 ID:7hdqvuO7
なるほど。
やはりPDOだと件数の取得は、件数用のクエリを別に発行しないと駄目なんだね。
314 :
デフォルトの名無しさん
2016/01/04(月) 12:50:34.91 ID:WKhSyJYd
>>312 ページあたり○件表示 をやるときに全ページ数求めるのに使うよ!
315 :
デフォルトの名無しさん
2016/01/04(月) 13:00:09.43 ID:WKhSyJYd
316 :
デフォルトの名無しさん
2016/01/04(月) 14:13:23.78 ID:QdkZIWcg
全レコードフェッチしてカウントするのか。たまげたなぁ、、、。
>>313 互換性の観点から、そうしたほうがいいと思う
317 :
デフォルトの名無しさん
2016/01/04(月) 14:59:10.08 ID:OaDNUvqZ
PDOの仕様上は、select文の場合PDOStatement::rowCountで結果セットの行数
を取得できる保証はないけど、実際のところどうなんでしょうか?
MySQL
PostgreSQL
SQLite
SQLServer
で知りたいです。
(すみません試す環境が現在ないので・・・)
318 :
デフォルトの名無しさん
2016/01/04(月) 15:48:16.33 ID:xU2s8ar4
$array["3"]="hoge";してもあとでforeachかけるとkeyがintの3にすりかわってて、うっかり === 比較とかするとハマる
$array["03"]だと$array[3]と同義にはならずkeyはstringの"03"
誰が得するんですかこの仕様
319 :
デフォルトの名無しさん
2016/01/04(月) 16:23:05.04 ID:7kte6BbK
それはおまえさんのやりかたがまずいだけだろ
320 :
デフォルトの名無しさん
2016/01/04(月) 16:58:05.41 ID:kA444xDU
321 :
デフォルトの名無しさん
2016/01/04(月) 17:18:13.58 ID:xU2s8ar4
>>320 cookieは文字列型、DBから文字列型で返ってくる、と同様FAQ的だとわかっちゃいたけど
実際これに当たるとすっごく面倒だった
配列のキーにぶち込んでるものと変数/配列の値にぶちこんでるものを比較するのに
わざわざ前もってctype_digit($string)と$string[0]!=='0'を確認させる羽目になった
ところでそれ、is_numeric()じゃダメだな。'10.0'や'0,1'はtrueを返されるけど、配列キーにしても整数型キャストされない
この変換、なんか歴史的事情でもあるんだろうか?
>>319 困らないならそれでいいんじゃないかな
322 :
デフォルトの名無しさん
2016/01/04(月) 18:45:17.18 ID:A2K+UcjX
型の自動変換をさせない設定にできるといいんだけどね。
323 :
デフォルトの名無しさん
2016/01/04(月) 18:59:44.66 ID:OaDNUvqZ
そもそも配列のキーに、
$array[3]
と
$array["3"]
を区別したいという使い方が想像できない。
324 :
デフォルトの名無しさん
2016/01/04(月) 19:24:29.50 ID:ES5+LcGZ
>>321 しょうがないからキーにする数値に文字列プレフィクスつけたりした
325 :
デフォルトの名無しさん
2016/01/04(月) 23:32:32.08 ID:8u7a3/zf
>>311 ありがとうございます。コードの汎用性が上がるんですね。
326 :
デフォルトの名無しさん
2016/01/05(火) 16:14:28.63 ID:DBF3ayuU
phpでサイトを作ろうと思っているのですが、virtualboxを使う際はnginxとphp-fpmとmysqlとvsftpをインストールするだけでpcからサイトを確認・編集出来るようになりますか?
327 :
デフォルトの名無しさん
2016/01/05(火) 16:17:36.63 ID:DBF3ayuU
>>326 ですが、説明が不足していたので追記します。
作りたいのはphpサイトのテスト環境です。
328 :
デフォルトの名無しさん
2016/01/05(火) 16:26:28.65 ID:QeOiEXTF
>>326 設定済みのVagrantのファイルを見つけてきたら、
VagrantとVirtualBoxとputty(ターミナル)でいけるよ
同期も自動的に出来る
329 :
デフォルトの名無しさん
2016/01/05(火) 17:06:55.24 ID:6S/N1hh8
>>326 インストールと設定をすればできるようになるよ。
あとテストしたいことによってはmysqlいらない。
330 :
デフォルトの名無しさん
2016/01/07(木) 13:35:07.18 ID:nOAVWNy7
配列をMySQLに保存する時にserialize()を使うというのはわかりました。
$db3 = serialize( array("label1", "label2") );
このように挿入したdb3列があるとして、label1を含む行のみをDBから取り出すのはどうしたらよいでしょうか?
全部取得してunserialize()してlabel1を含むものを探すのは非効率ではないかと思います。
挿入するデータ構造を変えるべきでしょうか?シリアライズする配列の要素数は行によって違います。
331 :
デフォルトの名無しさん
2016/01/07(木) 15:21:45.50 ID:wk6H0iR6
単純な文字列検索でいいなら、 WHERE で指定してやれば良いはずだが
serializeしたものをvar_dumpして確認してみ
332 :
デフォルトの名無しさん
2016/01/07(木) 15:26:15.64 ID:elcoV0S6
>>330 データベースに「付随する可変長のオブジェクトをなんとか格納したい」時にしょうがなく使うものなので、検索対象には普通しないよ、serializeとかJson型とかは
検索対象にしたいなら、データベースの列を一個追加して
配列の最初の値をその列に入れて
その列にインデックス付ける
とすると高速に検索出来ます。
でも、その値は100万行に対して数種類しかない、だと高速化もたかが数分の一になるのでよく考えてね
333 :
デフォルトの名無しさん
2016/01/07(木) 15:27:07.55 ID:kiPrQRCq
>>330 配列要素をDBから検索したいなら、格納時にシリアライズは使わずに、
適当な記号文字で連結して一つの文字列にし、格納する方が良いように思う。
334 :
デフォルトの名無しさん
2016/01/07(木) 15:37:53.97 ID:mR6oAbiO
>>332 なんで配列の最初の値だけしか検索対象にしないという仕様に変更しちゃうの?
335 :
デフォルトの名無しさん
2016/01/07(木) 16:20:10.57 ID:MPmNMeUD
336 :
デフォルトの名無しさん
2016/01/07(木) 20:17:30.66 ID:1sig02kA
>>330 一つのカラムに複数の値を持つ属性を格納するのはSQLアンチパターンの一つ。
根本的な解決策は、テーブルを一つ増やすこと。つまり、交差テーブルを作成する。
337 :
デフォルトの名無しさん
2016/01/07(木) 20:27:13.84 ID:QG9KWxbk
>>332 >検索対象にしたいなら、データベースの列を一個追加して
こういう糞みたいなテーブル設計、結構あるよね。
RDBの使い方わかってない馬鹿設計。
>>336みたいな当たり前のことを全く勉強しない。
338 :
デフォルトの名無しさん
2016/01/07(木) 21:24:22.54 ID:VxA2n+jW
>>336 正論だと思う。
でも、
>適当な記号文字で連結して一つの文字列にし、格納する
も場合によっては簡単で良い場合もあると思う。
どんな場合も絶対にSQLアンチパターンとは言えないような気がします。
MySQLには配列型というフィールド型はないのか。。。
339 :
デフォルトの名無しさん
2016/01/07(木) 21:49:23.73 ID:QG9KWxbk
↑こういう考え方する人って、
その後同様の方法で機能拡張されていった時に
どんなシステムになるかって事、全く考えてないよな。
場当たり的で、今さえ良ければいい、
後でシステム触る人のことなんか考えもしない。
糞生産マシーン。
340 :
デフォルトの名無しさん
2016/01/07(木) 21:53:27.53 ID:QG9KWxbk
>どんな場合も絶対にSQLアンチパターンとは言えないような気がします。
気がするのは勝手だけど、明らかにアンチパターンだから。
いい加減に気づいて。
341 :
デフォルトの名無しさん
2016/01/07(木) 21:54:14.87 ID:wk6H0iR6
そりゃまあDB的には突き詰めれば別テーブル使えになるのは仕方ない
が、
>>332は「配列の最初の値をその列に入れて」だぞ
追加した1カラムにserializeした配列をぶっこめっつってるんじゃないぞ
挙動が変わってんじゃねーかという突っ込みは真っ当だが正規化がどうのは筋違いでは
なおserializeしたものをDBに突っ込むと意外とデータ量増えるが配列に戻す時に楽ではある
多次元でも楽々。アレだけど対応してればオブジェクトも楽々
342 :
デフォルトの名無しさん
2016/01/07(木) 21:54:39.91 ID:lBSXDGgS
ここは、PHPのスレだからね
343 :
デフォルトの名無しさん
2016/01/07(木) 22:06:22.16 ID:QG9KWxbk
>>341 アホなのかな?
後で、やっぱりlabel2も検索したいです〜ってなったら、またカラム増やすの?
開発中ならまだいいけど、運用中にテーブル構造いじるの、けっこう胃が痛いよ。
だったら最初から別テーブル作ればいいじゃん。複合プライマリキーで。
いくつ配列要素増えようが、インデックス効くから高速に検索できる。
DBの基本中の基本じゃないの。
PHPのスレだからとか関係ない。それともPHPerはDBも満足に扱えないの?
344 :
デフォルトの名無しさん
2016/01/07(木) 22:12:18.90 ID:QG9KWxbk
>突き詰めれば別テーブル使えになるのは仕方ない
仕方ないって、頭おかしいのかな? 理想だ、ならわかるが。
本当にRDBの事全くわかってないな。
345 :
デフォルトの名無しさん
2016/01/07(木) 22:13:55.32 ID:lBSXDGgS
DB板でやれば良い。ちゃんと誘導すれば済む話。
閑古鳥が泣いてるよ(泣く方が意味伝わるな)
346 :
デフォルトの名無しさん
2016/01/07(木) 22:28:58.44 ID:PsJSsRuX
好きなようにやれよ
業務用じゃないんだろ
347 :
デフォルトの名無しさん
2016/01/07(木) 22:30:40.24 ID:QG9KWxbk
OK
elcoV0S6 kiPrQRCq VxA2n+jW wk6H0iR6 は、PHPerの面汚しだから、
DB板に行って3年ROMれ。
348 :
デフォルトの名無しさん
2016/01/07(木) 22:34:04.85 ID:zlqF3Cm9
>>330 纏めておくと, とりあえずシリアライズして保存するならば検索は諦める。
検索したいという目的があるならば, データ構造に対して適切なテーブル設計を行う必要がある(何のためのJOINか)。
テーブル構造についてはID:QG9KWxbkの述べている通りだが, PHPとは無関係だから本来はデータベース板で訊くべき。
349 :
デフォルトの名無しさん
2016/01/07(木) 22:39:18.45 ID:mR6oAbiO
350 :
デフォルトの名無しさん
2016/01/07(木) 22:40:09.61 ID:KI3qNwRQ
まあ何事にもトレードオフがつきものだ。
351 :
デフォルトの名無しさん
2016/01/07(木) 22:41:41.00 ID:nOAVWNy7
352 :
デフォルトの名無しさん
2016/01/07(木) 23:50:37.77 ID:MPmNMeUD
1対1でレコードにシリアライズやBLOBやJsonを入れたい、かつ検索したい
なら検索用フィールドを追加する、ってなるけど
実は1対Nやったんや、ってオチが大抵付くので
元テーブル+BLOBテーブル+関連付けテーブル
にしといた方がいいか
353 :
デフォルトの名無しさん
2016/01/08(金) 03:09:27.33 ID:ZC031pcb
>>351 > 言語の文法をひと通り勉強しても周辺技術も学ばないとまともなソフトはなかなか作れませんね。。
みんな通る道だしゴールしたと言い切れる人もいないだろうし。
気にしなくていいよ。
>>352 なんで誘導先に移動しないの?
354 :
デフォルトの名無しさん
2016/01/09(土) 02:13:36.29 ID:e4D1bXEw
鯖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してあります。
何が原因でしょうか?
355 :
デフォルトの名無しさん
2016/01/09(土) 02:59:47.94 ID:r2xp7j2i
356 :
デフォルトの名無しさん
2016/01/09(土) 03:28:28.92 ID:hDaixTvf
>>354 ほとんどが不要な情報じゃないだろうか。
nginx+fastcgi の環境下で exec('nohup hoge') が実行できないってことでいいのかな。
357 :
デフォルトの名無しさん
2016/01/09(土) 03:31:41.55 ID:PU5LksXv
とりあえずexecの代わりにshell_execで実行結果の確認(出力, 返値)をすることから始めるんじゃないですかね
358 :
デフォルトの名無しさん
2016/01/09(土) 08:59:13.82 ID:UDcRuxMJ
359 :
デフォルトの名無しさん
2016/01/09(土) 11:00:31.17 ID:e4D1bXEw
>>357 >>358 なるほど、調べてみます。
もしどうしても出来ない時は
ソケット通信を使って非同期にしようと思います。
360 :
デフォルトの名無しさん
2016/01/09(土) 12:00:50.97 ID:pmNGPpRJ
ローカル環境と本番で、php.iniの設定が違うように思う。
そこに原因があるのでは。
361 :
デフォルトの名無しさん
2016/01/10(日) 17:21:39.48 ID:2wAawuwm
プログラム言語的なものを作るとして
str:a = "Hello";
str:b = "World";
say(a + b);
これを
$a = "Hello";
$b = "World";
echo $a . $b;
に変換してみて下さい!
362 :
デフォルトの名無しさん
2016/01/10(日) 17:29:15.07 ID:2wAawuwm
ちなみに僕ではこれが限界です\(^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);
363 :
デフォルトの名無しさん
2016/01/10(日) 17:36:39.47 ID:E61+414H
ヒアドキュメントが絶対必要なとき以外はNowdoc構文を使え
364 :
デフォルトの名無しさん
2016/01/10(日) 17:43:17.74 ID:5QIV+MjV
365 :
デフォルトの名無しさん
2016/01/10(日) 17:44:56.59 ID:2wAawuwm
ほーNowdocなんてものがあったんですか
php5.2で思考停止して最近arrayも[]に変えたぐらいなので知りませんでした
366 :
デフォルトの名無しさん
2016/01/10(日) 18:51:02.08 ID:E61+414H
>>364 単純に遅い $記号を意図せず使っていると変数扱いされる
367 :
デフォルトの名無しさん
2016/01/11(月) 02:04:49.32 ID:zpiPzR4s
字句解析や構文解析を書けってか
368 :
デフォルトの名無しさん
2016/01/11(月) 08:39:20.66 ID:7ROk/vF5
phpってなんでこんな簡単なのにみんな使わないの?
369 :
デフォルトの名無しさん
2016/01/11(月) 08:56:10.77 ID:59+0WYwJ
使うとペチパーってバカにされるから…
簡単だし、薄く使えば遅くないのにね
370 :
デフォルトの名無しさん
2016/01/11(月) 09:01:04.44 ID:7ROk/vF5
ペチパーって呼び方初めて聞いたww 語呂の良さが異常
371 :
デフォルトの名無しさん
2016/01/11(月) 10:18:36.33 ID:Sg+RIRQN
Cannot modify header information
というエラーはヘッダ情報を出力する前にゴミ出してるエラーだけど
これの犯人を捕まえたいときは どう追えばいいの?
最終的にどれだけのファイルをincludeしたかを知りたいんだけど
知る手段はある?
372 :
デフォルトの名無しさん
2016/01/11(月) 11:08:37.15 ID:eFIzy0+D
373 :
デフォルトの名無しさん
2016/01/11(月) 11:09:57.23 ID:eFIzy0+D
374 :
デフォルトの名無しさん
2016/01/11(月) 15:15:49.79 ID:VWhKDzdW
>>373 これ試す
オートロードでもちゃんと動きそう
375 :
デフォルトの名無しさん
2016/01/11(月) 18:27:59.94 ID:uSmHGUn0
リスト中の文字列すべてに対して類似検索をかけたい
文字列は文字列長50文字未満(要するに短い)英数記号だけでなくUTF8マルチバイトもある
リストは100〜500件程度
処理コストを出来るだけ抑えたい
こういうとき、どうすれば良いでしょうか?
376 :
デフォルトの名無しさん
2016/01/11(月) 18:47:50.44 ID:4Ze6IrjD
sqlite::memory:に任せてしまう
377 :
デフォルトの名無しさん
2016/01/11(月) 21:02:46.19 ID:79D4A84J
PHPでサーバデーモンを書きたいのですが
書いたものはターミナルからどうやって起動させるのでしょうか?
linuxからなら
nohup php server.php &
とかでいいのでしょうか?
378 :
デフォルトの名無しさん
2016/01/11(月) 21:05:45.24 ID:Sg+RIRQN
>>377 デーモンならちょっぴり悩むとこだけど
サーバならxinetdでいいっしょ
379 :
デフォルトの名無しさん
2016/01/11(月) 21:18:13.13 ID:79D4A84J
>>378 どうもありがとうございます
inetdでの設定方法がちょっとわかりませんが頑張ってみます
380 :
デフォルトの名無しさん
2016/01/11(月) 21:36:41.54 ID:uSmHGUn0
>>376 sqliteをmemoryに置いて高速に…まではわかるんですが
sqlite側だけで(sqlのlikeではなく)類似検索をやってもらえるもんなんですか?
381 :
デフォルトの名無しさん
2016/01/11(月) 23:07:45.03 ID:bjDzOe/b
やりたいことって、
例えば言葉を入力してもらい、
「それに一番近い、または似ている言葉をリストの中から見つけたい」
というようなこと?
382 :
デフォルトの名無しさん
2016/01/11(月) 23:21:30.71 ID:NHMT9p3u
どのくらいの精度が欲しいのか知らないが、similar_textじゃダメなの?
383 :
デフォルトの名無しさん
2016/01/11(月) 23:54:38.73 ID:FvSmyCNC
類似検索の定義がなんなのかはっきりしないことには答えようがないで
like検索のようなものと想定してsqlite言ったんだと思う
384 :
デフォルトの名無しさん
2016/01/11(月) 23:59:48.64 ID:uSmHGUn0
>>381 そう、そういうことです。比較対象が画像や記事など大き目のデータではなく短い文字列
similar_text()等だとマルチバイト対応化したコード例もあるものの
速度が気になっていて、リスト件数450件程で20msec
単純に検索文字列をn文字ずつずらしながらm文字ずつ取っていって配列にして
リスト文字列全てから検索文字列配列のいずれかが含まれるものを拾っていって
マッチ回数を順位・精度に使って…とすると2msec位程度には早くなるけどもここからの改善が難しくて難儀してます
sqliteだと固有の機能としてlikeでない類似検索機能はなさそうなので、後者のパターンに近い感じですよね
でもlikeの単純マッチだけになるから順位付け・精度向上は難しそう
385 :
デフォルトの名無しさん
2016/01/12(火) 00:59:50.85 ID:Ufdu0gJG
2つのcsvがあって、1つめのcsvを基準にもう1つのcsvから1行ずつマッチングさせる、、、という仕様があるんですが、一つのcsvファイルが50MB程度あるようでして....
Webサービスなので複数ユーザーが利用することを考えた時に、どうしてもメモリが足りなくなってしまうと思うのですが、どんな方法がいいでしょうか?
csvファイルを1行ごと取得するか、
dbを作って、csv入れて、処理が終わったら破棄するか
迷ってます。
386 :
デフォルトの名無しさん
2016/01/12(火) 01:21:36.35 ID:maRmmMSv
それってつまりユーザが2つのcsvを毎回アップロードするってこと?
387 :
デフォルトの名無しさん
2016/01/12(火) 01:45:05.86 ID:2yp1iNRN
>>385 実際にやってみてメモリ使用量や処理時間を測ってみたら?
388 :
デフォルトの名無しさん
2016/01/12(火) 01:47:11.22 ID:foKtfeeE
>>384 やりたい仕様に沿ったモジュールをCで書くのが一番じゃないかなぁ
>>385 マッチングが単純なマッチングでいいなら、diffに任せるのはどう
389 :
デフォルトの名無しさん
2016/01/12(火) 01:52:56.43 ID:iDDwmGx/
50MBあっても、読み込み専用ファイルなら、
共有モードになるから、一つしか読み込まれないのでは?
390 :
デフォルトの名無しさん
2016/01/12(火) 01:59:56.30 ID:Ufdu0gJG
ありがとうございます。
同じユーザーが2つのファイルをアップロードします。
イメージ的には別のアクセス解析的なサービスのエクスポートデータをマッチングした後、マージして出力、、、のようなイメージです。
結構マッチの条件が複雑なので、がっつり計測した後難しそうならCのモジュールで書く方向で頑張ってみます。
ありがとうございます!
391 :
デフォルトの名無しさん
2016/01/12(火) 02:17:52.97 ID:maRmmMSv
そんな感じだと、(きちんと書いたphpと比較するなら)cにして劇的に改善されるかというとそうでもないような
起動コストより実処理コストのほうがはるかに高いだろうし、単純文字列操作ならそりゃcより早くは無理だけど超絶遅いというわけでも
毎回データ変わるならキャッシュできない前処理しといて溜めて置くが効かない、dbの一時テーブルに放り込むのも効果は無さそう
dbは結局のところ横断的処理とインデックス・クエリキャッシュで速くしてるものと認識してる(間違ってたらすまん)
fgetcsv()->マッチ処理 を地道に繰り返させるのが一番じゃないかな
それか、アップロード前に、ある程度クライアント側でなんとか処理コストを負担してもらってから、アップロードしてもらうとか
もちろん生csvでアップロードするかzipなりなんなりで圧縮するかの検討も含めて
392 :
デフォルトの名無しさん
2016/01/12(火) 02:20:04.00 ID:maRmmMSv
あ、クライアント側で〜〜というのは、javascript等で処理してもらうのをイメージしてる
要件が許すなら、Web画面外で前もってやってもらうというのも視野に入るけど、多分NGだよね
393 :
デフォルトの名無しさん
2016/01/12(火) 07:08:56.03 ID:ThtAP2yF
>>385 2つのファイルで行の順序がズレず、余分行や欠行もなく行数も同一である
なら、双方のファイルから1行ずつ読みだして比較。
そうでないなら、DBに保存して、行数分selectを発行する。
(実際はプリペアドステートメントにしたほうが速い)
追加要求がたびたび発生しそうな案件だから、簡単に変更や拡張ができる
ように設計したほうがいいよ。
394 :
デフォルトの名無しさん
2016/01/12(火) 21:37:41.39 ID:BHuMfNei
>>6 俺は実験ですべてのデータをテキストファイルで運営するスレッド型掲示板作ったことがあるよ。
あくまでDBを使わずに掲示板を作る目的なんでセキュリティは考慮してないけど。
395 :
デフォルトの名無しさん
2016/01/12(火) 21:44:01.01 ID:j9E6SHov
どう考えてもDB使わないほうがセキュリティにはいいだろ
396 :
デフォルトの名無しさん
2016/01/12(火) 21:52:38.55 ID:ThtAP2yF
このスレのレベルは、開発者から超ド素人まで
幅広いなw
397 :
デフォルトの名無しさん
2016/01/12(火) 22:10:21.80 ID:maRmmMSv
>>393 「ちょっと気になった」レベルですまんけど
お題は2種のアクセスログのマージ、ポイントはメモリ量(&メモリ消費とトレードオフになるだろう処理速度)
2csvが同一でない、すなわち多少の順序の入れ替わりや欠落を想定する場合、dbを使うメリットってどんなのがあるか教えて欲しい
不整合データ出現頻度がかなり高くない限りは単純にcsvそのままテキスト処理した方が早い気が
マッチ処理によってはdbに入れる場合にDATETIMEでの大雑把な抽出じゃ足りず連番を付さなきゃいけなくなる可能性もありそう
398 :
デフォルトの名無しさん
2016/01/12(火) 23:38:39.57 ID:e9M6aAal
俺ならDB使うわ
なぜなら俺よりはるかに賢い人達が作っているものだから
そんで結合してNOT EXISTとかで抽出すると、俺がプログラムするより高速なはず
399 :
デフォルトの名無しさん
2016/01/12(火) 23:43:01.72 ID:3XnH8q7I
単に行jマッチングをするだけなら、そんなに時間は掛からないと思います。
DB化するにしても、まず読まないといけないわけですし。
400 :
デフォルトの名無しさん
2016/01/13(水) 06:35:59.06 ID:+CxjbDbc
>>399 DB使ったことねーだろ。
インデックスって知ってるか?
>>398 同意。
NOT EXISTSでもいいけど、テーブルの差分を返すSQLがあるよ。
それ使った方が速いしスマートかもしれません。
>>385 php.ini の設定変更してmemory_limit = -1 にすりゃ全部メモリに
入るだろうけど、そういうわけにはいかないのかな。
それが可能なら、array_search()使えばDBのインデックスもどきを内部的に
実装してるからDB使う場合とあまり変わらないかもね。
てか、そもそも50MBのファイルをアップロード時点で処理するのって、応答時間が
掛かりすぎないか?
そういう重たい処理は、ふつうCronで処理するものだと思うけど・・・
401 :
デフォルトの名無しさん
2016/01/13(水) 07:39:27.56 ID:WrMLUeLs
> array_search()使えばDBのインデックスもどきを内部的に実装してる
ここ詳しく
確かに2回目以降のarray_search()探索は1回目より速い
しかし、ためしに1000件程の文字列値を持つ一次元配列で試したところ以下の性質があった
・1回目の探索以降に探索対象の配列に値を追加し、この追加した値を2回目に探索しても速い
・2回目の探索に、配列の末端にある値を探索した時、先頭のそれと比べて遅い
これ裏で何やってんだ
参照渡しのアレみたいに内部で$haystackの形式変えてんのか?
402 :
デフォルトの名無しさん
2016/01/13(水) 07:49:01.15 ID:WrMLUeLs
ただ、いずれにしてもインデックスはデータを追加したとき・インデックス張り直したときに
検索しやすいように実データとは別に木を作っておいて、木に値を追加してってるわけだよな
データ追加に比べて探索のほうが回数が多い時のための前処理みたいなもんだ
初期コストが必要になるしメモリ消費は多くなる、php上でやるなら基本は全部メモリ展開になる
そういう意味じゃ、複雑なマッチ条件の内容にもよるが基本は使い捨てになる
>>385案件だと
> DB化するにしても、まず読まないといけない
これもあながち間違ってるとはいえないと思う
何より、複数ユーザの同時実行を想定するとメモリ枯渇が怖いっつーお題の解決になってないように見えるんだが
403 :
デフォルトの名無しさん
2016/01/13(水) 12:08:46.40 ID:GdxfeXkR
DB否定する人ってDB使ったことない人が多い気がする
404 :
デフォルトの名無しさん
2016/01/13(水) 12:24:13.73 ID:JFAXc2hz
DB大好きだけどDBに夢を見すぎている人がいるとも思うよ。
NOT EXISTSや、テーブルの差分を返すSQL(MINUSのこと?)とか言ってる時点でちょっと優れない。
DBの話に終始するようならそこだけ切り出してDBスレどぞ。
405 :
デフォルトの名無しさん
2016/01/13(水) 12:40:39.91 ID:e/b/EzMv
50M程度のファイル読むのに躊躇しすぎカワユスなあwこれが杞憂というやつかw
406 :
デフォルトの名無しさん
2016/01/13(水) 15:01:04.23 ID:HEyl8rAG
DBは顧客IDなど、キーが滅多に追加されない場合に、
ハッシュ・2分探索木などで、インデックスを作っておいて、
全件検索せずに、マッチを見つける
同じデータで、DBを何回も利用するほど、得できる。
1回しか利用しないのなら、インデックスを作るだけ損
Java8なら、ParallelStream で並行処理もある
407 :
デフォルトの名無しさん
2016/01/13(水) 16:19:56.99 ID:2tOFPV9B
>>393 > そうでないなら、DBに保存して、行数分selectを発行する。
正気か?
データ1行1KBだとして、50MBだと50,000行。
1回のクエリが1msで終わったとして、ループ完了に50秒。
> 追加要求がたびたび発生しそうな案件だから、簡単に変更や拡張ができる
> ように設計したほうがいいよ。
お前のような奴が設計するとか、悪夢だわ。
408 :
デフォルトの名無しさん
2016/01/13(水) 16:27:39.54 ID:2tOFPV9B
手元にあった某ログファイルをコピーして3行書き換えたものをdiffしたら、
log1 41,483,486 bytes
log2 41,483,487 bytes
$ wc -l log1
163537 log1
$ time diff log1 log2 > /dev/null
real 0m2.391s
user 0m2.305s
sys 0m0.086s
16万行のうち数行異なるファイルの差分を取得するのは、2.5秒程度。
最悪Cで書けば、50MBのファイルのマージは、5秒くらいでいけるんじゃね?
409 :
デフォルトの名無しさん
2016/01/13(水) 16:33:08.27 ID:2tOFPV9B
ちなみに、データベースにそのまま読み込んでUNIONすると、
union.sql:
> select log from log1
> union
> select log from log2
$ time psql logtest < union.sql > /dev/null
real 0m10.212s
user 0m2.860s
sys 0m0.030s
"Unique (cost=165536.24..167171.61 rows=327074 width=256)"
" Output: log1.log"
" -> Sort (cost=165536.24..166353.93 rows=327074 width=256)"
" Output: log1.log"
" Sort Key: log1.log"
" -> Append (cost=0.00..18187.48 rows=327074 width=256)"
" -> Seq Scan on public.log1 (cost=0.00..7458.37 rows=163537 width=256)"
" Output: log1.log"
" -> Seq Scan on public.log2 (cost=0.00..7458.37 rows=163537 width=256)"
" Output: log2.log"
appendしてsortしてuniqueかけるから、結構時間がかかる。
ひょっとすると、処理がオンメモリからこぼれる可能性もある。
やっぱ、クライアントコードでゴリゴリやるのがいいと思うよ。
410 :
デフォルトの名無しさん
2016/01/13(水) 16:57:49.81 ID:7o+WZppE
ジェネレーターってどういう時使うんですか?
return arrayでよくないですか?
411 :
デフォルトの名無しさん
2016/01/13(水) 17:00:44.86 ID:4eNfFdO0
上のみたいなデッカイリストで差分だけ見つけたいときに、
でっかいarray作ってから渡してたらメモリとかやってられねーときとか
412 :
デフォルトの名無しさん
2016/01/13(水) 17:39:31.39 ID:7o+WZppE
>>411 なるほど
確かにメモリ使用量そんなに増えてませんでした
自分のコードとにらめっこして使い所考えてみます
ありがとうありがとうー
413 :
デフォルトの名無しさん
2016/01/14(木) 00:25:10.38 ID:0bFJzjCb
414 :
デフォルトの名無しさん
2016/01/14(木) 10:09:12.40 ID:Bial8fVP
>>413 データベースの処理時間の期待値を考えるための参考資料として。
データの概要とマージするための条件と、マージ内容そのものがわかれば、もっとましな例を出せるけどね。
ちなみに、
>>409と同じ処理をコマンドで実行するとこんな感じ。
$ time cat log1 log2 | sort | uniq > /dev/null
real 0m8.280s
user 0m8.648s
sys 0m0.398s
415 :
デフォルトの名無しさん
2016/01/14(木) 15:13:18.82 ID:rIlJqcFi
php”全体”の速度測るのってどうやったら良いんだろ
最近のやつ色々分かれてて個別は取れてもトータルの取り方がわからにゃい
MVCの何処にセットしたらええんや
416 :
デフォルトの名無しさん
2016/01/14(木) 15:38:19.91 ID:Bial8fVP
417 :
デフォルトの名無しさん
2016/01/14(木) 15:42:21.61 ID:wEFFxXmv
>>415 リクエスト受け手から、応答を返すまでに掛かった時間ですか?
必要なときに、処理先頭と最後にマイクロ秒単位で時間埋め込んだ
ログ出力させてます。呼び出したDB処理時間もこれで見てます。
418 :
デフォルトの名無しさん
2016/01/14(木) 16:17:52.10 ID:J51KUMti
419 :
デフォルトの名無しさん
2016/01/14(木) 16:34:37.08 ID:Bial8fVP
>>418 適当にググってトップ付近のやつを紹介してるから・・・。
というのは置いといて、Apache以外でPHPを動かしたことないんだが、ApacheだとたぶんPHPは
preforkで運用されるからtopとか見ても情報取れない。
プロダクトコードに手を入れるなら、Controllerの入り口と出口にログ出力を埋め込めばいいかな。
420 :
デフォルトの名無しさん
2016/01/14(木) 16:45:00.66 ID:0bFJzjCb
>>415 どのフレームワーク使ってるか知らんが、大抵公開ディレクトリのindex.php
421 :
デフォルトの名無しさん
2016/01/14(木) 22:20:43.40 ID:W8TTeLfV
【OS名】無料サバなのでわからない、多分cent
【PHPのバージョン】7.0.
【連携ソフトウェア】MySQL
【質問内容】
配列の超初心者
array (
'option_list' =>
array ( 0 =>
array ( 'year' => '2015', 'month' =>
array ( 0 => '1', 1 => '2', 2 => '3', 3 => '11', ), ),
1 =>
array ( 'year' => '2014', 'month' =>
array ( 0 => '3', 1 => '4', 2 => '5', ), ), ),
'default_list' =>
array ( 0 =>
array ( 'year' => '2011', 'month' =>
array ( 0 => '10', 1 => '11', ), ), ), )
処理を年度ごとにするため下記のように一行づつベタ書き処理したいのですが
上手くいきません、よろしくお願いします。
$data_array["option_list"]?????["year"][]="2015";
$data_array["option_list"]?????["heat"][]="1";
$data_array["option_list"]?????["heat"][]="2";
422 :
デフォルトの名無しさん
2016/01/15(金) 00:30:13.73 ID:CUVZOqT7
上に書いてある配列を作るための処理を書きたいの?
423 :
デフォルトの名無しさん
2016/01/15(金) 04:32:14.61 ID:fuu0EYM6
424 :
421、423
2016/01/15(金) 06:27:44.59 ID:fuu0EYM6
ごめんなさいできました
配列に配列を追加する方法を理解してませんでした
$data_array_push=array('year' =>$year_value,'month' =>$heat_value);
$data_array["option_list"][]=$data_array_push;
・
・
・
425 :
デフォルトの名無しさん
2016/01/15(金) 14:21:11.81 ID:1U61S03a
print_rだと余計なものくっついてて見にくいので 指定したオブジェクトより下層にあるもののみを表示してほしいんですが
そんな機能ってないですよね
426 :
デフォルトの名無しさん
2016/01/15(金) 14:33:07.07 ID:1U61S03a
eachしてからはき出せばいいのか すみません自己解決しました
427 :
デフォルトの名無しさん
2016/01/16(土) 04:32:43.29 ID:SpjLOc5M
Win7-HomeでPHP5
Q)GIFアニメなどを送受信ボタンとしてデータのやりとりをするには?
Webに有るサンプルなどではフォームのボタンを使う事例は多く有りますが、自作のGIFアニメを
ボタンにする例が見つからず(調べるためのキーワードが分からず)困っています。
例えば
http://techacademy.jp/magazine/4955 において、
「下記の[※]を〜として、PHPを○○とする」という感じです。
<?php
$comment = $_GET[‘comment’];
echo $comment;
?>
<!DOCTYPE html>
<html lang = “ja”>
<head>
<meta charset = “UFT-8”>
<title>フォームからデータを受け取る</title>
</head>
<body>
<h1>フォームデータの送信</h1>
<form action = “index.php” method = “get”>
<input type = “text” name =“comment/“><br/>
<input type = “submit” value =“送信/“> ←-------[※]
</form>
</body>
</html>
宜しくお願い致します。
428 :
デフォルトの名無しさん
2016/01/16(土) 05:00:57.31 ID:+P8je4Tg
img要素のクリックイベントでなんかすればよいのでは
429 :
デフォルトの名無しさん
2016/01/16(土) 05:04:30.37 ID:ib7wNkVh
430 :
デフォルトの名無しさん
2016/01/16(土) 05:06:37.61 ID:At1JCi6a
単純に
<input type = “submit” value =“送信/“>
↓
<input type="image" src="button.gif" alt="送信" />
でいいんじゃね?
つうか"とか全角になってるし/の位置はおかしいし
そのサイトに書いてるのコピペしたのなら違うとこ参考にしたほうがいい
とりあえずPHPは全く関係ない
HTMLのお勉強からだな
431 :
デフォルトの名無しさん
2016/01/16(土) 05:33:00.36 ID:1Q480V2w
この全角ダブルクォーテーション君しばしば見かけるがなんなんだろう
ホンマモンか
432 :
デフォルトの名無しさん
2016/01/16(土) 13:30:12.57 ID:ycK3j5Q3
欧米人は日本語などわからないから、
プログラミングでは、半角英数字記号だけを使え
433 :
デフォルトの名無しさん
2016/01/16(土) 18:10:30.91 ID:Xv931QNY
434 :
デフォルトの名無しさん
2016/01/16(土) 18:16:48.45 ID:pR1crJRD
>>プログラミングでは、半角英数字記号だけを使え
リテラル以外では、ね。
435 :
デフォルトの名無しさん
2016/01/16(土) 18:22:52.82 ID:hHanXJse
436 :
デフォルトの名無しさん
2016/01/16(土) 18:23:48.17 ID:hHanXJse
あと変数名とかクラス名も日本語使っていいやろ?
437 :
デフォルトの名無しさん
2016/01/16(土) 18:26:54.72 ID:1Q480V2w
ええで
エンコーディングが変わったとき面倒なことになるからお勧めはしない
いないとは思うがsjisで書いてるともっと面倒なことが起きることもある
438 :
デフォルトの名無しさん
2016/01/16(土) 18:43:01.73 ID:FL+/Wrts
漢字の変数名使える言語ってあるけど、あれって便利。
439 :
デフォルトの名無しさん
2016/01/16(土) 18:50:28.09 ID:yAzflN6j
440 :
デフォルトの名無しさん
2016/01/16(土) 19:06:25.51 ID:Xv931QNY
441 :
デフォルトの名無しさん
2016/01/16(土) 21:43:18.62 ID:6VsbZM5h
<?ピーエッチピー
でOK牧場
442 :
427
2016/01/16(土) 23:25:10.11 ID:SpjLOc5M
>>428-430 ありがとうございます。
全角「“」は僕も気になりましたが、まあ意味は通じると思い原文のまま書きました。
443 :
デフォルトの名無しさん
2016/01/17(日) 06:05:33.96 ID:tuQ8TFb+
twitterのoauth認証で
認証してユーザー情報を取得するところまでできたけど
ページa
↓
loginページ
↓
ツイッターの認証ページ
↓
callbackページ
↓
ここからページaに戻るにはどうすればいい?
444 :
デフォルトの名無しさん
2016/01/17(日) 06:31:00.34 ID:eeO9wv+/
環境: WinXP,Apache 2.0,PHP5,Firefox43.0.4,jquery-1.12.0.min.js
問題点: JavaScriptでPHPに引き数を渡し実行しブラウザでアラート表示したいがエラーになる
【参考サイト】
http://boorin-gohan.net/blog/archives/31 http://www.gravity-works.jp/gravica/web/js/003063.html http://goo.gl/hvnGQR (短縮URL)
ある操作で実行される関数 abc() でtest01.php に引数を渡し実行させるように下記のコードを書きました。
function abc(){
console.log("Log= ");// これは実行できた
$.ajax({
type: 'POST',
url: 'test01.php',
data: "testValue=value01",
success: function(data) {
alert(data);
}
});
}
一方、PHP側(test01.php)は
<?php
$str = $_POST["testValue"];
$str = 'this is - ' . $str . ' - test';// 上手く行けば this is -value01- test とアラート表示
echo $str;
?>
しかしこれだと
というエラーになり、ここでの7行目の3文字目とは
の通り「?」の箇所です。
test01.php の実行自体は問題ありません。 どうすべきでしょうか?
445 :
444
2016/01/17(日) 06:40:29.48 ID:eeO9wv+/
(若干訂正)
PHPの7行目の3文字目は、上のコードでは「5行目の3文字目」になります。
※画像ではコメントと改行が入って行数が増えている
446 :
デフォルトの名無しさん
2016/01/17(日) 07:28:51.60 ID:psLvHeOf
どうすればいいか、どうすべきか?
443・444どっちもphpの問題じゃねーべ
447 :
デフォルトの名無しさん
2016/01/17(日) 07:30:01.97 ID:pgS1e5He
DOMインスペクタがPHPコードのエラーを表示している訳がなかろう
とりあえず通信が成功しているかどうかのチェックからだな
448 :
デフォルトの名無しさん
2016/01/17(日) 09:45:39.51 ID:zq5NkK7o
>>444 test01.phpをhtmlと同じフォルダに入れて
url: './test01.php',
にしてみ
449 :
デフォルトの名無しさん
2016/01/17(日) 18:18:52.47 ID:FIJ4pea6
ajax()のデフォルトフェッチはjQueryがMIMEタイプに基づいて判別するってことらしいけど、
JSONと判断されてエラーになった、でも、error()メソッドが実装されてないので処理できまっせ―ん
なんじゃないの?
$.ajax({
type: 'POST',
url: 'test01.php',
data: "testValue=value01",
dataType: "html",
success: function(data) {
alert(data);
}
});
あたりにすればよいのでは? というか、error()メソッドは必ず実装しよう、とうか、そろそろsuccess、errorは止めて、done()、faile()に書き換えよう
450 :
デフォルトの名無しさん
2016/01/17(日) 18:22:32.25 ID:FIJ4pea6
faile()… fail()の間違いです…
451 :
デフォルトの名無しさん
2016/01/17(日) 18:24:31.54 ID:qybhyeyY
jQueryに頼るからそうなるんだよ
まずはXMLHttpRequestで実装してみて
どういう風になってるか把握するとこから努めないと
スレ違いのスレで質問しちゃうことになる
452 :
デフォルトの名無しさん
2016/01/17(日) 18:41:31.69 ID:FIJ4pea6
スレ違いは間違いないからあほ!なんだけど、
もう流石にいい加減、jQueryに頼るから〜ってレスはやめてください。
今時、使わないほうが希少種です。
453 :
デフォルトの名無しさん
2016/01/17(日) 23:34:49.35 ID:zq5NkK7o
454 :
デフォルトの名無しさん
2016/01/17(日) 23:38:10.87 ID:TOtPxQji
>>452 >今時、使わないほうが希少種です。
それを裏付けるデータがあったら教えて
455 :
444
2016/01/18(月) 00:25:55.47 ID:0QY1hoYK
>>446-449 ありがとうございます。
先ず、448さんの方法では変わりはありませんでした。
次いで449さんの方法ではアラートは出ますが
となってPHPコードがそのまま出ます。
※「要素が見つかりません」のエラーは相変わらず出ます。
・・・なおご指摘のエラー対処として、success: function(data) { alert(data); } の次に
error:function(XMLHttpRequest, textStatus, errorThrown) {
alert( "エラーです" );
} を書きましたがこの表示は出ませんでした。
447さんの「通信が成功しているかどうかのチェック」とはどのようにすべきでしょうか?
上のerror:function() でも良いのでしょうか?
あと、jQueryですが、HTMLファイルと同じ場所に設置し、HTML内で
下記のように書いています。
<script type="text/javascript" src="jquery-1.12.0.min.js"></script>
引き続きアドバイス頂ければ幸いです。
456 :
デフォルトの名無しさん
2016/01/18(月) 00:29:59.99 ID:xorwc0MR
PHPが実行されてないからajax以前の問題
457 :
デフォルトの名無しさん
2016/01/18(月) 00:30:33.95 ID:IY21gL9C
スレ違いを指摘されてもなお続ける面の皮
458 :
デフォルトの名無しさん
2016/01/18(月) 01:19:09.43 ID:l+ZoI4wj
順番にやった方がよくね
(1)test01.php 単体でなんか表示、「$POST not set」とか
(2)caller.php 適当に作って、POSTでtest01.phpを呼ぶ
またはcurlでtest01.php呼ぶ
(3)jqueryのAJAXで呼ぶ
459 :
デフォルトの名無しさん
2016/01/18(月) 01:48:22.55 ID:9UQJyg5l
>>455 一足飛びにajaxに手を出すから何がおかしいのかさっぱりわからない状態になる。
本来すべき質問はtest01.phpが実行されないのはなぜですか?になるべき段階だよ。
当初のajaxは単に枯れた技術の組み合わせであり、まずは個別の技術の基礎を学んでからのほうが楽。
460 :
デフォルトの名無しさん
2016/01/18(月) 04:42:55.55 ID:CuSa9hFS
他いけよ。
461 :
デフォルトの名無しさん
2016/01/18(月) 04:56:15.81 ID:0dQdxBDN
まさにくだらない質問なので適切ではないか?(名推理)
462 :
444
2016/01/18(月) 05:10:12.79 ID:0QY1hoYK
分かりました。 移動します。
463 :
444
2016/01/18(月) 06:04:37.86 ID:0QY1hoYK
(移動しますと書きましたが)
>>453 すいません見落としていました。 取り急ぎ丸コピペ実行しましたがやはりダメでした。
PHPの文字コードに問題があるのでしょうか?UTF-8での保存は確認しています。
464 :
デフォルトの名無しさん
2016/01/18(月) 06:28:53.94 ID:l+ZoI4wj
>>463 458のように順番に試した方がいいぞ
PHP単体、多分動かないんじゃね
HTMLのフォームからPHPへ
ajaxでPHP呼ぶ
465 :
デフォルトの名無しさん
2016/01/18(月) 06:53:10.94 ID:qA3C76Ke
#ajax.html
<!DOCTYPE html><html><head><meta charset="UTF-8">
<script type="text/javascript" src="
http://code.jquery.com/jquery-1.12.0.js"></script>
<script>
function abc(){
console.log("Log= ");// これは実行できた
$.ajax({
type: 'POST',
url: 'test01.php',
data: "testValue=value01",
success: function(data) {
alert(data);
}
});
}
$(document).ready = abc();
</script>
</head><body></body></html>
#test01.php
<?php
echo $_POST['testValue'];
別にこれで問題ないけど
466 :
デフォルトの名無しさん
2016/01/18(月) 06:59:17.65 ID:fWgtaTDg
467 :
444
2016/01/18(月) 07:13:40.11 ID:0QY1hoYK
>>466 そのスレに書き込んだ後で
>>453に気付いたので報告レスしました。
もうこちらからは完全に移動します。
468 :
デフォルトの名無しさん
2016/01/18(月) 07:16:24.19 ID:fWgtaTDg
469 :
デフォルトの名無しさん
2016/01/18(月) 07:21:56.17 ID:fWgtaTDg
470 :
デフォルトの名無しさん
2016/01/18(月) 07:59:24.20 ID:l+ZoI4wj
>>469 最近、jQueryやめてAngular1.4使ってるよ
ソースコードが短いし、読みやすくていい
検索してリスト表示、選択してフォームで編集して更新
って画面ばかり有るんだけど、40行くらいからで書ける
労力はDB側に掛けたいのでありがとうございます
471 :
デフォルトの名無しさん
2016/01/18(月) 08:44:44.49 ID:fWgtaTDg
472 :
デフォルトの名無しさん
2016/01/18(月) 08:48:50.74 ID:fWgtaTDg
473 :
デフォルトの名無しさん
2016/01/18(月) 09:01:58.22 ID:4JmPqlHr
スッドレ違いって言ってるだろ。
いい加減にしないとソースに全角空白紛れ込ませるぞ。
474 :
デフォルトの名無しさん
2016/01/18(月) 16:08:17.28 ID:hDiCYvvO
やめてください
475 :
デフォルトの名無しさん
2016/01/18(月) 16:42:28.89 ID:6kCxX3LY
バグが出たらとりあえあず全角スペースをgrep検索
476 :
デフォルトの名無しさん
2016/01/18(月) 19:17:47.17 ID:9UQJyg5l
>>467 もっかい書くけど
> 本来すべき質問はtest01.phpが実行されないのはなぜですか?になるべき段階だよ。
であり、根本的な問題はこのスレであってるし、つまりはJSスレではスレ違いであり
最終的にここに誘導される問題。
477 :
デフォルトの名無しさん
2016/01/18(月) 19:52:08.47 ID:8xjoGFUT
正確ひねくれた奴に付き合ってわざわざ普及率をぐぐったのに
さらに
>>468 かわいそす。
478 :
デフォルトの名無しさん
2016/01/18(月) 19:52:43.30 ID:8xjoGFUT
そりゃ、俺の日本語も変になるわ。
479 :
デフォルトの名無しさん
2016/01/18(月) 22:29:36.18 ID:5OTOY/q+
それも全角スペースのせいです
480 :
デフォルトの名無しさん
2016/01/18(月) 23:53:11.22 ID:fWgtaTDg
>>473 > いい加減にしないとソースに全角空白紛れ込ませるぞ。
JavaScriptは全角空白もちゃんと空白として
扱ってくれる。Unicodeだからな。
481 :
デフォルトの名無しさん
2016/01/19(火) 00:00:09.01 ID:lFJIU7vI
>>477 別に気にしてないよw
ぐぐったらデータ見つかったという事実が
俺にとっては、これからの2ちゃんの議論(笑)に便利に使えるから。
っていうのは、一部のマヌケが、今はjQueryを使わなくても
昔ほど頑張らなくてもできるという事実からjQueryは不要と言い張ってるからね。
確かにブラウザ間の互換性は高くなってDOM命令も増えたから
少しは楽になってるんだが、どう頑張ってもjQueryの生産性には勝てない。
マシン(スマホ)スペックがあがってjQuery程度は重くない状況になるに連れて
逆にjQueryでいいじゃん。ってなってるのがデータとして明らかになったから。
俺としては意外だったよ。2011年の時点でたった28.3%しか使われてなかったんだな。
もっと使われていると思っていた。そしていい加減使用率は安定しただろうと
思っていたが、まだ伸び続けているんだもんな。
jQueryはウェブプログラマにとって必須の技術やで。
サーバーサイドでどんな言語を使っていたとしてもクライアントはJavaScriptだしな。
482 :
デフォルトの名無しさん
2016/01/19(火) 00:32:20.52 ID:7OIPGD+F
Bootstrap使う→jQuery呼んでくる
Bootstrap-css-only使う→jQuery入らない
とか有るで
483 :
デフォルトの名無しさん
2016/01/19(火) 00:39:09.99 ID:lFJIU7vI
Bootstrap-css-onlyって非公式だろ?
484 :
デフォルトの名無しさん
2016/01/19(火) 01:13:06.64 ID:GX2g8B+J
> そしていい加減使用率は安定しただろうと思っていた
そのような便利なものの普及率が上がらないと考えることに違和感が
485 :
デフォルトの名無しさん
2016/01/19(火) 01:31:17.11 ID:XXCf+6mx
目先の生産性より保守性を考えた方がいいし
jQueryの吐き気がするコードよりES6の綺麗なコードのほうがいい
jQueryなんぞレガシーと共倒れして欲しい
486 :
デフォルトの名無しさん
2016/01/19(火) 02:14:16.73 ID:inrrYzR3
結局、PHPはサーバーサイドでモデル担当のREST APIだけやらせて
クライアント側はReactとかでSPAをキメるって流れなんすか昨今
487 :
デフォルトの名無しさん
2016/01/19(火) 02:23:57.74 ID:lFJIU7vI
>>484 > そのような便利なものの普及率が上がらないと考えることに違和感が
もう上げ止まったと思ってたんだよw
で、実際調べてみたら、まだまだ増え続けていたと。
>>485 > jQueryの吐き気がするコードよりES6の綺麗なコードのほうがいい
保守性はjQueryを使ったほうが高いよw
そもそもES6と比べているのがわかっていない証拠で、
jQueryはDOMライブラリなのだから、DOM APIと比べるものだ。
488 :
デフォルトの名無しさん
2016/01/19(火) 02:29:26.85 ID:lFJIU7vI
>>476 > クライアント側はReactとかでSPAをキメるって流れなんすか昨今
正確には、
クライアント側はReactとかでSPAをキメるって流れなんすよ!と
意識高い系が言っているが、まあ一向にその流れにはならないよね。
っていう状態。
そもそもウェブ標準技術が素晴らしくて
HTMLとCSSと簡単なJavaScriptで大抵のことができる。
ガラッと全部変えてしまう必要はないわけよ。
殆どのサイトは、サーバーサイドで動的にページを作って
クライアントではHTMLとCSSにちょこっと動きをつけるだけ十分だからさ。
489 :
444
2016/01/19(火) 02:45:50.89 ID:pnQSq0aL
SVGでも上手くいったので報告のみ。 有難うございました。
490 :
デフォルトの名無しさん
2016/01/19(火) 02:49:30.98 ID:GX2g8B+J
>>488 > ウェブ標準技術が素晴らしくて
いや、根本的なところでいっぱいいっぱいよ。
無理やり取り繕ってそれなりに動いてるけど、Keep-Aliveなんてその象徴で。
てか、WebProg板に戻ればその程度の話もありかもしれないけど、さすがにスレ違いじゃないかな。
491 :
デフォルトの名無しさん
2016/01/19(火) 04:47:52.36 ID:XXCf+6mx
ajaxの話してんじゃねーのか
そもそもsuccessなんておおざっぱすぎんだよjQueryは
XHRなんざHTTPステータスコードで振り分けるのが普通なのに
結局それをjQueryでやるとすると基礎的なXHRの使い方知らないといけないわけで
492 :
デフォルトの名無しさん
2016/01/19(火) 05:35:51.01 ID:Nqy5RA/d
最近バッチをphpで書く頻度が高くなってきたんだけど
バッチをphpで書くうえでなんか気をつけることとか気にしたほうがいいことある?
493 :
デフォルトの名無しさん
2016/01/19(火) 09:07:06.77 ID:EHMwOvRq
とくにありませぇん!
494 :
デフォルトの名無しさん
2016/01/19(火) 10:48:56.24 ID:dn2qavdB
共用サーバーにてTOPコマンドを見るとPHPのプロセスが5分近く経過しているものが複数あります。
また、それらが、CPUを90%以上消費していてサーバーが重くなっている原因のようです。
共用サーバーで、PHPのプロセスが5分ほど必要となる処理はどのようなものなのでしょうか?
迷惑メールの配信や何か実験的な処理をしているのか気になります。
495 :
デフォルトの名無しさん
2016/01/19(火) 20:23:40.98 ID:ZQY3FJjH
どうもPDOのバグっぽいのにハマって2時間悩んだ。
少し上の方に、配列をserialize()してDBに突っ込む質問会ったけど、
ただのプログレス処理用のテンポラリなので検索の必要ないからそうしてみた。
自前の、型付きのDataModel、DataMapperで構成されたORマッパーを使ってるんだけど、
もうかなり使い込んでるので変なバグはなくなっているはずだった。
んだけど、そのserialize()されたデータを格納したレコードをfetchしてDataModelにマップする段階でエラーになる。
最初は何が起こってるのか謎だったんだけど、どうやらserializeされた配列を含んだSELECTでエラーになるということが分かった。
stdClassなら普通にフェッチできるんだけど、マジックメソッドを使った自前のクラスで
serializeデータをマッピングした次のカラムの処理でエラーになる。
おかしいのが、該当箇所をtryで囲んでいるのにcatchされず、Uncaught Exceptionになる。
フェッチの段階でDataModelが破壊されてるんじゃないかといった動作。
納期が近いので、あんまり悩んでる時間もないからstdClassでフェッチするコードに変えたけど、
時間を見つけてもう少し検証してみるつもり。
関係なさそうだけど、
http://blog.tokumaru.org/2015/12/joomla-zero-day-attack-caused-by-php.html?m=1 こんなのもあったし、どうもserialize()は安心できない。
496 :
デフォルトの名無しさん
2016/01/19(火) 20:31:38.19 ID:ZQY3FJjH
497 :
デフォルトの名無しさん
2016/01/19(火) 20:44:35.13 ID:ZQY3FJjH
498 :
デフォルトの名無しさん
2016/01/19(火) 20:48:30.62 ID:ZQY3FJjH
Postgreはbyteaか… 考えてなかったな。
今回はJSONにして突っ込むことにしょう。
以上、日記帳でした。
499 :
デフォルトの名無しさん
2016/01/19(火) 20:57:33.40 ID:JQKWuCIL
>>496 シリアライズされたものはテキストじゃないからなあ
500 :
デフォルトの名無しさん
2016/01/19(火) 21:02:10.36 ID:ZQY3FJjH
>シリアライズされたものはテキストじゃないからなあ
始めてserialize()使ったのでしらなかたですよ。
501 :
デフォルトの名無しさん
2016/01/19(火) 21:58:53.71 ID:KFDDwRTN
リアルタイムチャットを作成中なのですが、参加中の誰かがレスした場合参加者全員にそのレスが自動で反映されるようにしたいのですがどういった方法があるでしょうか
502 :
デフォルトの名無しさん
2016/01/19(火) 22:59:04.94 ID:GX2g8B+J
>>501 WebSocketとかそれの基礎になった技術とか。
503 :
デフォルトの名無しさん
2016/01/19(火) 23:16:50.74 ID:MQlDHK62
ユーザーに専用クライアントアプリを使ってもらうのか、
それともWebブラウザでそれを行うのか、どちらを選ぶ?
504 :
デフォルトの名無しさん
2016/01/19(火) 23:19:29.59 ID:Nqy5RA/d
IRCを選ぼう!!もしくはJavaアプレットを選ぼう!!
505 :
デフォルトの名無しさん
2016/01/20(水) 11:05:28.88 ID:ylux4+BR
WebSocket使えない前提で
よくあるLAMP構成でServer-sent eventsで実装したことあるよ
WebSocket使うかオワコンFlashのsocketでやるかを強く勧めるけど
506 :
デフォルトの名無しさん
2016/01/20(水) 20:02:08.98 ID:IcUtd/ZM
websocketでいきます!
で、何からしたらいいんですか!
507 :
デフォルトの名無しさん
2016/01/20(水) 20:32:28.30 ID:IcUtd/ZM
できたらphp以外の言語使いたくないんですが、それでもwebsocketでいけますか!?
508 :
デフォルトの名無しさん
2016/01/20(水) 20:43:16.73 ID:VBqz4pFt
509 :
デフォルトの名無しさん
2016/01/20(水) 21:27:09.88 ID:IcUtd/ZM
もうmetaタグのリフレッシュでいいかな\(^o^)/オワタ
510 :
デフォルトの名無しさん
2016/01/20(水) 22:53:43.22 ID:CHSb/c/Y
>>508 IEは10から対応になってるのか
>>509 無駄に通信量を増やすのはよくない
せめてAjaxかServer-sent eventsを使おう
511 :
デフォルトの名無しさん
2016/01/20(水) 23:35:37.97 ID:IcUtd/ZM
>>510 AjaxとSSEってJavaScript使いますよね?
php以外使いたくないんです…
ていうかJavaScript使わないと実現は無理なんですか(´;ω;`)
512 :
デフォルトの名無しさん
2016/01/20(水) 23:40:18.30 ID:jXFo1zab
クライアントサイドにPHP使えないし
513 :
デフォルトの名無しさん
2016/01/20(水) 23:44:44.00 ID:mgGaJ5jA
phpがというよりHTMLの仕様がそういう代物だから仕方ない
だからこそJavaScriptで無理やりhttpコネクションを保持し続けたり別のポート使って接続保持したりするやり方が生まれた
ぶっちゃけIRCで良いと思うがな
514 :
デフォルトの名無しさん
2016/01/20(水) 23:45:11.20 ID:ylux4+BR
当たり前だよおまえさん
WebSocketAPI呼び出しもブラウザ使う以上JavaScript使うしかないし
ブラウザ側でDOM操作行わないとチャットログの追加反映も出来ないし
metaやajaxの場合PUSHだからリアルタイムとはほど遠い
515 :
デフォルトの名無しさん
2016/01/20(水) 23:45:30.07 ID:mgGaJ5jA
HTMLじゃねーHTTPだが察してくれるだろうきっと
516 :
デフォルトの名無しさん
2016/01/20(水) 23:45:48.81 ID:ylux4+BR
PUSHじゃんばくてPULLね
517 :
デフォルトの名無しさん
2016/01/20(水) 23:49:18.74 ID:VBqz4pFt
>>511 >>490で書いたとおり。必死で取り繕ってるんですよ。
HTTPにこだわる理由はないよ。
518 :
デフォルトの名無しさん
2016/01/21(木) 00:29:57.24 ID:ONMay5Kd
環境:Win7でPHP5.3でFirefox
日時の文字列化が出来なくて困っています。
$now = new DateTime();
$now->format("Y/m/d H:i:s") ;// 「年/月/日 時:分:秒」に変換
$now = strval($now);
これで下記の記述だと
$str = ' Hello time is: '.$now;
echo $str;
ブラウザのアラートで次のようになります
Catchable fatal error
Object of class DateTime could not be converted to string
変換できないならということでstval()無しにしても同じです。
どうすべきでしょうか?
519 :
デフォルトの名無しさん
2016/01/21(木) 00:38:31.31 ID:Sip1K5kx
なぜdate('Y/m/d H:i:s', time())を使わない
520 :
518
2016/01/21(木) 00:52:13.07 ID:ONMay5Kd
>>519 どうも。
本を見ると「2038年問題を考慮すればDateTime()を使うよろし」とあったので。
date('Y/m/d H:i:s', time())ではなく、time()抜きのdate('Y/m/d H:i:s')で上手く行きました
521 :
デフォルトの名無しさん
2016/01/21(木) 01:07:19.69 ID:nDfkJ148
>>518 どこにお住まいですか?
もしかしたら、先頭にtimezone設定がいるかもしれない。
date_default_timezone_set('Asia/Tokyo');
$s = $now->format("Y/m/d H:i:s") ;// 「年/月/日 時:分:秒」に変換
$str = ' Hello time is: '.$s;
522 :
518
2016/01/21(木) 01:10:40.33 ID:ONMay5Kd
>>521 どうも。 修羅の国です。
formatの前に$now = new DateTime(); は不要ですか?
523 :
デフォルトの名無しさん
2016/01/21(木) 01:15:05.18 ID:nDfkJ148
524 :
デフォルトの名無しさん
2016/01/21(木) 01:20:36.77 ID:Sip1K5kx
>>520 time()があると上手く行かなかったのか?
525 :
518
2016/01/21(木) 01:24:47.41 ID:ONMay5Kd
>>523 そげなこつであやまらんでよかばい(修羅語)
>>524 Yes。 何か別のエラーがでたばい
526 :
デフォルトの名無しさん
2016/01/21(木) 01:26:26.57 ID:Sip1K5kx
>>525 ほー、そんなパターンがあるのか
そのエラー具体的に教えて欲しい
527 :
518
2016/01/21(木) 01:36:48.64 ID:ONMay5Kd
528 :
デフォルトの名無しさん
2016/01/21(木) 01:47:55.71 ID:nDfkJ148
おやすみなさいw
529 :
デフォルトの名無しさん
2016/01/21(木) 04:14:34.62 ID:ONMay5Kd
530 :
デフォルトの名無しさん
2016/01/21(木) 11:30:53.00 ID:BtAPEIYX
531 :
デフォルトの名無しさん
2016/01/21(木) 19:22:10.47 ID:/hdV4L1Y
532 :
デフォルトの名無しさん
2016/01/21(木) 19:33:13.20 ID:RqTcmjez
>>531 PHPを使うプログラマは馬鹿と呼ばれるけど実際に馬鹿
533 :
デフォルトの名無しさん
2016/01/21(木) 20:24:08.77 ID:82AC7ZvL
独学で仕事にしようと思ったけど結局javascriptやらjqueryがないとトレンドの業務ができない
534 :
デフォルトの名無しさん
2016/01/21(木) 23:18:26.17 ID:YJDaPBmR
「PHPしか使えないプログラマ」なんて存在するの?
普通JavaScript触ってからくるよね
535 :
デフォルトの名無しさん
2016/01/21(木) 23:22:40.36 ID:nDfkJ148
DBも扱えるだろうし、出来ないと困るだろう
536 :
デフォルトの名無しさん
2016/01/21(木) 23:34:58.46 ID:kJ+YJJJK
>>531 先生方に意見を頂き今日からJavaScriptとjQueryの勉強も始めました!
でも何故?そんなのって…シどいよ(´;ω;`)
なんでみんなPHP嫌いなの…
537 :
デフォルトの名無しさん
2016/01/21(木) 23:43:27.96 ID:ONMay5Kd
>>530 実際に試しましたが、空白が出力されました
538 :
デフォルトの名無しさん
2016/01/21(木) 23:46:32.63 ID:UpyxYgr4
>>537 とりあえずflockのページ見てみたら
539 :
デフォルトの名無しさん
2016/01/22(金) 00:12:21.68 ID:51lNvTOS
>>536 Go Languageスレで、GoとPHPの速度比較してた人が居たけど
フレームワーク無し、素のPHPでPDOで1000行読んで返す、ならGoとの差は出ない模様だった
しかしCakePHPとJavaやASP.NETの速度差なんてのは比較しちゃいけないわけで
PHPの居場所を理解して使うならPHPでいいんだけど
やばい戦場にのこのこPHPerが出て来たら「危ないから引っ込んでろ!」て言われるかと
540 :
デフォルトの名無しさん
2016/01/22(金) 06:07:16.81 ID:3hsiJLGg
フロント側とサーバ側で違う役割を持てるからjavascriptはWeb扱うなら知っといて損はないというか知っとくべき
jQueryやらnode.jsやらを使うかどうかは人次第
他の言語とphpの比較とかphp叩きはだいたいは関わるだけ時間の無駄 安全圏から何かを叩きたい奴がやってんだから
んなことに関わるヒマがあるなら少しでも多くリファレンス読んどけ
541 :
デフォルトの名無しさん
2016/01/22(金) 06:31:41.76 ID:67V/2UXe
PHPは遅いなどと言ってるやつのほとんどは、
1日数ヒットしかなく速度なんてどうでもいい
Webサイトを作っているんだろうな。
542 :
デフォルトの名無しさん
2016/01/22(金) 08:48:43.91 ID:O2WCZeV/
うちは外部用のサイトはaspxで作ってるな
社内用がPHPです
543 :
デフォルトの名無しさん
2016/01/22(金) 12:13:38.71 ID:O2WCZeV/
そう言えば、PHPは遅いとか言うならApacheの拡張モジュール作ればいいんすよ
これが最速だよね
544 :
デフォルトの名無しさん
2016/01/22(金) 12:23:49.71 ID:ycxOqfJb
リニューアル案件で、今までのシステムが遅いからJavaに変えてっていうシステムいくつか見たけど
遅い原因はほぼDB周り
1日数万アクセスくらいで遅いなら作り方が悪い
545 :
デフォルトの名無しさん
2016/01/22(金) 12:48:10.55 ID:YiBMDULZ
速度の問題というよりも知識の範囲が狭く浅いのが問題なんだよ
知識がないとJavaScriptやSQLでやるべきことをPHPでやったりしておかしなことになる
546 :
デフォルトの名無しさん
2016/01/22(金) 12:54:43.21 ID:1bAFX+Fn
結論:PHPerは問題が多い
547 :
デフォルトの名無しさん
2016/01/22(金) 13:36:25.03 ID:5aCqopti
最近の出来ないプログラマの特徴は
cakephpが得意です
railsを使ってました
jqueryなら任せてください
sqlは苦手です。って言うかアプリでやるべき
2個当てはまると危険
548 :
デフォルトの名無しさん
2016/01/22(金) 14:43:53.75 ID:51lNvTOS
表をソートしたいなら、その度ごとにORDER BYを変えて呼び直せばいいし
なんか行がたくさんあるデータを集計したいらしいけど、PHPで頑張ればいいよね、PHP最高!
(ノンフィクション)
549 :
デフォルトの名無しさん
2016/01/22(金) 18:57:32.94 ID:ruYA0l5t
ジョークが難しすぎるぞ
550 :
デフォルトの名無しさん
2016/01/22(金) 20:24:05.09 ID:n/aRHbCp
サーバ側アベレージ0.15秒以内で出力してるけど、
クライアント側がリッチ過ぎて、トータル2.5秒くらいかかってる…
なんとかせねば…
551 :
デフォルトの名無しさん
2016/01/22(金) 20:30:01.01 ID:n/aRHbCp
jQueryでDOM操作してれば無理ないかな…
552 :
デフォルトの名無しさん
2016/01/23(土) 00:25:31.72 ID:PP7i7twY
mag.js ってのがくっそ速いらしいよ
DOM操作し終わってから描画させるみたいな
553 :
デフォルトの名無しさん
2016/01/23(土) 02:59:56.35 ID:7sr7TKAy
PHP7
554 :
デフォルトの名無しさん
2016/01/23(土) 12:30:25.27 ID:PP7i7twY
543がいい事言ったと思って
WebエンジニアのためのApacheモジュール プログラミングガイド
技術評論社でPDF買ったわ、これなにげにWebの最終兵器やろ
555 :
550
2016/01/23(土) 14:14:28.49 ID:avATldjo
>>552 JSに限らないんだけど、いつ消えてしまうかわからないのは採用しづらいかな。
jQuery使う理由はもう、完全に普及してしまっている事と、
もう一つ、メモリリークしないようにjQueryが裏で管理してること。
昔まだjQueryが普及する前にネイティブなJSで超リッチクライアント作ってた時は
メモリリークとの戦いでもあった。
jQueryはちょっと遅いけど、そういう煩わしさから開放されるからってのも大きい。
でも、mag.jsも見てみます。ありがとう。
556 :
デフォルトの名無しさん
2016/01/23(土) 14:42:10.94 ID:kHaPTSNf
>>554 それ随分古いけど大丈夫か?
基本的なところは互換性があるだろうけど, Apacheのリファレンスの方が役に立つんじゃ?
557 :
デフォルトの名無しさん
2016/01/23(土) 15:23:07.38 ID:PP7i7twY
>>556 ビルドの説明とか全然役に立たないので
読み終わったら現行のリファレンス見ますw
558 :
デフォルトの名無しさん
2016/01/23(土) 15:56:03.67 ID:cXyJ8RA7
お前ら脱線しすぎだろう
559 :
デフォルトの名無しさん
2016/01/23(土) 19:16:12.79 ID:+Ht1pL5B
今、作りたいもの作りながらPHPやらJavaScript勉強中なんですがみなさんはどんな勉強してますか?あと一日どれくらいの時間勉強してますか
560 :
デフォルトの名無しさん
2016/01/23(土) 19:22:22.02 ID:cXyJ8RA7
わからないとこはリファレンスひいたりサンプル見たりするけど
その作業を勉強というなら数分程度じゃね
561 :
デフォルトの名無しさん
2016/01/25(月) 14:10:14.53 ID:8/faLYqO
初めまして
くだらない質問で申し訳ないのですが、以下をご教授願います。
【OS名】FreeBSD 9.1-RELEASE-p24 amd64
【PHPのバージョン】PHP 5.4.45 (cgi-fcgi)
【連携ソフトウェア】MySQL,phpmyadminで管理
【質問内容】
以下のコードを実行時にデータが3回INSERTされてしまいます。
また、INSERTされた内容にはpasswordの値がNULLではないが空で入ってしまいます。
INSERTを一回だけにするためにはどこを変更したらいいでしょうか。
また、DBにINSERTされるデータが空になってしまうのはなぜでしょうか。
動作の流れとしては、別のページでPOSTされたデータを読み込んで、
prepareを作りbindしてexecuteするという流れです。
//トランザクション開始
mysqli_query($link,"begin") or die('トランザクション開始に失敗しました');
/*prepared statment の格納*/
$sql = "insert into members(userid, password, name, email) values (?, ?, ?, ?)";
/*プリペアを作る*/
$stmt = mysqli_prepare($link, $sql) or die ('プリペア送信に失敗しました。SQL:' . $sql);
echo mysqli_error($link);
//パラメータの送信
mysqli_stmt_bind_param($stmt,'ssss', $input_userid, $input_password, $input_name, $input_email) or die ('パラメータ送信に失敗しました。:' . $stmt);
echo mysqli_error($link);
//sql実行
mysqli_stmt_execute($stmt) or die('クエリ実行に失敗しました');
$result = mysqli_stmt_execute($stmt);
mysqli_stmt_close($stmt);
}
if ($result) {
mysqli_query($link, "commit");
mysqli_close($link);
}
以上よろしくお願いいたします
562 :
デフォルトの名無しさん
2016/01/25(月) 15:04:15.45 ID:/RjUrVS5
563 :
デフォルトの名無しさん
2016/01/25(月) 15:52:26.43 ID:8/faLYqO
>>562 ありがとうございます!
早速そこ消してみたところ、一回になりました。
3回出てたのは結局原因不明でした。(もしかしたら勘違いかもしれません)
$input_password
の中身はここに入る前のphpファイルで確認ページとして表示させているので入っていると思われます。
表示させて、そのままhidden属性付けて再度今回のファイルにPOSTしています。
参考URLまでありがとうございます。
早速確認します!
564 :
デフォルトの名無しさん
2016/01/25(月) 16:25:33.36 ID:/RjUrVS5
同じようにしてるはずのnameやemailが入ってて
passwordだけ入ってないってのはおかしいんだよね
まぁ処理的にいえばnameやemailと違ってハッシュ化したりするだろうから
そこで何か問題が発生してる可能性もあるけどエラー出るだろうし可能性は薄そう
POSTデータ受け取った時点では同じようなデータのはずだから
単純に勘違いやタイプミスによるパラメータ名の間違いとかだと思うけど
565 :
デフォルトの名無しさん
2016/01/25(月) 16:27:29.75 ID:8/faLYqO
>>564 そうですよね。
nameにpassword属性が入っていたら仕様上そうなるのでは何て勘ぐってました。
確認し直します!
566 :
デフォルトの名無しさん
2016/01/25(月) 17:13:43.36 ID:8/faLYqO
>>564 お陰様で解決しました。
name=となるところが別のものになっておりました。
先ほどお教えいただいたトランザクションの件なのですが、
さくらのレンサバを使っているためMysqlのverが5.5のみでmysqliのトランザクション処理がかけられませんでした。
567 :
デフォルトの名無しさん
2016/01/25(月) 17:41:32.04 ID:Zv/OVgae
トランザクションが効かないのはMySQLのバージョンのせいじゃなくて
DBエンジンがMyISAMだからだな
innoDB使えばできるけど、さくらの共有だと使えなかったかもしれん
568 :
デフォルトの名無しさん
2016/01/25(月) 17:47:01.43 ID:xvjEE6gT
5.5なら、innoDB使えるってある
569 :
デフォルトの名無しさん
2016/01/26(火) 10:03:17.54 ID:ME4Z0Y1L
570 :
デフォルトの名無しさん
2016/01/26(火) 10:36:28.11 ID:F6G3cWEU
571 :
デフォルトの名無しさん
2016/01/26(火) 11:34:21.82 ID:ME4Z0Y1L
>>570 ありがとうございます!
こっちで書き直します。
572 :
デフォルトの名無しさん
2016/01/28(木) 10:37:36.66 ID:bnZ8ZSTV
&を&に、#を#に置換したい
ただし直接文字参照およびいずれかの形式の数値文字参照を構成している場合は置換しないで見逃す
こういうときどうする?
さっきうっかり無限ループやらかしちゃって、とりあえず変換後の文字列を探して
見つけたら退避して、本番の置換をやって、んで退避してたら書き戻すってやり方で書いたけど無駄な処理書いてる感がすごい
573 :
デフォルトの名無しさん
2016/01/28(木) 10:39:55.95 ID:bnZ8ZSTV
おおっとエスケープされないでそのまま使われるのか
>>572の一行目は
&を&に、#を#に置換したい ってことで
574 :
デフォルトの名無しさん
2016/01/28(木) 10:52:20.43 ID:WHRX6JWq
>>572 正規表現置換
preg_replace('/&(?!(?:[a-zA-Z]+|#(?:x[0-9a-fA-F]+|[0-9]+));)/', '&', $source);
preg_replace('/(?<!&)#|#(?!(?:x[0-9a-fA-F]+|[0-9]+);)/', '#', $source);
575 :
デフォルトの名無しさん
2016/01/28(木) 11:04:35.24 ID:O9yJj40f
#はそのままでいいだろう
あとはhtmlspecialcharsのdouble_encodeに任せる
576 :
デフォルトの名無しさん
2016/01/28(木) 11:08:10.23 ID:WHRX6JWq
double_encodeのが賢いな
577 :
デフォルトの名無しさん
2016/01/28(木) 11:36:56.17 ID:bnZ8ZSTV
やっぱ正規表現になるよなあ…対象ごとに正規表現作らなきゃになるが
>>575 すまんが&・#と実体参照はただの例ということで。他に良い例を思いつけなかった
578 :
デフォルトの名無しさん
2016/01/28(木) 20:09:24.92 ID:bEHcAZHo
579 :
デフォルトの名無しさん
2016/01/28(木) 20:41:37.33 ID:bEHcAZHo
>ただし直接文字参照およびいずれかの形式の数値文字参照を構成している場合は置換しないで見逃す
この要件満たしてなかったか。ゴメン。
580 :
デフォルトの名無しさん
2016/01/28(木) 21:20:31.38 ID:A2fwmBan
おにゃーたち、難しく考え過ぎじゃないにゃりん?
> &#などを参照に置き換えたい
> ただし直接文字参照およびいずれかの形式の数値文字参照を構成している場合は置換しないで見逃
せばいいにゃりん?
だったら、まず、最初の文字列をhtmlspecialchars_decode()でデコードしちゃうにゃりん。
そうすると、すでに参照してある文字はなくなるにゃりん。
そうしたら晴れて、全部参照に置き換えればいいにゃりん。
かんたんにゃりん。
581 :
デフォルトの名無しさん
2016/01/28(木) 21:23:32.33 ID:A2fwmBan
html_entity_decode()のがいいかもしれないにゃりん。
まぁ、とにかく最初にデコードしちゃうにゃりん。
582 :
デフォルトの名無しさん
2016/01/28(木) 22:21:43.46 ID:jwTH7mtp
求人見てたらPHP8を使っている会社があるらしい
583 :
デフォルトの名無しさん
2016/01/28(木) 23:16:19.07 ID:bEHcAZHo
584 :
デフォルトの名無しさん
2016/01/29(金) 05:50:44.40 ID:zq/7Qxwy
PHP7いうほど早くないな
HHVMと僅差であるようなアピールしてたけど
HHVMのほうがだいぶ強い
PHP7のほうがスコアがあがる分野もあるんだろうけど
585 :
デフォルトの名無しさん
2016/01/29(金) 06:09:40.56 ID:jWh3F8zy
前もってdecodeするくらいなら
>>575で十分(
>>575の時点で要件と関係ないhtml特殊文字もエスケープされる副作用があるが)
前処理としてdecodeなんてしてしまうと、要件上は無視されそのままにしておかれるべき文字列が変換されてしまう
double_encode=falseにすれば&#x23;なんて文字列が対象に存在していた場合に#に変わってしまうし、
double_encode=true のままならば同様に#があった場合に&#x23;に変わってしまう
html_entity_decode()はさらにその上に、&でいえば&・&・&全てが&に書き換えられる副作用が追加される
かんたんどころか問題をややこしくしてるだけでベストアンサーには程遠いぞ
586 :
デフォルトの名無しさん
2016/01/29(金) 12:35:24.25 ID:pZmKfdLa
やりたいことが明確じゃないから答えが出ない
587 :
デフォルトの名無しさん
2016/01/29(金) 23:43:56.83 ID:7uBSKy8U
&・&・&が混在するのがOKな仕様なんかあるわけないにゃりん
588 :
デフォルトの名無しさん
2016/01/30(土) 03:01:17.64 ID:QsqBSaNz
混在したらNGにする理由は?
589 :
デフォルトの名無しさん
2016/01/30(土) 08:11:37.64 ID:epuD8EY9
try catch したいのに よく分からん所でスローされたのが ららうぇるたんが勝手にキャッチしちゃって取れない
困ったニダどうしたら良いニダ
590 :
デフォルトの名無しさん
2016/01/30(土) 09:17:24.99 ID:zTm7zc0r
初心者はPHPみたいな言語化から始めろって言われているのに、javaから始めてしまったから動的型付け言語が使えない体になってしまった
591 :
デフォルトの名無しさん
2016/01/30(土) 09:23:14.26 ID:uSsEMeLq
逆に考えるんだ、全てを忘れてアセンブラを勉強し直せばいいさと考えるんだ
592 :
デフォルトの名無しさん
2016/01/30(土) 13:13:16.11 ID:Kv8tLPuU
>混在したらNGにする理由は?
仕事でやってる成果物で例えば、
ですます調と、である調が混在してる文書をみたことあるにゃりん?
ポップ調とゴシック調が混在してるプロダクトを見たことあるにゃりん?
常識で考えるにゃりん。
593 :
デフォルトの名無しさん
2016/01/30(土) 13:15:36.78 ID:Pd2sH7Ui
>>590 初心者にはVisual F# から仕込んで、関数型言語から入らせてみたらどうなるのかと思ってる
594 :
デフォルトの名無しさん
2016/01/30(土) 15:03:03.55 ID:YcCkZwc8
>>592 >ですます調と、である調が混在してる文書
普通にあるよね
本文はですます調のときでも箇条書きはである調だから混在はする
595 :
デフォルトの名無しさん
2016/01/30(土) 19:00:26.72 ID:Kv8tLPuU
>本文はですます調のときでも箇条書きはである調だから混在はする
つまりおにゃーは、
違うシークエンスである事を自覚しているにもかかわらず
同じ処理を適用してしまうクソグラマだって自分で認めたってことだにゃ?
596 :
デフォルトの名無しさん
2016/01/30(土) 19:05:01.61 ID:Kv8tLPuU
シークエンスの区別がつかなくて同じ処理を適用してもらうことは普通あるにゃりん。
でも、そこが本文であるか箇条書きであるか区別がついているにもかかわらず、
混在すると判断して同じ処理をする間抜けはそうそういないにゃりん。
597 :
デフォルトの名無しさん
2016/01/30(土) 19:11:11.12 ID:Kv8tLPuU
どういうことかっつーと、
> &を&に、#を#に置換したい
> ただし直接文字参照およびいずれかの形式の数値文字参照を構成している場合は置換しないで見逃す
こういう要求が出るのは、「そもそもの処理の不備による乱れ」を統一したいってことだと思うにゃりん。
それが正しいかどうかはわからないけど、常識的に考えればそういうことにゃりん。
統一すれば、出力時のエスケープ処理が楽になるからだにゃりん。
なのに、「本文はですます調のときでも箇条書きはである調だから混在はする 」とか、
意図して乱れている物を例に上げてくるアホさかげんがいかにもクソグラマだなーって思うにゃりん。
ID:YcCkZwc8 は間違いなくクソグラマだにゃりん。
598 :
デフォルトの名無しさん
2016/01/30(土) 20:20:27.28 ID:I1KbDvFD
仕様書の書き方教えて
みんな納品の時どのくらいまで仕様書書いてる?
あんま知らないけどDBとかユーザー用とかサーバー用とか?
599 :
デフォルトの名無しさん
2016/01/30(土) 20:29:43.25 ID:uSsEMeLq
こいつらナニイテンダって人のために書いておくと
例えばブログでブログ特有の構文を<>タグで書いてもらいたい、
ブロガーには実体参照で記号そのものも使わせたい、あと一部のタグは使用不能にしたい
とかそんな要求仕様だな
>>598 その職場の先例に合わせるこれしかない 下手に自分色出すと問題しか出ない
600 :
デフォルトの名無しさん
2016/01/30(土) 21:38:42.71 ID:YcCkZwc8
>>597 これ文字参照の話なの?
文字参照をどうしたいの?
601 :
デフォルトの名無しさん
2016/01/31(日) 08:06:10.45 ID:/mHEoggP
まともな例出せないくせして最初から必要な情報出さない
後出しで質問する質問者はスルーしときゃ荒れないだろ
自分の糞コードが恥ずかしいからって晒すのためらってるようじゃだめ
602 :
デフォルトの名無しさん
2016/01/31(日) 09:47:49.04 ID:KPaaybse
荒れてるというより糞な半コテが自己弁護に必死
603 :
デフォルトの名無しさん
2016/01/31(日) 11:30:04.76 ID:sgVbB9a1
カレントディレクトリの絶対パス名を取得したいです。
dirname(__FILE__); ってやってる人が多い気がしますが、
realpath('./'); でもいいのでしょうか?
604 :
デフォルトの名無しさん
2016/01/31(日) 13:19:08.18 ID:Xrot3YZy
>>597 よそのHTML拾ってきて表示したいが、エスケープ漏れがあるといやだし、かといって2重エスケープはしたくない
そんな話かと思ってた。
なので俺は混在NGにする必要はないと思ってたよ。
まぁ
>>586で書いたのがすべてなんだけどね。
>>603 前者はカレントディレクトリの絶対パス名を取得したいためのコードじゃないよ
php foo/bar/それ.php
605 :
デフォルトの名無しさん
2016/01/31(日) 16:28:37.23 ID:ypr+2CdM
>荒れてるというより糞な半コテが自己弁護に必死
>>585 あたりが、自分のロボさ加減を取り繕うと必至にゃりんw ロボにゃりんw
606 :
デフォルトの名無しさん
2016/01/31(日) 17:02:37.49 ID:ypr+2CdM
>俺は混在NGにする必要はないと思ってたよ。
っつーか、混在してると後工程がめんどさいにゃりん、何事においても。
607 :
デフォルトの名無しさん
2016/01/31(日) 17:34:51.03 ID:1eonSL82
既に終わってる話題でよくもまぁそこまで熱くなれるなお前ら
608 :
デフォルトの名無しさん
2016/01/31(日) 17:52:48.09 ID:Xrot3YZy
>>606 その方針なら、文字参照の形式だけ統一して他はほったらかしというのはそれこそNGじゃないの?
609 :
デフォルトの名無しさん
2016/01/31(日) 18:54:52.32 ID:ypr+2CdM
>その方針なら、文字参照の形式だけ統一して他はほったらかしというのはそれこそNGじゃないの?
なにを言ってるかわからにゃいにゃりん。
他ってなんのことにゃりん? おにゃーの頭の中の事はわからないにゃりん。
610 :
デフォルトの名無しさん
2016/01/31(日) 19:50:45.01 ID:Xrot3YZy
意味的には同等でも異なる部分があると後工程がめんどくさくなるってことでしょ。
それならHTMLにおける意味的には同等だが記述に複数の方法がある部分は全部統一しておかないと
まずいんじゃないかってことだけど。
611 :
デフォルトの名無しさん
2016/02/01(月) 10:47:05.86 ID:VYL+zi+x
>>607 このアホがほかのスレに出張らないよう引きつけているんだよ
612 :
デフォルトの名無しさん
2016/02/01(月) 17:25:21.05 ID:JKmN8dcj
catch(Exception $e)
catch(\)
613 :
デフォルトの名無しさん
2016/02/01(月) 17:26:16.84 ID:JKmN8dcj
>>612 SHIFT押したらENTERも押しちゃった
catch(Exception $e) ←とれない
catch(\Exception $e) ←とれる
(´・ω・`)なぜ?
614 :
デフォルトの名無しさん
2016/02/02(火) 11:48:36.37 ID:BIakHIlk
ネームスペースの中なんじゃないかな
Exceptionはグローバルだからね
615 :
デフォルトの名無しさん
2016/02/02(火) 20:23:38.27 ID:ieeiFhus
class A {
private $a = 'a';
public function a() {
echo <<<EOF
<div>{$this->a}</div>
EOF;
}
}
見やすいようにこんな感じにインデント(全角空白=タブとして)したいんですが、
このままだとunexpected end of fileのシンタックスエラーが出てしまいます。
また出力する<div>はタブ1つであって欲しいので、
class A {
private $a = 'a';
public function a() {
echo <<<EOF
<div>{$this->a}</div>
EOF;
}
}
実際はこうしないと思った通りにはならないと思うのですが、
view分離しろとかはなしで、どうにかこの問題回避できませんか? 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
616 :
デフォルトの名無しさん
2016/02/02(火) 20:27:40.75 ID:eonpvW6e
$var =
' <div>
'.$this->a.'
</div>';
って感じで書くことはある
617 :
デフォルトの名無しさん
2016/02/02(火) 20:30:18.80 ID:uPAFV3qO
class A {
private $a = 'a';
public function a() {
echo "\t<div>{$this->a}</div>";
}
}
でがまんしろ。
618 :
デフォルトの名無しさん
2016/02/02(火) 20:37:30.90 ID:ieeiFhus
>>616-617 ありがとうございます。
なんか設定したり方法はないかと思いましたが、
やはり無理そうですね。
619 :
デフォルトの名無しさん
2016/02/02(火) 20:53:19.67 ID:eonpvW6e
まあ趣味の領域に近いもんがあるけど ""より''を、<<<EOTより<<<'EOT'をおすすめ
そしてドットを書き忘れてsyntax error
620 :
デフォルトの名無しさん
2016/02/02(火) 21:24:31.68 ID:uPAFV3qO
そういう独りよがりはチラシの裏にでも書いてろ
621 :
デフォルトの名無しさん
2016/02/03(水) 00:15:57.70 ID:5HFqu0rj
>>618 ヒアドキュメントを使いたいなら受け入れるしかない
622 :
デフォルトの名無しさん
2016/02/03(水) 03:22:21.38 ID:DjhvDVsj
mvcのviewのとりだしどうやってるんだ。DBから配列で取り出してタグ含むstrにするかそのままviewにもってきてforeachでぶんまわすかどっちがいいんだ。
623 :
デフォルトの名無しさん
2016/02/03(水) 06:11:48.56 ID:P9o3G82X
好きにしろ
個人的にはobjectでとってきたのをassignしてイテレータでぶん回す
624 :
デフォルトの名無しさん
2016/02/03(水) 07:50:05.06 ID:H1cabHU7
なぜテンプレートライブラリ使わないん?
625 :
デフォルトの名無しさん
2016/02/03(水) 12:53:04.68 ID:DjhvDVsj
それは勉強のためだ。
626 :
デフォルトの名無しさん
2016/02/03(水) 14:23:22.66 ID:wFC58MkD
627 :
デフォルトの名無しさん
2016/02/03(水) 14:23:48.43 ID:wFC58MkD
ひっどい誤爆した(´・ω・`) 本当に申し訳ない
628 :
デフォルトの名無しさん
2016/02/03(水) 14:59:40.80 ID:DjhvDVsj
629 :
デフォルトの名無しさん
2016/02/03(水) 15:13:02.86 ID:KkuXsvhB
葱と聞くとモヒ毛を連想する
630 :
デフォルトの名無しさん
2016/02/03(水) 15:29:08.68 ID:loonPEtr
そもそも読めない
631 :
デフォルトの名無しさん
2016/02/03(水) 15:31:03.49 ID:0IWSoG05
初音ミクが持ってる野菜だな
632 :
デフォルトの名無しさん
2016/02/03(水) 20:54:55.95 ID:DjhvDVsj
すいかだな
633 :
デフォルトの名無しさん
2016/02/04(木) 16:44:00.20 ID:sJspRTsI
$log = 'test.txt';
$fs = filesize($log);
while (1) {
if (filesize($log) !== $fs) {
break;
}
sleep(1);
}
こんなコードを書いて、
サイズを変えたファイルを上書きしたのですが、
breakに達しません。
何がいけないのでしょうか?
634 :
デフォルトの名無しさん
2016/02/04(木) 16:51:43.09 ID:6nmxHVWh
if文がおかしいと思ったら、その条件の値を表示してみればいいと思うよ
ところでサイズを変えて上書きの部分はどこにあるの
635 :
デフォルトの名無しさん
2016/02/04(木) 16:57:53.25 ID:HV3ClFNE
わかりません
636 :
633
2016/02/04(木) 16:58:43.50 ID:QkZKzuQ3
>if文がおかしいと思ったら、その条件の値を表示してみればいいと思うよ
breakが出来なくてどうやって確かめたらよいかいまいちわからないです。
デバッグのやり方がよくわからないので・・・すみません。
>ところでサイズを変えて上書きの部分はどこにあるの
これはコードでやってるわけではありません。
ローカルでコマンドラインとサーバにFTPでアップロードの2つ試したのですが、
前者はローカルでtest.txtを開いて編集して保存しなおしただけで、
後者はFTPに変更したtest.txtを上書きアップロードしてファイルの中身を変更しました。
637 :
633
2016/02/04(木) 17:07:30.04 ID:QkZKzuQ3
デバッグ方法ちょっと調べたらわかったので、コード変えてみました。
$log = 'test.txt';
$fs = filesize($log);
while (1) {
$fs2 = filesize($log);
if ($fs !== $fs2) {
break;
}
echo $fs2."\n";
flush();
sleep(1);
}
ファイル変更してもサイズは変わっていないようです。
638 :
デフォルトの名無しさん
2016/02/04(木) 17:13:58.57 ID:geGkSm23
639 :
デフォルトの名無しさん
2016/02/04(木) 17:15:01.40 ID:6nmxHVWh
640 :
デフォルトの名無しさん
2016/02/04(木) 17:15:52.40 ID:6nmxHVWh
おっとリロードしてなかった
641 :
633
2016/02/04(木) 17:34:10.55 ID:QkZKzuQ3
>>638-639 ありがとうございます。
whileの直後に呼び出してみたらうまく出来ました。
助かりました。
642 :
デフォルトの名無しさん
2016/02/05(金) 07:30:52.91 ID:jh8JKIE0
ファイル存否等をキャッシュされないようにすることはできる?
直前にclearstatecache()とか別のファイルをfilesize()とかラッパーを作るとかはナシで
643 :
デフォルトの名無しさん
2016/02/05(金) 18:39:52.76 ID:koewOf1m
これからPHPの勉強をしたいのですが、勉強に使うPCもよくあるLAMP環境に
した方がいいのでしょうか?もしそうであれば、お薦めのディストリビューションを
伺えたら幸いです。
どうぞよろしくお願い致します。
644 :
デフォルトの名無しさん
2016/02/05(金) 20:29:26.45 ID:GqRwyzFC
>LAMP環境にした方がいいのでしょうか?
しなくていいです
形だけLAMPにしたところで細かな設定は本番環境と違うだろうし
OSで差が出るコードはあるけど少しの修正で済むことがほとんど
>お薦めのディストリビューション
情報多いやつUbuntuとかCentOSとか
もし入れるならVM上に
645 :
デフォルトの名無しさん
2016/02/05(金) 20:33:24.51 ID:koewOf1m
>>644 詳しくありがとうございます。大変助かりました。
646 :
デフォルトの名無しさん
2016/02/05(金) 23:16:59.57 ID:mCjJfYzi
PHP環境?
PHP Tools for Visual Studioがさいつよ
647 :
デフォルトの名無しさん
2016/02/05(金) 23:27:12.32 ID:koewOf1m
>>646 初めて聞いたので、今から調べてみます。ありがとうございました。
648 :
デフォルトの名無しさん
2016/02/06(土) 08:06:37.83 ID:FHhTINlV
>勉強に使うPCもよくあるLAMP環境にした方がいいのでしょうか?
今はバーチャルボックスとかで仮想環境作れるから
パソコンは使いやすい高性能な好きなものを使えばいいね。
649 :
643
2016/02/06(土) 09:04:18.04 ID:C63QrKD/
>>648 スペックに余裕はあるので、仮想で試してみます。ありがとうございました。
650 :
デフォルトの名無しさん
2016/02/06(土) 13:58:24.12 ID:oh9ShPhj
651 :
デフォルトの名無しさん
2016/02/06(土) 15:00:23.88 ID:jvs4URC7
実行もIISで出来るしな
もうgdbに耐えられる脳力がないので(震え声)
652 :
デフォルトの名無しさん
2016/02/06(土) 15:54:59.13 ID:e6NyRoxJ
phpの勉強開発でgdbなにに使うん?
653 :
デフォルトの名無しさん
2016/02/06(土) 22:56:10.93 ID:sofbIKE8
VSのいいところはデバッガが優秀なことだ。
VSが否定されそうだから他のデバッガ名を出そう!っていう本気の震え声だろ。
654 :
デフォルトの名無しさん
2016/02/06(土) 23:25:43.76 ID:oXBAL5QD
開発環境は本番環境と同等もしくは近いものを用意するのが普通だろう。
本番環境が決まりさえすれば開発環境もおのずと決まる。
655 :
デフォルトの名無しさん
2016/02/07(日) 00:11:45.34 ID:Ic0iJxZy
NetBeansも頑張って設定すればデバッガ使えるかと
656 :
デフォルトの名無しさん
2016/02/07(日) 05:48:24.35 ID:iwmcN4AM
開発デバッグなんてvar_dumpとob_start関係とcuiさえ使えりゃいいよ
657 :
デフォルトの名無しさん
2016/02/07(日) 18:49:32.08 ID:twmxI98T
PHPからJSON形式でデータを受けっとた際に下のようなただの
羅列で受け取ってしまい、JSON.parse をすると下のようなエラーが出ます。
ただしい形で受け取るにはどうしたら良いでしょうか。
コードは書き込みきれないのでレスをわけさせていただきます。
始めて日が浅いもので見難いと思いますがお願いします
{"num":"11","name":"夕日","res":"夕日","time":"2016-02-07 18:35:15"}
{"num":"10","name":"夕日","res":"ok","time":"2016-02-07 18:21:24"}
{"num":"9","name":"夕日","res":"ok","time":"2016-02-07 18:13:36"}
{"num":"8","name":"夕日","res":"ゆうひ","time":"2016-02-07 18:11:59"}
{"num":"7","name":"夕日","res":"yuuhi","time":"2016-02-07 18:11:28"}
{"num":"6","name":"夕日","res":"hello hello","time":"2016-02-07 18:04:08"}
{"num":"5","name":"夕日","res":"hello world","time":"2016-02-07 18:03:16"}
{"num":"4","name":"夕日","res":"hello666","time":"2016-02-07 18:01:05"}
Uncaught SyntaxError: Unexpected token { VM42079:1
658 :
デフォルトの名無しさん
2016/02/07(日) 18:51:41.21 ID:twmxI98T
改行が多すぎて書き込めなかったので一部分になってしまいますがすいません
-php-
//レスを取得
$sql=sprintf('SELECT m.name , p.* FROM yuuhichat_membersb m , yuuhichat_postsb p
WHERE m.id=p.member_id ORDER BY p.created DESC ');
$posts=mysqli_query($db,$sql) or die(mysqli_error($db));
header(' Content-type;application:json; charset=utf-8 ' );
header(' X-Content-Type-Option:nosniff ' );
while($post=mysqli_fetch_assoc($posts)){
$res=array(
'num'=>$post['id'],
'name'=>$post['name'],
'res'=>$post['message'],
'time'=>$post['created']
);
echo json_encode(
$res,JSON_HEX_TAG | JSON_UNESCAPED_UNICODE | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP
);
}# code...
}
659 :
デフォルトの名無しさん
2016/02/07(日) 18:51:52.61 ID:twmxI98T
-javascript-
$(document).ready(function(){
//submitした時の処理
$('#form').submit(function(){
//submitをhidden
$('#post').attr('hidden',true);
$.ajax({
type:'POST',
//リクエスト先URL
url:'yuuhichat_aoipost.php',
//受け取るデータ形式
datatype:'json',
//渡すデータ
data:$('#message').serialize(),
})
.done(function(data){//成功した時の処理
if (data!=="") {//テキストエリアが空白でない場合
//文字列Thanksを表示
$('#thanks').html('Thanks!');
$('#message').val(""); //テキストエリアをクリア
console.log(data);
var res = JSON.parse(data)
console.log(res.num);
console.log(res.name);
console.log(res.res);
console.log(res.time);
})
});
660 :
デフォルトの名無しさん
2016/02/07(日) 20:04:38.30 ID:twmxI98T
すいません解決しました(´;ω;`)ブワッ
-php-
while($post=mysqli_fetch_assoc($posts)){
$res[]=array(
'num'=>$post['id'],
'name'=>$post['name'],
'res'=>$post['message'],
'time'=>$post['created']
);
-javascripy-
console.log(res[1].num);
console.log(res[1].name);
console.log(res[1].res);
console.log(res[1].time);
661 :
デフォルトの名無しさん
2016/02/07(日) 20:07:58.62 ID:8oSH0oIv
javascripyなだけにtypoだろうけど
ここも修正しといたほうが
>header(' Content-type;application:json; charset=utf-8 ' );
Content-type:application/json; charset=utf-8
662 :
デフォルトの名無しさん
2016/02/08(月) 13:27:10.97 ID:aqsYdaVU
preg_match_allの正規表現について質問です。
全角丸括弧を含む部分が一致しないのですがなぜでしょうか?
$pattern = '/(.+\n)/u'; //全角括弧がないと取り出せる(サブパターンの半角括弧のみ)
//$pattern = '/((.+)\n)/u'; //全角丸括弧に限定すると取り出せない(外側は半角、内側が全角)
preg_match_all($pattern, $row['text'], $matches);
663 :
662
2016/02/08(月) 13:29:08.45 ID:aqsYdaVU
なお、実際にはパターン内の改行¥nの後にもサブパターンがあります。
664 :
デフォルトの名無しさん
2016/02/08(月) 15:20:03.57 ID:uOXcW2mV
全角括弧以外のマルチバイト文字には一致するの?
665 :
662
2016/02/08(月) 15:38:02.35 ID:aqsYdaVU
>>664 はい。一致します。
簡易例はこんな感じなんですが。
$pattern = '/((.+\n)?(.*[0-9]{1,3}円/u'; //開く括弧をつけただけだと上手くいく
$pattern = '/((.+)\n)?(.*[0-9]{1,3}円)/u'; //閉じ括弧をつけるとなぜか上手くいかない
レコード
---------------------
(青果)
きゅうり100円
以下きゅうりの説明・・・
とまと200円
以下とまとの説明・・・
---------------------
---内のDBレコードから、説明を抜いた下記を抜き出したいのです。
(青果)
きゅうり100円
とまと200円
666 :
デフォルトの名無しさん
2016/02/08(月) 15:39:47.76 ID:E+wItWi7
''の中に \n を入れるんじゃない
うまくいく場合もあるが、検索対象文字列がCR+LFな文字列だとマッチしない
(正直いうとよくわからんけど、ただしくはマッチしなかったりする)
667 :
デフォルトの名無しさん
2016/02/08(月) 15:41:17.18 ID:E+wItWi7
閉じカッコをつけると、というのはおそらく、
正規表現パターン上カッコの「直後」に\nがきているからだとおもう
668 :
デフォルトの名無しさん
2016/02/08(月) 15:42:56.70 ID:/+8WJEI/
DBの設計が悪いとしか・・・
商品名 きゅうり
分類名 青果
値段 100円
説明 以下きゅうりの説明・・・
にすればどうってことないのに
それ正規表現書いてみてパッと見ちゃんと全てのパターンに合致してるようで
実はちゃんとできてなくて想定外の動作するパターンだよ
669 :
デフォルトの名無しさん
2016/02/08(月) 15:43:51.98 ID:HeYvCqn/
質問
↑のように、htmlのリストがあって
横のボタンを押すとこんな風に下に要素が追加されていき、ストックとして保存される。(右の削除ボタンを押すと要素がリストから削除される)
っていうのがやりたいんだけど、
現状はテキストエリアに要素を追加していく方法しか知らない(jquery)
phpを使ってファイル自体にhtml要素を保存するやり方がわからないので、上みたいにテキストエリアに溜め込んだ要素をいちいちコピぺしてメモに貼ってます…
これがブログサービスみたいにファイル自体に保存できるようになるとすごく楽なのですが、いいやり方があれば教えて頂きたいです。。
670 :
デフォルトの名無しさん
2016/02/08(月) 15:49:59.83 ID:ic8amIrj
お客様の中にエスパーはいらっしゃいませんかー?
671 :
デフォルトの名無しさん
2016/02/08(月) 15:52:23.03 ID:Gqa2+WQs
>>669 PHP関係ないね。
javascript ファイル 保存
でググれ
672 :
デフォルトの名無しさん
2016/02/08(月) 15:54:19.92 ID:HeYvCqn/
673 :
662
2016/02/08(月) 16:17:20.83 ID:aqsYdaVU
¥nは¥s(空白文字)に変更しました。
設計はたしかに悪いです。後悔先に立たず。
全角の開く括弧だけを入れた場合には上手くいく感じなのでこれで妥協します。
ありがとうございました。
674 :
デフォルトの名無しさん
2016/02/08(月) 16:55:38.17 ID:E+wItWi7
>>673 わからねーよ表現だったのはすまんが、そういうこっちゃなくて
・正規表現に渡す「\n(正規表現上の特殊文字)」と
「(preg_*などに渡る前に)phpが'\n'や"\n"を変換した結果の 0x0Aという文字」とを混同してはいけない
・全角カッコをつけるとpreg_match_all()でマッチしないのは、多分全角カッコと\nとの間に \r があることが原因なので
\nの前に\r?をつけるなり、\nを(?:\r|\n|\r\n)に変えるなり、事前に検索文字列中の \rと\nと\r\n を \nに統一しておけば良い
もっともこの場面だと1つ目のほうはたいした違いはないが
675 :
662
2016/02/08(月) 17:23:26.26 ID:aqsYdaVU
>>674 ありがとうございます!
おかげさまで上手くいきました!!
改行文字が原因だったんだと理解できました。
'/((.+)(?:\r|\n|\r\n))?(.*[0-9]{1,3}円)/u';
676 :
デフォルトの名無しさん
2016/02/11(木) 22:14:49.07 ID:QipoRGpt
多次元配列から特定のキーと値を持つものを抜き出したいのですが、
PHPの標準関数にはそのようなものがありますでしょうか?
$hoge[0] = array('x' => 0, 'y' => 0);
$hoge[1] = array('x' => 1, 'y' => 0);
$hoge[2] = array('x' => 2, 'y' => 0);
$hoge[3] = array('x' => 3, 'y' => 0);
$hoge[4] = array('x' => 0, 'y' => 1);
$hoge[5] = array('x' => 1, 'y' => 1);
$hoge[6] = array('x' => 2, 'y' => 1);
$hoge[7] = array('x' => 3, 'y' => 1);
このような多次元配列があったとして
例えば x = 2, y = 0 で検索したら、int(2)のように要素番号を返したり、
array('x' => 2, 'y' => 0) のように要素を丸ごとを返すような関数はありますでしょうか?
それともそのような標準関数は存在せず、必要であればユーザーが定義する必要がありますか?
よろしくお願いします。
677 :
デフォルトの名無しさん
2016/02/12(金) 01:00:14.83 ID:IeZ3t65+
関数中毒かよ。
678 :
デフォルトの名無しさん
2016/02/12(金) 02:23:42.48 ID:gunxxlb9
array_column()
679 :
デフォルトの名無しさん
2016/02/12(金) 07:12:49.60 ID:rtiXXuek
ビルトインの関数にそんなかんじのは無かったと思うが、
そもそも汎用の関数化させる必要あるのか?
foreachで配列走査する、そういうメソッドをclassに作る、ならわかる
680 :
デフォルトの名無しさん
2016/02/12(金) 19:36:52.31 ID:f1bzVBUX
データをDBに入れちゃえば見事にそうできるけど、たぶんそういうのを求めてるんじゃないんだよね?
681 :
デフォルトの名無しさん
2016/02/12(金) 23:38:52.33 ID:4jsvdoSw
質問失礼します。
php初心者です。
php7.0.3でLZ4圧縮プログラムを書いています。
phpでLZ4圧縮を行い、スマホのUnity(C#)で解凍を試みる予定です。
https://fossies.org/dox/horde-groupware-5.2.12/md_framework_lz4_README.html 上記のライブラリを利用しています。
圧縮解凍共にstringしか用意されていないのでバイナリ文字列を利用するのだと思いますが相違無いでしょうか?
もしそうなら、文字列からバイナリに変換する必要があり、そこがボトルネックになる可能性が高いです。
string horde_lz4_compress (string _$data_ [, bool _$high_ = false])
stringはその名の通り文字列だと思いますが、バイナリ文字列以外に入れることはできるのでしょうか?
682 :
デフォルトの名無しさん
2016/02/12(金) 23:50:59.15 ID:rtiXXuek
バイナリ文字列ってなんじゃ
phpの文字列型は元からバイト列=バイナリで、プログラム側が云々かんぬんするもんだと思ってたが
たとえば
$raw_data = file_get_contents('test.txt');
$compressed_data = gzcompress($raw_data);
ここで $raw_data, $compressed_data は両方ともstring型。$compressed_data[0] = 'A'; とかもできる
683 :
681
2016/02/13(土) 00:00:10.80 ID:Q2uxCreo
684 :
681
2016/02/13(土) 00:14:08.43 ID:Q2uxCreo
>>682 解決しました。
$raw_data = file_get_contents("aaa.bmp");
$pchBufferComp = horde_lz4_compress($raw_data);
こんな感じでバイナリも圧縮できました。
stringがバイナリも受け付けるなんて。。。
少し勉強になりました。
685 :
デフォルトの名無しさん
2016/02/13(土) 00:53:35.12 ID:9xv2Offy
686 :
デフォルトの名無しさん
2016/02/13(土) 09:24:32.22 ID:FQttHJBI
文字列のエンコードどうしようかとか、いろいろ言ってたけど、
結局 文字列は バイナリ
そのせいで 文字列処理がいまいち
687 :
デフォルトの名無しさん
2016/02/13(土) 12:09:57.26 ID:v4DWxzAN
isset( $data['name'], $data['address'], $data['phone'], $data['url'], ... )
みたいなのを短く書く方法はありませんか?
hasKey($data, ['name', 'address', 'phone', 'url', .... ) みたいに
688 :
デフォルトの名無しさん
2016/02/13(土) 13:40:27.43 ID:qkwus8u2
2ch型掲示板を作りたいのですが、DBは各スレッドごとにテーブルを作るべきでしょうか
それとも一つのテーブルに様々な書き込みを突っ込んでスレッドID検索で書き込みを表示するべきでしょうか
689 :
デフォルトの名無しさん
2016/02/13(土) 14:32:38.33 ID:V54AKmZ7
>>688 DBにしない方が良いと思う。
2chのように全てテキストで処理した方がいい。
690 :
デフォルトの名無しさん
2016/02/13(土) 15:02:16.66 ID:qkwus8u2
>>689 DBとテキストのメリット、デメリットを教えてください
691 :
デフォルトの名無しさん
2016/02/13(土) 15:15:32.78 ID:V54AKmZ7
>>690 DBのメリットはDBが動いていること
データベースの機能が使える
DBのデメリットはDBが動いていること
結構重いプロセスが動いている
692 :
デフォルトの名無しさん
2016/02/13(土) 15:16:13.71 ID:j1yDw7K+
排他処理、追記、編集、削除なんかをテキストでやるのは大変じゃないかな?
その程度、道って事はないと言うパワーある人なら良いんだけど
693 :
デフォルトの名無しさん
2016/02/13(土) 15:17:53.43 ID:9xv2Offy
phpに限った話じゃないな
2chのインターフェースの基礎部分そのままと仮定して
普通のHTMLだけでなく.dat直通信がある点やスレッド落ちの処理を考慮すると
個別テキストファイルで処理したほうがDBを用いるタイプよりも書きやすくかつ低コスト
何がやりたいか、どんな機能をつけたいか、どれくらいのアクセス数を見込むかを
イメージしきれないとどれが一番効率良いかはわからない 2ch型掲示板、とだけならなおさらだ
694 :
デフォルトの名無しさん
2016/02/13(土) 15:23:07.90 ID:qkwus8u2
2chをそのまま作るならテキストにしますが、それ以外の機能も付け加えたいんですよね…
695 :
デフォルトの名無しさん
2016/02/13(土) 15:38:00.81 ID:9xv2Offy
じゃあどんな機能を付け加えたいか全て書かないことには
>>694以外の誰も正しい答えは出せない
問題になりうるのはトランザクションとファイルロック、DB/テーブルの上限値とインデックス、それと検索関係
スレタイ検索やスレッド単位のID検索・IDごとの発言数カウント程度ならばテキスト処理だけでも余裕
スレッド/板をまたいでのレス内容での検索なんかだと、もちろんテキストでは辛いが、
DBを使えば辛くないかというと、ただ考えなしにmysqlだのsqliteだので作ってもやはり辛い、データ量・負荷の両面で
この辺りは突き詰めると検索用のDBやキャッシュの問題で、メインのデータ格納形式がテキストかDBかの問題ではなくなってくる
レスの編集削除についてはどちらかというとデータ格納形式の問題ではなくどう仕様を作りこむかの問題だな
テキスト主軸でまんまそういうの書いたことあるけど別に処理自体は辛くはなかった
696 :
デフォルトの名無しさん
2016/02/13(土) 15:42:10.67 ID:qkwus8u2
697 :
デフォルトの名無しさん
2016/02/13(土) 15:43:33.60 ID:xYQyE1c1
698 :
デフォルトの名無しさん
2016/02/13(土) 16:04:57.69 ID:qkwus8u2
699 :
デフォルトの名無しさん
2016/02/13(土) 16:19:02.87 ID:9xv2Offy
>>696 ますますもってphpが出てくる数段手前の段階じゃん
突っ込みしたいけど抑えるとして、利用者IDのDBを持たなきゃいけない、.dat直通信をさせない、
というかレスに利用者IDをつけなきゃいけない時点で.dat直通信はできないor意味がない、ならDB一択
create tableはそこまで重くないし1スレッド1tableは絶対NGというわけでもないが、1つのDB中に超大量のtableを突っ込むとだいたい加速度的に重くなる
かといって1つのtableに全データ突っ込むのもNG、よってあくまでスレッドのURLやデータの形式を2ch同様にするなら
「現行ログで1table、ある程度小分けにした過去ログを一定スパンで生成、スレッドごとの参照tableはphp側で判断させるか索引tableを別途設ける」
ってあたりで妥協することになるんじゃないかと
700 :
デフォルトの名無しさん
2016/02/13(土) 16:27:44.07 ID:qkwus8u2
ありがとうございます
消化したスレッドは静的HTMLを出力し、テーブルを削除することにします
701 :
デフォルトの名無しさん
2016/02/14(日) 00:16:48.59 ID:E44LoVTQ
>>692 排他はさすがに大したこと無いし
基本は追記しかないし
編集削除はぶっちゃけどうでもいいと思う
702 :
デフォルトの名無しさん
2016/02/14(日) 05:37:12.90 ID:FOFwYENH
さすがに何もせずにファイル書き出しだとファイル壊れるんじゃないの
703 :
デフォルトの名無しさん
2016/02/14(日) 06:31:18.46 ID:z+xAfV5k
メモリ上で行けるんちゃうの
スレッド512KB制限で、2000スレで1GB
16GBのうち15GBくらい使って30000スレ保持出来る
704 :
デフォルトの名無しさん
2016/02/14(日) 07:16:45.38 ID:+FZ9IXVT
今思えばわりとコードが滅茶苦茶だった2ch型掲示板をはるか昔に作って
いくつか実際に使ってるサイトも見たけどもれなくどのサイトも
スレッド30個もたってなかったし書き込み1スレあたり30あればいいほうだったよ
何が言いたいかというと重くなるなんて心配は不要である
705 :
デフォルトの名無しさん
2016/02/14(日) 10:22:47.53 ID:kExlflOU
最初は1テーブルで運用して、もしアクセスが増えれば
その段階で、機能やサーバーをスケールアップすればいいんだよ。
小さく作って大きく育てる。
706 :
デフォルトの名無しさん
2016/02/14(日) 10:24:39.69 ID:kExlflOU
>静的HTMLを出力し、テーブルを削除
これは良くない感じがする。
せめて、CSVとかのフォーマットされたファイルに出力した方がいい。
707 :
デフォルトの名無しさん
2016/02/14(日) 11:12:29.33 ID:8fpyVFIW
708 :
デフォルトの名無しさん
2016/02/14(日) 11:12:35.97 ID:t425P/AR
まあ同じカラムのテーブルを都度作るというのはDB始めて1ヶ月以内のやつが考えそうなことだから
その時点では設計にかかわらないほうがいい
709 :
デフォルトの名無しさん
2016/02/14(日) 11:25:56.72 ID:8fpyVFIW
710 :
デフォルトの名無しさん
2016/02/14(日) 12:18:29.51 ID:CBnheEpE
西暦を選ぶプルダウンをphpで作成しています。
目的はセレクトの初期値(selected)を2000年にすることです。
しかしchromeで試してみても永遠と処理が終わりません。どこか間違っているのでしょうか?
ちなみにif文を排除して(selectedを考えない)テストをしてみると正常に機能します。
<select name="year">
<?php optionLoop('1950', date('Y'));?>
</select>
function optionLoop($start, $end) {
for($i = $start; $i <= $end; $i++) {
if ($i = 2000) {
echo "<option value=\"{$i}\" selected>{$i}</option>";
} else {
echo "<option value=\"{$i}\">{$i}</option>";
}
}
}
711 :
デフォルトの名無しさん
2016/02/14(日) 12:24:47.43 ID:z+xAfV5k
712 :
デフォルトの名無しさん
2016/02/14(日) 12:28:58.96 ID:CBnheEpE
解決しました。
初歩的でした
713 :
デフォルトの名無しさん
2016/02/15(月) 17:20:03.08 ID:3kcdEIzb
>>699 > 1つのDB中に超大量のtableを突っ込むとだいたい加速度的に重くなる
スレ違いすまんが、これってどのDBMSの話?
714 :
デフォルトの名無しさん
2016/02/15(月) 18:59:56.78 ID:cRm62TMc
>>713 MySQLなら、MyISAMでそういう現象あったね。InnoDBでは起きないけど。
715 :
デフォルトの名無しさん
2016/02/15(月) 19:17:59.93 ID:z4NOVyYm
つーかそのレベルであればdbは不要
ファイルを使え
716 :
デフォルトの名無しさん
2016/02/15(月) 21:15:10.35 ID:zWKAZpMz
逆にこれしきでファイル使うのが不思議
そもそもファイル操作自体がめんどくさい上に
排他とか、ちゃんとやるとめんどくさい たいしたことないって言ってる人らは
ちゃんと作ったのがあるんだろうけど、初心者にはDBのほうがお手軽だと思うがなぁ
717 :
デフォルトの名無しさん
2016/02/15(月) 21:24:55.66 ID:8xHpKf96
sqlite3がとくにラクだな、PDOであっさり書ける
ファイル操作もまあ排他したけりゃfopenしてflock、必要なければfile_*_contentsでラク
本当に単純な排他でよければfile_put_contentsにLOCK_EX渡せば良いし
718 :
デフォルトの名無しさん
2016/02/15(月) 21:32:07.17 ID:zWKAZpMz
5.3.6からな・・・
719 :
デフォルトの名無しさん
2016/02/15(月) 21:33:23.56 ID:zWKAZpMz
file_put_contentsのflockのfixは5.2.6から に訂正 まあ、もうこんなふるいの使ってるのはいないとは思うけど
720 :
デフォルトの名無しさん
2016/02/15(月) 21:55:44.67 ID:8xHpKf96
レンサバで4系列だったり5系列だけど5.2.6未満だったりで新しいのに差し替えもできないって状況はあるかもな
721 :
デフォルトの名無しさん
2016/02/16(火) 10:41:43.25 ID:S8/BuvLn
EoL迎えたバージョン提供してる無責任なレンサバ業者があるのか・・・
722 :
デフォルトの名無しさん
2016/02/16(火) 13:38:15.94 ID:gzwL5Li0
スクリプト実行中に出力される標準エラー出力をファイルに吐きたい。
吐き先のファイルはスクリプト実行後にスクリプト自ら決定したいので、起動時にコマンドライン等で標準エラー出力を切り替えておくという方法はだめ。
といった場合、何か方法はある?
標準出力なら ob_start みたいのでなんとかなるかなと思うんだけど。
723 :
デフォルトの名無しさん
2016/02/16(火) 15:44:15.83 ID:X2t8ohVl
>>722 エラーの出力先そのものをファイルにすればいいんじゃない?
ini_setでerror_logをさdふぁs
724 :
デフォルトの名無しさん
2016/02/16(火) 15:54:31.47 ID:5ZzT6giH
php.ini や .htaccess を使った設定がダメなら ini_set で error_log だろうね
ini_set だとそのスクリプトに書き加える必要があるけど
725 :
デフォルトの名無しさん
2016/02/17(水) 04:53:50.91 ID:VmJWuM5t
業務用ラベルプリンタにLPDのプリントサーバが付いてまして
Windowsだと.NetのLPDLib使って
//印字コマンド作成してテキストファイルに書き込む
prn01 = new LPDPrinter("192.168.1.221", "P1", "user1")
prn01.LPR("printdata.txt")
こんな感じなんですが、PHPではどうしたもんですかね
exec()で印刷コマンド実行になっちゃう?
726 :
デフォルトの名無しさん
2016/02/17(水) 05:38:38.97 ID:VmJWuM5t
なおサーバ機もラベルプリンタも社内LAN接続です
^B3N,N,100,Y,N^FD12345678^FS
のコマンドでバーコード出す、みたいな奴ですわ
727 :
デフォルトの名無しさん
2016/02/17(水) 13:12:18.71 ID:hjf3/zF1
知らんけど要は相手のIP/Portにデータ投げつけてるってことなんでしょ
仕様に沿ってfsockopenして投げつけてー、で良いんじゃね
sourceforge漁ればライブラリあるだろうけど
728 :
デフォルトの名無しさん
2016/02/17(水) 13:45:12.75 ID:3gKfQRkK
729 :
722
2016/02/17(水) 15:25:11.11 ID:llUUpL18
>>723,724
ありがとう!
それで解決しました。
730 :
デフォルトの名無しさん
2016/02/18(木) 03:27:19.49 ID:zoJ8Qqc9
3月から、ちょっと仕事でPHPを使わなきゃならなくなりました。
通勤時間や休憩時間に読みたいので、オススメの入門書があれば教えて下さい。
オライリーの入門書あたり買っておけばいいですかね?
PHPはほぼ未経験ですが、他言語(C系とPerl)や最低限のサーバ&DB知識はあります。
731 :
デフォルトの名無しさん
2016/02/18(木) 03:48:11.25 ID:S0cvQm5g
>>730 perlとかなり似てるからperl使えるならそんな身構えなくて良い
言語仕様よりもフレームワークに慣れるべき
732 :
デフォルトの名無しさん
2016/02/18(木) 04:10:58.58 ID:9FL8VTOJ
>>730 Perl経験あるならこれとか
PHP 逆引きレシピ 第二版
733 :
デフォルトの名無しさん
2016/02/18(木) 10:43:23.35 ID:Yy6qek0a
オライリーは癖があるからあまり・・・
隙間時間の活用なら分厚いけど節が細かい「PHP 逆引きレシピ 第二版」がいい
734 :
デフォルトの名無しさん
2016/02/18(木) 10:48:35.02 ID:doOjtyi+
宣伝が熱い
735 :
デフォルトの名無しさん
2016/02/18(木) 10:51:16.87 ID:fxQrdqXF
宣伝するつもりなら自分の書いた本を勧めるだろうw
736 :
デフォルトの名無しさん
2016/02/18(木) 10:53:39.43 ID:Yy6qek0a
737 :
デフォルトの名無しさん(地震なし)
2016/02/18(木) 12:20:20.41 ID:wdtw0EIv
>phpでいうdie()みたいなものです\n\ndieはperlからパクったんだろ
738 :
デフォルトの名無しさん
2016/02/18(木) 15:35:34.00 ID:rI+7aFBn
言語でパクりパクられ論を展開する人初めて見た。すごいな
739 :
デフォルトの名無しさん
2016/02/18(木) 16:01:34.34 ID:VuYwSg7g
「あれどうやるんだっけ」でとりあえず読むのが、
PHP 逆引きレシピ 第二版
740 :
デフォルトの名無しさん
2016/02/18(木) 16:34:37.04 ID:YNvLoLbO
セッションについて質問です
同一ブラウザでセッションを複数使いたいのですが、例えば以下のような仕様にすると
session_start();
$_SESSION['user'] = $user->login($id, $password);
(loginメソッドは$idと$passwordでuserテーブルを検索して一致する結果を返すものとして)
タブ1でアカウントAでログイン
タブ2でアカウントBでログイン
そうするとどちらのタブもアカウントBの情報で上書きされてしまいます
同一ブラウザでアカウントAとアカウントBの情報を保たせるにはどうしたらよいでしょうか
741 :
デフォルトの名無しさん
2016/02/18(木) 17:01:32.17 ID:2sHGThbe
>>740 テスト目的なら、複数のブラウザ使うのをお勧め。
テスト目的じゃなく顧客要求なら、突っぱねた方が身のため。
742 :
デフォルトの名無しさん
2016/02/18(木) 19:57:23.59 ID:qSH6iKTe
>>740 session管理にクッキーを使わなければできる
743 :
デフォルトの名無しさん
2016/02/18(木) 20:46:34.74 ID:bi6jElYj
連想配列のソートで、第一に値でソートし、その値の順を保持したまま、
第二にキーでもソートできる関数、又は良い方法ってありますか?
SQLで言えば、ORDER BY value DESC, id ASC みたいな感じにしたいです。
arsort()をした後にksort()をすると値の順が保持されなくて困ってます。
値の比較結果が同じ場合には、並び順は未定義ではなく、キーでソートした状態にしたいのです。
//before
$arr = array(
744 :
デフォルトの名無しさん
2016/02/18(木) 20:47:55.11 ID:bi6jElYj
//before
$arr = array(
"aaa" => "7",
"ddd" => "5",
"eee" => "3",
"bbb" => "5",
"ccc" => "3"
);
//after
$arr = array(
"aaa" => "7",
"bbb" => "5",
"ddd" => "5",
"ccc" => "3",
"eee" => "3"
);
745 :
デフォルトの名無しさん
2016/02/18(木) 21:34:45.45 ID:doOjtyi+
フレームワークを使うならそっちで用意されてる場合がある
そうでないなら泥臭いがこういう手が使える
uksort(
$arr,
function( $a, $b ) use ($arr){
if( $a === $b ){
return strcmp( $a, $b );
}else {
return strcmp( $arr[$b], $arr[$a] );
}
}
);
746 :
743
2016/02/18(木) 22:35:20.36 ID:1SXb8ZrS
>>745 ありがとうございます。
コードまで書いてくださり感謝です。
マニュアルを調べてもイマイチわからなかったので本当助かります。
747 :
デフォルトの名無しさん
2016/02/18(木) 23:37:46.41 ID:h82pQbSa
>>741-742 ありがとうございます、テストのためですが10個ほどの同時アクセスを試みたかったためです。
やはり難しそうなので人使ったほうが早そうですね…
748 :
デフォルトの名無しさん
2016/02/18(木) 23:43:42.39 ID:VuYwSg7g
749 :
デフォルトの名無しさん
2016/02/19(金) 02:53:01.36 ID:QMo1vmnJ
>>740 たとえばIEならAlt F I で別のセッションのウィンドウを開く
750 :
730
2016/02/19(金) 03:32:12.19 ID:E/z1CaIk
PHP書籍の質問をした>730です。
レス遅くなってしまい申し訳ありません。
「逆引きレシピ」良さそうですね。
仕事帰りに本屋へ寄ってみたのですが見つからず、Amazonでポチりました。
とりあえず売ってる中で悪く無さそうだった技評の「パーフェクトPHP」を買ったので
これでも読みながら、Amazonさんの到着を待とうと思います。
751 :
デフォルトの名無しさん
2016/02/19(金) 08:50:45.64 ID:07qEWoeg
arrayを初期化するとき
$arr=array();と書くのと$arr=[];と書くことで違いはありますか?
752 :
デフォルトの名無しさん
2016/02/19(金) 09:38:37.96 ID:EEmXoaBp
>>751 100万回くらい回して時間を測ってみたら。
同じように見えて性能が違うのが結構あるから、気になったらやってみるに限る。
例えば print より echo の方が速いんだぜ
753 :
デフォルトの名無しさん
2016/02/19(金) 13:37:33.37 ID:VU2H97Ti
>>747 Webアプリ用の負荷テストツール使ったら?
最近やってないけど、以前はJMeter使ってた。
754 :
デフォルトの名無しさん
2016/02/19(金) 20:08:41.47 ID:nWsxlnl1
>>747 セッション管理にクッキーを使わなければいいだけだから簡単だよ
設定ファイルを1行書き換えるだけだし
755 :
デフォルトの名無しさん
2016/02/20(土) 06:56:50.91 ID:Hf5DV+m+
新規プロジェクトで採用するフレームワークを決めなきゃならないのだが、今だと何がおすすめなの?
756 :
デフォルトの名無しさん
2016/02/20(土) 07:03:23.78 ID:Z/NGE4Cm
クライアントに決めさせろ
757 :
デフォルトの名無しさん
2016/02/20(土) 10:43:34.72 ID:Q3ZbaEWa
ららべる
758 :
デフォルトの名無しさん
2016/02/20(土) 10:56:11.96 ID:dgRu0g8n
>>755 言語と方式(Web、クライアントアプリ等)くらい書けよ
759 :
デフォルトの名無しさん
2016/02/20(土) 11:37:31.42 ID:72FFHOaV
760 :
デフォルトの名無しさん
2016/02/20(土) 12:34:27.31 ID:WEtjCzRL
>>755 PHPのフレームワークは糞だらけなので(ラスマス公認)
プロジェクトに合ったフレームワークをスクラッチしたらいい。
腕の良いグラマがいるなら、だけど。
761 :
デフォルトの名無しさん
2016/02/20(土) 12:48:33.01 ID:Om1RN4om
>>755 fuelphpを使え
フレームワークのふりをしたただのライブラリだから
学習コストを極限まで削れるぞ
762 :
デフォルトの名無しさん
2016/02/20(土) 14:09:46.82 ID:JjUcgdC4
ラスマスそんなこと言ってんですか
763 :
デフォルトの名無しさん
2016/02/20(土) 14:29:27.45 ID:Hf5DV+m+
fuelね、了解。
見てみるわ。
764 :
デフォルトの名無しさん
2016/02/20(土) 20:24:23.97 ID:1rmOkSRx
ZFで
765 :
デフォルトの名無しさん
2016/02/20(土) 23:41:42.15 ID:dYr3KEVr
codeigniter
766 :
デフォルトの名無しさん
2016/02/21(日) 00:55:41.72 ID:bEEJELrI
逆にダメなフレームワークは?
どこがひどかったかも含めて思いの丈を語ってくれ
767 :
デフォルトの名無しさん
2016/02/21(日) 00:56:43.09 ID:r+3PT3CF
言いだしっぺの法則を守らない君はどこかの司会者か何かですか
768 :
デフォルトの名無しさん
2016/02/21(日) 05:28:05.12 ID:TxpGa15i
>>766 そらRailsですわ
ASPの旧サイトより遅いという
769 :
デフォルトの名無しさん
2016/02/21(日) 08:53:56.95 ID:rLc1CHQI
今や産廃のCakePHP
Apache並に産廃
古参の宿命だな
770 :
デフォルトの名無しさん
2016/02/21(日) 08:56:05.83 ID:NNk+ymTI
>逆にダメなフレームワークは?
他の追随をゆるさないくらいCakePHP一択。
理由はPHPが嫌われている理由と全く同じ。つまり最極悪のフレームワーク。
771 :
デフォルトの名無しさん
2016/02/21(日) 10:07:30.44 ID:LPWXxKSh
わざわざPHPでフレームワーク使う理由ってなに?
単にテンプレートエンジンみたいな点で言えばPHPそのものがそんなようなもんだし、リクエスト判断して入力確認してDB読み書きして、なんて流れは普通に書いてもコード量にそれほど違いも出ないように思ってるんだが。
せいぜい文字列処理とかDBアクセスなんかのライブラリを作るくらいで、それにしてもほとんどは流用できるし、流用できない部分はフレームワーク使っても個別に書かないといけない部分だよね。
しかもフレームワーク使うとPHPだけじゃなくフレームワークのお作法にも則らないといけないし、そこから外れたことやりたい時の手間が尋常じゃないし、そうしてこねくり回したコードは難解だしでいいことが全く思い当たらないんだよな。
自分で積極的に使おうと思わないからいい点が見えてないだけかもしれないけど、フレームワーク使いたい理由を説いてくれると勉強になる。
ちなみにプロジェクトの都合で少しメンテしたことあるのは Smarty と CakePHP くらいだ。
772 :
デフォルトの名無しさん
2016/02/21(日) 10:16:06.96 ID:bEEJELrI
フレームワーク使わないと全機能自分で実装しなきゃなんないじゃん
アホらしいし面倒臭い
773 :
デフォルトの名無しさん
2016/02/21(日) 10:18:02.53 ID:LPWXxKSh
全機能ってどういうことさ?
774 :
デフォルトの名無しさん
2016/02/21(日) 10:22:16.76 ID:bEEJELrI
ログインとかセッション管理とかデータのCRIDとかページネーションとかバリデーションとかSNS連携とかいくらでもあるだろ
775 :
デフォルトの名無しさん
2016/02/21(日) 10:39:49.00 ID:LPWXxKSh
>>774 なるほど、それを自分で管理するのが面倒って話ね。
共通化できるような部分だからフレームワークだと言ってるんだろうけど、そんなの一度書いてしまえばしばらく使い回せるし、SNS連携は置いとけば作るのもそんなに難しい部分じゃないしなぁ
フレームワークが持ってないバリデーションやりたくなったらどうしようとか考える方が面倒なような。
つか相関チェックなんてどのみち全部書くんでしょ?
776 :
デフォルトの名無しさん
2016/02/21(日) 10:45:20.35 ID:bEEJELrI
実際にやる事は
>>774に書いた事の100倍ぐらいありそうだから、自分で書こうとは夢にも思わないなぁ
そんな時間はない
趣味でかつ無限の時間を注ぎ込めるならやってもいいかも
777 :
デフォルトの名無しさん
2016/02/21(日) 10:47:40.65 ID:rLc1CHQI
結局それ1度は作らないといけないオレオレフレームワークじゃん
778 :
デフォルトの名無しさん
2016/02/21(日) 10:53:54.56 ID:rLc1CHQI
チーム開発の場合オレオレフレームワークは色々論外だろう
779 :
デフォルトの名無しさん
2016/02/21(日) 10:56:16.67 ID:bEEJELrI
俺的には出来が良ければオレオレもありだと思うよ
だけど実際にはハナクソみたいなのしか見た事ない、一人や少人数で作ったものが世界のオープンソースに勝てないわな
780 :
デフォルトの名無しさん
2016/02/21(日) 10:57:04.62 ID:LPWXxKSh
>>778 そこはあるね
ルールの書面化は確かに面倒だ
781 :
デフォルトの名無しさん
2016/02/21(日) 13:14:29.59 ID:jjHTopAE
ソースコード管理とsyntax error検知だけあればそれでいいよ
782 :
デフォルトの名無しさん
2016/02/21(日) 14:20:16.85 ID:NNk+ymTI
どうもフレームワークとライブラリの違いが分かってないようで…
783 :
デフォルトの名無しさん
2016/02/21(日) 14:37:02.37 ID:NNk+ymTI
> だけど実際にはハナクソみたいなのしか見た事ない
理由は2つ
1.フレームワークは熟成させないとダメなので単発ではいいものができるわけない
2.いいものをつくっても普通の契約形態だと元請け等にパクられて終わりだから真面目に作る奴が馬鹿
784 :
デフォルトの名無しさん
2016/02/21(日) 23:03:57.93 ID:FiLKk72/
>>775 まさにそういうことを言い出すやつのためにFuelPHPは存在する
フレームワークとライブラリの違いがわかっていないやつのために
もういっそライブラリをフレームワークと言い張ろうとしたのがFuel
拡張性は抜群だし覚えること少なくて済むし超いいよ
785 :
デフォルトの名無しさん
2016/02/22(月) 02:11:35.33 ID:JwQG8bF/
>>784 いや、ライブラリはライブラリ、フレームワークはフレームワークだと思うよ。
プロジェクトに合ったライブラリがあればフレームワークなんていらなくね?って話でさ。
ともかく、Fuelってのをちょっと見てみるわ。
786 :
デフォルトの名無しさん
2016/02/22(月) 04:32:40.81 ID:GHNnpFrN
なんでフレームワークが要らないのかわからない。
やっぱりわかってないんじゃないのか
787 :
デフォルトの名無しさん
2016/02/22(月) 05:29:16.10 ID:OmlsmopI
構造はフレームワークに決められたくないんや!
俺がキメるんや!
788 :
デフォルトの名無しさん
2016/02/22(月) 09:44:30.13 ID:JwQG8bF/
>>786 PHP使ってる時点で自分の処理に渡ってくる時点でリクエストパラメータの展開もセッションの展開も済んでるし画面出力もほとんどHTMLみたいなテンプレートをincludeするだけで完了出来ちゃう。
ここまでお膳立てされて、あとは処理を書くだけ。
という状況が既に一種のフレームワークじゃね?
例えば perl でやろうって話になったらこのお膳立てに結構な手間がかかるし、フレームワーク化される部分でしょ?
789 :
デフォルトの名無しさん
2016/02/22(月) 10:25:01.68 ID:nMPIm3oZ
フレームワーク使う最大の利点は完成物を作るにあたって言語をさして勉強する必要がないところだな
例えば俺PHPerだからPHPしか使えないしーとかいうやつは
PHPほどの効率で初動が進むわけではないが
環境構築やそれに伴う周辺理解に時間がかかるだけで
プログラミングに関して言えば他言語のFWとサンプル渡したら1週間後には掲示板が出来あがるレベル
それを否定するのは先入観や使用するその他言語が嫌いとかでそもそもやる気がないだけ
さすがに関数型とか考え方の異なる言語になると躓く部分はあるけどね
790 :
デフォルトの名無しさん
2016/02/22(月) 12:01:29.87 ID:GHNnpFrN
ヤバいこのスレレベル低いぞ
791 :
デフォルトの名無しさん
2016/02/22(月) 12:02:44.65 ID:OekBzDP3
俺が平均レベルを押し下げてるせいだ
すまんな
792 :
デフォルトの名無しさん
2016/02/22(月) 13:36:18.66 ID:pzyynVMY
学ぶ姿勢があるうちはええよ。
793 :
デフォルトの名無しさん
2016/02/22(月) 14:38:24.59 ID:bMW4s8sj
794 :
デフォルトの名無しさん
2016/02/22(月) 21:40:54.93 ID:HpxGHp+r
レベル低いっていうか、作ったことのある規模の問題。
ある程度でかいシステムつくってみれば、フレームワークいらないなんて
いう気もおきなくなる。
795 :
デフォルトの名無しさん
2016/02/22(月) 23:00:31.18 ID:OmlsmopI
今作ってるの、PHPはJSONやファイル返すだけなのでフレームワーク無しよ
ライブラリとしてTCPDF、PHPExcel、PHPMailerとかjwtは使ってるけど
796 :
デフォルトの名無しさん
2016/02/23(火) 07:25:01.65 ID:ogjuWzq9
パフォーマンスに難があるからそれなりの規模の作ったときはFWは使わなかった
Perl Ruby Python PHPのWeb系スクリプト四天王じゃFWなしとなるとPHPは一番開発しやすい
ちょっと修正すればHHでブーストもできるしね
797 :
デフォルトの名無しさん
2016/02/24(水) 00:13:41.96 ID:6KBt3+BB
そこは、PHPがもともと高性能テンプレートシステム的な存在だったのが影響してるのかな?
798 :
デフォルトの名無しさん
2016/02/24(水) 11:30:13.18 ID:qODGIMFE
799 :
デフォルトの名無しさん
2016/02/24(水) 15:40:02.56 ID:5mV+mcME
800 :
デフォルトの名無しさん
2016/02/24(水) 21:32:22.76 ID:sMbGI4qn
前任者が作ったSymfony 1プロジェクトを保守したけどトラウマになりそうだったわ
テストが無くても1ファイルにべた書きされてた方がマシってレベル
801 :
デフォルトの名無しさん
2016/02/24(水) 22:00:55.50 ID:Cv7HbOi/
まぁ、作り変えたほうが早いわな
802 :
デフォルトの名無しさん
2016/02/25(木) 16:47:39.08 ID:i5NCjJ5m
>>800 Symfony はRails以上にクソオブクソだから しょうがないね
803 :
デフォルトの名無しさん
2016/02/25(木) 20:07:40.83 ID:jRSeJ77V
Railsもクソオブクソに含まれるようになったとは、このスレもずいぶん変わったね
804 :
デフォルトの名無しさん
2016/02/26(金) 20:39:10.32 ID:pOvt9Ry8
ここらへんでー そろそろオレがー その花をさかせましょー
805 :
デフォルトの名無しさん
2016/02/26(金) 20:39:52.68 ID:pOvt9Ry8
IT業界のためにー あなたのためにー ひきうけましょおー
806 :
デフォルトの名無しさん
2016/02/28(日) 14:05:51.95 ID:Nedg3tZ6
ユーザーごとのプロフィールページを作成しようと考えているのですが、
URL構造について質問があります。
通常であればprofile.php?number=xxx
のようなURLになると思うのですが、
profile/xxxのような静的URLとしてページを生成させるにはどうすればよいでしょうか?
seo的には動的静的で差がないそうですが、どなたかお教えください。
807 :
デフォルトの名無しさん
2016/02/28(日) 14:09:24.29 ID:8uZi9XeY
>>806 WebサーバのURL rewriteで飛ばすよ
一致しないURLはindex.phpに飛ばして
そこでURL見て該当するクラス呼び出す
808 :
デフォルトの名無しさん
2016/02/28(日) 14:20:14.79 ID:Nedg3tZ6
>>807 URLの見た目を書き換えることができるんですね
ありがとうございました
809 :
デフォルトの名無しさん
2016/02/28(日) 14:21:59.41 ID:NZKlVimG
チャットを作っていてajaxでデータの受け渡しまでできたのですが
書き込みがあるまでphpで待機させる方法がわからないです。
cometってので可能なのですよね?
websocketってのもあるみたいなのですがよくわからないんで
出来ればcometで実現させたいです。(´;ω;`)ブワッ
810 :
デフォルトの名無しさん
2016/02/28(日) 15:07:08.91 ID:tZKfefo/
くだらない質問ですいません
PHPってなんですか?
また、プログラミング言語を学びたいのですが何が良いのでしょうか?
811 :
デフォルトの名無しさん
2016/02/28(日) 15:21:40.27 ID:PW8h2gxN
comet って最近は聞かない。古そう
812 :
デフォルトの名無しさん
2016/02/28(日) 15:21:40.20 ID:8uZi9XeY
>>809 エラい古いんちゃうかなcometって
PHPをサーバ側で使いたいなら
http://socketo.me とか使って、Webサーバと別のポート例えば9100でWebsocketを待機し続けるサーバプロセスを作る
コマンドで起動しておく
$ php chatserver.php &
クライアント側はjsで簡単に書ける
ws = new WebSocket('ws://192.168.1.11:9100');
ws.onmessage = function(e) {
//サーバから受信した時の処理を書く。e.dataに入ってる
};
ボタンクリックなどで
ws.send(送信するメッセージ);
813 :
デフォルトの名無しさん
2016/02/28(日) 16:51:02.24 ID:2AKul8km
>>809 無限ループ使うんだよ
そのままだとCPUがやばいからsleep(usleep)を適切に挟むこと
んで書き込みがあったらbreakしてクライアントに結果返して
クライアント側は結果を受け取ったらまたリクエスト張りなおす
注意点はサーバの書き込みチェックは最初の結果をキャッシュする場合があるのでキャッシュさせないようにする
あとはタイムアウトを考慮した設計にすること
あとはレンタルサーバーじゃやらないこと
814 :
デフォルトの名無しさん
2016/02/28(日) 16:52:15.20 ID:2AKul8km
あ、ごめん
やり方じゃなくて待機方法がわからないのね
815 :
デフォルトの名無しさん
2016/02/28(日) 17:19:55.89 ID:NZKlVimG
>>812 やっぱ古いんですねcomet
websocketでいきます…
ありがとうございます
あれれインストールで躓いちゃったや(´;ω;`)
>>813 レンタルサーバーで実装するつもりでした(ノ∀`)アチャー
とりあえずwebsocketでやってみます
ありがとうございます。
816 :
デフォルトの名無しさん
2016/02/28(日) 17:22:07.38 ID:2AKul8km
共用じゃだめって意味ね
ざっくりすぎてごめんこ
817 :
デフォルトの名無しさん
2016/02/28(日) 18:19:52.66 ID:Os9aC1Qv
共有サーバーこそ、WeSocketなんて無理なんじゃ
818 :
デフォルトの名無しさん
2016/02/28(日) 18:29:49.12 ID:XTbgA6gH
Ajax+ポーリングで我慢しとけ
819 :
デフォルトの名無しさん
2016/02/28(日) 18:38:11.50 ID:fDaPLCBC
>>812 面白いなこれ
こういうのって複数チャット部屋を作ったときリソース消費どんなもんなの?
画像や音楽を送信/配布可能にしたりしたら通信量も怖いがメモリもちょっと怖い
820 :
デフォルトの名無しさん
2016/02/28(日) 18:41:48.03 ID:k2lRb1XX
print_r と var_dump
どっちかしか使っちゃだめと言われたらどっちを選ぶ?
821 :
デフォルトの名無しさん
2016/02/28(日) 18:42:12.92 ID:fDaPLCBC
var_dumpに決まっとる
822 :
デフォルトの名無しさん
2016/02/28(日) 19:57:58.26 ID:NZKlVimG
いろいろ意見もらっといてなんだけれど
Node.jsって手もありかも(´;ω;`)ブワッ
823 :
デフォルトの名無しさん
2016/02/28(日) 20:06:43.75 ID:PslYhxFh
printじゃ配列見れんがな
824 :
デフォルトの名無しさん
2016/02/28(日) 20:08:49.53 ID:PslYhxFh
rか
825 :
デフォルトの名無しさん
2016/02/28(日) 20:53:27.88 ID:94+t3xG4
826 :
デフォルトの名無しさん
2016/02/29(月) 00:06:33.89 ID:Euk6Iqck
>>819 サーバ側は別に無限ループしてるわけではないから、
Apacheがもう一個動いてる程度に考えればいいと思う
827 :
デフォルトの名無しさん
2016/02/29(月) 14:18:17.41 ID:y2diBpG3
無限ループしてないのか
828 :
デフォルトの名無しさん
2016/02/29(月) 18:25:43.68 ID:VEa03N4g
>>825 何時間では済まなそうです(´;ω;`)
やっぱ皆さんの言うようにWebSocketでやってみます
ありがとうございます
829 :
デフォルトの名無しさん
2016/02/29(月) 20:28:12.03 ID:VEa03N4g
websocketやってみたのですが
WebSocket connection to 'ws://yuuhi.heteml.jp/yuuhi666/' failed: Error during
WebSocket handshake: Unexpected response code: 200
って出ました\(^o^)/オワタ
不機嫌な理由は何なんでしょうか(´;ω;`)
830 :
デフォルトの名無しさん
2016/02/29(月) 20:57:42.14 ID:O4CHXLQv
それここで聞くことか?
831 :
デフォルトの名無しさん
2016/02/29(月) 21:16:31.59 ID:VEa03N4g
832 :
デフォルトの名無しさん
2016/02/29(月) 22:08:57.80 ID:T4rQFsep
>>829 ホストの指定はlocalhostかサーバー自身のIPアドレス192.168.0.xx
833 :
デフォルトの名無しさん
2016/02/29(月) 23:42:08.41
>>829 200ってApacheとかから応答帰ってきてる
WSサーバのポートを9000とかにしたら
:9000 を付けないとダメ
834 :
デフォルトの名無しさん
2016/03/01(火) 09:48:25.21 ID:uLS4RoHp
FuelPHP使ってみようかなと思い始めてきたけど使い始めるまでが面倒くさいね
どうやったら初動で勢いつけてやれるかな
835 :
デフォルトの名無しさん
2016/03/03(木) 17:39:41.23 ID:eajzZFGl
var_dump()の出力を変数に入れたいのですが
出力をのっとるしかないでしょうか
836 :
デフォルトの名無しさん
2016/03/03(木) 17:49:28.76 ID:7LVuWV6J
ob_start() して
var_dump() して
ob_get_contents() して
ob_end_clean() すればいけるかも
837 :
デフォルトの名無しさん
2016/03/03(木) 17:51:59.25 ID:j/RUlECR
乗っ取るって表現が適切かはわからないけどマニュアルのヒントに書いてある通り
var_dumpとはちょっと内容違うけどvar_exportでfalse指定したほうが楽
838 :
837
2016/03/03(木) 17:52:41.23 ID:j/RUlECR
すまん
falseじゃなくてtrueやった
839 :
デフォルトの名無しさん
2016/03/04(金) 02:34:21.52 ID:HY1zPgG1
PHPは初心者にも扱いやすいのかな?
840 :
デフォルトの名無しさん
2016/03/04(金) 02:46:57.55
プログラムの勉強したいならどうやろな
Visual Studio Express使ってWindowsフォームアプリ作る方が「背景知識」は少なくて済むし、環境作成も簡単
841 :
デフォルトの名無しさん
2016/03/04(金) 02:48:45.25
HTML書いててなんかしたい、となったなら
PHPとJavaScriptでおk
842 :
デフォルトの名無しさん
2016/03/04(金) 07:44:59.95 ID:8T2/WYRz
843 :
デフォルトの名無しさん
2016/03/04(金) 08:08:01.12 ID:vljhJ3oG
自分で直しゃいいじゃん
844 :
デフォルトの名無しさん
2016/03/04(金) 10:13:15.71 ID:8T2/WYRz
どういう対応をするか見ていたんだが、売りっぱなしのようだな
もう直した。
845 :
デフォルトの名無しさん
2016/03/04(金) 11:28:51.80 ID:HRxlw+pI
こういう奴の相手したくなくなるのはわかるw
846 :
デフォルトの名無しさん
2016/03/04(金) 11:33:26.78 ID:Q4+dIJ6P
どの辺に不具合があるのか、具体的に
847 :
デフォルトの名無しさん
2016/03/04(金) 12:24:42.75 ID:8T2/WYRz
>>845 ふざけるなw
13万円くらい払って購入してるし、商売やってんならアフターフォローするのが当たり前だろう
もう終わりw
848 :
デフォルトの名無しさん
2016/03/04(金) 12:27:05.68
ソース見たら某フレームワークをちょっと弄りましたみたいな?
849 :
デフォルトの名無しさん
2016/03/04(金) 12:31:56.11 ID:8T2/WYRz
そうです
終わり・・
850 :
デフォルトの名無しさん
2016/03/04(金) 12:58:04.63 ID:4aC8Jy9P
>>839 WordPress で、ほとんどPHPを書かなくても、
ブログを作れるからだろ
851 :
デフォルトの名無しさん
2016/03/04(金) 14:08:59.85 ID:/EMuekHM
どんな不具合をどう直したの
852 :
デフォルトの名無しさん
2016/03/04(金) 14:36:56.40 ID:OpHlemOi
13万って、プログラマ1人がせいぜい数日作業するくらいのコストだよね…
853 :
デフォルトの名無しさん
2016/03/04(金) 14:38:25.70 ID:7/wX5Bu3
パッケージだからその計算はおかしい
854 :
デフォルトの名無しさん
2016/03/04(金) 18:52:15.50 ID:xezy6lBT
>>853 プログラマに数日作業させるくらいなら13万出してパッケージ買うやろ
という話だから計算的にはいいんじゃない?
その結果さらにプログラマが働いている現状なんぞは知らぬ。 知らぬ。
855 :
デフォルトの名無しさん
2016/03/04(金) 19:56:46.00 ID:vljhJ3oG
実際どういう不具合で
相手に聞いたらどういう返答で
どう直したのかが重要だな
856 :
デフォルトの名無しさん
2016/03/04(金) 20:11:47.37 ID:eEaJYIJN
興味を持たせることには成功したようだな
宣伝乙
857 :
デフォルトの名無しさん
2016/03/04(金) 20:44:46.88 ID:yBIrODvL
やっぱりテスト太郎、テスト次郎は定番なんだな
858 :
デフォルトの名無しさん
2016/03/04(金) 22:04:09.58 ID:Q4+dIJ6P
不具合を直さないって公表されて宣伝になるんか?
859 :
デフォルトの名無しさん
2016/03/04(金) 23:44:40.37 ID:A68S+x0S
PHPができるなら自分でシステム組むよね
何か使うにしてもメジャーなOSSを使うでしょ普通
860 :
デフォルトの名無しさん
2016/03/05(土) 02:53:41.19
>>859 PHP出来ない人が居るからPHPでお金貰えるわけやし
861 :
デフォルトの名無しさん
2016/03/05(土) 09:36:09.67 ID:MVnXTth5
世の中はWordpress使える俺スゲー!な人たちが殆どですから、
多少の汚いPHPコードは書けても、自分でまるっとシステム作れる人はマイノリティーなわけです。
862 :
デフォルトの名無しさん
2016/03/05(土) 18:59:45.08 ID:7QlXzIvF
お前らPHPで何作ってるの?
863 :
デフォルトの名無しさん
2016/03/05(土) 19:13:12.98 ID:Q9xGDEpj
自分が使うためのツールとバッチ
864 :
デフォルトの名無しさん
2016/03/05(土) 20:23:23.12 ID:Zp0U3rJ4
負の遺産
865 :
デフォルトの名無しさん
2016/03/05(土) 20:37:15.62 ID:MVnXTth5
創造の毒
866 :
デフォルトの名無しさん
2016/03/05(土) 21:23:12.61 ID:TtOs9IsN
マイナス金利
867 :
デフォルトの名無しさん
2016/03/06(日) 01:18:57.39 ID:KcqVY3vA
>>861 WordPress使える俺スゲーなんて思ってるやつなんているの?
それとも自己紹介?
868 :
デフォルトの名無しさん
2016/03/06(日) 05:30:43.54
今日も青山のスタバでWordPressのテーマ新作をデザインする
出来合いのテーマでは伝えきれない思いがあるから
869 :
デフォルトの名無しさん
2016/03/06(日) 09:46:11.07 ID:nZ086bjX
>>867 世間知らずはおまえだけじゃないってこと。
そんで、そういうヤツのほうがずっと上手く世渡りしていて、楽に生きてたりする。
あと、「それとも自己紹介?」とか書いちゃうあたりが、
お前自信が「プログラム組める俺スゲー」って思ってる証拠だろうけど、
そういうやつはまぁ、大抵糞コード書いてる。
870 :
デフォルトの名無しさん
2016/03/06(日) 09:55:51.82 ID:KcqVY3vA
871 :
デフォルトの名無しさん
2016/03/06(日) 09:55:55.96 ID:g0P96U3U
プログラミングなんてこれっぽっちもできずWordPressとかその他使うだけでアホみたいに稼いでる奴たくさんいるしな
872 :
デフォルトの名無しさん
2016/03/06(日) 10:41:35.53
書くやつより喋るだけのやつの方が稼ぐという
873 :
デフォルトの名無しさん
2016/03/06(日) 11:20:16.79 ID:NsHVX+P9
最近のHP業者を盛大にディスるスレがあると聞きまして
874 :
デフォルトの名無しさん
2016/03/06(日) 11:28:15.07 ID:mT99FyHX
HP業者とか絶滅危惧種
システムの一部としてパッケージで納入されるのが一般的で
システム屋がやるんじゃないの
875 :
デフォルトの名無しさん
2016/03/06(日) 11:48:16.84 ID:Iby65zw1
は?
876 :
デフォルトの名無しさん
2016/03/06(日) 13:13:38.20 ID:nZ086bjX
877 :
デフォルトの名無しさん
2016/03/06(日) 13:18:43.55 ID:KcqVY3vA
>>876 それとも自己紹介?がプログラム組める俺スゲーになるんだよ
いちいちそういう方向にとらえるのは、お前がそういうコンプレックスもってることの現れだ
878 :
デフォルトの名無しさん
2016/03/06(日) 13:23:06.21 ID:nZ086bjX
デザイナーとかWEB制作会社系の勉強会いくと、技術者系の勉強会との温度差にびっくりする。
よくもまぁ、そんなレベルの低いことを自信満々に発表できるなと。
で、発表のスタイルだけ技術者系と同じようなことしてる。
見た目だけマネて内容が伴ってないから聞いててフガフガしてくる。
879 :
デフォルトの名無しさん
2016/03/06(日) 13:24:23.47 ID:KcqVY3vA
>>878 そのレスではっきりした
俺スゲーって思ってるのはお前自身だ
880 :
デフォルトの名無しさん
2016/03/06(日) 13:34:45.40 ID:nZ086bjX
>>877 >それとも自己紹介?がプログラム組める俺スゲーになるんだよ
「どうして」が抜けてるぞ。日本語間違えるほど頭に血をのぼらせてるから言ってる事の意味がわかんないんだよ。
「プログラム組める俺スゲー」って内心思ってるから現実見えずに相手を下にみて
「それとも自己紹介?」みたいな事書いちゃうわけだろ?
そういう奴は技術の深さを知らずにWordpress使えるオレすげーってなってる奴となんら変わらないから
周りが見えずクソコード書いてる自分に気づかないわけさ。
と、言ってるのだけど理解できる?
881 :
デフォルトの名無しさん
2016/03/06(日) 13:36:44.45 ID:nZ086bjX
>>879 どこまで短絡的なんだろうねこの人。
明らかにレベル低いものは低いと評価するのは当たり前のこと。
評価できる材料がないのに、低いと評価して「それとも自己紹介?」と書いてるのがアホだって話なんだけど、
まぁ、頭に血がのぼっちゃった人に言っても無駄だろう。
882 :
デフォルトの名無しさん
2016/03/06(日) 13:39:09.43 ID:KcqVY3vA
>>880 最初の話に戻るけど、
> 世の中はWordpress使える俺スゲー!な人たちが殆どですから、
はあなたのちょっとした周辺のできことから主観的に類推した内容?
883 :
デフォルトの名無しさん
2016/03/06(日) 14:13:41.94 ID:NsHVX+P9
wpスレいってくれるかー。ここはphpプログラミングスレやでよー。
884 :
デフォルトの名無しさん
2016/03/06(日) 20:41:28.02 ID:nZ086bjX
868〜875あたりまで、そいつ以外は話が通じて会話流れてるのにそれに気づかず
>>882みたいなことまだほざいてるんだから、頭に血が上りすぎて全く周り見えてないんだろう。
そんなやつ他所様のスレに送り込んだら迷惑この上なかろうよ。
885 :
デフォルトの名無しさん
2016/03/06(日) 20:50:22.05 ID:tTnKJmeM
世の中はWordpress使える俺スゲー!な人たちが殆どですからね
お疲れ様でした
886 :
デフォルトの名無しさん
2016/03/06(日) 20:56:12.96 ID:m9eS+0PK
phpは触れるけどwordpress触ったことないおれスゲー
887 :
デフォルトの名無しさん
2016/03/06(日) 21:31:44.39 ID:Iby65zw1
どうでもいいけどURLにwp-contentとか入ってるのみると良いのかそれでと思う
888 :
デフォルトの名無しさん
2016/03/06(日) 23:16:58.32 ID:+T2SpDts
PHPで掲示板を作りたいのですが、c#の高機能IDEに慣れすぎて思うように開発が進みません
おすすめのIDEはありますか?
889 :
デフォルトの名無しさん
2016/03/06(日) 23:37:24.20
>>888 無料ならVisualStudio Code、NetBeans、でデバッグも出来るよ
PHPStormは気合い入ってるけど高い
VisualStudioにPHP Tools入れるとそのままPHP使えてデバッグも出来る
70ドルくらいだったかな
890 :
デフォルトの名無しさん
2016/03/07(月) 10:10:52.34 ID:MOcatANN
Visual StudioとPHP Toolどうなんだろね
891 :
デフォルトの名無しさん
2016/03/07(月) 10:30:55.20 ID:LfQgYRkl
俺は無料だからNetBeans使ってるけど、本当はVS使いたい
無料にしてくれんもんか
892 :
デフォルトの名無しさん
2016/03/07(月) 10:35:41.40 ID:UrYl+g+P
PHP Toolsよさげ、、、30日トライアルか、、、
893 :
デフォルトの名無しさん
2016/03/07(月) 11:32:48.15 ID:BMmf+uGg
Eclipseは誰も使ってないの?
894 :
デフォルトの名無しさん
2016/03/07(月) 11:39:23.65 ID:1z0WwLBk
PHPStormは学生無料だから学生なら使ってみるとよい
895 :
デフォルトの名無しさん
2016/03/07(月) 15:10:08.95 ID:bIvIqFc6
Eclipseは3年前ぐらいまで使ってたけど
利便性より軽さを求めて今やemacsですわ
896 :
デフォルトの名無しさん
2016/03/07(月) 15:13:30.87 ID:FRHwsxZF
>>894 中学生なので丁度よかったです。
少し調べてみます。
897 :
デフォルトの名無しさん
2016/03/07(月) 15:22:09.93 ID:FRHwsxZF
あ、大学のメアドじゃないと無理なんですね
NBとVSはどちらも使い慣れているので、どっちでもいいんですがVSの方が好きなのでVScode入れてみます
898 :
デフォルトの名無しさん
2016/03/07(月) 15:55:21.63
わしが中学生の頃は
(以下昔自分語り54行)
899 :
デフォルトの名無しさん
2016/03/07(月) 15:56:19.30 ID:bIvIqFc6
あれ?
900 :
デフォルトの名無しさん
2016/03/07(月) 15:56:53.74 ID:bIvIqFc6
途中でかいてもうた
なんでID出てないんや・・・
901 :
デフォルトの名無しさん
2016/03/07(月) 16:11:56.43 ID:UrYl+g+P
54行も書くからw
902 :
デフォルトの名無しさん
2016/03/07(月) 16:28:30.76
裏2ちゃんねるから書くとID出ない、アクセスするには
(検閲されました)
903 :
デフォルトの名無しさん
2016/03/07(月) 20:45:30.73 ID:gjaDJoXT
なめてんのか?
904 :
片山博文MZ ◆T6xkBnTXz7B0
2016/03/07(月) 21:58:01.95 ID:vq5fVXSL
【最終警告】WordPressを更新しないと脆弱性でぶっこ抜かれるぞ。
気を付けろ。確かに警告しといたぞ。
905 :
デフォルトの名無しさん
2016/03/07(月) 22:16:41.11 ID:be9Auz0b
>>904 ログみたけどやたら何度もアクセスあったや
トラックバック系のDDoS踏み台かな
906 :
デフォルトの名無しさん
2016/03/08(火) 00:15:33.18 ID:shevmCQX
PHPとはちょっと直接関係ないかもしれませんが
configureオプションで指定する項目はヘルプに複数書いてても1回だけでいいんですよね?
--with-libxml-dir=DIR LIBXML: libxml2 install prefix
--with-libxml-dir=DIR DOM: libxml2 install prefix
--with-libxml-dir=DIR SimpleXML: libxml2 install prefix
--with-libxml-dir=DIR SOAP: libxml2 install prefix
--with-libxml-dir=DIR WDDX: libxml2 install prefix
--with-libxml-dir=DIR XML: libxml2 install prefix
--with-libxml-dir=DIR XMLReader: libxml2 install prefix
--with-libxml-dir=DIR XMLRPC-EPI: libxml2 install prefix
--with-libxml-dir=DIR XMLWriter: libxml2 install prefix
例えばこんな感じになってますが
--with-libxml-dir=DIRは1回記述するだけで大丈夫ですよね?
907 :
デフォルトの名無しさん
2016/03/08(火) 00:19:00.47 ID:JBWz0dYt
1回で良い
908 :
デフォルトの名無しさん
2016/03/08(火) 00:19:56.70 ID:shevmCQX
ありがとう〜
909 :
デフォルトの名無しさん
2016/03/08(火) 00:34:15.10 ID:CHz9eaNM
910 :
デフォルトの名無しさん
2016/03/08(火) 18:33:39.54 ID:qf1gk2Bi
30すぎてますが、脱無職するためにプログラマになるよう(相談員に)薦められました
過去に独学していましたが専門的な知識はありません
年齢のことは置いておいて、最低限のPHPスキルがあるとして就職するには何ができるようになったほうがいいのでしょうか
911 :
デフォルトの名無しさん
2016/03/08(火) 18:37:44.26 ID:CQqmIBfk
サイト構築とデータベースあたりじゃね
プログラマー板のがいいんじゃ?
912 :
デフォルトの名無しさん
2016/03/08(火) 18:45:27.22 ID:JPPDp0Dn
913 :
デフォルトの名無しさん
2016/03/08(火) 18:48:54.38 ID:qf1gk2Bi
>>912 あ、それは余裕です
僕天才ですので
肩もみとかお茶くみやったほうがいいですか?
嘘です、具体的にどのくらいのスキルが必要か知りたかったんですが
>>911 わかりました
そっちで聞いてみます
ありがとうございます
簡単なサイト構築とデータベースはだいたいやったことあるんですが
セキュリティとかソケットとか自信ないんですよね
WEBプログラミングって、あんまりソースが転がってないですよね
ライブラリを読むとかはやってみてるんですけど
914 :
デフォルトの名無しさん
2016/03/08(火) 18:58:01.02 ID:SYPcuMQJ
サイトって見た目が何より大事
デザインのセンス、
今世間で何が注目されているかの嗅覚、
お客を説得できる話術
構築技術はあとでどうにでもなる
915 :
デフォルトの名無しさん
2016/03/08(火) 19:29:52.80 ID:qf1gk2Bi
HTMLとCSSは使えるんですが、デザインのセンスとなると難しいですね
センスだけじゃなくてフォトショップやイラレのスキルも要求されますし
916 :
デフォルトの名無しさん
2016/03/08(火) 19:34:33.98 ID:H+FsN3mb
40代超えてこれから無職になるところ。
これからWebアプリ作って生計立てる。
やっていけるかな?
占いではアホみたいに成功するって言われたけどww
917 :
デフォルトの名無しさん
2016/03/08(火) 20:26:12.83 ID:JPPDp0Dn
>>916 一発屋はいけるかもしれんが60まで続けるには先行きが不明だ。
918 :
デフォルトの名無しさん
2016/03/08(火) 20:26:45.47 ID:RMKFy6zt
デザインなんてbootstrap使っときゃええんや
919 :
デフォルトの名無しさん
2016/03/08(火) 21:01:56.05 ID:qf1gk2Bi
PHPを軽くて高速にする方法をまとめて学べるサイトか本ないですか
920 :
デフォルトの名無しさん
2016/03/08(火) 21:43:58.14 ID:JWYTtwzc
htmlとかxmlで<って書くこと英語でなんて言うんだっけ?
921 :
デフォルトの名無しさん
2016/03/08(火) 21:50:56.47 ID:H+FsN3mb
922 :
デフォルトの名無しさん
2016/03/08(火) 22:29:11.89 ID:JPPDp0Dn
923 :
デフォルトの名無しさん
2016/03/08(火) 22:51:16.09 ID:Sd3vw94M
924 :
デフォルトの名無しさん
2016/03/08(火) 22:56:59.64 ID:RrOXDxPR
twitter bootstrap は、結局使うべきではないという結論に至った。
925 :
デフォルトの名無しさん
2016/03/08(火) 22:58:55.18 ID:RrOXDxPR
926 :
デフォルトの名無しさん
2016/03/08(火) 23:53:05.30 ID:EyRxzck3
>>920 HTML特殊文字(Special Characters)
文字実体参照・エンティティ参照(Entity References)
HTML エスケープ(Escape Characters)
Encode & decode HTML entities
927 :
デフォルトの名無しさん
2016/03/09(水) 12:36:32.09
928 :
デフォルトの名無しさん
2016/03/09(水) 13:08:14.75 ID:UAhrNZlf
index.phpが出てくるって、けっこう適当な作りだけど
問題なく動いてるんだね
929 :
デフォルトの名無しさん
2016/03/09(水) 13:12:50.04 ID:lt6TsBBU
phpを隠したいぐらいなら最初から使わなきゃいいのにw
930 :
デフォルトの名無しさん
2016/03/09(水) 13:13:46.38 ID:zr//P7+1
>>927 そこ、広告収入かなりすごいらしいね
ほんとそういうサイト作りたい
931 :
デフォルトの名無しさん
2016/03/09(水) 15:14:51.52 ID:r54nNSpY
>>929 phpに限った話じゃないけど、あなたの使ってる言語では環境を明示することが推奨されてるの?
932 :
デフォルトの名無しさん
2016/03/09(水) 15:25:06.33 ID:lt6TsBBU
表面的に隠したところで意味ないしw
933 :
デフォルトの名無しさん
2016/03/09(水) 15:37:08.72 ID:r54nNSpY
934 :
デフォルトの名無しさん
2016/03/09(水) 15:38:30.19 ID:H6Adcpz7
隠す隠さないは、PHPとは別の話だろ
935 :
デフォルトの名無しさん
2016/03/09(水) 15:45:18.55 ID:lt6TsBBU
別にphp使ってないとは一言もいってないんだがなぁw
攻撃者はヘッダー情報やらURLなんて見て判断しないから
そのへんはサーバのログ見りゃわかるだろ
936 :
デフォルトの名無しさん
2016/03/09(水) 15:45:58.43 ID:zr//P7+1
そんなことよりどんなアプリ作って儲けるかを考えたい。
ちなみに俺は独学クソコードで一昨年作ったアホアプリで500万しか稼げなかった。
10年くらい前に作った学生以下の知能のとき作ったアプリは2000万以上稼げたのに最近めっきりダメだ。
937 :
デフォルトの名無しさん
2016/03/09(水) 16:37:37.49 ID:EPlXKpIC
938 :
デフォルトの名無しさん
2016/03/09(水) 16:38:49.98 ID:H6Adcpz7
このスレの話題じゃないだろうに
939 :
デフォルトの名無しさん
2016/03/09(水) 21:59:31.10 ID:v9Ad+UvV
だが、そこがいい。
940 :
デフォルトの名無しさん
2016/03/10(木) 02:03:46.03 ID:K/dg4BoX
10年前はたぶん今よりサイトもアプリも少なかったんじゃね
競合が少ないから稼ぎやすいってだけ
941 :
デフォルトの名無しさん
2016/03/10(木) 02:29:43.50 ID:I4fg8pde
初学者です。
変数の宣言や寿命について質問します。
(1)
他の動的言語と同様、PHPは変数宣言しなくてもさくっと使えるのがメリットだと思いますが、
あえてローカル変数を明確に宣言したいときは、どのように記述すれば良いでしょうか。
もし変数宣言を強制する方法があれば、それも併せてお願いします。
(2)
関数以外の { } ではスコープが発生しない(?)と聞いたのですが
for等である程度複雑な処理をする場合は、他の言語よりも気持ち細かめに関数化するのが良いのでしょうか?
942 :
デフォルトの名無しさん
2016/03/10(木) 02:43:41.27 ID:WPKFXTBi
perlのlocalやjsのletのようなものはphpにはないけど別に問題ないね
943 :
デフォルトの名無しさん
2016/03/10(木) 02:49:37.62 ID:I4fg8pde
無いですか。ありがとう。
無いなら無いなりに、こういう書き方をしてるよってのはありませんか。
944 :
デフォルトの名無しさん
2016/03/10(木) 03:07:58.90 ID:uzgEooUV
945 :
デフォルトの名無しさん
2016/03/10(木) 03:09:36.40 ID:AX52NT3y
>>943 スクリプトの先頭に
error_reporting(E_ALL);
これで怒られたら、そこで考えなよ
946 :
デフォルトの名無しさん
2016/03/10(木) 10:15:34.23 ID:zqa8fCQ8
>>943 一時変数みたいのは使い終わったら unset するようにしてる。
全部が全部じゃないけど、多少なりともサイズの大きくなるやつは。
自分でスコープの終わりを明示するイメージ。
つか { } でのスコープの区切りは欲しいけど、それやるなら使用前の変数宣言が必要になるから php の思想とは合わないんだろうね。
947 :
デフォルトの名無しさん
2016/03/10(木) 11:09:07.15 ID:kGRYisxx
ローカル変数を明確にするよりもグローバル変数を極力使わないようにする。
そのために関数化したりオブジェクト指向化するのも有効な手段。
あと区別するために変数にprefix付けるとかあるけどお勧めしない。
948 :
デフォルトの名無しさん
2016/03/10(木) 14:23:56.13 ID:8TSnl84z
グローバル変数使うと何がダメなの?
949 :
デフォルトの名無しさん
2016/03/10(木) 14:51:27.94 ID:ES1Z+z/1
>>948 自分で「あ、こりゃダメだな」と思うまでは使ってよし
950 :
デフォルトの名無しさん
2016/03/10(木) 15:00:08.59 ID:V5fpOGLe
includeしたりしなきゃ特に問題はない
951 :
デフォルトの名無しさん
2016/03/10(木) 19:34:54.92 ID:8TSnl84z
952 :
デフォルトの名無しさん
2016/03/10(木) 20:28:02.26 ID:V5fpOGLe
変数名かぶった2つのファイルをincludeした時のことを考えれ
953 :
デフォルトの名無しさん
2016/03/10(木) 22:16:45.03 ID:9EQi99EP
ごめん、2ファイルの純情な感情の事なんか考えたくない。
954 :
デフォルトの名無しさん
2016/03/10(木) 22:37:16.30 ID:hp2GaphC
>>952 IDEが検知してくれるからへーきへーき
955 :
943
2016/03/11(金) 00:06:40.14 ID:a6R8C1/e
変数の宣言等について質問した>943です。
ありがとう。
>>945 開発中は必ず記述するようにクセつけるようにします。
>>944>>946
unsetで寿命を明示するのは良いですね。
>>947 Cだったと思いますが、グローバル変数には g_ を付ける、なんて規約を見たことがあります。
あんな感じですかね。
956 :
デフォルトの名無しさん
2016/03/11(金) 06:46:23.06 ID:i2cGi8Gp
>>952 すまんがちょっと教えてくれ
includeしただけでグローバル変数がダブるってどんな状況?よくあるもの?
957 :
デフォルトの名無しさん
2016/03/11(金) 09:27:42.09 ID:N+8Oop6J
>>956 あちこちから拝借した直接関係無いライブラリでたまたま同じグローバル変数名を使ってるとか。
DBコネクションとかファイルポインタとか、グローバル変数にしたそうで名前もダブりそうなのなんていろいろあるじゃん。
C みたいにグローバル変数のスコープをファイル内に限定できれば気軽だけどな。
PHPに限らずJSなんかだと心当たる人多いんじゃね?
958 :
デフォルトの名無しさん
2016/03/11(金) 09:49:44.67 ID:vQZosf1d
>>952 問題ってそれか…
それなら全く問題ない
さすがにそこまでアホなことしない
959 :
デフォルトの名無しさん
2016/03/11(金) 13:27:06.01 ID:Juk+9rAm
あんな質問してる時点でアホ
あらゆる状況を想定できないとプログラマー向いてない
960 :
デフォルトの名無しさん
2016/03/11(金) 19:47:48.46 ID:i2cGi8Gp
>>957 違う
includeしただけでダブるケースなんだから、
関数やclassその他の定義の内側でglobal $var;してるのではなく
グローバルスコープで直接処理書いてるってことじゃん
読んだだけで副作用出るライブラリってことにならんか?
どっかから拾ってきたライブラリじゃなかったとしても
普通、呼び出されたファイル自体だけがグローバルな処理書いて
他のファイルは関数・class等を提供するだけにとどめるもんじゃないんか
961 :
デフォルトの名無しさん
2016/03/11(金) 20:30:55.79 ID:N+8Oop6J
>>960 ライブラリが提供する一連の機能(function)で引き回す情報をグローバルに取るケースについて言ってるが、
そういうには class化して閉じ込めてしまえよってのが元々の話なんじゃないの?
なんか想像力が足りてない気がするよ。
962 :
デフォルトの名無しさん
2016/03/11(金) 20:42:29.60 ID:a6R8C1/e
グローバルに注意しないとそういうことが起こるよ、って例示なんだから
広く普及しているライブラリはその対策がなされてるってことよね?
963 :
デフォルトの名無しさん
2016/03/11(金) 21:15:59.18 ID:i2cGi8Gp
>>961 その場合問題になるのはincludeではないだろう
・関数やclassの中で、global宣言によって特定のグローバル変数に設定などを放り込む
⇒ どのファイルに記述されているかは関係なく、includeも関係なく、特定のグローバル変数に依存していることが問題
・メイン以外のファイルの中で、グローバル領域で変数を扱っている
⇒ includeやrequireなどで読んだだけで(関数等の定義だけではなく)何らかの処理が行われることが問題
では後者が生じる状況、そうせざるを得ない状況はどんなものか?というのが自分の質問
964 :
デフォルトの名無しさん
2016/03/11(金) 22:25:26.80 ID:FGOOX3Tv
>>956 名前空間の存在理由考えればそういう状況はある
いやあったといったほうが正しいか
今も間違ったプログラミングを覚えた初心者ライブラリ製作者とかはやらかしかねないけど
965 :
デフォルトの名無しさん
2016/03/11(金) 22:49:04.69 ID:N+8Oop6J
>>963 後者のような話をどっから持ち出してきたの?
んでグローバル変数を限定した方がよいという理由とそれを分けて考えたいのはなぜ?
ちょっと考えれば問題の本質は変わらないことに気付きそうなもんだが。
まあその前者についての見解もいま一歩な気がするからどこか消化不良なんだろうけど。
前者の問題は関数が特定のグローバル変数に依存することではなく、共有の資源であるグローバル変数名を自分が独占している前提に立っていることだよ。
966 :
デフォルトの名無しさん
2016/03/11(金) 22:50:28.95 ID:kGmCd3Ag
>>963 PHPをshtml風にテンプレートとして使う場合など後者の処理になりがち。
各ファイルでグローバル変数を使えば衝突することになる。
もちろん、これはとても悪い処理だよ。
967 :
デフォルトの名無しさん
2016/03/11(金) 22:56:53.29 ID:kGmCd3Ag
質問しているように見えて単にこう主張したいだけだよね。
「他のファイルは関数・class等を提供するだけにとどめるもんじゃないんか」
これは確かにそうだけどね。
968 :
デフォルトの名無しさん
2016/03/11(金) 22:58:49.73 ID:RA7SR1be
PHPにクラスなんてあったっけ
969 :
デフォルトの名無しさん
2016/03/11(金) 23:51:26.62 ID:i2cGi8Gp
>>964 名前空間は基本的に変数は関係ない、よってグローバル変数とは直接関わりがない
>>965 956に対して「ライブラリが〜〜」とか言い出すのがそもそもおかしい
「global宣言を乱用するとコードの見通しが悪くなる。include自体が問題なのではない」と言われれば、「なるほど確かに」と答えるが
発端は、話の流れからいって「なぜグローバル変数は悪いか」に真っ当な答えがないと自分が思ったからだ
970 :
デフォルトの名無しさん
2016/03/12(土) 00:00:48.74 ID:A3MCNpsP
それと、include即globalを触る構成の例、さらにglobal宣言を使う「良い」例を
パッと思い浮かべられなかったんで、そこんとこも含めて聞いてみた
思い出せる範囲だとpukiwiki本家がglobalを使ってたなあ、ぐらい
>>964 ページのヘッダ出力とフッタ出力とメイン出力を分けてヘッダとフッタをincludeだけで済ますようなタイプか
971 :
デフォルトの名無しさん
2016/03/12(土) 00:01:29.22 ID:V1lRWN9o
>>969 ライブラリの話はひとつのケースとして挙げてるわけで、そこから問題の本質を考えていけないお前の想像力が足りないだけだから。
コードの見通しの問題じゃない、どちらかと言えば管理の問題だ。
>>965 の一番最後の文を理解できるまで読み返せ。
972 :
デフォルトの名無しさん
2016/03/12(土) 00:01:58.59 ID:Zbyfy48z
PHPにクラスなんてあったっけ???
973 :
デフォルトの名無しさん
2016/03/12(土) 00:01:59.35 ID:A3MCNpsP
974 :
デフォルトの名無しさん
2016/03/12(土) 00:14:45.12 ID:9ZmKFi7/
>>972 そのやり方よりも、これこれこういうわけでクラスとはいえないんじゃないかっていうのを先に出したほうが展開がスムーズだよ。
975 :
デフォルトの名無しさん
2016/03/12(土) 00:17:44.14 ID:A3MCNpsP
976 :
デフォルトの名無しさん
2016/03/12(土) 00:39:36.68 ID:Zbyfy48z
むぁぢかよ
普通にオブジェクト指向プログラミング言語じゃねぇか
977 :
デフォルトの名無しさん
2016/03/12(土) 01:30:32.54 ID:V1lRWN9o
>>976 そういう書き方もできるというだけで、単なるごった煮と思えなくもない。
組み込み関数なんかを見るに、とにかくなんでも突っ込んでおけ的な。
978 :
デフォルトの名無しさん
2016/03/12(土) 17:10:01.12 ID:yd6bZAt6
>>970 そう。そういう処理。ちなみにWordPressは、こうなってる。
グローバル変数-WordPressCodex日本語版
https://wpdocs.osdn.jp/グローバル変数
WordPressのコードの全体にわたって、いろいろな目的でWordPress固有のグローバル変数が使用されます。
WordPressが生成するデータのほとんど全部がグローバル変数に見られます。
注意:適切なAPI関数があればそれを使うのがベストです。グローバル変数を直接変更するのは避けましょう。
979 :
デフォルトの名無しさん
2016/03/12(土) 19:40:28.25 ID:wBoLlEZv
>>977 一応JavaScriptよりはまともなClassではある。
まあごった煮なのは当然というか作ってる連中が
ごった煮を目指してます と明言してるしな。
980 :
デフォルトの名無しさん
2016/03/12(土) 19:45:21.07 ID:0SfN7+lJ
JavaScriptはそもそもクラスベースじゃなくてプロトタイプベースですし
個人的には既存組み込み関数に対するオブジェクト指向インターフェイスを追加してくれると有り難いんだけど, まぁ面倒だろうしねぇ
981 :
デフォルトの名無しさん
2016/03/12(土) 19:46:52.58 ID:Lp9XrA38
先生、レベルが下げ止まりません!
982 :
デフォルトの名無しさん
2016/03/12(土) 21:59:34.46 ID:jgL6oJsP
データベースのTIME型(HH:MM:SS)に渡すために5桁〜6桁の整数を送信しています。
送信確認画面でユーザーには(例えば)220000という数字を22:00に変換して表示させたいです。
<th>平日の活動時間帯</th>
<td>
<?=$weekday_begin_time."〜".$weekday_end_time?>
<input type="hidden" name="weekday_begin_time" value="<?=$weekday_begin_time?>" >
<input type="hidden" name="weekday_end_time" value="<?=$weekday_end_time?>" >
</td>
解決策はないでしょうか?
983 :
デフォルトの名無しさん
2016/03/12(土) 22:18:44.37 ID:jgL6oJsP
こんな感じの自作関数で実装できましたが、もっと簡潔な方法があれば教えてほしいです
function timechange($time) {
$time4digit = substr($time, 0, -2);
echo wordwrap($time4digit, 2, ":", true);
}
984 :
デフォルトの名無しさん
2016/03/12(土) 22:24:09.17 ID:jgL6oJsP
何度も連投すみません
上の関数だと6桁は正常に:で分割(12:34)になるんですが、
5桁だと上手くいきません。ご教授ください
985 :
デフォルトの名無しさん
2016/03/12(土) 22:34:26.61 ID:j4grSBgs
function timechange($time) {
$time = sprintf("%06d", $time);
$time4digit = substr($time, 0, -2);
echo wordwrap($time4digit, 2, ":", true);
}
986 :
デフォルトの名無しさん
2016/03/12(土) 22:39:06.78 ID:V1lRWN9o
>>984 最初に1000000を足して7桁に揃えてからやるとか、sprintf でやってみるとか?
sprintf ('%02d:%02d:%02d', $time/10000, $time/100%100, $time%100)
987 :
デフォルトの名無しさん
2016/03/12(土) 22:41:02.88 ID:V1lRWN9o
あーごめん、条件を適当に読み過ぎたw
無視するか拾えるものだけ拾って
988 :
デフォルトの名無しさん
2016/03/12(土) 23:03:02.90 ID:jgL6oJsP
>>985 成功しました。ありがとうございます。
sprintf便利すぎますね
989 :
デフォルトの名無しさん
2016/03/12(土) 23:31:38.00 ID:j4grSBgs
990 :
デフォルトの名無しさん
2016/03/13(日) 02:21:29.73 ID:MpEKJeeZ
クラスってどんな時に使うんでしょうか!!!
991 :
デフォルトの名無しさん
2016/03/13(日) 03:01:44.79 ID:9kqv0Cg0
使いたい時に使う
992 :
デフォルトの名無しさん
2016/03/13(日) 05:10:49.45 ID:MpEKJeeZ
>>991 じゃあてめえをぶん殴るのにも使えんのか?
なんてね(*ノω・*)テヘ
993 :
デフォルトの名無しさん
2016/03/13(日) 06:43:19.88 ID:ZQ9tZTy0
そういう時はイスを投げるんだよ
典型的には特定の処理に関わる関数や変数をひとまとめにしたいときに使う
たとえばphpからDBを扱うときによく使われる $dbh = new PDO($dsn); に出てきてるPDO、これclass
994 :
デフォルトの名無しさん
2016/03/13(日) 08:17:52.84 ID:th1TODZW
プログラマが投げるのはマサカリと決まっています。
995 :
デフォルトの名無しさん
2016/03/13(日) 11:09:47.54 ID:ULJgt6Ph
>>983 function timechange($time) {
$time = sprintf(
996 :
デフォルトの名無しさん
2016/03/13(日) 11:12:07.74 ID:ULJgt6Ph
function timechange($time) {
$time = sprintf("%06d", $time);
$h = substr($time, 0, 2);
$m = substr($time, 2, 2);
echo $h.':'.$m;
}
997 :
デフォルトの名無しさん
2016/03/13(日) 13:14:43.79 ID:WNHsfoP5
sprintf 使うなら素直に hh:mm で出せばいいじゃない。
sprintf ('%02d:%02d', $time/10000, $time/100%100,)
998 :
デフォルトの名無しさん
2016/03/13(日) 15:35:19.10 ID:kS6/ihj4
ume
999 :
デフォルトの名無しさん
2016/03/13(日) 15:49:45.37 ID:hhfCvQlY
runa
1000 :
デフォルトの名無しさん
2016/03/13(日) 17:47:07.69 ID:th1TODZW
ほい
1001 :
1001
Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 119日 22時間 48分 59秒
1002 :
1002
Over 1000 Thread