トップページtech
1002コメント340KB

【PHP】下らねぇ質問はここに書き込みやがれ 3©5ch.io

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん 転載ダメ©2ch.net2015/11/14(土) 18:58:08.11ID:AjDQR89s
PHPに関する下らない質問用避難スレです。
まず読むこと【PHPマニュアル】
http://www.php.net/manual/ja/

前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 2
http://peace.2ch.net/test/read.cgi/tech/1436449286/
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
0002デフォルトの名無しさん2015/11/14(土) 18:59:23.41ID:AjDQR89s
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.5
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・ 解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・ 誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・ SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0003デフォルトの名無しさん2015/11/15(日) 05:42:30.05ID:27iIExdb
PHP7は年内に正式リリースされますか?
0004デフォルトの名無しさん2015/11/15(日) 08:55:09.65ID:V8NTA7lA
>>1
0005デフォルトの名無しさん2015/11/16(月) 01:42:57.44ID:7yHHnP/U
職種別、資格別、スキル別の平均最低月給リスト
http://jobinjapan.jp/cate/
全掲載求人109,160件の平均最低月給195,800円

PHPの求人 の平均最低月給219,600円
http://jobinjapan.jp/job-listing/keyword-php-pg.html
0006デフォルトの名無しさん2015/11/18(水) 20:20:52.39ID:2FaZ15Uc
PHPで掲示板を作るのにmysqlって必要?
SQL言語ってのがよくわからんから取っ掛かりにくいイメージ
0007デフォルトの名無しさん2015/11/18(水) 20:28:57.34ID:DfzyxZL4
必須じゃない
掲示板データをファイルで持たせ、PHPで読み書きすればできる
でもDB使うのに比べると、処理が色々面倒
0008uy ◆Qawu9.2l1E 2015/11/18(水) 21:25:08.15ID: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
0009デフォルトの名無しさん2015/11/18(水) 22:51:58.50ID:4T/DAPf8
sqliteでいいじゃん
0010デフォルトの名無しさん2015/11/19(木) 23:58:23.69ID:TlO4dIMX
SQLが分かるなら、何でもいいよ
0011デフォルトの名無しさん2015/11/20(金) 15:04:18.40ID:G0cvckZm
PHP、MySQLなんて窓から投げ捨てて、node.jsとMongoDBで作ればいいよ
0012デフォルトの名無しさん2015/11/21(土) 02:07:47.22ID:uOqPRxa8
html のボタンから .php のページを作成して、
そのページからブラウザバックで戻る場合はhtmlに戻るんですが、
html → php → php で戻る時に”有効期限切れです”になります。

何か良い方法有りますでしょうか
0013デフォルトの名無しさん2015/11/21(土) 16:25:19.02ID:U/iPWgJ7
そりゃ、良い方法はあるんだろうけどさ
その質問内容に答えられるかどうかは、難しい問題だな
0014デフォルトの名無しさん2015/11/22(日) 11:17:31.43ID:i/I0leYF
説明するの面倒だからググってみたけど、このへんどう?
http://www.glamenv-septzen.net/view/29
0015デフォルトの名無しさん2015/11/22(日) 16:54:02.65ID: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言語って奴なの?
0016デフォルトの名無しさん2015/11/22(日) 17:14:08.23ID:6dgomfC7
こういうソース見るたびにサーバでやれよカスがって思う
0017デフォルトの名無しさん2015/11/22(日) 17:15:29.20ID:i/I0leYF
それjqueryかなんかの一部じゃないの?
SQLといえるのはその中の ASC と DESC くらいだな

SELECT * FROM table WHERE id < 10 ORDER BY id DESC

とかがSQL
0018デフォルトの名無しさん2015/11/22(日) 17:25:34.08ID:6dgomfC7
>>17
ASC, DESCはSQLでも使うけれどSQL以外でも普通に使われる、昇る・降るの意味のascend, descendの略語だぞ
0019デフォルトの名無しさん2015/11/22(日) 17:27:20.08ID:i/I0leYF
んなわかりきったこと言いなおさんでも
0020デフォルトの名無しさん2015/11/22(日) 17:30:41.49ID:6dgomfC7
そうか、余計なお世話だったな、悪かった
0021デフォルトの名無しさん2015/11/22(日) 18:23:19.37ID:KRMusb0k
RSSリーダ(アグリゲータ?)を作っているのですが、現在は1時間に1回cronでスクリプトを動かし、
いくつかのサイトでデータを取得→MySQLに保存→それをPHPから読み込み表示 という風にしています。

今は自分だけがローカルで使うだけなのですが、このようなものを外部公開してある程度アクセスがあることを考えると、
PHPファイルを表示するたびにMySQLとやりとりするというのは手法として適切なのでしょうか?
データを取得するたびにHTMLファイルを生成するべきなのでしょうか?
この辺の、データベースの扱いに関する定石のようなものを教えていただきたいです。
0022デフォルトの名無しさん2015/11/22(日) 19:12:02.12ID:z6GZ7E/8
1.表示するたびにMySQLとやりとりする
2.キャッシュの利用
3.静的ファイル(html)の生成

負荷が増大した場合には、上記の順に対応する。
大量のデータを集計するとかでないなら1で十分だと思うけど。
0023デフォルトの名無しさん2015/11/22(日) 19:17:21.49ID:6dgomfC7
動的な部分以外をできるだけ再計算しないようにキャッシュするのはよくあるが
まずは1回の表示にどんだけCPUを食うかの見積もり/測定と
ピーク時のアクセス数/秒をどのくらいと想定するかだな
0024152015/11/22(日) 20:27:09.91ID:HWNgOEsY
>>16

すまん、ちょっとわからないから聞きたいんだけど、自分のデータベースに置いてあるデータって、ドメインが違う別のサイトからでもSQL文章書いて呼びだせるの?

無料ブログサービス(例えばlivedoor)にアンケートを設置して、その回答を別のサーバ(例えばさくら)に設置してあるDBから呼び出す事は可能?
0025デフォルトの名無しさん2015/11/22(日) 22:41:11.98ID:PowSWGiN
たぶん、別のドメインにアクセスできないのは、
JavaScriptだけじゃないの?

クロスサイトスクリプティングで検索して
0026デフォルトの名無しさん2015/11/23(月) 02:27:59.45ID:rcJ9bRS0
15も24もphp関係ない件
0027uy ◆Qawu9.2l1E 2015/11/23(月) 04:35:16.51ID:tOBxxsaN
Jekyll使いのワイ 高みの見物

PHPなんかやるよりJekyll覚えたほうが100倍役立つよ
0028デフォルトの名無しさん2015/11/23(月) 04:41:30.81ID:5ff7Mw2t
>>24
呼び出せるかどうかはサーバの設定次第だろ
なんのためにDB接続する時にIP入力すると思ってんの?
localhostだけならそんなの必要ないだろう?
0029uy ◆Qawu9.2l1E 2015/11/23(月) 14:32:29.25ID:tOBxxsaN
2chの書き込みフォームを
Yahooログインフォームに見せかけてID pass入れさせる遊びなら中学生の頃にやってたわ
0030デフォルトの名無しさん2015/11/23(月) 15:26:47.79ID:V5rLbgq+
餓鬼が混じってますね
0031uy ◆Qawu9.2l1E 2015/11/23(月) 17:05:47.74ID:QX2C8YaD
ペチパーはスキルが壊滅的
0032デフォルトの名無しさん2015/11/23(月) 18:03:57.01ID:fL3P/oyE
>>22-23
ありがとうございます。
確かに実際の負荷を見ずには何とも言えませんね。
ひとまずCache_Liteなどを調べてみます。
0033デフォルトの名無しさん2015/11/23(月) 19:27:18.15ID:V5rLbgq+
webpeog板のPHPスレ潰したやつこいつだったのか
0034uy ◆Qawu9.2l1E 2015/11/23(月) 22:22:23.18ID:QX2C8YaD
来年くらいにはJekyllに土下座してるよこのスレの奴ら

静的で良い場所をサーバーに処理させてる文化は死ね
0035デフォルトの名無しさん2015/11/23(月) 22:38:29.62ID:oQzmq6S3
uyってクライアントに処理をさせることが静的だと表現するようなレベルの人だっけ
0036デフォルトの名無しさん2015/11/23(月) 22:43:54.91ID:oQzmq6S3
2行目で話を広げてるのかと思ったけどJekyll限定の話か
0037デフォルトの名無しさん2015/11/23(月) 22:49:05.80ID:TqdX98Rl
>>33
移動して正解だったね
0038uy ◆Qawu9.2l1E 2015/11/24(火) 05:56:55.80ID:hHA41+PV
>>33,37
Jekyllに搭載されたLiquidはとても簡潔な方法でページを生成する事ができます
0039デフォルトの名無しさん2015/11/24(火) 07:05:51.45ID:2nZ7GnSB
スレ違いな布教は結構です。
バレたからって開き直って向こうの再現するのはやめてね。
0040uy ◆Qawu9.2l1E 2015/11/24(火) 18:41:59.83ID:lNjW2jss
>>39
これまで君がレスしている名無しは全部uyだったよドンマイ
0041デフォルトの名無しさん2015/11/25(水) 02:59:46.94ID:SowMgAO+
>>39-40 は明らかな自演
0042デフォルトの名無しさん2015/11/25(水) 04:00:20.02ID:Qex1VIVs
そう思った根拠は?
0043デフォルトの名無しさん2015/11/25(水) 05:25:29.06ID:+GV/gedV
>>40 こいつすげえキモイな
0044デフォルトの名無しさん2015/11/25(水) 14:52:15.69ID:D7leeLYt
ブログやるならwordpressってのは知ってるけど、WEBサービスとか掲示板とかを作る時もPHPでwordpress使うもんなの?
0045デフォルトの名無しさん2015/11/25(水) 17:41:45.37ID:SQGzzFnc
>>44
WordPressは使わない。
CakePHPとかフレームワークを使う。
0046デフォルトの名無しさん2015/11/25(水) 21:28:59.16ID: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 = "命拾いしたな!!";}
?>
0047デフォルトの名無しさん2015/11/25(水) 22:46:34.06ID:SowMgAO+
>>46
$wdは配列化してforeachの方が分かりやすいんじゃないかな。
0048デフォルトの名無しさん2015/11/25(水) 22:47:30.97ID:SowMgAO+
とおもったが
unset($wd_array);
shuffle($wd_array);
foreach ($wd_array as $t)
って。
0049デフォルトの名無しさん2015/11/26(木) 17:29:59.67ID:nxLEBViH
file get contentsでサイトをスクレイピングする際に、スクリプトからのアクセスじゃなく、通常のサイトからのアクセスと相手側のサーバーに判断させる方法ってある?
0050デフォルトの名無しさん2015/11/26(木) 17:39:43.14ID:kUQEgtrr
stream_context_create()でcontext作れ
javascriptやcookieを駆使して確認するサイトが相手なら諦めるかがんばれ
0051デフォルトの名無しさん2015/11/26(木) 17:44:37.33ID:TMCNTirj
file_get_contentsの第3引数で通常のサイトからのアクセスとやらに合わせる
0052デフォルトの名無しさん2015/11/26(木) 19:00:39.38ID: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の中身をどう書けばいいかわからん
0053デフォルトの名無しさん2015/11/26(木) 19:22:46.41ID:kUQEgtrr
普通のブラウザでアクセスしたときに送ってるHTTPリクエストヘッダをそのまま送れ
php.netのサンプルの記述そのまま送ってダメでしたーとかナメてんのか
0054デフォルトの名無しさん2015/11/26(木) 19:59:05.34ID:HoDq/m7x
ゆとりだねえ
0055デフォルトの名無しさん2015/11/26(木) 22:04:11.81ID:TsHDKWYc
http://rare-gacha.com/gacha/monst/gacha.php?ef=1&;eid=18
ここの画像データはどこから拾ってきてるんですか
0056uy ◆Qawu9.2l1E 2015/11/26(木) 23:04:09.41ID:hdMKEMdm
>>44
ブログやるならどう考えてもJekyll一択
コメントにはDisqusを設置して終わり
サーバーサイドで一切処理させないからHTMLさえアップロード出来ればどこでもブログ設置出来る
さらに物足りなければjQuery使えば動的になる

ブログ製作としてPHPはオワコン
0057uy ◆Qawu9.2l1E 2015/11/26(木) 23:05:55.54ID:hdMKEMdm
一体PHPで何を作ろうとしているのですか?^^;

無駄過ぎwwwwwwwwwwww
0058デフォルトの名無しさん2015/11/26(木) 23:34:19.72ID:w0MF98vj
昔ながらの申請承認システムを作ってます^^
0059デフォルトの名無しさん2015/11/27(金) 05:11:29.32ID:j2B8VuQt
中卒引きこもりニートゆうちゃん予備軍相手すんな
0060uy ◆Qawu9.2l1E 2015/11/27(金) 05:25:52.07ID:2RpgJ5AO
自分は法を犯す事はしないよ
法律で裁けない悪事のギリギリラインまでしかしないスタンス
ちなみに急いでるわけでもない癖に信号無視をする人間が大嫌い
0061uy ◆Qawu9.2l1E 2015/11/27(金) 05:39:51.87ID:2RpgJ5AO
そういう小さな規則違反の積み重ねが治安を悪化させ凶悪犯罪を起こすんですよ
東京の道路にゴミはあまり落ちていません
理由は、ゴミが少しでも落ちていればそこにゴミを捨てる人が次々と現れ
ゴミ山がそこに出来上がるから
人通りの多い場所は徹底的に綺麗する必要があるのです

プログラミングも同じ
PHPのような言語があると凶悪なバグが発生するから駆逐しないとね
0062uy ◆Qawu9.2l1E 2015/11/27(金) 05:48:56.88ID: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」



いつかこういう事件が起きる
0063デフォルトの名無しさん2015/11/27(金) 07:42:18.96ID:rRYNYnxD
君さぁ・・・やることもなくてアニメばっか見てるから現実感がないことばっか言ってるよ
もっとリアル大切にね
0064デフォルトの名無しさん2015/11/27(金) 10:37:22.00ID:pFPyxWBn
犯罪者が沸いてるな
0065デフォルトの名無しさん2015/11/27(金) 15:04:07.26ID:xCOpxAq/
phpとの関係ほんのちょっとしかないんだけど

ファイル添付機能があるとして、
添付ファイル単体と添付ファイル全体のファイルサイズの上限値を定数で規定するとき、定数名なんて書くべき?
0066デフォルトの名無しさん2015/11/27(金) 22:38:01.84ID:wAnq9rzm
割れ窓理論からのまどマギ。うま…くない
0067uy ◆Qawu9.2l1E 2015/11/28(土) 06:20:50.80ID:lBYFUN9m
SIZE
0068デフォルトの名無しさん2015/11/28(土) 11:45:51.95ID:wlOalWDw
質問です。
if文等の処理を、StateパターンやStrategyパターンに置き換えると、
if文が消えるという説明を本やネットで見かけました。

たしかに、処理中でのif文は無くなります。
しかし結局、各処理のオブジェクトを生成するために、if文等の分岐が必要です。
if文が消えるというというよくある説明は誤りではないでしょうか?
0069デフォルトの名無しさん2015/11/28(土) 11:59:08.29ID:qx4IBKnQ
>>68
http://codepad.org/
簡単なのでいいから
0070デフォルトの名無しさん2015/11/28(土) 12:24:10.31ID:VMolQjLG
そりゃ実践上はソースから完全にifを無くすのは無理だろうがそういうことじゃないだろ
ある機能について、状態やらサブクラスやらを事前に準備しておくことで、処理がまっすぐ一本道に流れるようにってことだろ
0071デフォルトの名無しさん2015/11/28(土) 12:42:45.03ID:wlOalWDw
ご回答ありがとうございます。
>>69
コードを書くのは大変なので。すみません。

>>70
よくある説明で、「if文がなくなります」とあるのに、
処理の外側にif文が移っただけじゃん!と疑問に思ったもので。
Strategyパターンを採用した場合、メインの処理からif文はなくなるけど、
結局、前準備ではif文等でオブジェクトを作り分けないとダメなんですね。
0072デフォルトの名無しさん2015/11/28(土) 12:43:58.77ID:SH+3mbvY
オブジェクト指向っていっても言語によって仕様は違うし足りないものもある
if文を完全に排除した記述が出来る言語もあればそれが出来ない言語もある
といったところでしょう

例えばwikipediaのSingletonの実装例もそうだけど
ttps://ja.wikipedia.org/wiki/Singleton_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3
phpには問題点および改善策の
>private static final Singleton instance = new Singleton();
このような記述が出来ないから
このロジックにおいてifが必要になったりするわけだし
0073デフォルトの名無しさん2015/11/28(土) 13:04:36.96ID:VMolQjLG
まず仕様がこれこれこうで、この仕様ならこの部分はこういうやり方すれば生産性向上・バグ発生低減・改修難易度減少が見込めそう、でやり方を選んで設計
ここで「やり方」の選択肢として持っておくのがデザパタ、あくまで選択肢でしかない
ifを除去できるとか細かいことにこだわってどうする

そのパターン使ってもifを他所に押し付けるだけの結果にしかならない処理を書くときに、そのパターンを無理やり使うならそれはただのアホ
どんな状況でもこのパターンを使えばifがなくなってスッキリ書けますなんて言う奴がもしいたとしても、それをうのみにして考えるやつもアホ
0074デフォルトの名無しさん2015/11/28(土) 13:54:09.77ID:wlOalWDw
>>72-73
とても参考になります。
ありがとうございました。
0075デフォルトの名無しさん2015/11/28(土) 18:05:09.08ID:l+/0cMLb
>>68
state次第で実行するメソッドを分岐させるから呼ばれるメソッド内部でif文が発生することがないってことじゃなくて?
0076uy ◆Qawu9.2l1E 2015/11/29(日) 04:25:54.53ID:RQPUWZLH
初期化を複雑にすればif文はすべて消すことは可能だけど
デザパタなんて頼ってる奴が言ってるのはif文を「減らす」程度の事しか言ってないよ
0077デフォルトの名無しさん2015/11/29(日) 13:08:03.83ID:urMq5ega
システム内検索どうしてる?
全て諦めてGoogle検索利用する手もあるけど
0078デフォルトの名無しさん2015/11/29(日) 14:58:26.84ID:6C60q/4Y
スマホサイトを構築しているんですが、Androidでの動画アップロードが出来ないんです・・・。
画像に関しては問題なくアップ出来るんですが。

標準ブラウザが原因だと思ってChromeをインストールして試したのですが、
それでもアップロードが出来ませんでした。

原因や可能性などお分かりの方がいたら、是非お知恵をお貸し下さいm(_ _)m
0079デフォルトの名無しさん2015/11/29(日) 15:05:35.05ID:RQ97x6ZU
>>78
MIMEとアップロード最大サイズの設定は?
0080デフォルトの名無しさん2015/11/29(日) 15:10:37.72ID:6C60q/4Y
video/mp4,mov,avi,3gp,wmv,webm
データ許容は100MBです
0081デフォルトの名無しさん2015/11/29(日) 15:17:03.27ID:RQ97x6ZU
MIME周辺のコードを晒して下さい
0082デフォルトの名無しさん2015/11/29(日) 15:21:20.04ID:RQ97x6ZU
クォータに余裕はありますか?
0083デフォルトの名無しさん2015/11/29(日) 15:33:14.64ID:urMq5ega
もしかして: http://php.net/manual/ja/features.file-upload.errors.php
0084デフォルトの名無しさん2015/11/30(月) 07:31:38.27ID:gf8VmUCn
帯域制限かけられてんじゃね
0085デフォルトの名無しさん2015/11/30(月) 07:32:12.01ID:gf8VmUCn
↑WIFI接続で問題ないならね
0086デフォルトの名無しさん2015/11/30(月) 20:24:45.97ID:LYBH4EyE
railsやdjangoみたいにプロジェクト内にシステムファイルをインストールしないフレームワークってありませんか?
同じバージョンのフレームワークで一括で管理したい
0087デフォルトの名無しさん2015/11/30(月) 21:17:15.27ID:Yn3dZ4FQ
共通の場所においてシンボリックリンク貼れば統一できるよ
0088デフォルトの名無しさん2015/12/02(水) 23:46:15.37ID:J6p04YqG
iphoneのクッキーの保存期間が短かい気がするのですが
0089デフォルトの名無しさん2015/12/03(木) 11:34:07.25ID:m5yVC19F
クッキーってブラウザの設定のせいか勝手に消えるのがあるよね。
時々会員からログインできないとか勝手にログアウトしたとか連絡きて困る。
0090デフォルトの名無しさん2015/12/03(木) 13:38:11.00ID:gcox+NXP
password_hash()ってphp7でsaltオプションが非推奨になってE_DEPRECATED出るようになるけど

パスワード認証の処理って
「ユーザ入力のパスワードをハッシュ化したもの」と
サーバ内に持ってる「パスワードをハッシュ化したもの」とを比較するもんじゃないの?
さすがに完全固定だとまずいから、動的に、かつ、同じ状況なら一意に、なるように生成したsaltを使ってハッシュ化するもんじゃないの?

すごい人教えて下さい
0091デフォルトの名無しさん2015/12/03(木) 13:44:50.69ID:gcox+NXP
すまん自己解決
password_hash()ってハッシュ文字列かfalseしか返さないじゃんと思ってたけど
正常終了時に返す文字列に方法・コストだけじゃなくsaltも含んでたんだな
だからpassword_verify( $password, $hash )だけで確認できるのか
0092デフォルトの名無しさん2015/12/04(金) 17:10:00.25ID:BH0jlOjz
phpの求人とかってどういう所行けばあるんですかね
0093デフォルトの名無しさん2015/12/04(金) 17:50:28.62ID:1332PcFc
求人情報ぐらい調べることも出来ないやつはお呼びじゃないです
0094デフォルトの名無しさん2015/12/04(金) 19:06:33.76ID:voaNk3eY
独学レベルの30歳は厳しいですかね
0095デフォルトの名無しさん2015/12/04(金) 21:54:27.43ID: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/
0096デフォルトの名無しさん2015/12/04(金) 23:13:40.20ID:U4cocLhy
今日は宴だ
年内に正式リリースできてよかった
0097デフォルトの名無しさん2015/12/04(金) 23:45:22.99ID:eV2PGPuH
>>94
独学の内容によるとしか
0098デフォルトの名無しさん2015/12/04(金) 23:52:21.96ID:km/Is7rX
ふえーphpってもう7.0でてたんだ
いまだに5.5使ってるわ
0099デフォルトの名無しさん2015/12/05(土) 00:30:17.24ID:BHJJmj19
5.5 -> 5.6 -> 7.0 だから安心して
0100デフォルトの名無しさん2015/12/05(土) 00:40:30.25ID:4lBJEMQK
ああ、6無理だったのか
0101デフォルトの名無しさん2015/12/05(土) 02:56:02.75ID:7gxdTJZp
>>97
MVCで裏側含めてブログ作っただけだ。デザインパターンは全てを網羅できてない。
0102デフォルトの名無しさん2015/12/05(土) 12:58:46.75ID:0XvEswv0
趣味だから楽しいんだ
毎日やったら苦痛
0103デフォルトの名無しさん2015/12/05(土) 17:45:45.86ID:7gxdTJZp
やっぱそれか。
ただ、実務がどんなもんか知りたいんだよなー。趣味レベルと変わらんのなら無駄だけど。
0104デフォルトの名無しさん2015/12/05(土) 20:11:09.76ID:pR99dpk0
IT系の仕事委託サイトとか見てみれば?
PHPの案件も結構あるよ。良し悪しはさておき。
0105デフォルトの名無しさん2015/12/06(日) 03:04:20.71ID:rJPGjx9a
アドバイスサンキューだぜ。委託とか何か請求されそうで怖いわ。スレ違いに仕事の相談すんのもあれなんでボチボチがんばりますわ。
0106デフォルトの名無しさん2015/12/06(日) 17:20:54.51ID:d5BBG+3T
ブログ作ったといわれても、ふーんってなるだけでまるで技術レベルが見えないな。
そう考えると人事って大変な仕事なんだな。
0107デフォルトの名無しさん2015/12/06(日) 18:01:17.82ID:Mda62mqF
いやブログ見れば技術レベルはわかるだろ
細かい所のミスチェックする人間かどうかもよくわかるし
0108デフォルトの名無しさん2015/12/06(日) 18:11:02.99ID:55IDH4Bi
技術レベルといえば、PHPの民間資格あったよね。
0109デフォルトの名無しさん2015/12/06(日) 18:24:03.17ID:e/f/cCl4
あの資格の評価ってどうなの?
試験問題見る限り、なんかPHPのメソッドどれだけ暗記してるかの
確認テストにしか見えなかったんだけど。

今からPHP5って資格を取るのがそもそも微妙な感じだけど。
0110デフォルトの名無しさん2015/12/06(日) 19:48:18.36ID:Mda62mqF
それ以外の何で評価するの?
0111デフォルトの名無しさん2015/12/06(日) 20:45:27.04ID:55IDH4Bi
>>109
基本情報とか応用情報の方が評価されそう。
あと受験料が高かった気がする。
0112デフォルトの名無しさん2015/12/07(月) 03:24:01.91ID:Egfo5+P2
>>110
「それ」ってメソッドをどれだけ暗記しているかを指してるんだよね。
>>107と相反してないか
0113デフォルトの名無しさん2015/12/07(月) 17:03:31.28ID:7L51O5Jz
>>112の発言にどういう意図があるのか知らんが >>109は民間資格に何期待してんだって嘲笑しつつ適当に煽り入れただけだよ
もし>>109が本気で資格について考慮し、意見を持つ人間なら そこで具体的な案が出るだろうし、ただ単に不満を吐き出すだけのつまらない人間の無駄話ならそこで収束する
あまり俺の意見はそこには出してないつもり
01141092015/12/07(月) 21:45:33.48ID:Ezteh0P6
>>112
いや、応用もJavaのSJC-PとかOracleマスターとかも持ってるから、
最近仕事でPHPやったついでに取ろうかと思ったんだけどさ。
なんか両者が体系的な知識とか言語仕様の考え方とか、
バックグラウンド的な話をしっかり押さえさせるのと比べて、
関数の使い方がどうこうみたいな話が多いような気がしたんだよね?
それって別に毎回APIググればいいじゃんと。

まあ単に出回ってる教科書や参考書がいけてないだけなのかもしれんけど。
01151092015/12/07(月) 21:46:29.47ID:Ezteh0P6
レス番間違えた…
0116デフォルトの名無しさん2015/12/08(火) 03:55:30.46ID:njHdrP3c
一から出直しな。
0117デフォルトの名無しさん2015/12/08(火) 05:23:51.09ID:+azNL848
>>114
ocj-pやoracle masterが運転免許証なら
PHP技術者認定試験はなめ猫免許証
精通してるフレームワークの名前を列挙した方がマシ
0118デフォルトの名無しさん2015/12/08(火) 09:48:54.78ID:TDczgCiy
確かに金積めば手にはいる免許証だな
PHPにはそういうものはないだろう
0119デフォルトの名無しさん2015/12/08(火) 10:32:24.67ID:mJhPwWLH
死ぬまで有効
0120デフォルトの名無しさん2015/12/08(火) 14:45:54.07ID:njHdrP3c
7リリースされたからもう無効だろ
0121デフォルトの名無しさん2015/12/08(火) 15:00:47.88ID:uetFDAJu
PHP巻き返しなるか動向に注目だな
0122uy ◆Qawu9.2l1E 2015/12/08(火) 16:19:47.99ID:4X3jy2q/
括弧もセミコロンも省略できない動的言語使ってる奴いる?
0123デフォルトの名無しさん2015/12/09(水) 14:11:11.30ID:3ciM3Sf4
いるよー
0124デフォルトの名無しさん2015/12/10(木) 13:11:02.72ID:pn8oaSSs
セミコロン省略できる言語ってどーなん
個人的にセミコロンが省略できる言語って嫌いなんだけど
0125デフォルトの名無しさん2015/12/10(木) 13:47:14.43ID:iwZgNtxz
PythonとかRubyとか
これらはセミコロンあってもエラーにならないんだから、嫌なら書けばいいのに嫌いってなんだよ
動的じゃないけどSwiftもそうだな
実際にセミコロン無しでコード書くとCとかphpでもつい忘れるくらい無いほうが自然なことだと思う
0126デフォルトの名無しさん2015/12/10(木) 18:10:46.55ID:bKbWS+iE
セミコロン省略じゃないけど条件式は必ずboolになる値であっても
($param) や ( ! $param )などとしないで === true や === false を付けるようにしてる
0127デフォルトの名無しさん2015/12/10(木) 20:38:41.34ID:i0vE+fvx
荒らしはスルーしとけよ
0128デフォルトの名無しさん2015/12/10(木) 20:41:05.30ID:pn8oaSSs
パイソンってなんかきっちりしてるイメージあるけど 省略して書けるんだ 意外だな
0129デフォルトの名無しさん2015/12/10(木) 22:50:09.24ID:LAAKLk6w
その代わり複数行にまたがるときは行末バックスラッシュじゃなかったかな。
VBが_だったように。

インデントさえ正しければブロック表現にカーリーブレースは不要と判断した言語だし、
1文1行であることがほとんどだという前提に立てばセミコロン不要という方針もさほど不思議じゃないかなーって思うよ。
0130デフォルトの名無しさん2015/12/10(木) 23:21:27.10ID:V7ddkloI
JavaScriptがセミコロン省略可能だろ
このスレの住人なら普段から使ってるだろう
0131デフォルトの名無しさん2015/12/11(金) 14:02:07.80ID:/dTmo1eO
くだらない話続けてんじゃねーよ
0132デフォルトの名無しさん2015/12/14(月) 20:47:26.64ID:QJL07hoX
>>124
c言語なんかもセミコロン無しで組めるね
0133デフォルトの名無しさん2015/12/15(火) 05:09:02.60ID:ykQTajwy
カンマですか
0134デフォルトの名無しさん2015/12/15(火) 18:06:41.02ID:oDr79mCW
文字列の先頭1バイトだけ切り出したい時は
$string[0]で先頭1バイトだけを確保しておいて残りをsubstr($string, 1)するか、preg_*を使うか、しかないですか?

explode()はデリミタに空文字列を使えないし
られるけどunset($string[0])は使えないしshift()も文字列に対して使えません
かなりの回数で繰り返し処理するので出来るだけ処理コストを減らしたいです
0135デフォルトの名無しさん2015/12/15(火) 20:14:42.64ID:wfwMHlSZ
1文字じゃなくて1バイトって表現が曖昧すぎる
0136デフォルトの名無しさん2015/12/15(火) 20:15:48.91ID:9ZU9YluN
substr($string, 0, 1)
文字列 string の、startで指定された位置から length バイト分の文字列を返します。
http://php.net/manual/ja/function.substr.php

mb_substr($string, 0, 1)
文字数に基づきマルチバイト対応の substr() 処理を行います。
位置は、 strの始めから数えられます。 最初の文字の位置は 0、2 番目の文字の位置は 1、といったようになります。
http://php.net/manual/ja/function.mb-substr.php

