2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

【PHP】下らねぇ質問はここに書き込みやがれ

1 :デフォルトの名無しさん:2014/12/16(火) 23:02:27.78 ID:IVwNaeTx.net
PHPに関する下らない質問用避難スレです。
まず読むこと【PHPマニュアル】
http://www.php.net/manual/ja/

2 :デフォルトの名無しさん:2014/12/16(火) 23:57:45.49 ID:if+akcCT.net
Webprogにスレあるのに重複か





















重複の糞スレ終了

3 :デフォルトの名無しさん:2014/12/17(水) 00:23:17.60 ID:oDlbLDL6.net
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.5
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ

4 :デフォルトの名無しさん:2014/12/17(水) 02:44:27.36 ID:XucQiojd.net
おつ

5 :デフォルトの名無しさん:2014/12/17(水) 08:01:24.21 ID:Q55Z/XYm.net
>>1
糞スレ立てるなウジ虫

6 :デフォルトの名無しさん:2014/12/17(水) 08:33:48.37 ID:2HMoZql1.net
cliスレだろ?

7 :デフォルトの名無しさん:2014/12/17(水) 09:24:51.54 ID:92SEZchH.net
あのレスの内容の90%はまったくPHPと関係のないスレのことか

8 :デフォルトの名無しさん:2014/12/17(水) 09:29:24.82 ID:9gD1VcMA.net
IDなしだと荒らされるので避難してきました

9 :デフォルトの名無しさん:2014/12/17(水) 09:36:52.98 ID:92SEZchH.net
数カ月前にこの人が無断で画像使ってるから修正したけど無視されてるし
http://qiita.com/mpyw/items/1cb6fc8170b6a8c8eb04
こんなんばっかりだろPHPerってさ
一応http://www.japrpo.or.jp/には通報済みだけど削除されないものだな

10 :デフォルトの名無しさん:2014/12/17(水) 09:55:03.92 ID:VoUyzdqa.net
お前のことなんて興味ないし
質問スレでオナニー披露しないでいいから

11 :デフォルトの名無しさん:2014/12/17(水) 10:24:51.50 ID:nSozQxMf.net
20代前半から中盤に限ってこういう権利関係に疎い奴がいるもんだ

12 :デフォルトの名無しさん:2014/12/17(水) 11:20:05.35 ID:uBob9+nL.net
IDが出ると見やすくていいね

13 :デフォルトの名無しさん:2014/12/17(水) 11:22:53.68 ID:YTfSGPhx.net
荒らす奴もNGしやすいし、何より質問者の成りすましが出来なくなるからね。良かったw

14 :デフォルトの名無しさん:2014/12/17(水) 11:47:06.25 ID:VoUyzdqa.net
荒らしは頑張って書き込むたびにID変えてね!

15 :デフォルトの名無しさん:2014/12/17(水) 12:16:50.99 ID:eyin5x5c.net
巣に帰れよ

16 :デフォルトの名無しさん:2014/12/17(水) 21:34:22.64 ID:XucQiojd.net
>>9
前もその人のURL貼られてたな。宣伝か何か?

17 :デフォルトの名無しさん:2014/12/19(金) 10:29:57.08 ID:WohFU2Cv.net
インタビュー:[楽天]Ruby活用事例とROMA,Fairy|gihyo.jp … 技術評論社
http://gihyo.jp/dev/column/01/prog/2010/030801?page=2
RailsとCakePHPを比べたところ,高負荷時にはRails のほうが大幅に応答性能が高いという結果が出たことですね。
これは200リクエスト/秒くらいからPHPの応答性能が急激に下がるのが原因です。
Rubyはそれほど大きくはパフォーマンスが落ちないんです。

第4回 Railsに変えてよかった!:iKnow!の場合 | Think IT
http://thinkit.co.jp/article/156/4?page=0,1
3ヶ月、わずか3名程度のエンジニアチームで、彼らはPHPで実装が完了していたレベルに追いつきました。
またコード量はPHPの1/5以下にまで削減されており、よりシンプルな構成も実現できました。


食べログの画面数は約200あるが,開発に取りかかって約2カ月で完成した。
「VBscriptならこの倍,PHPでも1.5倍はかかっていたのではないか」
コード量も10分の1になった。
http://itpro.nikkeibp.co.jp/article/OPINION/20071031/286028/

18 :デフォルトの名無しさん:2014/12/19(金) 11:04:24.93 ID:CgQyWAAG.net
いつものキチガイキタ━━━━(゚∀゚)━━━━!!

19 :デフォルトの名無しさん:2014/12/19(金) 13:56:22.75 ID:5dTMV7SU.net
昔話おじさんキター

20 :デフォルトの名無しさん:2014/12/20(土) 23:34:22.47 ID:wxqr2k4c.net
インタビュー:[楽天]Ruby活用事例とROMA,Fairy|gihyo.jp … 技術評論社
http://gihyo.jp/dev/column/01/prog/2010/030801?page=2
RailsとCakePHPを比べたところ,高負荷時にはRails のほうが大幅に応答性能が高いという結果が出たことですね。
これは200リクエスト/秒くらいからPHPの応答性能が急激に下がるのが原因です。
Rubyはそれほど大きくはパフォーマンスが落ちないんです。

第4回 Railsに変えてよかった!:iKnow!の場合 | Think IT
http://thinkit.co.jp/article/156/4?page=0,1
3ヶ月、わずか3名程度のエンジニアチームで、彼らはPHPで実装が完了していたレベルに追いつきました。
またコード量はPHPの1/5以下にまで削減されており、よりシンプルな構成も実現できました。


食べログの画面数は約200あるが,開発に取りかかって約2カ月で完成した。
「VBscriptならこの倍,PHPでも1.5倍はかかっていたのではないか」
コード量も10分の1になった。
http://itpro.nikkeibp.co.jp/article/OPINION/20071031/286028/

21 :デフォルトの名無しさん:2014/12/21(日) 01:02:58.17 ID:1EJiFivb.net
天丼キター!でもその天丼腐ってる!!

22 :デフォルトの名無しさん:2014/12/21(日) 01:39:44.90 ID:t1x8P14S.net
おいどうしたキチガイ?
WebProgみたいに恥ずかしい連投しろよ?

23 :デフォルトの名無しさん:2014/12/21(日) 10:29:32.06 ID:a7slx30o.net
コメントについて、# 記号があまり使われていないのは
何か理由があるのですか?

24 :デフォルトの名無しさん:2014/12/21(日) 12:46:31.09 ID:oet6k+Aq.net
テンプレにも当てはまらないZenCartに関する質問なんですが、完全に手詰まりになってしまったため、恥を忍んでここに質問させていただきます。

長くなりますが、最後まで読んでいただき、解決策を教えていただければと思います。

スレ違いかもしれないのも、厚かましいお願いであることも重々承知してますが、何卒みなさまのお力をお借りできればと思います。
スレ違いの場合は誘導していただけると助かります。

同じ質問をZenCart本家のBBS、そして日本のBBSにも投稿しました。
ただ日本のBBSは過疎ってますし、本家の方でも3年たっても解決されてません。

PHPが読める人にはなんてことない質問だと思うんですが、私にはどうやっても解決できませんでした。

私が日本の質問BBSにした質問は→です。 http://zen-cart.jp/bbs/viewtopic.php?f=11&t=6174
本家アメリカで解決されてない質問は→です。 http://www.zen-cart.com/showthread.php?167463-Multiple-Shipping-Zones-Rate-Module-Shipping-Method-Choosing&p=955645#post955645

ZenCartをご存知であれば上に書いた質問内容でわかっていただけけると思うのですが、私なりの説明というか、解説をかかせていただきます。

25 :デフォルトの名無しさん:2014/12/21(日) 12:47:09.85 ID:oet6k+Aq.net
(続きです)ZenCartは、カートに商品を入れる→配送方法を選択して送料を決める→カートの商品と送料を合計するという流れです。
送料はshippingモジュールというPHPファイルで決定していて、プラグインを適用すると、デフォルトで入っているzone_rates.phpのクローンを作ることができます。
zone_ratesとは国別送料のことなんですが、クローンをつくることで、デフォルトの状態では1つしか設定できなかった国別送料の選択肢を増やせるのです。
ちなみにオリジナルの「zone_rates.php」に加え「zone_rates_1.php」から「zone_rates_4.php」というかたちで4つ追加できます。
私の意図としてはEMS、書留、普通から選んでもらおうとしたのです。

ここまでは何てことない作業でした。吐き出す文字や、それぞれの送料の設定も何の問題もなくできました。

問題はこのあとで、いざカートで送料を適用しようとすると、クローンで作成した送料が合計金額に反映されません。
クローンで作成したどれを選択しても、オリジナルであるzone_rates.phpで決定した金額が合計されてしまうのです。
試しに送料の選択肢にデフォルトで入っている固定送料を選んでみたのですが、この場合はうまく反映されます。
つまり、
「デフォルトで入っている他の送料のPHPファイル」+「オリジナルのzone_rates.php」の組み合わせ→○問題なし。どちらを選んでもきちんと合計に反映される。
「オリジナルのzone_rates.php」+「クローンであるzone_rates_#.php」→×クローンのどれを選択しても「オリジナルのzone_rates.php」での送料が合計に反映される。
「デフォルトで入っている他の送料のPHPファイル」+「オリジナルのzone_rates.php」+「クローンであるzone_rates_#.php」→×デフォルト分とオリジナルは反映されるけど、クローン分は選択できても反映されない。

ここからは推測です。

26 :デフォルトの名無しさん:2014/12/21(日) 12:47:46.71 ID:oet6k+Aq.net
(続きです)「選択はできる」ので、送料自体は問題なく決定されているのだと思います。ということは、次の「合計する」というステップへ情報が伝わっていないのだろうと推測しました。

ZenCartにはorder_totalというモジュールがあります。ということは、この中のot_sub_total.phpやot_total.phpへ送料が伝わっていないのだと思います。
デフォルトで入っているものだとOKということは、合計へ引き渡す範囲が決まっていて、クローンはその範囲から漏れているのでは?という予想です。
が、私はPHPファイルが読めないので、ここで手詰まりになってしまいました。

以上です。


よろしくお願いします。

27 :デフォルトの名無しさん:2014/12/21(日) 13:08:19.95 ID:FEt3ctqx.net
一部動いてるんだから、設定は間違ってないはずだと思い込んでいるように推測します。
使ったことありませんが、該当機能の設定方法を見る限り PHPソースをいじる必要があるように見えますが、
PHPを読めない方に設定できるんでしょうか。

28 :デフォルトの名無しさん:2014/12/21(日) 13:49:14.71 ID:Mymy/rEu.net
ZenCartのフォーラムへの投稿が「2014年12月21日(日) 7:00am」 だから
レスつくまで少しは待つべき。

関連あるかわからないが、この作業はしたのかな。
http://zen-cart.jp/faq/v130x/02.html

モジュールの設定について
デフォルトではZONES SHIPPING MODULESは1つしか入りません。
この制限はincludes/ modules/ shipping/ zones.phpを設定することにより
簡単に変更することが出来ます。地域を決める $this->num_zones.を修正して下さい。

29 :デフォルトの名無しさん:2014/12/21(日) 14:20:54.74 ID:KalIwj+0.net
山田祥寛(よしひろ)、翔泳社
10日でおぼえる PHP 入門教室、第4版、2012

この本に、PHPの文法の解説が、70ページある。
プログラム経験があるなら、10日で一通りできる

プログラム経験がないなら、アンクの絵本シリーズのような、
もっと簡単そうな本を探して読む

30 :デフォルトの名無しさん:2014/12/21(日) 14:30:54.67 ID:1u8zO5/f.net
JavascriptとPHPだとPHPが熱いか?

31 :デフォルトの名無しさん:2014/12/21(日) 14:53:11.45 ID:1u8zO5/f.net
まあ、そもそも両者は目的が違うから対等に比較されるものじゃないな
自分で言っといてすまんがw

32 :デフォルトの名無しさん:2014/12/21(日) 15:26:44.50 ID:AhclniWF.net
webではphpがダントツ
ブラヴではjavascripしかないからな

33 :デフォルトの名無しさん:2014/12/21(日) 16:31:45.88 ID:1EJiFivb.net
>>23
単にC系のほうに馴染みがある人が多かっただけじゃないかな。

34 :デフォルトの名無しさん:2014/12/21(日) 16:34:59.00 ID:KalIwj+0.net
zone_rates_1〜4.php のソースコードを見て、
送料を表す変数を探す
たぶん、最後の方にあるはず

PHPでは、$変数名で、変数を表す。
送料は、delivery fee,Shipping charges などだから、
$delFee,$sCharg などの送料を表す、それっぽい変数を探す

print('aho ' . $delFee);
そして、print文で表示する

'aho 'はシングルクォーテーションで囲むことで、
'aho 'という文字列を表す
.(ドット)は前後の文字列を連結する(幾つでも連結できる)

例えば、$delFeeに500が入っているなら、
'aho 500'と表示される
(ahoは目印のために入れただけで、意味はない)

ソースコードにはコメント部以外は、半角記号英数字だけを使う
コメントは、1行・複数行コメントの2種類ある
//行末までコメント
/*
複数行コメント
*/

とにかく、あちこちにprint文を入れて、様々な変数を表示してみる
(ただし、ファイルのバックアップを取っておくこと!)
または、debuggerでデバッグして、変数をwatchしたらいい

35 :デフォルトの名無しさん:2014/12/21(日) 19:08:30.21 ID:oet6k+Aq.net
24です。
ボロカスに叩かれるのを覚悟していたんですが、いろいろな方法を指示していただき本当にありがとうございます。
土曜の朝からこのスレ書いた時まで完徹してまして、スレ投稿のあと寝てました。
ご指示いただいた方法を今から全て試してみます。必ず報告しに戻ってきます。
とりあえずお礼まで。
本当にありがとうございました。

36 :デフォルトの名無しさん:2014/12/21(日) 21:23:51.25 ID:sVW6DMzp.net
>>33
ありがとうございます。納得できました。
たしかにC言語のコメントには、# 記号はないみたいですね。
逆に、bashとかは、# 記号がコメントなのですね。

37 :デフォルトの名無しさん:2014/12/21(日) 22:43:35.23 ID:1u8zO5/f.net
#はCではプリプロセッサ指令だね

38 :デフォルトの名無しさん:2014/12/22(月) 00:18:59.08 ID:sKZl+BZG.net
>>36
bashもそうだし、cgiってことでperlの顔色を伺ったのかもしんない

39 :デフォルトの名無しさん:2014/12/22(月) 00:39:06.18 ID:WMfywHK2.net
>>38
最初のPHPはPerlのラッパー
その名残

40 :デフォルトの名無しさん:2014/12/22(月) 02:03:44.65 ID:sKZl+BZG.net
あ、そうなんだ。
まだPersonal Home Pageだったころ?

41 :デフォルトの名無しさん:2014/12/22(月) 12:00:56.95 ID:ecTC67Vf.net
>>1 乱立すんなカス

42 :デフォルトの名無しさん:2014/12/22(月) 12:13:10.07 ID:+SA86za8.net
乱立って、初のまともなスレじゃん。
Rubyに言えよ。

43 :デフォルトの名無しさん:2014/12/22(月) 13:02:54.64 ID:yqQU7aar.net
なんか、たとえば$aという変数を表示するコードを書くときに

<?php
$a = 10;
print "a = $a";
?>

でいいとか本に書いてあるけど、これ嘘だよね?
少なくとも自分の環境では普通に
a = $a
って表示されるだけなんだがw

<?php
$a = 10;
print "a = " . $a;
?>

が正解だよね?
それとも環境依存??

44 :デフォルトの名無しさん:2014/12/22(月) 13:07:04.68 ID:+SA86za8.net
a = $aって表示されるとしたらそれがおかしい。
シングルコーテーションで囲ってるんじゃねーの?

45 :デフォルトの名無しさん:2014/12/22(月) 13:13:15.85 ID:MqOxtloe.net
シングルじゃなくダブルなら表示されるはず
. でもいいし "${a}" でもいい

46 :デフォルトの名無しさん:2014/12/22(月) 13:17:51.92 ID:yqQU7aar.net
>>44
>>45
ご推察のとおり、シングルになっておりましたw
>>43に書いたとおりソースをダブルで書きなおしたらちゃんとドットで連結した時と同じ結果が得られました
おさわがせしました。。
そして、自分が打ち間違ってるだけなくせに嘘つきとか言っちゃったことを謝ります

47 :デフォルトの名無しさん:2014/12/22(月) 23:26:25.24 ID:kacc1ndz.net
リモートサーバの関数を実行できるようにしたいんだけどどうにかしてできない?

48 :デフォルトの名無しさん:2014/12/23(火) 02:42:54.75 ID:ddGJ/f4O.net
if (function_exists($_GET['cmd'])) {
echo $_GET['cmd']();
}

的なバックドア仕掛けるんじゃだめなんか

49 :デフォルトの名無しさん:2014/12/23(火) 10:11:21.41 ID:BQHHJ9UZ.net
>>48
$_GET['cmd']()
ってなに?関数?

50 :デフォルトの名無しさん:2014/12/23(火) 10:20:04.07 ID:0dSPy4ke.net
>>49
http://php.net/manual/ja/functions.variable-functions.php


xxxx.php?cmd=phpinfo ってアクセスすると phpinfo()の結果が丸見えになるわけ。

51 :デフォルトの名無しさん:2014/12/23(火) 10:22:44.86 ID:F5SlaueO.net
>>47
file_get_contents でファイルを取得
preg_match で関数部分を抜き出し
eval で実行

http://php.net/manual/ja/function.file-get-contents.php
http://php.net/manual/ja/function.preg-match.php
http://php.net/manual/ja/function.eval.php

52 :デフォルトの名無しさん:2014/12/23(火) 11:55:22.77 ID:9pGdcD+X.net
色々とありがとう
だけど少し質問修正させてくれ
サーバにある機能をクライアント側で関数の形で実行っていうのは可能?
クライアント側では関数を組んだりせずに

53 :デフォルトの名無しさん:2014/12/23(火) 12:11:30.70 ID:LCyd09nO.net
そういった機能を作るのがプログラム言語でしょ。
意味が分からないけどサーバにある機能って何を指してるの?

54 :デフォルトの名無しさん:2014/12/23(火) 12:23:25.77 ID:T5aqpKIB.net
WebServiceとかRestFullとか

55 :デフォルトの名無しさん:2014/12/23(火) 12:25:15.02 ID:mWVcP1k8.net
>>52
できるかわからんが、「例3 HTTP経由の include」ってこと?

http://php.net/manual/ja/function.include.php

56 :デフォルトの名無しさん:2014/12/23(火) 13:02:30.47 ID:9pGdcD+X.net
>>53
データベースの値を取得したりとか
そういうのをサーバで実行して結果だけクライアントで受け取りたい

>>54
調べてみるよ
ありがとう

>>55
これでHTTP側の関数が実行できれば完璧

57 :デフォルトの名無しさん:2014/12/23(火) 17:00:44.83 ID:B6GcHRDx.net
>>56
それって普通のHTTPアクセスでいいんじゃ?

58 :デフォルトの名無しさん:2014/12/23(火) 19:56:07.22 ID:9pGdcD+X.net
>>57
例えばサーバにgetData()って関数が有ったとして
クライアントからそのままgetData()で呼び出して返却値もそのまま受け取りたいんだ
HTTPアクセスでできたっけ?

59 :デフォルトの名無しさん:2014/12/23(火) 20:18:34.57 ID:LCyd09nO.net
>>58
>>48みたいな感じで仕組みを作ればできる。
当然戻り値をechoとかで出力するとかは作る必要はある。
逆に言うとデフォルトでそんな仕組みはない。

60 :デフォルトの名無しさん:2014/12/23(火) 20:59:30.45 ID:XRDIMzuH.net
getData() 関数はサーバーのコマンドじゃなくphpの関数?
クライアントってのがブラウザを指してるの?

61 :デフォルトの名無しさん:2014/12/23(火) 21:05:36.45 ID:T5aqpKIB.net
いやだからWebServiceが要求そのままの仕組みなんだってば
周りの細かいことはすでに組み込まれてるから
本当に関数呼ぶ感覚で使えるよ

62 :デフォルトの名無しさん:2014/12/23(火) 21:28:57.22 ID:9pGdcD+X.net
>>59
echoで出力じゃなくて例えば関数で配列が返却されるなら配列のまま受け取りたい

>>60
getData()はサーバーのコマンド
ブラウザでgetData()を実行したら、サーバーのgetData()が実行されて、その結果を受け取るっていうのがやりたい

>>61
すまんがWebServiceで検索かけても普通のウェブ上でのサービスばっかり出てきて分からない
OAuthとかSCAとかSOAPとかが載ってるページも出てきたけど、これの事?

63 :デフォルトの名無しさん:2014/12/23(火) 21:35:00.41 ID:XRDIMzuH.net
>>62
配列が欲しいならjsonで出力するphpを用意してブラウザからajaxでアクセスすればいい
もちろんjavascriptが必要になる

危険なコマンドが実行されないように注意ね

64 :デフォルトの名無しさん:2014/12/23(火) 23:59:10.28 ID:ObZUQWf8.net
>>62
そうかな。
WebServiceで検索した最初のページを貼っておくね。

http://ja.wikipedia.org/wiki/Web%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9

65 :デフォルトの名無しさん:2014/12/24(水) 07:59:57.86 ID:B0qw1tPJ.net
RESTがいいけど、PHP5ならSOAPServerもSOAPClientもあるし、
Serverちゃんと作れば、
Clientはサーバー指定と関数指定の2行で済むから。

66 :デフォルトの名無しさん:2014/12/24(水) 13:28:51.88 ID:1Yhfz+p2.net
>>63-65
ありがとう!
まだ簡単なテスト関数だけどおかげさまでなんとかできたよ
長々とすまなかった

67 :デフォルトの名無しさん:2014/12/29(月) 01:43:32.37 ID:R4vXzYY0.net
配列から取り出して、1つづつ変数に格納する方法が
わからず困っています。

ID  名前 権限
100  甲   A
101  乙   B
102  丙   C

のようなデータを入力させて、それを配列として格納して
insert文でデータベースに登録したいです。

print文で表示する場合には、単にforeach等で表示させれば
できるのですが、insert文にするために変数化する必要があると
考えているのですが、登録される行数が動的であるため、うまく
できずに困っています。

一般的に上記のような複数行のデータを配列からでーたべーすに
登録する場合、どのように処理するものなのでしょうか。

アドバイスください。

68 :デフォルトの名無しさん:2014/12/29(月) 02:20:45.64 ID:7wZLdfk+.net
自分は配列にデータ入れてそれ投げたら自動でinsert文作るような関数作ってる。
配列の内容は

item[0] = [100, "甲", "A"];
2行目以降省略

みたいな。
カラム名に関しては別に引数持たせるか、上の配列内でキーにしてもいい。

行数が可変なだけなら大した手間じゃないよ。
insert文を理解していれば、要素を入れる関数作る程度なら簡単にできる。



> print文で表示する場合には、単にforeach等で表示させれば
確認するだけならprint_rもしくはvar_dumpのほうが楽

69 :デフォルトの名無しさん:2014/12/29(月) 02:25:03.92 ID:lGwsEYQC.net
http://www.wash-house.jp/shop/fukuoka/ookawaten.html

このサイトのすべての監視カメラの映像をwebページに出して見たいんだけど、どうしたらいいですか?

何勉強したらできるようになりますか?

お願いします。

70 :デフォルトの名無しさん:2014/12/29(月) 02:34:03.22 ID:lGwsEYQC.net
間違えました

71 :デフォルトの名無しさん:2014/12/29(月) 04:37:02.38 ID:06vbA5h8.net
>>67
普通はこういう流れ。
prepare
foreach
 bind, execute

>>68
> 自分は配列にデータ入れてそれ投げたら自動でinsert文作るような関数作ってる。
詳細書いてないからわからんが、だめな予感がする。
ちょっとしたアプリだから大丈夫だろ、とか、ちゃんとエスケープしてるから問題ないとか戯言を書かないでくださいね。

72 :デフォルトの名無しさん:2014/12/29(月) 08:40:39.27 ID:7wZLdfk+.net
>>71
配列から普通のinsert文が作れるんなら、プリペアステートメント使ったのも少し考えれば作れるだろ。
予感だけでダメとか言われても……。

73 :デフォルトの名無しさん:2014/12/29(月) 10:36:11.39 ID:jAdn2Fwj.net
ちゃんとエスケープ+αしてればprepare使わなくても問題ないんじゃないの?

74 :67:2014/12/29(月) 10:41:06.07 ID:R4vXzYY0.net
>>68 >>71
回答いただきありがとうございます。質問後、考えて書いていたのですが、

〜DB接続処理※省略〜
$sql='SELECT namae FROM test_tbl Where code=?';
$stmt=$dbh->prepare($sql);
$data[]=$code;
$stmt->execute($data);
$dbh=null;
$record=$stmt->fetch(PDO::FETCH_ASSOC);
if($record==false)
{
print 'データなし<br>';;
}else {
foreach ($record as $key => $value){ ★     
print $key.'=>'.$value.'<br />';      ★
    }
}
?>
この★のところで、取り出したデータをinsert文で使うために
printではなく、foreachで処理して$namae1・・・namae10のように変数にして
利用したいという趣旨でした。(仮に10行だったら)
>>68さんの考え方だと、配列から直接取り出してそれをinsert文の
引数にするのですよね?以下のようなSQLを考えていて
$sql='INSERT INTO test_db2(code,namae,kengen) VALUES(?,?,?)';
$stmt=$dbh->prepare($sql);
$data[]=$code;
$data[]=$namae;
$data[]=$kengen;
その場合、$code等の変数にどうやって配列中の複数行を格納して実行するのかがわかりませんでした。
拙い質問で申し訳ありませんが、引き続きアドバイスお願いします。

75 :デフォルトの名無しさん:2014/12/29(月) 10:59:22.37 ID:hl22pesi.net
$stmt->bindParam(1, $code);
$stmt->bindParam(2, $namae);
$stmt->bindParam(3, $kengen);

じゃないのかな

76 :デフォルトの名無しさん:2014/12/29(月) 11:02:01.89 ID:hl22pesi.net
って
>配列中の複数行を格納して実行
てのがよくわからんけど、パラメタ変えつつ、同じ$stmt->execute()を複数回実行するんだけど。
ってそういう話でもなく?

77 :デフォルトの名無しさん:2014/12/29(月) 11:49:22.78 ID:R4vXzYY0.net
>>76 回答ありがとうございます
ID  名前 権限
100  甲   A
101  乙   B
102  丙   C

をselect文で取り出して配列に入れているので配列の中は、

array[100,甲,A,101,乙,B,102,丙,C]

となっている認識です。
この1つ1つを引数として、それぞれ格納しないと

$data[]=$code;
$data[]=$namae;
$data[]=$kengen;

という処理ができないのかと。whileでひとつづつ
取り出して変数に入れるにはnull値があったら
ズレてしまうしとか悩んでいました。

>てのがよくわからんけど、パラメタ変えつつ、同じ$stmt->execute()を複数回実行
>するんだけど。ってそういう話でもなく?

仰っているとおりだと思います。ただ、配列から取り出した値に処理を施してから
SQLを実行したいので、なんとか変数に一つづつ入れたいと考えています。

78 :デフォルトの名無しさん:2014/12/29(月) 12:38:30.54 ID:o0PJ9v60.net
>>77
ざっと読んだけど色々おかしい。
処理をきちんと分けたほうがいい。

・データを取得して配列化する処理
・その配列をforeachで回してinsertする処理

つーか二次元配列を理解できてるのか疑問なんだが。

>をselect文で取り出して配列に入れているので配列の中は、
>array[100,甲,A,101,乙,B,102,丙,C]
>となっている認識です。

これだと一次元配列になっている。こうじゃなくて、
二次元配列にしないとうまくいかないと思う。
二次元配列にしてからforeachで回すようにすればいい。

79 :デフォルトの名無しさん:2014/12/29(月) 14:32:04.55 ID:06vbA5h8.net
>>72 >>73
少なくとも今回のような初心者に insert文を組み立てる手法を提示すべきじゃないってだけの話なので。
知らない人こそprepareだよ。

80 :デフォルトの名無しさん:2014/12/30(火) 00:16:16.88 ID:YKr5cL9m.net
>>74
そこまで書けるなら考え方は簡単。
insert文はこういう書き方ができる。

values(?,?,?),(?,?,?)

ようするにvalues以降のカッコはカンマで区切ることにより複数行データを入れられる。
自分が作っている関数では、多重配列を使用することにより(?,?,?)に当たる文字列を必要分だけ自動的に生成するようにしている。

ここから蛇足。
bindParamはちょっと扱い方難しいから、まずはbindValue使ってバインドしたほうがいい。
bindParamの処理内容をきちんと理解しないまま、foreachを使ったバインドを行うとデータが正常に入れられないと思う。

81 :デフォルトの名無しさん:2014/12/30(火) 00:35:49.23 ID:YKr5cL9m.net
>>77
> array[100,甲,A,101,乙,B,102,丙,C]
意識してやらない限りならない。

まずFETCH_ASSOCは連想配列で帰ってくるので、

$data["ID"] = 100;

みたいな感じでデータが入るから。
仮にnullが入っていたとしても、

$data["名前"] = null;

みたいな形になる(PHPはいい加減だから本当にnullかどうか怪しいけど)
またfetchはselect文で該当する全件のデータが返ってくるわけではない。あくまで一行分が返ってくる。
だから全件分のデータを取得するときはこんな感じにならないとおかしい。

while($record=$stmt->fetch(PDO::FETCH_ASSOC)) {
(print処理)
}

つまり意図的にnullを除外したような処理をしないと、一つずれるようなことはないはず。

82 :デフォルトの名無しさん:2014/12/30(火) 00:40:11.34 ID:YKr5cL9m.net
>>79
いやprepareにしろinsert文は組み立てないといけないでしょ。
それを自分の手で書くか自動で生成するかの違いだけ。

83 :デフォルトの名無しさん:2014/12/30(火) 04:04:00.46 ID:FYXMJs1o.net
文字列のx番目に新しい文字を加えたいのですが、
現在はこのようにしてます

$str = 'abcdefg';
$char = '&';
preg_replace('/(.{3})(.*)/', '$1'.$char.'$2', $str); //"abc&defg"

このやり方以外にもっと高速で動作する方法はありますか?

84 :デフォルトの名無しさん:2014/12/30(火) 08:22:23.54 ID:wp2qouYx.net
普通にsubstrとかで左からx-1文字とx文字目以降の
文字列作って3つを連結するとか

85 :デフォルトの名無しさん:2014/12/30(火) 17:56:38.58 ID:FYXMJs1o.net
>>84
ありがとうございます
正規表現は重いと聞いたのでそのやり方にしてみます

86 :デフォルトの名無しさん:2014/12/30(火) 23:03:06.86 ID:YVsWPPTF.net
substr_replace($str,$char,3,0);

87 :デフォルトの名無しさん:2014/12/31(水) 23:22:18.32 ID:tqgvohnx.net
abしたら25req/s程度しか出なかった
こんなもんなの?