確認のため聞くけど、先頭の1文字ではなくて、1バイトを切り出したいの?
0137デフォルトの名無しさん2015/12/15(火) 21:01:04.18ID:Ztl+JyxZ
文字列がphp内部では(mb文字列でも)バイト配列で扱われているからバイト単位のほうがシンプルだろうことと
今自分が作ろうとしている処理では先頭がASCII文字と確定していることから
先頭1バイトと聞きましたが、別にこだわりはありませんので、1バイトではなく1文字の時に使える良い方法があるならそれで構いません
あいまいですかね?
0138デフォルトの名無しさん2015/12/15(火) 22:16:36.47ID:9ZU9YluN
あいまいというか、1バイトを切り出すって表現は
あまり聞かないから違和感を覚えるかな。
文字コードも何を使うか書いてないし。

ASCII文字のみなら、これで良いんじゃない?
substr($string, 0, 1)

マルチバイト文字を含むならこれで。
mb_substr($string, 0, 1)

正規表現は遅いから避けるべきと言われている。
その他の候補については自分でベンチマークを取るといいよ。
0139デフォルトの名無しさん2015/12/15(火) 22:37:00.73ID:9ZU9YluN
あと、>>134 はマルチバイト文字を扱っていて、その前提で、
「1バイトを切り出したい」とも読めてしまう点では、あいまいと言えるかな。
0140デフォルトの名無しさん2015/12/15(火) 22:55:21.84ID:ykQTajwy
1バイトをっていうのは全然あいまいじゃないよ。きわめて明確な表現だし、一般に使われている表現。

雰囲気的には、先頭1バイトとそれ以外に分割したいって感じなので、>>134で書いてるとおり、
先頭1バイト確保と残りをsubstrでいいよ。pregはだめ。要求に対して高価すぎる。

ところで、>>134 = >>137でいいんだよね。
0141デフォルトの名無しさん2015/12/15(火) 23:10:32.38ID:Ztl+JyxZ
ID変わってたのに気付いてませんでした >>134イコール>>137です
javascriptのshift, slice, spliceみたいなものを考えていました
やっぱりsubstr()しかないですかね、これで書くことにします

>>138
キモは残りの部分の取得なんです
先頭1バイトを得るだけなら $head = $string[0]; で $head = substr($string, 0, 1); より1.5倍以上早くかつ簡潔に書けますんで
0142デフォルトの名無しさん2015/12/15(火) 23:49:33.01ID:9ZU9YluN
そもそも、$stringには具体的に何が入っているの?
コードで示せる?
0143デフォルトの名無しさん2015/12/15(火) 23:59:29.27ID:Dgo682IE
$head = $str[0];
$str[0] = '';
0144デフォルトの名無しさん2015/12/16(水) 00:06:10.74ID:ucrbRogg
ダンプしたら文字列長は切り詰められずインデックス0に空文字列が代入されているキモい状態だったから良くない気がしてきた
0145デフォルトの名無しさん2015/12/16(水) 00:07:29.87ID:2u+0RRKa
やめなされやめなされ、と書こうと思ったら自分で気づいてて一安心
0146デフォルトの名無しさん2015/12/16(水) 00:09:43.81ID:8/FCyWgw
んじゃtrimでもいれておきましょうかね
0147デフォルトの名無しさん2015/12/16(水) 00:12:30.51ID:2u+0RRKa
それならsubstrの方が分かりやすいとなる
0148デフォルトの名無しさん2015/12/16(水) 00:17:52.76ID:jAibl+ep
なるほど、と感心しながら
$head = $str[0]; $str = substr($str, 1);
$head = $str[0]; $str = ltrim($str, $head);
どっちが早いのか試してみたらsubstrの方が早かったでござる
わかりにくいだけじゃなく遅い、そりゃそうだよな……

>>144
ord($str)すればわかるけど、それは空文字列でも半角スペースでもなく、0x00すなわちnull byteだ
0149デフォルトの名無しさん2015/12/16(水) 00:20:39.06ID:2u+0RRKa
>>148
分かりにくい上に、$str = '1 abc' のようなものだった場合、
除去しなくていい空白を除去してしまうという挙動の違いをも生んでいる。
やめなされやめなされ。
0150デフォルトの名無しさん2015/12/16(水) 00:28:08.52ID:8/FCyWgw
substrより高速にできるかを競う競技
0151デフォルトの名無しさん2015/12/16(水) 00:29:14.85ID:jAibl+ep
>>149
trim, rtrim, ltrim は第2引数を指定したときは、第2引数に空文字列類が含まれないなら空白とかを除去しないぞ
しかし$str = '+++++';とか$str = '111222333';だった場合に必要ないとこまで文字が消えちゃうのは確か
やめようやめよう
0152デフォルトの名無しさん2015/12/16(水) 00:31:07.04ID:2u+0RRKa
ああー、第二引数にちゃんと$head書いてた。
こんな見落としも発生する、そんなコードでした。
0153デフォルトの名無しさん2015/12/16(水) 00:34:35.69ID:2u+0RRKa
って、$head…?
$head = $str[0];
$str[0] = '';
$str = ltrim($str, "\0");
を目指しているのかと思ったらそうでもなかったことに気づけなかった
>>143>>146 を見てたから勘違いしたと言い訳
0154デフォルトの名無しさん2015/12/16(水) 10:08:13.19ID:RWx+UBiH
>>141
//$stringの扱い
$head = $string[0]; //配列を扱っている
$head = substr($string, 0, 1); //変数を扱っている

配列と変数をごっちゃにしてるから話がかみ合わないんじゃね?
0155デフォルトの名無しさん2015/12/16(水) 18:44:10.56ID:jAibl+ep
>>154
http://php.net/manual/ja/language.types.string.php#language.types.string.substr
なおcのchar型を連想するかもしれないが添え字・null文字などの扱いはかなり違う
0156デフォルトの名無しさん2015/12/16(水) 20:06:12.03ID:mKkXa/E+
>>155
シングルバイト限定ながらC言語っぽい扱いができるのか。
無知ですみませんでした。勉強になります。
0157デフォルトの名無しさん2015/12/16(水) 22:08:01.51ID:54oMNAWx
ごめんちょっとレベル低い奴が混ざりますが…
>148の  $head = $str[0];  とか実行したとき、$headは1バイトになるの? 1文字の後ろにNULL文字で終結した2バイトになるの?
それを確認する方法はあるの?
0158デフォルトの名無しさん2015/12/16(水) 22:59:12.81ID:2u+0RRKa
文字型は存在せず、長さ1の文字列になる。

http://php.net/manual/en/internals2.variables.intro.php
PHPの変数は内部的にこういう構造体で処理されてる。

文字列の場合はここに実データが入ってる。
struct {
char *val;
int len; /* this will always be set for strings */
} str; /* string (always has length) */
これで分かるといいんだけど。
0159デフォルトの名無しさん2015/12/17(木) 11:20:55.06ID:b8C1/Jn0
for ( $i = 0; $i < count($array); ++$i)
ってあんまり良くないと思うんだけど
ループの中で配列の長さが変わるときはしょうがないよね?
そもそもループ中に長さ変える設計すんなって話はおいといて
0160デフォルトの名無しさん2015/12/17(木) 14:08:20.09ID:EA75t6cQ
バグの温床
0161デフォルトの名無しさん2015/12/17(木) 17:15:17.26ID:yOofk2l4
どうしてもループ条件で毎回count()しなきゃいけないならそれでいい
そうでないなら、ループ中で判定して必要な時だけcount()しよう
whileに変えてしまう手もある
0162デフォルトの名無しさん2015/12/17(木) 20:19:22.38ID:Qd/jqAZO
ループの中で配列の長さが変わるってどういう目的の処理なの?
0163デフォルトの名無しさん2015/12/17(木) 20:30:46.43ID:KnvvCMjo
lenが可変なのにforループ使うってとこがよーわからん
i使うんか?
0164デフォルトの名無しさん2015/12/17(木) 23:35:21.32ID:iepwcvsH
>159
俺だったらそういうときはforじゃなくてwhileにする

while(true) {
 主処理
 $i++;
 if(終了条件)break;
}
0165デフォルトの名無しさん2015/12/18(金) 01:08:54.76ID:kkYL7SI3
話を置いといちゃだめなんじゃないかそれ
0166デフォルトの名無しさん2015/12/18(金) 03:30:22.16ID:h6euVKNg
別においといてもいい話だよ
0167デフォルトの名無しさん2015/12/18(金) 12:20:48.92ID:G2ICrWxY
なんだか無限ループになりそう。
0168デフォルトの名無しさん2015/12/18(金) 16:02:44.19ID:gUzp7lKI
ascii制御文字以外の制御文字、
たとえばUTFの空白・改行類、非文字とかはバリデーションで除去すべき?気にしないでいい?
0169デフォルトの名無しさん2015/12/18(金) 16:23:39.49ID:o8VbV2r8
>>168
validationはデータを加工するものではない。
加工したかったら勝手にやれ。
0170デフォルトの名無しさん2015/12/18(金) 22:52:07.83ID:CgLrkKvQ
>>168
除去するんじゃなくて、受け付けないようにするべき。
0171デフォルトの名無しさん2015/12/19(土) 01:55:48.11ID:yn9wbRdq
加工するならvalidationいらないじゃん
0172デフォルトの名無しさん2015/12/19(土) 02:29:09.65ID:4mHs0UKU
ちょっとレベル高くなったと思ったら即なにもかも大幅レベルダウン
0173デフォルトの名無しさん2015/12/19(土) 02:49:41.81ID:TNhDb7hV
レベルの低い質問が多数を占めるのは当然だよ
0174デフォルトの名無しさん2015/12/19(土) 09:11:48.07ID:7bBCpgVz
プログラマはMacを使ってるってマジ?
http://hayabusa3.2ch.net/test/read.cgi/news/1450395043/
0175デフォルトの名無しさん2015/12/19(土) 14:23:53.30ID:iSzrpGEp
PHP7のソースコードを読むには、C言語の学習がどれくらい必要ですか?
また、どういう学習をすればいいのでしょうか?
0176デフォルトの名無しさん2015/12/19(土) 21:56:39.92ID:4mHs0UKU
メモリ・ポインタ周りと型、構造体の基礎をみっちり叩き込んでおけば
あとはひたすら読んで慣れるだけじゃね
0177デフォルトの名無しさん2015/12/20(日) 02:21:46.61ID:KXRSmZfD
phpってCだったんだ いつもバイナリか 適当にconfigureとかやってインストールするだけだからしらなんだ
そういやビルド?する時うんにゃらかんにゃら.cとか大量に出てたような・・・
0178デフォルトの名無しさん2015/12/20(日) 06:35:13.38ID:2dmew1rh
>>168
適切なタイミングで適切な関数でエクケープされてれば問題ないから気にしない
0179デフォルトの名無しさん2015/12/20(日) 08:02:11.37ID:bi38SwTZ
エクケープw
0180デフォルトの名無しさん2015/12/20(日) 10:46:03.83ID:3lON+F9T
>>177
大抵のものはCでできてる
0181デフォルトの名無しさん2015/12/20(日) 13:07:43.88ID:2R1JBddu
>>180
ならcは何で出来てるの
0182デフォルトの名無しさん2015/12/20(日) 13:15:16.26ID:+kPEBi+w
>>181
GCCコンパイラはGCCでコンパイルします
0183デフォルトの名無しさん2015/12/20(日) 13:33:54.43ID:6AuOod77
>>176
C言語の入門書を片手に簡単な関数から挑戦してみます。
ありがとうございました!
0184デフォルトの名無しさん2015/12/20(日) 14:20:43.32ID:2R1JBddu
>>182
マジカw
0185デフォルトの名無しさん2015/12/20(日) 16:44:14.08ID:aff6rPUa
昔のSolarisはCコンパイラ入ってなかったからなー
有料のコンパイラ買ってない人はGCCのソース一式と
古いバージョンのGCCのバイナリダウンロードして
GCCのコンパイルから始めてたな
0186デフォルトの名無しさん2015/12/20(日) 23:21:18.16ID:AcNqT0Vl
今さらアセンブラで作ったって、動作環境が狭くなるだけだよな…
0187デフォルトの名無しさん2015/12/21(月) 00:11:38.60ID:Xg5lqxRJ
アセンブラ良く知らないけど今でも組み込み系では普通に使われてるんじゃないの?
0188デフォルトの名無しさん2015/12/21(月) 00:26:12.47ID:Dxjo9Gwi
組み込みはハードウェア依存で構わないですしおすし
0189デフォルトの名無しさん2015/12/21(月) 01:48:03.70ID:Mn6N2/NM
昔と違ってハードの性能もいいし、開発コストも低いしで、最近の組み込みはJavaっすね。
0190デフォルトの名無しさん2015/12/21(月) 01:53:26.13ID:+biuSiP9
環境によるだろうけど Javaなら安くできそうだよな
0191デフォルトの名無しさん2015/12/21(月) 13:29:11.20ID:+gb1Psu3
Javaにしても、VMは何で書かれてるのさ
0192デフォルトの名無しさん2015/12/21(月) 13:48:33.20ID:Pzpo8xdR
なんで唐突にVMが出てくるんだ・・・
0193デフォルトの名無しさん2015/12/21(月) 14:04:39.87ID:C5LR6bgt
最近覚えた言葉
察してやれよ
0194デフォルトの名無しさん2015/12/21(月) 14:34:31.64ID:A5ehQ6jk
PHP関係なさすぎる
0195デフォルトの名無しさん2015/12/21(月) 16:02:37.89ID:+gb1Psu3
Javaの名前が出たからVM出したんだろう
そりゃPHPは関係ないけどJavaには関係あるよ
もしかして別のVMだと思った?
0196デフォルトの名無しさん2015/12/21(月) 16:07:24.05ID:C5LR6bgt
まずスレ違いだと言うことを謝ろうな
0197デフォルトの名無しさん2015/12/21(月) 18:41:37.43ID:Bx2NAXNu
何を言ってるのかね君は
JavaやるのにVMから作るわけ?
0198デフォルトの名無しさん2015/12/21(月) 19:45:01.97ID:xmPmRQsS
流れ的には自然なんだけどな。スレ違いは間違いない
0199デフォルトの名無しさん2015/12/21(月) 20:05:06.70ID:Xg5lqxRJ
java vmも元はcで今はjavaで書かれててjavaサポートしてるgccとか.netでビルドするとか
今haskellをビルドしようとするとghcが必要なのと同じ感じか
しかしsdkはともかく組み込み用のjava vmのソースは非公開とも聞いた

いずれにしても根幹として生成されるのはマシン語だけど
phpはともかく他は必ずしもソース読むのにcだけ知ってればOKとは限らない
…とはいえ、組み込み分野に足を突っ込むかどうかは別としても、cは出来るようになって損しない
phpをメインで使ってても、一部の組み込み系と同じように速度が重視される場所で、コアの部分だけc cgiにするってこともあるだろうから
0200デフォルトの名無しさん2015/12/21(月) 20:13:34.22ID:to6XxzZD
何独り言いってんの?
0201デフォルトの名無しさん2015/12/21(月) 20:16:17.68ID:bqsP7T8n
無料鯖だと鯖再度言語がPHPくらいしか使えないからjavaとかc勉強してもな
0202デフォルトの名無しさん2015/12/21(月) 20:27:09.90ID:6+hqb9rY
chinko() or die("うんこ");

みたいなのりで、
chinko() or return false;
とやりたいよなーとずっと思ってるんだけど
そろそろ特例で出来るようにならないかな
0203デフォルトの名無しさん2015/12/21(月) 21:59:12.93ID:A5ehQ6jk
なんでPHPで書いてるかって言えばどこでも使えるからだしな
0204デフォルトの名無しさん2015/12/22(火) 11:43:47.46ID:Upxd9PjQ
PHPでExcel, PDF出力するならおすすめのライブラリはなんでしょう
Excelはレポートのダウンロード用でだだっ広い表一枚、
PDFは注文書などの印刷用で住所などのヘッダーと品名数量一覧、て感じです
0205デフォルトの名無しさん2015/12/22(火) 13:08:08.74ID:1IjfeHrT
>>204
PHPExcel以外に選択肢があるなら、逆に聞きたい。
0206デフォルトの名無しさん2015/12/22(火) 16:00:47.70ID:Upxd9PjQ
>>205
今は、無理やりExcel XML形式で書き出してますw
VB.NETですけどかなりうんざりなので
0207デフォルトの名無しさん2015/12/22(火) 16:38:48.36ID:1IjfeHrT
>>206
そういうことなら、
PHPExcel
 参考:
  PHPExcelの使い方・エクセル操作方法のまとめ
  http://mizyupon-rpg.com/posts/719.html

TCPDF (+FPDI)
 参考
  PHPでPDF帳票を出力する方法(TCPDF + FPDI)
  http://qiita.com/emegane/items/486975a79ebb267c2b8e

が良いと思う。
0208デフォルトの名無しさん2015/12/22(火) 16:47:14.13ID:l38ceWj3
「既存のPDFをテンプレートとして活用し、そこに必要な文字だけ配置していくことで」ってとこで
MS Accessを思い出した
0209デフォルトの名無しさん2015/12/23(水) 07:12:52.20ID:BrF2rpGX
PHPじゃなくて外部プログラムでやったほうがいいでえ
ルート権がなければしょうがないけど
0210デフォルトの名無しさん2015/12/23(水) 08:13:43.51ID:VcQzzop0
preg_matchなどに渡す正規表現で . ドットそのものにマッチさせたいとき、
ただしいのは'/\\./'でしょうか'/\./'でしょうか
どちらも機能するようにみえるのですが
0211デフォルトの名無しさん2015/12/23(水) 08:37:35.39ID:BrF2rpGX
[.]
0212デフォルトの名無しさん2015/12/23(水) 10:23:03.27ID:p9aCHGv3
>>207
どうもありがとうございます
気が付いたらIISに簡単にPHPインストール出来るやん、
だったらめんどくさいところPHPにしたいということで
試してみます
0213デフォルトの名無しさん2015/12/23(水) 20:37:37.07ID:TzyhEOiS
ios端末で書いたチルダがWin上のphpで拾えないんですが、どうやったらいいんでしょうか(´・ω・`)
0214デフォルトの名無しさん2015/12/24(木) 00:16:25.67ID:/QJT0Eks
XP使ってんの?
0215デフォルトの名無しさん2015/12/24(木) 13:37:05.84ID:raS3FEsP
【OS名】CentOS
【PHPのバージョン】5.2
【連携ソフトウェア】なし
【質問内容】
文字列の配列から、"unko"という文字列を一括削除したいんだけど
どう書くのがかっこいい?
0216デフォルトの名無しさん2015/12/24(木) 15:11:40.93ID:2UP1MsSC
$a = ['unko', 'unk', 'ununko', 'unkoununko'];
$a = array_map(function($_a){
return str_replace('unko', '', $_a);
}, $a);

callbackに無名関数渡すとcoolだろぉ?
別に早くはない
0217デフォルトの名無しさん2015/12/24(木) 15:21:06.33ID:nTCupmHp
だが待って欲しい
str_replaceは配列なhaystackもきちんと処理してくれるのだからarray_mapいらなくね?
0218デフォルトの名無しさん2015/12/24(木) 15:22:25.17ID:QmDYk9Ce
パッと思いついたのは>>216と同じだったが、調べたらstr_replaceだけでいけるね
0219デフォルトの名無しさん2015/12/24(木) 16:11:37.73ID:raS3FEsP
>>216
ごめん

その例でいうなら、痴漢後の配列が
$a = ['unk', 'ununko', 'unkoununko'];
になってほしいんだ。
0220デフォルトの名無しさん2015/12/24(木) 18:45:10.76ID:7SbnL0v4
>>219
これもまた速くはないけど。

$a = array('unko', 'unk', 'ununko', 'unko', 'unkoununko');
$a = array_diff($a, array('unko'));

ループでまわしてunsetが一番速いと思うよ。
0221デフォルトの名無しさん2015/12/24(木) 20:51:13.00ID:raS3FEsP
>>220
なるほど、差分だから引き算だから削除になるのか。
ディフフ
0222デフォルトの名無しさん2015/12/25(金) 12:32:58.26ID:OVXWXNxb
PEAR::AUTHからjwtに換えないといかんということになってさ
あれは要するに「サーバ側だけで隠し持てるJSON」として扱っていいのかな、
沢山持たせすぎて重いとか無いよね別に
良いなら色々、アクセス可能なモデルとか持たせようと思います
0223デフォルトの名無しさん2015/12/28(月) 23:01:52.20ID:wHGPXB9y
PHPで計算機を作成しているのですが一回目に計算した値に二回目以降の計算した値を加算していきたいのですが
どうすればいいのでしょうか。
調べたところセッション関数を使えばいいようなのですが…
0224デフォルトの名無しさん2015/12/29(火) 00:38:59.01ID:Kpb8+VpB
計算機でsession?ブラウザ上で何回か計算させんの?
0225デフォルトの名無しさん2015/12/29(火) 00:47:38.81ID:Kpb8+VpB
>>78
upload_max_filesizeがデフォじゃねーの?w
0226デフォルトの名無しさん2015/12/29(火) 02:08:09.49ID:kJTcdl6n
a.phpからb.phpに動的なデータ(ユーザー情報)を送る場合、どういった方法があるのでしょうか。
通信はhttps使う予定です
0227デフォルトの名無しさん2015/12/29(火) 02:10:48.95ID:R0ql8/pO
b.phpに対し、POSTかGETのリクエストを送る
0228デフォルトの名無しさん2015/12/29(火) 04:05:11.67ID:qHplhu/m
>>224

yesそんな感じです。
0229デフォルトの名無しさん2015/12/29(火) 04:43:55.21ID:bHe3iwsI
計算が終わったあとに、setcookie() する
計算が終わったあとに、計算実行させる<form>に<input type="hidden">を設け計算結果を仕込む
計算が終わったあとに、計算実行させる<form>のaction属性のURLに計算結果を仕込む
とりあえず何も考えずに session_start() して計算が終わったあとに $_SESSION['result'] に結果を仕込む

上3つはユーザが容易に好き勝手に変えられる値でしかも文字列型なので、検証したり明示的に型キャストしてやったりすると良い
0230デフォルトの名無しさん2015/12/29(火) 06:17:02.79ID:VXcnTZbe
ブラウザで計算させて結果だけサーバに保持するのか、
ブラウザで計算するパラメタだけ入力し計算処理はサーバで
させるのかによって、実装が違ってくる。

どっちにしても、まずはsession_start()しよう。
0231デフォルトの名無しさん2015/12/29(火) 10:42:51.14ID:V4/5oFij
>>223
ブラウザで計算させるだけなら普通はJavaScriptを使うよ。
PHPを使うのは、値を永続的に記録したいとき。
その場合、ファイルに記録したりデータベースを利用する。

そうではなく、たとえばクイズの得点の加算なんかなら
PHPでセッションやクッキーを使えばいい。
それにJavaScriptでもクッキーは使える。
0232デフォルトの名無しさん2015/12/29(火) 12:10:52.58ID:2bysKUYX
助けてください。PHPのオブジェクト指向プログラミングの基本を学び、Youtube APIを使うグーグルのライブラリを使おうとしています。
サンプルを参考に改造しているのですが、難しすぎます。メソッドの定義を見に行く→定義ないので親クラスを見る→クラスの中に別のクラスのオブジェクトがある→
またそれを見に行く… これを繰り返してます。こういうもんなんでしょうか?何かコツのようなものがあれば教えてください。もしくは参考になる書籍など。

↓このファイルなんかは1万行超えてます…。普通こういうのをこまめに読みながら進めていくものなんでしょうか?
https://github.com/google/google-api-php-client/blob/master/src/Google/Service/YouTube.php
0233デフォルトの名無しさん2015/12/29(火) 13:01:32.76ID:/5tSBWu/
サンプル…?
0234デフォルトの名無しさん2015/12/29(火) 13:10:08.04ID:WW2BuOkl
PHP使うのにリバースエンジニアリングしてソースコード解析から始めますか?
たまにそういう変態もいるかもしれないけど内部の仕様なんて知る必要はないんやでえ
それと同じで仕様書やサンプルをちゃんと見て下さい
0235デフォルトの名無しさん2015/12/29(火) 13:13:05.56ID:WW2BuOkl
サンプルが英語でよくわからなくて該当コード探すのがわからないなら
とりあえずサンプルファイル郡に対してyoutubeでgrepかけてみたらええんやないの
0236デフォルトの名無しさん2015/12/29(火) 13:19:59.60ID:bHe3iwsI
>Youtube APIを使うグーグルのライブラリを使ってみよう
わかる

>サンプルを基礎に改造していこう
わかる

>ライブラリのメソッドの定義を見に行く
??

あるライブラリの使い方を把握したうえでさらに細かいことしたいならライブラリの中身見るのもわかるが
そんな酔狂なことしたいんじゃなけりゃ、つまづいたらライブラリのドキュメントを読む、これが正解
0237デフォルトの名無しさん2015/12/29(火) 14:02:43.68ID:5o0CYWec
Collectionの種類やメソッドは、

理解できるまで、じっくり見た方がよい
0238デフォルトの名無しさん2015/12/29(火) 15:33:26.34ID:f95NQVFO
>>231
PHPでやりたいからここに来ているのを察せないの
0239デフォルトの名無しさん2015/12/29(火) 17:01:36.30ID:Kpb8+VpB
>>228
まぁ上の諸先輩が言うようにsession_start()から始めるか、Javascript
何れにしろcookie使うんだが、10年前のガラケーはcookie実装してないからなw
PHPのsession関数マニュアルを200回読むように
0240デフォルトの名無しさん2015/12/29(火) 17:07:13.08ID:Kpb8+VpB
>>229
> 計算が終わったあとに、計算実行させる<form>に<input type="hidden">を設け計算結果を仕込む

それが一番確実簡単良い方法だと思うw 初心に帰れという言葉を思い出したww
0241デフォルトの名無しさん2015/12/29(火) 17:13:39.85ID:Kpb8+VpB
>>226
httpsってのは通信プロトコルだからPHPにはかんけーねー
PHPっつうか、先ずはhtmlのformメソッドを勉強しなさい
どういう動的やりとりなのかわからんけど、ヒマがあればAjaxもやっとけば未来は多少明るくなるw
0242デフォルトの名無しさん2015/12/29(火) 18:46:45.91ID: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');?>"/>

なんか間違ってますかね
0243デフォルトの名無しさん2015/12/29(火) 19:16:10.63ID:pHdit4cS
>>242
Twigとかでデザインとロジック分離した方がいいよ, という点をおいておけばそれで問題ないはず
というか動かせばわかるよね?
0244デフォルトの名無しさん2015/12/29(火) 19:18:42.09ID: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"]);
0245デフォルトの名無しさん2015/12/29(火) 19:21:50.35ID:pHdit4cS
とりあえず部分じゃなく全体のコードを出せ, と
0246デフォルトの名無しさん2015/12/29(火) 19:26:22.42ID:Kpb8+VpB
>>243
テンプレエンジンはここまでの初心者には不要じゃね というかますます、わけわかめ、になるよw
SmartyとかTwigはobjectを理解してからの第2段階だろー
0247デフォルトの名無しさん2015/12/29(火) 19:35:57.06ID:Kpb8+VpB
>>242
あとな、htmlspecialcharsでXSS対策とか、勉強して入れたんだと思うけど、作ってるの計算機だべ?
それなら、受け取ったあとに数値だけのチェックして、数値もしくは小数点以外なら

print "変なもんいれんなや";
exit;

の方が確実だぞw
0248デフォルトの名無しさん2015/12/30(水) 00:34:23.84ID: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"])で確認しろとかな
0249デフォルトの名無しさん2015/12/30(水) 00:36:05.43ID:PWJM0BV8
そしてコピペミスしたわけだが

例文2行目の頭は value="<?= echo じゃなくて value="<?php echo だった吊ってくる
0250デフォルトの名無しさん2015/12/30(水) 02:09:15.29ID:3alGq9af
いろいろやってみた結果

1ページ目で

$_SESSION["total"]=$keisan_3;として

二ページ目以降

echo $_SESSION["total"]+$keisan_3;
  $_SESSION["total"]=$_SESSION["total"]+$keisan_3;

のようにば加算されていきますよね?
実際動いているので問題ないんと思うんですが…なんだか頭がこんがらがってきました…
0251デフォルトの名無しさん2015/12/30(水) 02:27:51.57ID:mOtrRral
>>250
まーいろんなやり方があるわけで この程度でこんがらがるようじゃ、センスが無い、と諦めるのも一考
実際のページとソース全部出せば、親切で暇な人が教えてくれるよ
0252デフォルトの名無しさん2015/12/30(水) 02:30:18.07ID:BriEFJHd
最初に、     $_SESSION["total"]=0: にしておく
以降は、     $_SESSION["total"]+=$keisan_3; とする
加算した後に、 echo $_SESSION["total"]; で表示する。

でどうですか?
0253デフォルトの名無しさん2015/12/30(水) 02:36:17.85ID:X0vYHUCK
プログラム経験はそれなりにあっても今始めてステートレスな環境でどうすればいいか困ってるのかもしれないし、
一概にセンスがないと言い切れるもんじゃないような。
0254デフォルトの名無しさん2015/12/30(水) 02:49:16.11ID:3alGq9af
>>252
僕には合わないみたいですすいません。
でもありがとうございます。
0255デフォルトの名無しさん2015/12/30(水) 08:10:01.35ID:HDt7R2Vx
>この程度でこんがらがるようじゃ、センスが無い、と諦めるのも一考

こんな↑大馬鹿の言うこと気にする必要はありません。

疑問を持ち、それを解決しようと努力する貴方のような姿勢こそ、最も大切な能力です。

分からない部分は、そこだけ取り出したコードを書いて、理解しながら進めると良いよ。
(その作業が面白いと思えるのも能力のひとつかもしれません)
0256デフォルトの名無しさん2015/12/30(水) 08:15:51.87ID:HDt7R2Vx
まず、↓のコードをコピペして、ブラウザで何度も再表示してみてください。
ブラウザの再表示で前回の結果を引き継げることが分かると思います。

<?php
error_reporting(0);
session_start();

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


どうでもいいけど isset( $array['foo']['var'] ) がfalseになるときって
$array['foo']['var'] がないのか $array['foo'] がないのか $array がないのか、区別つかんよね
0258デフォルトの名無しさん2015/12/30(水) 12:16:27.79ID:3alGq9af
>>255
センスと言われればまぁあれですがPHPって楽しいですね
進め方って重要ですよね。参考にしますありがとうございます

>>257
ほう…なんだか自分のコードが穴だらけのような気がします…
ありがとうございます
0259デフォルトの名無しさん2015/12/30(水) 12:26:55.91ID:PgKYd+R7
>>257
keyの有無を調べたいならarray_key_exists() とか?
例2 array_key_exists() 対 isset()
http://php.net/manual/ja/function.array-key-exists.php
0260デフォルトの名無しさん2015/12/30(水) 12:45:41.68ID:UceytvZf
まぁ先にC言語とかやっとくと, PHPの型の取り扱いの気持ち悪さはよく理解出来ると思う

PHP7で基本型タイプヒンティングが入ったから型チェックの手間は随分省けるようになったけど, 要所では自動変換に頼らず明示的なキャストで書いた方が安全だし読むときに分かりやすいよね
0261デフォルトの名無しさん2015/12/30(水) 12:57:03.00ID:JM6HwSlE
インタプリタ使う意味が半分ぐらいなくなるわw
0262デフォルトの名無しさん2015/12/30(水) 13:02:04.80ID:PRQQH4Sb
んだな
phpの動的型付け・型相違時の柔軟な処理がすごくラクで助かる時もあるから
一概にどっちが良いとも言いがたいけど、意識しておくと後々ラクなのも事実 先にcやれが正論過ぎるが

>>259
言いたかったことはそれとは違って、警告出してくれるIDEは素晴らしいで終わる話だが、
例えば、$_SESSION['test'] を $_SESSSION['test'] と打ち間違えていた時
他で$_SESSSIONなんて使ってなければ、isset( $_SESSSION['test'] ) は常にfalseを返してくることになり
php側ではNoticeを出してくれない、デバッグ時に何が悪いか30分悩みまくる、ってことを以前経験した
0263デフォルトの名無しさん2015/12/30(水) 13:14:46.04ID:xHbCmVj1
>>262
私の場合よく使う変数は参照渡し返す関数作ってミスを防いでるけど、それじゃ効率悪いよな…。
0264デフォルトの名無しさん2015/12/30(水) 13:41:15.53ID:UceytvZf
PHPCSとかで命名を咎めてもらうのかなぁ
0265デフォルトの名無しさん2015/12/30(水) 14:26:15.68ID:HDt7R2Vx
>>257
知ったかぶり乙
0266デフォルトの名無しさん2015/12/30(水) 15:47:29.74ID:UljFI1i+
俺のPHPのコードは半分くらい
//ob_start();
//var_dump(疑わしい変数);
とかだからな
0267デフォルトの名無しさん2015/12/30(水) 15:58:01.97ID: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>
0268デフォルトの名無しさん2015/12/30(水) 16:18:42.60ID:R6S1A8we
あ、ソース名はcal.php 
0269デフォルトの名無しさん2015/12/30(水) 17:22:37.17ID:JM6HwSlE
session_start()の前に
error_reporting(E_ALL);
入れてみ
0270デフォルトの名無しさん2015/12/30(水) 18:00:59.44ID:gRxyxMba
【OS名】Ubuntu15.10
【PHPのバージョン】5.6.11
【連携ソフトウェア】apache
【質問内容】
ファイルをflockでロックするテストをしていたらロックできなくなりました。
ロックした状態のままリロードしたらそうなったんだと思います。
どうすればロックを解除できますか?
0271デフォルトの名無しさん2015/12/30(水) 18:05:05.96ID: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>
02722702015/12/30(水) 18:35:33.32ID:gRxyxMba
apacheリスタートしたら解除されました。他に方法ないんですかね?
0273デフォルトの名無しさん2015/12/30(水) 19:04:45.85ID:JM6HwSlE
>>271
preg_match→is_numericでいい それと$cal(中身は+かCLEAR)じゃなくて$hageに対してやれ
$_SESSION['hage']いらない
適切に処理された安全な値でもhtmlに変数echoするときはhtmlspecialcharsかませる癖をつけたほうがいい
セッション使いたかっただけなら別にいけどsessionは大げさ hiddenフィールドでやればいい
0274デフォルトの名無しさん2015/12/30(水) 19:16:40.72ID:zANMIO+6
>>273
271ざんす おれ質問主じゃないんだ ヒマで書いてみただけw
sessionいらねえと思ったけどみんなsessionsessionって言ってたし
あ、$calと$hage間違ってるわ、ビール飲み過ぎたごめん
もちろん仕事時はhtmlspecialcharsとか使ってるよー
0275デフォルトの名無しさん2015/12/30(水) 19:26:01.91ID:zANMIO+6
正規表現やりすぎるとis_numericとか忘れるなぁ・・
もういっかい初心に戻って勉強しなおすお
0276デフォルトの名無しさん2015/12/30(水) 21:58:07.47ID:gDwmGNes
ちょっとした計算が、こんなに難しいの?

JavaScriptの方が、簡単
0277デフォルトの名無しさん2015/12/30(水) 22:39:50.58ID:X0vYHUCK
>>276
いや、同じくらい簡単だよ
やろうとしてることが違うだけで
0278デフォルトの名無しさん2015/12/30(水) 22:41:16.58ID:X0vYHUCK
>>275
is_numericとその正規表現は真と判定される基準が全然違うので、is_numericがいいかというとどうなんだろうね。
0279デフォルトの名無しさん2015/12/30(水) 22:46:15.45ID:UceytvZf
正直先の正規表現は穴だらけなので, どう考えてもis_numericの方がいい
正規表現でIEEE小数表現をきちんと書くならそれはそれでいいけど
0280デフォルトの名無しさん2015/12/30(水) 22:50:10.24ID:BriEFJHd
数値の桁数チェックとか、楽なので
0281232q2015/12/30(水) 23:32:42.35ID:wmKVqfCX
>>234-237
ありがとうございます。当該ライブラリは独立したドキュメントが整備されておらず、
ソースのコメントに仕様が書かれており、ソースをきっちり読んでいるかのようなコメントになってしまいました。
JSON, オブジェクトイテレーションなど、私の知識不足が原因でサンプルを読んで混乱していたようです。
0282デフォルトの名無しさん2015/12/30(水) 23:54:08.37ID:X0vYHUCK
>>279
それらの入力を期待しているかどうかによるんだけど、たぶん質問主はそれを期待してないよ。
0283デフォルトの名無しさん2015/12/31(木) 00:38:12.93ID:3gTqCnws
/^[0-9\.]+$/じゃあいくら何でもザル過ぎるから/^[0-9]+(\.[0-9]+)?$/ぐらいにすべきだろうけど, こんなん正規表現で書くよりis_numericと書いた方がいいでしょ
0284デフォルトの名無しさん2015/12/31(木) 00:51:05.43ID:T4L8KKE0
何を持ってざるとするのか
0285デフォルトの名無しさん2015/12/31(木) 01:19:19.64ID:MIlX8fvc
>>281
ちゃんと探した?
https://developers.google.com/youtube/analytics/
https://developers.google.com/youtube/v3/
https://developers.google.com/youtube/reporting/v1/reports/
簡易的なものなら
https://developers.google.com/apis-explorer/#p/
0286デフォルトの名無しさん2015/12/31(木) 01:32:46.86ID:MIlX8fvc
16進数やら指数表記入れてくるのはわざとやってるんだろうから
その辺は考慮しなくていいと思うけどね
PHP7からはちゃんと16進数も弾いてくれるみたいだけど
0287デフォルトの名無しさん2015/12/31(木) 03:16:49.20ID:T4L8KKE0
>>286
何言ってんだ?
0288デフォルトの名無しさん2016/01/02(土) 18:45:54.31ID: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;
0289デフォルトの名無しさん2016/01/02(土) 19:06:05.47ID:VLzeBTkn
>= 100 か > 99 使えばいいんじゃね
0290デフォルトの名無しさん2016/01/02(土) 19:27:33.49ID:XBUisDtv
>>288
何してるのこれ?
$keisan_3+$_SESSION[
0291デフォルトの名無しさん2016/01/02(土) 19:29:01.64ID:XBUisDtv
途切れた。2行目のこれ。
$keisan_3+$_SESSION["total"];
0292デフォルトの名無しさん2016/01/02(土) 19:32:28.01ID:3xAvnogN
再帰したフォルダをJSON(d3.js形式)にしたいのですが、そういったサンプルコードが中々ない
例 / http://bl.ocks.org/robschmuecker/7880033
これって案外簡単にできるものなんです?
0293デフォルトの名無しさん2016/01/02(土) 19:44:17.21ID:UuhQB48c
>>289
試したんですけどダメでした

>>291
これは…その…いらなかったですね…
ありがとうございます
0294デフォルトの名無しさん2016/01/02(土) 20:05:41.32ID:XBUisDtv
>>293
session_start はファイルの上部に入れる。
session_start の直後にif文を入れれば想定した動作になるはず。
ダメならtotalの中身を表示しながら少しずつ動作を確認するといい。
それか自分で要件を勘違いしてる可能性もある。

<?php
session_start();
if ($_SESSION["total"]>100||$_SESSION["total_2"]>100) {
header("Location:パス名");
}
//以下計算処理
0295デフォルトの名無しさん2016/01/02(土) 21:32:41.03ID:VLzeBTkn
>>292
よくわからんけど対象以下のディレクトリ・ファイルを再帰的に全部拾ってって
それをd3.jsで読める形にしてd3側でツリー描きたいとかそゆこと?
0296デフォルトの名無しさん2016/01/02(土) 21:51:22.37ID:B+tUCmqX
Groovyなら、eachFileRecurse で、

ディレクトリ階層を深さ優先探索できる
0297デフォルトの名無しさん2016/01/02(土) 21:57:54.66ID:ta1uD6qZ
>>292
例で示されたサンプルは、flare.jsonがその表示データみたいですね。
このデータはまさにJSON形式だから、ディレクトリを再帰検索して多次元配列にして取得し、
それをjson_encode()すればいいんじゃないの?
0298デフォルトの名無しさん2016/01/03(日) 09:05:46.06ID: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);
0299デフォルトの名無しさん2016/01/03(日) 10:31:02.34ID:RMeP4ml1
>>298
PHP5でのオブジェクト指向プログラミングのポイントとしてよく言われるのは
「オブジェクトはデフォルトでは参照渡しとなります」ということです。
http://php.net/manual/ja/language.oop5.references.php
0300デフォルトの名無しさん2016/01/03(日) 10:35:03.90ID:RMeP4ml1
つまり、わざわざ&をつけなくても参照渡しになるってこと。
0301デフォルトの名無しさん2016/01/03(日) 10:43:10.82ID:flrhEOJ+
>>299-300
やばい知らなかった arrayが値渡しになってるからてっきり……だからsingletonそのまま渡しても動いてたのか

しかもphp.netの中にあったとは。ありがとうございます
0302デフォルトの名無しさん2016/01/03(日) 16:29:08.20ID:jR+Nkr2H
>>299
このぺーじは何回読んでも 参照とIDのコピーの区別がつかない
どう読んでも参照だろとしか思えない
0303デフォルトの名無しさん2016/01/03(日) 17:03:38.48ID:E2yOOycQ
>>299のページは, 違うけど, だから何なのかということが書いてないのがアレ

わざわざマニュアルに書くということは実際にPHPでコードを書くときに問題になることが有り得るということなのか?
内部的な扱いの違いだけで(実行速度を除けば)PHPプログラマは気にしなくてよい?
0304デフォルトの名無しさん2016/01/03(日) 17:31:48.27ID:flrhEOJ+
参照じゃないから・・・
コピー元をunsetしてもコピー先がnull参照になったりしないとか
どこからも参照されなくなったあとにgcされるとかそういうことですかね?
0305デフォルトの名無しさん2016/01/03(日) 17:36:43.18ID:flrhEOJ+
そういえば、>>301に値渡しとは書いたけど
普通にarrayを渡すときであってもCopy On Writeがあるから
渡した先で書き換えない限りはでかいデータを渡してもメモリ肥大化しないで処理してくれるわけで、これもある意味自動参照渡し
0306デフォルトの名無しさん2016/01/03(日) 18:11:01.17ID: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>";
?>
どこが間違っているかご教示お願いします。
0307デフォルトの名無しさん2016/01/03(日) 19:14:47.80ID:vYwnzBVC
すみません、306ですが自己解決しました。
スレ汚し申し訳ありませんでした。
0308デフォルトの名無しさん2016/01/03(日) 19:26:03.79ID:8xMDsXMt
初心者のDBに関する質問て軒並みmysql関数使ってるね。
もう、古いPHPの解説書全部焼却した方が色んな意味でみんなのためなんじゃないかな。
0309デフォルトの名無しさん2016/01/03(日) 19:54:52.92ID:Aw+loPRS
mysql_num_rowsは便利だったけどね。PDOに相当のメソッドがないのは痛い。
PDOStatement::rowCountはselect文では微妙だし。
0310デフォルトの名無しさん2016/01/03(日) 20:50:27.45ID:Ga7S25j+
PDOが推奨される理由ってインジェクション対策のエスケープがやりやすいという以外の理由がありますか?
0311デフォルトの名無しさん2016/01/03(日) 21:14:26.45ID:KfQ2xAcB
PDOで特段エスケープがやりやすいっていうことはないと思うけど
PDOの主目的はアクセスの抽象化で
接続部分書き換えるだけで対応してるDBに切り替える事ができるのがポイント
ただPDOはO/Rマッパーではないから実際問題として
ベンダー固有の機能(SQL)使ってたりしてそのまま動くってわけにもいかんだろうけど
0312デフォルトの名無しさん2016/01/03(日) 21:26:55.68ID:+3E/SZnp
>>309
mysql_num_rowsなんて
結果セット(≠SQL_CALC_FOUND_ROWS)をカウントするだけなんだからどうでもいいよ
実際どうでもいいから消えたし
0313デフォルトの名無しさん2016/01/03(日) 22:15:57.50ID:7hdqvuO7
なるほど。
やはりPDOだと件数の取得は、件数用のクエリを別に発行しないと駄目なんだね。
0314デフォルトの名無しさん2016/01/04(月) 12:50:34.91ID:WKhSyJYd
>>312
ページあたり○件表示 をやるときに全ページ数求めるのに使うよ!
0315デフォルトの名無しさん2016/01/04(月) 13:00:09.43ID:WKhSyJYd
>>313
rowCount()で求められるよ!
0316デフォルトの名無しさん2016/01/04(月) 14:13:23.78ID:QdkZIWcg
全レコードフェッチしてカウントするのか。たまげたなぁ、、、。

>>313
互換性の観点から、そうしたほうがいいと思う
0317デフォルトの名無しさん2016/01/04(月) 14:59:10.08ID:OaDNUvqZ
PDOの仕様上は、select文の場合PDOStatement::rowCountで結果セットの行数
を取得できる保証はないけど、実際のところどうなんでしょうか?

 MySQL
 PostgreSQL
 SQLite
 SQLServer

で知りたいです。
(すみません試す環境が現在ないので・・・)
0318デフォルトの名無しさん2016/01/04(月) 15:48:16.33ID:xU2s8ar4
$array["3"]="hoge";してもあとでforeachかけるとkeyがintの3にすりかわってて、うっかり === 比較とかするとハマる
$array["03"]だと$array[3]と同義にはならずkeyはstringの"03"

誰が得するんですかこの仕様
0319デフォルトの名無しさん2016/01/04(月) 16:23:05.04ID:7kte6BbK
それはおまえさんのやりかたがまずいだけだろ
0320デフォルトの名無しさん2016/01/04(月) 16:58:05.41ID:kA444xDU
>>318
マニュアルのノートにもあるね。
http://php.net/manual/ja/control-structures.foreach.php#118405

String keys of associative arrays, for which is_numeric() is true and which can be type-juggled to an int
will be cast to an int!
意訳:連想配列のstringの数字キーがintに変わっちゃうよ!
0321デフォルトの名無しさん2016/01/04(月) 17:18:13.58ID:xU2s8ar4
>>320
cookieは文字列型、DBから文字列型で返ってくる、と同様FAQ的だとわかっちゃいたけど
実際これに当たるとすっごく面倒だった
配列のキーにぶち込んでるものと変数/配列の値にぶちこんでるものを比較するのに
わざわざ前もってctype_digit($string)と$string[0]!=='0'を確認させる羽目になった

ところでそれ、is_numeric()じゃダメだな。'10.0'や'0,1'はtrueを返されるけど、配列キーにしても整数型キャストされない
この変換、なんか歴史的事情でもあるんだろうか?

>>319
困らないならそれでいいんじゃないかな
0322デフォルトの名無しさん2016/01/04(月) 18:45:17.18ID:A2K+UcjX
型の自動変換をさせない設定にできるといいんだけどね。
0323デフォルトの名無しさん2016/01/04(月) 18:59:44.66ID:OaDNUvqZ
そもそも配列のキーに、
$array[3]

$array["3"]
を区別したいという使い方が想像できない。
0324デフォルトの名無しさん2016/01/04(月) 19:24:29.50ID:ES5+LcGZ
>>321
しょうがないからキーにする数値に文字列プレフィクスつけたりした
0325デフォルトの名無しさん2016/01/04(月) 23:32:32.08ID:8u7a3/zf
>>311
ありがとうございます。コードの汎用性が上がるんですね。
0326デフォルトの名無しさん2016/01/05(火) 16:14:28.63ID:DBF3ayuU
phpでサイトを作ろうと思っているのですが、virtualboxを使う際はnginxとphp-fpmとmysqlとvsftpをインストールするだけでpcからサイトを確認・編集出来るようになりますか?
0327デフォルトの名無しさん2016/01/05(火) 16:17:36.63ID:DBF3ayuU
>>326 ですが、説明が不足していたので追記します。
作りたいのはphpサイトのテスト環境です。
0328デフォルトの名無しさん2016/01/05(火) 16:26:28.65ID:QeOiEXTF
>>326
設定済みのVagrantのファイルを見つけてきたら、
VagrantとVirtualBoxとputty(ターミナル)でいけるよ
同期も自動的に出来る
0329デフォルトの名無しさん2016/01/05(火) 17:06:55.24ID:6S/N1hh8
>>326
インストールと設定をすればできるようになるよ。
あとテストしたいことによってはmysqlいらない。
0330デフォルトの名無しさん2016/01/07(木) 13:35:07.18ID:nOAVWNy7
配列をMySQLに保存する時にserialize()を使うというのはわかりました。
$db3 = serialize( array("label1", "label2") );
このように挿入したdb3列があるとして、label1を含む行のみをDBから取り出すのはどうしたらよいでしょうか?
全部取得してunserialize()してlabel1を含むものを探すのは非効率ではないかと思います。
挿入するデータ構造を変えるべきでしょうか?シリアライズする配列の要素数は行によって違います。
0331デフォルトの名無しさん2016/01/07(木) 15:21:45.50ID:wk6H0iR6
単純な文字列検索でいいなら、 WHERE で指定してやれば良いはずだが
serializeしたものをvar_dumpして確認してみ
0332デフォルトの名無しさん2016/01/07(木) 15:26:15.64ID:elcoV0S6
>>330
データベースに「付随する可変長のオブジェクトをなんとか格納したい」時にしょうがなく使うものなので、検索対象には普通しないよ、serializeとかJson型とかは

検索対象にしたいなら、データベースの列を一個追加して
配列の最初の値をその列に入れて
その列にインデックス付ける

とすると高速に検索出来ます。
でも、その値は100万行に対して数種類しかない、だと高速化もたかが数分の一になるのでよく考えてね
0333デフォルトの名無しさん2016/01/07(木) 15:27:07.55ID:kiPrQRCq
>>330
配列要素をDBから検索したいなら、格納時にシリアライズは使わずに、
適当な記号文字で連結して一つの文字列にし、格納する方が良いように思う。
0334デフォルトの名無しさん2016/01/07(木) 15:37:53.97ID:mR6oAbiO
>>332
なんで配列の最初の値だけしか検索対象にしないという仕様に変更しちゃうの?
0335デフォルトの名無しさん2016/01/07(木) 16:20:10.57ID:MPmNMeUD
>>334
「とかすると」に訂正するよw
0336デフォルトの名無しさん2016/01/07(木) 20:17:30.66ID:1sig02kA
>>330
一つのカラムに複数の値を持つ属性を格納するのはSQLアンチパターンの一つ。
根本的な解決策は、テーブルを一つ増やすこと。つまり、交差テーブルを作成する。
0337デフォルトの名無しさん2016/01/07(木) 20:27:13.84ID:QG9KWxbk
>>332
>検索対象にしたいなら、データベースの列を一個追加して

こういう糞みたいなテーブル設計、結構あるよね。
RDBの使い方わかってない馬鹿設計。

>>336みたいな当たり前のことを全く勉強しない。
0338デフォルトの名無しさん2016/01/07(木) 21:24:22.54ID:VxA2n+jW
>>336
正論だと思う。

でも、
  >適当な記号文字で連結して一つの文字列にし、格納する
も場合によっては簡単で良い場合もあると思う。
どんな場合も絶対にSQLアンチパターンとは言えないような気がします。

MySQLには配列型というフィールド型はないのか。。。
0339デフォルトの名無しさん2016/01/07(木) 21:49:23.73ID:QG9KWxbk
↑こういう考え方する人って、
その後同様の方法で機能拡張されていった時に
どんなシステムになるかって事、全く考えてないよな。

場当たり的で、今さえ良ければいい、
後でシステム触る人のことなんか考えもしない。

糞生産マシーン。
0340デフォルトの名無しさん2016/01/07(木) 21:53:27.53ID:QG9KWxbk
>どんな場合も絶対にSQLアンチパターンとは言えないような気がします。

気がするのは勝手だけど、明らかにアンチパターンだから。
いい加減に気づいて。
0341デフォルトの名無しさん2016/01/07(木) 21:54:14.87ID:wk6H0iR6
そりゃまあDB的には突き詰めれば別テーブル使えになるのは仕方ない

が、>>332は「配列の最初の値をその列に入れて」だぞ
追加した1カラムにserializeした配列をぶっこめっつってるんじゃないぞ
挙動が変わってんじゃねーかという突っ込みは真っ当だが正規化がどうのは筋違いでは


なおserializeしたものをDBに突っ込むと意外とデータ量増えるが配列に戻す時に楽ではある
多次元でも楽々。アレだけど対応してればオブジェクトも楽々
0342デフォルトの名無しさん2016/01/07(木) 21:54:39.91ID:lBSXDGgS
ここは、PHPのスレだからね
0343デフォルトの名無しさん2016/01/07(木) 22:06:22.16ID:QG9KWxbk
>>341
アホなのかな?

後で、やっぱりlabel2も検索したいです〜ってなったら、またカラム増やすの?
開発中ならまだいいけど、運用中にテーブル構造いじるの、けっこう胃が痛いよ。

だったら最初から別テーブル作ればいいじゃん。複合プライマリキーで。
いくつ配列要素増えようが、インデックス効くから高速に検索できる。
DBの基本中の基本じゃないの。

PHPのスレだからとか関係ない。それともPHPerはDBも満足に扱えないの?
0344デフォルトの名無しさん2016/01/07(木) 22:12:18.90ID:QG9KWxbk
>突き詰めれば別テーブル使えになるのは仕方ない

仕方ないって、頭おかしいのかな? 理想だ、ならわかるが。

本当にRDBの事全くわかってないな。
0345デフォルトの名無しさん2016/01/07(木) 22:13:55.32ID:lBSXDGgS
DB板でやれば良い。ちゃんと誘導すれば済む話。

閑古鳥が泣いてるよ(泣く方が意味伝わるな)
0346デフォルトの名無しさん2016/01/07(木) 22:28:58.44ID:PsJSsRuX
好きなようにやれよ
業務用じゃないんだろ
0347デフォルトの名無しさん2016/01/07(木) 22:30:40.24ID:QG9KWxbk
OK

elcoV0S6 kiPrQRCq VxA2n+jW wk6H0iR6 は、PHPerの面汚しだから、
DB板に行って3年ROMれ。
0348デフォルトの名無しさん2016/01/07(木) 22:34:04.85ID:zlqF3Cm9
>>330
纏めておくと, とりあえずシリアライズして保存するならば検索は諦める。
検索したいという目的があるならば, データ構造に対して適切なテーブル設計を行う必要がある(何のためのJOINか)。

テーブル構造についてはID:QG9KWxbkの述べている通りだが, PHPとは無関係だから本来はデータベース板で訊くべき。
0349デフォルトの名無しさん2016/01/07(木) 22:39:18.45ID:mR6oAbiO
正規化しなさい以外に答えはないけど、このへんでどうぞ。
すぐ荒れるスレだけど、悪いスレじゃない。

DB設計を語るスレ 9
http://peace.2ch.net/test/read.cgi/db/1444733172/
0350デフォルトの名無しさん2016/01/07(木) 22:40:09.61ID:KI3qNwRQ
まあ何事にもトレードオフがつきものだ。
0351デフォルトの名無しさん2016/01/07(木) 22:41:41.00ID:nOAVWNy7
>>331-349
すんまへん、大変勉強になりました。
私の書き方が悪く、label1だけでなくlabel2でも検索することも想定しています。
たしかにDB板に投稿するべき内容だったかもしれません。
みなさんのアドバイスから検索した結果参考になりそうなページをみつけました。

SQLアンチパターン1章 Jaywalking(信号無視)
http://qiita.com/iwata@github/items/f33490d34dd1400b166e

言語の文法をひと通り勉強しても周辺技術も学ばないとまともなソフトはなかなか作れませんね。。
0352デフォルトの名無しさん2016/01/07(木) 23:50:37.77ID:MPmNMeUD
1対1でレコードにシリアライズやBLOBやJsonを入れたい、かつ検索したい
なら検索用フィールドを追加する、ってなるけど
実は1対Nやったんや、ってオチが大抵付くので
元テーブル+BLOBテーブル+関連付けテーブル
にしといた方がいいか
0353デフォルトの名無しさん2016/01/08(金) 03:09:27.33ID:ZC031pcb
>>351
> 言語の文法をひと通り勉強しても周辺技術も学ばないとまともなソフトはなかなか作れませんね。。
みんな通る道だしゴールしたと言い切れる人もいないだろうし。
気にしなくていいよ。

>>352
なんで誘導先に移動しないの?
0354デフォルトの名無しさん2016/01/09(土) 02:13:36.29ID: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してあります。
何が原因でしょうか?
0355デフォルトの名無しさん2016/01/09(土) 02:59:47.94ID:r2xp7j2i
>>354
ピーエイチピー!!!!!!!!
0356デフォルトの名無しさん2016/01/09(土) 03:28:28.92ID:hDaixTvf
>>354
ほとんどが不要な情報じゃないだろうか。
nginx+fastcgi の環境下で exec('nohup hoge') が実行できないってことでいいのかな。
0357デフォルトの名無しさん2016/01/09(土) 03:31:41.55ID:PU5LksXv
とりあえずexecの代わりにshell_execで実行結果の確認(出力, 返値)をすることから始めるんじゃないですかね
0358デフォルトの名無しさん2016/01/09(土) 08:59:13.82ID:UDcRuxMJ
>>354
もしかしてchrootしてないか?
0359デフォルトの名無しさん2016/01/09(土) 11:00:31.17ID:e4D1bXEw
>>357
>>358
なるほど、調べてみます。

もしどうしても出来ない時は
ソケット通信を使って非同期にしようと思います。
0360デフォルトの名無しさん2016/01/09(土) 12:00:50.97ID:pmNGPpRJ
ローカル環境と本番で、php.iniの設定が違うように思う。
そこに原因があるのでは。
0361デフォルトの名無しさん2016/01/10(日) 17:21:39.48ID:2wAawuwm
プログラム言語的なものを作るとして

str:a = "Hello";
str:b = "World";
say(a + b);

これを
$a = "Hello";
$b = "World";
echo $a . $b;

に変換してみて下さい!
0362デフォルトの名無しさん2016/01/10(日) 17:29:15.07ID: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);
0363デフォルトの名無しさん2016/01/10(日) 17:36:39.47ID:E61+414H
ヒアドキュメントが絶対必要なとき以外はNowdoc構文を使え
0364デフォルトの名無しさん2016/01/10(日) 17:43:17.74ID:5QIV+MjV
>>363
理由を説明しなければ説得力なし
0365デフォルトの名無しさん2016/01/10(日) 17:44:56.59ID:2wAawuwm
ほーNowdocなんてものがあったんですか
php5.2で思考停止して最近arrayも[]に変えたぐらいなので知りませんでした
0366デフォルトの名無しさん2016/01/10(日) 18:51:02.08ID:E61+414H
>>364
単純に遅い $記号を意図せず使っていると変数扱いされる
0367デフォルトの名無しさん2016/01/11(月) 02:04:49.32ID:zpiPzR4s
字句解析や構文解析を書けってか
0368デフォルトの名無しさん2016/01/11(月) 08:39:20.66ID:7ROk/vF5
phpってなんでこんな簡単なのにみんな使わないの?
0369デフォルトの名無しさん2016/01/11(月) 08:56:10.77ID:59+0WYwJ
使うとペチパーってバカにされるから…
簡単だし、薄く使えば遅くないのにね
0370デフォルトの名無しさん2016/01/11(月) 09:01:04.44ID:7ROk/vF5
ペチパーって呼び方初めて聞いたww  語呂の良さが異常
0371デフォルトの名無しさん2016/01/11(月) 10:18:36.33ID:Sg+RIRQN
Cannot modify header information

というエラーはヘッダ情報を出力する前にゴミ出してるエラーだけど
これの犯人を捕まえたいときは どう追えばいいの?

最終的にどれだけのファイルをincludeしたかを知りたいんだけど
知る手段はある?
0372デフォルトの名無しさん2016/01/11(月) 11:08:37.15ID:eFIzy0+D
>>371
インクルードされるファイルの戻り値を確認するのはどう?

http://php.net/manual/ja/function.include.php
例4 インクルードの戻り値を比較する
例5 include と return 文
0373デフォルトの名無しさん2016/01/11(月) 11:09:57.23ID:eFIzy0+D
それか、debug_print_backtrace の方がいいかも。

debug_print_backtrace() は PHPバックトレースを表示します。
関数のコール、include / require されているファイル、そして eval() された内容などが表示されます。
http://php.net/manual/ja/function.debug-print-backtrace.php
0374デフォルトの名無しさん2016/01/11(月) 15:15:49.79ID:VWhKDzdW
>>373
これ試す
オートロードでもちゃんと動きそう
0375デフォルトの名無しさん2016/01/11(月) 18:27:59.94ID:uSmHGUn0
リスト中の文字列すべてに対して類似検索をかけたい
文字列は文字列長50文字未満(要するに短い)英数記号だけでなくUTF8マルチバイトもある
リストは100〜500件程度
処理コストを出来るだけ抑えたい
こういうとき、どうすれば良いでしょうか?
0376デフォルトの名無しさん2016/01/11(月) 18:47:50.44ID:4Ze6IrjD
sqlite::memory:に任せてしまう
0377デフォルトの名無しさん2016/01/11(月) 21:02:46.19ID:79D4A84J
PHPでサーバデーモンを書きたいのですが
書いたものはターミナルからどうやって起動させるのでしょうか?
linuxからなら
nohup php server.php &
とかでいいのでしょうか?
0378デフォルトの名無しさん2016/01/11(月) 21:05:45.24ID:Sg+RIRQN
>>377
デーモンならちょっぴり悩むとこだけど
サーバならxinetdでいいっしょ
0379デフォルトの名無しさん2016/01/11(月) 21:18:13.13ID:79D4A84J
>>378
どうもありがとうございます
inetdでの設定方法がちょっとわかりませんが頑張ってみます
0380デフォルトの名無しさん2016/01/11(月) 21:36:41.54ID:uSmHGUn0
>>376
sqliteをmemoryに置いて高速に…まではわかるんですが
sqlite側だけで(sqlのlikeではなく)類似検索をやってもらえるもんなんですか?
0381デフォルトの名無しさん2016/01/11(月) 23:07:45.03ID:bjDzOe/b
やりたいことって、
例えば言葉を入力してもらい、

「それに一番近い、または似ている言葉をリストの中から見つけたい」

というようなこと?
0382デフォルトの名無しさん2016/01/11(月) 23:21:30.71ID:NHMT9p3u
どのくらいの精度が欲しいのか知らないが、similar_textじゃダメなの?
0383デフォルトの名無しさん2016/01/11(月) 23:54:38.73ID:FvSmyCNC
類似検索の定義がなんなのかはっきりしないことには答えようがないで
like検索のようなものと想定してsqlite言ったんだと思う
0384デフォルトの名無しさん2016/01/11(月) 23:59:48.64ID:uSmHGUn0
>>381
そう、そういうことです。比較対象が画像や記事など大き目のデータではなく短い文字列

similar_text()等だとマルチバイト対応化したコード例もあるものの
速度が気になっていて、リスト件数450件程で20msec

単純に検索文字列をn文字ずつずらしながらm文字ずつ取っていって配列にして
リスト文字列全てから検索文字列配列のいずれかが含まれるものを拾っていって
マッチ回数を順位・精度に使って…とすると2msec位程度には早くなるけどもここからの改善が難しくて難儀してます

sqliteだと固有の機能としてlikeでない類似検索機能はなさそうなので、後者のパターンに近い感じですよね
でもlikeの単純マッチだけになるから順位付け・精度向上は難しそう
0385デフォルトの名無しさん2016/01/12(火) 00:59:50.85ID:Ufdu0gJG
2つのcsvがあって、1つめのcsvを基準にもう1つのcsvから1行ずつマッチングさせる、、、という仕様があるんですが、一つのcsvファイルが50MB程度あるようでして....

Webサービスなので複数ユーザーが利用することを考えた時に、どうしてもメモリが足りなくなってしまうと思うのですが、どんな方法がいいでしょうか?

csvファイルを1行ごと取得するか、
dbを作って、csv入れて、処理が終わったら破棄するか
迷ってます。
0386デフォルトの名無しさん2016/01/12(火) 01:21:36.35ID:maRmmMSv
それってつまりユーザが2つのcsvを毎回アップロードするってこと?
0387デフォルトの名無しさん2016/01/12(火) 01:45:05.86ID:2yp1iNRN
>>385
実際にやってみてメモリ使用量や処理時間を測ってみたら?
0388デフォルトの名無しさん2016/01/12(火) 01:47:11.22ID:foKtfeeE
>>384
やりたい仕様に沿ったモジュールをCで書くのが一番じゃないかなぁ

>>385
マッチングが単純なマッチングでいいなら、diffに任せるのはどう
0389デフォルトの名無しさん2016/01/12(火) 01:52:56.43ID:iDDwmGx/
50MBあっても、読み込み専用ファイルなら、

共有モードになるから、一つしか読み込まれないのでは?
0390デフォルトの名無しさん2016/01/12(火) 01:59:56.30ID:Ufdu0gJG
ありがとうございます。
同じユーザーが2つのファイルをアップロードします。

イメージ的には別のアクセス解析的なサービスのエクスポートデータをマッチングした後、マージして出力、、、のようなイメージです。

結構マッチの条件が複雑なので、がっつり計測した後難しそうならCのモジュールで書く方向で頑張ってみます。

ありがとうございます!
0391デフォルトの名無しさん2016/01/12(火) 02:17:52.97ID:maRmmMSv
そんな感じだと、(きちんと書いたphpと比較するなら)cにして劇的に改善されるかというとそうでもないような
起動コストより実処理コストのほうがはるかに高いだろうし、単純文字列操作ならそりゃcより早くは無理だけど超絶遅いというわけでも

毎回データ変わるならキャッシュできない前処理しといて溜めて置くが効かない、dbの一時テーブルに放り込むのも効果は無さそう
dbは結局のところ横断的処理とインデックス・クエリキャッシュで速くしてるものと認識してる(間違ってたらすまん)

fgetcsv()->マッチ処理 を地道に繰り返させるのが一番じゃないかな
それか、アップロード前に、ある程度クライアント側でなんとか処理コストを負担してもらってから、アップロードしてもらうとか
もちろん生csvでアップロードするかzipなりなんなりで圧縮するかの検討も含めて
0392デフォルトの名無しさん2016/01/12(火) 02:20:04.00ID:maRmmMSv
あ、クライアント側で〜〜というのは、javascript等で処理してもらうのをイメージしてる
要件が許すなら、Web画面外で前もってやってもらうというのも視野に入るけど、多分NGだよね
0393デフォルトの名無しさん2016/01/12(火) 07:08:56.03ID:ThtAP2yF
>>385
2つのファイルで行の順序がズレず、余分行や欠行もなく行数も同一である
なら、双方のファイルから1行ずつ読みだして比較。

そうでないなら、DBに保存して、行数分selectを発行する。
(実際はプリペアドステートメントにしたほうが速い)


追加要求がたびたび発生しそうな案件だから、簡単に変更や拡張ができる
ように設計したほうがいいよ。
0394デフォルトの名無しさん2016/01/12(火) 21:37:41.39ID:BHuMfNei
>>6
俺は実験ですべてのデータをテキストファイルで運営するスレッド型掲示板作ったことがあるよ。
あくまでDBを使わずに掲示板を作る目的なんでセキュリティは考慮してないけど。
0395デフォルトの名無しさん2016/01/12(火) 21:44:01.01ID:j9E6SHov
どう考えてもDB使わないほうがセキュリティにはいいだろ
0396デフォルトの名無しさん2016/01/12(火) 21:52:38.55ID:ThtAP2yF
このスレのレベルは、開発者から超ド素人まで
幅広いなw
0397デフォルトの名無しさん2016/01/12(火) 22:10:21.80ID:maRmmMSv
>>393
「ちょっと気になった」レベルですまんけど
お題は2種のアクセスログのマージ、ポイントはメモリ量(&メモリ消費とトレードオフになるだろう処理速度)
2csvが同一でない、すなわち多少の順序の入れ替わりや欠落を想定する場合、dbを使うメリットってどんなのがあるか教えて欲しい
不整合データ出現頻度がかなり高くない限りは単純にcsvそのままテキスト処理した方が早い気が
マッチ処理によってはdbに入れる場合にDATETIMEでの大雑把な抽出じゃ足りず連番を付さなきゃいけなくなる可能性もありそう
0398デフォルトの名無しさん2016/01/12(火) 23:38:39.57ID:e9M6aAal
俺ならDB使うわ
なぜなら俺よりはるかに賢い人達が作っているものだから
そんで結合してNOT EXISTとかで抽出すると、俺がプログラムするより高速なはず
0399デフォルトの名無しさん2016/01/12(火) 23:43:01.72ID:3XnH8q7I
単に行jマッチングをするだけなら、そんなに時間は掛からないと思います。
DB化するにしても、まず読まないといけないわけですし。
0400デフォルトの名無しさん2016/01/13(水) 06:35:59.06ID:+CxjbDbc
>>399
DB使ったことねーだろ。
インデックスって知ってるか?

>>398
同意。
NOT EXISTSでもいいけど、テーブルの差分を返すSQLがあるよ。
それ使った方が速いしスマートかもしれません。

>>385
php.ini の設定変更してmemory_limit = -1 にすりゃ全部メモリに
入るだろうけど、そういうわけにはいかないのかな。
それが可能なら、array_search()使えばDBのインデックスもどきを内部的に
実装してるからDB使う場合とあまり変わらないかもね。

てか、そもそも50MBのファイルをアップロード時点で処理するのって、応答時間が
掛かりすぎないか?
そういう重たい処理は、ふつうCronで処理するものだと思うけど・・・
0401デフォルトの名無しさん2016/01/13(水) 07:39:27.56ID:WrMLUeLs
> array_search()使えばDBのインデックスもどきを内部的に実装してる

ここ詳しく
確かに2回目以降のarray_search()探索は1回目より速い
しかし、ためしに1000件程の文字列値を持つ一次元配列で試したところ以下の性質があった
・1回目の探索以降に探索対象の配列に値を追加し、この追加した値を2回目に探索しても速い
・2回目の探索に、配列の末端にある値を探索した時、先頭のそれと比べて遅い
これ裏で何やってんだ
参照渡しのアレみたいに内部で$haystackの形式変えてんのか?
0402デフォルトの名無しさん2016/01/13(水) 07:49:01.15ID:WrMLUeLs
ただ、いずれにしてもインデックスはデータを追加したとき・インデックス張り直したときに
検索しやすいように実データとは別に木を作っておいて、木に値を追加してってるわけだよな
データ追加に比べて探索のほうが回数が多い時のための前処理みたいなもんだ

初期コストが必要になるしメモリ消費は多くなる、php上でやるなら基本は全部メモリ展開になる
そういう意味じゃ、複雑なマッチ条件の内容にもよるが基本は使い捨てになる>>385案件だと
> DB化するにしても、まず読まないといけない
これもあながち間違ってるとはいえないと思う
何より、複数ユーザの同時実行を想定するとメモリ枯渇が怖いっつーお題の解決になってないように見えるんだが
0403デフォルトの名無しさん2016/01/13(水) 12:08:46.40ID:GdxfeXkR
DB否定する人ってDB使ったことない人が多い気がする
0404デフォルトの名無しさん2016/01/13(水) 12:24:13.73ID:JFAXc2hz
DB大好きだけどDBに夢を見すぎている人がいるとも思うよ。
NOT EXISTSや、テーブルの差分を返すSQL(MINUSのこと?)とか言ってる時点でちょっと優れない。

DBの話に終始するようならそこだけ切り出してDBスレどぞ。
0405デフォルトの名無しさん2016/01/13(水) 12:40:39.91ID:e/b/EzMv
50M程度のファイル読むのに躊躇しすぎカワユスなあwこれが杞憂というやつかw
0406デフォルトの名無しさん2016/01/13(水) 15:01:04.23ID:HEyl8rAG
DBは顧客IDなど、キーが滅多に追加されない場合に、
ハッシュ・2分探索木などで、インデックスを作っておいて、
全件検索せずに、マッチを見つける

同じデータで、DBを何回も利用するほど、得できる。
1回しか利用しないのなら、インデックスを作るだけ損

Java8なら、ParallelStream で並行処理もある
0407デフォルトの名無しさん2016/01/13(水) 16:19:56.99ID:2tOFPV9B
>>393
> そうでないなら、DBに保存して、行数分selectを発行する。
正気か?

データ1行1KBだとして、50MBだと50,000行。
1回のクエリが1msで終わったとして、ループ完了に50秒。

> 追加要求がたびたび発生しそうな案件だから、簡単に変更や拡張ができる
> ように設計したほうがいいよ。
お前のような奴が設計するとか、悪夢だわ。
0408デフォルトの名無しさん2016/01/13(水) 16:27:39.54ID: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秒くらいでいけるんじゃね?
0409デフォルトの名無しさん2016/01/13(水) 16:33:08.27ID: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かけるから、結構時間がかかる。
ひょっとすると、処理がオンメモリからこぼれる可能性もある。

やっぱ、クライアントコードでゴリゴリやるのがいいと思うよ。
0410デフォルトの名無しさん2016/01/13(水) 16:57:49.81ID:7o+WZppE
ジェネレーターってどういう時使うんですか?
return arrayでよくないですか?
0411デフォルトの名無しさん2016/01/13(水) 17:00:44.86ID:4eNfFdO0
上のみたいなデッカイリストで差分だけ見つけたいときに、
でっかいarray作ってから渡してたらメモリとかやってられねーときとか
0412デフォルトの名無しさん2016/01/13(水) 17:39:31.39ID:7o+WZppE
>>411
なるほど
確かにメモリ使用量そんなに増えてませんでした
自分のコードとにらめっこして使い所考えてみます
ありがとうありがとうー
0413デフォルトの名無しさん2016/01/14(木) 00:25:10.38ID:0bFJzjCb
>>409
なんでUNIONしたのかだけ知りたい
0414デフォルトの名無しさん2016/01/14(木) 10:09:12.40ID:Bial8fVP
>>413
データベースの処理時間の期待値を考えるための参考資料として。
データの概要とマージするための条件と、マージ内容そのものがわかれば、もっとましな例を出せるけどね。

ちなみに、>>409と同じ処理をコマンドで実行するとこんな感じ。

$ time cat log1 log2 | sort | uniq > /dev/null

real 0m8.280s
user 0m8.648s
sys 0m0.398s
0415デフォルトの名無しさん2016/01/14(木) 15:13:18.82ID:rIlJqcFi
php”全体”の速度測るのってどうやったら良いんだろ
最近のやつ色々分かれてて個別は取れてもトータルの取り方がわからにゃい
MVCの何処にセットしたらええんや
0416デフォルトの名無しさん2016/01/14(木) 15:38:19.91ID:Bial8fVP
>>415
httpdのアクセスログにレスポンスタイムを出力するとかは?
Apacheなら https://www.inter-office.co.jp/contents/26/ とか。

あとは、NewRelicを使うとか。
http://qiita.com/y_uuki/items/dd4fce78b1bc32b64600 とか参照。
0417デフォルトの名無しさん2016/01/14(木) 15:42:21.61ID:wEFFxXmv
>>415
リクエスト受け手から、応答を返すまでに掛かった時間ですか?
必要なときに、処理先頭と最後にマイクロ秒単位で時間埋め込んだ
ログ出力させてます。呼び出したDB処理時間もこれで見てます。
0418デフォルトの名無しさん2016/01/14(木) 16:17:52.10ID:J51KUMti
>>416
そういうのは
http://httpd.apache.org/docs/current/mod/mod_headers.html#header
こういうURLを貼った方が良いと思う

あるいは端的にtime(phpのtime()ではない)を見ても良いしtopやloadavg眺めても良い
0419デフォルトの名無しさん2016/01/14(木) 16:34:37.08ID:Bial8fVP
>>418
適当にググってトップ付近のやつを紹介してるから・・・。

というのは置いといて、Apache以外でPHPを動かしたことないんだが、ApacheだとたぶんPHPは
preforkで運用されるからtopとか見ても情報取れない。

プロダクトコードに手を入れるなら、Controllerの入り口と出口にログ出力を埋め込めばいいかな。
0420デフォルトの名無しさん2016/01/14(木) 16:45:00.66ID:0bFJzjCb
>>415
どのフレームワーク使ってるか知らんが、大抵公開ディレクトリのindex.php
0421デフォルトの名無しさん2016/01/14(木) 22:20:43.40ID: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";
0422デフォルトの名無しさん2016/01/15(金) 00:30:13.73ID:CUVZOqT7
上に書いてある配列を作るための処理を書きたいの?
0423デフォルトの名無しさん2016/01/15(金) 04:32:14.61ID:fuu0EYM6
>>422
はいそうです
0424421、4232016/01/15(金) 06:27:44.59ID:fuu0EYM6
ごめんなさいできました
配列に配列を追加する方法を理解してませんでした

$data_array_push=array('year' =>$year_value,'month' =>$heat_value);
$data_array["option_list"][]=$data_array_push;


0425デフォルトの名無しさん2016/01/15(金) 14:21:11.81ID:1U61S03a
print_rだと余計なものくっついてて見にくいので 指定したオブジェクトより下層にあるもののみを表示してほしいんですが
そんな機能ってないですよね
0426デフォルトの名無しさん2016/01/15(金) 14:33:07.07ID:1U61S03a
eachしてからはき出せばいいのか すみません自己解決しました
0427デフォルトの名無しさん2016/01/16(土) 04:32:43.29ID: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>

宜しくお願い致します。
0428デフォルトの名無しさん2016/01/16(土) 05:00:57.31ID:+P8je4Tg
img要素のクリックイベントでなんかすればよいのでは
0429デフォルトの名無しさん2016/01/16(土) 05:04:30.37ID:ib7wNkVh
>>427
ttp://pastebin.com/GSAjv2Lw
ボタンの背景が画像なのと、
画像がボタンなやつ
imagebutton.php で保存して試して

画像のフォーマットは別になんでも良いわけだから
「フォーム ボタン 画像」とかで検索すればええ
0430デフォルトの名無しさん2016/01/16(土) 05:06:37.61ID:At1JCi6a
単純に
<input type = “submit” value =“送信/“>

<input type="image" src="button.gif" alt="送信" />
でいいんじゃね?

つうか"とか全角になってるし/の位置はおかしいし
そのサイトに書いてるのコピペしたのなら違うとこ参考にしたほうがいい
とりあえずPHPは全く関係ない
HTMLのお勉強からだな
0431デフォルトの名無しさん2016/01/16(土) 05:33:00.36ID:1Q480V2w
この全角ダブルクォーテーション君しばしば見かけるがなんなんだろう
ホンマモンか
0432デフォルトの名無しさん2016/01/16(土) 13:30:12.57ID:ycK3j5Q3
欧米人は日本語などわからないから、

プログラミングでは、半角英数字記号だけを使え
0433デフォルトの名無しさん2016/01/16(土) 18:10:30.91ID:Xv931QNY
>>432
彼らは日本語ペラペラだよ
0434デフォルトの名無しさん2016/01/16(土) 18:16:48.45ID:pR1crJRD
>>プログラミングでは、半角英数字記号だけを使え

リテラル以外では、ね。
0435デフォルトの名無しさん2016/01/16(土) 18:22:52.82ID:hHanXJse
>>432
っコメント
0436デフォルトの名無しさん2016/01/16(土) 18:23:48.17ID:hHanXJse
あと変数名とかクラス名も日本語使っていいやろ?
0437デフォルトの名無しさん2016/01/16(土) 18:26:54.72ID:1Q480V2w
ええで

エンコーディングが変わったとき面倒なことになるからお勧めはしない
いないとは思うがsjisで書いてるともっと面倒なことが起きることもある
0438デフォルトの名無しさん2016/01/16(土) 18:43:01.73ID:FL+/Wrts
漢字の変数名使える言語ってあるけど、あれって便利。
0439デフォルトの名無しさん2016/01/16(土) 18:50:28.09ID:yAzflN6j
PHP のコードに日本語をふんだんに使う実験
https://gist.github.com/oov/1245051
0440デフォルトの名無しさん2016/01/16(土) 19:06:25.51ID:Xv931QNY
>>437
DBでカラム名は日本語にする
0441デフォルトの名無しさん2016/01/16(土) 21:43:18.62ID:6VsbZM5h
<?ピーエッチピー

でOK牧場
04424272016/01/16(土) 23:25:10.11ID:SpjLOc5M
>>428-430
ありがとうございます。
全角「“」は僕も気になりましたが、まあ意味は通じると思い原文のまま書きました。
0443デフォルトの名無しさん2016/01/17(日) 06:05:33.96ID:tuQ8TFb+
twitterのoauth認証で
認証してユーザー情報を取得するところまでできたけど

ページa

loginページ

ツイッターの認証ページ

callbackページ

ここからページaに戻るにはどうすればいい?
0444デフォルトの名無しさん2016/01/17(日) 06:31:00.34ID: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;
?>

しかしこれだと http://uproda.2ch-library.com/914124ZUK/lib914124.png
というエラーになり、ここでの7行目の3文字目とは
http://uproda.2ch-library.com/9141256bd/lib914125.png の通り「?」の箇所です。
test01.php の実行自体は問題ありません。 どうすべきでしょうか?
04454442016/01/17(日) 06:40:29.48ID:eeO9wv+/
(若干訂正)
PHPの7行目の3文字目は、上のコードでは「5行目の3文字目」になります。
※画像ではコメントと改行が入って行数が増えている
0446デフォルトの名無しさん2016/01/17(日) 07:28:51.60ID:psLvHeOf
どうすればいいか、どうすべきか?
443・444どっちもphpの問題じゃねーべ
0447デフォルトの名無しさん2016/01/17(日) 07:30:01.97ID:pgS1e5He
DOMインスペクタがPHPコードのエラーを表示している訳がなかろう
とりあえず通信が成功しているかどうかのチェックからだな
0448デフォルトの名無しさん2016/01/17(日) 09:45:39.51ID:zq5NkK7o
>>444
test01.phpをhtmlと同じフォルダに入れて
url: './test01.php',
にしてみ
0449デフォルトの名無しさん2016/01/17(日) 18:18:52.47ID: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()に書き換えよう
0450デフォルトの名無しさん2016/01/17(日) 18:22:32.25ID:FIJ4pea6
faile()… fail()の間違いです…
0451デフォルトの名無しさん2016/01/17(日) 18:24:31.54ID:qybhyeyY
jQueryに頼るからそうなるんだよ
まずはXMLHttpRequestで実装してみて
どういう風になってるか把握するとこから努めないと
スレ違いのスレで質問しちゃうことになる
0452デフォルトの名無しさん2016/01/17(日) 18:41:31.69ID:FIJ4pea6
スレ違いは間違いないからあほ!なんだけど、
もう流石にいい加減、jQueryに頼るから〜ってレスはやめてください。
今時、使わないほうが希少種です。
0453デフォルトの名無しさん2016/01/17(日) 23:34:49.35ID:zq5NkK7o
どうなったんや?
一応貼って置くので
ttp://pastebin.com/1RSv6wmj
ttp://i.imgur.com/yxUJppk.png
0454デフォルトの名無しさん2016/01/17(日) 23:38:10.87ID:TOtPxQji
>>452
>今時、使わないほうが希少種です。

それを裏付けるデータがあったら教えて
04554442016/01/18(月) 00:25:55.47ID:0QY1hoYK
>>446-449
ありがとうございます。

先ず、448さんの方法では変わりはありませんでした。

次いで449さんの方法ではアラートは出ますが
http://uproda.2ch-library.com/914265i2d/lib914265.png
となって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>

引き続きアドバイス頂ければ幸いです。
0456デフォルトの名無しさん2016/01/18(月) 00:29:59.99ID:xorwc0MR
PHPが実行されてないからajax以前の問題
0457デフォルトの名無しさん2016/01/18(月) 00:30:33.95ID:IY21gL9C
スレ違いを指摘されてもなお続ける面の皮
0458デフォルトの名無しさん2016/01/18(月) 01:19:09.43ID:l+ZoI4wj
順番にやった方がよくね
(1)test01.php 単体でなんか表示、「$POST not set」とか
(2)caller.php 適当に作って、POSTでtest01.phpを呼ぶ
またはcurlでtest01.php呼ぶ
(3)jqueryのAJAXで呼ぶ
0459デフォルトの名無しさん2016/01/18(月) 01:48:22.55ID:9UQJyg5l
>>455
一足飛びにajaxに手を出すから何がおかしいのかさっぱりわからない状態になる。
本来すべき質問はtest01.phpが実行されないのはなぜですか?になるべき段階だよ。
当初のajaxは単に枯れた技術の組み合わせであり、まずは個別の技術の基礎を学んでからのほうが楽。
0460デフォルトの名無しさん2016/01/18(月) 04:42:55.55ID:CuSa9hFS
他いけよ。
0461デフォルトの名無しさん2016/01/18(月) 04:56:15.81ID:0dQdxBDN
まさにくだらない質問なので適切ではないか?(名推理)
04624442016/01/18(月) 05:10:12.79ID:0QY1hoYK
分かりました。 移動します。
04634442016/01/18(月) 06:04:37.86ID:0QY1hoYK
(移動しますと書きましたが)
>>453
すいません見落としていました。 取り急ぎ丸コピペ実行しましたがやはりダメでした。
http://uproda.2ch-library.com/91428499G/lib914284.png
PHPの文字コードに問題があるのでしょうか?UTF-8での保存は確認しています。
0464デフォルトの名無しさん2016/01/18(月) 06:28:53.94ID:l+ZoI4wj
>>463
458のように順番に試した方がいいぞ
PHP単体、多分動かないんじゃね
HTMLのフォームからPHPへ
ajaxでPHP呼ぶ
0465デフォルトの名無しさん2016/01/18(月) 06:53:10.94ID: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'];

別にこれで問題ないけど
0466デフォルトの名無しさん2016/01/18(月) 06:59:17.65ID:fWgtaTDg
スレ違いのこっちに移動されても困るんで、
>>444は引き取ってくださいねーw

+ JavaScript & jQuery 質問用スレッド vol.5 + [無断転載禁止]©2ch.net
http://peace.2ch.net/test/read.cgi/hp/1452081417/
04674442016/01/18(月) 07:13:40.11ID:0QY1hoYK
>>466
そのスレに書き込んだ後で>>453に気付いたので報告レスしました。
もうこちらからは完全に移動します。
0468デフォルトの名無しさん2016/01/18(月) 07:16:24.19ID:fWgtaTDg
>>454
> それを裏付けるデータがあったら教えて
あるよ。

jQueryを含むJavaScriptライブラリの使用率だよ

http://w3techs.com/technologies/overview/javascript_library/all
http://w3techs.com/technologies/history_overview/javascript_library/all

jQueryは圧倒的の68.6%。(market share?は95.8%)
まだ増え続けてるっていうんだから面白いねw

2位はBootstrapの10.7%。使用してないサイトは28.4%
0469デフォルトの名無しさん2016/01/18(月) 07:21:56.17ID:fWgtaTDg
年ごとのデータもあった

http://w3techs.com/technologies/history_overview/javascript_library/all/y

2011年には何も使ってないサイトが61.8%、jQueryを使ってるサイトが28.3%しかなかったのに
この5年で入れ替わるように何も使ってないサイトが28.4%
jQueryを使ってるサイトが68.6%まで増えたのは興味深いね。

>>452が言っているように、今時jQueryを使わないサイトは少ない。
どんどん減り続けているということが実証された。
0470デフォルトの名無しさん2016/01/18(月) 07:59:24.20ID:l+ZoI4wj
>>469
最近、jQueryやめてAngular1.4使ってるよ
ソースコードが短いし、読みやすくていい
検索してリスト表示、選択してフォームで編集して更新
って画面ばかり有るんだけど、40行くらいからで書ける
労力はDB側に掛けたいのでありがとうございます
0471デフォルトの名無しさん2016/01/18(月) 08:44:44.49ID:fWgtaTDg
>>470
だからなんだよw

俺はjQueryが使われていること裏付けるデータが
あったら教えてというから書いただけだ。
このデータについてのレスをしろよ。

な? jQueryが使われているのは事実だったろ?
しかもまだ増え続けているとは驚きだ。その増加量はAngularJSよりも大きい
直近の半年でAngularJSは0.3%近く増えているが、jQueryは7%も増えている。
http://w3techs.com/technologies/history_overview/javascript_library/all/q
0472デフォルトの名無しさん2016/01/18(月) 08:48:50.74ID:fWgtaTDg
しかし、AngularJS使っている人は悲惨だよな。
AngularJS 2.0で全くの別物になってしまう。

これだけのものが無くなってしまう。
http://www.slideshare.net/armorik83/angular3-gdgkobe150429#13

長く使えるjQuery。すぐにオワコンになるAngularJS
実用にはならないな。
0473デフォルトの名無しさん2016/01/18(月) 09:01:58.22ID:4JmPqlHr
スッドレ違いって言ってるだろ。
いい加減にしないとソースに全角空白紛れ込ませるぞ。
0474デフォルトの名無しさん2016/01/18(月) 16:08:17.28ID:hDiCYvvO
やめてください
0475デフォルトの名無しさん2016/01/18(月) 16:42:28.89ID:6kCxX3LY
バグが出たらとりあえあず全角スペースをgrep検索
0476デフォルトの名無しさん2016/01/18(月) 19:17:47.17ID:9UQJyg5l
>>467
もっかい書くけど
> 本来すべき質問はtest01.phpが実行されないのはなぜですか?になるべき段階だよ。
であり、根本的な問題はこのスレであってるし、つまりはJSスレではスレ違いであり
最終的にここに誘導される問題。
0477デフォルトの名無しさん2016/01/18(月) 19:52:08.47ID:8xjoGFUT
正確ひねくれた奴に付き合ってわざわざ普及率をぐぐったのに
さらに >>468 かわいそす。
0478デフォルトの名無しさん2016/01/18(月) 19:52:43.30ID:8xjoGFUT
そりゃ、俺の日本語も変になるわ。
0479デフォルトの名無しさん2016/01/18(月) 22:29:36.18ID:5OTOY/q+
それも全角スペースのせいです
0480デフォルトの名無しさん2016/01/18(月) 23:53:11.22ID:fWgtaTDg
>>473
> いい加減にしないとソースに全角空白紛れ込ませるぞ。

JavaScriptは全角空白もちゃんと空白として
扱ってくれる。Unicodeだからな。
0481デフォルトの名無しさん2016/01/19(火) 00:00:09.01ID:lFJIU7vI
>>477
別に気にしてないよw
ぐぐったらデータ見つかったという事実が
俺にとっては、これからの2ちゃんの議論(笑)に便利に使えるから。

っていうのは、一部のマヌケが、今はjQueryを使わなくても
昔ほど頑張らなくてもできるという事実からjQueryは不要と言い張ってるからね。

確かにブラウザ間の互換性は高くなってDOM命令も増えたから
少しは楽になってるんだが、どう頑張ってもjQueryの生産性には勝てない。
マシン(スマホ)スペックがあがってjQuery程度は重くない状況になるに連れて
逆にjQueryでいいじゃん。ってなってるのがデータとして明らかになったから。

俺としては意外だったよ。2011年の時点でたった28.3%しか使われてなかったんだな。
もっと使われていると思っていた。そしていい加減使用率は安定しただろうと
思っていたが、まだ伸び続けているんだもんな。

jQueryはウェブプログラマにとって必須の技術やで。
サーバーサイドでどんな言語を使っていたとしてもクライアントはJavaScriptだしな。
0482デフォルトの名無しさん2016/01/19(火) 00:32:20.52ID:7OIPGD+F
Bootstrap使う→jQuery呼んでくる
Bootstrap-css-only使う→jQuery入らない

とか有るで
0483デフォルトの名無しさん2016/01/19(火) 00:39:09.99ID:lFJIU7vI
Bootstrap-css-onlyって非公式だろ?
0484デフォルトの名無しさん2016/01/19(火) 01:13:06.64ID:GX2g8B+J
> そしていい加減使用率は安定しただろうと思っていた
そのような便利なものの普及率が上がらないと考えることに違和感が
0485デフォルトの名無しさん2016/01/19(火) 01:31:17.11ID:XXCf+6mx
目先の生産性より保守性を考えた方がいいし
jQueryの吐き気がするコードよりES6の綺麗なコードのほうがいい
jQueryなんぞレガシーと共倒れして欲しい
0486デフォルトの名無しさん2016/01/19(火) 02:14:16.73ID:inrrYzR3
結局、PHPはサーバーサイドでモデル担当のREST APIだけやらせて
クライアント側はReactとかでSPAをキメるって流れなんすか昨今
0487デフォルトの名無しさん2016/01/19(火) 02:23:57.74ID:lFJIU7vI
>>484
> そのような便利なものの普及率が上がらないと考えることに違和感が
もう上げ止まったと思ってたんだよw
で、実際調べてみたら、まだまだ増え続けていたと。

>>485
> jQueryの吐き気がするコードよりES6の綺麗なコードのほうがいい

保守性はjQueryを使ったほうが高いよw
そもそもES6と比べているのがわかっていない証拠で、
jQueryはDOMライブラリなのだから、DOM APIと比べるものだ。
0488デフォルトの名無しさん2016/01/19(火) 02:29:26.85ID:lFJIU7vI
>>476
> クライアント側はReactとかでSPAをキメるって流れなんすか昨今

正確には、
クライアント側はReactとかでSPAをキメるって流れなんすよ!と
意識高い系が言っているが、まあ一向にその流れにはならないよね。
っていう状態。

そもそもウェブ標準技術が素晴らしくて
HTMLとCSSと簡単なJavaScriptで大抵のことができる。
ガラッと全部変えてしまう必要はないわけよ。

殆どのサイトは、サーバーサイドで動的にページを作って
クライアントではHTMLとCSSにちょこっと動きをつけるだけ十分だからさ。
04894442016/01/19(火) 02:45:50.89ID:pnQSq0aL
SVGでも上手くいったので報告のみ。 有難うございました。
http://uproda.2ch-library.com/914386yz1/lib914386.png
0490デフォルトの名無しさん2016/01/19(火) 02:49:30.98ID:GX2g8B+J
>>488
> ウェブ標準技術が素晴らしくて
いや、根本的なところでいっぱいいっぱいよ。
無理やり取り繕ってそれなりに動いてるけど、Keep-Aliveなんてその象徴で。
てか、WebProg板に戻ればその程度の話もありかもしれないけど、さすがにスレ違いじゃないかな。
0491デフォルトの名無しさん2016/01/19(火) 04:47:52.36ID:XXCf+6mx
ajaxの話してんじゃねーのか
そもそもsuccessなんておおざっぱすぎんだよjQueryは
XHRなんざHTTPステータスコードで振り分けるのが普通なのに
結局それをjQueryでやるとすると基礎的なXHRの使い方知らないといけないわけで
0492デフォルトの名無しさん2016/01/19(火) 05:35:51.01ID:Nqy5RA/d
最近バッチをphpで書く頻度が高くなってきたんだけど
バッチをphpで書くうえでなんか気をつけることとか気にしたほうがいいことある?
0493デフォルトの名無しさん2016/01/19(火) 09:07:06.77ID:EHMwOvRq
とくにありませぇん!
0494デフォルトの名無しさん2016/01/19(火) 10:48:56.24ID:dn2qavdB
共用サーバーにてTOPコマンドを見るとPHPのプロセスが5分近く経過しているものが複数あります。
また、それらが、CPUを90%以上消費していてサーバーが重くなっている原因のようです。

共用サーバーで、PHPのプロセスが5分ほど必要となる処理はどのようなものなのでしょうか?
迷惑メールの配信や何か実験的な処理をしているのか気になります。
0495デフォルトの名無しさん2016/01/19(火) 20:23:40.98ID: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()は安心できない。
0496デフォルトの名無しさん2016/01/19(火) 20:31:38.19ID:ZQY3FJjH
あ… これだけのことか…

> シリアライズされたものをデータベースに保存したい場合はテキスト型ではなくBLOB型に入れなくてはいけないこと
http://9-bb.com/serialize-json/

バグじゃなくて、俺が無知なだけか…?
0497デフォルトの名無しさん2016/01/19(火) 20:44:35.13ID:ZQY3FJjH
PDOはPARAM_LOBにすればいいのか…

逆に受け取るDataModelの方は
http://php.net/manual/ja/function.fbsql-create-blob.php
で見ると、string型でいいのかな。
0498デフォルトの名無しさん2016/01/19(火) 20:48:30.62ID:ZQY3FJjH
Postgreはbyteaか… 考えてなかったな。
今回はJSONにして突っ込むことにしょう。

以上、日記帳でした。
0499デフォルトの名無しさん2016/01/19(火) 20:57:33.40ID:JQKWuCIL
>>496
シリアライズされたものはテキストじゃないからなあ
0500デフォルトの名無しさん2016/01/19(火) 21:02:10.36ID:ZQY3FJjH
>シリアライズされたものはテキストじゃないからなあ

始めてserialize()使ったのでしらなかたですよ。
0501デフォルトの名無しさん2016/01/19(火) 21:58:53.71ID:KFDDwRTN
リアルタイムチャットを作成中なのですが、参加中の誰かがレスした場合参加者全員にそのレスが自動で反映されるようにしたいのですがどういった方法があるでしょうか
0502デフォルトの名無しさん2016/01/19(火) 22:59:04.94ID:GX2g8B+J
>>501
WebSocketとかそれの基礎になった技術とか。
0503デフォルトの名無しさん2016/01/19(火) 23:16:50.74ID:MQlDHK62
ユーザーに専用クライアントアプリを使ってもらうのか、
それともWebブラウザでそれを行うのか、どちらを選ぶ?
0504デフォルトの名無しさん2016/01/19(火) 23:19:29.59ID:Nqy5RA/d
IRCを選ぼう!!もしくはJavaアプレットを選ぼう!!
0505デフォルトの名無しさん2016/01/20(水) 11:05:28.88ID:ylux4+BR
WebSocket使えない前提で
よくあるLAMP構成でServer-sent eventsで実装したことあるよ
WebSocket使うかオワコンFlashのsocketでやるかを強く勧めるけど
0506デフォルトの名無しさん2016/01/20(水) 20:02:08.98ID:IcUtd/ZM
websocketでいきます!
で、何からしたらいいんですか!
0507デフォルトの名無しさん2016/01/20(水) 20:32:28.30ID:IcUtd/ZM
できたらphp以外の言語使いたくないんですが、それでもwebsocketでいけますか!?
0508デフォルトの名無しさん2016/01/20(水) 20:43:16.73ID:VBqz4pFt
お好きな言語でどうぞ
https://ja.wikipedia.org/wiki/WebSocket
0509デフォルトの名無しさん2016/01/20(水) 21:27:09.88ID:IcUtd/ZM
もうmetaタグのリフレッシュでいいかな\(^o^)/オワタ
0510デフォルトの名無しさん2016/01/20(水) 22:53:43.22ID:CHSb/c/Y
>>508
IEは10から対応になってるのか

>>509
無駄に通信量を増やすのはよくない
せめてAjaxかServer-sent eventsを使おう
0511デフォルトの名無しさん2016/01/20(水) 23:35:37.97ID:IcUtd/ZM
>>510
AjaxとSSEってJavaScript使いますよね?
php以外使いたくないんです…
ていうかJavaScript使わないと実現は無理なんですか(´;ω;`)
0512デフォルトの名無しさん2016/01/20(水) 23:40:18.30ID:jXFo1zab
クライアントサイドにPHP使えないし
0513デフォルトの名無しさん2016/01/20(水) 23:44:44.00ID:mgGaJ5jA
phpがというよりHTMLの仕様がそういう代物だから仕方ない
だからこそJavaScriptで無理やりhttpコネクションを保持し続けたり別のポート使って接続保持したりするやり方が生まれた