88 :67:2015/01/01(木) 03:32:54.71 ID:M6g5xnO9.net
>>78 >>80-81
返信が遅くなりました。
アドバイスありがとうございます。
>>78氏のおっしゃるように配列に対する理解が不足しておりました。
>>80-81氏のアドバイスを受けてここ2日ほど色々試していました。
結果、
while($record=$stmt->fetch(PDO::FETCH_ASSOC))
{ $record2[]=$record;※この処理で、行単位で複数の列情報が格納される
}
⇒ここの処理で、SQL実行結果を連想配列に一旦すべて格納する。
if($record2==false)
{ print 'データなし<br>';;
}else {
for ($i = 0; $i < count($record2); $i++) {
$test[$i] = $record[$i]["code"];
$test[$i] = $record[$i]["namae"];
$test[$i] = $record[$i]["kengen"];
}
⇒for文でiを添え字にすることで、配列から単一の変数として
取り出して、後続処理で利用する。
というやり方にたどりつきました。

ただ、色々考えて自分なりに思ったことなのですが、
@配列の情報をPGMの中ですべて、$xxxのように一意に変数化することはあまり意味がなく
foreachやwhileの中で処理することとなる。
(iの添字を振っても、結局どれが利用したものかは特定できないため。計算処理なら)

A特定の情報を使用したのであれば、SQLの時点で限定するよう実行して扱うべき。

という結論に至りました。
まだ不十分なところもありますが、一旦自分の中で整理しました。
色々とありがとうございました。

89 :デフォルトの名無しさん:2015/01/01(木) 15:57:08.54 ID:hhR/vAwM.net
単純なphpページ作って
ab ベンチ取ったら20req/s程度だったんですが
性能稼げるようにするにはどんな工夫がありますか?
静的コンテンツはき出ししかないのかなあ

90 :デフォルトの名無しさん:2015/01/01(木) 23:02:26.26 ID:S3vOoaTm.net
>>89
>>3

91 :デフォルトの名無しさん:2015/01/02(金) 00:07:50.63 ID:8He3Adur.net
>>89
APC

92 :片山博文MZ ◆T6xkBnTXz7B0 :2015/01/03(土) 19:20:41.04 ID:XgnEofgF.net
システムの更新情報を設定ファイルに埋め込むのをやめた。
いちいち設定ファイルをいじるのは素人のやることだ。全部、データベースに突っ込むぞ。
データベースの問い合わせのWHERE句とVALUES句をハッシュから動的に作成するようにした。
これでシステムの見通しが良くなって来た。うまく行きそうだ。

93 :デフォルトの名無しさん:2015/01/03(土) 19:23:45.51 ID:XgnEofgF.net
あげ

94 :片山博文MZ ◆T6xkBnTXz7B0 :2015/01/03(土) 19:28:12.00 ID:XgnEofgF.net
SSLをサポートしないとまずい。無料でセキュリティ証明書が取得できないものか?

95 :デフォルトの名無しさん:2015/01/03(土) 20:52:37.77 ID:UPnIfzlx.net
4月から Let's Encrypt が始まるっぽいからそれまで待てば

96 :デフォルトの名無しさん:2015/01/04(日) 11:17:56.12 ID:nCB20Egv.net
ウェブプロキシリストを作ってそのリストからランダムで特定のサイトにアクセスしていく
スクリプトってどういうふうに掛けばいいんでしょうか。

97 :デフォルトの名無しさん:2015/01/05(月) 10:19:20.32 ID:PdsKJiUl.net
PHPUnitでテストを行いたいのですが、テストクラスのファイルは
どこに置くのが適切なのでしょうか?

http://example.com/bbs/
についてテストを書く場合には、
http://example.com/test/
等にクラスファイルを置くのでしょうか?

それとも、非公開領域に任意のtestディレクトリを作成して
設置するのがよいのでしょうか?
あるいは、pearディレクトリ中に置くのでしょうか?
よろしくお願いします。

98 :デフォルトの名無しさん:2015/01/05(月) 11:02:57.59 ID:qZMdcuuC.net
早く初心者を抜け出せといわれたんですけど
何が出来れば中級者なんでしょうか?
聞いても「だから初心者なんだよ」とか言われて意味がわかりません。
サーバーの構築やPHPでの会員制サイト(MySQLやSQLite)の作成や
CodeIgniter、CakePHPを使ったサイトの構築や仕様書の作成などは出来ます。

99 :デフォルトの名無しさん:2015/01/05(月) 11:24:01.27 ID:ghnlxDQD.net
>>98
こういうのを聞かずに自分で出来ること。

100 :デフォルトの名無しさん:2015/01/05(月) 11:27:41.86 ID:sELD1jQ+.net
まあ質問じゃなくて検索で済めば自力かな

101 :デフォルトの名無しさん:2015/01/05(月) 11:50:02.40 ID:E44mn9F+.net
>>98
それだけできりゃすでに中級だろ

102 :デフォルトの名無しさん:2015/01/05(月) 17:39:11.61 ID:9dFgiezF.net
ググってブログに書かれた設定の切れ端をコピーしまくるだけかも知れない

103 :デフォルトの名無しさん:2015/01/05(月) 20:58:34.67 ID:KQNQflUf.net
>>97
なにおめぇ、聞いてるふりしてテストしてんだよ

104 :デフォルトの名無しさん:2015/01/06(火) 06:12:46.10 ID:cQdQGJ7Z.net
文字列を10進数の整数として扱いたい場合、
(int)でキャストするのとintval()で変換するのとでは
どちらが高速ですか?

また、文字列が予期せぬ文字列の場合はどちらが安全でしょうか?

105 :デフォルトの名無しさん:2015/01/06(火) 06:40:07.35 ID:PpNfwllU.net
>>88
元日からおつかれさん。

その処理ならfetchAllにすればいいし、そのfor分の内容だと、$testにはkengenカラムの内容しか残らないよ。
ただまぁ、今からいろいろ勉強していくんだろうからがんばって。

106 :デフォルトの名無しさん:2015/01/06(火) 06:42:57.71 ID:7Rp7KoRa.net
PHPマニュアルの文字列
ttp://php.net/manual/ja/language.types.string.php#language.types.string.conversion

文字列の数値への変換では、
文字列の最初の部分により、値が決まります。
文字列が、有効な数値データから始まる場合、この値が使用されます。
その他の場合、 値は 0 (ゼロ) となります

$foo = 1 + "bob3"; → integer 1
$foo = "10.0 pigs " + 1; → integer 11

これを読むと、文字列から数値への変換は、かなり難しそう

107 :デフォルトの名無しさん:2015/01/06(火) 06:49:34.27 ID:PpNfwllU.net
難しいも何も、キャストすればいいだけだよ。
予期せぬ文字列の場合の安全性については、何をもって安全とするのかを定義しないと話ができない。

108 :デフォルトの名無しさん:2015/01/06(火) 07:53:10.97 ID:7Rp7KoRa.net
PHPマニュアルには、こう書いてあったから、
$foo = 1 + "-1.3e3"; → float -1299

これでも、数字と見なされるのか?
$foo = 1 + "-1.3e3 pig"; → float -1299

"-1.3e3 pig" こういう文字列は、
数字と解釈されたら、まずいのでは?

109 :デフォルトの名無しさん:2015/01/06(火) 08:24:58.82 ID:7Rp7KoRa.net
最初に文字列が整数なら、+- と数字のみで構成されているか、
チェックした方がよいかも

文字列に、数字と解釈できない文字が混じっているのを、
チェックする関数はないの?

110 :デフォルトの名無しさん:2015/01/06(火) 12:05:44.16 ID:LqETAgVj.net
ctype_digit : すべての文字が 10 進数字かどうか 、ただし整数値を渡したときの挙動がキモイ

is_numeric : 2,8,16進指数表記を含むとあるけど、 2進は通らないバグ

111 :デフォルトの名無しさん:2015/01/06(火) 13:55:55.44 ID:JhfgK5cE.net
正規表現使ったら良いと思う

112 :デフォルトの名無しさん:2015/01/06(火) 23:45:47.13 ID:E9dfJ9jF.net
>>111
PHPだとそれが鉄板だよな

113 :デフォルトの名無しさん:2015/01/07(水) 01:33:34.97 ID:IbCBqkxU.net
Pythonには、String.isdecimal(),
isdigit(),isnumeric()の3つある

ただし、Unicodeだから、全角の数字も真となる

114 :デフォルトの名無しさん:2015/01/07(水) 08:36:01.80 ID:9PuBqIXH.net
>2進は通らないバグ
先頭に0bってちゃんと入れてるの?

115 :デフォルトの名無しさん:2015/01/07(水) 10:43:59.47 ID:j5H0YWRt.net
>>114
やってみればわかるよ。

116 :デフォルトの名無しさん:2015/01/07(水) 11:36:54.91 ID:l7T8BUFQ.net
マニュアルの例がアホ過ぎるなw

117 :デフォルトの名無しさん:2015/01/07(水) 13:40:44.07 ID:9tNCaFPd.net
どちらかというとis_numericの16進文字列サポートをはずす方向らしい。

118 :デフォルトの名無しさん:2015/01/07(水) 14:40:40.61 ID:j5H0YWRt.net
対応しないなら、まずマニュアル直せって話だよな

119 :デフォルトの名無しさん:2015/01/07(水) 15:30:59.22 ID:9tNCaFPd.net
> 数値形式の文字列は以下の要素から なります。
> (オプションの)符号、任意の数の数字、(オプションの)小数部、 そして(オプションの)指数部。

基数を指定する指示子は許されていないわけだから、
そもそも16進文字列を受け入れていることがおかしいね。
2進が通らないバグではなく、16進が通るバグ。
こういう場合、8進はなんともいえないところ。

マニュアルの例に16進文字列がないのは、アホ過ぎるのではなく、そういうことなんだろう。

120 :デフォルトの名無しさん:2015/01/07(水) 15:39:28.20 ID:l7T8BUFQ.net
リテラルの数値を何通りも書くことに何の意味があるんだよ

121 :デフォルトの名無しさん:2015/01/07(水) 15:46:49.05 ID:j5H0YWRt.net
リテラルじゃなくて文字列表現の話だろ?

122 :デフォルトの名無しさん:2015/01/07(水) 16:14:12.14 ID:l7T8BUFQ.net
だからさ、マニュアルの例のほとんどが文字列になってないじゃない。

123 :デフォルトの名無しさん:2015/01/07(水) 16:38:34.25 ID:j5H0YWRt.net
二進表記の件は、
リテラルの説明であって、直前に書いてある数値形式の文字列とは関係ないよってことだよな。

124 :デフォルトの名無しさん:2015/01/07(水) 17:34:42.22 ID:LGPgLYfD.net
>>119
> 基数を指定する指示子は許されていないわけだから、
> そもそも16進文字列を受け入れていることがおかしいね。

"0x"付きの16進文字列は普通に使えるみたいだが。
$i = 1;
echo $i + "1337"; => 1338
echo $i + "0x539"; => 1338

だが、8進文字列と2進文字列は扱えないみたいだ。
echo $i + "02471"; => 2472
echo $i + "0b10100111001"; => 1

125 :デフォルトの名無しさん:2015/01/07(水) 17:38:51.62 ID:LGPgLYfD.net
てか、マニュアル見たら2進表記も通ってるじゃんか。

0b10100111001 => '1337' is numeric

126 :デフォルトの名無しさん:2015/01/07(水) 17:52:13.32 ID:j5H0YWRt.net
それ文字列じゃないんだってば

127 :デフォルトの名無しさん:2015/01/07(水) 17:55:21.36 ID:LGPgLYfD.net
ん?
>>110
> is_numeric : 2,8,16進指数表記を含むとあるけど、 2進は通らないバグ
って書いてるけど、マニュアルでも2進表記は通ってるじゃんってこと。

「2進文字列が通らないのがバグ」っていうことだったら、それはバグじゃないね。

128 :デフォルトの名無しさん:2015/01/07(水) 17:58:48.98 ID:9PuBqIXH.net
is_numericに渡せるのはmixedだったのか
なるほど

129 :デフォルトの名無しさん:2015/01/07(水) 18:04:48.59 ID:LGPgLYfD.net
ちなみにもうちょっとマニュアルを調べたら、文字列から数値への変換はstrtod()を使ってるらしい。
http://php.net/manual/ja/language.types.string.php#language.types.string.conversion
で、strtod()が"0x"付きの16進文字列をサポートしてるから、PHPでも使えると。

130 :デフォルトの名無しさん:2015/01/07(水) 19:43:53.93 ID:j5H0YWRt.net
マニュアルページは2進文字列が通るかのように読めて仕方ないけどそうじゃないからバグじゃないってことですよね。

131 :デフォルトの名無しさん:2015/01/08(木) 03:16:17.12 ID:7zZ3GvhP.net
>>130
そう。ドキュメントのバグとしてあがってる。

132 :デフォルトの名無しさん:2015/01/08(木) 03:16:53.96 ID:7zZ3GvhP.net
言い方を間違えた。最終的にドキュメントのバグということに落ち着いた。

133 :デフォルトの名無しさん:2015/01/08(木) 10:45:55.67 ID:UT9S8sQY.net
>>124
>>128
16進数に対応していて8進数には対応していないのは
PHPがCのstrtod()を使っていて、strtod()がそういう挙動だからってことか
勉強になりますわ

134 :デフォルトの名無しさん:2015/01/08(木) 10:46:23.29 ID:UT9S8sQY.net
>>128じゃなくて>>129だった

135 :デフォルトの名無しさん:2015/01/10(土) 11:27:04.88 ID:SgqLRCKh.net
>>97 についてわかる方がいましたら回答お願いします。

136 :デフォルトの名無しさん:2015/01/11(日) 01:44:30.10 ID:BkMuWsUG.net
htdocsの下じゃなきゃどこでもいいよ
>>97の例はhtdocsの下だからダメ

137 :デフォルトの名無しさん:2015/01/11(日) 10:35:04.35 ID:Mt8O1aM2.net
>>136
ありがとうございます!
htdocsより上の非公開領域に置くべきなんですね。

サイトのサブディレクトリに置くと一緒にバックアップできて
便利かなとも思いましたがそうではないのですね。
間違えるところでした。

138 :デフォルトの名無しさん:2015/01/11(日) 18:44:23.86 ID:xhQD8tHl.net
ファイルをダウンロードさせるスクリプトを書いてるんだけど
flush()とかob_flush()を使わないとどうなるの?

139 :デフォルトの名無しさん:2015/01/11(日) 20:49:34.10 ID:Ty6hZpJ5.net
>>137
一緒にバックアップできてかつ非公開であるようなディレクトリに配置すればいいじゃない。
たとえばこう。
project/
test/
conf/
public/ ←ここをdocrootにする

140 :デフォルトの名無しさん:2015/01/11(日) 20:50:04.75 ID:Ty6hZpJ5.net
インデント消えて恥ずかしい

141 :デフォルトの名無しさん:2015/01/11(日) 23:05:38.51 ID:wMEKGL8S.net
>>139
なるほど!
そのディレクトリ構成を参考にテストを試してみます。
ありがとうございました。

142 :デフォルトの名無しさん:2015/01/12(月) 00:52:04.22 ID:LRuE9Kur.net
今フレームワーク勉強してるんだけど
理解できない箇所があるから分かりやすく教えて
http://phpbook.e1blue.net/perfect/index7_Router.html
パ=フェクトPHPって参考書に載ってるソースコード

143 :デフォルトの名無しさん:2015/01/12(月) 10:18:39.08 ID:kNwzldD6.net
箇所ってどこ?
ソース無いじゃん
フレームワークごと覚えるしか無いでしょ

144 :デフォルトの名無しさん:2015/01/12(月) 16:21:48.89 ID:nuR9LKkd.net
xampp環境で外部PHPをexec()で実行したいのですが、動作しません
実行コマンドをコマンドプロンプトから直接叩くと動作しました
環境変数にPHPのパスは通しています
実行コマンドは↓です

exec( escapeshellcmd('php -q /path/public/index.php aaa bbb') );

pathとaaaとbbbは実際には異なる値です
どうしたら良いですか?

145 :デフォルトの名無しさん:2015/01/12(月) 16:40:18.19 ID:kNwzldD6.net
>>144
実行してるけど結果が見えないだけじゃね?
execの戻り値 echo してみて

146 :デフォルトの名無しさん:2015/01/12(月) 16:48:36.50 ID:nuR9LKkd.net
>>145
結果は何も出力されませんでした・・・。

実行が成功すると、CLIからの場合にログをとるようにしてるのですが、
そのログがとれてないのでexec()からindex.phpが動作してないように思えます。(コマンドプロンプトからだとログがとれている)

何か間違っているのでしょうか?

147 :デフォルトの名無しさん:2015/01/12(月) 18:57:55.56 ID:kNwzldD6.net
コマンドの最後に、 2>&1 つけたら何か変わる?

148 :144:2015/01/13(火) 00:13:20.45 ID:P334RWtp.net
144です
2chがダウンしてたようで返事できませんでした

>>147
あれから色々と以降錯誤した結果、
exec()ではなく↓のproc_open()で代用することが出来ました

proc_close(proc_open($cmd, $descriptorspec, $pipes, $cwd));

解答頂きありがとうございましたm(_ _)m

149 :デフォルトの名無しさん:2015/01/13(火) 08:22:27.18 ID:3BF1nqyk.net
>>2
あんな過疎板誰も行かないよ

150 :デフォルトの名無しさん:2015/01/14(水) 00:36:14.01 ID:QB8DK3Xn.net
>>144
php.iniで禁止してるというオチでは・・・

151 :デフォルトの名無しさん:2015/01/19(月) 11:05:26.48 ID:zLsmLsTD.net
PHP4からPHP5への過程で、コンストラクタが変更になった理由をお教えください。

PHP4だとJavaと同様にクラスの名前と同じ関数がコンストラクタになります。
PHP5からは、__construct()に変更されています。
これは、何か他の言語に影響されたとか、単に可読性の向上のためなのでしょうか?

152 :デフォルトの名無しさん:2015/01/19(月) 11:11:06.18 ID:LEYxxRT/.net
interfaceとか

153 :デフォルトの名無しさん:2015/01/19(月) 22:27:29.79 ID:XEb661i4.net
2015/02/02
⇒OK

cakePHPの正規表現でこの日付型文字列の入力のみOKとするには
どういうコードを書けば良いでしょうか?


2015/2/2
⇒NG

スレ違いで誘導されたのでこのスレで質問し直させて頂きます。

154 :デフォルトの名無しさん:2015/01/20(火) 00:36:36.39 ID:b0ejj+pJ.net
>>153
それは正規表現スレで聞くべきじゃないかな?

ただ、"0123/45/67"みたいなありえない日付の考慮や、うるう年とかもあるから
正規表現だけでは正確な検証は難しいと思う。checkdate()とか使って検証するといいよ

155 :デフォルトの名無しさん:2015/01/20(火) 00:38:27.85 ID:TFaESJ8a.net
>>154
ありがとうございます。
ベタですがあらゆるパターンを if で作りました。
やっぱり正規表現は万能では無いのですね。

156 :デフォルトの名無しさん:2015/01/20(火) 00:41:45.83 ID:b0ejj+pJ.net
>>155
そういうコードはやめておこう
簡易な正規表現でよければ '/[1-9][0-9]{3}\/[01][0-9]\/[0-3][0-9]/' でチェックできると思う(動作未確認)
ただ、さっきも言ったように正確な日付までは検証できないから別途検証処理を設けた方がいいよ

157 :デフォルトの名無しさん:2015/01/20(火) 00:45:38.27 ID:b0ejj+pJ.net
あ、先頭の^と末尾の$付け忘れた(けど、わかってくれると思う)

158 :デフォルトの名無しさん:2015/01/20(火) 04:47:03.26 ID:37je+qde.net
>>151
経緯はわかんないけど、親クラスのコンストラクタを明示的に記述しないと呼ばないPHPにとっては今のほうが楽だと思う

159 :デフォルトの名無しさん:2015/01/20(火) 18:59:33.55 ID:WGSJjkIS.net
変更っていうかそういう書き方も加わっただけなんだけどな
クラス名と同じの使いたきゃPHP5でも使えばいいんだぜ

160 :デフォルトの名無しさん:2015/01/20(火) 20:32:10.47 ID:RVmU1w+u.net
>>158
なるほど。
そのようなメリットがあるなら改良されて使いやすくなったんですね。

>>159
そういう考え方もあるのですね。好きな方を選択できる余地があると。
ある意味、便利といえば便利なのかも。

ご回答ありがとうございました。

161 :デフォルトの名無しさん:2015/01/20(火) 21:56:17.79 ID:m5nn7AIj.net
数字とピリオドのみOKとする正規表現を教えてください。

35.6 ⇒ OK


35aaa ⇒ NG

162 :デフォルトの名無しさん:2015/01/21(水) 00:02:46.77 ID:Z9HAEnNm.net
>>160
Javaでeclipseとかならクラス名変えたらコンストラクタ名も変えてくれるけど
PHPは2箇所変えなくちゃいけなくなるからね
コンストラクタ名はクラス名に依存してないほうがいい

163 :デフォルトの名無しさん:2015/01/21(水) 00:57:14.15 ID:KTQvxZK8.net
>>161
>数字とピリオドのみOKとする正規表現

/^[0-9\.]+$/

数字とピリオドだけで作られた文字列ならOKだが、ピリオドだけでもOKになる、それでもいいのか?

164 :デフォルトの名無しさん:2015/01/21(水) 03:04:39.32 ID:NmlppDOf.net
>>162
> Javaでeclipseとかならクラス名変えたらコンストラクタ名も変えてくれるけど
> PHPは2箇所変えなくちゃいけなくなるからね
IDEを持ち出すならPHPも1箇所でいいんだけど。

> コンストラクタ名はクラス名に依存してないほうがいい
Javaも多重継承ないんだからクラス名 = コンストラクタ名ってルールなくしてもよかったように思う

165 :デフォルトの名無しさん:2015/01/21(水) 12:25:07.68 ID:u8urlngR.net
>>163
サンキュー


数字が入っていなければNG
という判定処理も力付くで入れます。

166 :デフォルトの名無しさん:2015/01/21(水) 20:17:15.97 ID:KTQvxZK8.net
>>165
その辺の細かい仕様を最初から書いて欲しいんだよね
そうすれば正規表現一発で解決も出来ると思う

167 :デフォルトの名無しさん:2015/01/21(水) 20:58:50.40 ID:NmlppDOf.net
正の小数もしくは整数にマッチさせたいのかなと思わんでもないけど、詳細がわからんからね。

168 :デフォルトの名無しさん:2015/01/22(木) 00:22:00.66 ID:ILDcB4ZR.net
>>164
いやぁ、ぎゃくにコンストラクタ名=クラス名じゃだめな理由がわからん

169 :デフォルトの名無しさん:2015/01/22(木) 16:14:40.25 ID:OOXpmQrC.net
PHPはその歴史的理由から4→5のオブジェクト指向言語に生まれ変わる際に
コンストラクタを__constructで統一したんだよ
Javaでいうsuper()が存在しないから、子から親のコンストラクタを呼び出す際には親クラスを指定しないといけなかったわけ

170 :デフォルトの名無しさん:2015/01/22(木) 17:00:37.38 ID:4J0y7c4J.net
>>168
クラス名を記述する回数は少なければ少ないほどいいから。

171 :デフォルトの名無しさん:2015/01/23(金) 00:05:40.86 ID:RzdPlRZs.net
コンストラクタを強制するインターフェースじゃねーの

172 :デフォルトの名無しさん:2015/01/24(土) 17:03:34.73 ID:W3y8Uzfq.net
>>168
ファイル名、クラス名、コンストラクタ名の
三箇所も修正することを許容できるやつは
普段から同一ロジックのコピペとかやってそう

173 :デフォルトの名無しさん:2015/01/24(土) 19:21:07.81 ID:9VP09wad.net
ご教授ください!!!!!!
http://viper.2ch.net/test/read.cgi/news4vip/1422094784/l50

174 :デフォルトの名無しさん:2015/01/24(土) 19:28:04.65 ID:9VP09wad.net
>>173
答えなくてよいですお、失礼

175 :デフォルトの名無しさん:2015/01/25(日) 00:18:02.84 ID:bEvqkUb8.net
2chにレスするヒマはあるけど教授するほどヒマじゃない

176 :デフォルトの名無しさん:2015/01/25(日) 10:36:14.72 ID:HdNUsAFb.net
>>172
IDEにリファクタリングが無ければ諦める、かなw

177 :デフォルトの名無しさん:2015/01/25(日) 23:32:57.88 ID:4pKlUm4L.net
<?= $_POST["text"] ?>
みたいに<?= ?>で囲まれてるのはどういう意味ですか?
なんで=がつくんですか?

178 :デフォルトの名無しさん:2015/01/26(月) 00:09:14.76 ID:3JOZ16Kc.net
ほかの言語との兼ね合いで。

179 :デフォルトの名無しさん:2015/01/26(月) 00:59:23.56 ID:7cV7B6pi.net
<?= は <?php echo と同じ

180 :デフォルトの名無しさん:2015/01/26(月) 01:04:23.65 ID:szxGHRn9.net
>>177
ショート・オープン・タグ

意味的には
<?php echo $_POST["text"] ?>
とするのと同じ

JSPでも似た構文(<%= var %>)有り

環境によっては使えない場合も(php.iniが変更できないとか)

181 :デフォルトの名無しさん:2015/01/26(月) 11:51:21.98 ID:WkguQBS6.net
cakePHP Frameworkスレで質問したのですが
分かる人がいないのでこちらで質問させてください。



以下のページを参考に画像のアップロード機能を試しています。
なぜかファイルをアップロードしようとすると「save」ファンクション
が認識されずにエラーになってしまいます。

http://www.tailtension.com/cakephp/1512/

【エラーの出るコントローラの中のコード】
//画像の保存
if($this->Post->save($this->request->data))
⇒ここでエラー

【エラー内容】
Fatal error: Call to a member function save() on a non-object in

【捕捉】
コントローラ名は、 TestController.phpで
定義したアクション名は、 update_image です。

182 :デフォルトの名無しさん:2015/01/26(月) 14:05:05.07 ID:3JOZ16Kc.net
質問がおかしい。
saveが認識されないのではなくPostが意図したオブジェクトになっていないのが正しいだろう

183 :DAEMON:2015/01/26(月) 15:13:15.51 ID:itBI5fDM.net
>>182
 シ
タッ・・(Φ Φ+)・・・ 何方にレスを 話の経緯が読めません

184 :デフォルトの名無しさん:2015/01/26(月) 15:44:15.65 ID:o6RBMBnt.net
$this と $this->Post が有効かチェックしてみて

185 :デフォルトの名無しさん:2015/01/26(月) 18:21:09.89 ID:PwPotq60.net
過疎スレで1時間で返答つかなかったからマルチとかたちわるいな

186 :デフォルトの名無しさん:2015/01/26(月) 20:31:09.60 ID:uo2jLmf1.net
はじめまして(><)

187 :デフォルトの名無しさん:2015/01/26(月) 20:33:02.66 ID:uo2jLmf1.net
>>186です…

php で replace で 「 0 」 を 置換したいのですが、
「100」 や「 10 」の「 0 」は置換したくありません!

何か設定の方法はありますか?(><)

188 :デフォルトの名無しさん:2015/01/26(月) 20:34:55.49 ID:uo2jLmf1.net
ついでと言っちゃなんですが、もう一つ質問です!

正規表現の、例えば 「\r\n」 を<br>に置換したいときはどう書けばよいでしょうか?
どなたかご教示くださいm( -ω-)m

189 :デフォルトの名無しさん:2015/01/26(月) 20:58:23.24 ID:AiXGLgGn.net
>>187
置換したくない"0"を、何か別の文字列に置き換えておく。
"0"を希望する文字に置換する。
別の文字列に置き換えていたものを、元の"0"に戻す。

190 :デフォルトの名無しさん:2015/01/26(月) 22:17:47.55 ID:7cV7B6pi.net
>>187
[^0-9]?0

>>188
nl2br

191 :デフォルトの名無しさん:2015/01/27(火) 00:34:06.23 ID:YQSfawfj.net
エスケープ処理は基本中の基本やな

192 :デフォルトの名無しさん:2015/01/27(火) 02:12:11.07 ID:0NKY9Qid.net
>>182 184

cakeの機能を使わずに普通に実装しました。
下手にFWの機能を使うよりも普通に実装した方が楽な場合も結構ありますね。

193 :デフォルトの名無しさん:2015/01/27(火) 03:14:04.78 ID:OmEcIi+U.net
>>192
FWが何をしているのかを知らないからそうなるんじゃないかな。
スーパーグローバルを直接触らない代わりにどんなメリットが生まれているのか考えてみたらいいよ

194 :デフォルトの名無しさん:2015/01/27(火) 11:36:19.91 ID:bJwjBTio.net
>>189
ありがとうございます!!
やはり「 0 」にこだわらない方が効率が良いですよね…

>>190
ありがとうございます!
早速試してみます!

195 :デフォルトの名無しさん:2015/01/27(火) 11:49:52.97 ID:bJwjBTio.net
>>191
ありがとうございます!
エスケープ処理…調べてみます!

196 :質問者:2015/01/28(水) 21:56:45.14 ID:TOZ4mW8s.net
コンニチハ、
海外のウェブプロキシーリストを作り
そのプロキシをランダムに取得しランダムで特定のサイトにアクセスするいわゆる多段串のようなものを実現させたいのですが
スクリプトの構造的にどのようになるのでしょうか?

197 :デフォルトの名無しさん:2015/01/28(水) 22:33:03.27 ID:XWi4rAA/.net
>>196
カスケード接続する
ただ、公開プロキシで多段に対応してるのは希少
目的が何かわからんけど、このレベルの質問するなら諦めろとアドバイスする

198 :デフォルトの名無しさん:2015/01/30(金) 00:47:53.14 ID:UnBDdYg/.net
php5.5、5.6はXPでは動かないですよね?
XPで動くようソースからビルドしようとしてるけど既製らビルド品ありますか?

199 :デフォルトの名無しさん:2015/01/30(金) 00:54:24.97 ID:wLjy5NT6.net
動かないんですか?

200 :デフォルトの名無しさん:2015/01/30(金) 00:56:29.14 ID:UnBDdYg/.net
最近のは知らないけど。PHP5.5以降からはWindows XPには無い命令が使われて動作しないはず。
最新バイナリは試していない。

201 :デフォルトの名無しさん:2015/01/30(金) 08:25:56.42 ID:0YV6xwSy.net
>>2
あんな過疎板、もう潰していいだろ。

202 :デフォルトの名無しさん:2015/01/30(金) 09:38:16.12 ID:mecaVc4e.net
それはお前の意志で決めることじゃないからな
こっちのスレじゃCLIとかHiphopとかexe compilerの話しとけよ

203 :デフォルトの名無しさん:2015/01/30(金) 10:43:34.70 ID:xRghob4k.net
それもお前が決めることじゃないな

204 :デフォルトの名無しさん:2015/01/30(金) 16:06:33.86 ID:KUR67ecF.net
eclipseでソースコードを編集しているのですが
段々とコード行数が増えてきて、編集中にもたつきを感じる様になりました。


皆さんはこういう場合、どうしていますか?

205 :デフォルトの名無しさん:2015/01/30(金) 19:09:17.12 ID:oM+5m4nl.net
CPUいいのに変えてメモリ増やしてSSD導入する

206 :デフォルトの名無しさん:2015/01/30(金) 19:15:09.94 ID:J1GZQJkp.net
コード支援を全部切る?・・・じゃあIDE使う意味ないねw

リファクタリングで抜き出せる部分を別ファイル化?

207 :デフォルトの名無しさん:2015/01/30(金) 19:18:02.28 ID:BNtp6MqM.net
一ファイルにむやみにたくさん書き込んでいると見た

208 :デフォルトの名無しさん:2015/01/30(金) 19:39:56.60 ID:UnBDdYg/.net
eclipse自体を使わない。

209 :デフォルトの名無しさん:2015/01/30(金) 20:50:37.25 ID:Y/JFK4Bk.net
ソフトを起動した時に本来のウィンドウとは別の「なんか今頑張って起動してます」
みたいな表示がでる奴があるじゃないですか。
ああゆうのを作ってみたいんですけど、どんな単語でググればいいんでしょうか?

210 :デフォルトの名無しさん:2015/01/30(金) 21:08:26.43 ID:J1GZQJkp.net
スプラッシュスクリーン・・・だけどPHPで?

211 :デフォルトの名無しさん:2015/01/30(金) 21:16:16.54 ID:Y/JFK4Bk.net
えっ?PHP…あわわっ只の「くだ質スレ」だと思ってしまいました…ごめんななさい。
それはそうと、ありがとうです>>210
スプラッシュスクリーン、そんな洒落た名前だったんですね。

212 :デフォルトの名無しさん:2015/01/31(土) 06:31:07.76 ID:9DGlLiRv.net
>>211は悪くないな
PHPとか糞迷惑なやつらはwebprogへ帰れよ

213 :デフォルトの名無しさん:2015/01/31(土) 11:14:53.16 ID:uquIaUji.net
流れ見ないでレスするとこうなる

214 :デフォルトの名無しさん:2015/01/31(土) 13:03:31.32 ID:BgOpeydW.net
脳内流れ

215 :デフォルトの名無しさん:2015/02/01(日) 13:37:48.18 ID:QwbaGHVn.net
中々見れないんだよな数レス前って

216 :デフォルトの名無しさん:2015/02/05(木) 12:25:01.79 ID:XfrlZxHD.net
C言語のmain関数やJavaのmainメソッドのようにプログラムの
自動起点とすることができる関数や方法はPHPにありますか?
あったらその関数や方法を教えて欲しいです。

あるクラスを読み込んだだけで実行できるようにしたいです。

217 :デフォルトの名無しさん:2015/02/05(木) 12:36:11.52 ID:3aF8D9zw.net
ない
強いて言うならコンストラクタ

218 :デフォルトの名無しさん:2015/02/05(木) 14:26:54.20 ID:M8LYrI6I.net
>>217
ありがとうございます。
やはり、newをして実行しないとダメみたいですね。
マジックメソッドに、__main()とか作ってくれればいいのに。

219 :デフォルトの名無しさん:2015/02/05(木) 14:53:09.72 ID:Ymh9V5e3.net
https://php.net/manual/ja/function.main.php
むしろ無くなってるなw

220 :デフォルトの名無しさん:2015/02/05(木) 15:03:31.89 ID:FwB33VpM.net
<?php
function main() {
echo "hogehoge.";
}
main();
?>

221 :デフォルトの名無しさん:2015/02/05(木) 15:28:49.57 ID:/Y0+zaOS.net
>>216
> あるクラスを読み込んだだけで実行できるようにしたいです。
これを解決したいだけなら、クラスファイルの中に希望する処理を書けばよい

222 :デフォルトの名無しさん:2015/02/05(木) 15:33:55.77 ID:TvPdQkb9.net
>>220
> ?>
これ書く奴いなくならないね。

223 :デフォルトの名無しさん:2015/02/05(木) 17:39:30.82 ID:pZV1a1/q.net
そりゃこのスレだと下にもレスが続くからなw

224 :デフォルトの名無しさん:2015/02/05(木) 18:05:27.58 ID:iBBDga7j.net
HTMLを含まない純粋なPHPプログラムだけのPHPファイルは?>書かない方がいい

225 :デフォルトの名無しさん:2015/02/07(土) 11:38:02.47 ID:quWAAr+b.net
いやいや、?>くらいかけよ

226 :デフォルトの名無しさん:2015/02/07(土) 11:40:33.81 ID:quWAAr+b.net
これしか見てない奴が多い
http://php.net/manual/ja/language.basic-syntax.phptags.php

227 :デフォルトの名無しさん:2015/02/07(土) 11:57:20.13 ID:VUqqkf5v.net
BOMつけなきゃバグらんだろ

228 :デフォルトの名無しさん:2015/02/07(土) 12:54:39.70 ID:cqUnuN7x.net
で、 ?>のあとに無駄な空白が入ってるせいで
それincludeしてるプログラムで header関数使うと
headers already sent

229 :デフォルトの名無しさん:2015/02/07(土) 13:25:44.53 ID:o1zugbsU.net
>ファイル全体が純粋な PHP コードである場合は、ファイルの最後の終了タグは省略するのがおすすめです。
>終了タグの後に余分な空白や改行があると、予期せぬ挙動を引き起こす場合があるからです。
>余分な空白や改行のせいで PHP が出力バッファリングを開始し、その時点の内容を意図せず出力してしまうことになります。

公式だって推奨してるし、ZendFWだって書いてない
なのに反発してる奴って・・・

230 :デフォルトの名無しさん:2015/02/07(土) 13:26:44.55 ID:quWAAr+b.net
>終了タグの後に余分な空白や改行があると

231 :デフォルトの名無しさん:2015/02/07(土) 13:52:53.88 ID:zjjMk7yP.net
お前は一体何が言いたいんだ

232 :デフォルトの名無しさん:2015/02/07(土) 14:10:24.15 ID:quWAAr+b.net
盲目的に終了タグ書くなってのはちげーだろってこと

233 :デフォルトの名無しさん:2015/02/07(土) 14:17:10.01 ID:zjjMk7yP.net
プログラマーなんてものは最善な方法だけ知っておけばよい

234 :デフォルトの名無しさん:2015/02/07(土) 14:38:03.21 ID:jC1YUVep.net
お勧めってだけで、書くなとは言ってないな

235 :デフォルトの名無しさん:2015/02/07(土) 16:47:49.30 ID:Q6/IgrSt.net
で、なんで終了タグ書きたいの?
>>229の理由よりもまともな理由あるの?

236 :デフォルトの名無しさん:2015/02/07(土) 17:47:25.34 ID:cSsypbTd.net
あー>>220 書いたの俺だわ、なんかスマンなw

括弧とか閉じまで先に書くクセがあるんだわw

237 :デフォルトの名無しさん:2015/02/07(土) 18:08:48.64 ID:JB9TvdV/.net
>>236
お前だったのか(驚愕)

238 :デフォルトの名無しさん:2015/02/07(土) 18:30:12.58 ID:cSsypbTd.net
何い、知っておるのか雷電?

239 :デフォルトの名無しさん:2015/02/07(土) 18:46:39.71 ID:o1zugbsU.net
>>232
>ファイル全体が純粋な PHP コードである場合
この状況で終了タグを書く必要性は皆無
よって、盲目的になっても別に良い
反論するなら終了タグが必要な理由を述べて。

240 :デフォルトの名無しさん:2015/02/07(土) 19:08:03.64 ID:wtoMRbFn.net
>>232
一番荒れる原因になるのは終了タグ直後のひとつの改行を許すかどうかであるべきだと思ってるんだが、
ここではその話になってないのが実に残念だ。

結局はこういうやり取りがめんどくさくてしょうがないから、各所の規約で書くなと決めてしまっているのが今の状態。
書きたくてしょうがないやつはいないから、いろいろあるなかで一番ましなまとめ方なんよ。

241 :デフォルトの名無しさん:2015/02/07(土) 19:09:59.07 ID:uAJZ2/Wn.net
お勧めってだけで、書くなとは言ってないな

242 :デフォルトの名無しさん:2015/02/07(土) 20:36:17.06 ID:XHUlJuFO.net
終了タグ ?>
これを書かない場合、ファイルの最終行に、終りを示すコメントとか入れてる?
たとえば、
//EOF
とか。それとも何も書かずに終了する?

243 :デフォルトの名無しさん:2015/02/07(土) 20:44:00.50 ID:zjjMk7yP.net
そんな無意味なコメント入れない

244 :デフォルトの名無しさん:2015/02/07(土) 21:05:56.68 ID:XHUlJuFO.net
>>243
そうなのか。ありがとう。

245 :デフォルトの名無しさん:2015/02/07(土) 21:12:28.68 ID:3d6Dulsa.net
というか、終了タグの後ろに空白や改行が入ったくらいでどうにかなっちゃうPHPをどうにかしたほうがいいんじゃないか?

246 :デフォルトの名無しさん:2015/02/07(土) 21:24:32.47 ID:uAJZ2/Wn.net
プログラムは、
意図したとおりに動くんじゃなく、
書いたとおりに動くということで
ご了承ください

247 :デフォルトの名無しさん:2015/02/07(土) 21:43:09.99 ID:3d6Dulsa.net
終了タグの後ろに空白入ると出力バッファリングを開始しておもらししちゃうPHP

248 :デフォルトの名無しさん:2015/02/07(土) 21:43:37.43 ID:wtoMRbFn.net
>>245
それは的外れだよ。
.phpm みたいな拡張子を用意すべきだったという考えならそれもありかなとは思うけど。

249 :デフォルトの名無しさん:2015/02/07(土) 21:45:31.92 ID:3d6Dulsa.net
echoしてないものを出力しちゃうなんて欠陥以外の何物でもなくね?

250 :デフォルトの名無しさん:2015/02/07(土) 21:46:33.20 ID:wtoMRbFn.net
HTML文書の中にコードを埋めることができるというのが元の発想だから。
コード以外のものは出力するというのが根本。

251 :デフォルトの名無しさん:2015/02/07(土) 21:53:53.78 ID:3d6Dulsa.net
いやそれはわかるが、だったら、空白か改行コードだけブラウザに送れよって思うわ
ブラウザがただの空白、改行に反応すんのが悪い

252 :デフォルトの名無しさん:2015/02/07(土) 21:56:15.53 ID:wtoMRbFn.net
空白か改行コードをブラウザに送るためにはレスポンスを開始しないといけないわけだが

253 :デフォルトの名無しさん:2015/02/07(土) 22:01:21.81 ID:3d6Dulsa.net
すまん、言ってる意味がよくわからん

254 :デフォルトの名無しさん:2015/02/07(土) 22:26:51.14 ID:UqSx8T+0.net
PHPはあくまでテンプレート言語であって、サーバーに寄生してフィルタ的に使われるようになったのは、完全に2次的な話。
だから、レスポンスがどうのこうのは的外れ。

255 :デフォルトの名無しさん:2015/02/07(土) 22:29:36.38 ID:zjjMk7yP.net
この一言で片付けられる
「仕様です」

256 :デフォルトの名無しさん:2015/02/07(土) 22:33:10.00 ID:JB9TvdV/.net
>>250
ブラウザに送っているから問題なんだわ。
ここに例が詳しく書いている。
http://d.hatena.ne.jp/fbis/20090716/1247714151

257 :デフォルトの名無しさん:2015/02/07(土) 22:33:44.93 ID:JB9TvdV/.net
>>251の間違い

258 :デフォルトの名無しさん:2015/02/07(土) 22:38:00.19 ID:wtoMRbFn.net
>>253
HTTPのいろはから勉強したほうがいいと思うの。

259 :デフォルトの名無しさん:2015/02/07(土) 22:55:10.31 ID:y/AEt64y.net
これは何しているところですか?
http://i.imgur.com/8FRiTmg.jpg

260 :デフォルトの名無しさん:2015/02/07(土) 23:18:40.96 ID:ch9ozq+p.net
>>259
グロ

261 :デフォルトの名無しさん:2015/02/08(日) 06:59:25.15 ID:LYmBvKCw.net
>>256
そこのページも改行コードが「表示される」とか書いてあるけど
いやいやって感じだな
<br> または <br />って書いてるならまだしも

262 :デフォルトの名無しさん:2015/02/08(日) 07:23:09.53 ID:oFLWAs+T.net
>>258
改行コードをブラウザが読み込んだら表示も改行されるの?
おめでたいやつだな
いろはを学んだ方がいいのはお前だろw

263 :デフォルトの名無しさん:2015/02/08(日) 08:01:00.06 ID:aMsy6Zj7.net
PHPって<?php?>の外でもファイルの先頭に#って書けないよな?w

264 :デフォルトの名無しさん:2015/02/08(日) 10:17:23.17 ID:rmuNBtf+.net
#!/usr/local/bin/php
<?php

とか普通にやりますが何か?

265 :デフォルトの名無しさん:2015/02/08(日) 10:58:00.60 ID:aMsy6Zj7.net
>>264
それのために書けないよなw

266 :デフォルトの名無しさん:2015/02/08(日) 11:32:10.62 ID:p7WE/J50.net
まあ、こんなに仕様が変わっていった言語もそうないだろ

267 :デフォルトの名無しさん:2015/02/08(日) 11:44:17.86 ID:e4rj0+Rn.net
使っているユーザーが多くて、改善要望が多いせいじゃないか?

268 :デフォルトの名無しさん:2015/02/08(日) 12:06:24.14 ID:/NbqY0E2.net
>>265
実行権限与えれば動作するが、何が言いたいんだ?

269 :デフォルトの名無しさん:2015/02/08(日) 12:49:40.73 ID:kikHBD4l.net
民主党のマニフェスト並みに何でも取り込むからだよ

270 :デフォルトの名無しさん:2015/02/08(日) 16:08:14.61 ID:57iH9vTa.net
>>262
HTTPとHTMLの違いを理解したほうがいいと思うの

271 :デフォルトの名無しさん:2015/02/08(日) 16:13:14.42 ID:57iH9vTa.net
>>265
はいどうぞ。
http://php.net/manual/ja/features.commandline.usage.php

ちなみに、"それ"とか"ファイルの先頭に#"って書いてるそれはシェバング行と言ったりするよ。

272 :デフォルトの名無しさん:2015/02/08(日) 16:22:42.72 ID:LYmBvKCw.net
>>270
( ゚Д゚)ハァ?

273 :デフォルトの名無しさん:2015/02/08(日) 16:26:01.50 ID:57iH9vTa.net
>>272
話の流れ的にはそうだろう。
ID:3d6Dulsa の件。

274 :デフォルトの名無しさん:2015/02/08(日) 19:31:58.60 ID:lw0YQSqg.net
211 名前:nobodyさん[sage] 投稿日:2015/02/08(日) 19:24:47.78 ID:???
>>204
お前何も知らないだろ

PHPが使われなくなったのはレン鯖からPHP外す流れになったのが原因だよ

213 名前:nobodyさん[sage] 投稿日:2015/02/08(日) 19:29:10.81 ID:???
>>211
逆。
PHPが使われなくなったから外す流れになった。



続きはこっちでどうぞ^^;

275 :デフォルトの名無しさん:2015/02/09(月) 10:37:57.11 ID:AuqukOe+.net
データをDBへ登録して、それを表示するページを作っています。
表示するページのURLについて質問ですが、
現在は一意IDとしてDBのAUTOINCREMENTで割り振られた連番を利用しています。

/index.php?page=123
           ~~~~

連番なので、直接URLに数値を打ち込めば総数がバレてしまいますし、
ツールやスクリプトなどによる連続アクセスも容易になってしまいます。

これを防ぐために、YouTubeやAmazonのようなIDにしたいと考えています(例は一部○で伏せています)

/product/B00S6C3○○W/  //Amazon
      ~~~~~~~~~~~~~~~
/watch?v=CHVq1xQ○○nM  //YouTube
       ~~~~~~~~~~~~~~~~~~

このようなIDを生成するにはどうしたらよいでしょうか?

276 :275:2015/02/09(月) 10:42:11.97 ID:AuqukOe+.net
補足です。
IDは一意なもので、可能な限り短く、
長さは可変(データ量が振れば文字の桁数が増えていく)を考えています。

277 :デフォルトの名無しさん:2015/02/09(月) 10:56:02.80 ID:p6Gav+v7.net
PHP 62進数で検索

278 :デフォルトの名無しさん:2015/02/09(月) 10:57:05.37 ID:AuqukOe+.net
>>277
62進数も結局は連番なので、考えているものと違います

279 :デフォルトの名無しさん:2015/02/09(月) 11:05:04.60 ID:p6Gav+v7.net
数値なんだから、一回適当な数足すとか引くとか
生成した文字列を規定の方法でシャッフルするとか
ご自分の考えているものでどーぞ

280 :デフォルトの名無しさん:2015/02/09(月) 11:14:46.67 ID:AuqukOe+.net
>>279
なるほど、最初に手を加えてから進数変換するわけですね
一先ずそれで試してみようと思います、ありがとうございます。


それと、他の手法も知っておきたいので、
もし他のやり方をご存知の方いらっしゃれば教えてください。

281 :デフォルトの名無しさん:2015/02/09(月) 11:43:51.56 ID:kQFsD0xw.net
Ohgakiとかいうおっさん、どうにかならんの?

282 :デフォルトの名無しさん:2015/02/09(月) 11:46:45.73 ID:/goebppZ.net
>>280
MD5でいいじゃん

283 :デフォルトの名無しさん:2015/02/09(月) 11:52:45.89 ID:AuqukOe+.net
>>282
MD5ではURLに対しては文字数が長すぎます

284 :デフォルトの名無しさん:2015/02/09(月) 12:17:07.31 ID:/goebppZ.net
そんな長くもないけどな、でもうちで使ってるのはパスブックのauthコードか、、
あと事前にランダム文字列をテーブルに入れといてidと変換して使ってるけどね
これはURLじゃないけどお客様予約コードとして

285 :デフォルトの名無しさん:2015/02/09(月) 12:28:44.69 ID:iwYt+9F+.net
trすれば?w

286 :デフォルトの名無しさん:2015/02/09(月) 12:29:36.99 ID:AuqukOe+.net
>>284
>事前にランダム文字列をテーブルに入れといて
これはどのように生成していますか?
生成したら毎回一意かどうかDBを確認してるんでしょうか?

287 :デフォルトの名無しさん:2015/02/09(月) 12:36:03.28 ID:/goebppZ.net
一意かどうかはDBにユニーク属性つけときゃかぶらないでしょ
どうやって生成したか忘れた、、10年近く前だったしな、
必要なときに都度作ってかぶったら作り直し、でもいいと思うけどな

ちょっとググったら
http://www.japan9.com/cgi/rand_num.cgi
こんなのあった。
まあライブラリとかでもなんとかなるような

288 :デフォルトの名無しさん:2015/02/09(月) 12:46:00.61 ID:AuqukOe+.net
>>287
DBにデータを作成する際に衝突したらもう一度繰り返すんですか?
生成方法にもよりますけど、理論的には無限ループにもなりますよね?(事実上有り得ないけど)
具体的な生成方法を教えて頂けると嬉しいです。

URL先はこれから拝見します。

289 :デフォルトの名無しさん:2015/02/09(月) 12:52:26.54 ID:AuqukOe+.net
URL先拝見しました。
見たところ単にランダムなだけであって一意性が保証されてないように見えます。
また、ダウンロードやソースや利用規約なども明記されてないので使いようがないように思えます(探し方がわるく見つけ切れなかっただけならごめんなさい)

290 :デフォルトの名無しさん:2015/02/09(月) 12:53:10.46 ID:r3iadyqd.net
>>288
ハッシュ関数で検索する。
桁数が短い場合は重複する値が発生する確率が高まるよ。

291 :デフォルトの名無しさん:2015/02/09(月) 13:01:09.59 ID:AuqukOe+.net
>>290
ハッシュ関数は知っています。
ただ、参考にしたいYouTubeやAmazonのIDはハッシュには見えませんが、どうやればいいでしょうか?

292 :デフォルトの名無しさん:2015/02/09(月) 13:01:36.67 ID:r3iadyqd.net
>>291
ハッシュに見えないですか。ハッシュですよ。

293 :デフォルトの名無しさん:2015/02/09(月) 13:03:52.87 ID:r3iadyqd.net
別案としては、乱数生成して文字列化でもいいと思うよ。
ハッシュアルゴリズムを使用するよりも重複する確率は高くなるので、重複チェック怠らずに。

294 :デフォルトの名無しさん:2015/02/09(月) 13:04:08.95 ID:AuqukOe+.net
>>292
数値ではないので厳密な意味でのハッシュ関数ではありませんね。
でもこれは本題ではないのでいいです。
YouTubeやAmazonのように短いIDの生成方法を教えてください。

295 :デフォルトの名無しさん:2015/02/09(月) 13:06:59.50 ID:AuqukOe+.net
>>293
膨大なデータが既にある状態だと、何度も何度も重複してやり直す必要が出てくるのって
凄くパフォーマンスが悪い気がしますが、改善策はないのでしょうか?

296 :デフォルトの名無しさん:2015/02/09(月) 13:27:44.86 ID:r3iadyqd.net
>>295
データ登録時のコストとデータ参照時のコストは分けて考えるべきだけど、
初期データ登録以外でも前者が多いの?

297 :デフォルトの名無しさん:2015/02/09(月) 13:37:51.46 ID:AuqukOe+.net
>>296
最初はデータは少ないです。
ただ、運用していくにあたってデータ量はかなりのものになると予想してます。

298 :デフォルトの名無しさん:2015/02/09(月) 13:42:17.24 ID:/goebppZ.net
リンク先でも同じようにやってるけど、ユーザーが誤認しやすい文字をあらかじめ省く、とかもやってんだよね
実行時生成で無限ループが怖かったら先に全部作っときゃいいじゃん、目の前で実行してんだから
ループしたら止めてやり直しゃいいだろう。10年分も作っときゃいい

299 :デフォルトの名無しさん:2015/02/09(月) 13:51:36.63 ID:AuqukOe+.net
>>298
無限ループって言葉は悪かったかもしれません。(そもそも、そんな実装をする場合は無限ループしないようになんらかの処理を加えるので)
要は、何度も生成を繰り返す(一定条件で失敗と見なす)やり方はUXにも影響が出てしまいますし、
もっとスマートに出来る手法があるのかを知りたいです。

>先に全部作っときゃいいじゃん
このやり方は一理ありますが、凄く無駄のようにも思えます。
こういうやり方が主流なんでしょうか?

300 :デフォルトの名無しさん:2015/02/09(月) 15:15:32.48 ID:8DtgTl9e.net
phpをテンプレートとして使って
モデルとコントローラは別言語で書きたい

301 :デフォルトの名無しさん:2015/02/09(月) 16:01:53.96 ID:4CCXLzuG.net
>>299
そのIDってDB上で何桁なの?

302 :デフォルトの名無しさん:2015/02/09(月) 16:22:57.25 ID:kQFsD0xw.net
こんなのでいいんじゃないの?
substr(md5(uniqid(rand(), 1)), 0, 10)

303 :デフォルトの名無しさん:2015/02/09(月) 17:30:08.93 ID:J1Lpqudc.net
ハッシュをsubstrとか最悪だろ

304 :デフォルトの名無しさん:2015/02/09(月) 17:32:08.03 ID:/goebppZ.net
まだバイナリに戻してbase64のが、、w

305 :デフォルトの名無しさん:2015/02/09(月) 17:37:09.09 ID:p6Gav+v7.net
base64はURLでエンコ掛かる文字があるからな

306 :デフォルトの名無しさん:2015/02/09(月) 17:43:54.37 ID:KZXLvyao.net
普通にランダム文字列生成して、DBで重複チェックすればいいじゃねーか
無限ループする可能性は0じゃないけどほぼ0。
大文字小文字数字で62種類から5桁使うだけで916132832通り。
こんな中から重複する確率心配する必要あるのか?

307 :デフォルトの名無しさん:2015/02/09(月) 17:44:22.42 ID:8DtgTl9e.net
substrを嫌って
md5の値をxorで半分に畳んでから64進数にするコードとかは書いた
1/6位に縮む

308 :デフォルトの名無しさん:2015/02/09(月) 17:46:06.77 ID:8DtgTl9e.net
同じデータで同じ値が得られるって必要ないなら乱数がいいわな

309 :デフォルトの名無しさん:2015/02/09(月) 17:50:30.50 ID:8DtgTl9e.net
乱数の衝突確率と
DB使った衝突チェックコードがバグってデッドロックする確率と
どっちを重要視するかだなー

310 :デフォルトの名無しさん:2015/02/09(月) 17:53:30.41 ID:kQFsD0xw.net
>>303
> ハッシュをsubstrとか最悪だろ
そうかな。
10桁のランダム文字列を生成して衝突する確率と、>>302の衝突確率、どっちがどれくらい大きい?
そんな違わんと思うんだが。

311 :デフォルトの名無しさん:2015/02/09(月) 17:59:54.64 ID:8DtgTl9e.net
元データがユーザーで指定出来るなら
わざと衝突させることは可能
でも元データが乱数なら特に仕様に問題なさそう?

312 :デフォルトの名無しさん:2015/02/09(月) 18:31:51.59 ID:kQFsD0xw.net
まぁ、それなりに短くてユニーク性が担保されてる物を使いたいなら、事前生成してIDプールを作っとくしかないかなぁ。

313 :デフォルトの名無しさん:2015/02/09(月) 18:32:05.65 ID:gGWdGnGd.net
youtubeの動画idを作るアルゴリズムは俺も気になる
誰もわかる人いないの?

314 :デフォルトの名無しさん:2015/02/09(月) 18:37:53.76 ID:TIoddbDq.net
ざっと見た感じ10桁と11桁があったから固定長ではないということと
0-9a-zA-Z-_の64進数であるということ
別に難しいことやってないだろ衝突のチェックはしてるはずだ

315 :デフォルトの名無しさん:2015/02/09(月) 19:44:46.65 ID:5MH5oReq.net
>>307 のコードはこれな
https://ideone.com/KRfKyg
>>314と桁数も同じだし似たような事やってんだろ

316 :デフォルトの名無しさん:2015/02/09(月) 21:14:55.73 ID:AuqukOe+.net
解決できました。
ベースとなる62文字を底とした対数を元に数値から各文字列を算出して、
(このままだと予測が付くので)任意のキーをハッシュにしてそれを軸にベース文字列の順番を変更しました。
任意のキーを変えれば違った結果が得られます。
計算はbcmathを使い大きな数でも変換・復元できます。
変換対象の数値はDBのAUTOINCREMENTの値です。なので、衝突の確認は必要ないです。

//一例
123 <=> Cg
124 <=> v2
125 <=> vC

//結果を5桁以上に指定した場合(桁数指定無しだと C22Cg = 568283946)
123 <=> C22Cg

//大きな数値
2147483647 <=> vR7TLC //PHP_INT_MAX
2147483648 <=> vR7TLv //PHP_INT_MAX + 1
18446744073709551616 <=> R0IZeC8dZNK //1.844674407371E+19
18446744073709551617 <=> R0IZeC8dZNZ
999999999999999999999 <=> WlSOLGrH9mCC

十分満足する結果が得られたので、この質問は締め切りたいと思います。
解答してくださったみなさん、ありがとうございました。

317 :デフォルトの名無しさん:2015/02/10(火) 10:18:17.48 ID:BBYveUv7.net
>>316
え?そんなので満足なの?
2文字のキーが存在するとわかると、2文字のその他のキーは総当たりでアタックされちゃうし、
vR7TLCとvR7TLvなんて近すぎるよ。下位一桁を変えるだけで別のを参照できちゃうけど?

318 :デフォルトの名無しさん:2015/02/10(火) 10:24:25.46 ID:4KbenIEn.net
>ベースとなる62文字を底とした対数を元に数値から各文字列を算出して、

これって分かりやすく言うとどういうことをしているの?
またはコードで書くとどうなるのですか?
62進数とか、>>279の言うことはわかるのですが、対数とかわからなくなる。

319 :デフォルトの名無しさん:2015/02/10(火) 10:40:39.68 ID:gUpJ+a7f.net
62を底にしたとき62の対数 1
62を底にしたときの62^2の対数 2

まあ、1,2,3・・・を元に計算しましたってことだよw

320 :デフォルトの名無しさん:2015/02/10(火) 11:21:41.79 ID:4KbenIEn.net
>>319
なるほど。少しわかりかけてきたよ。
ありがとう。

321 :デフォルトの名無しさん:2015/02/10(火) 14:19:58.35 ID:wIt1SCny.net
>>317
>2文字のキーが存在するとわかると
例に在るとおり、桁数は設定できます

>下位一桁を変えるだけで別のを参照できちゃうけど?
これはわかりやすくした結果の一例なので、正しく使えば出来ませんよ

>>318
>>279とはまた違いますよ

結果はYouTubeのようなIDが生成されます。
ただ、YouTubeは末尾一桁の4byte程を許容しているようなので完全に同じってわけじゃあありません。
多分CheckDigit的な何かだと思うので、これから真似してみます。

322 :デフォルトの名無しさん:2015/02/10(火) 14:45:10.93 ID:BBYveUv7.net
>>321
> >下位一桁を変えるだけで別のを参照できちゃうけど?
> これはわかりやすくした結果の一例なので、正しく使えば出来ませんよ
下位一桁を順番にさかのぼれば一個前のキーがわかるのでは?
(一桁だけでさかのぼれなければ二桁さかのぼる)
数値の増加と、生成されたキーの辞書順の順番は同じじゃないの?
元となる値はひとつずつ増え、変換後の1つ前との文字列のΔが小さすぎるんじゃないのってことなんだけど。

323 :デフォルトの名無しさん:2015/02/10(火) 14:47:33.98 ID:BBYveUv7.net
「YouTubeのようなID」っていうから、時系列に生成されたキーを並べても辞書順にはならないものを
求めてると思ったんだけど。

324 :デフォルトの名無しさん:2015/02/10(火) 14:49:02.48 ID:IKKD2i9Y.net
本人が満足してるならそれでいいだろ

325 :デフォルトの名無しさん:2015/02/10(火) 15:04:12.81 ID:BBYveUv7.net
いや、その辺のこと全部わかって満足してるんならいいんだけど、ほんとにわかってんのかなと思って。

326 :デフォルトの名無しさん:2015/02/10(火) 15:17:07.84 ID:wIt1SCny.net
>>322
変換テーブルは任意のキーで変更でき、それはいわばランダムにシャッフルされた状態になるので
>下位一桁を順番にさかのぼれば一個前のキーがわかるのでは?
このような心配は必要ないです。

327 :デフォルトの名無しさん:2015/02/10(火) 15:18:16.00 ID:wIt1SCny.net
再度言いますが、>>316の一例はわかりやすい結果にした出力です

328 :デフォルトの名無しさん:2015/02/10(火) 15:23:16.48 ID:PEY4PO1c.net
>>325
最初のやり取りの時点でわかってるつもりでわかってない人だということがわかってる。

329 :デフォルトの名無しさん:2015/02/10(火) 15:36:22.03 ID:wIt1SCny.net
適切に出力しました。
これを見てまだ指摘があるならください。


5桁以上で生成
123 <=> OpkA9
124 <=> O7WjO
125 <=> Or74G
126 <=> OebeG
127 <=> 93AWG
128 <=> 9zAwE
129 <=> EL5m9

同じ条件でKey変更
123 <=> kPQ4Z
124 <=> Z4rdG
125 <=> Zgzxk
126 <=> kA2eZ
127 <=> klB8n
128 <=> Gzj6G
129 <=> ndwJZ

330 :デフォルトの名無しさん:2015/02/10(火) 15:52:10.98 ID:BBYveUv7.net
疑問多数なんだけど、もろもろ理解した上での満足なんだなということだけはわかったので、もういい。

331 :デフォルトの名無しさん:2015/02/11(水) 16:37:52.44 ID:qk9mI8Ky.net
インタビュー:[楽天]Ruby活用事例とROMA,Fairy|gihyo.jp … 技術評論社
http://gihyo.jp/dev/column/01/prog/2010/030801?page=2
RailsとCakePHPを比べたところ,高負荷時にはRails のほうが大幅に応答性能が高いという結果が出たことですね。
これは200リクエスト/秒くらいからPHPの応答性能が急激に下がるのが原因です。
Rubyはそれほど大きくはパフォーマンスが落ちないんです。

第4回 Railsに変えてよかった!:iKnow!の場合 | Think IT
http://thinkit.co.jp/article/156/4?page=0,1
3ヶ月、わずか3名程度のエンジニアチームで、彼らはPHPで実装が完了していたレベルに追いつきました。
またコード量はPHPの1/5以下にまで削減されており、よりシンプルな構成も実現できました。


食べログの画面数は約200あるが,開発に取りかかって約2カ月で完成した。
「VBscriptならこの倍,PHPでも1.5倍はかかっていたのではないか」
コード量も10分の1になった。
http://itpro.nikkeibp.co.jp/article/OPINION/20071031/286028/

332 :デフォルトの名無しさん:2015/02/11(水) 18:26:22.06 ID:bsa0WqJ9.net
PHPで外部ディレクトリのファイルを全て取得したいです!
たとえばhttp://peace.2ch.net/test/read.cgi/tech/から1418738547などのスレッドキー(ファイル)を取得したいって
ことです!globなどが良さげなのですが自分のディレクトリ配下のファイルしか出ません><

333 :デフォルトの名無しさん:2015/02/11(水) 18:31:44.60 ID:sJPqGjE7.net
それが出来たらやりたい放題だなw

334 :デフォルトの名無しさん:2015/02/11(水) 18:45:25.70 ID:bsa0WqJ9.net
>>333
私がやりたいことは、http://e.z-z.jp/という掲示板サービスのIDを自動で取得したいんです

335 :デフォルトの名無しさん:2015/02/11(水) 20:31:02.10 ID:bsa0WqJ9.net
うそです!

336 :デフォルトの名無しさん:2015/02/11(水) 20:56:44.79 ID:RxP1DnB1.net
phpのみで苦しみながらコード書いてるけど
テンプレート言語にしては
ずいぶんプログラミングみたいにこと出来ていいねphp

337 :デフォルトの名無しさん:2015/02/11(水) 21:08:50.16 ID:Z2laVfQS.net
>>336
Framework使ってる?
苦しむことすらからも解放されるよ

338 :デフォルトの名無しさん:2015/02/11(水) 21:16:41.02 ID:RxP1DnB1.net
php4 dbなしos限定なし設定なし
php拡張ライブラリもwindows apacheデフォルトのみ
そんな環境向けだからWAF使いずらい

339 :デフォルトの名無しさん:2015/02/17(火) 23:51:28.31 ID:Qrf9op+9.net
インタビュー:[楽天]Ruby活用事例とROMA,Fairy|gihyo.jp … 技術評論社
http://gihyo.jp/dev/column/01/prog/2010/030801?page=2
RailsとCakePHPを比べたところ,高負荷時にはRails のほうが大幅に応答性能が高いという結果が出たことですね。
これは200リクエスト/秒くらいからPHPの応答性能が急激に下がるのが原因です。
Rubyはそれほど大きくはパフォーマンスが落ちないんです。

第4回 Railsに変えてよかった!:iKnow!の場合 | Think IT
http://thinkit.co.jp/article/156/4?page=0,1
3ヶ月、わずか3名程度のエンジニアチームで、彼らはPHPで実装が完了していたレベルに追いつきました。
またコード量はPHPの1/5以下にまで削減されており、よりシンプルな構成も実現できました。


食べログの画面数は約200あるが,開発に取りかかって約2カ月で完成した。
「VBscriptならこの倍,PHPでも1.5倍はかかっていたのではないか」
コード量も10分の1になった。
http://itpro.nikkeibp.co.jp/article/OPINION/20071031/286028/

340 :デフォルトの名無しさん:2015/02/18(水) 00:05:35.11 ID:lUlCQlA9.net
Rubyのおかげでハゲが治り、体重も減って恋人も出来ましたw

341 :デフォルトの名無しさん:2015/02/18(水) 00:25:06.29 ID:deVdAFDE.net
>>207
その通り!だから左右に画面を分割してコードをいじっているともっさりして大変なのだ

342 :デフォルトの名無しさん:2015/02/19(木) 01:30:22.68 ID:VWQ00iRn.net
小規模なスクリプトしか書かないから
railsとか重いWAF覚えるには腰が重い
どうでもいいところでハマるし

343 :デフォルトの名無しさん:2015/02/19(木) 19:49:34.57 ID:6DAiIyVa.net
PHPを利用して作成されたサイトを見分ける方法ってありますか?
拡張子が.phpであることやexpose_phpによるヘッダー情報で見分ける以外に
どういった方法があるか知りたいです。

344 :デフォルトの名無しさん:2015/02/19(木) 20:12:16.08 ID:yeNrSBng.net
サーバでうまく設定してればわからない

345 :343:2015/02/19(木) 21:48:47.12 ID:lO9TT2c4.net
>>344
ありがとうございます。

PHPの隠蔽には
・拡張子を隠蔽するか変更する
・expose_php を off と設定する
この2つをしておけば他は問題ないみたいですね。
http://php.net/manual/ja/security.hiding.php

たまに、良さそうなサイトがどの言語で作成されているか
気になることがあるのですが、対策されてれば知るのは無理そうですね。

346 :デフォルトの名無しさん:2015/02/19(木) 22:56:56.57 ID:lV3Z3yoq.net
質問者はまずこれを読み、そこまでしてPHPを使い続ける必要があるか考えること。

インタビュー:[楽天]Ruby活用事例とROMA,Fairy|gihyo.jp … 技術評論社
http://gihyo.jp/dev/column/01/prog/2010/030801?page=2
RailsとCakePHPを比べたところ,高負荷時にはRails のほうが大幅に応答性能が高いという結果が出たことですね。
これは200リクエスト/秒くらいからPHPの応答性能が急激に下がるのが原因です。
Rubyはそれほど大きくはパフォーマンスが落ちないんです。

第4回 Railsに変えてよかった!:iKnow!の場合 | Think IT
http://thinkit.co.jp/article/156/4?page=0,1
3ヶ月、わずか3名程度のエンジニアチームで、彼らはPHPで実装が完了していたレベルに追いつきました。
またコード量はPHPの1/5以下にまで削減されており、よりシンプルな構成も実現できました。


食べログの画面数は約200あるが,開発に取りかかって約2カ月で完成した。
「VBscriptならこの倍,PHPでも1.5倍はかかっていたのではないか」
コード量も10分の1になった。
http://itpro.nikkeibp.co.jp/article/OPINION/20071031/286028/

347 :デフォルトの名無しさん:2015/02/19(木) 23:36:56.05 ID:oS1fF8P8.net
2007年の記事を未だにしつこく貼る奴ってなんだろうね
崇拝でもしてるのかな?
あまりしつこいようなら運営に荒らし通報するからな

348 :デフォルトの名無しさん:2015/02/19(木) 23:37:17.33 ID:ktrT5ybF.net
ぼっちって、悲しいね

349 :デフォルトの名無しさん:2015/02/19(木) 23:39:47.72 ID:yeNrSBng.net
自演がバレちゃうから連続で煽ってこない
効果ありすぎw

350 :デフォルトの名無しさん:2015/02/23(月) 15:44:13.42 ID:jEdpJRTO.net
foreach($contents as $line)
{

}


このコードでは改行文字は  \n \r\n どちらで認識されるのでしょうか?

351 :デフォルトの名無しさん:2015/02/23(月) 17:04:51.71 ID:DYG8BVl4y
cURLでcookieを保存してそれを確認できるようにするにはどうすればいい?

ヘッダー確認してみると受け取ってはいるようなんだが、ファイルとしてディレクトリに残ってないんです。

352 :デフォルトの名無しさん:2015/02/23(月) 22:24:39.65 ID:cWkGfwjm.net
>>350
試せ
'\r'検索

353 :デフォルトの名無しさん:2015/02/23(月) 23:44:09.35 ID:ETApao89.net
>>352
さんきゅー

354 :デフォルトの名無しさん:2015/02/24(火) 01:43:39.16 ID:hwXyjfLa.net
あいまいな情報だが、Rubyだと改行は、外部では\r\nでも、
Ruby内では自動的に、\nに変換されていたかな?

外:\r\n → 内:\n → 外:\r\n

PHPはどうなの?

355 :353:2015/02/24(火) 05:19:14.75 ID:hwXyjfLa.net
自己レス
ary = []; ary[2] = []

いったん、空配列で初期化した後なら、追加できる
ary[2][3] = []
ary[2][3] << [1, 2]

ary[2][i]で、iが5, 10など突然に、
ランダムなインデックスに、
次々と追加していくには、どうするの?

最初の1回目だけは、空配列で初期化して、
2回目以降は初期化せずに、追加のみしていきたい

356 :353:2015/02/24(火) 05:22:45.09 ID:hwXyjfLa.net
354は、誤爆!

357 :デフォルトの名無しさん:2015/02/24(火) 18:54:05.36 ID:qJzaoY6z.net
cURLのラッパークラスhttp://qiita.com/mpyw/items/c65fb4ec4cef80909a47

を使ってサイトにログインしてクロールしようと思ってるんだがどうしてもできません。

セキュアなwebサイトではcURLを使ってログインすることができない場合があるんですか?

358 :デフォルトの名無しさん:2015/02/24(火) 19:37:17.89 ID:yPCiESzG.net
そのサーバがクライアントに何を求めてるか
求めてるものが足りないからログインできないだけでcURLは関係ないだろ
正常にログイン出来るブラウザを使ってhttpトレースして自分で調べれないならあきらめろん

359 :デフォルトの名無しさん:2015/02/24(火) 20:51:53.39 ID:qJzaoY6z.net
>>357
自己解決

httpヘッダーにOrigin: と'Cache-Control:の要素が足りないだけでした

360 :デフォルトの名無しさん:2015/02/25(水) 11:20:35.02 ID:K9ShYAxG.net
質問です。お願いします。
抽象クラスの抽象メソッドは、必ず継承されるので、
可視性にprivateをつけるのは有り得ないという理解でいいのでしょうか?
継承先ではprivateにしたいのですが、protectedにするしかないのでしょうか?

361 :デフォルトの名無しさん:2015/02/25(水) 12:33:38.55 ID:XX47xY3L.net
必ず継承されるので ではなく、
継承でオーバーライドできないから です

362 :デフォルトの名無しさん:2015/02/25(水) 12:48:16.50 ID:K9ShYAxG.net
>>361 ありがとうございます!
>継承でオーバーライドできないから です

つまり、オーバーライドが必須なため必ずprotected以上が要求される
のですね。継承先での実装は強制したいが、その実装の可視性は
privateにするというのは無理そうですね。
ありがとうございました。

363 :デフォルトの名無しさん:2015/02/25(水) 12:55:47.85 ID:UFHbrp38.net
ほんとはPHPがやりたいのに、職業訓練校だと全部JAVAばっかり
遠回りになるのかな

364 :デフォルトの名無しさん:2015/02/25(水) 14:33:33.72 ID:l9sg+6hs.net
選択の自由が欲しいなら自費で学校池

365 :デフォルトの名無しさん:2015/02/25(水) 15:12:57.15 ID:GuxC04/B.net
アホ。お前等なんて誰も雇わねぇよ。レンタルサーバなり、VPSなり借りろ。
講師なんて、プログラマになれなかったような連中がやる仕事だろw

366 :デフォルトの名無しさん:2015/02/25(水) 15:53:53.56 ID:UFHbrp38.net
>>365
あったまわりいなおまえ
コンビニバイトでもしてろ

367 :デフォルトの名無しさん:2015/02/25(水) 16:33:46.08 ID:GuxC04/B.net
職業訓練校から雇用されると思ってる方が素敵な頭だよね
あれって、講師共に体裁の良い仕事を与えるためだけのものだよ?
知らなかった?

368 :デフォルトの名無しさん:2015/02/25(水) 16:36:34.83 ID:JFD+ngFs.net
目の前にある箱使えばドットインストールとか色々あるのに

369 :デフォルトの名無しさん:2015/02/25(水) 16:49:38.60 ID:JFD+ngFs.net
ttp://paiza.jp/

こことか学びながら求職もできるぞ?

370 :デフォルトの名無しさん:2015/02/26(木) 11:10:22.20 ID:5qyZqY5X.net
PSRを読んでいたらプロパティは特に定めなしってなってるけど普通はどう?
「StudlyCaps」
「camelCase」
「under_score」

クラスはStudlyCaps、メソッドはcamelCaseで決定みたいだから、
そうするとプロパティはunder_scoreがいいの?

371 :デフォルトの名無しさん:2015/02/26(木) 11:59:10.15 ID:32CLcP5C.net
有名どころのライブラリに倣えばいいんじゃ?

372 :デフォルトの名無しさん:2015/02/26(木) 12:24:55.43 ID:2jW4ac6x.net
>>371
なるほど。ライブラリやFW等を調べてみます。
ありがとうございました。

373 :デフォルトの名無しさん:2015/02/26(木) 12:29:38.27 ID:32CLcP5C.net
そういやcakePHPは結構細かく決まってた気がするな

ファイル名とかDBのテーブル名も含めて

374 :デフォルトの名無しさん:2015/02/27(金) 17:59:36.14 ID:jUJY8z2X.net
フレームワーク自体そこらへん厳密に決めておかないといけないものだし

375 :デフォルトの名無しさん:2015/02/27(金) 18:33:58.48 ID:tXb9/4s1.net
フレームワークだから決めなければならないってことはないよ。
そのあたりの命名に制約を課す代わりにメリットを享受できるフレームワークだってことだね。

376 :デフォルトの名無しさん:2015/02/27(金) 21:49:08.02 ID:NM1bEzGX.net
コネクション張りっぱなしの状態でもxhrで非同期通信が出来ますが
この時通信先のスクリプトでsession_start()をしていると
応答がものすごい長くなります(たぶん張りっぱなしのコネクションがタイムアウトしてから応答が来る)
session_start()をしなければ早く応答が来るのですが何が原因でしょうか?

377 :375:2015/02/27(金) 21:59:03.00 ID:NM1bEzGX.net
ちなみに張りっぱなしのほうでもsession_start()しています

378 :デフォルトの名無しさん:2015/03/01(日) 16:03:20.30 ID:NDBOI03r.net
質問です。
変数をダブルクォート内に書くとき、

echo "$var";
echo "{$var}";
echo "${var}";
;
のように3通りの書き方がありますが、
どれがいいのでしょうか?
使い分け方とかがわかりませんので教えてください。

379 :デフォルトの名無しさん:2015/03/01(日) 16:33:32.67 ID:u/KO/Jjc.net
>>378
気が向いたのでこたえる。変数を書くだけなら波括弧はいらない。
配列や可変変数を使いたいときは、どこまでが $ の範囲かを分からせるために波括弧が必要な場合がある。

$array = [1, [2, 3]];
echo "$array[0]\n"; // 一次元なら OK
echo "$array[1][0]\n"; // NG ($array[1] までが $ の範囲と解釈される)
echo "{$array[1][0]}\n"; // OK

$var = 4;
$varName = 'var';
echo ${$varName} . "\n"; // OK (知らなきゃ "PHP 可変変数" でぐぐれ)
echo "${$varName}\n"; // OK

$arrayName = 'array';
echo ${$arrayName}[0] . "\n"; // OK
echo "${$arrayName}[0]\n"; // NG (${$name} までが $ の範囲と解釈される
echo "{${$arrayName}[0]}\n"; // OK

マニュアル嫁
http://php.net/manual/ja/language.types.string.php
http://php.net/manual/ja/language.variables.variable.php (可変変数)

ただ個人的には、もし>>378が職場の後輩だったら、こんな文法を駆使したプログラムなんか読み難くて糞だから厨二で卒業しろ
ちゃんと変数に代入して普通にechoしろって言う

380 :デフォルトの名無しさん:2015/03/01(日) 16:44:13.52 ID:NDBOI03r.net
>>379
なるうほど、可変変数や配列を使う以外は使用する必要がないといことですね。
そうでない場合(単に文字列を収めた変数)にも{}を使用している記述を見かけたので質問しましたが、そのサイトが誤ってるということですね。
ありがとうございました。

381 :デフォルトの名無しさん:2015/03/01(日) 16:50:28.49 ID:W+GQEi2b.net
>>363
JavaやっときゃPHPは簡単だぞ。逆は難しい
ギターとベースのような関係だ

382 :デフォルトの名無しさん:2015/03/01(日) 20:26:05.31 ID:/QNvxMin.net
PHP的には、
echo "{$var}";
の書き方だけやっときゃいいんじゃないの?

echo "${var}";
は、シェルスクリプト由来だと思うけど、例によって「余計なもの」つけちゃった仕様でしょ。

383 :デフォルトの名無しさん:2015/03/01(日) 21:39:12.47 ID:KsvF2WvU.net
Javaなんて企業勤めでもないと何の恩恵もないよね

384 :デフォルトの名無しさん:2015/03/01(日) 23:43:45.26 ID:4t5j5bTH.net
○○やっておけば楽っていうのならJavaじゃなくてC言語勧めるわ。

385 :デフォルトの名無しさん:2015/03/02(月) 00:06:58.65 ID:KLUkqw11.net
そうだなぁ。Cを"ちゃんと"使える人は基礎が出来てるからね。

386 :デフォルトの名無しさん:2015/03/02(月) 05:59:19.17 ID:rsjtQPNm.net
気が向いたのでこたえる(キリッ)

意訳
簡単な質問だから答えられる

387 :デフォルトの名無しさん:2015/03/02(月) 09:36:58.55 ID:u4SyLN4h.net
可変変数だけじゃなくて、 $var という変数で "$varvar" で困るからだし、
使う使わないはともかく、読める必要はある

388 :デフォルトの名無しさん:2015/03/02(月) 10:21:16.89 ID:QzRGZF5w.net
単純に、{ }で囲った方が読みやすいというのもあるな。

389 :デフォルトの名無しさん:2015/03/03(火) 09:06:42.18 ID:xikuZzZ1.net
多次元連想配列についての質問です。

$fruits[0]= array("kind_id" => "1", "name" => "ミカン", "from" => "和歌山", "seisan" => "山田" );
$fruits[1]= array("kind_id" => "1", "name" => "ぽんカン", "from" => "愛媛" ,"seisan" => "佐藤" );

という配列を

$fruits[1][ミカン] = array("from" => "和歌山" , "seisan" => "山田" );
$fruits[1][ぽんカン] = array("from" => "愛媛" , "seisan" => "佐藤" );
という形にしたいです。

↑の例はkind_idとnameがキーとなりましたが、このキーの個数も汎用性があるようなプログラムにしたいです
日本語変ですがよろしくお願いします

390 :デフォルトの名無しさん:2015/03/03(火) 09:29:03.39 ID:PeR2EUn1.net
foreach($fruits as $v)
$arr[$v['kind_id']][$v['name']] = array('from'=>$v['from'],'seisan'=>$v['seisan']);

391 :デフォルトの名無しさん:2015/03/03(火) 09:36:05.75 ID:5yCpJehD.net
>>389

<?php
$fruits = array(
array(
"ミカン" => array("from" => "和歌山", "seisan" => "山田"),
"ポンカン" => array("from" => "愛媛", "seisan" => "佐藤")
)
);

print_r($fruits);
print_r($fruits[0]);
print_r($fruits[0]["ミカン"]);

392 :デフォルトの名無しさん:2015/03/03(火) 09:50:04.73 ID:xikuZzZ1.net
>>389です
お二人ともありがとうございます

すみません、言いたいことが伝え切れてなかったのです
結果はお二人ので合ってるのですが
・ループを使いたい
・キーが増えた時に汎用性があるものにしたいのです
イメージ的には>>390のを汎用性があるように改造する感じです

今回の場合だとキーが2つなので
$keys = array("kind_id" ,"name");
というキーを指定する配列があるとします。
$keys = array("kind_id" ,"name","seisan");
のように増えた時にも対応したいのです。

393 :デフォルトの名無しさん:2015/03/03(火) 10:03:51.53 ID:xikuZzZ1.net
自分で考えたのは

$keys = array("kind_id" ,"name");の場合

foreach($keys as $k){
ここで
$fruits[kind_id][name] = array();
という連想配列を作る

これに>>390
foreach($fruits as $v){
$arr[$v['kind_id']][$v['name']] = array('from'=>$v['from'],'seisan'=>$v['seisan']);
}
を組み合わせたいです

394 :デフォルトの名無しさん:2015/03/03(火) 11:17:55.72 ID:PeR2EUn1.net
$keys = array("kind_id","name","from");
$fruits[0]= array("kind_id" => "1", "name" => "ミカン", "from" => "和歌山", "seisan" => "山田" );
$fruits[1]= array("kind_id" => "1", "name" => "ぽんカン", "from" => "愛媛" ,"seisan" => "佐藤" );

$arr=array();
foreach($fruits as $v){
$r = &$arr;
foreach($keys as $key){
if (!array_key_exists($v[$key],$r)) $r[$v[$key]] = array();
$r = &$r[$v[$key]];
}
$r = array_diff_key($v,array_flip($keys));
}
print_r($arr);

395 :デフォルトの名無しさん:2015/03/03(火) 13:27:41.76 ID:vf1rXF9z.net
全然違うよって話になるかもしれないけど、
その変換後のデータ形式を元に表を作りたいという要件なら
変換前のデータ形式のまま、連想配列のキー名を指定すれば表になるようなものを目指したほうがいいと思う。

396 :デフォルトの名無しさん:2015/03/03(火) 13:49:41.99 ID:J64zrXar.net
>>389です

>>394
何度もありがとうございます!
明日にならないと確認できないんですが、こんなやり方思いつかなかったので嬉しい

>>395
気にしてくれてありがとうございます
実はこれやりたいことの一部なので…


ちなみにやってることは、
2つのDBの同じデータが入ってるけど、カラム名が違う2つのテーブルのデータがホントに合ってるか比較するプログラムを作ってます
それの一部です

ここで言う$keysが比較するとき同じレコードを引っ張って来るためのユニークなカラム名で、
$fruitsがデータです

397 :デフォルトの名無しさん:2015/03/03(火) 14:47:30.97 ID:PeR2EUn1.net
>2つのDBの同じデータが入ってるけど、カラム名が違う2つのテーブルのデータがホントに合ってるか比較する
SQLで出来るんじゃね?

398 :デフォルトの名無しさん:2015/03/03(火) 15:01:14.05 ID:J64zrXar.net
>>397
実はおっしゃってる、SQL飛ばすバージョンのプログラムはもう出来てるんです
そっちの方が簡単ですよね

でもレコード数多いテーブルが結構あるらしく、上司に↑とは別に今回のプログラム(SQLは最低限しか投げずデータ取得し、プログラムでどうにかするというもの)を作れと言われ…
研修みたいなものです

399 :デフォルトの名無しさん:2015/03/03(火) 15:08:58.50 ID:5yCpJehD.net
力量を試すものなら人に投げちゃダメでしょw

400 :デフォルトの名無しさん:2015/03/03(火) 15:11:48.82 ID:J64zrXar.net
>>399
そうなんですけどわからなかったもので…サーセンw

401 :デフォルトの名無しさん:2015/03/03(火) 15:47:36.14 ID:vf1rXF9z.net
>>398
・上司案
 データ取得:比較元、比較先の2回クエリ発行
 データ比較:ロジック
 DBサーバとの通信量:多い

・みんなの案
 データ比較結果取得:クエリ1回
 DBサーバとの通信量:少ない

402 :デフォルトの名無しさん:2015/03/03(火) 22:42:58.09 ID:bhYwIQkT.net
>>389です

連想配列回すのとSQL飛ばすののサーバへの負荷の差はわからないですが、プログラムで処理しすぎるのも微妙ですよね

〆ます
皆さんありがとうございました!

403 :デフォルトの名無しさん:2015/03/04(水) 00:33:37.01 ID:aLbHB3FI.net
比較元のデータ抜いてきて、1件ごとにクエリ投げるようなお馬鹿なことしてなければ。

404 :デフォルトの名無しさん:2015/03/05(木) 07:56:45.48 ID:42cw4PSJ.net
mysqlのdbとposgresqlのdbにjoinしたsqlを投げることはできますか?

405 :デフォルトの名無しさん:2015/03/05(木) 07:58:12.01 ID:Z2cyKMvI.net
なぜ試してから質問しない

406 :デフォルトの名無しさん:2015/03/06(金) 10:36:51.69 ID:AIFKHCSQ.net
>>404
おまえのデバッグの為にここに人間がいるわけじゃない。
試しもせずに質問するような馬鹿は、板に来なくていい。


おまえじゃ、100万年経っても何もできないと言っておく。

407 :デフォルトの名無しさん:2015/03/06(金) 10:50:47.24 ID:qTEVlted.net
RDBMSをまたいでJOINしたいんじゃねーのw

408 :デフォルトの名無しさん:2015/03/06(金) 12:08:50.00 ID:XT9nODwv.net
アパッチ経由(ブラウザ)だと意図した結果になるんだが
ターミナルで実行するとエラーが出て動かない。
ターミナルPDOでデータベース接続していて、pdo接続時にエラーCatchして”ドライバがない"と表示されるが処理は進み
その後”PDOオブジェクトが生成させれていない”と表示され処理が終了する。
アパッチ経由だと接続して結果もちゃんと表示される。
ただしPDOオブジェクトをprint_r()で確認すると中身空っぽ(生成はされている)

PDOオブジェクトが空でもデータベースは接続されるのか?
それとも他になにか原因があるのか?

409 :デフォルトの名無しさん:2015/03/06(金) 12:59:15.57 ID:qTMDyHIM.net
両方で phpinfo()して違いを見れば分かるだろ
それぞれの設定は変えられるんだよ

410 :デフォルトの名無しさん:2015/03/08(日) 17:16:37.80 ID:90OQJ5F3.net
質問です。
よろしくお願いいたします。

PHPでの並列処理なんですが、

exec("nohup php -f omoi.php > /dev/null &");
return true;

omoi.phpは1分程度かかる処理なんですが、
期待してるのは、即時trueの返却、別プロセスでomoi.phpの処理なのに、待たされてしまってます。

411 :デフォルトの名無しさん:2015/03/08(日) 17:32:37.00 ID:psXgySVj.net
で、プラットフォームは何なの?(´・ω・`)

412 :デフォルトの名無しさん:2015/03/08(日) 17:48:55.01 ID:q94065c/.net
execはwindowsでは同期だ。他OSはしらん。
基本非同期で同期にするのが困難なnode.js使えば。

413 :デフォルトの名無しさん:2015/03/08(日) 18:43:56.83 ID:6V9jwiMr.net
>>410
stderrに何か出てるというオチはないの

414 :デフォルトの名無しさん:2015/03/08(日) 22:48:48.97 ID:90OQJ5F3.net
>>411
プラットフォームですか、、
サーバはhetemlなんですが、、
なんて答えたらいいんでしょう?
php ver5.4.27です。

#下記をphp.phpとしたら
<?php
function init(){
exec("nohup php -f omoi.php > /dev/null &");
return true;
}
init();
?>

php.phpにPOSTがあったら、即trueを返して別プロセスでomoi.phpを動かしたいのです。説明不足ですいません。

>>413
確認してみます。

415 :デフォルトの名無しさん:2015/03/08(日) 23:21:45.93 ID:4v0KO8Ne.net
phpって並列処理するならpthreadsでしょ

416 :デフォルトの名無しさん:2015/03/08(日) 23:31:53.20 ID:90OQJ5F3.net
>>415
ということはレンサバではキツそうですね。。。
VPSでやってみようと思います。
ありがとうございました!!

417 :デフォルトの名無しさん:2015/03/09(月) 00:12:07.80 ID:WyTJE+zr.net
バックグラウンドプロセスで起動するのとスレッド起こすのではずいぶん話が変わるけれど。
とりあえずstderrも捨てるようにして試してみたら?


ちなみに、これの真偽についてはしらないけど、そうなの?
> execはwindowsでは同期だ。

418 :デフォルトの名無しさん:2015/03/09(月) 00:13:07.76 ID:WyTJE+zr.net
あああと、通常プラットフォームといえばOSを指すよ

419 :デフォルトの名無しさん:2015/03/09(月) 00:53:49.45 ID:sOi42beA.net
>>417
/dev/nullはUNIX系OSのコマンド
Windowsでは認識されないから処理が止まる
解決策はManualに載ってる

420 :デフォルトの名無しさん:2015/03/09(月) 02:38:09.61 ID:ZguKliEH.net
コマンドとは言えないが

421 :デフォルトの名無しさん:2015/03/09(月) 03:19:02.65 ID:I2mO0aB9.net
超初心者です。お願いします。
mac os x 10.9.5

eclipseの日本語設定の質問です
ネットで見たままのやり方でpleiadesの中身を貼ったりiniで最後に-javaagent:../../../plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jarを追加しました。
しかし追加する前は起動するのですが、追加後は起動しません。
いくら調べても解決策がわからないので質問させて頂きました。
拙い質問ですが答えて頂けたら大変助かります。

422 :デフォルトの名無しさん:2015/03/09(月) 03:32:42.16 ID:WyTJE+zr.net
汎用くだ質じゃないですよ

423 :デフォルトの名無しさん:2015/03/09(月) 09:22:36.36 ID:qeIeMtGl.net
>>410
>>417
ありがとうございます。
/dev/null 2>&1
としてみましたが、やはり処理が終わってから trueが返ります。

並列と書いてしまいましたが、確かに並列ではなくバックグラウンドプロセスでした。
その処理の終了を待たずにtrueを返したいということが目的でした。

今更ですが、仕様としてはPOSTにてXMLが送られてきて中身を解析し、大体1000レコードぐらいをDBにインサートします。
構造は1対多になっているので、紐付くhasmany側を入れると1000*〜となります。
重複チェックもあり、クエリ数は相当数となります。

XMLでレスポンスを返すのですが、相手のタイムアウトが30秒で、処理を終わるのを待ってからでは難しいのでできないかな?と思いました。
引き続き悩んでみます。

424 :デフォルトの名無しさん:2015/03/09(月) 11:07:14.49 ID:dbEYjzPy.net
2>&1 はstderr出力をstdoutに回す指定だ。 & はそれとは別につける

425 :デフォルトの名無しさん:2015/03/09(月) 11:09:01.52 ID:dbEYjzPy.net
でも結局 nohup.out に出るような気が

426 :デフォルトの名無しさん:2015/03/09(月) 21:57:01.95 ID:qeIeMtGl.net
>>424

1> /dev/null 2> /dev/null
1> /dev/null 2>&1
とかやってみましたがダメでした。
nohupも取ってみましたがダメでした。

受け取ったXMLをDBなり、テキストなりに保存して、重い処理はCronをとか考えるようになっていますが、レンサバではあまり短い時間でcronを実行できないので、やっぱりVPS?とかいろいろ考えてます。
標準出力のリダイレクトのこと、今回初めて調べたのですが勉強になりました。
今までは「cronでメール送信を止めるもの」な理解でした。
アドバイスくださった方々ありがとうございます。

427 :デフォルトの名無しさん:2015/03/09(月) 22:54:38.75 ID:qeIeMtGl.net
できました!!
> /dev/null 2> /dev/null &
としたらできた!
ふとstackoverflowを確認したらこう書いてあって、試したらできました。
この&の意味がよくわからないので、調べてみます!
ありがとうございました!失礼します!

428 :デフォルトの名無しさん:2015/03/10(火) 00:28:33.54 ID:40zCF9Gm.net
linuxのお勉強からどうぞ

429 :デフォルトの名無しさん:2015/03/10(火) 09:49:51.10 ID:54L7jzsb.net
>>424 に書いてあるだろ

430 :デフォルトの名無しさん:2015/03/12(木) 22:21:29.74 ID:JaffYOCz.net
最近PHP勉強し始めたんだけど、安定性とサポート期間考えると今は何を使うのがいいの?
5.6の最新版がいいと思ったんだけど、バージョンを選ぶイロハあったら教えてください( ;´Д`)

知識は参考書読んでるけど、こういうバージョンとか運用の面は参考書にのってない( ゚д゚)

431 :デフォルトの名無しさん:2015/03/12(木) 22:34:46.39 ID:xsip/rYn.net
最新版でいいだろう。
基本的には前版と互換性がある。
古い版コードが最新版で動かない、最新版コードが古い版で動かないは僅かでそのときはネットで調べる。少々しかない。

432 :デフォルトの名無しさん:2015/03/12(木) 22:34:47.38 ID:vab9UUhA.net
自分が使う環境にあわせろとしか

433 :デフォルトの名無しさん:2015/03/12(木) 22:45:07.43 ID:mlnVAA5X.net
自由に選べるなら、もちろん5.6の最新版がいい。
ただ、レンタルサーバーなどでは、5.3だったりするので
そこを注意しておけばいいんじゃない。
あと古いコードだとDeprecatedエラーが出たりするので注意が必要。

参考書に関しては、PHP5であれば運用上の問題はほとんどないよ。
さすがにPHP4はやばいけど。

434 :デフォルトの名無しさん:2015/03/12(木) 23:33:53.07 ID:040+TJcm.net
5.2以前は化石なので、必要にならない限り知らない方がいい。

435 :デフォルトの名無しさん:2015/03/13(金) 01:07:12.21 ID:miWaPtrS.net
CentOS7使うなら5.4っていうのもあり。
公式でEOLが来てもOSがEOLになるまで緊急性の高い脆弱性は対処してくれるはず。

436 :デフォルトの名無しさん:2015/03/13(金) 20:18:33.88 ID:FQqfzrLS.net
php5からphp4へのデグレード作業がきつかった
業務でphp4のメンテナンスやってる奴等は
なんか労災とか貰っていいんじゃないか?

437 :デフォルトの名無しさん:2015/03/14(土) 02:23:33.30 ID:jyLQB1wB.net
下らない質問OKのスレタイなので
お言葉に甘えた質問なんですが、
皆さんってどういうきっかけでPHPを
始めたんですか?

438 :デフォルトの名無しさん:2015/03/14(土) 03:04:36.06 ID:UOAf6rNe.net
>>438
上司「やれ」
ぼく「ア、ハイ」

439 :デフォルトの名無しさん:2015/03/14(土) 03:05:15.13 ID:UOAf6rNe.net
>>437のミス

440 :デフォルトの名無しさん:2015/03/15(日) 04:37:19.18 ID:Jzltsf/u.net
仕事でメインフレーム開発ばかりだったから、趣味でwebにも手を出してみようと思った。
aspはiisだったから除外して、ちょうどphpが流行り始めた頃だったからperlと両方やってみた。
結果perlでの開発効率が悪かったからphpに絞った。
当時もテンプレートエンジンは存在してたし、それを使えば少しはよかったんだけど、
そこまで気合いれてやってたわけじゃないから。。
今はフレームワークも発達してどれも似たり寄ったりだけどねえ。

441 :デフォルトの名無しさん:2015/03/15(日) 07:06:59.57 ID:5K2B7oPu.net
質問です
日付の再フォーマットをしたいのですが、どのようなやり方が一番効率が良い(速い)ですか?
現在は↓のようにしています

$datetime = '2015-03-15 01:23:45';
$format = 'Y-m-d H:i:s';
$new_format = 'Y年n月j日 G時';

$Date = DateTime::createFromFormat($format, $datetime);
echo $Date->format($new_format);


他にも、

echo date($new_format, strtotime($date));

このようなやり方もあるので、どれが最適なのか分からず悩んでいます
この他にも違ったやり方がありましたら、それらも含めて一番良い方法を教えてください

442 :デフォルトの名無しさん:2015/03/15(日) 07:27:14.00 ID:WQl3FFdF.net
思いつくやつをすべて実測して報告してくれ

443 :デフォルトの名無しさん:2015/03/15(日) 07:30:07.66 ID:WQl3FFdF.net
日付の再フォーマットがボトルネックになっていて重要だったら
たぶん最速はC言語による日付の再フォーマットのモジュール化だろう。
自分は実測してはないが最低でも倍速、一桁変わるかもしれない。

444 :デフォルトの名無しさん:2015/03/15(日) 07:42:35.00 ID:5K2B7oPu.net
>>442-443
ボトルネックになってるわけじゃないんですが、ふと疑問に思った次第であります
今しがた↑の2つの方法で測ってみたところ手元の環境では前者の方が1.3倍ほど高速でした
かなり差が出たので不安でもあります(測り方を間違っていないかなどで)

もしどなたか他に良い方法をご存知であれば教えてください

445 :デフォルトの名無しさん:2015/03/18(水) 12:44:20.40 ID:rkVvy0oF.net
php7はいつでるのよ?

446 :デフォルトの名無しさん:2015/03/19(木) 05:56:24.95 ID:s+DBGS1U.net
http://php.net/manual/ja/ の左上のロゴがクルクル回って目が回るんですけど
止める方法ありますか?

447 :デフォルトの名無しさん:2015/03/19(木) 08:49:34.34 ID:DjmTGLqg.net
PHPを滅ぼすためにはどんな努力が必要ですか?

448 :デフォルトの名無しさん:2015/03/19(木) 12:50:56.63 ID:Mi/YioFJ.net
rubyはプログラミング初心者にもやさしくて
railsでウェブサービスを作るのは工数が少なく
安上がりだと教えましょう

449 :デフォルトの名無しさん:2015/03/19(木) 13:49:13.22 ID:Wt8pcZlV.net
>>448
Webサービスの話は板違いなんじゃないの

450 :デフォルトの名無しさん:2015/03/20(金) 00:07:17.85 ID:ezYrXVsa.net
WebProg板が過疎っちゃってついにこっちに来たかw
まぁ恥ずかしいから単発IDだろうけど

451 :デフォルトの名無しさん:2015/03/20(金) 01:25:37.78 ID:gj2WpmKA.net
今日中に完成させないと帰れないので教えてください。



エクストリムサーバを使っています。
現在

php で mkdir コマンドを実行してもディレクトリがなぜか
作成出来ません。

mkdirの戻り値が false になってしまいます。

何が原因なのでしょうか?

452 :デフォルトの名無しさん:2015/03/20(金) 01:28:31.64 ID:f7yJj+Mt.net
>>451
エラーログは見たの?

453 :デフォルトの名無しさん:2015/03/20(金) 01:32:05.79 ID:gj2WpmKA.net
>>452
まだみていないです。

エクストリムの管理画面をのぞいて確認してみます。

454 :デフォルトの名無しさん:2015/03/20(金) 01:45:53.62 ID:oGoXNJGN.net
作成しようとしてる場所のパーミッションを確認してごらん

455 :デフォルトの名無しさん:2015/03/20(金) 01:47:58.26 ID:oGoXNJGN.net
それと、入れ子構造なら第三引数をtrueにする

456 :デフォルトの名無しさん:2015/03/20(金) 01:57:25.90 ID:gj2WpmKA.net
ありがとうございます。

一応 755に設定しているのですが、、、


もう少し色々と試してみます。
他のサーバ(さくら等)であれば正常に動作するのに
エクストリムのみ動かないんです。。。


安いサーバはダメですね

457 :デフォルトの名無しさん:2015/03/20(金) 02:04:47.64 ID:oGoXNJGN.net
>>456
他で動いてるなら、そのサーバーはOwnerとGroupが違ってるんじゃないの?
作成場所を777にして試してみたらどうだろうか
これ以上はエスパーできないからログや実行してるコマンドがないと無理

458 :デフォルトの名無しさん:2015/03/20(金) 02:07:15.31 ID:gj2WpmKA.net
>>457
ありがとうございます!!!!!!!!!!!!
動きました!!!!!!!!!!!

459 :デフォルトの名無しさん:2015/03/20(金) 23:07:23.98 ID:Kn1Oysu5.net
突然すみません、初心者です。
10桁の重複しない整数をランダムで出力したいのですが、どのようにすればよいでしょうか?
ご教授お願いします。

460 :片山博文MZ ◆T6xkBnTXz7B0 :2015/03/21(土) 00:00:47.38 ID:rA11USYH.net
>>459
$s = '';
$a = array();
$digits = '0123456789';
for ($i = 0; $i < 10; ++$i) {
$c = rand() % (10 - $i);
for ($j = 0; $j < $i; ++$j) {
if ($a[$j] <= $c) { ++$c; }
}
$a[] = $c;
$s .= $digits[$c];
}
echo $s;

461 :デフォルトの名無しさん:2015/03/21(土) 01:03:29.74 ID:Xyj3Py7G.net
>>460
言葉足らずで申し訳ありません。
10桁の重複しない整数をランダムで前通り出力したいです。
何卒よろしくお願いしますm(_ _)m

462 :デフォルトの名無しさん:2015/03/21(土) 01:08:40.94 ID:Xyj3Py7G.net
×前通り
○全通り です
0000000000〜9999999999の範囲になります
ご教授お願いします

463 :デフォルトの名無しさん:2015/03/21(土) 01:10:14.98 ID:b4FQIC21.net
配列の中身を、ランダムに入れ替える、
shuffle 関数は無いの?

Rubyでは、配列.shuffle
[0..9].shuffle

でも、頭に0が来ると、やり直しかな?

464 :デフォルトの名無しさん:2015/03/21(土) 01:12:09.47 ID:Xyj3Py7G.net
>>463
shuffle 関数はあるのですがメモリの使用量が莫大になってしまい読み込みの処理が出来ませんでした

465 :デフォルトの名無しさん:2015/03/21(土) 01:17:52.65 ID:b4FQIC21.net
全通りなら、(頭に0が付くものを除いてから?)
すべての順列を求めて、配列に格納する

そしてその結果配列から、ランダムに1つを選ぶ

Rubyでは、配列.sample

466 :デフォルトの名無しさん:2015/03/21(土) 01:22:24.50 ID:Xyj3Py7G.net
配列への格納 がデータ量が多すぎてメモリ的に不可能でした

467 :デフォルトの名無しさん:2015/03/21(土) 01:29:32.13 ID:whATksAH.net
メモリの上限を上げたら?
ini_set('memory_limit', 150M); //150MBで足りなければ増やす
これで解決する
処理を終えて元に戻したければini_get('memory_limit');の値を予め保持して再設定すればいい

あと、質問の後出しはしないようにね

468 :デフォルトの名無しさん:2015/03/21(土) 01:37:17.83 ID:Xyj3Py7G.net
>>467
はい、すみませんでした。。。
メモリ使用量2GBで1000万のデータを配列に読み込むのが限界でした。
なので重複しない整数をダイレクトに出力したいです。

469 :デフォルトの名無しさん:2015/03/21(土) 03:50:08.63 ID:Xyj3Py7G.net
467です。
ご迷惑をおかけしました。
少しやり方を変えることにしました、また分からないことが出てきたら質問したいのでよろしくお願いします。

470 :デフォルトの名無しさん:2015/03/22(日) 01:52:10.58 ID:zalLAL+t.net
すべての順列を、表に持たないで、
頭の中だけで、すべての順列を、
昇順または降順でソートしたものを、想定しておく。
そしてその都度、ソート後の並び順より、計算して求める

12345, 12354, 12435, 12453...
54213, 54231, 54312, 54321

例えば、5つの数字では、5! = 5 * 4!(=24) = 120

Rubyでは、配列.shuffle
[1..120].shuffle → 例えば、27が出たら、

27 / 24 = 1 余り 3 → 先頭は2
3 / 3!(=6) = 0 余り 3 → 先頭から21

3 / 2!(=2) = 1 余り 1 → 先頭から214
これはすでに使っている数字、1,2を除いて考える。
余りが0なら、21435だが、1なので21453となる

471 :デフォルトの名無しさん:2015/03/22(日) 02:19:28.23 ID:+Q19Br9U.net
>>469
単純に一桁ずつrandかなんかで決めていけばよくね?

あとその個数の配列でshuffleするのは、メモリが足りていてもやるべきではない。
たかが乱数値取るのにメモリ食いすぎるのもそうだけど、その個数分shuffleするのにどれだけ時間がかかることか。

472 :デフォルトの名無しさん:2015/03/22(日) 03:22:45.27 ID:Cl7axnxP.net
これ自体なんのやくに立つのか分からないが。PHP限定でやるには荷が重過ぎないか。
たとえば、0から9999999999までループさせて+1を計算するだけで相当時間かかるぞ。
周期が10^11-1である乱数らしいものを生成する式を使うのはどうか。



> 10桁の重複しない整数をランダムで前通り出力したいです。

473 :デフォルトの名無しさん:2015/03/22(日) 03:34:10.23 ID:Cl7axnxP.net
擬似乱数の周期を求めるより、与えられた周期の擬似乱数を求めるほうが難しいとおもう。
この辺に擬似乱数のこと書いてあるが。10^11-1の周期のものはどうやったら見つかるものか。



有限体の擬似乱数への応用
http://www.math.sci.hiroshima-u.ac.jp/~m-mat/TEACH/0407-2.pdf

474 :デフォルトの名無しさん:2015/03/22(日) 11:57:53.05 ID:RzBEcZyq.net
ランダムな値を生成して
dbaで保持っておけばいいだけだよね

475 :デフォルトの名無しさん:2015/03/22(日) 12:21:30.99 ID:RzBEcZyq.net
32bitの乱数生成して1000000000でmodとればいいだけ

476 :デフォルトの名無しさん:2015/03/22(日) 12:59:06.48 ID:0IynoJqq.net
>>475
え?算数できない人?

477 :デフォルトの名無しさん:2015/03/22(日) 19:02:57.24 ID:kFSoFK6v.net
>>476
ツッコミが浅い

478 :デフォルトの名無しさん:2015/03/24(火) 00:46:11.82 ID:Pei7Q5Ow.net
 

479 :デフォルトの名無しさん:2015/03/24(火) 00:49:22.86 ID:Pei7Q5Ow.net
$lines = array("name1<>180<>100","name2<>190<>125","name3<>160<>80","name4<>200<>200","name5<>175<>90");

480 :デフォルトの名無しさん:2015/03/24(火) 00:50:08.21 ID:Pei7Q5Ow.net
function cmp($a,$b){
$k=2;
$list_a = explode("<>", $a);
$list_b = explode("<>", $b);

if($list_a[$k] == $list_b[$k]){return 0;}
if($list_a[$k] < $list_b[$k]){return -1;}
else{return 1;}

}

481 :デフォルトの名無しさん:2015/03/24(火) 00:50:39.29 ID:Pei7Q5Ow.net
usort($lines,"cmp");

foreach($lines as $line){
print "line=$line<br>";
}

行単位でソートをしたいのですが
$kはソートの基準番号です
この場合$k=2;となっていますが$kを引数として渡す方法を教えてください
cmp($a,$b,$k)として
usort($lines,cmp($a,$b,2))としてもだめでした

482 :デフォルトの名無しさん:2015/03/24(火) 01:27:49.86 ID:zkeD9l/s.net
usort($lines, function($a, $b){
return cmp($a, $b, 2);
});
こんな感じでどうだろう

483 :デフォルトの名無しさん:2015/03/24(火) 19:32:12.82 ID:+bpB/1qX.net
モテる!PHP
って本のタイトル思い付いたんだけど
どうだろうか?

484 :デフォルトの名無しさん:2015/03/25(水) 04:36:19.70 ID:WgKCwIYk.net
8年ぐらい前ならよかったかもな

485 :デフォルトの名無しさん:2015/03/25(水) 09:27:56.40 ID:B13xpX6A.net
ハゲる!PHPって本のタイトル思い付いたんだけど
どうだろうか?

486 :デフォルトの名無しさん:2015/03/25(水) 09:59:50.03 ID:aN5inpo9.net
自分が禿げてるからって人を巻き込もうとするなよ

487 :デフォルトの名無しさん:2015/03/25(水) 20:11:46.27 ID:NVq1fR41.net
また髪の話ですか...

488 :デフォルトの名無しさん:2015/03/25(水) 21:42:55.99 ID:khkApypB.net
phpからスレ一覧取得しようとすると403 Forbiddenになる。仕様変更したからぽいけど、解決法分かります?
ブラウザからだと普通に見れるし、特に何も必要ないはずなんだが

$thread_list=file_get_contents("http://peace.2ch.net/tech/subject.txt");

489 :デフォルトの名無しさん:2015/03/25(水) 22:26:50.84 ID:Hdvsam71.net
試すとこれだけで表示する

<?
$thread_list=file_get_contents("http://peace.2ch.net/tech/subject.txt");
print_r($thread_list);

490 :デフォルトの名無しさん:2015/03/25(水) 22:32:32.06 ID:8rk42Qme.net
>>486
絶対版元が同意しないw

491 :デフォルトの名無しさん:2015/03/25(水) 22:36:46.45 ID:khkApypB.net
>>489
あー別の鯖使ったら普通に表示したわ・・
さくら鯖が弾かれてるだけだった
スレ汚しスマソ

492 :デフォルトの名無しさん:2015/03/25(水) 22:51:18.71 ID:mXwCiPPa.net
phpでは関数に配列を普通に渡すときは配列のコピーが生成されるってことですか?
そうするとメモリ食いそうだけど

phpでは&をつけて配列の参照渡しをするより普通に渡したほうがいいのでしょうか?

493 :デフォルトの名無しさん:2015/03/26(木) 08:47:53.10 ID:sbYfUV2c.net
>>492
参照渡ししなくても内部では参照ですのでメモリ確保しません
書き換えるとコピーします

494 :デフォルトの名無しさん:2015/03/28(土) 17:04:05.78 ID:BzFWUJ2D.net
便乗だけど、&つけた参照渡しは速度が遅くなったり使用メモリが増えたりしますか?
つけてもつけなくてもいいのなら、明示的につけた方がわかりやすい場面もあるのでつけようと思いますが、どうなんでしょう?

495 :デフォルトの名無しさん:2015/03/28(土) 17:17:07.29 ID:Pu+VtIJn.net
そこまで負荷を気にしてプログラム組むなら
PHP内部で変数がどういう扱いになってるか調べたらいいと思うよ

単に参照渡しにするというだけのことに関して言えば、遅くなるとかメモリがということはない
けど、つけてもつけなくてもいい ということはない

496 :デフォルトの名無しさん:2015/03/28(土) 17:37:28.43 ID:BzFWUJ2D.net
>>495
遅くなったりメモリが増えたりはないんですね、ありがとうございます
どう扱われているかは気になったので調べてみることにします

497 :デフォルトの名無しさん:2015/04/01(水) 19:21:35.99 ID:pYYryVxA.net
7で、ガラリと変わるけどな。

498 :デフォルトの名無しさん:2015/04/02(木) 12:28:51.49 ID:INFrUse2.net
7いつだよはよこい

499 :デフォルトの名無しさん:2015/04/02(木) 18:26:34.08 ID:gm7HoNp7.net
初心者です
Symfonyのバリデートとはフォームに入力された値が存在するか、値があってるかチェックするという意味でいいのでしょうか?
日本語ドキュメント見たけどわからなくて

500 :デフォルトの名無しさん:2015/04/02(木) 19:02:14.86 ID:w0RukMoF.net
Symfonyは知らないが、一般的なFromのValidationはそういう用途に使われるよ

501 :デフォルトの名無しさん:2015/04/02(木) 19:03:08.81 ID:w0RukMoF.net
Symfony専門の質問ならSymfonyスレで聞いた方がいいね

502 :デフォルトの名無しさん:2015/04/08(水) 10:17:51.99 ID:G2jb+k0p.net
7は秋からか
かなり速くなったみたいだけど

503 :デフォルトの名無しさん:2015/04/08(水) 18:49:57.55 ID:exoXdHy3.net
facebookの奴と同等らしいな

504 :デフォルトの名無しさん:2015/04/09(木) 12:24:39.69 ID:SXMrA4Vi.net
workerとかで動くようになるといいなあ

505 :デフォルトの名無しさん:2015/04/09(木) 15:22:18.40 ID:Y8qSNfSy.net
継承関係とかには無いんだけど、メンバ変数名とかそっくりな
ふたつのクラスを相互にコピーしたいとき、どうしたらいいかな。
コピー先に無い変数はNULLのままでいいです。

506 :デフォルトの名無しさん:2015/04/11(土) 01:59:23.46 ID:Ekh++R8a.net
プログラム初心者です
ソースを見やすくするために\tでタブを入れているのですが、コードが\tだらけになってプログラム自体が読みにくくなってしまいます
何か良い方法はないでしょうか?


echo "$test\n\t\t\t";
echo "<br /><br />\n\t\t\t";
echo "$test2\n";

507 :デフォルトの名無しさん:2015/04/11(土) 03:57:37.04 ID:o8nmaZnG.net
(出力されたHTMLの)ソースを見やすくするために
ってことだよね。

・Tidyなどの出力整形ライブラリを使う
・インデントせずに出力して、ソースを見るときにエディタで再インデントする
・\tではなく、タブコードを入れる
・ヒアドキュメントを使う
・テンプレートエンジンを使う
とか。

508 :デフォルトの名無しさん:2015/04/11(土) 08:29:57.15 ID:J/M2FJ7a.net
MVC分離してテンプレートでやるようなもんだが初心者には難しい課題だな
出力されたソースに不備がないか検証したいが目的でそのようなことをやってるなら
出力されたソースをlintにでもぶっこめばいいんじゃないかね

509 :デフォルトの名無しさん:2015/04/11(土) 17:52:50.99 ID:Ekh++R8a.net
>>507-508
ありがとうございます
色々試してみましたが、自分には難しいようなのでもう少し理解を深めてからこの辺りをやっていこうと思います
ブラウザ上のソースがみにくくても今のところ自分に困る事はないので、コードは適度にインデントをつけてやっていきます

510 :デフォルトの名無しさん:2015/04/11(土) 18:51:56.39 ID:o8nmaZnG.net
>>509
http://www.php-labo.net/tutorial/php/heredocument.html

511 :デフォルトの名無しさん:2015/04/16(木) 03:05:04.14 ID:Lxb5p7kV.net
imagefilledrectangle使って画像を生成してるんだけど、生み出した画像が200ちょい超えたところで新しく作れないような症状が出たっぽいんだけど、作れる数に制限があるんでしょうか?

512 :デフォルトの名無しさん:2015/04/16(木) 03:18:10.30 ID:Lxb5p7kV.net
200ちょっとじゃなくて256くらいでした
これはダメなやつっぽいですね

513 :デフォルトの名無しさん:2015/04/16(木) 09:52:06.43 ID:M8stHknI.net
エラーは出てるの?
メモリ上限に達してるんじゃ

514 :デフォルトの名無しさん:2015/04/16(木) 10:02:52.10 ID:Lxb5p7kV.net
エラーは出ないです。
40回ループの中に40回ループを入れ子して画像を出してます。
両ループともエラーを出さずに最後まで回りますが256枚表示したところで描画が止まってるようです。
imgpngした時点で、命令した内の最初から数えて256枚までは出力してるような状態なのかなと思ってます。
画像一枚の大きさは1ピクセルです。
解決できそうでしょうか?

515 :デフォルトの名無しさん:2015/04/16(木) 12:08:34.98 ID:M8stHknI.net
>>514
再現しない
俺のやり方が違うかもしれんから最小コード出してみて

516 :デフォルトの名無しさん:2015/04/16(木) 12:23:11.43 ID:Lxb5p7kV.net
>>515
ありがとうございます。
あと20分ほどしたら家に着くのでその時に書き込みます。

517 :デフォルトの名無しさん:2015/04/16(木) 13:03:34.74 ID:Lxb5p7kV.net
<?php
//header("Content-Type: text/html; charset=UTF-8");

$nam = $_GET['nam'];
$ex = explode(",", $nam);
header("Content-type: image/png");
$img = imagecreate(40, 40);
$background_color = imagecolorallocatealpha($img, 100, 255, 255, 110);

imagefilledrectangle($img, 0, 0, 0, 0, $background_color);

$i = 0;
$i2 = 0;
$i3 = 0;
$dotnam = 0;
$red = 0;
$green = 0;
$blue = 0;
$x_kaishi = -1;
$x_shuuten = -1;
$y_kaishi = 0;
$y_shuuten = 0;

while ($i <= 39) {
while ($i2 <= 39) {

$red = 1;
$green = 1;
$blue = 1;

518 :デフォルトの名無しさん:2015/04/16(木) 13:04:52.41 ID:Lxb5p7kV.net
$x_kaishi += 1;
$x_shuuten += 1;
$ex[$dotnam] = imagecolorallocatealpha($img, $red, $green, $blue, 0);

imagefilledrectangle($img, $x_kaishi, $y_kaishi, $x_shuuten, $y_shuuten, $ex[$dotnam]);

$i2 += 1;
$dotnam += 1;
$i3 += 1;
}
$y_kaishi += 1;
$y_shuuten += 1;
$x_kaishi = -1;
$x_shuuten = -1;
$i += 1;
$i2 = 0;

}

imagepng($img);

imagepng($img, './a.png');

imagedestroy($img);

?>

以上です。

519 :デフォルトの名無しさん:2015/04/16(木) 13:20:50.07 ID:Lxb5p7kV.net
あと、最初に背景画像は絶対必要ですか?

この部分

$img = imagecreate(40, 40);
$background_color = imagecolorallocatealpha($img, 100, 255, 255, 110);

imagefilledrectangle($img, 0, 0, 0, 0, $background_color);


これがなければ例えば256枚制限だとしたら、16×16ドットの画像が生成出来るんですけど、背景入れると1ドット欠けてしまうので。

520 :デフォルトの名無しさん:2015/04/16(木) 13:25:10.68 ID:j5PiUgUc.net
最初言ってたのとぜんぜん違うし 生み出した画像が200とか・・・画像は1枚じゃん
なんかひどいソースだなぁ

とりあえず、画像色は画像IDというリソースで制限があるみたいだね
imagefilledrectangle
の下で
imagecolordeallocate ( $img,$ex[$dotnam]);
入れてください

配列に保存してる意味がさっぱりないですが

521 :デフォルトの名無しさん:2015/04/16(木) 13:42:57.27 ID:Lxb5p7kV.net
>>520
解決出来ました!ありがとうございます。

だめだめな文については返す言葉もないです。

522 :デフォルトの名無しさん:2015/04/16(木) 13:43:04.46 ID:j5PiUgUc.net
・・・ごめん違うね そこで開放しちゃだめだ
そもそもの問題は 色IDが255までってことだった

1色で塗るだけなら 色は1個だけにするべきだし
全部のピクセルをもっといろんな色で塗りわけたいなら
imagecreate を imagecreatetruecolor にしてください

523 :デフォルトの名無しさん:2015/04/16(木) 13:48:29.01 ID:j5PiUgUc.net
>>521
真っ黒くなったでしょう
何をしたいのかは分からないけど、それだと
指定した色で塗られてるわけじゃないからね
header("Content-type: image/png");
$width=40;
$height=40;
$img = imagecreatetruecolor($width, $height);
$background_color = imagecolorallocatealpha($img, 100, 255, 255, 110);
imagefilledrectangle($img, 0, 0, 0, 0, $background_color);
for($x=0;$x<$width;$x++)
for($y=0;$y<$height;$y++){
$red = ($x*4+$y)%255;
$green = ($x+$y*4)%255;
$blue = ($x*3+$y*3)%255;
$c=imagecolorallocatealpha($img, $red, $green, $blue, 0);
imagesetpixel($img,$x,$y,$c);
}
imagepng($img);
imagepng($img, './a.png');
imagedestroy($img);

524 :デフォルトの名無しさん:2015/04/16(木) 14:19:56.19 ID:Lxb5p7kV.net
>>522
色んな色で塗りたいんですが、truecolorにしてしまうとalphaで透過が効かなくなって、塗ってない部分に背景色の黒(truecolor部分?)が見えてしまうんですが、その場合はどうしたらいいですか?

525 :デフォルトの名無しさん:2015/04/16(木) 14:41:01.84 ID:j5PiUgUc.net
header("Content-type: image/png");
$width=40;
$height=40;
$img = imagecreatetruecolor($width, $height);
$background_color = imagecolorallocatealpha($img, 255, 0, 0, 0);
imagefilledrectangle($img, 0, 0, $width, $height, $background_color);
for($x=0;$x<$width/2;$x++)
for($y=0;$y<$height;$y++){
$red = ($x*4+$y)%255;
$green = ($x+$y*4)%255;
$blue = ($x*3+$y*3)%255;
$c=imagecolorallocatealpha($img, $red, $green, $blue, 60);
imagesetpixel($img,$x,$y,$c);

}
imagesavealpha($img, true);
imagepng($img, './a.png');
imagedestroy($img);

526 :デフォルトの名無しさん:2015/04/16(木) 15:10:38.65 ID:WwBzC5aK.net
>>525
ありがとうございます。また外に出てるので帰ったら組み立ててみます。


あと、皆さんに質問なんですけど良ければ答えてもらえると嬉しい。

プログラミングはどうやったら上達しますか?
今自分が採ってる方法は基礎なしで、目的の動作をさせるために適当に(検索にかけるべき言葉もわからないので)ググって例文を見つけては貼り付けて組み合わせてるだけなんです。

作りたくないものでも、教科書的なものに従って順に覚えていく方が上達するんですか?

あと、PHPはPHPでも得意とする分野というのがプログラマーさんによって違うんでしょうか?
例えば、音楽の再生?が得意だったり画像の出力が得意だったり、とか。
つまり、偏りがあるのかなあと思って。

PHPの全てをマスターするのも本分ではないし、PHPのここが得意になる!という目指し方でもいいんでしょうか?
よろしくお願いします。

527 :デフォルトの名無しさん:2015/04/16(木) 16:00:04.91 ID:j5PiUgUc.net
一人で勉強する以上、PHPとか言語に関係ない部分での能力が必要です
あなたがやりたかったことは、検索すれば全部分かることです

truecolorにしてしまうとalphaで透過が効かなくなってるなら、
truecolor imagecolorallocatealpha 透過 で検索ですよ

プログラマにとって、得意なことだの、やったことのあることかどうか
なんてのは大事じゃないんですよ

528 :デフォルトの名無しさん:2015/04/16(木) 16:22:29.70 ID:M8stHknI.net
2chが重くて全然見れなかった・・・file関連で攻撃受けてるの?
質問の方は、他の方が解答して解決したようなのでなによりです
頑張ってね

529 :デフォルトの名無しさん:2015/04/16(木) 16:30:05.43 ID:icRCAjY/.net
好きこそ物の上手なれ

530 :デフォルトの名無しさん:2015/04/16(木) 20:08:35.22 ID:8DghKf0U.net
PHPによるWEBアプリ開発では、アサーションはあまり使わないのですか?
PHPの入門書では、assert関数って出てきませんよね。

http://php.net/manual/ja/function.assert.php
http://php.net/manual/ja/function.assert-options.php

531 :デフォルトの名無しさん:2015/04/16(木) 22:13:25.45 ID:3UComU26.net
>>530
標準のアサーションだとなんか失敗した、としか判らないからね
PHPUnitのようなテストフレームワークを使うのが主流だよ

532 :デフォルトの名無しさん:2015/04/16(木) 22:26:35.04 ID:caSB52ZJ.net
>>531
なるほど。素直にPHPUnitを使うようにします。
ありがと。

533 :デフォルトの名無しさん:2015/04/17(金) 04:11:51.25 ID:xa27KbBr.net
>>531
> 標準のアサーションだとなんか失敗した、としか判らないからね
そうでもない
http://php.net/manual/ja/function.assert.php

534 :デフォルトの名無しさん:2015/04/21(火) 18:46:22.33 ID:4N8iHnMp.net
phpdocの書き方で
@param で 入力と出力を区別したいときは
[in][out]使っても大丈夫?

535 :デフォルトの名無しさん:2015/04/22(水) 19:18:58.54 ID:GzvvVOyO.net
【OS名】Windows8.1 Pro 64bit
【PHPのバージョン】5.6.3
【連携ソフトウェア】MySQL
【質問内容】
Windows8.1 Proにてxampp 5.6.3を使用しています。
pear installにてpearもインストールしています。
HTTP_Request2を利用するプログラムにアクセスしたところ、
---
Fatal error: Class 'HTTP_Request2' not found in ほにゃらら.php on line 266
---
と出力され、エラーとなってしまいます。
pear listで確認しても、
---
HTTP_Request2 2.2.1 stable
---
と出力され、インストールされているようです。
何が原因なのかさっぱり分からず、悩んでいる状態です。
なにか助言等いただけないでしょうか?

536 :デフォルトの名無しさん:2015/04/22(水) 20:04:21.91 ID:j4sfg3bP.net
>>535
ほにゃらら.php の266行目見ろって書いてあるじゃん。

537 :デフォルトの名無しさん:2015/04/22(水) 20:27:37.77 ID:GzvvVOyO.net
>>536
ほにゃらら.phpの266行目は
---
$req = self::getHTTPRequest2($url, HTTP_Request2::METHOD_GET);
---
と、HTTP_Request2を呼び出しているだけなんです。
で、ここでエラーが出たままにっちもさっちもいかない状態です。

538 :デフォルトの名無しさん:2015/04/22(水) 20:55:41.17 ID:j4sfg3bP.net
>>537
わかってんじゃん。一個ずつ問題潰してきゃいいじゃん。

539 :デフォルトの名無しさん:2015/04/22(水) 21:59:21.16 ID:GzvvVOyO.net
>>537
誠にど素人的発言で申し訳ないのですが、その問題の潰し方が分からなくて悩んでいるのです。
申し訳ございません。

540 :デフォルトの名無しさん:2015/04/23(木) 00:01:54.68 ID:3uxxFF8+.net
>>539
pearのライブラリにパス通ってないとか。php.ini確認

541 :デフォルトの名無しさん:2015/04/23(木) 01:31:23.64 ID:UbFbi6S3.net
>>540
そこは最初に確認したのですが、
--
inclulde_pach=".;C:\xampp\php\PEAR;"
--
と、PEARのライブラリにパスは通った状態のようです。
情報後出しばかりで申し訳ありません。

542 :デフォルトの名無しさん:2015/04/23(木) 01:41:47.01 ID:rwZnJZ09.net
inclulde_pach?

543 :デフォルトの名無しさん:2015/04/23(木) 02:25:17.41 ID:UbFbi6S3.net
>>542
あぁ、記入ミスです。
「include_path」でした。重ね重ね申し訳ありません。

544 :デフォルトの名無しさん:2015/04/23(木) 04:04:37.65 ID:r7EBgXZ0.net
>>541
実行時にそうなってるか確認した?

545 :デフォルトの名無しさん:2015/04/23(木) 04:09:11.43 ID:IIHzOglt.net
あとPHPのバージョンとエラー吐いた時のURL

546 :デフォルトの名無しさん:2015/04/23(木) 04:09:33.26 ID:r7EBgXZ0.net
なんかrequireしてないだけって気がしだした

547 :デフォルトの名無しさん:2015/04/23(木) 10:54:45.24 ID:drWRwQRf.net
それっぽそう

548 :534:2015/04/23(木) 20:37:50.92 ID:UbFbi6S3.net
>>535です。お世話になっております。
もうぶっちゃけちゃいますと、
 https://github.com/2ch774/p2-php
のプログラムで悩んでおります。HTTP_Request2が導入されるまでは動作していたのですが、
HTTP_Request2を使うように変更されてから
--
Fatal error: Class 'HTTP_Request2' not found in P2Util.php on line 266
--
というエラーが出るようになっていました。phpの環境はいじっていません。
phpinfoで確認すると、
--
include_path=.;C:\xampp\php\PEAR;
--
となっています。
Requireされていないのでは、との指摘があったので、試しにP2Util.phpのエラーが出る前の行に
--
require('c/\xampp/php/pear/HTTP/Request2.php')
--
と書いてみたところ、クラスが見つからないとのエラーは出なくなったのですが、今度は
別のエラーが出るようになってしまいました。
また、”まとめ読み”という機能があるのですが、これを実行してもHTTP_Request2のクラスが
見つからないとのエラーが出ました。
とりあえず変更したP2Util.phpを元に戻し、
「これは全体的にPEARライブラリがincludeされてないんじゃないかなぁ?」
と思いながら再度実行してみると、今度は何事もなかったかのように正常に動きました。
phpの環境は何も変更していないのに……apacheを再起動しても、やはり同じ様に正常に動きました。

何が何だかさっぱり分からないまま正常に動くようになったようです。
なんだかとても気持ち悪いですが、とりあえずいったん質問をクローズさせていただきます。
みなさま、どうもありがとうございました。

549 :デフォルトの名無しさん:2015/04/23(木) 20:54:54.10 ID:r7EBgXZ0.net
>>548
↓これはやったの?

動作環境
以下のコマンドを実行して、全ての項目で OK が出たなら大丈夫です。
何かエラーが出たらがんばって環境を整えてください。
php scripts/p2cmd.php check

550 :デフォルトの名無しさん:2015/04/23(木) 22:49:19.78 ID:UbFbi6S3.net
>>549
動かなくなったときにやりました。
 php scripts\p2cmd.php check
ですべてOKもでましたし、
 php scripts\p2cmd.php update
で関連ファイルの更新も行いました。
それでも動かなかったので悩んでいたんです。

551 :デフォルトの名無しさん:2015/04/23(木) 22:51:12.41 ID:r7EBgXZ0.net
そっか。まぁ動くようになってよかった。

552 :デフォルトの名無しさん:2015/04/24(金) 15:21:08.71 ID:CdNzOuAf.net
PHPで名前入力する際に、名前が妥当かを判断するにはどうしたら良いでしょうか?
送られてくる値はUTF8で、名前にはひらがな/漢字/半角アルファベットを許容したいです。(数字や記号は拒否したい)
正規表現?を使えば良いようですがどのように書いたらいいのかわかりません
よろしくお願いします

553 :デフォルトの名無しさん:2015/04/24(金) 15:29:39.15 ID:nbG5ZGP2.net
>>552
ググったら見つかったが
preg_match("/^[a-zA-Zぁ-んァ-ヶー一-龠]+$/u",$name)

554 :デフォルトの名無しさん:2015/04/24(金) 15:32:30.55 ID:5uVSKzYn.net
今からC始めるのは無意味ですか?

555 :デフォルトの名無しさん:2015/04/24(金) 15:41:10.13 ID:qImV3X6l.net
>>552
preg_match('/\A[\p{Hiragana}\p{Han}a-zA-Z]+\z/u' , $name )

>>554
スレチ

556 :デフォルトの名無しさん:2015/04/24(金) 15:45:46.33 ID:CdNzOuAf.net
>>553
>>555
ありがとうございます!

557 :デフォルトの名無しさん:2015/04/24(金) 15:58:59.35 ID:qImV3X6l.net
佐々木さんでチェックしてみてね

558 :デフォルトの名無しさん:2015/04/25(土) 02:52:29.20 ID:Jt8VYq7n.net
半角アルファベットを許容するなら全角も許容したい。

559 :デフォルトの名無しさん:2015/04/25(土) 11:01:52.61 ID:TkDEI2+D.net
半角alphaは外人用とわかるが
全角alphaを使う名前の持ち主なんてこの世に存在するのか?

560 :デフォルトの名無しさん:2015/04/25(土) 19:34:22.97 ID:CcP3xJY9.net
そう思うのであれば全角アルファベットを許容した上で半角変換をすればよい

561 :デフォルトの名無しさん:2015/04/27(月) 12:29:57.40 ID:fsx4AjcX.net
.phpのファイルをアップロードしてて、そのphpファイル自体をダウンロードされる事は無いんですか。

562 :デフォルトの名無しさん:2015/04/27(月) 12:46:50.48 ID:N2foMO9n.net
あるだろ。PHPもTXTもCPPもテキスト。

563 :デフォルトの名無しさん:2015/04/27(月) 15:51:49.94 ID:tqpe0E7p.net
>そう思うのであれば全角アルファベットを許容した上で半角変換をすればよい

底辺プログラマ乙

564 :デフォルトの名無しさん:2015/04/27(月) 18:28:48.27 ID:4OuKNXPJ.net
数値をヒューマンリーダブルな文字列に変換する関数ってある?
1024 → 1K みたいな感じで

565 :デフォルトの名無しさん:2015/04/27(月) 18:42:22.88 ID:4f0BeVWY.net
>>564
つくりゃいいじゃん

566 :デフォルトの名無しさん:2015/04/27(月) 19:22:41.19 ID:VIDDBC3g.net
>>563
郵便番号は全角数字で入力してください。が好きな人?

567 :デフォルトの名無しさん:2015/04/27(月) 20:00:04.91 ID:tqpe0E7p.net
>>566
郵便番号と名前が同じと思ってるんだ。頭腐ってるのか?

568 :デフォルトの名無しさん:2015/04/27(月) 20:24:19.70 ID:VIDDBC3g.net
>>567
>>559に対するレスとしては妥当だと思ったんだが、何がそんなにおかしいの?

569 :デフォルトの名無しさん:2015/04/27(月) 21:09:15.62 ID:tqpe0E7p.net
名前に郵便番号使えるのか?
郵便番号に名前が使えるのか?
こんなことも判らないんだなぁ・・・

570 :デフォルトの名無しさん:2015/04/27(月) 21:16:28.53 ID:qTKVpAug.net
>>563
全角→半角変換以上の解決策プリーズ

571 :デフォルトの名無しさん:2015/04/27(月) 21:29:25.97 ID:tqpe0E7p.net
>>570
答え出てるじゃん。馬鹿か?

572 :デフォルトの名無しさん:2015/04/27(月) 23:39:44.56 ID:Q8o5TdgJ.net
ユーザーは○○を記入しないからエラーで良いとか簡単に言い出すやつは、
ユーザビリティを考えなくていい立場の人間だわ。

573 :デフォルトの名無しさん:2015/04/28(火) 00:08:23.11 ID:NeoZrJWE.net
JavaScriptで大体やって、PHPは全部エラーでOK

574 :デフォルトの名無しさん:2015/04/28(火) 00:21:03.93 ID:cqUwhhlI.net
>>572
そんな発想だから底辺って言われるんだよ

575 :デフォルトの名無しさん:2015/04/28(火) 00:24:14.28 ID:cqUwhhlI.net
ID:Q8o5TdgJは状況とバランスを理解できないIT土方なんだろうね
仕様書とか作ったことなさそう

576 :デフォルトの名無しさん:2015/04/28(火) 01:37:26.97 ID:gadPr3gO.net
>>561
PHPがそもそも使えないサーバや、サーバの設定がおかしかったりするとそういうこともありうる。
サーバ管理者が未熟な場合、流出ありきでコードに重要な情報を含まないようにしたほうがいい。

577 :デフォルトの名無しさん:2015/04/28(火) 11:43:00.56 ID:dru2pj9t.net
>>561
ありえる。
だから、セキュリティ的に重要なデータの記載のあるファイルは公開領域には置かない。
普通は、非公開領域に置く。

578 :デフォルトの名無しさん:2015/04/28(火) 11:50:38.81 ID:6B7Pn2o6.net
>>576
> サーバ管理者が未熟な場合、流出ありきでコードに重要な情報を含まないようにしたほうがいい。
サーバ管理者が未熟なら、root以下なんでも漏れちゃう可能性があるわけで、特にPHPファイルだけを
どうにかしておく必然性は無いと思うが。

579 :デフォルトの名無しさん:2015/04/28(火) 13:27:29.61 ID:K6X4GgZO.net
>>565
つまり無いってことね。 ありがとう。作るわ。

580 :デフォルトの名無しさん:2015/04/28(火) 15:39:30.57 ID:4P4rfz1u.net
>>578
そのとおりだと思うけど
ただアクセスするだけで誰でもダウンロードできてしまう状態と
狙ってroot取りに行くのじゃわけが違うぜー

ま、DBのパスワードなんかはドキュメントルート外においとけっていうのは
暗黙の了解だと思うけどな

581 :デフォルトの名無しさん:2015/04/28(火) 15:59:15.82 ID:6B7Pn2o6.net
>>580
> ただアクセスするだけで誰でもダウンロードできてしまう状態と
「ただアクセスするだけ」ってのがHTTPアクセスのことだとしたら、それでPHPファイルを取得されちゃう
ような無能は、アプリ作るなってレベルだ。
つか、サーバをインターネットに公開すんな。

582 :デフォルトの名無しさん:2015/04/28(火) 16:31:51.45 ID:cqUwhhlI.net
ID:6B7Pn2o6
こいつがリスクヘッジも出来ない無能だという事がよくわかるな

583 :デフォルトの名無しさん:2015/04/28(火) 16:37:15.33 ID:zYT0yAj9.net
ID:cqUwhhlI おかえり。

584 :デフォルトの名無しさん:2015/04/28(火) 16:45:12.93 ID:6B7Pn2o6.net
>>582
PHPのファイルをどこに置くかレベルの近視眼的なセキュリティ対策じゃダメだってことだよ。
DBのパスワードが漏れても、アクセス不可なら問題ない。

585 :デフォルトの名無しさん:2015/04/28(火) 17:07:07.16 ID:cqUwhhlI.net
>>584
対策じゃなくてリスクヘッジ
これだから無能は。

586 :デフォルトの名無しさん:2015/04/28(火) 17:24:34.57 ID:6B7Pn2o6.net
>>585
> PHPがそもそも使えないサーバや、サーバの設定がおかしかったりするとそういうこともありうる。
> サーバ管理者が未熟な場合、流出ありきでコードに重要な情報を含まないようにしたほうがいい。
のリスクヘッジを一生やってろ

587 :デフォルトの名無しさん:2015/04/28(火) 17:30:16.95 ID:cqUwhhlI.net
ID:6B7Pn2o6
これが本当の無能です

588 :デフォルトの名無しさん:2015/04/28(火) 19:21:58.77 ID:aiJZeiPg.net
かぎ壊されたらどうせ意味ないんだから鍵かけなくたって同じ
と言ってるようなもんだなw

589 :デフォルトの名無しさん:2015/04/28(火) 19:42:10.85 ID:4P4rfz1u.net
>>584
それは攻撃者のレベルを考慮してないよ
深いとこまで潜ってくるようなセキュリティつつくことでメシ食ってる攻撃者より
にわかが腕試しにやることがほとんどでしょ
ていうかDBのパスワードが漏れてもアクセス不可ってそれこそルート取られたら・・・
結局はルート取られなくするしかないわけだけどそれは鯖管のしごと
最近は共有使ってる人も減ってはいるけどまだまだ多いのが実情だし
とれる対策なんて限度があるわけで

590 :デフォルトの名無しさん:2015/04/28(火) 20:33:33.76 ID:PJN+vN0C.net
そうか、普通にhtmファイルと同じフォルダにphpファイル置いてたよ。
phpファイルは非公開フォルダに全部入れた方が良いのか。
それとも大事なデータがソースに書かれてるphpだけ非公開に置けば良いのか。

591 :デフォルトの名無しさん:2015/04/28(火) 20:57:53.49 ID:zYT0yAj9.net
>>590
とりあえずその辺のフレームワーク使ってみればいいと思う。
で、何でそういう構成になってんのかなって考えてみるのもひとつの勉強

592 :デフォルトの名無しさん:2015/04/29(水) 12:07:30.59 ID:letzh3NS.net
>>590
>phpファイルは非公開フォルダに全部入れた方が良いのか。
これはやりすぎ。

>それとも大事なデータがソースに書かれてるphpだけ非公開に置けば良いのか。
これが正解。必要に応じてrequire_onceとかで読み込めばいい。

593 :デフォルトの名無しさん:2015/04/29(水) 12:18:00.41 ID:2Ot3YiMd.net
まあ、家に現金置くとして
常に机の上においておくのか、机の引き出しにしまっとくのかの違いぐらいに
意味はある たまに鍵かけ忘れることもあるからな

594 :デフォルトの名無しさん:2015/04/30(木) 22:03:52.14 ID:2YD/JiCb.net
>>593
これは良い例え
予期せぬ事態に備えておくのは大事
例えば鯖管が何かの作業中に誤ってPHPのMIME-TYPEを設定して、
直接アクセス可能なファイルすべてのソースコードが丸見えになるとかも考えられる
備えは大事だよ

595 :デフォルトの名無しさん:2015/04/30(木) 23:50:06.82 ID:jr4bhkLM.net
だからフレームワーク見ればいいのに。
>>592とか5年前からタイムスリップしてきたのかと勘違いしちゃう

596 :デフォルトの名無しさん:2015/05/01(金) 00:08:25.99 ID:mGcUeeZw.net
5年どころか10年前だな

597 :デフォルトの名無しさん:2015/05/01(金) 01:14:35.49 ID:xZIdrgfi.net
>>592は悪い対応なのか?
フレームワークほとんど使ったことないから分からんけど、
Zendをググった感じだと対策されてなさそうなんだが・・・
ついでに俺のwordpressも対策してなかったから対策しといた。

598 :デフォルトの名無しさん:2015/05/01(金) 01:44:42.21 ID:mGcUeeZw.net
>>597
Zendならドキュメントにちゃんと載ってる

newproject
|-- application    ←ここにPHPプログラム
|-- library
|-- public       ←サーバーのDocumentRoot
| `-- index.php   ←これがBootstrap.phpを実行

こんな感じが推奨されてる

599 :デフォルトの名無しさん:2015/05/01(金) 02:47:57.09 ID:xZIdrgfi.net
なるほどね、application全部非公開領域なのか

600 :デフォルトの名無しさん:2015/05/01(金) 03:38:11.97 ID:uP4+4JeO.net
> Zendをググった感じだと対策されてなさそうなんだが・・・
何を見てこれに至ったのかが気になる。

601 :デフォルトの名無しさん:2015/05/01(金) 04:19:55.76 ID:xZIdrgfi.net
zend DB パスワードとか検索したら、設定ファイルをいじるやり方がTOPに出てきたから、
対策必要なんかなーと思ったわけさ

フレームワークのメリットデメリットも調べてたけど、
どうも俺には向かなさそうな感じだな。
単純なページを数多く作るシステムとかだとメリット多そう。

602 :デフォルトの名無しさん:2015/05/01(金) 05:43:51.53 ID:uP4+4JeO.net
http://blog.tojiru.net/article/230726490.html
トップにこれが出てきたけど、公開領域かどうかという話とは関係ないから違うよね。
具体的にURLを出してもらえると嬉しい。

603 :デフォルトの名無しさん:2015/05/01(金) 06:20:44.46 ID:VXg57tOC.net
配列をループで処理するとき、先頭や最後の要素であることを判別するスマートな方法はある?

今のところ、先頭要素なら配列インデックスが 0 かどうかで判別したりループ前に「先頭フラグ」を立てておいて判別してる。
最後の要素判定は単純配列であれば配列インデックスと配列長を比較して判別、連想配列ならキーを受ける変数とは別にループカウンタ持って配列長と比較して判別してるけど、非常に泥臭い。

604 :デフォルトの名無しさん:2015/05/01(金) 06:28:39.57 ID:xCWnJTf9.net
配列をループするとき最初から範囲外にアクセスしなければいいだろ。
端とその他は、データとしてなにが違う。

605 :602:2015/05/01(金) 07:10:59.65 ID:VXg57tOC.net
>>604
最初の要素や最後の要素だけ処理をちょっと変えたいことがあるんだよ。

foreach($items as $item) {
echo "<li>$item</li>\n";
}

なんて処理があったとき、最初や最後の li に特別な class を付加するとかな。
こんな説明しないとわからないものか?

606 :デフォルトの名無しさん:2015/05/01(金) 07:14:27.90 ID:xCWnJTf9.net
これで。

前処理
中間処理(ループ)
後処理

607 :602:2015/05/01(金) 07:30:10.16 ID:VXg57tOC.net
>>606
その方法を >>605 の処理に当てはめてコードで示してくれ

608 :デフォルトの名無しさん:2015/05/01(金) 07:35:16.60 ID:xCWnJTf9.net
$x = array_shift($A);
fnc_mae($x);
$x = array_pop($A));

foreach($A as $a)・・・

fnc_ato($x);

609 :602:2015/05/01(金) 07:38:52.35 ID:VXg57tOC.net
>>608
処理案のひとつだとは思うが、それは >>603 で挙げた方法よりスマートだと思ってるのね?

610 :デフォルトの名無しさん:2015/05/01(金) 09:38:28.90 ID:EejPW5t5.net
皆さんはエディタは何使ってますか?
サクラとかネットビーンズ使ったけどなんか使いにくいので、参考までに教えてください

611 :デフォルトの名無しさん:2015/05/01(金) 10:10:32.01 ID:GC2txC2S.net
viしか使っていないや

612 :デフォルトの名無しさん:2015/05/01(金) 11:31:39.18 ID:xZIdrgfi.net
>>602
そうそれそれ。
他にも1こ上の階層に上げるやり方とか載ってたりしたから、
ちょっとググッただけの素人目にはそう見えたんだよ。
そういった細かい事をやるのにいちいち検索しないと分かりにくいから
フレームワークって嫌いなんだけどね。

>>603
スマートっていうなら、if(index == 0)以上のスマートなのないんじゃ?
分かりやすいし。
同じ疑問はよく浮かぶ

>>610
秀丸

613 :602:2015/05/01(金) 12:00:38.53 ID:VXg57tOC.net
>>612
先頭のケースはそれでも十分きれいなんだけど、最後の要素判定がね。
書き方そのものは $index==count(配列)-1 かそれに類することをやるだけなんだけど、単純配列じゃなければ $index はただ判定のためだけに用意する処理の本質とは関係の無いカウンタに成り下がる。
もうちょっと先進的に、イテレータとして isFirst とか isLast みたいな判定方法があればスマートだと思うんだけどね。

または、配列の一番最後の要素のキーを端的に得る方法ってあるかな。
イメージとしてはこんな感じ。
$lastkey=array_pop(array_keys(配列))

614 :デフォルトの名無しさん:2015/05/01(金) 12:19:10.98 ID:xCWnJTf9.net
ループ内で判定を多くするのは非効率。

615 :602:2015/05/01(金) 13:08:31.10 ID:VXg57tOC.net
>>614
それを許容できるかできないかはループの規模にもよるだろうし、
実際にはループの中ではこんな些細な判定などより重い処理が書かれているから、コードとして簡潔に書いてある方がメンテ性がよくていいと思うよ。
大量のデータ処理を高効率でやるならPHPなんて使わないしな。

>>608 についてまじめにコメントすると、まず要素取り出しごとに empty の確認が必要だったりでいちいち面倒。
さらに先頭要素と末尾要素のキーが失われることや中間要素のインデックスがリナンバーされるのも場合によっては許容できない。
処理内容がある程度複雑であれば >>608 にあるようにまさに関数化する必要があるけど、機能的ではない関数化などしたくない。

でも効率についても意識しているのは確かで、ループ内を「先頭」「末尾」「それ以外」に分ける判定では、最も頻度の高い「その他」の選択に一番コストがかかるという点は改善するいい方法があればと思ってる。
若干トリッキーなことやればできるけど、訳の解らんコードになるなら採用できないしな。

616 :デフォルトの名無しさん:2015/05/01(金) 13:51:32.77 ID:uP4+4JeO.net
>>603
end(配列);
list($end_key, $end_val) = each(配列);

ちなみに>>605の内容ならCSSで解決するのがスマート。

>>612
単に読み間違いだったようでよかった。
また嘘ばかり並べてるPHP解説サイトでも出てくるのかとちょっと心配だった

617 :602:2015/05/01(金) 14:30:00.50 ID:VXg57tOC.net
>>616
あ、そういう方法があったのか。

$firstkey=key(配列);
end(配列);
$lastkey=key(配列);
foreach(配列 as $k=>$v) {
if($key===$firstkey) {
// 先頭要素
}
elseif($key===$lastkey) {
// 末尾要素
}
else {
// その他要素
}
}

という基本型にできそうだね。
この考え方でコードがきれいになるケースはありそうだ。ありがとう。

>>605 はシンプルな例として挙げただけで CSS で対応する余地については強く同意なんだけど、今回の質問のきっかけがこれなんだよね。
別のところで作った HTML をもらってフタを開けたら、ありとあらゆる一覧要素の末尾に class="last" が付けてある。
なんだか IE の互換性の問題でこれがどうしても必要なんだと。
せめて class="first" だったら楽なんだけど、last ってのがなんともいやらしい。

618 :デフォルトの名無しさん:2015/05/01(金) 15:34:18.49 ID:uP4+4JeO.net
あぁ、なるほど。デザイナ様がそれをつけろとおっしゃるならしょうがないね。乙。

619 :デフォルトの名無しさん:2015/05/01(金) 19:19:07.02 ID:PZEl4U1u.net
global してんのにそのグローバル変数が無いときってどうなるの?

620 :デフォルトの名無しさん:2015/05/01(金) 20:01:50.31 ID:PZEl4U1u.net
質問です。

抽象クラスを継承してる子クラスが、抽象メソッドを定義し忘れてるのを
静的に検出したいのですが、どうしたらよいでしょうか。

621 :デフォルトの名無しさん:2015/05/02(土) 03:56:53.65 ID:kZuCqpus.net
>>619
NULL

>>620
そういう時はインターフェイスを使う

622 :デフォルトの名無しさん:2015/05/02(土) 10:23:22.95 ID:202tz8Zm.net
>>621
抽象メソッドを定義し忘れてるんじゃなく実装し忘れてるということだと思うけど、
抽象クラスをインタフェースに置き換えたところで >>620 で解決したい問題を解決できる話じゃなくない?

クラスは延々と継承が可能だから、実装し忘れてるのかそれそのものはインスタンス化されないクラスで子孫クラスのどこかで実装されるものなのかは機械的には分からないから、
インスタンス化してみること無しにチェックすることはできないんじゃないのかな。

623 :デフォルトの名無しさん:2015/05/02(土) 10:55:52.20 ID:kZuCqpus.net
>>622
いや、「抽象メソッドを定義し忘れてるのを」と言ってるだろ
それと君はインターフェイスについてちゃんと勉強してきなさい

624 :デフォルトの名無しさん:2015/05/02(土) 11:03:45.78 ID:202tz8Zm.net
>>623
「抽象クラスを継承している子クラス」がし忘れることがあるとすれば、それはなんだ?
定義か?
違うだろ?
お前こそ勉強し直してこい

625 :621:2015/05/02(土) 12:37:01.91 ID:202tz8Zm.net
>>622
後半部分は誤りだね。
インスタンス化以前に抽象クラスの派生クラスで抽象メソッドの実装漏れがあれば、そのクラス宣言のパース時にエラーになるもんな。
>>620 のいう静的ってのは、動かしてみることなくってことかね。

であれば、めぼしいクラス宣言のあるソースを軒並み require しただけのスクリプトを書いて実行するのはどうなのかね。

626 :デフォルトの名無しさん:2015/05/02(土) 12:46:38.32 ID:86QaeJl2.net
>>625
>めぼしいクラス宣言のあるソースを軒並み require しただけのスクリプトを書いて実行

そこに気付くとは・・・ やはり天才か
静的には無理⇒動的には可能 という発想の飛躍
さっそくrequireを列挙したプログラム書きます

627 :デフォルトの名無しさん:2015/05/02(土) 14:20:24.44 ID:kZuCqpus.net
>>624
インターフェイスを知らないんだね

628 :デフォルトの名無しさん:2015/05/02(土) 17:07:41.89 ID:86QaeJl2.net
ところで話は変わるけど、

元は戻り値 bool を返すメソッドを継承して
戻り値 boolまたはオブジェクト を返すようにしたら
やっぱり行儀が悪いかな

629 :デフォルトの名無しさん:2015/05/02(土) 18:42:10.19 ID:202tz8Zm.net
>>627
知ってるけど、それがどうした?
>>620 をどう解釈して、それがインタフェースだとどう解決できると言ってるのかを説明をするというなら聞いてやってもいいぞ。

>>628
継承前のメソッドの仕様次第じゃね。
たまたまboolしか返してなかったけどオブジェクトも返しえる、みたいに解釈できるなら、あるいはそう修正できるなら悪くないんじゃね。
ようは、仕様に沿って作られた既存のコードでそのメソッドの呼び出し元が true や flase と比較してる可能性があるならダメだと思う。

630 :デフォルトの名無しさん:2015/05/02(土) 19:47:57.88 ID:cEdA8aDd.net
>>620
>静的に検出したいのですが

この「静的」というのが具体的でないから回答は困難。
もう少し具体的に説明したほうがいい。

631 :デフォルトの名無しさん:2015/05/02(土) 20:06:44.46 ID:NSdkbqbf.net
>>630
>>626で完結した

632 :デフォルトの名無しさん:2015/05/04(月) 17:07:52.59 ID:LDLlVI0c.net
>>630
動的ってのは、実行し実際に動作させること。
静的ってのは、実行しない。
多言語だと良く出てくる概念だから覚えておいて損は無いよ

633 :デフォルトの名無しさん:2015/05/05(火) 00:16:13.00 ID:gXNF+Bkg.net
・・・それを知らないと思ったのが分からん
PHPで静的にって言われて、詳しくどういう意味か聞きたくならんのか?

634 :デフォルトの名無しさん:2015/05/05(火) 03:56:20.63 ID:X6lIspm3.net
そもそも継承先で抽象メソッドの定義忘れとかFatal Error出るだろ?

635 :デフォルトの名無しさん:2015/05/05(火) 04:07:04.21 ID:6RX8cnex.net
まず定義と実装の区別をつけようか

636 :デフォルトの名無しさん:2015/05/05(火) 04:08:49.88 ID:X6lIspm3.net
こまけーこたぁいいんだよ!

637 :デフォルトの名無しさん:2015/05/05(火) 09:21:04.27 ID:td7P7nJT.net
抽象クラスの存在意義の一つにオーバーライドの強制があるのにそれを知らないとか今まで何をしてきたんだ

638 :デフォルトの名無しさん:2015/05/05(火) 09:34:37.96 ID:td7P7nJT.net
クラスじゃなくてメソッドね

639 :デフォルトの名無しさん:2015/05/05(火) 11:46:40.25 ID:m8J9PzSH.net
普通はこういう解釈じゃないの?
動的ってのは、インスタンスを生成してメソッドを呼ぶこと(newを使う)。
静的ってのは、インスタンスを生成せずメソッドを呼ぶこと(staticを使う)。

つまり、
動的ってのは、インスタンス変数やインスタンスメソッドを利用すること。
静的ってのは、クラス変数やクラスメソッドを利用すること。

640 :デフォルトの名無しさん:2015/05/05(火) 12:06:43.43 ID:6RX8cnex.net
文字列をコードとして実行するのも動的と言ったりするかな。
前触れ無く動的静的言ってもいろいろあるな。

>>637
細かい話だけど、抽象メソッドを実装することはオーバーライドになるのかな?
実装を別の実装で上書くことがオーバーライドってイメージだけど。

641 :デフォルトの名無しさん:2015/05/05(火) 13:14:57.41 ID:uK50+OeE.net
>>634
それ、実行するまでわからんよね

642 :デフォルトの名無しさん:2015/05/05(火) 16:25:42.00 ID:uK50+OeE.net
動作ログを出力する関数 log_shutsuryoku() を作ってるんだけど
毎回 __FILE__と__LINE__ を引数に書くのが面倒くさいので
これ省略したいんだけど、なにかいい方法ありますか?

643 :デフォルトの名無しさん:2015/05/05(火) 16:28:41.20 ID:uK50+OeE.net
解決しました。ありがとう

644 :デフォルトの名無しさん:2015/05/05(火) 16:47:26.26 ID:SAyXrWcb.net
どういたしまして

645 :デフォルトの名無しさん:2015/05/05(火) 19:37:55.26 ID:QsUeX1N1.net
>>633
ならんが

646 :デフォルトの名無しさん:2015/05/05(火) 21:56:08.08 ID:bTeIB/IH.net
動的っていうのは実行中にメモリを確保したり解放したりすること
静的っていうのは起動時にメモリを確保し終了時に解放すること

647 :デフォルトの名無しさん:2015/05/06(水) 00:55:16.10 ID:vZJA/INS.net
>>641
そういうことなら不可能なんじゃね
パーサーなり通さないとただのテキストだし
あとは人間の目でチェックするぐらいしか

648 :デフォルトの名無しさん:2015/05/06(水) 15:29:35.75 ID:LywkhDvi.net
>>647
php -l で文法チェックにかけても、継承漏れはチェックできないんだよね
これほんとどうしたもんだろう

649 :デフォルトの名無しさん:2015/05/06(水) 17:31:51.78 ID:98HapcQN.net
何で実行して確かめちゃだめなの?

650 :デフォルトの名無しさん:2015/05/06(水) 20:11:29.33 ID:LywkhDvi.net
>>649
そこを走行するまでわかんないじゃんね
それって、とても面倒くさいことなんだよ

651 :デフォルトの名無しさん:2015/05/08(金) 03:07:30.17 ID:8fj/JrJq.net
という問題を解決するために、人類はユニットテストというものを生み出したんだよ。

652 :デフォルトの名無しさん:2015/05/09(土) 10:31:05.16 ID:Oida1g77.net
横レスですみませんが、>>642 を解決するには、
どうすればいいのでしょうか?

呼び出す関数の引数に__FILE__と__LINE__を渡さないで、
呼び出された関数が、__FILE__と__LINE__ を取得する方法を知りたいです。

653 :デフォルトの名無しさん:2015/05/09(土) 12:17:45.67 ID:VoWdYRCu.net
>>652
バックトレースでも取ったんじゃね?

654 :デフォルトの名無しさん:2015/05/09(土) 13:17:25.38 ID:xiP/cA9M.net
>>653
ありがとうございます!!
ご指摘のバックトレースとやらで解決できそうです。

http://php.net/manual/ja/function.debug-backtrace.php
http://php.net/manual/ja/function.debug-print-backtrace.php
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1093607710

655 :デフォルトの名無しさん:2015/05/09(土) 16:53:38.46 ID:5gJDPjVz.net
相手サーバーにバックアップを復元してもWEBページを正常に表示させたくないんだけど何か良い方法ないかな?
環境はLINUXにアパッチPHP使用
LINUXでchattrで+iで.htaccess設置しようかと思ったんだがSSHで接続はできなかった
FTPとデータベース接続は今はできる

656 :デフォルトの名無しさん:2015/05/09(土) 17:32:18.28 ID:Gc8RqdRM.net
レッドハットとは赤ずきんのことかもしれません。

657 :デフォルトの名無しさん:2015/05/09(土) 17:50:31.60 ID:MtmjsyLp.net
>>655
スレチ

658 :デフォルトの名無しさん:2015/05/10(日) 00:28:36.82 ID:pv6tlAro.net
初心者になります。

mysqlのデータベースからphpで一つのカラムだけを取りだし表示をさせ、
取り出したカラムそれぞれに詳細ボタンを作り、ボタンを押すとそのカラムのレコードが表示されるボタンを作りたいのですが、
どのような方法がありますか?

659 :デフォルトの名無しさん:2015/05/10(日) 01:08:49.91 ID:d6FZBecy.net
>>658
どこまでが分かっててどこからが分からないの?

660 :デフォルトの名無しさん:2015/05/10(日) 02:06:24.32 ID:pv6tlAro.net
>>659

データベースの接続までは分かっていて、そこからが分からないです。

661 :デフォルトの名無しさん:2015/05/10(日) 02:40:24.96 ID:JmENrleS.net
>>660
データベースとPHPの連携の勉強していけば絶対出てくる内容だから勉強を進めるべき
自分で勉強して新しいことが出来るようになったときの快感はすごいぞ

662 :デフォルトの名無しさん:2015/05/10(日) 02:43:11.77 ID:d6FZBecy.net
>>660
SQL発行して必要カラムや必要レコードを取得するところまではできるの?
ようは、画面回りの作り方が分からないだけなのか、データ取得の仕方もわからないのか、ということなんだけど。

とりあえず詳細ボタンじゃなく詳細リンクにする仕様でのアウトラインを書いとく。
まずカラム値の一覧を表示するスクリプト list.php とPKを引数としたレコードを1件分の詳細表示するスクリプト detail.php の2本を作りましょう。
カラム値一覧表示の際は、各値にリンクを張って表示しましょう。リンク先は詳細表示スクリプトで、引数にPKを仕込んでおきます。こんなの。
<a href="detail.php?pk=キー値" target="_blank">カラム値</a>
詳細表示側では、渡されたPKのレコードを取得して表示する。
自分好みの仕様にするのはこれができてからだろうな。

663 :デフォルトの名無しさん:2015/05/10(日) 04:30:32.50 ID:pv6tlAro.net
>>662
理解出来ていません。

list.phpで
while($row = $result->fetch_assoc())[
echo $row["date"],"<br>"
]

でdateカラムの表示は出来たのですがそこから詳細をどのように配置すればいいのでしょうか?

664 :デフォルトの名無しさん:2015/05/10(日) 05:02:38.46 ID:Q7tMiRkC.net
>>663
HTMLの基礎も知らない可能性があるけれど、>>662のこれは読めた?

> リンク先は詳細表示スクリプトで、引数にPKを仕込んでおきます。こんなの。
> <a href="detail.php?pk=キー値" target="_blank">カラム値</a>

665 :デフォルトの名無しさん:2015/05/10(日) 06:06:45.54 ID:pv6tlAro.net
>>664
<a href></a>でリンクに飛ぶとゆうのは理解しています。

その中に書いているPKのtagetが理解出来ていないです。

666 :デフォルトの名無しさん:2015/05/10(日) 06:57:26.72 ID:nSgk2cU6.net
>>665
targetは新しいタブで開く指定だから気にしなくていいよ

667 :デフォルトの名無しさん:2015/05/10(日) 07:48:47.43 ID:dQsyuQT8.net
メジャーな企業サイトや新聞社のサイトで、
Can't connect database.とかデータベースに接続できませんとか
そんな具合のエラーを表示しているけどあれはなんなんですかね?

ただいま接続障害が発生しております。時間をおいてアクセスして下さい。
とか503的なメッセージを表示しておいて、
見えないヘッダーあたりに原因であるデータベースと接続出来なかったとか書いときゃいいと思うのに、
なにを考えてプログラマーはあんなデバッグ向けメッセージを残してるんでしょうか?

668 :デフォルトの名無しさん:2015/05/10(日) 07:50:45.47 ID:pv6tlAro.net
>>666
今の段階でわからないのはdetail.phpの作り方と、作った後に、list.phpとどう組合わせるかです。

669 :デフォルトの名無しさん:2015/05/10(日) 07:55:54.88 ID:d6FZBecy.net
>>663
html の話、それもかなり基礎的な話はPHPとあまり関係ないから、ここで掘り下げるようなことじゃないよ。
HTMLタグリファレンスなんてそこらに溢れてて簡単に調べられるんだし。

PHP 的な話でひとつだけ情報を追加しておくと、detail.php に渡されたPK(引数名 pk)は $_GET['pk'] で取得できる。
あと使いそうなものは htmlspecialchars と urencode かな。
それ以上は調べなよ。

つか、これ宿題かなんか?

670 :デフォルトの名無しさん:2015/05/10(日) 07:58:12.10 ID:lFzaOLtb.net
>>667
開発費が足りないんじゃね?

671 :デフォルトの名無しさん:2015/05/10(日) 09:13:47.83 ID:nSgk2cU6.net
>>668
detail.phpでは $_GET['pk'] を使ってSELECT WHERE で行を表示すればいい

672 :デフォルトの名無しさん:2015/05/10(日) 11:54:06.36 ID:fqW2K+gx.net
ここでいちいち疑問点が出たら聞くを繰り返すより入門書でも買って手を動かしたほうが早くね?

673 :デフォルトの名無しさん:2015/05/10(日) 12:07:20.60 ID:lFzaOLtb.net
>>672は、スレタイにピッタリ。

674 :デフォルトの名無しさん:2015/05/10(日) 12:08:22.99 ID:W9ZiKZfY.net
じゃあこのスレいらないな
ここは下らない質問をするところだからな?

675 :デフォルトの名無しさん:2015/05/10(日) 12:28:15.76 ID:DkNBXTKK.net
おまえら、今日は母の日だぞ。
つまらない言い合いするより、親孝行しとけ。
https://www.google.co.jp/

676 :デフォルトの名無しさん:2015/05/10(日) 13:05:35.18 ID:fqW2K+gx.net
まあ要らないって事はないな

本とか入門サイトとか読んでやってみたけどどーしてもわからないとか腑に落ちないところがあれば
ここで聞けばよくね?

677 :デフォルトの名無しさん:2015/05/10(日) 13:09:20.90 ID:IBnS4wF/.net
なくなったら、暇つぶしができないので困る

678 :デフォルトの名無しさん:2015/05/10(日) 13:23:32.69 ID:d6FZBecy.net
一から全部説明するレベルだとコードそのまま書いた方が短そうだもんな。

つか根本的な話なんだけど、実行環境はあるんだろうね?
webプログラムの話なんだよね?

679 :デフォルトの名無しさん:2015/05/10(日) 20:48:11.85 ID:yRYOsbTo.net
>>669
開発環境はxamppであります。

phpの話です。

詳細リンクを取り出したdateカラムの横にそれぞれ表示されるようにしたいのですが上手くできません。

680 :デフォルトの名無しさん:2015/05/10(日) 20:57:50.48 ID:yRYOsbTo.net
>>671
行の部分を取り出したdateのそれぞれのレコードだけ取り出したいのですがやり方がわかりません。

イメージとしては

5/01 詳細
5/02 詳細

の用に表示され

詳細リンクを押すとその日付のレコードが表示される感じです。

681 :デフォルトの名無しさん:2015/05/10(日) 21:42:27.54 ID:EHHJTd+L.net
なんか一冊本買ってやってみたほうがいい。

682 :デフォルトの名無しさん:2015/05/10(日) 22:06:40.77 ID:yRYOsbTo.net
>>681

独学ならそうしたいのですが、
 
宿題みたいたな感じなので、指定通りにしないといけないんです。

683 :デフォルトの名無しさん:2015/05/10(日) 22:20:00.48 ID:d6FZBecy.net
>>682
宿題“みたいな感じ”ってなんだよ。
学校の宿題でもなけりゃ新人研修の課題でもないのかよ。
どっちにせよ講義なりテキストなり必要十分な何かは無かったのかい?
どちらかと言えばPHP以前の話で、>>662 の説明があってそんなこと言ってるとか、正解を丸ごとコードで示せと言ってるようなもんなんだけど、ちょっとは自分でやってみるという気は無いわけ?
aタグについてHTMLのタグリファレンスくらいは読んだんだろうな?
つべこべ言わずに >>662 の仕様で list.php くらいは書けてるんだろうな?

684 :デフォルトの名無しさん:2015/05/10(日) 22:22:39.84 ID:fqW2K+gx.net
別窓じゃなくてそのページにか…
JavaScriptでAJAX使ったリロードの無い今風のシングルページって奴?

だったら初心者にはかなり難易度高め

685 :デフォルトの名無しさん:2015/05/10(日) 22:36:28.15 ID:fqW2K+gx.net
まあWeb開発ってWebサーバー、アプリの基本動作原理、PHPなどのサーバー側スクリプト、
HTMLとCSS、JavaScriptと結構広範だから本などの前提知識が無いのは結構辛いと思う

聞く側も教える側も

686 :デフォルトの名無しさん:2015/05/10(日) 22:56:52.43 ID:yRYOsbTo.net
>>683
講義やテキストはないです。
本はかったのですがあまり役に立っていません。
自分でやる気はありますが調べてもわからないので聞いています。


661には各値にリンクを貼ってとありますが、ここがわからないんですよね。

それぞれリンクを貼るのではなくて、取り出したdateのように繰り返しリンクを表示させたいんです。

687 :デフォルトの名無しさん:2015/05/10(日) 22:59:41.23 ID:yRYOsbTo.net
>>685

とりあえず表示が出来ればいいみたいです。

htmlとcssの基礎的な部分は分かっているつもりです。クリエイター試験も受かったので。

やっぱり複数の知識が必要みたいですね。

688 :デフォルトの名無しさん:2015/05/10(日) 23:07:25.39 ID:6QPckb+O.net
>>687
次のaとbのどっち?

a)詳細リンクを押すと別ページに移動して詳細が表示される
b)詳細リンクを押すと別ページに移動しないで同一ページに詳細が表示される

a)なら単純なリンクで>>662の構成でOK
b)ならJavaScript・Ajaxなどが必要で>>684の構成になる

689 :デフォルトの名無しさん:2015/05/10(日) 23:21:41.05 ID:d6FZBecy.net
>>688
当初「ボタンで」と書いてるくらいだから少なからずJSが絡んでるんじゃないの。
でもJSなりAjaxなりでやるにも >>662 ができることは必須なんだから、今の段階で JS がどうとか言ってもしょうがないでしょ。

>>686
>それぞれリンクを貼るのではなくて、取り出したdateのように繰り返しリンクを表示させたいんです。
取り出したdateそれぞれのことを「各値」と言ってるし、それれぞれにリンクを貼るというのはすなわち繰り返しリンクを表示することと同じ意味なんだが...

つかさ、>>663 の echo で >>662 の aタグを出力すればいいということすらわからないの?
もしかしてPKが何のことなのかわからない?

690 :デフォルトの名無しさん:2015/05/10(日) 23:58:44.73 ID:yRYOsbTo.net
>>688

aの方です!

>>689

aタグの出力が上手くできません。
単独の表示になってしまいます。

pkはレコードを取り出して表示するとゆう認識なのですが間違いですか?

691 :デフォルトの名無しさん:2015/05/11(月) 00:37:24.62 ID:oRNChqV7.net
>>690
> aタグの出力が上手くできません。
>>663 みたいに出力部分のコードを貼り付けてみろよ。

ただね、素人にこういう課題を出すに当たって講義もテキストも無いというのが本当であれば、自分は素人だと明言して指導を扇ぐのがよいと思うよ。
学校の宿題じゃなくて職場の新人研修でGW中に出された課題なんじゃないの?
だったらなおさら。

692 :デフォルトの名無しさん:2015/05/11(月) 00:41:36.42 ID:oRNChqV7.net
あぁ、忘れてた。
PK ってのはプライマリキー、主キーのことだぞ。
レコードを一意に特定するためのキーだ。
そのケースだと date をPKにしてる可能性もあるな。

693 :デフォルトの名無しさん:2015/05/11(月) 01:11:13.07 ID:pEYHs+HR.net
>>691
>>662

pkわかりましたありがとうございます。

職場の課題で担当の人に聞いてはいるんですが、上手く時間が合わないので。

while($row = $result->fetch_assoc())[
echo $row["date"]
<a href="detail.php?pk=">詳細</a> ."<br>"
]

どこがおかしいですか?

694 :デフォルトの名無しさん:2015/05/11(月) 01:27:43.39 ID:oRNChqV7.net
>>693
while($row = $result->fetch_assoc()) {
echo htmlspecialchars($row["date"])." <a href=\"detail.php?pk=".urlencode($row["XXX"])."\">詳細</a><br>";
}


つかさ、>>663 のコード本当に動かしてる?
単なるコピペミスだと思って細かいこと言わなかったけどさ。

695 :デフォルトの名無しさん:2015/05/11(月) 03:07:58.39 ID:sHXwVAbX.net
表示はできました。
$row["XXX"]の部分は何が入りますか?

696 :デフォルトの名無しさん:2015/05/11(月) 04:43:28.28 ID:cUL4ahFk.net
>>695
データベースの主キーのカラム名だよ
他のレコードと重複してない一意な値があるカラム

697 :デフォルトの名無しさん:2015/05/11(月) 06:08:25.01 ID:pEYHs+HR.net
>>696
ありがとうございます。

次にdetail.phpの書き方ですが、
select from whereで書くとありますが、どのように書けばいいでしょうか?

698 :デフォルトの名無しさん:2015/05/11(月) 07:32:09.17 ID:gSMAj2w3.net
やっぱ答えたら駄目なやつだったよ

699 :デフォルトの名無しさん:2015/05/11(月) 08:13:48.79 ID:oRNChqV7.net
もう上司に聞けでいいだろう。
なんのレクチャーも無いというのも聞いても時間が合わないというのも信じがたい。
本当にそうなら職場の責任だから担当とかじゃなく偉い人に堂々と聞けばいい。
スキル詐称して入社したんじゃなけりゃありえんよ。

そういう職場に入って入門書すら買わないというのもどうかと思うが。

700 :デフォルトの名無しさん:2015/05/11(月) 08:30:58.43 ID:0bwE6yMo.net
くだらねぇ質問にも及んでない。

701 :デフォルトの名無しさん:2015/05/11(月) 11:28:07.66 ID:gNcmvm54.net
他言語でWebシステム構築経験者のPHP入門は、オライリーのプログラミングPHPでおk?
パーフェクトPHPはもう古いのかな

702 :デフォルトの名無しさん:2015/05/11(月) 15:33:14.21 ID:5R23B0V0.net
>>697
一つ一つ聞かずに、まず一通り学んでみて。
その上で、書いてある通りやったけど駄目だった
って聞いてみて。

http://codezine.jp/article/detail/4473
会員登録が必要だけど参考になるかな

703 :デフォルトの名無しさん:2015/05/11(月) 15:43:03.10 ID:cxSKig/O.net
>>701
他言語の経験者なら割と容易に習得できる言語だと思うよ

704 :デフォルトの名無しさん:2015/05/11(月) 19:35:33.01 ID:/EY7yyUc.net
>>701
多少古いのは否めないがパーフェクトPHPに一票

705 :デフォルトの名無しさん:2015/05/11(月) 21:59:12.04 ID:hW43GQvw.net
知識が断片的過ぎる

本ぐらい買って読みなさいよ

ゲームとかならすぐ金出すんでそ?

706 :デフォルトの名無しさん:2015/05/11(月) 23:43:35.98 ID:0DBOnMdV.net
本家と、stack overflowとcodexとcakephpのtutorialとかで十分だろ

707 :デフォルトの名無しさん:2015/05/12(火) 03:46:22.94 ID:XWfrzLl1.net
そうなんだよね。
OS使うのも本買ったほうが分かりやすいし。
なんだかんだ体系的に学べるのは利点だな

708 :デフォルトの名無しさん:2015/05/12(火) 11:37:12.82 ID:sejXMx92.net
linuxにだって山程、初心者向けのtutorialあるだろが

709 :デフォルトの名無しさん:2015/05/12(火) 20:54:44.82 ID:icc0PmJx.net
>>708
初心者向けのチュートリアルは見たことないなぁ
初心者が書いたチュートリアルモドキなら
掃いて捨てるほどあるけど

710 :デフォルトの名無しさん:2015/05/12(火) 21:22:05.77 ID:sejXMx92.net
ttp://www.ee.surrey.ac.uk/Teaching/Unix/
はぁ?linux tutorialで一番上に出てくるだろ

711 :デフォルトの名無しさん:2015/05/12(火) 21:24:01.01 ID:sejXMx92.net
おまえは、manや/usr/share/docすら見たことないんだろうな

712 :デフォルトの名無しさん:2015/05/12(火) 22:56:32.65 ID:XWfrzLl1.net
linuxはいくらでもドキュメントあるから困らん
どうしても困ったらソースも読めるわけだし

713 :デフォルトの名無しさん:2015/05/13(水) 00:35:07.39 ID:tj2XXHnt.net
php弄ってるヤツらlinuxのソースなんて読むわけないだろ
良くてもcakephpかwordpressのバグをfixするぐらい

714 :デフォルトの名無しさん:2015/05/13(水) 02:50:03.15 ID:HRWLG218.net
なぜそう決め付けるのか理解に苦しむ。
自分自身がそうであるからという基準でしか見ることができなくなってるのかな。

715 :デフォルトの名無しさん:2015/05/13(水) 03:52:32.28 ID:xdY7g3Br.net
ID出てるから単発でしか突っかかってこないんだなw

716 :デフォルトの名無しさん:2015/05/13(水) 22:00:29.60 ID:NgVHOpPE.net
>>710
これ、イマイチじゃね?

717 :デフォルトの名無しさん:2015/05/14(木) 03:10:30.92 ID:W711bNAF.net
Cの授業の準備段階としてやってもらう程度の内容かな。
1コマ目がこれで、2コマ目はエディタの基本操作でも教えるんじゃない?

718 :デフォルトの名無しさん:2015/05/14(木) 13:19:07.66 ID:iz5duSo7.net
>>710
初心者が書いたチュートリアルモドキ の良いサンプルだね。

719 :デフォルトの名無しさん:2015/05/15(金) 11:39:10.35 ID:YfmCR69l.net
>>718
必要な資料は自分で探せカス

720 :デフォルトの名無しさん:2015/05/15(金) 14:10:49.51 ID:aYoiMiFy.net
>>719
>>710に言ってやれ。

721 :デフォルトの名無しさん:2015/05/15(金) 16:05:10.23 ID:aYoiMiFy.net
文法チェックで不正な変数をはじく方法ある?
function hoge(){
 $piyo->unko();
}
これをエラーと見抜いてほしい

722 :デフォルトの名無しさん:2015/05/15(金) 17:06:07.85 ID:XFrVDM0g.net
>>721
> 文法チェックで不正な変数をはじく方法ある?
断言はできないけど、多分ないと思う。
ちなみに、Phalanger(https://phalanger.codeplex.com/)ならと思って試してみたが、
コンパイルではエラーは検出されなかった。

723 :デフォルトの名無しさん:2015/05/15(金) 21:25:03.36 ID:aYoiMiFy.net
>>722
ありがとう

この程度のポカミスなら、できることなら
テストコードを書く前に気付きたいんだよな

724 :デフォルトの名無しさん:2015/05/16(土) 03:59:05.38 ID:fXloEdfu.net
phpはどんなクソコード書いても許される
この気楽さをRubyキチガイにもしらしめたい

725 :デフォルトの名無しさん:2015/05/16(土) 08:21:10.97 ID:uvSP2ukl.net
いつにもまして煽りが下手になってるけど何かあったの?

726 :デフォルトの名無しさん:2015/05/16(土) 09:34:03.51 ID:IeMY8Qzy.net
PHPはプログラムの基礎もわかってないド素人が触っても大体似たり寄ったりのコードが作れるからな
誰が書いてもさほど変わらないコードが量産されていく、クソ言語だろこれ。

727 :デフォルトの名無しさん:2015/05/16(土) 12:42:56.37 ID:qMXDpux9.net
それは究極の言語では?>だれが書いても同じコードになる

728 :デフォルトの名無しさん:2015/05/16(土) 18:45:25.45 ID:2unSLM4N.net
だれが書いても同じコードになるって最高だな
コーディング規約すらいらない最強言語だったか

729 :デフォルトの名無しさん:2015/05/16(土) 20:44:09.24 ID:ZJDdRqxh.net
>>726
「PHP」を「日本語」に置き換えてみそ。

730 :デフォルトの名無しさん:2015/05/17(日) 03:41:22.76 ID:JFSZ0UWx.net
誰が書いても同じコードになるは間違い
どんな初心者でもコード書いたら同じ動きをするが正解

731 :デフォルトの名無しさん:2015/05/17(日) 07:41:10.73 ID:N7mUBV2Z.net
Webprog板から出てきたと思ったら単発ww

732 :デフォルトの名無しさん:2015/05/17(日) 10:54:29.29 ID:ONGBQsYQ.net
どんなクソコードを書いても許される
これは趣味で書くには有難いぞ
perlよりずっと気楽に書ける

733 :デフォルトの名無しさん:2015/05/17(日) 11:10:03.99 ID:LKO/92Vj.net
>>726
>>誰が書いてもさほど変わらないコード

Pythonのことか?

『Pythonでは多くのユーザによって書かれた同一の仕事をするプログラムは、
だいたいどれも同じようなコードに収束する。』
http://ja.wikipedia.org/wiki/Python

734 :デフォルトの名無しさん:2015/05/17(日) 14:28:16.57 ID:rJ7+9T5q.net
PHPは人によってコード違う部類の方だな

735 :デフォルトの名無しさん:2015/05/17(日) 15:43:03.84 ID:CzRQDZeG.net
>>726の世界では論理的帰結として、725は糞コードを量産してるわけか。
まあ、がんばれ。

736 :デフォルトの名無しさん:2015/05/17(日) 21:53:32.82 ID:YJLG5+oq.net
Rubyに比べればPHPは人によっての差が少ないほうかもしれない

737 :デフォルトの名無しさん:2015/05/18(月) 12:13:44.69 ID:NlgV+Pgh.net
コードが違ってくる箇所としてはどんなとこが多いんだろ?

連想配列の入れ方なんかは大きい要因じゃない気がするな
arr[a][b]→arr[b][a]とか
if文連発・if-returnで分岐減らす・switch
関数の作り方(引数に無駄なものがあるかとか)

738 :デフォルトの名無しさん:2015/05/18(月) 14:43:26.36 ID:fsW0cWx4.net
まあ、そういうのは他の言語でも同じ

PHPは、class何それの人と、最新技術使う人らとの差が大きすぎる

739 :デフォルトの名無しさん:2015/05/18(月) 14:54:14.07 ID:NlgV+Pgh.net
最新技術ってどういうこと?
フレームワーク使ってたらそりゃ違うソースになって当たり前だろうけど

740 :デフォルトの名無しさん:2015/05/18(月) 14:58:37.76 ID:05C/IAfg.net
最新技術ってどんなの?
バージョンアップされる度に何か追加されてんの?

741 :デフォルトの名無しさん:2015/05/18(月) 15:00:50.07 ID:LJ5lzNye.net
同じ目的のために色々方法はある上に、
オブジェクト指向的な要素が最初からあるものと後から追加されたものじゃ
そりゃ差が出るっしょ。

742 :デフォルトの名無しさん:2015/05/18(月) 15:29:46.43 ID:fsW0cWx4.net
な、PHPの言語自体の機能が増えてるの知らない人がいるんだよ

743 :デフォルトの名無しさん:2015/05/18(月) 15:41:28.44 ID:NlgV+Pgh.net
増えてることは知ってても増えた内容知らない人は普通じゃないか?
といっても、ソースが大幅に変わるような内容はないでしょ。
言語機能を最新技術というのは何か違うと思う。

744 :デフォルトの名無しさん:2015/05/18(月) 15:49:44.53 ID:hcu+yNsD.net
ある変数が文字列か数値かを知る方法ってある?

たとえば、$a=123; $b="123"; とあるとき $a===$b は偽だけど
このときに $aが「数値」で$bが「文字列」だというのをログに吐きたい。

745 :デフォルトの名無しさん:2015/05/18(月) 15:50:45.10 ID:hcu+yNsD.net
gettype()使えばいいんですね。 ありがとうございました。

746 :デフォルトの名無しさん:2015/05/18(月) 16:27:35.53 ID:fsW0cWx4.net
まあ、環境が古いままの人が多いのもPHP
いまだに $v = array('1','2') な人もいるでしょ

747 :デフォルトの名無しさん:2015/05/18(月) 16:30:42.17 ID:WxtKXoiM.net
確か5.2と5.3が多いんじゃないかな

748 :デフォルトの名無しさん:2015/05/18(月) 21:25:10.67 ID:dqU8r2pT.net
>>737
普通設計の話になると思うが、なぜそんな枝葉末節から始まるのか

749 :デフォルトの名無しさん:2015/05/18(月) 21:53:19.59 ID:M5tSLFsj.net
class何それは、さすがに無いだろうけど
エラー処理に例外使ってないとか、
ジェネレータ、名前空間何それは十分有り得るよね。

750 :デフォルトの名無しさん:2015/05/18(月) 21:57:37.92 ID:GE/vKBW3.net
$this->
$this->
$this->
$this->
$this->

751 :デフォルトの名無しさん:2015/05/18(月) 22:18:46.83 ID:vI2H8fDe.net
>>748
設計が決まっているところからの実装の違いの話だからじゃね?
設計の違いまで含めたら同じことやるコードだろうと似たようなものに収束するなんて話は無いだろ。

752 :デフォルトの名無しさん:2015/05/18(月) 22:30:58.77 ID:puNFPU+7.net
c++みたいにごった煮になってて
まあいいんじゃないっすかね

753 :デフォルトの名無しさん:2015/05/18(月) 23:17:30.40 ID:ZqIMXwl7.net
5.6までの機能には触れてはいるけど、コード書くと5.2で動くのが出来上がるんだよなぁ。
便利になっているのは確かだが特に積極的に採用するようなものでもないという。
PHP7ではさすがに過去のもの切り捨てたスタイルに変えようと思うけど。

754 :デフォルトの名無しさん:2015/05/18(月) 23:32:59.19 ID:AnePxwCu.net
「最新機能の採用」と「コードの品質」には、それほど相関は無いんじゃね。

755 :デフォルトの名無しさん:2015/05/18(月) 23:50:54.23 ID:dqU8r2pT.net
>>751
要件定義が同じでも設計が異なることなんていくらでもあるように思うんだけど、同じになるの?

756 :デフォルトの名無しさん:2015/05/19(火) 00:18:01.36 ID:H38JoFSc.net
>>755
そう言ってるんだが

757 :デフォルトの名無しさん:2015/05/19(火) 12:37:21.95 ID:N+AyWRZk.net
まじかよすげえ

758 :デフォルトの名無しさん:2015/05/19(火) 13:54:20.17 ID:kkxdp1Ko.net
>>757
そのすごい状態が とりあえずの理想だよ
実際にはそこにたどり着けないので トラブルがある

759 :デフォルトの名無しさん:2015/05/19(火) 13:55:59.74 ID:CgqCKJNS.net
建て増しにつぐ建て増しだからな。
いろいろ無理がある。

760 :デフォルトの名無しさん:2015/05/19(火) 15:04:52.29 ID:H38JoFSc.net
回答はしょりすぎた
>>751 では同じことするにも設計なんて色々あると言ってる
そこを一緒にしなければ実装の違いなんて比べられないでしょと

761 :デフォルトの名無しさん:2015/05/27(水) 08:19:37.93 ID:A8cyjd7P.net
半月後の日時を取得したいのですが、
strtotime()ではどのような記述にしたらいいですか?
もし出来ないのであれば違う方法を教えてくださいm(_ _)m

762 :デフォルトの名無しさん:2015/05/27(水) 08:22:46.47 ID:RnsHGaMt.net
半月の定義について聞こうか
単純に15日なのか
そうでない場合月をまたぐ場合はどうするのかとか

763 :デフォルトの名無しさん:2015/05/27(水) 13:06:36.87 ID:Tt3K3vlc.net
いつもの学生の課題丸投げかと思ったら PHPスレだった…

764 :デフォルトの名無しさん:2015/05/27(水) 15:26:48.93 ID:SOZj9WGY.net
>>761
http://php.net/manual/ja/book.datetime.php

765 :デフォルトの名無しさん:2015/05/29(金) 22:36:40.60 ID:6as2IH6X.net
PHPDocで、戻り値がないことを明示的に書くときは どうしたらいい?
@return 書かないだけだと、書き忘れと区別つかんし。

766 :デフォルトの名無しさん:2015/05/29(金) 23:22:11.54 ID:9jHPFz3S.net
@return null じゃだめなん?

767 :デフォルトの名無しさん:2015/05/29(金) 23:27:44.26 ID:3oguv8SC.net
基本的に書き忘れるなよとしか言いようがない
書くべきじゃないがどうしても書きたきゃvoidにしときゃいいんじゃね
フォーマット違反でも結局見る側がわかればいい問題だし

768 :デフォルトの名無しさん:2015/05/30(土) 01:11:45.81 ID:c2c+lsoh.net
>>767
書き忘れと区別付けたいんだよね。

769 :デフォルトの名無しさん:2015/06/01(月) 12:21:15.17 ID:jClPxdDj.net
# return

770 :デフォルトの名無しさん:2015/06/02(火) 15:18:01.04 ID:fJ3eeBtW.net
自分自身のクラスは self でも参照できる
ってのは、マニュアルのどこに書いてありますか?

なんかどこを読んでも、そういう前提でマニュアル書いてあるんだけど
自分自身はselfだってことがどこにも書いてないんだよな

771 :デフォルトの名無しさん:2015/06/02(火) 15:31:48.92 ID:JpMYfsQK.net
>>770
『定義済のクラス』
http://php.net/manual/ja/reserved.classes.php

772 :デフォルトの名無しさん:2015/06/02(火) 15:48:27.80 ID:fJ3eeBtW.net
>>771
オー! サンキューベリーマッチ

773 :デフォルトの名無しさん:2015/06/02(火) 20:35:59.42 ID:7VRhULmj.net
うっひょ〜!PHP最高!

774 :デフォルトの名無しさん:2015/06/02(火) 21:30:11.04 ID:ruRnIKMr.net
Symfonyがわからなすぎて辛い
日本語ドキュメントもほとんどないし…

775 :デフォルトの名無しさん:2015/06/02(火) 21:35:16.19 ID:38iTpmow.net
でも代わりになる良いフレームワークが無い

776 :デフォルトの名無しさん:2015/06/02(火) 22:24:24.05 ID:OtbaiMpw.net
laravelって流行ってるの?

777 :デフォルトの名無しさん:2015/06/02(火) 22:50:28.64 ID:fJ3eeBtW.net
>>775
FuelPHP いいよ
導入コストはゼロに近い

778 :デフォルトの名無しさん:2015/06/02(火) 22:57:26.07 ID:dwjHRJAm.net
laravel重いからやだ

779 :デフォルトの名無しさん:2015/06/02(火) 23:10:54.40 ID:n6IbB7yL.net
SymfonyのようなフルスタックなMVCフレームワークは頑張ってやっといたほうがいいぞ
他で応用がきくからな
おかげでPlayもすんなり使えたぜー

780 :デフォルトの名無しさん:2015/06/02(火) 23:27:46.86 ID:OtbaiMpw.net
cakephpぐらいしか入門者向けのtutorialなくね?

781 :デフォルトの名無しさん:2015/06/02(火) 23:58:49.30 ID:n6IbB7yL.net
http://docs.symfony.gr.jp/
一応あるっちゃあるんだけどな
完璧に使いこなせなくてもいいから
とりあえず使ってみることが大事だぜー

782 :デフォルトの名無しさん:2015/06/03(水) 00:43:03.71 ID:TkXokWHH.net
ASP.NET MVC使ったらZendFramework使いたくなくなるのは伏せておくとして、
他のよりはいいと思うが。

783 :デフォルトの名無しさん:2015/06/03(水) 18:21:53.92 ID:CFPmUN8f.net
テンプレート使いたいけどfuelと一緒に使うならtwigかsmartyの2つの他に何かある?

784 :デフォルトの名無しさん:2015/06/04(木) 01:04:06.76 ID:FZpfA7xp.net
twig ってどう言うの? 使いやすい?

785 :デフォルトの名無しさん:2015/06/05(金) 00:36:24.73 ID:vgtnI7Mx.net
>>783
ttp://fuelphp.com/docs/packages/parser/intro.html

786 :デフォルトの名無しさん:2015/06/05(金) 15:38:50.15 ID:aaRdZOdi.net
composerにデフォルトでtwig,haml指定されてるのか

787 :デフォルトの名無しさん:2015/06/05(金) 15:48:01.47 ID:H2M0ctpc.net
debug_backtrace で返される連想配列の途中で
'file' が無いところがあったんだけど、ナンデ?

ファイルの存在しないところからのアクセス?

788 :デフォルトの名無しさん:2015/06/05(金) 17:50:21.74 ID:Mh91SRqR.net
symfonyのpersistがよくわからない

789 :デフォルトの名無しさん:2015/06/06(土) 06:26:00.41 ID:D7JiD14y.net
フレームワークよりsubversionとかの使い方がよくわからない
一人ならいらないかもしれんけどせっかくだから使ってみたいよね

790 :デフォルトの名無しさん:2015/06/06(土) 08:13:38.77 ID:wzCXSsbY.net
〜がわからないって書き込みみると質問というより独り言に見えてならない

ソーシャル日記アプリみたいな感覚なのかな?

791 :デフォルトの名無しさん:2015/06/06(土) 09:07:33.50 ID:KMNvqcU5.net
>>789
動いたバージョンに何時でも戻せるという安心感は、個人でも有効。
特に学習中は、勘違いして色んな意味で間違ったコードで埋めがちだし。
仕事で本格的に使うようになる前の練習くらいのつもりて良いと思うよ。

792 :デフォルトの名無しさん:2015/06/06(土) 18:08:34.74 ID:zuUc75X6.net
>>790
2chなんて「品のいい便所の落書き」だろ
何書いたっていいのさ

793 :デフォルトの名無しさん:2015/06/06(土) 19:38:20.72 ID:KXeoVawS.net
>>789
一人でも要る。

794 :デフォルトの名無しさん:2015/06/06(土) 19:51:46.05 ID:wzCXSsbY.net
一人だけどGit立て、redmineもついでに立てた

バックアップやメモ代わりには大げさ過ぎる気もするが

795 :デフォルトの名無しさん:2015/06/07(日) 20:45:19.06 ID:ovV6qflK.net
メーリングリストに加入したいけどメールがこない
手動なの?遅すぎるよ

796 :デフォルトの名無しさん:2015/06/08(月) 23:26:18.96 ID:73KDW0i2.net
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.5
【連携ソフトウェア】xampp(MySQL、Apach) Codeigniter3.0
【質問内容】
Codeigniterのセッション利用で質問です。
下記の構成で画面を作っているのですが、Codeignierのエラーログが
吐かれてしまい対処に困っています。

【処理内容】
CI_controllerクラスを継承したMy_controllerクラスから
loginクラスを作成し、そこで最初のログイン認証後にセッションを
書き込んでいます。
セッションに書き込んだ後に他のページにリダイレクトさせていますが
そこでセッションを参照するとemptyとなって旨く処理ができません。
セッション書き込み処理のあとすぐvar_dumpしたところ書き込みはできているようでした。
設定はautoload.phpのlibraryでsessionを自動読み込みしています。
そこで、色々いじくってみてphp.iniのsession.auto_startを1(ON)に
してみたところセッションの読み取りは出来ましたが
今度はCodeignierのログに「session.auto_startが有効になっています、
中断してください」といったメッセージが出力されるようになってしまいました。
ユーザガイドのセッションの項にはphp.iniに関する記述がないのですが
どのように対処するのが適切なのでしょうか?
旨くかけていないかもしれませんがよろしくお願いします。

797 :デフォルトの名無しさん:2015/06/08(月) 23:52:37.87 ID:pbk/+Kp9.net
一片のコードすら出てこないのな

798 :デフォルトの名無しさん:2015/06/08(月) 23:53:58.91 ID:pbk/+Kp9.net
書き込んでしまった。
これ読んで、そのように使ってるかどうか確認してみたら。
http://www.codeigniter.com/user_guide/libraries/sessions.html

799 :デフォルトの名無しさん:2015/06/09(火) 00:00:36.44 ID:rzPPp0B+.net
>>797
すいません、、
職場でちょっと触ってて家帰って頭捻ってたとこでしてコード見れません。
頂いたUrl見てみます。

800 :片山博文MZ ◆T6xkBnTXz7B0 :2015/06/09(火) 12:05:41.38 ID:9rDHYdk2.net
PHPで作った体液取引所の人気が出ない。。。

http://katahiromz.esy.es/taieki/
https://github.com/katahiromz/taieki

なんかいい方法ないかなああああああ

801 :デフォルトの名無しさん:2015/06/10(水) 16:30:07.78 ID:JjE8Vgth.net
PHPExcelを使うことになって、作者には大変感謝するが、セル"B8"を取得するのに
> getCellByColumnAndRow(1, 8)
はひどいよ。
VBAだとCells(8, 2)。
"A1"がgetCellByColumnAndRow(0, 1)ってどういうことだよ・・・。

802 :デフォルトの名無しさん:2015/06/10(水) 17:47:10.97 ID:o1tFouS8.net
>>801
VBAと同じになるようにクラス作れ

803 :デフォルトの名無しさん:2015/06/10(水) 18:35:55.43 ID:JjE8Vgth.net
>>802
そんなに使う昨日多くなかったから、ラッパーメソッドいくつか書いてお茶を濁した。
ほかもいろいろ酷かった。

セルの背景色設定が、
$sheet->getStyle("A1")
    ->getFill()
    ->setFillType(PHPExcel_Style_Fill::FILL_SOLID)
    ->getStartColor()
    ->setARGB($argb);

セルに対角線を引くのが
$sheet->getStyle("A1")
    ->getBorders()
    ->setDiagonalDirection(PHPExcel_Style_Borders::DIAGONAL_UP)
    ->getDiagonal()
    ->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);

みたいな感じ。

804 :デフォルトの名無しさん:2015/06/11(木) 03:53:34.16 ID:ABeq3ksD.net
これはひどい

805 :デフォルトの名無しさん:2015/06/11(木) 12:08:06.37 ID:dLC9LZnf.net
>>796
質問の聞き方が悪すぎる
session関係の設定がわからないしcodeigniterの設定もわからないのにこちらが聞き返さないと行けない

806 :デフォルトの名無しさん:2015/06/15(月) 16:32:23.03 ID:ks4U7BG0.net
またまたまたまたyohgaki氏がしょうもない記事を書いてる。

ほぼ全てのインジェクション攻撃を無効化/防止する入力バリデーション
http://blog.ohgaki.net/input-validation-disables-most-injection-attacks

この人なんでバリデーションにこうもこだわるかね。

SQLインジェクション対策なら、第一に上げるべきはプリペアードステートメントでしょうが。

807 :デフォルトの名無しさん:2015/06/16(火) 02:17:57.61 ID:VrtJnVQC.net
まあ溢れんばかりの情熱は感じるから、これはこれで。

808 :デフォルトの名無しさん:2015/06/16(火) 14:34:25.00 ID:8MBTn3Q1.net
>>806
また大垣か
何もしないよりはマシだけど、こういう間違ったセキュリティ対策を勧めてもし何かあった場合こいつ責任取れんのかな?

809 :デフォルトの名無しさん:2015/06/16(火) 17:03:13.30 ID:1ZpIz9bG.net
これはこれでとか、何もしないよりはとか、本気かね。
このレスには>>806も戸惑いを隠せないだろう。

810 :デフォルトの名無しさん:2015/06/16(火) 17:53:26.78 ID:a7UeLNF9.net
これ間違ってるの?
これじゃ対策できないの?

811 :デフォルトの名無しさん:2015/06/16(火) 18:12:09.79 ID:sXGSd9sk.net
>>810
yohgakiという人が、Webアプリのコードを書いてるのか、メジャーどころのFWの事情なんかを
知ってるのか、それを使ってるのか不明だが、上のURLみたいなコードを書いてるとしたら、
もう全然ダメ。

まねしてはいけない。

812 :デフォルトの名無しさん:2015/06/16(火) 18:23:04.82 ID:TqJAvMYM.net
具体的に何が駄目なの?

813 :デフォルトの名無しさん:2015/06/16(火) 18:33:03.60 ID:sXGSd9sk.net
>>812
あのコードが「ほぼ全てのインジェクション攻撃を無効化/防止する入力バリデーション」に
なってるかどうかも判断できないのなら、もっと本読め。

814 :デフォルトの名無しさん:2015/06/16(火) 18:34:09.95 ID:gqnH2dL3.net
>>813
お前に理解力と説明力が無いことは良く分かった。

815 :デフォルトの名無しさん:2015/06/16(火) 18:36:34.18 ID:sXGSd9sk.net
仮に「ほぼ全てのインジェクション攻撃を無効化/防止する入力バリデーション」を実現する
コードが書けたとしても、それは「ほぼ全て」でしかないんだよ。

816 :デフォルトの名無しさん:2015/06/16(火) 18:37:41.88 ID:sXGSd9sk.net
>>814
あ、そう来る?

じゃ、大垣氏の考えを全面的に受け入れて、今後もコードを書いてけばいいよ。
大垣氏は書籍も出してるから、全部買って読めばいいさ。

817 :デフォルトの名無しさん:2015/06/16(火) 18:43:20.89 ID:gqnH2dL3.net
>>816
そうくる? じゃねーよw
具体的に例を挙げて説明してみろよw
それも出来ないようじゃお前こそ大垣以下だろw

818 :デフォルトの名無しさん:2015/06/16(火) 18:53:58.41 ID:TqJAvMYM.net
>>813
いや、だからそれがわからないから聞いてるんだけどw

具体的に何が駄目なの?って

819 :デフォルトの名無しさん:2015/06/16(火) 18:59:20.87 ID:VNwjpJ1t.net
アレって、お前の言うSQLインジェクション等の確実な対策の前段階の
入力に対するエラーを出すための処置だろ

アレで対策を行なうんだと思った方がおかしいんだよ
もっとも、俺もこいつ嫌いだがな。
そもそも、開発中だの仕様変更で開発速度だの言ってるくだりが意味が分からん
最後に、くれぐれもこの緩い入力バリデーション関数で運用に入らないようお願いします
って書いてるんだぞ お前は何がしたいんだ

820 :デフォルトの名無しさん:2015/06/16(火) 19:24:49.25 ID:1ZpIz9bG.net
>>818
横からだけど、
・適切に処理しなければ問題が発生する文字がある
 →ならそれらの文字を除外すればよい
という対応をしているわけだけれど、それが本末転倒だと思えるかどうかじゃないかな。

Webサーバを公開していたら攻撃されたので80ポートふさぎました。これで攻撃されません。
この対策はある意味では正しいけど、本末転倒だし根本的に間違えているでしょ。

821 :デフォルトの名無しさん:2015/06/16(火) 19:27:22.33 ID:1ZpIz9bG.net
ついでにいうと、彼の方針に従うとしたとしてもバグがあるので、
彼が除外すべきだとしている一部の記号を入力できてしまう。

そういう意味でも、駄目だね。

822 :デフォルトの名無しさん:2015/06/16(火) 19:43:29.69 ID:VNwjpJ1t.net
0-Zが面白い

823 :デフォルトの名無しさん:2015/06/16(火) 21:31:42.38 ID:ZuUbQivG.net
0-Zは、0-9A-Zの間違いだろうね。
その他に、バリデーションとしてどこがダメなの?

824 :デフォルトの名無しさん:2015/06/16(火) 22:08:13.38 ID:JwGJ9FW7.net
ほぼ全てのインジェクションって書いてるじゃん
インジェクション攻撃はSQLだけにあらず

825 :デフォルトの名無しさん:2015/06/16(火) 22:44:11.83 ID:+xig3h/n.net
>>823
横から口挟むけど、インジェクション対策をしようとしてのバリデーションて話なら、その発想がどこかナナメだということじゃないの?
例えばHTMLエディタを作りましょうって場合に、悪用可能な文字は全部除外してしまえ!とか無理でしょ。
インジェクション対策は、例えどんな文字列が来ようとSQLとか外部コマンド、ユーザーサイドへ出力するHTML、JS、CSS、etc. を混乱させない処理を施すこと(適切なエスケープ、サニタイジング)が基本でしょ。
もちろん目的に敵わない入力を予め除外するというのは前処理として決して的外れではないんだけど、それは本質じゃないってことだ。

そんな当たり前のところで食い下がるって、もしかして本人?

826 :デフォルトの名無しさん:2015/06/16(火) 22:54:56.34 ID:MQvvbfkJ.net
>>823
まず>>829が書いているように、省いている文字を入れたいのに入れられない。
あとバイナリデータ入れたい場合これだとどうしようもない。

書いているバリデーションの質としてどうこうはこの際どうでもよくて、「SQLインジェクション対策」を目的としているから根本的にダメなんだよ。

827 :デフォルトの名無しさん:2015/06/16(火) 22:55:59.68 ID:a7UeLNF9.net
>>813からすると、あのコードではほぼ全ての無効化はできていない、と判断できるのだけど、
0-Zみたいなバグは置いといて、何がまずいの?
仮にあれだけの文字除外して大丈夫なシステムだったら採用してOKなの?

>>825の基本は十分分かってるけど、そもそも色んな言語に分けて対応しなくていいなら楽でしょ

828 :デフォルトの名無しさん:2015/06/16(火) 22:56:54.24 ID:MQvvbfkJ.net
間違い。>>829じゃなくて>>820

829 :デフォルトの名無しさん:2015/06/16(火) 23:07:26.26 ID:MQvvbfkJ.net
>>827
> 仮にあれだけの文字除外して大丈夫なシステムだったら採用してOKなの?
改行と記号と空白を除外するシステムって自分は見たことないんですが……。

> >>825の基本は十分分かってるけど、そもそも色んな言語に分けて対応しなくていいなら楽でしょ
それだったらプリペアードステートメントのほうが間違いなく楽なんですが……。

830 :デフォルトの名無しさん:2015/06/16(火) 23:07:32.75 ID:+xig3h/n.net
>>827
バリデーションですり抜ける直接的な文字でインジェクションできなくても、その文字列が直接使われない場所でなら悪用できるかもよ。
メジャーな処理として挙げるわけじゃないが、何かのキーをBASE64で変換してフォームとやりとりしてて、SQLにはそれをデコードしたものを含めてるとか。
だいたい悪用しようとする側からすれば、サーバサイドへ何かを入力する経路はGETやPOSTだけじゃなくCOOKIEだってあるわけで、フォームの項目だけバリデーションすればいいような話はひいき目に見てもミスリード。
対策はそのデータの利用場面に合わせてしか行えない。
だから基本だと言ってるし、それが本質。

831 :デフォルトの名無しさん:2015/06/16(火) 23:31:47.97 ID:96Zh/lJj.net
「ほぼ全てのインジェクション攻撃を・・・」っていうタイトルだけど、
本来は個別に対策すべきで、「ほぼ全ての・・・」っていう
包括的なバリデーション関数を作ること自体がナンセンスってことなの?

832 :デフォルトの名無しさん:2015/06/16(火) 23:41:57.96 ID:+xig3h/n.net
>>831
ほぼ全て云々はおれの主張することじゃないんで見解だけ言えば、バリデーションで全てのケースに対応できるわけないんだからバリデーションでインジェクション対策をするという発想そのものが誤り、かな。
そもそも何故それをバリデーションでやりたいの?って話だよ。
それだけやっとけば後は特別なことをする必要がない包括的な手段として目を付けたということなんだろうけど、それが成立するのは全てのケースに対応できる場合だけ。
それができないというんだから、その方法には特別な価値は無いということだよ。

833 :デフォルトの名無しさん:2015/06/16(火) 23:44:05.29 ID:a/iHLN7R.net
欠陥だらけのシステム作ってもらわないとお仕事なくなっちゃう><

834 :デフォルトの名無しさん:2015/06/17(水) 00:03:10.37 ID:LiGG8CES.net
>>832
なるほど。「バリデーション」と「インジェクション対策」は別のフェーズと考えるべきなのか。
そういう考え方だと、「ほぼ全てのインジェクション攻撃を無効化/防止する入力バリデーション」
っていうのはフェーズを混同させるものとも言えるね。

835 :デフォルトの名無しさん:2015/06/17(水) 00:24:54.80 ID:qOETCbZk.net
そういうこと。
しかも、他の人も書いてるけどプリペアドステートメントみたいなずっといい方法があるんだから、それを活用した方がいい。

ただ、包括的に処理できればなぁとは思う。
SQLの場合はこの方法、sh使うならこの方法、HTMLに埋めるならこの方法と、やり方がばらばらだしやるべき場面も知っている必要があるからね。
変数のtypeを拡張して、単なる文字列なのか、HTMLとしても文字列なのかのような属性を持たせて、型違いになる値の埋め込み時には自動キャストよろしく勝手に適切な処理がされるとか。
言うほど簡単な話じゃないけど。

836 :デフォルトの名無しさん:2015/06/17(水) 09:59:54.85 ID:DHqA5koz.net
>>834
> そういう考え方だと、「ほぼ全てのインジェクション攻撃を無効化/防止する入力バリデーション」
> っていうのはフェーズを混同させるものとも言えるね。
そう。

そして、yohgakiは意識的にか無意識か知らないけどずっと前(2008年あたり?)からそういう論調で、
自分が万人に受け入れられるまでは続けると思うよ。

837 :デフォルトの名無しさん:2015/06/17(水) 10:32:14.52 ID:k/UmS/Z+.net
次の記事見ればコイツのスタンスは分かる

つーか、いちいちコイツがなんか書いたからってわざわざ報告しなくていいから

838 :デフォルトの名無しさん:2015/06/17(水) 12:39:47.02 ID:RAu2/XiI.net
まぁインジェクション対策云々はおいといて入力バリデーションは重要だけど
フィルタリングである程度想定してないデータを弾くのはいいことだ

839 :デフォルトの名無しさん:2015/06/17(水) 12:46:54.91 ID:Y2jbb8HB.net
そもそも多重防御がセキュリティの基本だからね。

840 :デフォルトの名無しさん:2015/06/17(水) 21:56:23.78 ID:jnKm6Y3Z.net
$tweetid = (int)$_GET['tweetid'];
$query = "SELECT * FROM tweets WHERE tweetid=$tweetid;";

みたいに、入れるものが明らかに安全なときはプリペア使わないことがあるけどだめ?

841 :片山博文MZ ◆T6xkBnTXz7B0 :2015/06/17(水) 21:59:08.77 ID:/OO8ry8l.net
>>840
馬鹿が危険なコードに書き換える可能性アリ

842 :デフォルトの名無しさん:2015/06/17(水) 22:15:53.40 ID:RAu2/XiI.net
>>840
そんなのは普通

843 :デフォルトの名無しさん:2015/06/17(水) 23:54:41.11 ID:nOv8plof.net
>>840
Getの値があきらかに安全だという
根拠を知りたい(´・ω・)

844 :デフォルトの名無しさん:2015/06/18(木) 00:34:26.83 ID:KbwadcNI.net
intにキャストしてんじゃん
変なのきてても0になるだけ

845 :デフォルトの名無しさん:2015/06/18(木) 10:55:58.22 ID:yMgp6kaJ.net
>>840
それはそれでいいかもしれない。
ただ数値型はAという処理、文字列はBという処理みたいに、内容に応じてクエリを作るとミスが起きる可能性がある。
その点プリペアドステートメントはどのパターンでも統一した書き方ができるので、結果ミスが起き辛くなる。

846 :デフォルトの名無しさん:2015/06/18(木) 12:54:06.95 ID:d3F4/2GH.net
>>840
RDBMSにもよるが、プリペアードクエリは、SQLインジェクション対策以外にも
実行計画をキャッシュできるというメリットがある。

847 :デフォルトの名無しさん:2015/06/18(木) 16:01:25.16 ID:spIyrXEm.net
Debian7・Nginx・php5-fpmの環境でcrontabを使ってphpファイルを自動実行したいのですが、www-dataユーザーで実行したい場合は以下の方法で良いのでしょうか?

crontab -u www-data -e



0 15 * * * cd /var/www/html php -f ./auto.php


php -f ではなくphp5 -fにした方がいいのではないかと悩んでいます。

848 :デフォルトの名無しさん:2015/06/18(木) 16:57:43.56 ID:kNpEqESr.net
複数バージョンのインストールした場合みたいな話は
サーバー次第なので聞かれても分からんよ
cdコマンドの後 普通は ;じゃね?

つーかPHPかんけーねー

849 :デフォルトの名無しさん:2015/06/24(水) 21:08:45.56 ID:sYzOe4hn.net
質問です。スレチだったらすみません。
Youtubeの動画をDLするスクリプトを書いてたのですが、ものによって低画質だったり高画質だったりします。
高画質でDLするにはどうすればいいでしょうか。

850 :デフォルトの名無しさん:2015/06/24(水) 21:39:02.34 ID:ix5XSndE.net
>>849
先にコード貼れよ
どういうコードかによってアドバイス変わるだろ

851 :デフォルトの名無しさん:2015/06/24(水) 21:50:20.18 ID:dh/bI8tC.net
違法ちゃいますのん

852 :デフォルトの名無しさん:2015/06/24(水) 23:07:30.99 ID:XZ6zUxBq.net
元々低画質なだけだろ

853 :デフォルトの名無しさん:2015/06/24(水) 23:57:01.78 ID:sYzOe4hn.net
ビットレートが明らかに低く音質、画質ともに最悪です。
やり方は同じなので、品質のばらつきはコードとは別に問題があると思い質問しました。

854 :デフォルトの名無しさん:2015/06/25(木) 03:19:00.00 ID:Wi36vyFt.net
>>849
お察しのとおりスレチだよ。PHP関係ないもの。

855 :デフォルトの名無しさん:2015/06/25(木) 04:38:30.21 ID:chffdwA+.net
>>849
やり方は知ってるよ
でもスレチだから答えてあげない

856 :デフォルトの名無しさん:2015/06/25(木) 07:52:20.99 ID:iAgotMUN.net
失礼しました。 他の板で質問し直します。

857 :デフォルトの名無しさん:2015/06/26(金) 13:58:00.27 ID:LOLHSmOB.net
以前PhpStormのスレがあった気がしたんだがどこ行っちゃったかね
無いようなら立ててもいいかな?

858 :デフォルトの名無しさん:2015/06/26(金) 14:17:52.32 ID:OdrCnoN5.net
この板はプログラムを作る人のための板です。

あらゆる質問はまずすれ立てるまでもない質問はここでスレにしてください。

その他、お勉強ページへのリンクスレ、
推薦図書・必読書スレ
もあります。

プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。
Javascript は Web 制作板、CGI は Web プログラミング板へ。
業界談義、愚痴はプログラマ板へどうぞ。
ゲーム関係の話題はゲーム製作板へどうぞ。
ネタ、板とは関係の無い話題はご遠慮ください。

859 :デフォルトの名無しさん:2015/06/26(金) 18:05:08.61 ID:LOLHSmOB.net
PhpStormでさ、定数の定義値をマウスオーバーでポップアップさせたいんだけど
どうしたらいいかな
CTRL+SHIT+T でポップアップできるけど、いちいちキー打ちゅの面倒くさい

860 :デフォルトの名無しさん:2015/06/26(金) 18:36:39.29 ID:o1Df+09Z.net
キーを打つ時間がほとんどなのに

861 :デフォルトの名無しさん:2015/06/27(土) 19:15:35.21 ID:XTIsa2U8.net
PhpStormでさ、ボタンアイコンとかの上にマウスカーソル乗せたときに
ツールチップヒントが出るけど、この出るまでの時間がちょっと長くて
これを短くするにはどうしたらいいかな

862 :デフォルトの名無しさん:2015/06/28(日) 13:48:24.55 ID:5m9gZHLm.net
switch文のインデントで、case文をhalf indentにしてるんだけど
これって俺だけ?

if( $unko ){
    exit(0);
}
switch( $chinko ){
  case USED:
    do();
    break;
  default:
    die();
}
みたいな感じ

863 :デフォルトの名無しさん:2015/06/28(日) 14:31:25.51 ID:ztXjEmUK.net
>>862
してる

864 :デフォルトの名無しさん:2015/06/28(日) 15:40:16.32 ID:5m9gZHLm.net
>>863
おお! いるのか。

PhpStormとかEclipseとかは こういうインデントに対応してないから
switch文だけ毎回微調整しなきゃならなくて 面倒くさいんだよな

865 :デフォルトの名無しさん:2015/06/28(日) 15:54:18.93 ID:YBvq0FDq.net
そのインデントやめれば?w

866 :デフォルトの名無しさん:2015/06/28(日) 20:49:02.58 ID:RSiHFvOo.net
おれも前はインデントしてたけど、ラベルの親戚だと考えればインデントしない方がいいという結論に至った

867 :デフォルトの名無しさん:2015/06/29(月) 07:19:44.21 ID:GUCtyGAa.net
質問です。
また大垣がやらかしたようですが、
自分は脆弱性のあるプログラムしか書けないくせに、
バリデーションはセキュリティ(キリッ)とか言っちゃてて恥ずかしくないのでしょうか?

868 :デフォルトの名無しさん:2015/06/29(月) 12:29:31.19 ID:eS8mn29W.net
その大垣って有名な人なの?

869 :デフォルトの名無しさん:2015/06/29(月) 14:03:59.40 ID:dI4zlbgu.net
徳丸と大垣はお互いにあいつは話のわからんやつだと思い合う関係。
どっちにつくのも自由だよ

870 :デフォルトの名無しさん:2015/06/29(月) 14:42:09.32 ID:teFqna/9.net
PDOでエラーになったときに例外が出るのと出ないのがあるんだけど
どこで区別されるの?

insert時に重複してると例外がでるけど
これエラーで済ませないかな

871 :デフォルトの名無しさん:2015/06/29(月) 17:19:26.63 ID:k48kibIU.net
PDO::ATTR_ERRMODE の話?
どっちにしてもトランザクション中なら続きできない気がするが

872 :デフォルトの名無しさん:2015/06/29(月) 17:41:24.15 ID:nWtxw8xH.net
test

873 :デフォルトの名無しさん:2015/06/30(火) 06:37:05.20 ID:+pw4+xSb.net
>>869
いや全然違う
CSRFも理解しておらず、この間はテストすらしてないバグのあるコードを公開してた
大垣にセキュリティを語る資格はない

874 :デフォルトの名無しさん:2015/06/30(火) 12:26:30.07 ID:htUHD13i.net
>>873
話がかみ合ってない

875 :デフォルトの名無しさん:2015/06/30(火) 12:39:27.03 ID:f9Xenhmh.net
ポインタがずれてますよ

876 :デフォルトの名無しさん:2015/06/30(火) 12:57:40.74 ID:+pw4+xSb.net
>>874
会話の土台にすら立ててないってこと
デタラメなセキュリティ情報を発信する奴につくのは見当違いな発言だろ

877 :デフォルトの名無しさん:2015/06/30(火) 13:01:17.94 ID:htUHD13i.net
>>876
別におかしなやつについていこうがなにしようが自由でしょ。ばかだなぁとは思うけど。
ちな>>809は俺な

878 :デフォルトの名無しさん:2015/06/30(火) 15:57:44.78 ID:yGbQd19m.net
徳丸disな記事を丸々削除して、同じURLで別の記事を登録した模様。
http://blog.ohgaki.net/criticism-for-my-sample-program

削除した記事には、こんなこと書いてたのに。

> 徳丸さんのブログでの全く間違った指摘に対するコメント ...
> blog.ohgaki.net/wrong-criticism-for-my-sample-program
> 4 時間前 - 徳丸さんとは論理的に議論をする余地がないので、議論をするつもりは全くありません。
> しかし、完全に間違った指摘をされているのでコメントしておきます。 問題のブログはこちらです。
> 書籍『Webアプリケーションセキュリティ対策入門』のCSRF ...

879 :デフォルトの名無しさん:2015/06/30(火) 16:01:05.21 ID:yGbQd19m.net
おっと、
http://blog.ohgaki.net/wrong-criticism-for-my-sample-program
の内容を丸ごと置き換えて、同じ内容を
http://blog.ohgaki.net/criticism-for-my-sample-program
でも公開してる。
なんだこれ。

880 :デフォルトの名無しさん:2015/06/30(火) 16:17:02.91 ID:+pw4+xSb.net
>>878
これは酷い
けど、ようやく間違いを認めたようだね


検証した人のわかりやすいまとめもあるから反面教師にしよう

書籍『Webアプリケーションセキュリティ対策入門』のCSRF脆弱性について追試してみた
http://blog.a-way-out.net/blog/2015/06/30/web-app-security-bbs-csrf/

こっちは徳丸
書籍『Webアプリケーションセキュリティ対策入門』のCSRF脆弱性
http://blog.tokumaru.org/2015/06/webcsrf.html

881 :デフォルトの名無しさん:2015/06/30(火) 19:44:44.03 ID:6xoEPUUH.net
せめて くだらない質問スレ にあったこと書け
そんなのはお前の名前だした上で別のとこでやれ

882 :デフォルトの名無しさん:2015/06/30(火) 21:20:00.22 ID:TGfi4m1b.net
private とか public とかの修飾って、なんて呼べばいいの?
公開属性?

883 :デフォルトの名無しさん:2015/06/30(火) 22:18:02.60 ID:Ni6S0TpV.net
アクセス修飾子

884 :デフォルトの名無しさん:2015/07/01(水) 00:39:36.48 ID:O0L9W844.net
smartyのテンプレート内で配列の定義が出来なくて
ドロップダウン作るのがすごく不便なんですがなんとかなりませんかね

885 :デフォルトの名無しさん:2015/07/01(水) 02:53:09.99 ID:jhXB2ucL.net
配列をアサインできないのっぴきならない理由があるとしても、最悪PHPのコードかけるわけだけども。

886 :デフォルトの名無しさん:2015/07/01(水) 10:49:41.54 ID:Gv9F9Dvy.net
PHP関係ない愚痴を書くのやめてくれませんかねぇ

887 :デフォルトの名無しさん:2015/07/01(水) 11:35:50.08 ID:7SCeZZlO.net
PHP関連の話だろ・・・
質問も上に出てる

888 :デフォルトの名無しさん:2015/07/02(木) 17:13:07.14 ID:udBxYDkn.net
PhpStormでさ、@param に 参照だよ、とか、戻り値用だよ、とかを
書き留めておきたいんだけど、どうすればいい?

889 :デフォルトの名無しさん:2015/07/02(木) 20:28:22.37 ID:u9YxqP+S.net
doxygenならin out指定もできたんだけどね。
phpdocのときは変数名でわかるようにしたりしたよ。

890 :デフォルトの名無しさん:2015/07/02(木) 22:59:52.90 ID:Ji+WLvKO.net
インフラエンジニアで上にのせるエンジニアの気持ちを知るためにPHPを覚えたい。
だが作りたいものが無いので取っ掛かりがつかめないんだがどうしたらいいだろう。

891 :片山博文MZ ◆T6xkBnTXz7B0 :2015/07/02(木) 23:05:58.70 ID:4xu5S6Hj.net
>>890
クラウドとAjaxで掲示板のウェブパーツを作ってくれ。

892 :デフォルトの名無しさん:2015/07/03(金) 13:38:24.37 ID:nz2GsR+p.net
htmlのヘッダーで定義した変数の存在期間っていつまでなのかな?
例えばページ読み込んで1秒後にjavascriptを使ってphpの変数の値を取りたい時とか、変数の値はまだ保持できてるの?

893 :デフォルトの名無しさん:2015/07/03(金) 14:16:31.27 ID:3rp9Mnby.net
サーバとクライアント、HTMLとPHPとjavascriptの生存場所等、把握してる?

894 :デフォルトの名無しさん:2015/07/03(金) 14:24:32.64 ID:nz2GsR+p.net
>>893
サーバとクライアントは把握している
phpはサーバー側で処理されるんだろう
例えばjsで作った変数はクライアント側で保持されるけど、phpの変数保持期限ってのはよくわかってない
生存場所はどっかのメモリに保持される、ぐらいの曖昧なレベルしか想像出来ていない

895 :デフォルトの名無しさん:2015/07/03(金) 14:49:09.71 ID:HsGlHAzd.net
>>894
PHPの変数なんだからphpが生きてる場所生きてる間だけが有効範囲。
つまりそのままではサーバ上のPHPスクリプト内でしか参照できないし、クライアント(ブラウザ)へ出力し終えたら跡形もなく居なくなる。
PHPが持っていた変数の値をクライアントのJSで参照したいなら、クライアントへ送り返す出力へJSソースコードの形なんかで含めておく。

んまあその調子だとサンプルが無いと理解できなそうだね。
残念ながら今サンプルは提供できないけど。

896 :デフォルトの名無しさん:2015/07/03(金) 14:58:13.27 ID:nz2GsR+p.net
>>895
ありがとう、理解出来たよ

>クライアント(ブラウザ)へ出力し終えたら跡形もなく居なくなる。
これが知りたかった

897 :デフォルトの名無しさん:2015/07/03(金) 21:50:02.57 ID:7d9NxVxw.net
>>889
ありがとう
PHPDocって意外とかゆいところに手が届かないよね

898 :デフォルトの名無しさん:2015/07/04(土) 10:41:36.81 ID:tBngPXwX.net
VS2013でオンラインのツールをキーワード PHP で検索すると
 VS.Php for Visual Studio
 PHP Tools for Visual Studio
 PHP Language Support
の3つが出てくるのですが、どれがお勧めですか?
3つ全部入れるとおかしくなりますか?
使ったことある人、それぞれの特徴など教えてくれよ

899 :デフォルトの名無しさん:2015/07/04(土) 11:10:15.10 ID:cUUS545T.net
PHP Tools for Visual Studio一択


上は有料 下はハイライト表示できるだけ

900 :デフォルトの名無しさん:2015/07/04(土) 11:21:57.49 ID:tBngPXwX.net
>>899
レス有り難うございます。
この二番目のやつ、昔は無料板が有ったようですが、今は無さそうなんでが、私の勘違いですか?この会社のHP見てもfree版を見つけられません。

901 :デフォルトの名無しさん:2015/07/04(土) 12:27:38.01 ID:cUUS545T.net
>>900
払わないと機能は限られるけど無料で使い続けられる

902 :デフォルトの名無しさん:2015/07/04(土) 13:09:36.94 ID:csloKTS+.net
PhpStormでさ、ライセンスを読んでも良く分からないんだけど
デスクトップPCとノートPCの両方にインストールして使っていいの?

903 :デフォルトの名無しさん:2015/07/04(土) 14:12:51.05 ID:tBngPXwX.net
>>901
なるほど、そういうことですか。
ありがとうございます。
やはりVSでPHPやる人は、これを購入しているのでしょうか?

904 :デフォルトの名無しさん:2015/07/04(土) 14:46:48.69 ID:ZF0hC5cM.net
VS自体が少ない気が

PHPならnetbeansやeclipse、はたまた慣れたエディタで良さそうな気が

905 :デフォルトの名無しさん:2015/07/04(土) 15:49:05.14 ID:3cpiwj5J.net
ライセンスはどちらかにしか適用されない

906 :デフォルトの名無しさん:2015/07/04(土) 18:03:00.13 ID:vQN4X51O.net
初歩的な質問で申し訳ないです。
VSのphpツールを使えば、phpスクリプトをexeファイルに転換することは出来ますか。

907 :897:2015/07/04(土) 18:26:21.97 ID:tBngPXwX.net
VS2013に
 PHP Tools for Visual Studio
 php-5.6.10-Win32-VC11-x64
入れてPHPが動くところまでは出来たのですが(echoで文字出力)、
https://pear.php.net/manual/ja/package.http.http-request.intro.php
にある
yahoo.com の内容を取得し、 それを表示する

<?php
require_once "HTTP/Request.php";

$req =& new HTTP_Request("http://www.yahoo.com/");
if (!PEAR::isError($req->sendRequest())) {
  echo $req->getResponseBody();
}
?>


 Class 'PEAR' not found
が出て解消出来ません。どのあたりをチェックすれば良いでしょうか?

908 :デフォルトの名無しさん:2015/07/04(土) 18:38:08.01 ID:qSwrJLUr.net
>>907
Class 'PEAR' not found
↑このあたりをチェックしてください

あと、VS2013にphpを入れたって言うのやめよう。
あなたのPCにVS2013とPHPを入れたに過ぎない。

909 :デフォルトの名無しさん:2015/07/04(土) 19:54:39.60 ID:v523Fn+n.net
今時HTTP_Requestなんて使わない
せめてHTTP_Request2を使ってください
PEARなんて使わんでもcURLでことたりる
クッキーとかリファラーとかいらないサイトならfile_get_contentsだけでいい

と余計なおせっかいをしてみる

910 :897:2015/07/04(土) 20:13:59.14 ID:tBngPXwX.net
今までC++などの経験はあり、WEBプログラミングを最近始めてVS2013のメニューの
  新しいWEBサイト
   ASP.NET空のWebサイト
でプロジェクトを作成してhtmlやJavaScript練習しました。
サーバーサイドにも挑戦したくてPHPとPHP Tools for Visual Studioを入れて、現在
906のサンプルの実行で行き詰っています。

基本的な質問なのですが、現在はlocalhost相手にデバッグしていますが、このlocallhostは
 1. PHP built-in Web Server
 2. IIS Express server
 3. Custom web server
の三つから選択できるのですが、現状1.でやっています。でもPHPを入れただけでは足らないライブラリみたいなの
が沢山あるようで、そのたびに、ダウンロードしてインストールしなくてはならないようなのですが、
(例えば908さん推薦のHTTP_Request2など)、それだったら、Xamppを入れてそれを使えばAll-In-Oneらしいので、
追加で何だかんだ入れる手間が省けると思うのですが、Xampp使う方針のほうが良いでしょうか?

911 :デフォルトの名無しさん:2015/07/04(土) 21:04:16.09 ID:v523Fn+n.net
自分が入れてるのは4年前のxamppだから最近のは知らないけど、
windows版xamppのphpはよく使うpeclとかに必要なdllが揃っていて、
php.iniで有効にするだけですぐ使える状態になるのも多いが、
pearはコアしか入ってないような気がする。
結局必要なものは都度インストールしないといけないと思うよ。
go-pearでパッケージマネージャ入れて、
php pearcmd.php install HTTP_Request2
とかやれば関連パッケージも勝手にやってくれるし。

912 :デフォルトの名無しさん:2015/07/04(土) 21:15:52.96 ID:ku1TVvdF.net
ライブラリはcomposerで

913 :デフォルトの名無しさん:2015/07/04(土) 21:20:13.76 ID:ZF0hC5cM.net
なんだかんだwindowsでOSSもの扱うのは割りと面倒くさいな

ビルド環境整えられる人は実質限られてる

914 :897:2015/07/04(土) 21:29:51.38 ID:tBngPXwX.net
ちなみに皆さん、自宅にテスト環境など構築されていますか?
参考までにどういう構成か教えてください。

915 :デフォルトの名無しさん:2015/07/04(土) 22:59:15.02 ID:ifL9jFAi.net
>>914
仮想でCentOS入れて擬似的な環境を構築してる。
理由はWindowsとLinuxだと挙動が異なる部分があるから。

916 :デフォルトの名無しさん:2015/07/05(日) 00:22:14.63 ID:4t+47Ntn.net
テスト兼本番環境はCentOS Apache OpenSSL PHP5.6 MySQL Postfixぐらいかな。
開発はWindowsでそっちにはPHP5.4とApacheぐらいしか入ってないけど。
OpenSSLはhttps使うためで、PHPでOpenSSL関数使ってどうこうするとかそういう目的で入れてるわけではない。
DBは最近はSQLite使ってるしMySQLは全然使ってない。
実際はPHPMailerみたいなSMTPとPOP3実装してるスクリプト使って、外部のメールサーバ使ってるから、
Postfixは機能してない。踏み台にされない自信がついてから使う予定。
追加インストールやモジュールを有効化させる必要があるものとしては、GD memcached cURL等いっぱいある。
PEARは使わない方針。

917 :デフォルトの名無しさん:2015/07/05(日) 03:02:00.62 ID:+z9nj1c8.net
>>914
>>915と同じで、仮想マシンにLinux入れてる

918 :デフォルトの名無しさん:2015/07/05(日) 07:12:11.96 ID:3yF620GD.net
普段javaしているのでPHPのコンパイルエラーないのとか変数型ないのとか怖いんですがどうすればミスを防げるんですか?
とりあえず間違って代入しないように全部の変数名を型名_変数名にしてるんですが一般的ではないですよね?

919 :デフォルトの名無しさん:2015/07/05(日) 08:24:26.93 ID:Uqe8BPso.net
>>918
なんかいろいろ心配と勘違いしてるな

920 :デフォルトの名無しさん:2015/07/05(日) 09:11:30.64 ID:wLc26Ae+.net
半端な知識だと不安しか生まないよな

921 :デフォルトの名無しさん:2015/07/05(日) 12:36:43.76 ID:yHORgw3K.net
>>918
第一に、型の自動変換をよく理解する。
第二に、必要に応じ明示的にキャストする。
第三に、ユニットテストで確認する。

922 :デフォルトの名無しさん:2015/07/05(日) 12:40:09.72 ID:yHORgw3K.net
ついでに言うと、変数名を型名_変数名としても
自動変換された型の値が入ることもあるのであまり意味がない。

923 :デフォルトの名無しさん:2015/07/05(日) 15:46:48.25 ID:3yF620GD.net
自動変換は分かります。文字列"1"で計算をする時は関数を使わないといけないのも分かります。
ただミスが心配で・・・
構文エラーを見つけてくれるツールみたいなのありませんか?

924 :デフォルトの名無しさん:2015/07/05(日) 15:48:10.63 ID:+z9nj1c8.net
>>918
変数名から型が類推できない状況があまりないように思うけど、たまにはあるのかな

925 :デフォルトの名無しさん:2015/07/05(日) 16:09:08.10 ID:VORGGaSF.net
>>923
う〜(・ω・`)

926 :デフォルトの名無しさん:2015/07/06(月) 01:20:56.94 ID:Kti+i7Kd.net
>>923
Javaっつったら普通Eclipseあたり使うと思うんだけど
メモ帳とかで開発してたわけ?

927 :デフォルトの名無しさん:2015/07/06(月) 01:26:59.99 ID:1HLVIjn9.net
>>926
Eclipse使うとPHPの構文エラー見つけてくれるの?

928 :デフォルトの名無しさん:2015/07/06(月) 01:31:02.02 ID:KV2IR53H.net
phpEditor使っとけ

929 :デフォルトの名無しさん:2015/07/06(月) 01:39:37.85 ID:Kti+i7Kd.net
>>927
IDE使ったことないのかよ・・・

930 :デフォルトの名無しさん:2015/07/06(月) 02:10:38.84 ID:1HLVIjn9.net
>>929
あるよ。
PHPの型の不一致も見つけてくれるの?

931 :デフォルトの名無しさん:2015/07/06(月) 02:22:19.22 ID:i5+ZC+xx.net
>>930
Eclipseではそこまで見てくれない
PhpStormなら見つけてくれる

932 :デフォルトの名無しさん:2015/07/06(月) 03:42:51.76 ID:iuaD/3wt.net
暗黙の変換をするPHPの型の不一致はパースエラーじゃないしな
===使えっていう話になるし

933 :デフォルトの名無しさん:2015/07/06(月) 04:42:41.97 ID:1HLVIjn9.net
>>932
じゃあタイプヒンティングなんていらないね。
つーか、なんかかたくなすぎないか?

934 :デフォルトの名無しさん:2015/07/06(月) 04:50:53.53 ID:iuaD/3wt.net
かたくなって?
タイプヒンティングは暗黙の変換じゃないじゃん
それはもちろんパースエラーになるに決まってる

935 :デフォルトの名無しさん:2015/07/06(月) 04:52:57.84 ID:1HLVIjn9.net
なぜ暗黙の型変換の話に限定して進めたのかがわからん。
パースエラーって、実行前にEclipse上でエラーを検知してくれるということ?

936 :デフォルトの名無しさん:2015/07/06(月) 05:10:25.26 ID:iuaD/3wt.net
>>935
Eclipseってひとくくりにしても実行前にエラー検知してくれるかはプラグインによるでしょ
Java入れてないからEclipseなんて使えんし知らんよ
わざわざ型指定してんならさすがに出してくれるだろ
ていうか無料なんだからPDTあたりで試してみろよ

937 :デフォルトの名無しさん:2015/07/06(月) 05:33:44.03 ID:1HLVIjn9.net
> Java入れてないからEclipseなんて使えんし知らんよ
なのに > それはもちろんパースエラーになるに決まってる
なんて書いたの?

> わざわざ型指定してんならさすがに出してくれるだろ
ふぅん

938 :デフォルトの名無しさん:2015/07/06(月) 05:38:19.34 ID:iuaD/3wt.net
>>937
俺はPHPインタプリタの話をしてたんだがな
Eclipseの話なんてした覚えはねーよ

939 :デフォルトの名無しさん:2015/07/06(月) 06:05:01.37 ID:1HLVIjn9.net
>>938
じゃあ実行時エラーの話に変わってるってことか。
元質問の意図を読めてないね。

940 :デフォルトの名無しさん:2015/07/06(月) 06:08:21.21 ID:iuaD/3wt.net
PHPにおいて型の不一致が構文エラーって言ってるから
それは違うだろうと言っただけなんだがな

941 :デフォルトの名無しさん:2015/07/06(月) 06:13:19.34 ID:1HLVIjn9.net
構文エラーじゃないだろっていっても、
> それはもちろんパースエラーになるに決まってる
んでしょ?

942 :デフォルトの名無しさん:2015/07/06(月) 06:55:26.33 ID:iuaD/3wt.net
型指定したい人がいるから妥協してそういう書き方もできるようにしたってだけで
型の不一致って曖昧な表現で型指定ありきで議論するのがそもそもナンセンスだからその辺理解してくれ

943 :デフォルトの名無しさん:2015/07/06(月) 07:21:47.69 ID:ltVzluvD.net
function sum(int $a, int $b) : intとか、
function concat(string $a, string $b) : stringとか、引数や返り値にはできても、
int $a = 1;
string $b = "a";
とか、変数には出来ないのに、タイプヒンティングとか関係あるの?
$a+$bや$a.$bでエラーが出るようにしてくれって言ってるように思えるんだけど。

944 :デフォルトの名無しさん:2015/07/06(月) 10:52:48.09 ID:jnmQ4lhD.net
>>941
PHPにおいてそれは構文エラーでもパースエラーでもないよ。
だからIDEで検出できるのは無いか、もしくは少ないだろうね。

945 :デフォルトの名無しさん:2015/07/06(月) 12:21:26.51 ID:da/MN1a6.net
多分ね、案ずるより産むが易しだと思うの。
そんなチェック無くても困ることなんてほとんど無いよ。
ちゃんとテストすれば何の問題も無い。

946 :デフォルトの名無しさん:2015/07/06(月) 14:03:52.24 ID:oXtXAYjB.net
PhpStorm最近使い始めたけどチェック弱くない?
バルーン出たと思ったら全然関係なかったり
>>931のテストコードがどういうのかはわからないけど
"abc"===trueやarray指定してるのにただの変数渡しても特に何も言わない
設定が悪いのかなんか入れないといけないのか見るところ間違ってるのかわからないけども
前回保存したコードいじってたらインデントがおかしくなったり
今のところ評価はNetbeansやEclipseより駄目な感じ

947 :デフォルトの名無しさん:2015/07/06(月) 14:18:08.71 ID:jgWjPX/O.net
>>946
Netbeans ってPhpStormの無料版じゃないの?

948 :デフォルトの名無しさん:2015/07/06(月) 14:25:36.29 ID:oXtXAYjB.net
>>947
それは初耳
フォークかなんか?
とりあえず開発してるグループは違うから別物だと思うけど
PhpStormに無料版があるならPhpStorm Free Editionとかになりそう

949 :デフォルトの名無しさん:2015/07/06(月) 14:27:24.46 ID:oXtXAYjB.net
あ、もしかして
Photoshopに対するGimpみたいなこと言いたかったのかな?
VSも含めてIDEは似てる部分いっぱいあるからね

950 :デフォルトの名無しさん:2015/07/06(月) 16:16:12.23 ID:jgWjPX/O.net
>>948
完全な勘違いだった。 同じ会社が作ってると思ってたわ。
ねこび〜んかわいい。

951 :デフォルトの名無しさん:2015/07/06(月) 16:17:17.27 ID:jgWjPX/O.net
ねこび〜んだと 「引数の数が合ってない」 とかも検知してくれるのかな

952 :デフォルトの名無しさん:2015/07/06(月) 17:07:27.00 ID:EWqBVBeG.net
>>926
Eclipse使ってたけど構文エラー警告してくれない。

953 :デフォルトの名無しさん:2015/07/06(月) 18:45:06.80 ID:swqGSHIc.net
>>952
vsでphpやる奴はいないのか?
猫ビーンのほうがいいのか?

954 :デフォルトの名無しさん:2015/07/06(月) 20:27:43.19 ID:TRPzwZ1E.net
言語に応じて切り分けるのは当然だろう
VSでPHPやる事自体そもそもナンセンス
VSでJava書いたりCOBOL書いたりしてるようなもの

955 :デフォルトの名無しさん:2015/07/06(月) 20:41:52.88 ID:swqGSHIc.net
>>954
vsでcobolやれるのかどうかは知らんが、vsでcobolやってる奴居ればそりゃ変だと俺も思う。
でもvsでphpやるのって、それ位変なのか?ここにはvsでphpやってる人、一人も居ないのか??教えてケレ!

956 :デフォルトの名無しさん:2015/07/06(月) 20:49:24.37 ID:+DHCfnaN.net
情報が少ないからトラブったら大変だなーと思ってEclipseでやってるわ
元々Win畑で大半は.netだけどたまーにECCUBEカスタマイズとかの案件やるくらいだから
VS以上のIDEなんて存在しないんだけど情報少ないのはハマるとキツイ

957 :デフォルトの名無しさん:2015/07/06(月) 21:02:13.84 ID:swqGSHIc.net
>>956
なるほど、そう言う事か。
phpと.net両方やっている人の意見は説得力有るな。参考になったよ、サンキュウ!

958 :デフォルトの名無しさん:2015/07/06(月) 21:28:30.57 ID:SWoG0MmF.net
VSは無料化したからこれからの主流になる

959 :デフォルトの名無しさん:2015/07/06(月) 21:37:40.57 ID:3Nwo+Cbx.net
売り物作るのに無償版使ったらアカンよ?

960 :デフォルトの名無しさん:2015/07/06(月) 21:43:05.84 ID:SWoG0MmF.net
小規模(10人?)なら大丈夫なはずだが

961 :デフォルトの名無しさん:2015/07/06(月) 21:44:39.72 ID:SWoG0MmF.net
あっ売り物はダメなのね

962 :デフォルトの名無しさん:2015/07/06(月) 23:19:17.73 ID:jnmQ4lhD.net
Eclipse重くない?
昔使ってたけど即捨てた。で、色々試した結果結局SublimeTextに落ち着いた。
最近Atomが出たけどどうなんだろ?

963 :デフォルトの名無しさん:2015/07/07(火) 01:01:39.96 ID:jrHiHLu0.net
>>954
当然じゃない
慣れたIDEに統一したほうがいいしいくつもIDE入れるのは愚策
使えなかったら仕方なく他のを入れるぐらい

964 :デフォルトの名無しさん:2015/07/07(火) 08:07:08.09 ID:GGpy3zJy.net
>>963
いくら慣れ親しんでてもVSでPHPやるみたいに生産性落ちたら意味ないだろ
馬鹿か

965 :デフォルトの名無しさん:2015/07/07(火) 08:17:23.35 ID:oR9xV2kd.net
>>964
VSでPHPやるとそんなに生産性悪いのか?俺は知らんが、も少し具体例を教えてくれよ。

966 :デフォルトの名無しさん:2015/07/07(火) 08:38:07.60 ID:0GZbV0wX.net
phpでIDE使ったこと無くてもっぱらテキストエディタでコーディングしてるけど、IDE使うとどんないい点があるの?
トレースしたりブレーク張ったりできれば便利だなと思うけど、そういうことはできるの?

967 :デフォルトの名無しさん:2015/07/07(火) 08:41:54.00 ID:oR9xV2kd.net
>トレースしたりブレーク張ったりできれば便利だなと思うけど、そういうことはできるの?
IDEって言えば最低限それ位の機能は必要だと思う。それが無いとエディタと変わらんし。

968 :デフォルトの名無しさん:2015/07/07(火) 08:42:28.83 ID:9H83+G3x.net
>>955
VSでPHP、JS、C#書いてるけど、各言語オンリーだったらJS以外に使ってみたいのは有る。
ただ、個人でやるならまだしも、社外の応援頼んだり後輩教育の時にVSだと話が通りやすい。

969 :デフォルトの名無しさん:2015/07/07(火) 08:46:18.06 ID:qmpX8CEE.net
IDEにだって学習コストかかるし全部切り分けてるやつは馬鹿と言わざるをえない
いくら言語に特化した優秀なIDEだって0からだとしばらくは生産性落ちるだろうよ
やり玉にあがってるVSでPHPだってそんな生産性落ちるってほどでもない

自分ならC#はVSだがその他のJS PHP Py JavaはEclipse使うわ

970 :デフォルトの名無しさん:2015/07/07(火) 08:48:10.24 ID:9H83+G3x.net
>>966
今時のIDEはクラスライブラリの取込みが簡単になってるから、既存ライブラリで良い時に使ってる。

971 :デフォルトの名無しさん:2015/07/07(火) 08:55:44.25 ID:0GZbV0wX.net
>>967,969
なるほど、やっぱりそれなりのことはできるのね。
でもそういうのって、デバッグ環境をターゲット環境にどう合わせるかが面倒そうだけど、
例えば httpd下で動くphpにも対応できるのかな。
ブラウザから何かをPOSTして、サーバサイドのphpにブレーク張ってステップ実行する、みたいな。
もしかするとIDEにhttpdまで入っちゃってたりするのかな。
それはそれでhttpdの設定の再現や互換性が気になるところ。

つべこべ言わずこれ触ってみろやってのはある?

972 :デフォルトの名無しさん:2015/07/07(火) 09:51:11.21 ID:41wd3X8y.net
>>971
ちょっとは触っとけ というのは確かにある。
おれはそれでsublimeとbracketsを切った。

973 :デフォルトの名無しさん:2015/07/07(火) 13:39:05.05 ID:ws3V8sWI.net
>>971
IDEがどうこうの前に、xdebug使ってないってことか

974 :ドラゴニア善財:2015/07/07(火) 18:20:16.54 ID:rvYvDGj8.net
29歳引きこもりで家で暇つぶしにJAVAでゴミみたいなショピングサイト作ってたらなんかいける気がしてきて
勢いで就活したらPHP使うWEB系のブラックっぽい企業に内定もらった。

phpも実際の現場じゃオブジェクト指向にもとづいてみんなで開発してんの?一人でやってたから
まったくイメージがわかない。まずは営業成績管理するシステム開発する部署でスタートするんだけども。

975 :デフォルトの名無しさん:2015/07/07(火) 18:33:43.27 ID:ws3V8sWI.net
>>974
とりあえず現場にあわせる。
ちゃんとしてるならそれでいいし、ひどいなら少しずつ改善提案。
それだけのことですよ。

976 :ドラゴニア善財:2015/07/07(火) 21:08:04.43 ID:rvYvDGj8.net
>>975
ありがとう
一応オブジェクト指向で開発していくのが望ましいいんだね。

977 :デフォルトの名無しさん:2015/07/07(火) 22:11:59.00 ID:oR9xV2kd.net
>>974
もし良ければそのショッピングサイト
どこ?教えてくれよ

978 :デフォルトの名無しさん:2015/07/07(火) 22:41:27.51 ID:ws3V8sWI.net
>>976
今どきデザインパターン知らない人もいないだろうし、意識レベルを合わせやすいからね。
とにかく、独学でやってた人がチームに入る場合は、まず合わせること。
気に食わなかろうがなんだろうが、まずはそうすることが大事だよ。

979 :デフォルトの名無しさん:2015/07/08(水) 04:17:30.25 ID:PAkk6Hqa.net
教えてケレ。
VSでclient sideのJavaScriptしか書いた事無いんだが、PHPでserver sideのデバッグする時ってclient side JSのデバッグも一緒に出来るの?

980 :デフォルトの名無しさん:2015/07/08(水) 11:56:22.30 ID:ribTz8l0.net
教えてケレ。
PhpStormでクラス定数とかの上にマウスカーソルを乗せたときに
定義値をポップアップ表示してほしいんだけど、どうすれば出来るの?

981 :デフォルトの名無しさん:2015/07/08(水) 19:31:14.68 ID:AmEp81Mb.net
php初心者なのですが、参考書には
DBのパスワードがかかれたソースファイルを
ルートより上位のディレクトリに置くように書かれていたのですが、これは、レンタルサーバで実現できるのでしょうか?
ロリポップではできませんでした。
レンタルサーバで、パスワードがかかれたソースファイルを隠すにはどのような手段が一般的なのでしょうか?

982 :デフォルトの名無しさん:2015/07/08(水) 19:39:13.06 ID:Kxz7evxA.net
>>981
非公開ディレクトリに置けばOK

983 :デフォルトの名無しさん:2015/07/08(水) 22:19:04.00 ID:9IdXyS8m.net
>>981
ロリポは、たしか公開領域しか使えないんだよね。
その場合、.htaccessでアクセス制限かけたディレクトリを使う方法がある。

根本的な解決として、公開領域の上に非公開領域がある
別のサーバーを使う方がおすすめ。

984 :デフォルトの名無しさん:2015/07/08(水) 23:54:16.12 ID:zNFh4RYA.net
ホームディレクトリ以下全部公開ファイルなの?
ドットファイルは上位でアクセス制限されてるんだろうけど、不安で仕方ないね。

985 :デフォルトの名無しさん:2015/07/09(木) 06:24:58.47 ID:CmA0FZny.net
PHP界では相変わらずDBはほぼMySQL一択状況なの?

986 :デフォルトの名無しさん:2015/07/09(木) 10:41:14.35 ID:a973sKT/.net
>>985
PHPというか、rubyでもJavaでもWEB制作界ではMySQL一択だね
あとスケールしないことがわかってる小規模なところはSQLiteか
未だにPostgreSQL使ってるところはもうほぼ無いんじゃないかな

987 :デフォルトの名無しさん:2015/07/09(木) 11:23:32.23 ID:SLWTmnwe.net
>>986
> 未だにPostgreSQL使ってるところはもうほぼ無いんじゃないかな
そうでもないと思うけど。

Which Technologies Do Startups Use? An Exploration of AngelList Data (07 Aug 2014)
http://codingvc.com/which-technologies-do-startups-use-an-exploration-of-angellist-data

988 :デフォルトの名無しさん:2015/07/09(木) 11:26:19.72 ID:9ZnfqP+N.net
>>986
ひろゆき「それはあなたの感想ですよね?」

989 :デフォルトの名無しさん:2015/07/09(木) 11:34:11.22 ID:OqiP450p.net
 
(MariaDBってまだまだなの?)

990 :デフォルトの名無しさん:2015/07/09(木) 11:56:15.57 ID:OtgBnuSy.net
MsSQL Server (´;ω;`)

991 :デフォルトの名無しさん:2015/07/09(木) 12:47:10.03 ID:SLWTmnwe.net
>>990
>>987の調査は、対スタートアップのものだからね。
エンタープライズ向けの調査したら、MSSQLもかなり使われてる気がする。

992 :デフォルトの名無しさん:2015/07/09(木) 13:10:21.36 ID:OtgBnuSy.net
>>991
無償版のExpress使ってる

993 :デフォルトの名無しさん:2015/07/09(木) 13:51:02.44 ID:mMbg3FA2.net
>>989
後発の新規DBMSと勘違いしてんのか、それともMySQLがまだまだだという前提に立ってるのか。

994 :デフォルトの名無しさん:2015/07/09(木) 14:37:57.66 ID:g/ZifueO.net
MariaDBってMySQLと同義じゃないの

995 :デフォルトの名無しさん:2015/07/09(木) 14:56:15.49 ID:FXD7F5LP.net
OracleにMySQLが買収されて、反発したコミュニティがForkしたのがMariaDB
だから中身は殆ど一緒
GoogleもMySQLは切り捨ててMariaDBに移行してる

996 :デフォルトの名無しさん:2015/07/09(木) 16:04:30.10 ID:zI7Krizk.net
実装レベルで微妙な違いあるからね。
今後のサポート面ではmariaの方が良いかもしれない。
oracleはMySQLを葬り去ろうとしている気がする。

997 :デフォルトの名無しさん:2015/07/09(木) 22:13:37.66 ID:a973sKT/.net
MariaDBでもMySQLコマンドのままだしあんまり困らないしな

998 :デフォルトの名無しさん:2015/07/09(木) 22:47:16.65 ID:7gcchy0Q.net
次スレ
http://peace.2ch.net/test/read.cgi/tech/1436449286/

総レス数 998
268 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★