ぶっちゃけIRCで良いと思うがな
0514デフォルトの名無しさん2016/01/20(水) 23:45:11.20ID:ylux4+BR
当たり前だよおまえさん
WebSocketAPI呼び出しもブラウザ使う以上JavaScript使うしかないし
ブラウザ側でDOM操作行わないとチャットログの追加反映も出来ないし
metaやajaxの場合PUSHだからリアルタイムとはほど遠い
0515デフォルトの名無しさん2016/01/20(水) 23:45:30.07ID:mgGaJ5jA
HTMLじゃねーHTTPだが察してくれるだろうきっと
0516デフォルトの名無しさん2016/01/20(水) 23:45:48.81ID:ylux4+BR
PUSHじゃんばくてPULLね
0517デフォルトの名無しさん2016/01/20(水) 23:49:18.74ID:VBqz4pFt
>>511
>>490で書いたとおり。必死で取り繕ってるんですよ。
HTTPにこだわる理由はないよ。
0518デフォルトの名無しさん2016/01/21(木) 00:29:57.24ID: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()無しにしても同じです。
どうすべきでしょうか?
0519デフォルトの名無しさん2016/01/21(木) 00:38:31.31ID:Sip1K5kx
なぜdate('Y/m/d H:i:s', time())を使わない
05205182016/01/21(木) 00:52:13.07ID:ONMay5Kd
>>519
どうも。
本を見ると「2038年問題を考慮すればDateTime()を使うよろし」とあったので。

date('Y/m/d H:i:s', time())ではなく、time()抜きのdate('Y/m/d H:i:s')で上手く行きました
0521デフォルトの名無しさん2016/01/21(木) 01:07:19.69ID:nDfkJ148
>>518
どこにお住まいですか?
もしかしたら、先頭にtimezone設定がいるかもしれない。

date_default_timezone_set('Asia/Tokyo');
$s = $now->format("Y/m/d H:i:s") ;// 「年/月/日 時:分:秒」に変換
$str = ' Hello time is: '.$s;
05225182016/01/21(木) 01:10:40.33ID:ONMay5Kd
>>521
どうも。 修羅の国です。
formatの前に$now = new DateTime(); は不要ですか?
0523デフォルトの名無しさん2016/01/21(木) 01:15:05.18ID:nDfkJ148
>>522
その行が抜けました。すんません。
0524デフォルトの名無しさん2016/01/21(木) 01:20:36.77ID:Sip1K5kx
>>520
time()があると上手く行かなかったのか?
05255182016/01/21(木) 01:24:47.41ID:ONMay5Kd
>>523
そげなこつであやまらんでよかばい(修羅語)


>>524
Yes。 何か別のエラーがでたばい
0526デフォルトの名無しさん2016/01/21(木) 01:26:26.57ID:Sip1K5kx
>>525
ほー、そんなパターンがあるのか
そのエラー具体的に教えて欲しい
05275182016/01/21(木) 01:36:48.64ID:ONMay5Kd
>>526
再確認しましたが、エラー無しでイケました


>>521
OKでした
0528デフォルトの名無しさん2016/01/21(木) 01:47:55.71ID:nDfkJ148
おやすみなさいw
0529デフォルトの名無しさん2016/01/21(木) 04:14:34.62ID:ONMay5Kd
file_get_contents() と LOCK_EX の関係で質問です。

http://sidewalkcafe.hatenablog.com/entry/2014/10/13/151441 では、
自分で排他的ロック(LOCK_EX)したファイルにfile()やfile_get_contentsでアクセスできない
読み込んだ場合、空白を返してくる

となっていることから、file_get_contents() で書き込み禁止にするにはLOCK_EXではなく
LOCK_SHを使うべき、ということでしょうか?
0530デフォルトの名無しさん2016/01/21(木) 11:30:53.00ID:BtAPEIYX
>>529
3行目の文章がなんか変じゃない?
0531デフォルトの名無しさん2016/01/21(木) 19:22:10.47ID:/hdV4L1Y
>>511
PHP以外も勉強したほうがいいぞ

「PHPしか使えないプログラマはPHPerと呼ばれて迫害される決まりになっている」
http://www.mwsoft.jp/column/program_top10.html
0532デフォルトの名無しさん2016/01/21(木) 19:33:13.20ID:RqTcmjez
>>531
PHPを使うプログラマは馬鹿と呼ばれるけど実際に馬鹿
0533デフォルトの名無しさん2016/01/21(木) 20:24:08.77ID:82AC7ZvL
独学で仕事にしようと思ったけど結局javascriptやらjqueryがないとトレンドの業務ができない
0534デフォルトの名無しさん2016/01/21(木) 23:18:26.17ID:YJDaPBmR
「PHPしか使えないプログラマ」なんて存在するの?
普通JavaScript触ってからくるよね
0535デフォルトの名無しさん2016/01/21(木) 23:22:40.36ID:nDfkJ148
DBも扱えるだろうし、出来ないと困るだろう
0536デフォルトの名無しさん2016/01/21(木) 23:34:58.46ID:kJ+YJJJK
>>531
先生方に意見を頂き今日からJavaScriptとjQueryの勉強も始めました!
でも何故?そんなのって…シどいよ(´;ω;`)
なんでみんなPHP嫌いなの…
0537デフォルトの名無しさん2016/01/21(木) 23:43:27.96ID:ONMay5Kd
>>530
実際に試しましたが、空白が出力されました
0538デフォルトの名無しさん2016/01/21(木) 23:46:32.63ID:UpyxYgr4
>>537
とりあえずflockのページ見てみたら
0539デフォルトの名無しさん2016/01/22(金) 00:12:21.68ID:51lNvTOS
>>536
Go Languageスレで、GoとPHPの速度比較してた人が居たけど
フレームワーク無し、素のPHPでPDOで1000行読んで返す、ならGoとの差は出ない模様だった
しかしCakePHPとJavaやASP.NETの速度差なんてのは比較しちゃいけないわけで

PHPの居場所を理解して使うならPHPでいいんだけど
やばい戦場にのこのこPHPerが出て来たら「危ないから引っ込んでろ!」て言われるかと
0540デフォルトの名無しさん2016/01/22(金) 06:07:16.81ID:3hsiJLGg
フロント側とサーバ側で違う役割を持てるからjavascriptはWeb扱うなら知っといて損はないというか知っとくべき
jQueryやらnode.jsやらを使うかどうかは人次第

他の言語とphpの比較とかphp叩きはだいたいは関わるだけ時間の無駄 安全圏から何かを叩きたい奴がやってんだから
んなことに関わるヒマがあるなら少しでも多くリファレンス読んどけ
0541デフォルトの名無しさん2016/01/22(金) 06:31:41.76ID:67V/2UXe
PHPは遅いなどと言ってるやつのほとんどは、
1日数ヒットしかなく速度なんてどうでもいい
Webサイトを作っているんだろうな。
0542デフォルトの名無しさん2016/01/22(金) 08:48:43.91ID:O2WCZeV/
うちは外部用のサイトはaspxで作ってるな
社内用がPHPです
0543デフォルトの名無しさん2016/01/22(金) 12:13:38.71ID:O2WCZeV/
そう言えば、PHPは遅いとか言うならApacheの拡張モジュール作ればいいんすよ
これが最速だよね
0544デフォルトの名無しさん2016/01/22(金) 12:23:49.71ID:ycxOqfJb
リニューアル案件で、今までのシステムが遅いからJavaに変えてっていうシステムいくつか見たけど
遅い原因はほぼDB周り
1日数万アクセスくらいで遅いなら作り方が悪い
0545デフォルトの名無しさん2016/01/22(金) 12:48:10.55ID:YiBMDULZ
速度の問題というよりも知識の範囲が狭く浅いのが問題なんだよ
知識がないとJavaScriptやSQLでやるべきことをPHPでやったりしておかしなことになる
0546デフォルトの名無しさん2016/01/22(金) 12:54:43.21ID:1bAFX+Fn
結論:PHPerは問題が多い
0547デフォルトの名無しさん2016/01/22(金) 13:36:25.03ID:5aCqopti
最近の出来ないプログラマの特徴は
cakephpが得意です
railsを使ってました
jqueryなら任せてください
sqlは苦手です。って言うかアプリでやるべき
2個当てはまると危険
0548デフォルトの名無しさん2016/01/22(金) 14:43:53.75ID:51lNvTOS
表をソートしたいなら、その度ごとにORDER BYを変えて呼び直せばいいし
なんか行がたくさんあるデータを集計したいらしいけど、PHPで頑張ればいいよね、PHP最高!

(ノンフィクション)
0549デフォルトの名無しさん2016/01/22(金) 18:57:32.94ID:ruYA0l5t
ジョークが難しすぎるぞ
0550デフォルトの名無しさん2016/01/22(金) 20:24:05.09ID:n/aRHbCp
サーバ側アベレージ0.15秒以内で出力してるけど、
クライアント側がリッチ過ぎて、トータル2.5秒くらいかかってる…

なんとかせねば…
0551デフォルトの名無しさん2016/01/22(金) 20:30:01.01ID:n/aRHbCp
jQueryでDOM操作してれば無理ないかな…
0552デフォルトの名無しさん2016/01/23(土) 00:25:31.72ID:PP7i7twY
mag.js ってのがくっそ速いらしいよ
DOM操作し終わってから描画させるみたいな
0553デフォルトの名無しさん2016/01/23(土) 02:59:56.35ID:7sr7TKAy
PHP7
0554デフォルトの名無しさん2016/01/23(土) 12:30:25.27ID:PP7i7twY
543がいい事言ったと思って
WebエンジニアのためのApacheモジュール プログラミングガイド
技術評論社でPDF買ったわ、これなにげにWebの最終兵器やろ
05555502016/01/23(土) 14:14:28.49ID:avATldjo
>>552

JSに限らないんだけど、いつ消えてしまうかわからないのは採用しづらいかな。

jQuery使う理由はもう、完全に普及してしまっている事と、
もう一つ、メモリリークしないようにjQueryが裏で管理してること。

昔まだjQueryが普及する前にネイティブなJSで超リッチクライアント作ってた時は
メモリリークとの戦いでもあった。

jQueryはちょっと遅いけど、そういう煩わしさから開放されるからってのも大きい。

でも、mag.jsも見てみます。ありがとう。
0556デフォルトの名無しさん2016/01/23(土) 14:42:10.94ID:kHaPTSNf
>>554
それ随分古いけど大丈夫か?
基本的なところは互換性があるだろうけど, Apacheのリファレンスの方が役に立つんじゃ?
0557デフォルトの名無しさん2016/01/23(土) 15:23:07.38ID:PP7i7twY
>>556
ビルドの説明とか全然役に立たないので
読み終わったら現行のリファレンス見ますw
0558デフォルトの名無しさん2016/01/23(土) 15:56:03.67ID:cXyJ8RA7
お前ら脱線しすぎだろう
0559デフォルトの名無しさん2016/01/23(土) 19:16:12.79ID:+Ht1pL5B
今、作りたいもの作りながらPHPやらJavaScript勉強中なんですがみなさんはどんな勉強してますか?あと一日どれくらいの時間勉強してますか
0560デフォルトの名無しさん2016/01/23(土) 19:22:22.02ID:cXyJ8RA7
わからないとこはリファレンスひいたりサンプル見たりするけど
その作業を勉強というなら数分程度じゃね
0561デフォルトの名無しさん2016/01/25(月) 14:10:14.53ID: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);
}
以上よろしくお願いいたします
0562デフォルトの名無しさん2016/01/25(月) 15:04:15.45ID:/RjUrVS5
>mysqli_stmt_execute($stmt) or die('クエリ実行に失敗しました');
>$result = mysqli_stmt_execute($stmt);
3回insertはわからんけど、とりあえずここ2回executeしてるよ

passwordが空は$input_passwordはちゃんと中身入ってるの?

あとトランザクションはqueryでやらない関数使った方がいい
http://php.net/manual/ja/mysqli.begin-transaction.php
http://php.net/manual/ja/mysqli.commit.php
0563デフォルトの名無しさん2016/01/25(月) 15:52:26.43ID:8/faLYqO
>>562
ありがとうございます!
早速そこ消してみたところ、一回になりました。
3回出てたのは結局原因不明でした。(もしかしたら勘違いかもしれません)

$input_password
の中身はここに入る前のphpファイルで確認ページとして表示させているので入っていると思われます。
表示させて、そのままhidden属性付けて再度今回のファイルにPOSTしています。

参考URLまでありがとうございます。
早速確認します!
0564デフォルトの名無しさん2016/01/25(月) 16:25:33.36ID:/RjUrVS5
同じようにしてるはずのnameやemailが入ってて
passwordだけ入ってないってのはおかしいんだよね

まぁ処理的にいえばnameやemailと違ってハッシュ化したりするだろうから
そこで何か問題が発生してる可能性もあるけどエラー出るだろうし可能性は薄そう

POSTデータ受け取った時点では同じようなデータのはずだから
単純に勘違いやタイプミスによるパラメータ名の間違いとかだと思うけど
0565デフォルトの名無しさん2016/01/25(月) 16:27:29.75ID:8/faLYqO
>>564
そうですよね。
nameにpassword属性が入っていたら仕様上そうなるのでは何て勘ぐってました。
確認し直します!
0566デフォルトの名無しさん2016/01/25(月) 17:13:43.36ID:8/faLYqO
>>564
お陰様で解決しました。
name=となるところが別のものになっておりました。
先ほどお教えいただいたトランザクションの件なのですが、
さくらのレンサバを使っているためMysqlのverが5.5のみでmysqliのトランザクション処理がかけられませんでした。
0567デフォルトの名無しさん2016/01/25(月) 17:41:32.04ID:Zv/OVgae
トランザクションが効かないのはMySQLのバージョンのせいじゃなくて
DBエンジンがMyISAMだからだな
innoDB使えばできるけど、さくらの共有だと使えなかったかもしれん
0568デフォルトの名無しさん2016/01/25(月) 17:47:01.43ID:xvjEE6gT
5.5なら、innoDB使えるってある
0569デフォルトの名無しさん2016/01/26(火) 10:03:17.54ID:ME4Z0Y1L
>>567
MySQL5.6以上で且つinnoDBの場合しか使えないみたいです。
http://php.net/manual/ja/mysqli.begin-transaction.php
さくらはinnoDBなのですが、MySQLのバージョンのようです。
この時使うべきはここだけPDOとかにすればいいのでしょうか?
というかPDOとsqliは混在させても問題ないのだろうか。。
0570デフォルトの名無しさん2016/01/26(火) 10:36:28.11ID:F6G3cWEU
mysqliのbegin_transactionは新し目の関数なんじゃない?
http://php.net/manual/ja/mysqli.commit.php
これのサンプルが旧来のmysqli風のやり方だと思う。
autocommitをfalseにして、commitする方法。
0571デフォルトの名無しさん2016/01/26(火) 11:34:21.82ID:ME4Z0Y1L
>>570
ありがとうございます!
こっちで書き直します。
0572デフォルトの名無しさん2016/01/28(木) 10:37:36.66ID:bnZ8ZSTV
&を&に、#を#に置換したい
ただし直接文字参照およびいずれかの形式の数値文字参照を構成している場合は置換しないで見逃す

こういうときどうする?
さっきうっかり無限ループやらかしちゃって、とりあえず変換後の文字列を探して
見つけたら退避して、本番の置換をやって、んで退避してたら書き戻すってやり方で書いたけど無駄な処理書いてる感がすごい
0573デフォルトの名無しさん2016/01/28(木) 10:39:55.95ID:bnZ8ZSTV
おおっとエスケープされないでそのまま使われるのか

>>572の一行目は
&を&amp;に、#を&#35;に置換したい ってことで
0574デフォルトの名無しさん2016/01/28(木) 10:52:20.43ID:WHRX6JWq
>>572
正規表現置換
preg_replace('/&(?!(?:[a-zA-Z]+|#(?:x[0-9a-fA-F]+|[0-9]+));)/', '&amp;', $source);
preg_replace('/(?<!&)#|#(?!(?:x[0-9a-fA-F]+|[0-9]+);)/', '&#x23;', $source);
0575デフォルトの名無しさん2016/01/28(木) 11:04:35.24ID:O9yJj40f
#はそのままでいいだろう
あとはhtmlspecialcharsのdouble_encodeに任せる
0576デフォルトの名無しさん2016/01/28(木) 11:08:10.23ID:WHRX6JWq
double_encodeのが賢いな
0577デフォルトの名無しさん2016/01/28(木) 11:36:56.17ID:bnZ8ZSTV
やっぱ正規表現になるよなあ…対象ごとに正規表現作らなきゃになるが

>>575
すまんが&・#と実体参照はただの例ということで。他に良い例を思いつけなかった
0578デフォルトの名無しさん2016/01/28(木) 20:09:24.92ID:bEHcAZHo
重複置換のせいで、置換が上手くいかない場合には、strtr が有効らしい。

strtr - 文字の変換あるいは部分文字列の置換を行う
一度置換した文字列はもう置換の対象にならないことを確認しましょう。
http://php.net/manual/ja/function.strtr.php
0579デフォルトの名無しさん2016/01/28(木) 20:41:37.33ID:bEHcAZHo
>ただし直接文字参照およびいずれかの形式の数値文字参照を構成している場合は置換しないで見逃す

この要件満たしてなかったか。ゴメン。
0580デフォルトの名無しさん2016/01/28(木) 21:20:31.38ID:A2fwmBan
おにゃーたち、難しく考え過ぎじゃないにゃりん?

> &#などを参照に置き換えたい
> ただし直接文字参照およびいずれかの形式の数値文字参照を構成している場合は置換しないで見逃

せばいいにゃりん?


だったら、まず、最初の文字列をhtmlspecialchars_decode()でデコードしちゃうにゃりん。

そうすると、すでに参照してある文字はなくなるにゃりん。

そうしたら晴れて、全部参照に置き換えればいいにゃりん。

かんたんにゃりん。
0581デフォルトの名無しさん2016/01/28(木) 21:23:32.33ID:A2fwmBan
html_entity_decode()のがいいかもしれないにゃりん。

まぁ、とにかく最初にデコードしちゃうにゃりん。
0582デフォルトの名無しさん2016/01/28(木) 22:21:43.46ID:jwTH7mtp
求人見てたらPHP8を使っている会社があるらしい
0583デフォルトの名無しさん2016/01/28(木) 23:16:19.07ID:bEHcAZHo
>>581
それがベストアンサーだね
0584デフォルトの名無しさん2016/01/29(金) 05:50:44.40ID:zq/7Qxwy
PHP7いうほど早くないな
HHVMと僅差であるようなアピールしてたけど
HHVMのほうがだいぶ強い
PHP7のほうがスコアがあがる分野もあるんだろうけど
0585デフォルトの名無しさん2016/01/29(金) 06:09:40.56ID:jWh3F8zy
前もってdecodeするくらいなら>>575で十分(>>575の時点で要件と関係ないhtml特殊文字もエスケープされる副作用があるが)

前処理としてdecodeなんてしてしまうと、要件上は無視されそのままにしておかれるべき文字列が変換されてしまう
double_encode=falseにすれば&amp;#x23;なんて文字列が対象に存在していた場合に&#x23;に変わってしまうし、
double_encode=true のままならば同様に&#x23;があった場合に&amp;#x23;に変わってしまう

html_entity_decode()はさらにその上に、&でいえば&amp;・&#x26;・&#38;全てが&amp;に書き換えられる副作用が追加される
かんたんどころか問題をややこしくしてるだけでベストアンサーには程遠いぞ
0586デフォルトの名無しさん2016/01/29(金) 12:35:24.25ID:pZmKfdLa
やりたいことが明確じゃないから答えが出ない
0587デフォルトの名無しさん2016/01/29(金) 23:43:56.83ID:7uBSKy8U
&・&#x26;・&が混在するのがOKな仕様なんかあるわけないにゃりん
0588デフォルトの名無しさん2016/01/30(土) 03:01:17.64ID:QsqBSaNz
混在したらNGにする理由は?
0589デフォルトの名無しさん2016/01/30(土) 08:11:37.64ID:epuD8EY9
try catch したいのに よく分からん所でスローされたのが ららうぇるたんが勝手にキャッチしちゃって取れない
困ったニダどうしたら良いニダ
0590デフォルトの名無しさん2016/01/30(土) 09:17:24.99ID:zTm7zc0r
初心者はPHPみたいな言語化から始めろって言われているのに、javaから始めてしまったから動的型付け言語が使えない体になってしまった
0591デフォルトの名無しさん2016/01/30(土) 09:23:14.26ID:uSsEMeLq
逆に考えるんだ、全てを忘れてアセンブラを勉強し直せばいいさと考えるんだ
0592デフォルトの名無しさん2016/01/30(土) 13:13:16.11ID:Kv8tLPuU
>混在したらNGにする理由は?

仕事でやってる成果物で例えば、
ですます調と、である調が混在してる文書をみたことあるにゃりん?
ポップ調とゴシック調が混在してるプロダクトを見たことあるにゃりん?

常識で考えるにゃりん。
0593デフォルトの名無しさん2016/01/30(土) 13:15:36.78ID:Pd2sH7Ui
>>590
初心者にはVisual F# から仕込んで、関数型言語から入らせてみたらどうなるのかと思ってる
0594デフォルトの名無しさん2016/01/30(土) 15:03:03.55ID:YcCkZwc8
>>592
>ですます調と、である調が混在してる文書
普通にあるよね
本文はですます調のときでも箇条書きはである調だから混在はする
0595デフォルトの名無しさん2016/01/30(土) 19:00:26.72ID:Kv8tLPuU
>本文はですます調のときでも箇条書きはである調だから混在はする

つまりおにゃーは、
違うシークエンスである事を自覚しているにもかかわらず
同じ処理を適用してしまうクソグラマだって自分で認めたってことだにゃ?
0596デフォルトの名無しさん2016/01/30(土) 19:05:01.61ID:Kv8tLPuU
シークエンスの区別がつかなくて同じ処理を適用してもらうことは普通あるにゃりん。

でも、そこが本文であるか箇条書きであるか区別がついているにもかかわらず、
混在すると判断して同じ処理をする間抜けはそうそういないにゃりん。
0597デフォルトの名無しさん2016/01/30(土) 19:11:11.12ID:Kv8tLPuU
どういうことかっつーと、

> &を&に、#を#に置換したい
> ただし直接文字参照およびいずれかの形式の数値文字参照を構成している場合は置換しないで見逃す

こういう要求が出るのは、「そもそもの処理の不備による乱れ」を統一したいってことだと思うにゃりん。
それが正しいかどうかはわからないけど、常識的に考えればそういうことにゃりん。
統一すれば、出力時のエスケープ処理が楽になるからだにゃりん。

なのに、「本文はですます調のときでも箇条書きはである調だから混在はする 」とか、
意図して乱れている物を例に上げてくるアホさかげんがいかにもクソグラマだなーって思うにゃりん。

ID:YcCkZwc8 は間違いなくクソグラマだにゃりん。
0598デフォルトの名無しさん2016/01/30(土) 20:20:27.28ID:I1KbDvFD
仕様書の書き方教えて
みんな納品の時どのくらいまで仕様書書いてる?
あんま知らないけどDBとかユーザー用とかサーバー用とか?
0599デフォルトの名無しさん2016/01/30(土) 20:29:43.25ID:uSsEMeLq
こいつらナニイテンダって人のために書いておくと
例えばブログでブログ特有の構文を<>タグで書いてもらいたい、
ブロガーには実体参照で記号そのものも使わせたい、あと一部のタグは使用不能にしたい
とかそんな要求仕様だな
>>598
その職場の先例に合わせるこれしかない 下手に自分色出すと問題しか出ない
0600デフォルトの名無しさん2016/01/30(土) 21:38:42.71ID:YcCkZwc8
>>597
これ文字参照の話なの?
文字参照をどうしたいの?
0601デフォルトの名無しさん2016/01/31(日) 08:06:10.45ID:/mHEoggP
まともな例出せないくせして最初から必要な情報出さない
後出しで質問する質問者はスルーしときゃ荒れないだろ
自分の糞コードが恥ずかしいからって晒すのためらってるようじゃだめ
0602デフォルトの名無しさん2016/01/31(日) 09:47:49.04ID:KPaaybse
荒れてるというより糞な半コテが自己弁護に必死
0603デフォルトの名無しさん2016/01/31(日) 11:30:04.76ID:sgVbB9a1
カレントディレクトリの絶対パス名を取得したいです。
dirname(__FILE__); ってやってる人が多い気がしますが、
realpath('./'); でもいいのでしょうか?
0604デフォルトの名無しさん2016/01/31(日) 13:19:08.18ID:Xrot3YZy
>>597
よそのHTML拾ってきて表示したいが、エスケープ漏れがあるといやだし、かといって2重エスケープはしたくない
そんな話かと思ってた。
なので俺は混在NGにする必要はないと思ってたよ。
まぁ>>586で書いたのがすべてなんだけどね。

>>603
前者はカレントディレクトリの絶対パス名を取得したいためのコードじゃないよ

php foo/bar/それ.php
0605デフォルトの名無しさん2016/01/31(日) 16:28:37.23ID:ypr+2CdM
>荒れてるというより糞な半コテが自己弁護に必死

>>585 あたりが、自分のロボさ加減を取り繕うと必至にゃりんw ロボにゃりんw
0606デフォルトの名無しさん2016/01/31(日) 17:02:37.49ID:ypr+2CdM
>俺は混在NGにする必要はないと思ってたよ。

っつーか、混在してると後工程がめんどさいにゃりん、何事においても。
0607デフォルトの名無しさん2016/01/31(日) 17:34:51.03ID:1eonSL82
既に終わってる話題でよくもまぁそこまで熱くなれるなお前ら
0608デフォルトの名無しさん2016/01/31(日) 17:52:48.09ID:Xrot3YZy
>>606
その方針なら、文字参照の形式だけ統一して他はほったらかしというのはそれこそNGじゃないの?
0609デフォルトの名無しさん2016/01/31(日) 18:54:52.32ID:ypr+2CdM
>その方針なら、文字参照の形式だけ統一して他はほったらかしというのはそれこそNGじゃないの?

なにを言ってるかわからにゃいにゃりん。

他ってなんのことにゃりん? おにゃーの頭の中の事はわからないにゃりん。
0610デフォルトの名無しさん2016/01/31(日) 19:50:45.01ID:Xrot3YZy
意味的には同等でも異なる部分があると後工程がめんどくさくなるってことでしょ。
それならHTMLにおける意味的には同等だが記述に複数の方法がある部分は全部統一しておかないと
まずいんじゃないかってことだけど。
0611デフォルトの名無しさん2016/02/01(月) 10:47:05.86ID:VYL+zi+x
>>607
このアホがほかのスレに出張らないよう引きつけているんだよ
0612デフォルトの名無しさん2016/02/01(月) 17:25:21.05ID:JKmN8dcj
catch(Exception $e)
catch(\)
0613デフォルトの名無しさん2016/02/01(月) 17:26:16.84ID:JKmN8dcj
>>612
SHIFT押したらENTERも押しちゃった

catch(Exception $e) ←とれない

catch(\Exception $e) ←とれる
(´・ω・`)なぜ?
0614デフォルトの名無しさん2016/02/02(火) 11:48:36.37ID:BIakHIlk
ネームスペースの中なんじゃないかな
Exceptionはグローバルだからね
0615デフォルトの名無しさん2016/02/02(火) 20:23:38.27ID: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)
0616デフォルトの名無しさん2016/02/02(火) 20:27:40.75ID:eonpvW6e
    $var =
'    <div>
        '.$this->a.'
    </div>';

って感じで書くことはある
0617デフォルトの名無しさん2016/02/02(火) 20:30:18.80ID:uPAFV3qO
class A {
 private $a = 'a';
 public function a() {
  echo "\t<div>{$this->a}</div>";
 }
}

でがまんしろ。
0618デフォルトの名無しさん2016/02/02(火) 20:37:30.90ID:ieeiFhus
>>616-617
ありがとうございます。
なんか設定したり方法はないかと思いましたが、
やはり無理そうですね。
0619デフォルトの名無しさん2016/02/02(火) 20:53:19.67ID:eonpvW6e
まあ趣味の領域に近いもんがあるけど ""より''を、<<<EOTより<<<'EOT'をおすすめ
そしてドットを書き忘れてsyntax error
0620デフォルトの名無しさん2016/02/02(火) 21:24:31.68ID:uPAFV3qO
そういう独りよがりはチラシの裏にでも書いてろ
0621デフォルトの名無しさん2016/02/03(水) 00:15:57.70ID:5HFqu0rj
>>618
ヒアドキュメントを使いたいなら受け入れるしかない
0622デフォルトの名無しさん2016/02/03(水) 03:22:21.38ID:DjhvDVsj
mvcのviewのとりだしどうやってるんだ。DBから配列で取り出してタグ含むstrにするかそのままviewにもってきてforeachでぶんまわすかどっちがいいんだ。
0623デフォルトの名無しさん2016/02/03(水) 06:11:48.56ID:P9o3G82X
好きにしろ
個人的にはobjectでとってきたのをassignしてイテレータでぶん回す
0624デフォルトの名無しさん2016/02/03(水) 07:50:05.06ID:H1cabHU7
なぜテンプレートライブラリ使わないん?
0625デフォルトの名無しさん2016/02/03(水) 12:53:04.68ID:DjhvDVsj
それは勉強のためだ。
0626デフォルトの名無しさん2016/02/03(水) 14:23:22.66ID:wFC58MkD
葱これやろーぜ
ttp://www.dmm.co.jp/netgame/social/-/gadgets/=/app_id=757513/
0627デフォルトの名無しさん2016/02/03(水) 14:23:48.43ID:wFC58MkD
ひっどい誤爆した(´・ω・`) 本当に申し訳ない
0628デフォルトの名無しさん2016/02/03(水) 14:59:40.80ID:DjhvDVsj
>>627
それが目的のくせにー
0629デフォルトの名無しさん2016/02/03(水) 15:13:02.86ID:KkuXsvhB
葱と聞くとモヒ毛を連想する
0630デフォルトの名無しさん2016/02/03(水) 15:29:08.68ID:loonPEtr
そもそも読めない
0631デフォルトの名無しさん2016/02/03(水) 15:31:03.49ID:0IWSoG05
初音ミクが持ってる野菜だな
0632デフォルトの名無しさん2016/02/03(水) 20:54:55.95ID:DjhvDVsj
すいかだな
0633デフォルトの名無しさん2016/02/04(木) 16:44:00.20ID:sJspRTsI
$log = 'test.txt';
$fs = filesize($log);
while (1) {
 if (filesize($log) !== $fs) {
  break;
 }
 sleep(1);
}

こんなコードを書いて、
サイズを変えたファイルを上書きしたのですが、
breakに達しません。
何がいけないのでしょうか?
0634デフォルトの名無しさん2016/02/04(木) 16:51:43.09ID:6nmxHVWh
if文がおかしいと思ったら、その条件の値を表示してみればいいと思うよ
ところでサイズを変えて上書きの部分はどこにあるの
0635デフォルトの名無しさん2016/02/04(木) 16:57:53.25ID:HV3ClFNE
わかりません
06366332016/02/04(木) 16:58:43.50ID:QkZKzuQ3
>if文がおかしいと思ったら、その条件の値を表示してみればいいと思うよ
breakが出来なくてどうやって確かめたらよいかいまいちわからないです。
デバッグのやり方がよくわからないので・・・すみません。

>ところでサイズを変えて上書きの部分はどこにあるの
これはコードでやってるわけではありません。
ローカルでコマンドラインとサーバにFTPでアップロードの2つ試したのですが、
前者はローカルでtest.txtを開いて編集して保存しなおしただけで、
後者はFTPに変更したtest.txtを上書きアップロードしてファイルの中身を変更しました。
06376332016/02/04(木) 17:07:30.04ID:QkZKzuQ3
デバッグ方法ちょっと調べたらわかったので、コード変えてみました。

$log = 'test.txt';
$fs = filesize($log);
while (1) {
 $fs2 = filesize($log);
 if ($fs !== $fs2) {
  break;
 }
 echo $fs2."\n";
 flush();
 sleep(1);
}

ファイル変更してもサイズは変わっていないようです。
0638デフォルトの名無しさん2016/02/04(木) 17:13:58.57ID:geGkSm23
http://php.net/manual/ja/function.filesize.php

> 注意: この関数の結果は キャッシュされます。詳細は、clearstatcache() を参照してください。
0639デフォルトの名無しさん2016/02/04(木) 17:15:01.40ID:6nmxHVWh
>>637
ググったけど、これでないの
http://php.net/manual/ja/function.clearstatcache.php

clearstatcache(TRUE, $log);
はさむといいみたい
0640デフォルトの名無しさん2016/02/04(木) 17:15:52.40ID:6nmxHVWh
おっとリロードしてなかった
06416332016/02/04(木) 17:34:10.55ID:QkZKzuQ3
>>638-639
ありがとうございます。
whileの直後に呼び出してみたらうまく出来ました。
助かりました。
0642デフォルトの名無しさん2016/02/05(金) 07:30:52.91ID:jh8JKIE0
ファイル存否等をキャッシュされないようにすることはできる?
直前にclearstatecache()とか別のファイルをfilesize()とかラッパーを作るとかはナシで
0643デフォルトの名無しさん2016/02/05(金) 18:39:52.76ID:koewOf1m
これからPHPの勉強をしたいのですが、勉強に使うPCもよくあるLAMP環境に
した方がいいのでしょうか?もしそうであれば、お薦めのディストリビューションを
伺えたら幸いです。

どうぞよろしくお願い致します。
0644デフォルトの名無しさん2016/02/05(金) 20:29:26.45ID:GqRwyzFC
>LAMP環境にした方がいいのでしょうか?
しなくていいです
形だけLAMPにしたところで細かな設定は本番環境と違うだろうし
OSで差が出るコードはあるけど少しの修正で済むことがほとんど

>お薦めのディストリビューション
情報多いやつUbuntuとかCentOSとか
もし入れるならVM上に
0645デフォルトの名無しさん2016/02/05(金) 20:33:24.51ID:koewOf1m
>>644
詳しくありがとうございます。大変助かりました。
0646デフォルトの名無しさん2016/02/05(金) 23:16:59.57ID:mCjJfYzi
PHP環境?
PHP Tools for Visual Studioがさいつよ
0647デフォルトの名無しさん2016/02/05(金) 23:27:12.32ID:koewOf1m
>>646
初めて聞いたので、今から調べてみます。ありがとうございました。
0648デフォルトの名無しさん2016/02/06(土) 08:06:37.83ID:FHhTINlV
>勉強に使うPCもよくあるLAMP環境にした方がいいのでしょうか?

今はバーチャルボックスとかで仮想環境作れるから
パソコンは使いやすい高性能な好きなものを使えばいいね。
06496432016/02/06(土) 09:04:18.04ID:C63QrKD/
>>648
スペックに余裕はあるので、仮想で試してみます。ありがとうございました。
0650デフォルトの名無しさん2016/02/06(土) 13:58:24.12ID:oh9ShPhj
>>646
それ実行環境じゃなくて開発環境だろ
0651デフォルトの名無しさん2016/02/06(土) 15:00:23.88ID:jvs4URC7
実行もIISで出来るしな
もうgdbに耐えられる脳力がないので(震え声)
0652デフォルトの名無しさん2016/02/06(土) 15:54:59.13ID:e6NyRoxJ
phpの勉強開発でgdbなにに使うん?
0653デフォルトの名無しさん2016/02/06(土) 22:56:10.93ID:sofbIKE8
VSのいいところはデバッガが優秀なことだ。
VSが否定されそうだから他のデバッガ名を出そう!っていう本気の震え声だろ。
0654デフォルトの名無しさん2016/02/06(土) 23:25:43.76ID:oXBAL5QD
開発環境は本番環境と同等もしくは近いものを用意するのが普通だろう。
本番環境が決まりさえすれば開発環境もおのずと決まる。
0655デフォルトの名無しさん2016/02/07(日) 00:11:45.34ID:Ic0iJxZy
NetBeansも頑張って設定すればデバッガ使えるかと
0656デフォルトの名無しさん2016/02/07(日) 05:48:24.35ID:iwmcN4AM
開発デバッグなんてvar_dumpとob_start関係とcuiさえ使えりゃいいよ
0657デフォルトの名無しさん2016/02/07(日) 18:49:32.08ID: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
0658デフォルトの名無しさん2016/02/07(日) 18:51:41.21ID: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...
}
0659デフォルトの名無しさん2016/02/07(日) 18:51:52.61ID: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);

})
});
0660デフォルトの名無しさん2016/02/07(日) 20:04:38.30ID: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);
0661デフォルトの名無しさん2016/02/07(日) 20:07:58.62ID:8oSH0oIv
javascripyなだけにtypoだろうけど
ここも修正しといたほうが
>header(' Content-type;application:json; charset=utf-8 ' );
Content-type:application/json; charset=utf-8
0662デフォルトの名無しさん2016/02/08(月) 13:27:10.97ID:aqsYdaVU
preg_match_allの正規表現について質問です。
全角丸括弧を含む部分が一致しないのですがなぜでしょうか?

$pattern = '/(.+\n)/u'; //全角括弧がないと取り出せる(サブパターンの半角括弧のみ)
//$pattern = '/((.+)\n)/u'; //全角丸括弧に限定すると取り出せない(外側は半角、内側が全角)
preg_match_all($pattern, $row['text'], $matches);
06636622016/02/08(月) 13:29:08.45ID:aqsYdaVU
なお、実際にはパターン内の改行¥nの後にもサブパターンがあります。
0664デフォルトの名無しさん2016/02/08(月) 15:20:03.57ID:uOXcW2mV
全角括弧以外のマルチバイト文字には一致するの?
06656622016/02/08(月) 15:38:02.35ID:aqsYdaVU
>>664
はい。一致します。
簡易例はこんな感じなんですが。

$pattern = '/((.+\n)?(.*[0-9]{1,3}円/u'; //開く括弧をつけただけだと上手くいく
$pattern = '/((.+)\n)?(.*[0-9]{1,3}円)/u'; //閉じ括弧をつけるとなぜか上手くいかない

レコード
---------------------
(青果)
きゅうり100円
以下きゅうりの説明・・・

とまと200円
以下とまとの説明・・・
---------------------
---内のDBレコードから、説明を抜いた下記を抜き出したいのです。
(青果)
きゅうり100円

とまと200円
0666デフォルトの名無しさん2016/02/08(月) 15:39:47.76ID:E+wItWi7
''の中に \n を入れるんじゃない
うまくいく場合もあるが、検索対象文字列がCR+LFな文字列だとマッチしない
(正直いうとよくわからんけど、ただしくはマッチしなかったりする)
0667デフォルトの名無しさん2016/02/08(月) 15:41:17.18ID:E+wItWi7
閉じカッコをつけると、というのはおそらく、
正規表現パターン上カッコの「直後」に\nがきているからだとおもう
0668デフォルトの名無しさん2016/02/08(月) 15:42:56.70ID:/+8WJEI/
DBの設計が悪いとしか・・・
商品名 きゅうり
分類名 青果
値段 100円
説明 以下きゅうりの説明・・・
にすればどうってことないのに
それ正規表現書いてみてパッと見ちゃんと全てのパターンに合致してるようで
実はちゃんとできてなくて想定外の動作するパターンだよ
0669デフォルトの名無しさん2016/02/08(月) 15:43:51.98ID:HeYvCqn/
質問

http://i.imgur.com/VdQIcUV.png
↑のように、htmlのリストがあって

横のボタンを押すとこんな風に下に要素が追加されていき、ストックとして保存される。(右の削除ボタンを押すと要素がリストから削除される)
http://i.imgur.com/ZlEsHiH.png

っていうのがやりたいんだけど、
現状はテキストエリアに要素を追加していく方法しか知らない(jquery)
http://i.imgur.com/63x6mxv.png

phpを使ってファイル自体にhtml要素を保存するやり方がわからないので、上みたいにテキストエリアに溜め込んだ要素をいちいちコピぺしてメモに貼ってます…
これがブログサービスみたいにファイル自体に保存できるようになるとすごく楽なのですが、いいやり方があれば教えて頂きたいです。。
0670デフォルトの名無しさん2016/02/08(月) 15:49:59.83ID:ic8amIrj
お客様の中にエスパーはいらっしゃいませんかー?
0671デフォルトの名無しさん2016/02/08(月) 15:52:23.03ID:Gqa2+WQs
>>669
PHP関係ないね。
javascript ファイル 保存
でググれ
0672デフォルトの名無しさん2016/02/08(月) 15:54:19.92ID:HeYvCqn/
>>671
了解です…
06736622016/02/08(月) 16:17:20.83ID:aqsYdaVU
¥nは¥s(空白文字)に変更しました。
設計はたしかに悪いです。後悔先に立たず。

全角の開く括弧だけを入れた場合には上手くいく感じなのでこれで妥協します。
ありがとうございました。
0674デフォルトの名無しさん2016/02/08(月) 16:55:38.17ID: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つ目のほうはたいした違いはないが
06756622016/02/08(月) 17:23:26.26ID:aqsYdaVU
>>674
ありがとうございます!
おかげさまで上手くいきました!!
改行文字が原因だったんだと理解できました。

'/((.+)(?:\r|\n|\r\n))?(.*[0-9]{1,3}円)/u';
0676デフォルトの名無しさん2016/02/11(木) 22:14:49.07ID: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) のように要素を丸ごとを返すような関数はありますでしょうか?

それともそのような標準関数は存在せず、必要であればユーザーが定義する必要がありますか?
よろしくお願いします。
0677デフォルトの名無しさん2016/02/12(金) 01:00:14.83ID:IeZ3t65+
関数中毒かよ。
0678デフォルトの名無しさん2016/02/12(金) 02:23:42.48ID:gunxxlb9
array_column()
0679デフォルトの名無しさん2016/02/12(金) 07:12:49.60ID:rtiXXuek
ビルトインの関数にそんなかんじのは無かったと思うが、
そもそも汎用の関数化させる必要あるのか?
foreachで配列走査する、そういうメソッドをclassに作る、ならわかる
0680デフォルトの名無しさん2016/02/12(金) 19:36:52.31ID:f1bzVBUX
データをDBに入れちゃえば見事にそうできるけど、たぶんそういうのを求めてるんじゃないんだよね?
0681デフォルトの名無しさん2016/02/12(金) 23:38:52.33ID: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はその名の通り文字列だと思いますが、バイナリ文字列以外に入れることはできるのでしょうか?
0682デフォルトの名無しさん2016/02/12(金) 23:50:59.15ID:rtiXXuek
バイナリ文字列ってなんじゃ
phpの文字列型は元からバイト列=バイナリで、プログラム側が云々かんぬんするもんだと思ってたが

たとえば
$raw_data = file_get_contents('test.txt');
$compressed_data = gzcompress($raw_data);
ここで $raw_data, $compressed_data は両方ともstring型。$compressed_data[0] = 'A'; とかもできる
06836812016/02/13(土) 00:00:10.80ID:Q2uxCreo
>>682
自分はC言語から来た人間なので、バイナリ文字列って言葉には私も驚きましたが、
http://php.net/manual/ja/function.pack.php
ココで使われています。

string型に可読性の無いバイナリが入り込んでも問題無いとは思いますが、0x00が入ったらその文字列は普通に途切れますよね。
LZ4は途中に0x00が絶対に入らないファイル形式なのかと勘繰ったりしています。

ソースコードありがとうございます。
もう少し調べてみます。
06846812016/02/13(土) 00:14:08.43ID:Q2uxCreo
>>682
解決しました。
$raw_data = file_get_contents("aaa.bmp");
$pchBufferComp = horde_lz4_compress($raw_data);

こんな感じでバイナリも圧縮できました。
stringがバイナリも受け付けるなんて。。。
少し勉強になりました。
0685デフォルトの名無しさん2016/02/13(土) 00:53:35.12ID:9xv2Offy
>>684
http://php.net/manual/ja/language.types.string.php
こっちを読むべきだったかも。phpの文字列型はなんぞやとかnullバイトの扱いがわかる
cと似てるようで似てないようでやっぱりどこか似てる
0686デフォルトの名無しさん2016/02/13(土) 09:24:32.22ID:FQttHJBI
文字列のエンコードどうしようかとか、いろいろ言ってたけど、
結局 文字列は バイナリ
そのせいで 文字列処理がいまいち
0687デフォルトの名無しさん2016/02/13(土) 12:09:57.26ID:v4DWxzAN
isset( $data['name'], $data['address'], $data['phone'], $data['url'], ... )
みたいなのを短く書く方法はありませんか?
hasKey($data, ['name', 'address', 'phone', 'url', .... ) みたいに
0688デフォルトの名無しさん2016/02/13(土) 13:40:27.43ID:qkwus8u2
2ch型掲示板を作りたいのですが、DBは各スレッドごとにテーブルを作るべきでしょうか
それとも一つのテーブルに様々な書き込みを突っ込んでスレッドID検索で書き込みを表示するべきでしょうか
0689デフォルトの名無しさん2016/02/13(土) 14:32:38.33ID:V54AKmZ7
>>688
DBにしない方が良いと思う。
2chのように全てテキストで処理した方がいい。
0690デフォルトの名無しさん2016/02/13(土) 15:02:16.66ID:qkwus8u2
>>689
DBとテキストのメリット、デメリットを教えてください
0691デフォルトの名無しさん2016/02/13(土) 15:15:32.78ID:V54AKmZ7
>>690
DBのメリットはDBが動いていること
データベースの機能が使える

DBのデメリットはDBが動いていること
結構重いプロセスが動いている
0692デフォルトの名無しさん2016/02/13(土) 15:16:13.71ID:j1yDw7K+
排他処理、追記、編集、削除なんかをテキストでやるのは大変じゃないかな?
その程度、道って事はないと言うパワーある人なら良いんだけど
0693デフォルトの名無しさん2016/02/13(土) 15:17:53.43ID:9xv2Offy
phpに限った話じゃないな

2chのインターフェースの基礎部分そのままと仮定して
普通のHTMLだけでなく.dat直通信がある点やスレッド落ちの処理を考慮すると
個別テキストファイルで処理したほうがDBを用いるタイプよりも書きやすくかつ低コスト

何がやりたいか、どんな機能をつけたいか、どれくらいのアクセス数を見込むかを
イメージしきれないとどれが一番効率良いかはわからない 2ch型掲示板、とだけならなおさらだ
0694デフォルトの名無しさん2016/02/13(土) 15:23:07.90ID:qkwus8u2
2chをそのまま作るならテキストにしますが、それ以外の機能も付け加えたいんですよね…
0695デフォルトの名無しさん2016/02/13(土) 15:38:00.81ID:9xv2Offy
じゃあどんな機能を付け加えたいか全て書かないことには>>694以外の誰も正しい答えは出せない
問題になりうるのはトランザクションとファイルロック、DB/テーブルの上限値とインデックス、それと検索関係

スレタイ検索やスレッド単位のID検索・IDごとの発言数カウント程度ならばテキスト処理だけでも余裕
スレッド/板をまたいでのレス内容での検索なんかだと、もちろんテキストでは辛いが、
DBを使えば辛くないかというと、ただ考えなしにmysqlだのsqliteだので作ってもやはり辛い、データ量・負荷の両面で
この辺りは突き詰めると検索用のDBやキャッシュの問題で、メインのデータ格納形式がテキストかDBかの問題ではなくなってくる

レスの編集削除についてはどちらかというとデータ格納形式の問題ではなくどう仕様を作りこむかの問題だな
テキスト主軸でまんまそういうの書いたことあるけど別に処理自体は辛くはなかった
0696デフォルトの名無しさん2016/02/13(土) 15:42:10.67ID:qkwus8u2
こんな感じです
http://tamae.2ch.net//test/read.cgi/php/1455290251/
0697デフォルトの名無しさん2016/02/13(土) 15:43:33.60ID:xYQyE1c1
>>688
前者は絶対ダメ。
0698デフォルトの名無しさん2016/02/13(土) 16:04:57.69ID:qkwus8u2
>>697
テーブル制作って重いんですか?
0699デフォルトの名無しさん2016/02/13(土) 16:19:02.87ID: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を別途設ける」
ってあたりで妥協することになるんじゃないかと
0700デフォルトの名無しさん2016/02/13(土) 16:27:44.07ID:qkwus8u2
ありがとうございます
消化したスレッドは静的HTMLを出力し、テーブルを削除することにします
0701デフォルトの名無しさん2016/02/14(日) 00:16:48.59ID:E44LoVTQ
>>692
排他はさすがに大したこと無いし
基本は追記しかないし
編集削除はぶっちゃけどうでもいいと思う
0702デフォルトの名無しさん2016/02/14(日) 05:37:12.90ID:FOFwYENH
さすがに何もせずにファイル書き出しだとファイル壊れるんじゃないの
0703デフォルトの名無しさん2016/02/14(日) 06:31:18.46ID:z+xAfV5k
メモリ上で行けるんちゃうの
スレッド512KB制限で、2000スレで1GB
16GBのうち15GBくらい使って30000スレ保持出来る
0704デフォルトの名無しさん2016/02/14(日) 07:16:45.38ID:+FZ9IXVT
今思えばわりとコードが滅茶苦茶だった2ch型掲示板をはるか昔に作って
いくつか実際に使ってるサイトも見たけどもれなくどのサイトも
スレッド30個もたってなかったし書き込み1スレあたり30あればいいほうだったよ
何が言いたいかというと重くなるなんて心配は不要である
0705デフォルトの名無しさん2016/02/14(日) 10:22:47.53ID:kExlflOU
最初は1テーブルで運用して、もしアクセスが増えれば
その段階で、機能やサーバーをスケールアップすればいいんだよ。
小さく作って大きく育てる。
0706デフォルトの名無しさん2016/02/14(日) 10:24:39.69ID:kExlflOU
>静的HTMLを出力し、テーブルを削除

これは良くない感じがする。
せめて、CSVとかのフォーマットされたファイルに出力した方がいい。
0707デフォルトの名無しさん2016/02/14(日) 11:12:29.33ID:8fpyVFIW
>>706
そうすることにします
0708デフォルトの名無しさん2016/02/14(日) 11:12:35.97ID:t425P/AR
まあ同じカラムのテーブルを都度作るというのはDB始めて1ヶ月以内のやつが考えそうなことだから
その時点では設計にかかわらないほうがいい
0709デフォルトの名無しさん2016/02/14(日) 11:25:56.72ID:8fpyVFIW
>>708
まだDB扱ったことありません・・・
0710デフォルトの名無しさん2016/02/14(日) 12:18:29.51ID: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>";
}
}
}
0711デフォルトの名無しさん2016/02/14(日) 12:24:47.43ID:z+xAfV5k
>>710
比較演算子からやり直しだ!
0712デフォルトの名無しさん2016/02/14(日) 12:28:58.96ID:CBnheEpE
解決しました。
初歩的でした
0713デフォルトの名無しさん2016/02/15(月) 17:20:03.08ID:3kcdEIzb
>>699

> 1つのDB中に超大量のtableを突っ込むとだいたい加速度的に重くなる
スレ違いすまんが、これってどのDBMSの話?
0714デフォルトの名無しさん2016/02/15(月) 18:59:56.78ID:cRm62TMc
>>713
MySQLなら、MyISAMでそういう現象あったね。InnoDBでは起きないけど。
0715デフォルトの名無しさん2016/02/15(月) 19:17:59.93ID:z4NOVyYm
つーかそのレベルであればdbは不要
ファイルを使え
0716デフォルトの名無しさん2016/02/15(月) 21:15:10.35ID:zWKAZpMz
逆にこれしきでファイル使うのが不思議
そもそもファイル操作自体がめんどくさい上に
排他とか、ちゃんとやるとめんどくさい たいしたことないって言ってる人らは
ちゃんと作ったのがあるんだろうけど、初心者にはDBのほうがお手軽だと思うがなぁ
0717デフォルトの名無しさん2016/02/15(月) 21:24:55.66ID:8xHpKf96
sqlite3がとくにラクだな、PDOであっさり書ける
ファイル操作もまあ排他したけりゃfopenしてflock、必要なければfile_*_contentsでラク
本当に単純な排他でよければfile_put_contentsにLOCK_EX渡せば良いし
0718デフォルトの名無しさん2016/02/15(月) 21:32:07.17ID:zWKAZpMz
5.3.6からな・・・
0719デフォルトの名無しさん2016/02/15(月) 21:33:23.56ID:zWKAZpMz
file_put_contentsのflockのfixは5.2.6から に訂正 まあ、もうこんなふるいの使ってるのはいないとは思うけど
0720デフォルトの名無しさん2016/02/15(月) 21:55:44.67ID:8xHpKf96
レンサバで4系列だったり5系列だけど5.2.6未満だったりで新しいのに差し替えもできないって状況はあるかもな
0721デフォルトの名無しさん2016/02/16(火) 10:41:43.25ID:S8/BuvLn
EoL迎えたバージョン提供してる無責任なレンサバ業者があるのか・・・
0722デフォルトの名無しさん2016/02/16(火) 13:38:15.94ID:gzwL5Li0
スクリプト実行中に出力される標準エラー出力をファイルに吐きたい。
吐き先のファイルはスクリプト実行後にスクリプト自ら決定したいので、起動時にコマンドライン等で標準エラー出力を切り替えておくという方法はだめ。
といった場合、何か方法はある?
標準出力なら ob_start みたいのでなんとかなるかなと思うんだけど。
0723デフォルトの名無しさん2016/02/16(火) 15:44:15.83ID:X2t8ohVl
>>722
エラーの出力先そのものをファイルにすればいいんじゃない?
ini_setでerror_logをさdふぁs
0724デフォルトの名無しさん2016/02/16(火) 15:54:31.47ID:5ZzT6giH
php.ini や .htaccess を使った設定がダメなら ini_set で error_log だろうね
ini_set だとそのスクリプトに書き加える必要があるけど
0725デフォルトの名無しさん2016/02/17(水) 04:53:50.91ID:VmJWuM5t
業務用ラベルプリンタにLPDのプリントサーバが付いてまして
Windowsだと.NetのLPDLib使って
//印字コマンド作成してテキストファイルに書き込む
prn01 = new LPDPrinter("192.168.1.221", "P1", "user1")
prn01.LPR("printdata.txt")
こんな感じなんですが、PHPではどうしたもんですかね
exec()で印刷コマンド実行になっちゃう?
0726デフォルトの名無しさん2016/02/17(水) 05:38:38.97ID:VmJWuM5t
なおサーバ機もラベルプリンタも社内LAN接続です
^B3N,N,100,Y,N^FD12345678^FS
のコマンドでバーコード出す、みたいな奴ですわ
0727デフォルトの名無しさん2016/02/17(水) 13:12:18.71ID:hjf3/zF1
知らんけど要は相手のIP/Portにデータ投げつけてるってことなんでしょ
仕様に沿ってfsockopenして投げつけてー、で良いんじゃね
sourceforge漁ればライブラリあるだろうけど
0728デフォルトの名無しさん2016/02/17(水) 13:45:12.75ID:3gKfQRkK
>>725
ttp://stackoverflow.com/questions/11168116/php-server-side-printing-ubuntu-server
exec() 案、パイプでlpr案、PHP::Print::IPP案
があるみたいね
07297222016/02/17(水) 15:25:11.11ID:llUUpL18
>>723,724
ありがとう!
それで解決しました。
0730デフォルトの名無しさん2016/02/18(木) 03:27:19.49ID:zoJ8Qqc9
3月から、ちょっと仕事でPHPを使わなきゃならなくなりました。
通勤時間や休憩時間に読みたいので、オススメの入門書があれば教えて下さい。
オライリーの入門書あたり買っておけばいいですかね?

PHPはほぼ未経験ですが、他言語(C系とPerl)や最低限のサーバ&DB知識はあります。
0731デフォルトの名無しさん2016/02/18(木) 03:48:11.25ID:S0cvQm5g
>>730
perlとかなり似てるからperl使えるならそんな身構えなくて良い
言語仕様よりもフレームワークに慣れるべき
0732デフォルトの名無しさん2016/02/18(木) 04:10:58.58ID:9FL8VTOJ
>>730
Perl経験あるならこれとか
PHP 逆引きレシピ 第二版
0733デフォルトの名無しさん2016/02/18(木) 10:43:23.35ID:Yy6qek0a
オライリーは癖があるからあまり・・・
隙間時間の活用なら分厚いけど節が細かい「PHP 逆引きレシピ 第二版」がいい
0734デフォルトの名無しさん2016/02/18(木) 10:48:35.02ID:doOjtyi+
宣伝が熱い
0735デフォルトの名無しさん2016/02/18(木) 10:51:16.87ID:fxQrdqXF
宣伝するつもりなら自分の書いた本を勧めるだろうw
0736デフォルトの名無しさん2016/02/18(木) 10:53:39.43ID:Yy6qek0a
>>734
じゃあ>>730の条件にあう本でこれよりいいのあげてよ
0737デフォルトの名無しさん(地震なし)2016/02/18(木) 12:20:20.41ID:wdtw0EIv
>phpでいうdie()みたいなものです\n\ndieはperlからパクったんだろ
0738デフォルトの名無しさん2016/02/18(木) 15:35:34.00ID:rI+7aFBn
言語でパクりパクられ論を展開する人初めて見た。すごいな
0739デフォルトの名無しさん2016/02/18(木) 16:01:34.34ID:VuYwSg7g
「あれどうやるんだっけ」でとりあえず読むのが、
PHP 逆引きレシピ 第二版
0740デフォルトの名無しさん2016/02/18(木) 16:34:37.04ID:YNvLoLbO
セッションについて質問です
同一ブラウザでセッションを複数使いたいのですが、例えば以下のような仕様にすると

session_start();
$_SESSION['user'] = $user->login($id, $password);
(loginメソッドは$idと$passwordでuserテーブルを検索して一致する結果を返すものとして)

タブ1でアカウントAでログイン
タブ2でアカウントBでログイン
そうするとどちらのタブもアカウントBの情報で上書きされてしまいます

同一ブラウザでアカウントAとアカウントBの情報を保たせるにはどうしたらよいでしょうか
0741デフォルトの名無しさん2016/02/18(木) 17:01:32.17ID:2sHGThbe
>>740
テスト目的なら、複数のブラウザ使うのをお勧め。
テスト目的じゃなく顧客要求なら、突っぱねた方が身のため。
0742デフォルトの名無しさん2016/02/18(木) 19:57:23.59ID:qSH6iKTe
>>740
session管理にクッキーを使わなければできる
0743デフォルトの名無しさん2016/02/18(木) 20:46:34.74ID:bi6jElYj
連想配列のソートで、第一に値でソートし、その値の順を保持したまま、
第二にキーでもソートできる関数、又は良い方法ってありますか?

SQLで言えば、ORDER BY value DESC, id ASC みたいな感じにしたいです。
arsort()をした後にksort()をすると値の順が保持されなくて困ってます。
値の比較結果が同じ場合には、並び順は未定義ではなく、キーでソートした状態にしたいのです。

//before
$arr = array(
0744デフォルトの名無しさん2016/02/18(木) 20:47:55.11ID: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"
);
0745デフォルトの名無しさん2016/02/18(木) 21:34:45.45ID:doOjtyi+
フレームワークを使うならそっちで用意されてる場合がある
そうでないなら泥臭いがこういう手が使える
uksort(
  $arr,
  function( $a, $b ) use ($arr){
    if( $a === $b ){
      return strcmp( $a, $b );
    }else {
      return strcmp( $arr[$b], $arr[$a] );
    }
  }
);
07467432016/02/18(木) 22:35:20.36ID:1SXb8ZrS
>>745
ありがとうございます。
コードまで書いてくださり感謝です。
マニュアルを調べてもイマイチわからなかったので本当助かります。
0747デフォルトの名無しさん2016/02/18(木) 23:37:46.41ID:h82pQbSa
>>741-742
ありがとうございます、テストのためですが10個ほどの同時アクセスを試みたかったためです。
やはり難しそうなので人使ったほうが早そうですね…
0748デフォルトの名無しさん2016/02/18(木) 23:43:42.39ID:VuYwSg7g
>>747
そこはPhantomJSとか使おう
0749デフォルトの名無しさん2016/02/19(金) 02:53:01.36ID:QMo1vmnJ
>>740
たとえばIEならAlt F I で別のセッションのウィンドウを開く
07507302016/02/19(金) 03:32:12.19ID:E/z1CaIk
PHP書籍の質問をした>730です。
レス遅くなってしまい申し訳ありません。

「逆引きレシピ」良さそうですね。
仕事帰りに本屋へ寄ってみたのですが見つからず、Amazonでポチりました。
とりあえず売ってる中で悪く無さそうだった技評の「パーフェクトPHP」を買ったので
これでも読みながら、Amazonさんの到着を待とうと思います。
0751デフォルトの名無しさん2016/02/19(金) 08:50:45.64ID:07qEWoeg
arrayを初期化するとき
$arr=array();と書くのと$arr=[];と書くことで違いはありますか?
0752デフォルトの名無しさん2016/02/19(金) 09:38:37.96ID:EEmXoaBp
>>751
100万回くらい回して時間を測ってみたら。
同じように見えて性能が違うのが結構あるから、気になったらやってみるに限る。
例えば print より echo の方が速いんだぜ
0753デフォルトの名無しさん2016/02/19(金) 13:37:33.37ID:VU2H97Ti
>>747
Webアプリ用の負荷テストツール使ったら?
最近やってないけど、以前はJMeter使ってた。
0754デフォルトの名無しさん2016/02/19(金) 20:08:41.47ID:nWsxlnl1
>>747
セッション管理にクッキーを使わなければいいだけだから簡単だよ
設定ファイルを1行書き換えるだけだし
0755デフォルトの名無しさん2016/02/20(土) 06:56:50.91ID:Hf5DV+m+
新規プロジェクトで採用するフレームワークを決めなきゃならないのだが、今だと何がおすすめなの?
0756デフォルトの名無しさん2016/02/20(土) 07:03:23.78ID:Z/NGE4Cm
クライアントに決めさせろ
0757デフォルトの名無しさん2016/02/20(土) 10:43:34.72ID:Q3ZbaEWa
ららべる
0758デフォルトの名無しさん2016/02/20(土) 10:56:11.96ID:dgRu0g8n
>>755
言語と方式(Web、クライアントアプリ等)くらい書けよ
0759デフォルトの名無しさん2016/02/20(土) 11:37:31.42ID:72FFHOaV
>>755
無しで。
0760デフォルトの名無しさん2016/02/20(土) 12:34:27.31ID:WEtjCzRL
>>755

PHPのフレームワークは糞だらけなので(ラスマス公認)
プロジェクトに合ったフレームワークをスクラッチしたらいい。

腕の良いグラマがいるなら、だけど。
0761デフォルトの名無しさん2016/02/20(土) 12:48:33.01ID:Om1RN4om
>>755
fuelphpを使え

フレームワークのふりをしたただのライブラリだから
学習コストを極限まで削れるぞ
0762デフォルトの名無しさん2016/02/20(土) 14:09:46.82ID:JjUcgdC4
ラスマスそんなこと言ってんですか
0763デフォルトの名無しさん2016/02/20(土) 14:29:27.45ID:Hf5DV+m+
fuelね、了解。
見てみるわ。
0764デフォルトの名無しさん2016/02/20(土) 20:24:23.97ID:1rmOkSRx
ZFで
0765デフォルトの名無しさん2016/02/20(土) 23:41:42.15ID:dYr3KEVr
codeigniter
0766デフォルトの名無しさん2016/02/21(日) 00:55:41.72ID:bEEJELrI
逆にダメなフレームワークは?
どこがひどかったかも含めて思いの丈を語ってくれ
0767デフォルトの名無しさん2016/02/21(日) 00:56:43.09ID:r+3PT3CF
言いだしっぺの法則を守らない君はどこかの司会者か何かですか
0768デフォルトの名無しさん2016/02/21(日) 05:28:05.12ID:TxpGa15i
>>766
そらRailsですわ
ASPの旧サイトより遅いという
0769デフォルトの名無しさん2016/02/21(日) 08:53:56.95ID:rLc1CHQI
今や産廃のCakePHP
Apache並に産廃
古参の宿命だな
0770デフォルトの名無しさん2016/02/21(日) 08:56:05.83ID:NNk+ymTI
>逆にダメなフレームワークは?

他の追随をゆるさないくらいCakePHP一択。

理由はPHPが嫌われている理由と全く同じ。つまり最極悪のフレームワーク。
0771デフォルトの名無しさん2016/02/21(日) 10:07:30.44ID:LPWXxKSh
わざわざPHPでフレームワーク使う理由ってなに?
単にテンプレートエンジンみたいな点で言えばPHPそのものがそんなようなもんだし、リクエスト判断して入力確認してDB読み書きして、なんて流れは普通に書いてもコード量にそれほど違いも出ないように思ってるんだが。
せいぜい文字列処理とかDBアクセスなんかのライブラリを作るくらいで、それにしてもほとんどは流用できるし、流用できない部分はフレームワーク使っても個別に書かないといけない部分だよね。
しかもフレームワーク使うとPHPだけじゃなくフレームワークのお作法にも則らないといけないし、そこから外れたことやりたい時の手間が尋常じゃないし、そうしてこねくり回したコードは難解だしでいいことが全く思い当たらないんだよな。
自分で積極的に使おうと思わないからいい点が見えてないだけかもしれないけど、フレームワーク使いたい理由を説いてくれると勉強になる。
ちなみにプロジェクトの都合で少しメンテしたことあるのは Smarty と CakePHP くらいだ。
0772デフォルトの名無しさん2016/02/21(日) 10:16:06.96ID:bEEJELrI
フレームワーク使わないと全機能自分で実装しなきゃなんないじゃん
アホらしいし面倒臭い
0773デフォルトの名無しさん2016/02/21(日) 10:18:02.53ID:LPWXxKSh
全機能ってどういうことさ?
0774デフォルトの名無しさん2016/02/21(日) 10:22:16.76ID:bEEJELrI
ログインとかセッション管理とかデータのCRIDとかページネーションとかバリデーションとかSNS連携とかいくらでもあるだろ
0775デフォルトの名無しさん2016/02/21(日) 10:39:49.00ID:LPWXxKSh
>>774
なるほど、それを自分で管理するのが面倒って話ね。
共通化できるような部分だからフレームワークだと言ってるんだろうけど、そんなの一度書いてしまえばしばらく使い回せるし、SNS連携は置いとけば作るのもそんなに難しい部分じゃないしなぁ
フレームワークが持ってないバリデーションやりたくなったらどうしようとか考える方が面倒なような。
つか相関チェックなんてどのみち全部書くんでしょ?
0776デフォルトの名無しさん2016/02/21(日) 10:45:20.35ID:bEEJELrI
実際にやる事は>>774に書いた事の100倍ぐらいありそうだから、自分で書こうとは夢にも思わないなぁ
そんな時間はない
趣味でかつ無限の時間を注ぎ込めるならやってもいいかも
0777デフォルトの名無しさん2016/02/21(日) 10:47:40.65ID:rLc1CHQI
結局それ1度は作らないといけないオレオレフレームワークじゃん
0778デフォルトの名無しさん2016/02/21(日) 10:53:54.56ID:rLc1CHQI
チーム開発の場合オレオレフレームワークは色々論外だろう
0779デフォルトの名無しさん2016/02/21(日) 10:56:16.67ID:bEEJELrI
俺的には出来が良ければオレオレもありだと思うよ
だけど実際にはハナクソみたいなのしか見た事ない、一人や少人数で作ったものが世界のオープンソースに勝てないわな
0780デフォルトの名無しさん2016/02/21(日) 10:57:04.62ID:LPWXxKSh
>>778
そこはあるね
ルールの書面化は確かに面倒だ
0781デフォルトの名無しさん2016/02/21(日) 13:14:29.59ID:jjHTopAE
ソースコード管理とsyntax error検知だけあればそれでいいよ
0782デフォルトの名無しさん2016/02/21(日) 14:20:16.85ID:NNk+ymTI
どうもフレームワークとライブラリの違いが分かってないようで…
0783デフォルトの名無しさん2016/02/21(日) 14:37:02.37ID:NNk+ymTI
> だけど実際にはハナクソみたいなのしか見た事ない

理由は2つ

1.フレームワークは熟成させないとダメなので単発ではいいものができるわけない
2.いいものをつくっても普通の契約形態だと元請け等にパクられて終わりだから真面目に作る奴が馬鹿
0784デフォルトの名無しさん2016/02/21(日) 23:03:57.93ID:FiLKk72/
>>775
まさにそういうことを言い出すやつのためにFuelPHPは存在する

フレームワークとライブラリの違いがわかっていないやつのために
もういっそライブラリをフレームワークと言い張ろうとしたのがFuel
拡張性は抜群だし覚えること少なくて済むし超いいよ
0785デフォルトの名無しさん2016/02/22(月) 02:11:35.33ID:JwQG8bF/
>>784
いや、ライブラリはライブラリ、フレームワークはフレームワークだと思うよ。
プロジェクトに合ったライブラリがあればフレームワークなんていらなくね?って話でさ。
ともかく、Fuelってのをちょっと見てみるわ。
0786デフォルトの名無しさん2016/02/22(月) 04:32:40.81ID:GHNnpFrN
なんでフレームワークが要らないのかわからない。
やっぱりわかってないんじゃないのか
0787デフォルトの名無しさん2016/02/22(月) 05:29:16.10ID:OmlsmopI
構造はフレームワークに決められたくないんや!
俺がキメるんや!
0788デフォルトの名無しさん2016/02/22(月) 09:44:30.13ID:JwQG8bF/
>>786
PHP使ってる時点で自分の処理に渡ってくる時点でリクエストパラメータの展開もセッションの展開も済んでるし画面出力もほとんどHTMLみたいなテンプレートをincludeするだけで完了出来ちゃう。
ここまでお膳立てされて、あとは処理を書くだけ。
という状況が既に一種のフレームワークじゃね?
例えば perl でやろうって話になったらこのお膳立てに結構な手間がかかるし、フレームワーク化される部分でしょ?
0789デフォルトの名無しさん2016/02/22(月) 10:25:01.68ID:nMPIm3oZ
フレームワーク使う最大の利点は完成物を作るにあたって言語をさして勉強する必要がないところだな
例えば俺PHPerだからPHPしか使えないしーとかいうやつは
PHPほどの効率で初動が進むわけではないが
環境構築やそれに伴う周辺理解に時間がかかるだけで
プログラミングに関して言えば他言語のFWとサンプル渡したら1週間後には掲示板が出来あがるレベル
それを否定するのは先入観や使用するその他言語が嫌いとかでそもそもやる気がないだけ
さすがに関数型とか考え方の異なる言語になると躓く部分はあるけどね
0790デフォルトの名無しさん2016/02/22(月) 12:01:29.87ID:GHNnpFrN
ヤバいこのスレレベル低いぞ
0791デフォルトの名無しさん2016/02/22(月) 12:02:44.65ID:OekBzDP3
俺が平均レベルを押し下げてるせいだ
すまんな
0792デフォルトの名無しさん2016/02/22(月) 13:36:18.66ID:pzyynVMY
学ぶ姿勢があるうちはええよ。
0793デフォルトの名無しさん2016/02/22(月) 14:38:24.59ID:bMW4s8sj
>>790
よう、ひさしぶりだな
0794デフォルトの名無しさん2016/02/22(月) 21:40:54.93ID:HpxGHp+r
レベル低いっていうか、作ったことのある規模の問題。
ある程度でかいシステムつくってみれば、フレームワークいらないなんて
いう気もおきなくなる。
0795デフォルトの名無しさん2016/02/22(月) 23:00:31.18ID:OmlsmopI
今作ってるの、PHPはJSONやファイル返すだけなのでフレームワーク無しよ
ライブラリとしてTCPDF、PHPExcel、PHPMailerとかjwtは使ってるけど
0796デフォルトの名無しさん2016/02/23(火) 07:25:01.65ID:ogjuWzq9
パフォーマンスに難があるからそれなりの規模の作ったときはFWは使わなかった
Perl Ruby Python PHPのWeb系スクリプト四天王じゃFWなしとなるとPHPは一番開発しやすい
ちょっと修正すればHHでブーストもできるしね
0797デフォルトの名無しさん2016/02/24(水) 00:13:41.96ID:6KBt3+BB
そこは、PHPがもともと高性能テンプレートシステム的な存在だったのが影響してるのかな?
0798デフォルトの名無しさん2016/02/24(水) 11:30:13.18ID:qODGIMFE
>>796
RubyはPubyだったらP4だな
0799デフォルトの名無しさん2016/02/24(水) 15:40:02.56ID:5mV+mcME
>>796
言語の成り立ちを考えれば当然だよね
0800デフォルトの名無しさん2016/02/24(水) 21:32:22.76ID:sMbGI4qn
前任者が作ったSymfony 1プロジェクトを保守したけどトラウマになりそうだったわ
テストが無くても1ファイルにべた書きされてた方がマシってレベル
0801デフォルトの名無しさん2016/02/24(水) 22:00:55.50ID:Cv7HbOi/
まぁ、作り変えたほうが早いわな
0802デフォルトの名無しさん2016/02/25(木) 16:47:39.08ID:i5NCjJ5m
>>800
Symfony はRails以上にクソオブクソだから しょうがないね
0803デフォルトの名無しさん2016/02/25(木) 20:07:40.83ID:jRSeJ77V
Railsもクソオブクソに含まれるようになったとは、このスレもずいぶん変わったね
0804デフォルトの名無しさん2016/02/26(金) 20:39:10.32ID:pOvt9Ry8
ここらへんでー そろそろオレがー その花をさかせましょー
0805デフォルトの名無しさん2016/02/26(金) 20:39:52.68ID:pOvt9Ry8
IT業界のためにー あなたのためにー ひきうけましょおー
0806デフォルトの名無しさん2016/02/28(日) 14:05:51.95ID:Nedg3tZ6
ユーザーごとのプロフィールページを作成しようと考えているのですが、
URL構造について質問があります。

通常であればprofile.php?number=xxx
のようなURLになると思うのですが、

profile/xxxのような静的URLとしてページを生成させるにはどうすればよいでしょうか?
seo的には動的静的で差がないそうですが、どなたかお教えください。
0807デフォルトの名無しさん2016/02/28(日) 14:09:24.29ID:8uZi9XeY
>>806
WebサーバのURL rewriteで飛ばすよ
一致しないURLはindex.phpに飛ばして
そこでURL見て該当するクラス呼び出す
0808デフォルトの名無しさん2016/02/28(日) 14:20:14.79ID:Nedg3tZ6
>>807
URLの見た目を書き換えることができるんですね
ありがとうございました
0809デフォルトの名無しさん2016/02/28(日) 14:21:59.41ID:NZKlVimG
チャットを作っていてajaxでデータの受け渡しまでできたのですが
書き込みがあるまでphpで待機させる方法がわからないです。
cometってので可能なのですよね?
websocketってのもあるみたいなのですがよくわからないんで
出来ればcometで実現させたいです。(´;ω;`)ブワッ
0810デフォルトの名無しさん2016/02/28(日) 15:07:08.91ID:tZKfefo/
くだらない質問ですいません
PHPってなんですか?
また、プログラミング言語を学びたいのですが何が良いのでしょうか?
0811デフォルトの名無しさん2016/02/28(日) 15:21:40.27ID:PW8h2gxN
comet って最近は聞かない。古そう
0812デフォルトの名無しさん2016/02/28(日) 15:21:40.20ID:8uZi9XeY
>>809
エラい古いんちゃうかなcometって
PHPをサーバ側で使いたいなら
ttp://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(送信するメッセージ);
0813デフォルトの名無しさん2016/02/28(日) 16:51:02.24ID:2AKul8km
>>809
無限ループ使うんだよ
そのままだとCPUがやばいからsleep(usleep)を適切に挟むこと
んで書き込みがあったらbreakしてクライアントに結果返して
クライアント側は結果を受け取ったらまたリクエスト張りなおす
注意点はサーバの書き込みチェックは最初の結果をキャッシュする場合があるのでキャッシュさせないようにする
あとはタイムアウトを考慮した設計にすること
あとはレンタルサーバーじゃやらないこと
0814デフォルトの名無しさん2016/02/28(日) 16:52:15.20ID:2AKul8km
あ、ごめん
やり方じゃなくて待機方法がわからないのね
0815デフォルトの名無しさん2016/02/28(日) 17:19:55.89ID:NZKlVimG
>>812
やっぱ古いんですねcomet
websocketでいきます…
ありがとうございます
あれれインストールで躓いちゃったや(´;ω;`)

>>813
レンタルサーバーで実装するつもりでした(ノ∀`)アチャー
とりあえずwebsocketでやってみます
ありがとうございます。
0816デフォルトの名無しさん2016/02/28(日) 17:22:07.38ID:2AKul8km
共用じゃだめって意味ね
ざっくりすぎてごめんこ
0817デフォルトの名無しさん2016/02/28(日) 18:19:52.66ID:Os9aC1Qv
共有サーバーこそ、WeSocketなんて無理なんじゃ
0818デフォルトの名無しさん2016/02/28(日) 18:29:49.12ID:XTbgA6gH
Ajax+ポーリングで我慢しとけ
0819デフォルトの名無しさん2016/02/28(日) 18:38:11.50ID:fDaPLCBC
>>812
面白いなこれ
こういうのって複数チャット部屋を作ったときリソース消費どんなもんなの?
画像や音楽を送信/配布可能にしたりしたら通信量も怖いがメモリもちょっと怖い
0820デフォルトの名無しさん2016/02/28(日) 18:41:48.03ID:k2lRb1XX
print_r と var_dump
どっちかしか使っちゃだめと言われたらどっちを選ぶ?
0821デフォルトの名無しさん2016/02/28(日) 18:42:12.92ID:fDaPLCBC
var_dumpに決まっとる
0822デフォルトの名無しさん2016/02/28(日) 19:57:58.26ID:NZKlVimG
いろいろ意見もらっといてなんだけれど
Node.jsって手もありかも(´;ω;`)ブワッ
0823デフォルトの名無しさん2016/02/28(日) 20:06:43.75ID:PslYhxFh
printじゃ配列見れんがな
0824デフォルトの名無しさん2016/02/28(日) 20:08:49.53ID:PslYhxFh
rか
0825デフォルトの名無しさん2016/02/28(日) 20:53:27.88ID:94+t3xG4
>>822
node.jsは扱ったことないから正直詳しくは知らんが、読んだ限りじゃサーバーサイドもjsで記述するみたいだね。
サーバーもapacheを使わずnode.jsで稼働させるらしい、つまり環境作るまでにまた何時間もハマったりするんじゃないか?
自信が無いのであれば下のサイトを勧める。


PHPのみでHTML5のWebSocketを体験する方法
http://d.hatena.ne.jp/susan-style/20140306/1394103655

Node.js覚えたくない人のためのphpで始めるWebSocket
http://webuilder240.github.io/2014/10/php-websocket/
0826デフォルトの名無しさん2016/02/29(月) 00:06:33.89ID:Euk6Iqck
>>819
サーバ側は別に無限ループしてるわけではないから、
Apacheがもう一個動いてる程度に考えればいいと思う
0827デフォルトの名無しさん2016/02/29(月) 14:18:17.41ID:y2diBpG3
無限ループしてないのか
0828デフォルトの名無しさん2016/02/29(月) 18:25:43.68ID:VEa03N4g
>>825
何時間では済まなそうです(´;ω;`)
やっぱ皆さんの言うようにWebSocketでやってみます
ありがとうございます
0829デフォルトの名無しさん2016/02/29(月) 20:28:12.03ID:VEa03N4g
websocketやってみたのですが

WebSocket connection to 'ws://yuuhi.heteml.jp/yuuhi666/' failed: Error during
WebSocket handshake: Unexpected response code: 200

って出ました\(^o^)/オワタ
不機嫌な理由は何なんでしょうか(´;ω;`)
0830デフォルトの名無しさん2016/02/29(月) 20:57:42.14ID:O4CHXLQv
それここで聞くことか?
0831デフォルトの名無しさん2016/02/29(月) 21:16:31.59ID:VEa03N4g
>>830
(´・ω・`)
0832デフォルトの名無しさん2016/02/29(月) 22:08:57.80ID:T4rQFsep
>>829
ホストの指定はlocalhostかサーバー自身のIPアドレス192.168.0.xx
0833デフォルトの名無しさん2016/02/29(月) 23:42:08.41
>>829
200ってApacheとかから応答帰ってきてる
WSサーバのポートを9000とかにしたら
:9000 を付けないとダメ
0834デフォルトの名無しさん2016/03/01(火) 09:48:25.21ID:uLS4RoHp
FuelPHP使ってみようかなと思い始めてきたけど使い始めるまでが面倒くさいね
どうやったら初動で勢いつけてやれるかな
0835デフォルトの名無しさん2016/03/03(木) 17:39:41.23ID:eajzZFGl
var_dump()の出力を変数に入れたいのですが
出力をのっとるしかないでしょうか
0836デフォルトの名無しさん2016/03/03(木) 17:49:28.76ID:7LVuWV6J
ob_start() して
var_dump() して
ob_get_contents() して
ob_end_clean() すればいけるかも
0837デフォルトの名無しさん2016/03/03(木) 17:51:59.25ID:j/RUlECR
乗っ取るって表現が適切かはわからないけどマニュアルのヒントに書いてある通り
var_dumpとはちょっと内容違うけどvar_exportでfalse指定したほうが楽
08388372016/03/03(木) 17:52:41.23ID:j/RUlECR
すまん
falseじゃなくてtrueやった
0839デフォルトの名無しさん2016/03/04(金) 02:34:21.52ID:HY1zPgG1
PHPは初心者にも扱いやすいのかな?
0840デフォルトの名無しさん2016/03/04(金) 02:46:57.55
プログラムの勉強したいならどうやろな
Visual Studio Express使ってWindowsフォームアプリ作る方が「背景知識」は少なくて済むし、環境作成も簡単
0841デフォルトの名無しさん2016/03/04(金) 02:48:45.25
HTML書いててなんかしたい、となったなら
PHPとJavaScriptでおk
0842デフォルトの名無しさん2016/03/04(金) 07:44:59.95ID:8T2/WYRz
ここでシステムを買ったんですが、不具合があり修正してもらいたいんだが全く対応しません。
どうすれば良いですかね?ここで買わなきゃよかった。

ワシントンソフト
http://kuchikomi-cgi.net/
0843デフォルトの名無しさん2016/03/04(金) 08:08:01.12ID:vljhJ3oG
自分で直しゃいいじゃん
0844デフォルトの名無しさん2016/03/04(金) 10:13:15.71ID:8T2/WYRz
どういう対応をするか見ていたんだが、売りっぱなしのようだな
もう直した。
0845デフォルトの名無しさん2016/03/04(金) 11:28:51.80ID:HRxlw+pI
こういう奴の相手したくなくなるのはわかるw
0846デフォルトの名無しさん2016/03/04(金) 11:33:26.78ID:Q4+dIJ6P
どの辺に不具合があるのか、具体的に
0847デフォルトの名無しさん2016/03/04(金) 12:24:42.75ID:8T2/WYRz
>>845

ふざけるなw
13万円くらい払って購入してるし、商売やってんならアフターフォローするのが当たり前だろう
もう終わりw
0848デフォルトの名無しさん2016/03/04(金) 12:27:05.68
ソース見たら某フレームワークをちょっと弄りましたみたいな?
0849デフォルトの名無しさん2016/03/04(金) 12:31:56.11ID:8T2/WYRz
そうです
終わり・・
0850デフォルトの名無しさん2016/03/04(金) 12:58:04.63ID:4aC8Jy9P
>>839
WordPress で、ほとんどPHPを書かなくても、

ブログを作れるからだろ
0851デフォルトの名無しさん2016/03/04(金) 14:08:59.85ID:/EMuekHM
どんな不具合をどう直したの
0852デフォルトの名無しさん2016/03/04(金) 14:36:56.40ID:OpHlemOi
13万って、プログラマ1人がせいぜい数日作業するくらいのコストだよね…
0853デフォルトの名無しさん2016/03/04(金) 14:38:25.70ID:7/wX5Bu3
パッケージだからその計算はおかしい
0854デフォルトの名無しさん2016/03/04(金) 18:52:15.50ID:xezy6lBT
>>853
プログラマに数日作業させるくらいなら13万出してパッケージ買うやろ
という話だから計算的にはいいんじゃない?
その結果さらにプログラマが働いている現状なんぞは知らぬ。 知らぬ。
0855デフォルトの名無しさん2016/03/04(金) 19:56:46.00ID:vljhJ3oG
実際どういう不具合で
相手に聞いたらどういう返答で
どう直したのかが重要だな
0856デフォルトの名無しさん2016/03/04(金) 20:11:47.37ID:eEaJYIJN
興味を持たせることには成功したようだな
宣伝乙
0857デフォルトの名無しさん2016/03/04(金) 20:44:46.88ID:yBIrODvL
やっぱりテスト太郎、テスト次郎は定番なんだな
0858デフォルトの名無しさん2016/03/04(金) 22:04:09.58ID:Q4+dIJ6P
不具合を直さないって公表されて宣伝になるんか?
0859デフォルトの名無しさん2016/03/04(金) 23:44:40.37ID:A68S+x0S
PHPができるなら自分でシステム組むよね
何か使うにしてもメジャーなOSSを使うでしょ普通
0860デフォルトの名無しさん2016/03/05(土) 02:53:41.19
>>859
PHP出来ない人が居るからPHPでお金貰えるわけやし
0861デフォルトの名無しさん2016/03/05(土) 09:36:09.67ID:MVnXTth5
世の中はWordpress使える俺スゲー!な人たちが殆どですから、
多少の汚いPHPコードは書けても、自分でまるっとシステム作れる人はマイノリティーなわけです。
0862デフォルトの名無しさん2016/03/05(土) 18:59:45.08ID:7QlXzIvF
お前らPHPで何作ってるの?
0863デフォルトの名無しさん2016/03/05(土) 19:13:12.98ID:Q9xGDEpj
自分が使うためのツールとバッチ
0864デフォルトの名無しさん2016/03/05(土) 20:23:23.12ID:Zp0U3rJ4
負の遺産
0865デフォルトの名無しさん2016/03/05(土) 20:37:15.62ID:MVnXTth5
創造の毒
0866デフォルトの名無しさん2016/03/05(土) 21:23:12.61ID:TtOs9IsN
マイナス金利
0867デフォルトの名無しさん2016/03/06(日) 01:18:57.39ID:KcqVY3vA
>>861
WordPress使える俺スゲーなんて思ってるやつなんているの?
それとも自己紹介?
0868デフォルトの名無しさん2016/03/06(日) 05:30:43.54
今日も青山のスタバでWordPressのテーマ新作をデザインする
出来合いのテーマでは伝えきれない思いがあるから
0869デフォルトの名無しさん2016/03/06(日) 09:46:11.07ID:nZ086bjX
>>867

世間知らずはおまえだけじゃないってこと。
そんで、そういうヤツのほうがずっと上手く世渡りしていて、楽に生きてたりする。

あと、「それとも自己紹介?」とか書いちゃうあたりが、
お前自信が「プログラム組める俺スゲー」って思ってる証拠だろうけど、
そういうやつはまぁ、大抵糞コード書いてる。
0870デフォルトの名無しさん2016/03/06(日) 09:55:51.82ID:KcqVY3vA
>>869
ちょっと何言ってっかわかんないっすね
0871デフォルトの名無しさん2016/03/06(日) 09:55:55.96ID:g0P96U3U
プログラミングなんてこれっぽっちもできずWordPressとかその他使うだけでアホみたいに稼いでる奴たくさんいるしな
0872デフォルトの名無しさん2016/03/06(日) 10:41:35.53
書くやつより喋るだけのやつの方が稼ぐという
0873デフォルトの名無しさん2016/03/06(日) 11:20:16.79ID:NsHVX+P9
最近のHP業者を盛大にディスるスレがあると聞きまして
0874デフォルトの名無しさん2016/03/06(日) 11:28:15.07ID:mT99FyHX
HP業者とか絶滅危惧種
システムの一部としてパッケージで納入されるのが一般的で
システム屋がやるんじゃないの
0875デフォルトの名無しさん2016/03/06(日) 11:48:16.84ID:Iby65zw1
は?
0876デフォルトの名無しさん2016/03/06(日) 13:13:38.20ID:nZ086bjX
>>870

わかんなかったのお前だけみたい。
0877デフォルトの名無しさん2016/03/06(日) 13:18:43.55ID:KcqVY3vA
>>876
それとも自己紹介?がプログラム組める俺スゲーになるんだよ
いちいちそういう方向にとらえるのは、お前がそういうコンプレックスもってることの現れだ
0878デフォルトの名無しさん2016/03/06(日) 13:23:06.21ID:nZ086bjX
デザイナーとかWEB制作会社系の勉強会いくと、技術者系の勉強会との温度差にびっくりする。
よくもまぁ、そんなレベルの低いことを自信満々に発表できるなと。
で、発表のスタイルだけ技術者系と同じようなことしてる。

見た目だけマネて内容が伴ってないから聞いててフガフガしてくる。
0879デフォルトの名無しさん2016/03/06(日) 13:24:23.47ID:KcqVY3vA
>>878
そのレスではっきりした
俺スゲーって思ってるのはお前自身だ
0880デフォルトの名無しさん2016/03/06(日) 13:34:45.40ID:nZ086bjX
>>877
>それとも自己紹介?がプログラム組める俺スゲーになるんだよ

「どうして」が抜けてるぞ。日本語間違えるほど頭に血をのぼらせてるから言ってる事の意味がわかんないんだよ。

「プログラム組める俺スゲー」って内心思ってるから現実見えずに相手を下にみて
「それとも自己紹介?」みたいな事書いちゃうわけだろ?

そういう奴は技術の深さを知らずにWordpress使えるオレすげーってなってる奴となんら変わらないから
周りが見えずクソコード書いてる自分に気づかないわけさ。

と、言ってるのだけど理解できる?
0881デフォルトの名無しさん2016/03/06(日) 13:36:44.45ID:nZ086bjX
>>879

どこまで短絡的なんだろうねこの人。
明らかにレベル低いものは低いと評価するのは当たり前のこと。

評価できる材料がないのに、低いと評価して「それとも自己紹介?」と書いてるのがアホだって話なんだけど、
まぁ、頭に血がのぼっちゃった人に言っても無駄だろう。
0882デフォルトの名無しさん2016/03/06(日) 13:39:09.43ID:KcqVY3vA
>>880
最初の話に戻るけど、
> 世の中はWordpress使える俺スゲー!な人たちが殆どですから、
はあなたのちょっとした周辺のできことから主観的に類推した内容?
0883デフォルトの名無しさん2016/03/06(日) 14:13:41.94ID:NsHVX+P9
wpスレいってくれるかー。ここはphpプログラミングスレやでよー。
0884デフォルトの名無しさん2016/03/06(日) 20:41:28.02ID:nZ086bjX
868〜875あたりまで、そいつ以外は話が通じて会話流れてるのにそれに気づかず
>>882みたいなことまだほざいてるんだから、頭に血が上りすぎて全く周り見えてないんだろう。

そんなやつ他所様のスレに送り込んだら迷惑この上なかろうよ。
0885デフォルトの名無しさん2016/03/06(日) 20:50:22.05ID:tTnKJmeM
世の中はWordpress使える俺スゲー!な人たちが殆どですからね
お疲れ様でした
0886デフォルトの名無しさん2016/03/06(日) 20:56:12.96ID:m9eS+0PK
phpは触れるけどwordpress触ったことないおれスゲー
0887デフォルトの名無しさん2016/03/06(日) 21:31:44.39ID:Iby65zw1
どうでもいいけどURLにwp-contentとか入ってるのみると良いのかそれでと思う
0888デフォルトの名無しさん2016/03/06(日) 23:16:58.32ID:+T2SpDts
PHPで掲示板を作りたいのですが、c#の高機能IDEに慣れすぎて思うように開発が進みません
おすすめのIDEはありますか?
0889デフォルトの名無しさん2016/03/06(日) 23:37:24.20
>>888
無料ならVisualStudio Code、NetBeans、でデバッグも出来るよ
PHPStormは気合い入ってるけど高い
VisualStudioにPHP Tools入れるとそのままPHP使えてデバッグも出来る
70ドルくらいだったかな
0890デフォルトの名無しさん2016/03/07(月) 10:10:52.34ID:MOcatANN
Visual StudioとPHP Toolどうなんだろね
0891デフォルトの名無しさん2016/03/07(月) 10:30:55.20ID:LfQgYRkl
俺は無料だからNetBeans使ってるけど、本当はVS使いたい
無料にしてくれんもんか
0892デフォルトの名無しさん2016/03/07(月) 10:35:41.40ID:UrYl+g+P
PHP Toolsよさげ、、、30日トライアルか、、、
0893デフォルトの名無しさん2016/03/07(月) 11:32:48.15ID:BMmf+uGg
Eclipseは誰も使ってないの?
0894デフォルトの名無しさん2016/03/07(月) 11:39:23.65ID:1z0WwLBk
PHPStormは学生無料だから学生なら使ってみるとよい
0895デフォルトの名無しさん2016/03/07(月) 15:10:08.95ID:bIvIqFc6
Eclipseは3年前ぐらいまで使ってたけど
利便性より軽さを求めて今やemacsですわ
0896デフォルトの名無しさん2016/03/07(月) 15:13:30.87ID:FRHwsxZF
>>894
中学生なので丁度よかったです。
少し調べてみます。
0897デフォルトの名無しさん2016/03/07(月) 15:22:09.93ID:FRHwsxZF
あ、大学のメアドじゃないと無理なんですね
NBとVSはどちらも使い慣れているので、どっちでもいいんですがVSの方が好きなのでVScode入れてみます
0898デフォルトの名無しさん2016/03/07(月) 15:55:21.63
わしが中学生の頃は
(以下昔自分語り54行)
0899デフォルトの名無しさん2016/03/07(月) 15:56:19.30ID:bIvIqFc6
あれ?
0900デフォルトの名無しさん2016/03/07(月) 15:56:53.74ID:bIvIqFc6
途中でかいてもうた
なんでID出てないんや・・・
0901デフォルトの名無しさん2016/03/07(月) 16:11:56.43ID:UrYl+g+P
54行も書くからw
0902デフォルトの名無しさん2016/03/07(月) 16:28:30.76
裏2ちゃんねるから書くとID出ない、アクセスするには
(検閲されました)
0903デフォルトの名無しさん2016/03/07(月) 20:45:30.73ID:gjaDJoXT
なめてんのか?
0904片山博文MZ ◆T6xkBnTXz7B0 2016/03/07(月) 21:58:01.95ID:vq5fVXSL
【最終警告】WordPressを更新しないと脆弱性でぶっこ抜かれるぞ。
気を付けろ。確かに警告しといたぞ。
0905デフォルトの名無しさん2016/03/07(月) 22:16:41.11ID:be9Auz0b
>>904
ログみたけどやたら何度もアクセスあったや
トラックバック系のDDoS踏み台かな
0906デフォルトの名無しさん2016/03/08(火) 00:15:33.18ID: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回記述するだけで大丈夫ですよね?
0907デフォルトの名無しさん2016/03/08(火) 00:19:00.47ID:JBWz0dYt
1回で良い
0908デフォルトの名無しさん2016/03/08(火) 00:19:56.70ID:shevmCQX
ありがとう〜
0909デフォルトの名無しさん2016/03/08(火) 00:34:15.10ID:CHz9eaNM
http://news.mynavi.jp/news/2016/03/06/039/
http://news.mynavi.jp/news/2016/02/05/268/
http://news.mynavi.jp/news/2016/02/05/168/

http://news.mynavi.jp/news/2016/03/02/401/

こいつがPHP嫌いなのはよくわかったけど
ちゃんとRoRにも同じようなこと言っとけよ
0910デフォルトの名無しさん2016/03/08(火) 18:33:39.54ID:qf1gk2Bi
30すぎてますが、脱無職するためにプログラマになるよう(相談員に)薦められました
過去に独学していましたが専門的な知識はありません

年齢のことは置いておいて、最低限のPHPスキルがあるとして就職するには何ができるようになったほうがいいのでしょうか
0911デフォルトの名無しさん2016/03/08(火) 18:37:44.26ID:CQqmIBfk
サイト構築とデータベースあたりじゃね
プログラマー板のがいいんじゃ?
0912デフォルトの名無しさん2016/03/08(火) 18:45:27.22ID:JPPDp0Dn
>>910
プログラミング
0913デフォルトの名無しさん2016/03/08(火) 18:48:54.38ID:qf1gk2Bi
>>912
あ、それは余裕です
僕天才ですので

肩もみとかお茶くみやったほうがいいですか?



嘘です、具体的にどのくらいのスキルが必要か知りたかったんですが


>>911
わかりました
そっちで聞いてみます
ありがとうございます

簡単なサイト構築とデータベースはだいたいやったことあるんですが
セキュリティとかソケットとか自信ないんですよね
WEBプログラミングって、あんまりソースが転がってないですよね
ライブラリを読むとかはやってみてるんですけど
0914デフォルトの名無しさん2016/03/08(火) 18:58:01.02ID:SYPcuMQJ
サイトって見た目が何より大事
デザインのセンス、
今世間で何が注目されているかの嗅覚、
お客を説得できる話術

構築技術はあとでどうにでもなる
0915デフォルトの名無しさん2016/03/08(火) 19:29:52.80ID:qf1gk2Bi
HTMLとCSSは使えるんですが、デザインのセンスとなると難しいですね
センスだけじゃなくてフォトショップやイラレのスキルも要求されますし
0916デフォルトの名無しさん2016/03/08(火) 19:34:33.98ID:H+FsN3mb
40代超えてこれから無職になるところ。
これからWebアプリ作って生計立てる。
やっていけるかな?
占いではアホみたいに成功するって言われたけどww
0917デフォルトの名無しさん2016/03/08(火) 20:26:12.83ID:JPPDp0Dn
>>916
一発屋はいけるかもしれんが60まで続けるには先行きが不明だ。
0918デフォルトの名無しさん2016/03/08(火) 20:26:45.47ID:RMKFy6zt
デザインなんてbootstrap使っときゃええんや
0919デフォルトの名無しさん2016/03/08(火) 21:01:56.05ID:qf1gk2Bi
PHPを軽くて高速にする方法をまとめて学べるサイトか本ないですか
0920デフォルトの名無しさん2016/03/08(火) 21:43:58.14ID:JWYTtwzc
htmlとかxmlで&ltって書くこと英語でなんて言うんだっけ?
0921デフォルトの名無しさん2016/03/08(火) 21:50:56.47ID:H+FsN3mb
>>917
20年分を5年くらいで稼ぎ出したい
0922デフォルトの名無しさん2016/03/08(火) 22:29:11.89ID:JPPDp0Dn
>>921
同感だ。
0923デフォルトの名無しさん2016/03/08(火) 22:51:16.09ID:Sd3vw94M
>>921
税金大変そう
0924デフォルトの名無しさん2016/03/08(火) 22:56:59.64ID:RrOXDxPR
twitter bootstrap は、結局使うべきではないという結論に至った。
0925デフォルトの名無しさん2016/03/08(火) 22:58:55.18ID:RrOXDxPR
>>920

entity reference ?
0926デフォルトの名無しさん2016/03/08(火) 23:53:05.30ID:EyRxzck3
>>920
HTML特殊文字(Special Characters)
文字実体参照・エンティティ参照(Entity References)
HTML エスケープ(Escape Characters)

Encode & decode HTML entities
0927デフォルトの名無しさん2016/03/09(水) 12:36:32.09
小説家になろう、ってPHPで動いてるのね
http://Syosetu.com/favnovelmain/list/index.php?nowcategory=1&;p=1
結構ユーザー多いのにちゃんと動くもんだなあと
0928デフォルトの名無しさん2016/03/09(水) 13:08:14.75ID:UAhrNZlf
index.phpが出てくるって、けっこう適当な作りだけど
問題なく動いてるんだね
0929デフォルトの名無しさん2016/03/09(水) 13:12:50.04ID:lt6TsBBU
phpを隠したいぐらいなら最初から使わなきゃいいのにw
0930デフォルトの名無しさん2016/03/09(水) 13:13:46.38ID:zr//P7+1
>>927
そこ、広告収入かなりすごいらしいね
ほんとそういうサイト作りたい
0931デフォルトの名無しさん2016/03/09(水) 15:14:51.52ID:r54nNSpY
>>929
phpに限った話じゃないけど、あなたの使ってる言語では環境を明示することが推奨されてるの?
0932デフォルトの名無しさん2016/03/09(水) 15:25:06.33ID:lt6TsBBU
表面的に隠したところで意味ないしw
0933デフォルトの名無しさん2016/03/09(水) 15:37:08.72ID:r54nNSpY
>>932
なに使ってるの?
0934デフォルトの名無しさん2016/03/09(水) 15:38:30.19ID:H6Adcpz7
隠す隠さないは、PHPとは別の話だろ
0935デフォルトの名無しさん2016/03/09(水) 15:45:18.55ID:lt6TsBBU
別にphp使ってないとは一言もいってないんだがなぁw
攻撃者はヘッダー情報やらURLなんて見て判断しないから
そのへんはサーバのログ見りゃわかるだろ
0936デフォルトの名無しさん2016/03/09(水) 15:45:58.43ID:zr//P7+1
そんなことよりどんなアプリ作って儲けるかを考えたい。
ちなみに俺は独学クソコードで一昨年作ったアホアプリで500万しか稼げなかった。
10年くらい前に作った学生以下の知能のとき作ったアプリは2000万以上稼げたのに最近めっきりダメだ。
0937デフォルトの名無しさん2016/03/09(水) 16:37:37.49ID:EPlXKpIC
>>936
どういう販路で稼いだの?
0938デフォルトの名無しさん2016/03/09(水) 16:38:49.98ID:H6Adcpz7
このスレの話題じゃないだろうに
0939デフォルトの名無しさん2016/03/09(水) 21:59:31.10ID:v9Ad+UvV
だが、そこがいい。
0940デフォルトの名無しさん2016/03/10(木) 02:03:46.03ID:K/dg4BoX
10年前はたぶん今よりサイトもアプリも少なかったんじゃね
競合が少ないから稼ぎやすいってだけ
0941デフォルトの名無しさん2016/03/10(木) 02:29:43.50ID:I4fg8pde
初学者です。
変数の宣言や寿命について質問します。

(1)
他の動的言語と同様、PHPは変数宣言しなくてもさくっと使えるのがメリットだと思いますが、
あえてローカル変数を明確に宣言したいときは、どのように記述すれば良いでしょうか。
もし変数宣言を強制する方法があれば、それも併せてお願いします。

(2)
関数以外の { } ではスコープが発生しない(?)と聞いたのですが
for等である程度複雑な処理をする場合は、他の言語よりも気持ち細かめに関数化するのが良いのでしょうか?
0942デフォルトの名無しさん2016/03/10(木) 02:43:41.27ID:WPKFXTBi
perlのlocalやjsのletのようなものはphpにはないけど別に問題ないね
0943デフォルトの名無しさん2016/03/10(木) 02:49:37.62ID:I4fg8pde
無いですか。ありがとう。
無いなら無いなりに、こういう書き方をしてるよってのはありませんか。
0944デフォルトの名無しさん2016/03/10(木) 03:07:58.90ID:uzgEooUV
無いからというわけではなく、他の言語でも同様だけど
変数の使い回しをしないようにするくらい。

逆に、使いまわすことが明確であるような作業変数を作り、かつそれが参照であるような場合は必ずunsetする。
参考: http://php.net/manual/ja/control-structures.foreach.php

あと、個人的には関数化の基準は言語に依存しない。(最適化の段階を除いて)
0945デフォルトの名無しさん2016/03/10(木) 03:09:36.40ID:AX52NT3y
>>943
スクリプトの先頭に
error_reporting(E_ALL);
これで怒られたら、そこで考えなよ
0946デフォルトの名無しさん2016/03/10(木) 10:15:34.23ID:zqa8fCQ8
>>943
一時変数みたいのは使い終わったら unset するようにしてる。
全部が全部じゃないけど、多少なりともサイズの大きくなるやつは。
自分でスコープの終わりを明示するイメージ。
つか { } でのスコープの区切りは欲しいけど、それやるなら使用前の変数宣言が必要になるから php の思想とは合わないんだろうね。
0947デフォルトの名無しさん2016/03/10(木) 11:09:07.15ID:kGRYisxx
ローカル変数を明確にするよりもグローバル変数を極力使わないようにする。
そのために関数化したりオブジェクト指向化するのも有効な手段。
あと区別するために変数にprefix付けるとかあるけどお勧めしない。
0948デフォルトの名無しさん2016/03/10(木) 14:23:56.13ID:8TSnl84z
グローバル変数使うと何がダメなの?
0949デフォルトの名無しさん2016/03/10(木) 14:51:27.94ID:ES1Z+z/1
>>948
自分で「あ、こりゃダメだな」と思うまでは使ってよし
0950デフォルトの名無しさん2016/03/10(木) 15:00:08.59ID:V5fpOGLe
includeしたりしなきゃ特に問題はない
0951デフォルトの名無しさん2016/03/10(木) 19:34:54.92ID:8TSnl84z
>>950
includeすると何がダメなの?
0952デフォルトの名無しさん2016/03/10(木) 20:28:02.26ID:V5fpOGLe
変数名かぶった2つのファイルをincludeした時のことを考えれ
0953デフォルトの名無しさん2016/03/10(木) 22:16:45.03ID:9EQi99EP
ごめん、2ファイルの純情な感情の事なんか考えたくない。
0954デフォルトの名無しさん2016/03/10(木) 22:37:16.30ID:hp2GaphC
>>952
IDEが検知してくれるからへーきへーき
09559432016/03/11(金) 00:06:40.14ID:a6R8C1/e
変数の宣言等について質問した>943です。
ありがとう。

>>945
開発中は必ず記述するようにクセつけるようにします。

>>944>>946
unsetで寿命を明示するのは良いですね。

>>947
Cだったと思いますが、グローバル変数には g_ を付ける、なんて規約を見たことがあります。
あんな感じですかね。
0956デフォルトの名無しさん2016/03/11(金) 06:46:23.06ID:i2cGi8Gp
>>952
すまんがちょっと教えてくれ
includeしただけでグローバル変数がダブるってどんな状況?よくあるもの?
0957デフォルトの名無しさん2016/03/11(金) 09:27:42.09ID:N+8Oop6J
>>956
あちこちから拝借した直接関係無いライブラリでたまたま同じグローバル変数名を使ってるとか。
DBコネクションとかファイルポインタとか、グローバル変数にしたそうで名前もダブりそうなのなんていろいろあるじゃん。
C みたいにグローバル変数のスコープをファイル内に限定できれば気軽だけどな。
PHPに限らずJSなんかだと心当たる人多いんじゃね?
0958デフォルトの名無しさん2016/03/11(金) 09:49:44.67ID:vQZosf1d
>>952
問題ってそれか…
それなら全く問題ない
さすがにそこまでアホなことしない
0959デフォルトの名無しさん2016/03/11(金) 13:27:06.01ID:Juk+9rAm
あんな質問してる時点でアホ
あらゆる状況を想定できないとプログラマー向いてない
0960デフォルトの名無しさん2016/03/11(金) 19:47:48.46ID:i2cGi8Gp
>>957
違う
includeしただけでダブるケースなんだから、
関数やclassその他の定義の内側でglobal $var;してるのではなく
グローバルスコープで直接処理書いてるってことじゃん
読んだだけで副作用出るライブラリってことにならんか?

どっかから拾ってきたライブラリじゃなかったとしても
普通、呼び出されたファイル自体だけがグローバルな処理書いて
他のファイルは関数・class等を提供するだけにとどめるもんじゃないんか
0961デフォルトの名無しさん2016/03/11(金) 20:30:55.79ID:N+8Oop6J
>>960
ライブラリが提供する一連の機能(function)で引き回す情報をグローバルに取るケースについて言ってるが、
そういうには class化して閉じ込めてしまえよってのが元々の話なんじゃないの?
なんか想像力が足りてない気がするよ。
0962デフォルトの名無しさん2016/03/11(金) 20:42:29.60ID:a6R8C1/e
グローバルに注意しないとそういうことが起こるよ、って例示なんだから
広く普及しているライブラリはその対策がなされてるってことよね?
0963デフォルトの名無しさん2016/03/11(金) 21:15:59.18ID:i2cGi8Gp
>>961
その場合問題になるのはincludeではないだろう
・関数やclassの中で、global宣言によって特定のグローバル変数に設定などを放り込む
  ⇒ どのファイルに記述されているかは関係なく、includeも関係なく、特定のグローバル変数に依存していることが問題
・メイン以外のファイルの中で、グローバル領域で変数を扱っている
  ⇒ includeやrequireなどで読んだだけで(関数等の定義だけではなく)何らかの処理が行われることが問題

では後者が生じる状況、そうせざるを得ない状況はどんなものか?というのが自分の質問
0964デフォルトの名無しさん2016/03/11(金) 22:25:26.80ID:FGOOX3Tv
>>956
名前空間の存在理由考えればそういう状況はある
いやあったといったほうが正しいか
今も間違ったプログラミングを覚えた初心者ライブラリ製作者とかはやらかしかねないけど
0965デフォルトの名無しさん2016/03/11(金) 22:49:04.69ID:N+8Oop6J
>>963
後者のような話をどっから持ち出してきたの?
んでグローバル変数を限定した方がよいという理由とそれを分けて考えたいのはなぜ?
ちょっと考えれば問題の本質は変わらないことに気付きそうなもんだが。
まあその前者についての見解もいま一歩な気がするからどこか消化不良なんだろうけど。
前者の問題は関数が特定のグローバル変数に依存することではなく、共有の資源であるグローバル変数名を自分が独占している前提に立っていることだよ。
0966デフォルトの名無しさん2016/03/11(金) 22:50:28.95ID:kGmCd3Ag
>>963
PHPをshtml風にテンプレートとして使う場合など後者の処理になりがち。
各ファイルでグローバル変数を使えば衝突することになる。
もちろん、これはとても悪い処理だよ。
0967デフォルトの名無しさん2016/03/11(金) 22:56:53.29ID:kGmCd3Ag
質問しているように見えて単にこう主張したいだけだよね。
「他のファイルは関数・class等を提供するだけにとどめるもんじゃないんか」
これは確かにそうだけどね。
0968デフォルトの名無しさん2016/03/11(金) 22:58:49.73ID:RA7SR1be
PHPにクラスなんてあったっけ
0969デフォルトの名無しさん2016/03/11(金) 23:51:26.62ID:i2cGi8Gp
>>964
名前空間は基本的に変数は関係ない、よってグローバル変数とは直接関わりがない

>>965
956に対して「ライブラリが〜〜」とか言い出すのがそもそもおかしい
「global宣言を乱用するとコードの見通しが悪くなる。include自体が問題なのではない」と言われれば、「なるほど確かに」と答えるが

発端は、話の流れからいって「なぜグローバル変数は悪いか」に真っ当な答えがないと自分が思ったからだ
0970デフォルトの名無しさん2016/03/12(土) 00:00:48.74ID:A3MCNpsP
それと、include即globalを触る構成の例、さらにglobal宣言を使う「良い」例を
パッと思い浮かべられなかったんで、そこんとこも含めて聞いてみた
思い出せる範囲だとpukiwiki本家がglobalを使ってたなあ、ぐらい

>>964
ページのヘッダ出力とフッタ出力とメイン出力を分けてヘッダとフッタをincludeだけで済ますようなタイプか
0971デフォルトの名無しさん2016/03/12(土) 00:01:29.22ID:V1lRWN9o
>>969
ライブラリの話はひとつのケースとして挙げてるわけで、そこから問題の本質を考えていけないお前の想像力が足りないだけだから。
コードの見通しの問題じゃない、どちらかと言えば管理の問題だ。
>>965 の一番最後の文を理解できるまで読み返せ。
0972デフォルトの名無しさん2016/03/12(土) 00:01:58.59ID:Zbyfy48z
PHPにクラスなんてあったっけ???
0973デフォルトの名無しさん2016/03/12(土) 00:01:59.35ID:A3MCNpsP
おっと3連投すまん わかると思うが>>969中の「>>964」は966と書き間違えた
0974デフォルトの名無しさん2016/03/12(土) 00:14:45.12ID:9ZmKFi7/
>>972
そのやり方よりも、これこれこういうわけでクラスとはいえないんじゃないかっていうのを先に出したほうが展開がスムーズだよ。
0975デフォルトの名無しさん2016/03/12(土) 00:17:44.14ID:A3MCNpsP
http://php.net/manual/ja/language.oop5.basic.php
phpにおいてclassと呼ばれているものは確かに存在している
0976デフォルトの名無しさん2016/03/12(土) 00:39:36.68ID:Zbyfy48z
むぁぢかよ
普通にオブジェクト指向プログラミング言語じゃねぇか
0977デフォルトの名無しさん2016/03/12(土) 01:30:32.54ID:V1lRWN9o
>>976
そういう書き方もできるというだけで、単なるごった煮と思えなくもない。
組み込み関数なんかを見るに、とにかくなんでも突っ込んでおけ的な。
0978デフォルトの名無しさん2016/03/12(土) 17:10:01.12ID:yd6bZAt6
>>970
そう。そういう処理。ちなみにWordPressは、こうなってる。

グローバル変数-WordPressCodex日本語版
https://wpdocs.osdn.jp/グローバル変数

WordPressのコードの全体にわたって、いろいろな目的でWordPress固有のグローバル変数が使用されます。
WordPressが生成するデータのほとんど全部がグローバル変数に見られます。
注意:適切なAPI関数があればそれを使うのがベストです。グローバル変数を直接変更するのは避けましょう。
0979デフォルトの名無しさん2016/03/12(土) 19:40:28.25ID:wBoLlEZv
>>977
一応JavaScriptよりはまともなClassではある。
まあごった煮なのは当然というか作ってる連中が
ごった煮を目指してます と明言してるしな。
0980デフォルトの名無しさん2016/03/12(土) 19:45:21.07ID:0SfN7+lJ
JavaScriptはそもそもクラスベースじゃなくてプロトタイプベースですし

個人的には既存組み込み関数に対するオブジェクト指向インターフェイスを追加してくれると有り難いんだけど, まぁ面倒だろうしねぇ
0981デフォルトの名無しさん2016/03/12(土) 19:46:52.58ID:Lp9XrA38
先生、レベルが下げ止まりません!
0982デフォルトの名無しさん2016/03/12(土) 21:59:34.46ID: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>

解決策はないでしょうか?
0983デフォルトの名無しさん2016/03/12(土) 22:18:44.37ID:jgL6oJsP
こんな感じの自作関数で実装できましたが、もっと簡潔な方法があれば教えてほしいです

function timechange($time) {
$time4digit = substr($time, 0, -2);
echo wordwrap($time4digit, 2, ":", true);
}
0984デフォルトの名無しさん2016/03/12(土) 22:24:09.17ID:jgL6oJsP
何度も連投すみません

上の関数だと6桁は正常に:で分割(12:34)になるんですが、
5桁だと上手くいきません。ご教授ください
0985デフォルトの名無しさん2016/03/12(土) 22:34:26.61ID:j4grSBgs
function timechange($time) {
$time = sprintf("%06d", $time);
$time4digit = substr($time, 0, -2);
echo wordwrap($time4digit, 2, ":", true);
}
0986デフォルトの名無しさん2016/03/12(土) 22:39:06.78ID:V1lRWN9o
>>984
最初に1000000を足して7桁に揃えてからやるとか、sprintf でやってみるとか?
sprintf ('%02d:%02d:%02d', $time/10000, $time/100%100, $time%100)
0987デフォルトの名無しさん2016/03/12(土) 22:41:02.88ID:V1lRWN9o
あーごめん、条件を適当に読み過ぎたw
無視するか拾えるものだけ拾って
0988デフォルトの名無しさん2016/03/12(土) 23:03:02.90ID:jgL6oJsP
>>985
成功しました。ありがとうございます。
sprintf便利すぎますね
0989デフォルトの名無しさん2016/03/12(土) 23:31:38.00ID:j4grSBgs
次スレ
http://echo.2ch.net/test/read.cgi/tech/1457792733/
0990デフォルトの名無しさん2016/03/13(日) 02:21:29.73ID:MpEKJeeZ
クラスってどんな時に使うんでしょうか!!!
0991デフォルトの名無しさん2016/03/13(日) 03:01:44.79ID:9kqv0Cg0
使いたい時に使う
0992デフォルトの名無しさん2016/03/13(日) 05:10:49.45ID:MpEKJeeZ
>>991
じゃあてめえをぶん殴るのにも使えんのか?
なんてね(*ノω・*)テヘ
0993デフォルトの名無しさん2016/03/13(日) 06:43:19.88ID:ZQ9tZTy0
そういう時はイスを投げるんだよ

典型的には特定の処理に関わる関数や変数をひとまとめにしたいときに使う
たとえばphpからDBを扱うときによく使われる $dbh = new PDO($dsn); に出てきてるPDO、これclass
0994デフォルトの名無しさん2016/03/13(日) 08:17:52.84ID:th1TODZW
プログラマが投げるのはマサカリと決まっています。
0995デフォルトの名無しさん2016/03/13(日) 11:09:47.54ID:ULJgt6Ph
>>983
function timechange($time) {
$time = sprintf(
0996デフォルトの名無しさん2016/03/13(日) 11:12:07.74ID:ULJgt6Ph
function timechange($time) {
$time = sprintf("%06d", $time);
$h = substr($time, 0, 2);
$m = substr($time, 2, 2);
echo $h.':'.$m;
}
0997デフォルトの名無しさん2016/03/13(日) 13:14:43.79ID:WNHsfoP5
sprintf 使うなら素直に hh:mm で出せばいいじゃない。
sprintf ('%02d:%02d', $time/10000, $time/100%100,)
0998デフォルトの名無しさん2016/03/13(日) 15:35:19.10ID:kS6/ihj4
ume
0999デフォルトの名無しさん2016/03/13(日) 15:49:45.37ID:hhfCvQlY
runa
1000デフォルトの名無しさん2016/03/13(日) 17:47:07.69ID:th1TODZW
ほい
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 119日 22時間 48分 59秒
10021002Over 1000Thread
2ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。


───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────

会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。

▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/
http://pink-chan-store.myshopify.com/
レス数が1000を超えています。これ以上書き込みはできません。