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

【PHP】下らねぇ質問はここに書き込みやがれ [転載禁止]©5ch.io

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん2014/12/16(火) 23:02:27.78ID:IVwNaeTx
PHPに関する下らない質問用避難スレです。
まず読むこと【PHPマニュアル】
http://www.php.net/manual/ja/
0002デフォルトの名無しさん2014/12/16(火) 23:57:45.49ID:if+akcCT
Webprogにスレあるのに重複か





















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

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0004デフォルトの名無しさん2014/12/17(水) 02:44:27.36ID:XucQiojd
おつ
0005デフォルトの名無しさん2014/12/17(水) 08:01:24.21ID:Q55Z/XYm
>>1
糞スレ立てるなウジ虫
0006デフォルトの名無しさん2014/12/17(水) 08:33:48.37ID:2HMoZql1
cliスレだろ?
0007デフォルトの名無しさん2014/12/17(水) 09:24:51.54ID:92SEZchH
あのレスの内容の90%はまったくPHPと関係のないスレのことか
0008デフォルトの名無しさん2014/12/17(水) 09:29:24.82ID:9gD1VcMA
IDなしだと荒らされるので避難してきました
0009デフォルトの名無しさん2014/12/17(水) 09:36:52.98ID:92SEZchH
数カ月前にこの人が無断で画像使ってるから修正したけど無視されてるし
http://qiita.com/mpyw/items/1cb6fc8170b6a8c8eb04
こんなんばっかりだろPHPerってさ
一応http://www.japrpo.or.jp/には通報済みだけど削除されないものだな
0010デフォルトの名無しさん2014/12/17(水) 09:55:03.92ID:VoUyzdqa
お前のことなんて興味ないし
質問スレでオナニー披露しないでいいから
0011デフォルトの名無しさん2014/12/17(水) 10:24:51.50ID:nSozQxMf
20代前半から中盤に限ってこういう権利関係に疎い奴がいるもんだ
0012デフォルトの名無しさん2014/12/17(水) 11:20:05.35ID:uBob9+nL
IDが出ると見やすくていいね
0013デフォルトの名無しさん2014/12/17(水) 11:22:53.68ID:YTfSGPhx
荒らす奴もNGしやすいし、何より質問者の成りすましが出来なくなるからね。良かったw
0014デフォルトの名無しさん2014/12/17(水) 11:47:06.25ID:VoUyzdqa
荒らしは頑張って書き込むたびにID変えてね!
0015デフォルトの名無しさん2014/12/17(水) 12:16:50.99ID:eyin5x5c
巣に帰れよ
0016デフォルトの名無しさん2014/12/17(水) 21:34:22.64ID:XucQiojd
>>9
前もその人のURL貼られてたな。宣伝か何か?
0017デフォルトの名無しさん2014/12/19(金) 10:29:57.08ID:WohFU2Cv
インタビュー:[楽天]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/
0018デフォルトの名無しさん2014/12/19(金) 11:04:24.93ID:CgQyWAAG
いつものキチガイキタ━━━━(゚∀゚)━━━━!!
0019デフォルトの名無しさん2014/12/19(金) 13:56:22.75ID:5dTMV7SU
昔話おじさんキター
0020デフォルトの名無しさん2014/12/20(土) 23:34:22.47ID:wxqr2k4c
インタビュー:[楽天]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/
0021デフォルトの名無しさん2014/12/21(日) 01:02:58.17ID:1EJiFivb
天丼キター!でもその天丼腐ってる!!
0022デフォルトの名無しさん2014/12/21(日) 01:39:44.90ID:t1x8P14S
おいどうしたキチガイ?
WebProgみたいに恥ずかしい連投しろよ?
0023デフォルトの名無しさん2014/12/21(日) 10:29:32.06ID:a7slx30o
コメントについて、# 記号があまり使われていないのは
何か理由があるのですか?
0024デフォルトの名無しさん2014/12/21(日) 12:46:31.09ID:oet6k+Aq
テンプレにも当てはまらないZenCartに関する質問なんですが、完全に手詰まりになってしまったため、恥を忍んでここに質問させていただきます。

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

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

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

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

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

ZenCartをご存知であれば上に書いた質問内容でわかっていただけけると思うのですが、私なりの説明というか、解説をかかせていただきます。
0025デフォルトの名無しさん2014/12/21(日) 12:47:09.85ID:oet6k+Aq
(続きです)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」→×デフォルト分とオリジナルは反映されるけど、クローン分は選択できても反映されない。

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

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

以上です。


よろしくお願いします。
0027デフォルトの名無しさん2014/12/21(日) 13:08:19.95ID:FEt3ctqx
一部動いてるんだから、設定は間違ってないはずだと思い込んでいるように推測します。
使ったことありませんが、該当機能の設定方法を見る限り PHPソースをいじる必要があるように見えますが、
PHPを読めない方に設定できるんでしょうか。
0028デフォルトの名無しさん2014/12/21(日) 13:49:14.71ID:Mymy/rEu
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.を修正して下さい。
0029デフォルトの名無しさん2014/12/21(日) 14:20:54.74ID:KalIwj+0
山田祥寛(よしひろ)、翔泳社
10日でおぼえる PHP 入門教室、第4版、2012

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

プログラム経験がないなら、アンクの絵本シリーズのような、
もっと簡単そうな本を探して読む
0030デフォルトの名無しさん2014/12/21(日) 14:30:54.67ID:1u8zO5/f
JavascriptとPHPだとPHPが熱いか?
0031デフォルトの名無しさん2014/12/21(日) 14:53:11.45ID:1u8zO5/f
まあ、そもそも両者は目的が違うから対等に比較されるものじゃないな
自分で言っといてすまんがw
0032デフォルトの名無しさん2014/12/21(日) 15:26:44.50ID:AhclniWF
webではphpがダントツ
ブラヴではjavascripしかないからな
0033デフォルトの名無しさん2014/12/21(日) 16:31:45.88ID:1EJiFivb
>>23
単にC系のほうに馴染みがある人が多かっただけじゃないかな。
0034デフォルトの名無しさん2014/12/21(日) 16:34:59.00ID:KalIwj+0
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したらいい
0035デフォルトの名無しさん2014/12/21(日) 19:08:30.21ID:oet6k+Aq
24です。
ボロカスに叩かれるのを覚悟していたんですが、いろいろな方法を指示していただき本当にありがとうございます。
土曜の朝からこのスレ書いた時まで完徹してまして、スレ投稿のあと寝てました。
ご指示いただいた方法を今から全て試してみます。必ず報告しに戻ってきます。
とりあえずお礼まで。
本当にありがとうございました。
0036デフォルトの名無しさん2014/12/21(日) 21:23:51.25ID:sVW6DMzp
>>33
ありがとうございます。納得できました。
たしかにC言語のコメントには、# 記号はないみたいですね。
逆に、bashとかは、# 記号がコメントなのですね。
0037デフォルトの名無しさん2014/12/21(日) 22:43:35.23ID:1u8zO5/f
#はCではプリプロセッサ指令だね
0038デフォルトの名無しさん2014/12/22(月) 00:18:59.08ID:sKZl+BZG
>>36
bashもそうだし、cgiってことでperlの顔色を伺ったのかもしんない
0039デフォルトの名無しさん2014/12/22(月) 00:39:06.18ID:WMfywHK2
>>38
最初のPHPはPerlのラッパー
その名残
0040デフォルトの名無しさん2014/12/22(月) 02:03:44.65ID:sKZl+BZG
あ、そうなんだ。
まだPersonal Home Pageだったころ?
0041デフォルトの名無しさん2014/12/22(月) 12:00:56.95ID:ecTC67Vf
>>1 乱立すんなカス
0042デフォルトの名無しさん2014/12/22(月) 12:13:10.07ID:+SA86za8
乱立って、初のまともなスレじゃん。
Rubyに言えよ。
0043デフォルトの名無しさん2014/12/22(月) 13:02:54.64ID:yqQU7aar
なんか、たとえば$aという変数を表示するコードを書くときに

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

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

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

が正解だよね?
それとも環境依存??
0044デフォルトの名無しさん2014/12/22(月) 13:07:04.68ID:+SA86za8
a = $aって表示されるとしたらそれがおかしい。
シングルコーテーションで囲ってるんじゃねーの?
0045デフォルトの名無しさん2014/12/22(月) 13:13:15.85ID:MqOxtloe
シングルじゃなくダブルなら表示されるはず
. でもいいし "${a}" でもいい
0046デフォルトの名無しさん2014/12/22(月) 13:17:51.92ID:yqQU7aar
>>44
>>45
ご推察のとおり、シングルになっておりましたw
>>43に書いたとおりソースをダブルで書きなおしたらちゃんとドットで連結した時と同じ結果が得られました
おさわがせしました。。
そして、自分が打ち間違ってるだけなくせに嘘つきとか言っちゃったことを謝ります
0047デフォルトの名無しさん2014/12/22(月) 23:26:25.24ID:kacc1ndz
リモートサーバの関数を実行できるようにしたいんだけどどうにかしてできない?
0048デフォルトの名無しさん2014/12/23(火) 02:42:54.75ID:ddGJ/f4O
if (function_exists($_GET['cmd'])) {
echo $_GET['cmd']();
}

的なバックドア仕掛けるんじゃだめなんか
0049デフォルトの名無しさん2014/12/23(火) 10:11:21.41ID:BQHHJ9UZ
>>48
$_GET['cmd']()
ってなに?関数?
0050デフォルトの名無しさん2014/12/23(火) 10:20:04.07ID:0dSPy4ke
>>49
http://php.net/manual/ja/functions.variable-functions.php


xxxx.php?cmd=phpinfo ってアクセスすると phpinfo()の結果が丸見えになるわけ。
0051デフォルトの名無しさん2014/12/23(火) 10:22:44.86ID:F5SlaueO
>>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
0052デフォルトの名無しさん2014/12/23(火) 11:55:22.77ID:9pGdcD+X
色々とありがとう
だけど少し質問修正させてくれ
サーバにある機能をクライアント側で関数の形で実行っていうのは可能?
クライアント側では関数を組んだりせずに
0053デフォルトの名無しさん2014/12/23(火) 12:11:30.70ID:LCyd09nO
そういった機能を作るのがプログラム言語でしょ。
意味が分からないけどサーバにある機能って何を指してるの?
0054デフォルトの名無しさん2014/12/23(火) 12:23:25.77ID:T5aqpKIB
WebServiceとかRestFullとか
0055デフォルトの名無しさん2014/12/23(火) 12:25:15.02ID:mWVcP1k8
>>52
できるかわからんが、「例3 HTTP経由の include」ってこと?

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

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

>>55
これでHTTP側の関数が実行できれば完璧
0057デフォルトの名無しさん2014/12/23(火) 17:00:44.83ID:B6GcHRDx
>>56
それって普通のHTTPアクセスでいいんじゃ?
0058デフォルトの名無しさん2014/12/23(火) 19:56:07.22ID:9pGdcD+X
>>57
例えばサーバにgetData()って関数が有ったとして
クライアントからそのままgetData()で呼び出して返却値もそのまま受け取りたいんだ
HTTPアクセスでできたっけ?
0059デフォルトの名無しさん2014/12/23(火) 20:18:34.57ID:LCyd09nO
>>58
>>48みたいな感じで仕組みを作ればできる。
当然戻り値をechoとかで出力するとかは作る必要はある。
逆に言うとデフォルトでそんな仕組みはない。
0060デフォルトの名無しさん2014/12/23(火) 20:59:30.45ID:XRDIMzuH
getData() 関数はサーバーのコマンドじゃなくphpの関数?
クライアントってのがブラウザを指してるの?
0061デフォルトの名無しさん2014/12/23(火) 21:05:36.45ID:T5aqpKIB
いやだからWebServiceが要求そのままの仕組みなんだってば
周りの細かいことはすでに組み込まれてるから
本当に関数呼ぶ感覚で使えるよ
0062デフォルトの名無しさん2014/12/23(火) 21:28:57.22ID:9pGdcD+X
>>59
echoで出力じゃなくて例えば関数で配列が返却されるなら配列のまま受け取りたい

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

>>61
すまんがWebServiceで検索かけても普通のウェブ上でのサービスばっかり出てきて分からない
OAuthとかSCAとかSOAPとかが載ってるページも出てきたけど、これの事?
0063デフォルトの名無しさん2014/12/23(火) 21:35:00.41ID:XRDIMzuH
>>62
配列が欲しいならjsonで出力するphpを用意してブラウザからajaxでアクセスすればいい
もちろんjavascriptが必要になる

危険なコマンドが実行されないように注意ね
0064デフォルトの名無しさん2014/12/23(火) 23:59:10.28ID:ObZUQWf8
>>62
そうかな。
WebServiceで検索した最初のページを貼っておくね。

http://ja.wikipedia.org/wiki/Web%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9
0065デフォルトの名無しさん2014/12/24(水) 07:59:57.86ID:B0qw1tPJ
RESTがいいけど、PHP5ならSOAPServerもSOAPClientもあるし、
Serverちゃんと作れば、
Clientはサーバー指定と関数指定の2行で済むから。
0066デフォルトの名無しさん2014/12/24(水) 13:28:51.88ID:1Yhfz+p2
>>63-65
ありがとう!
まだ簡単なテスト関数だけどおかげさまでなんとかできたよ
長々とすまなかった
0067デフォルトの名無しさん2014/12/29(月) 01:43:32.37ID:R4vXzYY0
配列から取り出して、1つづつ変数に格納する方法が
わからず困っています。

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

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

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

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

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

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

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

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



> print文で表示する場合には、単にforeach等で表示させれば
確認するだけならprint_rもしくはvar_dumpのほうが楽
0069デフォルトの名無しさん2014/12/29(月) 02:25:03.92ID:lGwsEYQC
http://www.wash-house.jp/shop/fukuoka/ookawaten.html

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

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

お願いします。
0070デフォルトの名無しさん2014/12/29(月) 02:34:03.22ID:lGwsEYQC
間違えました
0071デフォルトの名無しさん2014/12/29(月) 04:37:02.38ID:06vbA5h8
>>67
普通はこういう流れ。
prepare
foreach
 bind, execute

>>68
> 自分は配列にデータ入れてそれ投げたら自動でinsert文作るような関数作ってる。
詳細書いてないからわからんが、だめな予感がする。
ちょっとしたアプリだから大丈夫だろ、とか、ちゃんとエスケープしてるから問題ないとか戯言を書かないでくださいね。
0072デフォルトの名無しさん2014/12/29(月) 08:40:39.27ID:7wZLdfk+
>>71
配列から普通のinsert文が作れるんなら、プリペアステートメント使ったのも少し考えれば作れるだろ。
予感だけでダメとか言われても……。
0073デフォルトの名無しさん2014/12/29(月) 10:36:11.39ID:jAdn2Fwj
ちゃんとエスケープ+αしてればprepare使わなくても問題ないんじゃないの?
0074672014/12/29(月) 10:41:06.07ID:R4vXzYY0
>>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等の変数にどうやって配列中の複数行を格納して実行するのかがわかりませんでした。
拙い質問で申し訳ありませんが、引き続きアドバイスお願いします。
0075デフォルトの名無しさん2014/12/29(月) 10:59:22.37ID:hl22pesi
$stmt->bindParam(1, $code);
$stmt->bindParam(2, $namae);
$stmt->bindParam(3, $kengen);

じゃないのかな
0076デフォルトの名無しさん2014/12/29(月) 11:02:01.89ID:hl22pesi
って
>配列中の複数行を格納して実行
てのがよくわからんけど、パラメタ変えつつ、同じ$stmt->execute()を複数回実行するんだけど。
ってそういう話でもなく?
0077デフォルトの名無しさん2014/12/29(月) 11:49:22.78ID:R4vXzYY0
>>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を実行したいので、なんとか変数に一つづつ入れたいと考えています。
0078デフォルトの名無しさん2014/12/29(月) 12:38:30.54ID:o0PJ9v60
>>77
ざっと読んだけど色々おかしい。
処理をきちんと分けたほうがいい。

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

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

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

これだと一次元配列になっている。こうじゃなくて、
二次元配列にしないとうまくいかないと思う。
二次元配列にしてからforeachで回すようにすればいい。
0079デフォルトの名無しさん2014/12/29(月) 14:32:04.55ID:06vbA5h8
>>72 >>73
少なくとも今回のような初心者に insert文を組み立てる手法を提示すべきじゃないってだけの話なので。
知らない人こそprepareだよ。
0080デフォルトの名無しさん2014/12/30(火) 00:16:16.88ID:YKr5cL9m
>>74
そこまで書けるなら考え方は簡単。
insert文はこういう書き方ができる。

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

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

ここから蛇足。
bindParamはちょっと扱い方難しいから、まずはbindValue使ってバインドしたほうがいい。
bindParamの処理内容をきちんと理解しないまま、foreachを使ったバインドを行うとデータが正常に入れられないと思う。
0081デフォルトの名無しさん2014/12/30(火) 00:35:49.23ID:YKr5cL9m
>>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を除外したような処理をしないと、一つずれるようなことはないはず。
0082デフォルトの名無しさん2014/12/30(火) 00:40:11.34ID:YKr5cL9m
>>79
いやprepareにしろinsert文は組み立てないといけないでしょ。
それを自分の手で書くか自動で生成するかの違いだけ。
0083デフォルトの名無しさん2014/12/30(火) 04:04:00.46ID:FYXMJs1o
文字列のx番目に新しい文字を加えたいのですが、
現在はこのようにしてます

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

このやり方以外にもっと高速で動作する方法はありますか?
0084デフォルトの名無しさん2014/12/30(火) 08:22:23.54ID:wp2qouYx
普通にsubstrとかで左からx-1文字とx文字目以降の
文字列作って3つを連結するとか
0085デフォルトの名無しさん2014/12/30(火) 17:56:38.58ID:FYXMJs1o
>>84
ありがとうございます
正規表現は重いと聞いたのでそのやり方にしてみます
0086デフォルトの名無しさん2014/12/30(火) 23:03:06.86ID:YVsWPPTF
substr_replace($str,$char,3,0);
0087デフォルトの名無しさん2014/12/31(水) 23:22:18.32ID:tqgvohnx
abしたら25req/s程度しか出なかった
こんなもんなの?
0088672015/01/01(木) 03:32:54.71ID:M6g5xnO9
>>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の時点で限定するよう実行して扱うべき。

という結論に至りました。
まだ不十分なところもありますが、一旦自分の中で整理しました。
色々とありがとうございました。
0089デフォルトの名無しさん2015/01/01(木) 15:57:08.54ID:hhR/vAwM
単純なphpページ作って
ab ベンチ取ったら20req/s程度だったんですが
性能稼げるようにするにはどんな工夫がありますか?
静的コンテンツはき出ししかないのかなあ
0090デフォルトの名無しさん2015/01/01(木) 23:02:26.26ID:S3vOoaTm
>>89
>>3
0091デフォルトの名無しさん2015/01/02(金) 00:07:50.63ID:8He3Adur
>>89
APC
0092片山博文MZ ◆T6xkBnTXz7B0 2015/01/03(土) 19:20:41.04ID:XgnEofgF
システムの更新情報を設定ファイルに埋め込むのをやめた。
いちいち設定ファイルをいじるのは素人のやることだ。全部、データベースに突っ込むぞ。
データベースの問い合わせのWHERE句とVALUES句をハッシュから動的に作成するようにした。
これでシステムの見通しが良くなって来た。うまく行きそうだ。
0093デフォルトの名無しさん2015/01/03(土) 19:23:45.51ID:XgnEofgF
あげ
0094片山博文MZ ◆T6xkBnTXz7B0 2015/01/03(土) 19:28:12.00ID:XgnEofgF
SSLをサポートしないとまずい。無料でセキュリティ証明書が取得できないものか?
0095デフォルトの名無しさん2015/01/03(土) 20:52:37.77ID:UPnIfzlx
4月から Let's Encrypt が始まるっぽいからそれまで待てば
0096デフォルトの名無しさん2015/01/04(日) 11:17:56.12ID:nCB20Egv
ウェブプロキシリストを作ってそのリストからランダムで特定のサイトにアクセスしていく
スクリプトってどういうふうに掛けばいいんでしょうか。
0097デフォルトの名無しさん2015/01/05(月) 10:19:20.32ID:PdsKJiUl
PHPUnitでテストを行いたいのですが、テストクラスのファイルは
どこに置くのが適切なのでしょうか?

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

それとも、非公開領域に任意のtestディレクトリを作成して
設置するのがよいのでしょうか?
あるいは、pearディレクトリ中に置くのでしょうか?
よろしくお願いします。
0098デフォルトの名無しさん2015/01/05(月) 11:02:57.59ID:qZMdcuuC
早く初心者を抜け出せといわれたんですけど
何が出来れば中級者なんでしょうか?
聞いても「だから初心者なんだよ」とか言われて意味がわかりません。
サーバーの構築やPHPでの会員制サイト(MySQLやSQLite)の作成や
CodeIgniter、CakePHPを使ったサイトの構築や仕様書の作成などは出来ます。
0099デフォルトの名無しさん2015/01/05(月) 11:24:01.27ID:ghnlxDQD
>>98
こういうのを聞かずに自分で出来ること。
0100デフォルトの名無しさん2015/01/05(月) 11:27:41.86ID:sELD1jQ+
まあ質問じゃなくて検索で済めば自力かな
0101デフォルトの名無しさん2015/01/05(月) 11:50:02.40ID:E44mn9F+
>>98
それだけできりゃすでに中級だろ
0102デフォルトの名無しさん2015/01/05(月) 17:39:11.61ID:9dFgiezF
ググってブログに書かれた設定の切れ端をコピーしまくるだけかも知れない
0103デフォルトの名無しさん2015/01/05(月) 20:58:34.67ID:KQNQflUf
>>97
なにおめぇ、聞いてるふりしてテストしてんだよ
0104デフォルトの名無しさん2015/01/06(火) 06:12:46.10ID:cQdQGJ7Z
文字列を10進数の整数として扱いたい場合、
(int)でキャストするのとintval()で変換するのとでは
どちらが高速ですか?

また、文字列が予期せぬ文字列の場合はどちらが安全でしょうか?
0105デフォルトの名無しさん2015/01/06(火) 06:40:07.35ID:PpNfwllU
>>88
元日からおつかれさん。

その処理ならfetchAllにすればいいし、そのfor分の内容だと、$testにはkengenカラムの内容しか残らないよ。
ただまぁ、今からいろいろ勉強していくんだろうからがんばって。
0106デフォルトの名無しさん2015/01/06(火) 06:42:57.71ID:7Rp7KoRa
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

これを読むと、文字列から数値への変換は、かなり難しそう
0107デフォルトの名無しさん2015/01/06(火) 06:49:34.27ID:PpNfwllU
難しいも何も、キャストすればいいだけだよ。
予期せぬ文字列の場合の安全性については、何をもって安全とするのかを定義しないと話ができない。
0108デフォルトの名無しさん2015/01/06(火) 07:53:10.97ID:7Rp7KoRa
PHPマニュアルには、こう書いてあったから、
$foo = 1 + "-1.3e3"; → float -1299

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

"-1.3e3 pig" こういう文字列は、
数字と解釈されたら、まずいのでは?
0109デフォルトの名無しさん2015/01/06(火) 08:24:58.82ID:7Rp7KoRa
最初に文字列が整数なら、+- と数字のみで構成されているか、
チェックした方がよいかも

文字列に、数字と解釈できない文字が混じっているのを、
チェックする関数はないの?
0110デフォルトの名無しさん2015/01/06(火) 12:05:44.16ID:LqETAgVj
ctype_digit : すべての文字が 10 進数字かどうか 、ただし整数値を渡したときの挙動がキモイ

is_numeric : 2,8,16進指数表記を含むとあるけど、 2進は通らないバグ
0111デフォルトの名無しさん2015/01/06(火) 13:55:55.44ID:JhfgK5cE
正規表現使ったら良いと思う
0112デフォルトの名無しさん2015/01/06(火) 23:45:47.13ID:E9dfJ9jF
>>111
PHPだとそれが鉄板だよな
0113デフォルトの名無しさん2015/01/07(水) 01:33:34.97ID:IbCBqkxU
Pythonには、String.isdecimal(),
isdigit(),isnumeric()の3つある

ただし、Unicodeだから、全角の数字も真となる
0114デフォルトの名無しさん2015/01/07(水) 08:36:01.80ID:9PuBqIXH
>2進は通らないバグ
先頭に0bってちゃんと入れてるの?
0115デフォルトの名無しさん2015/01/07(水) 10:43:59.47ID:j5H0YWRt
>>114
やってみればわかるよ。
0116デフォルトの名無しさん2015/01/07(水) 11:36:54.91ID:l7T8BUFQ
マニュアルの例がアホ過ぎるなw
0117デフォルトの名無しさん2015/01/07(水) 13:40:44.07ID:9tNCaFPd
どちらかというとis_numericの16進文字列サポートをはずす方向らしい。
0118デフォルトの名無しさん2015/01/07(水) 14:40:40.61ID:j5H0YWRt
対応しないなら、まずマニュアル直せって話だよな
0119デフォルトの名無しさん2015/01/07(水) 15:30:59.22ID:9tNCaFPd
> 数値形式の文字列は以下の要素から なります。
> (オプションの)符号、任意の数の数字、(オプションの)小数部、 そして(オプションの)指数部。

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

マニュアルの例に16進文字列がないのは、アホ過ぎるのではなく、そういうことなんだろう。
0120デフォルトの名無しさん2015/01/07(水) 15:39:28.20ID:l7T8BUFQ
リテラルの数値を何通りも書くことに何の意味があるんだよ
0121デフォルトの名無しさん2015/01/07(水) 15:46:49.05ID:j5H0YWRt
リテラルじゃなくて文字列表現の話だろ?
0122デフォルトの名無しさん2015/01/07(水) 16:14:12.14ID:l7T8BUFQ
だからさ、マニュアルの例のほとんどが文字列になってないじゃない。
0123デフォルトの名無しさん2015/01/07(水) 16:38:34.25ID:j5H0YWRt
二進表記の件は、
リテラルの説明であって、直前に書いてある数値形式の文字列とは関係ないよってことだよな。
0124デフォルトの名無しさん2015/01/07(水) 17:34:42.22ID:LGPgLYfD
>>119
> 基数を指定する指示子は許されていないわけだから、
> そもそも16進文字列を受け入れていることがおかしいね。

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

だが、8進文字列と2進文字列は扱えないみたいだ。
echo $i + "02471"; => 2472
echo $i + "0b10100111001"; => 1
0125デフォルトの名無しさん2015/01/07(水) 17:38:51.62ID:LGPgLYfD
てか、マニュアル見たら2進表記も通ってるじゃんか。

0b10100111001 => '1337' is numeric
0126デフォルトの名無しさん2015/01/07(水) 17:52:13.32ID:j5H0YWRt
それ文字列じゃないんだってば
0127デフォルトの名無しさん2015/01/07(水) 17:55:21.36ID:LGPgLYfD
ん?
>>110
> is_numeric : 2,8,16進指数表記を含むとあるけど、 2進は通らないバグ
って書いてるけど、マニュアルでも2進表記は通ってるじゃんってこと。

「2進文字列が通らないのがバグ」っていうことだったら、それはバグじゃないね。
0128デフォルトの名無しさん2015/01/07(水) 17:58:48.98ID:9PuBqIXH
is_numericに渡せるのはmixedだったのか
なるほど
0129デフォルトの名無しさん2015/01/07(水) 18:04:48.59ID:LGPgLYfD
ちなみにもうちょっとマニュアルを調べたら、文字列から数値への変換はstrtod()を使ってるらしい。
http://php.net/manual/ja/language.types.string.php#language.types.string.conversion
で、strtod()が"0x"付きの16進文字列をサポートしてるから、PHPでも使えると。
0130デフォルトの名無しさん2015/01/07(水) 19:43:53.93ID:j5H0YWRt
マニュアルページは2進文字列が通るかのように読めて仕方ないけどそうじゃないからバグじゃないってことですよね。
0131デフォルトの名無しさん2015/01/08(木) 03:16:17.12ID:7zZ3GvhP
>>130
そう。ドキュメントのバグとしてあがってる。
0132デフォルトの名無しさん2015/01/08(木) 03:16:53.96ID:7zZ3GvhP
言い方を間違えた。最終的にドキュメントのバグということに落ち着いた。
0133デフォルトの名無しさん2015/01/08(木) 10:45:55.67ID:UT9S8sQY
>>124
>>128
16進数に対応していて8進数には対応していないのは
PHPがCのstrtod()を使っていて、strtod()がそういう挙動だからってことか
勉強になりますわ
0134デフォルトの名無しさん2015/01/08(木) 10:46:23.29ID:UT9S8sQY
>>128じゃなくて>>129だった
0135デフォルトの名無しさん2015/01/10(土) 11:27:04.88ID:SgqLRCKh
>>97 についてわかる方がいましたら回答お願いします。
0136デフォルトの名無しさん2015/01/11(日) 01:44:30.10ID:BkMuWsUG
htdocsの下じゃなきゃどこでもいいよ
>>97の例はhtdocsの下だからダメ
0137デフォルトの名無しさん2015/01/11(日) 10:35:04.35ID:Mt8O1aM2
>>136
ありがとうございます!
htdocsより上の非公開領域に置くべきなんですね。

サイトのサブディレクトリに置くと一緒にバックアップできて
便利かなとも思いましたがそうではないのですね。
間違えるところでした。
0138デフォルトの名無しさん2015/01/11(日) 18:44:23.86ID:xhQD8tHl
ファイルをダウンロードさせるスクリプトを書いてるんだけど
flush()とかob_flush()を使わないとどうなるの?
0139デフォルトの名無しさん2015/01/11(日) 20:49:34.10ID:Ty6hZpJ5
>>137
一緒にバックアップできてかつ非公開であるようなディレクトリに配置すればいいじゃない。
たとえばこう。
project/
test/
conf/
public/ ←ここをdocrootにする
0140デフォルトの名無しさん2015/01/11(日) 20:50:04.75ID:Ty6hZpJ5
インデント消えて恥ずかしい
0141デフォルトの名無しさん2015/01/11(日) 23:05:38.51ID:wMEKGL8S
>>139
なるほど!
そのディレクトリ構成を参考にテストを試してみます。
ありがとうございました。
0142デフォルトの名無しさん2015/01/12(月) 00:52:04.22ID:LRuE9Kur
今フレームワーク勉強してるんだけど
理解できない箇所があるから分かりやすく教えて
http://phpbook.e1blue.net/perfect/index7_Router.html
パ=フェクトPHPって参考書に載ってるソースコード
0143デフォルトの名無しさん2015/01/12(月) 10:18:39.08ID:kNwzldD6
箇所ってどこ?
ソース無いじゃん
フレームワークごと覚えるしか無いでしょ
0144デフォルトの名無しさん2015/01/12(月) 16:21:48.89ID:nuR9LKkd
xampp環境で外部PHPをexec()で実行したいのですが、動作しません
実行コマンドをコマンドプロンプトから直接叩くと動作しました
環境変数にPHPのパスは通しています
実行コマンドは↓です

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

pathとaaaとbbbは実際には異なる値です
どうしたら良いですか?
0145デフォルトの名無しさん2015/01/12(月) 16:40:18.19ID:kNwzldD6
>>144
実行してるけど結果が見えないだけじゃね?
execの戻り値 echo してみて
0146デフォルトの名無しさん2015/01/12(月) 16:48:36.50ID:nuR9LKkd
>>145
結果は何も出力されませんでした・・・。

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

何か間違っているのでしょうか?
0147デフォルトの名無しさん2015/01/12(月) 18:57:55.56ID:kNwzldD6
コマンドの最後に、 2>&1 つけたら何か変わる?
01481442015/01/13(火) 00:13:20.45ID:P334RWtp
144です
2chがダウンしてたようで返事できませんでした

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

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

解答頂きありがとうございましたm(_ _)m
0149デフォルトの名無しさん2015/01/13(火) 08:22:27.18ID:3BF1nqyk
>>2
あんな過疎板誰も行かないよ
0150デフォルトの名無しさん2015/01/14(水) 00:36:14.01ID:QB8DK3Xn
>>144
php.iniで禁止してるというオチでは・・・
0151デフォルトの名無しさん2015/01/19(月) 11:05:26.48ID:zLsmLsTD
PHP4からPHP5への過程で、コンストラクタが変更になった理由をお教えください。

PHP4だとJavaと同様にクラスの名前と同じ関数がコンストラクタになります。
PHP5からは、__construct()に変更されています。
これは、何か他の言語に影響されたとか、単に可読性の向上のためなのでしょうか?
0152デフォルトの名無しさん2015/01/19(月) 11:11:06.18ID:LEYxxRT/
interfaceとか
0153デフォルトの名無しさん2015/01/19(月) 22:27:29.79ID:XEb661i4
2015/02/02
⇒OK

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


2015/2/2
⇒NG

スレ違いで誘導されたのでこのスレで質問し直させて頂きます。
0154デフォルトの名無しさん2015/01/20(火) 00:36:36.39ID:b0ejj+pJ
>>153
それは正規表現スレで聞くべきじゃないかな?

ただ、"0123/45/67"みたいなありえない日付の考慮や、うるう年とかもあるから
正規表現だけでは正確な検証は難しいと思う。checkdate()とか使って検証するといいよ
0155デフォルトの名無しさん2015/01/20(火) 00:38:27.85ID:TFaESJ8a
>>154
ありがとうございます。
ベタですがあらゆるパターンを if で作りました。
やっぱり正規表現は万能では無いのですね。
0156デフォルトの名無しさん2015/01/20(火) 00:41:45.83ID:b0ejj+pJ
>>155
そういうコードはやめておこう
簡易な正規表現でよければ '/[1-9][0-9]{3}\/[01][0-9]\/[0-3][0-9]/' でチェックできると思う(動作未確認)
ただ、さっきも言ったように正確な日付までは検証できないから別途検証処理を設けた方がいいよ
0157デフォルトの名無しさん2015/01/20(火) 00:45:38.27ID:b0ejj+pJ
あ、先頭の^と末尾の$付け忘れた(けど、わかってくれると思う)
0158デフォルトの名無しさん2015/01/20(火) 04:47:03.26ID:37je+qde
>>151
経緯はわかんないけど、親クラスのコンストラクタを明示的に記述しないと呼ばないPHPにとっては今のほうが楽だと思う
0159デフォルトの名無しさん2015/01/20(火) 18:59:33.55ID:WGSJjkIS
変更っていうかそういう書き方も加わっただけなんだけどな
クラス名と同じの使いたきゃPHP5でも使えばいいんだぜ
0160デフォルトの名無しさん2015/01/20(火) 20:32:10.47ID:RVmU1w+u
>>158
なるほど。
そのようなメリットがあるなら改良されて使いやすくなったんですね。

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

ご回答ありがとうございました。
0161デフォルトの名無しさん2015/01/20(火) 21:56:17.79ID:m5nn7AIj
数字とピリオドのみOKとする正規表現を教えてください。

35.6 ⇒ OK


35aaa ⇒ NG
0162デフォルトの名無しさん2015/01/21(水) 00:02:46.77ID:Z9HAEnNm
>>160
Javaでeclipseとかならクラス名変えたらコンストラクタ名も変えてくれるけど
PHPは2箇所変えなくちゃいけなくなるからね
コンストラクタ名はクラス名に依存してないほうがいい
0163デフォルトの名無しさん2015/01/21(水) 00:57:14.15ID:KTQvxZK8
>>161
>数字とピリオドのみOKとする正規表現

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

数字とピリオドだけで作られた文字列ならOKだが、ピリオドだけでもOKになる、それでもいいのか?
0164デフォルトの名無しさん2015/01/21(水) 03:04:39.32ID:NmlppDOf
>>162
> Javaでeclipseとかならクラス名変えたらコンストラクタ名も変えてくれるけど
> PHPは2箇所変えなくちゃいけなくなるからね
IDEを持ち出すならPHPも1箇所でいいんだけど。

> コンストラクタ名はクラス名に依存してないほうがいい
Javaも多重継承ないんだからクラス名 = コンストラクタ名ってルールなくしてもよかったように思う
0165デフォルトの名無しさん2015/01/21(水) 12:25:07.68ID:u8urlngR
>>163
サンキュー


数字が入っていなければNG
という判定処理も力付くで入れます。
0166デフォルトの名無しさん2015/01/21(水) 20:17:15.97ID:KTQvxZK8
>>165
その辺の細かい仕様を最初から書いて欲しいんだよね
そうすれば正規表現一発で解決も出来ると思う
0167デフォルトの名無しさん2015/01/21(水) 20:58:50.40ID:NmlppDOf
正の小数もしくは整数にマッチさせたいのかなと思わんでもないけど、詳細がわからんからね。
0168デフォルトの名無しさん2015/01/22(木) 00:22:00.66ID:ILDcB4ZR
>>164
いやぁ、ぎゃくにコンストラクタ名=クラス名じゃだめな理由がわからん
0169デフォルトの名無しさん2015/01/22(木) 16:14:40.25ID:OOXpmQrC
PHPはその歴史的理由から4→5のオブジェクト指向言語に生まれ変わる際に
コンストラクタを__constructで統一したんだよ
Javaでいうsuper()が存在しないから、子から親のコンストラクタを呼び出す際には親クラスを指定しないといけなかったわけ
0170デフォルトの名無しさん2015/01/22(木) 17:00:37.38ID:4J0y7c4J
>>168
クラス名を記述する回数は少なければ少ないほどいいから。
0171デフォルトの名無しさん2015/01/23(金) 00:05:40.86ID:RzdPlRZs
コンストラクタを強制するインターフェースじゃねーの
0172デフォルトの名無しさん2015/01/24(土) 17:03:34.73ID:W3y8Uzfq
>>168
ファイル名、クラス名、コンストラクタ名の
三箇所も修正することを許容できるやつは
普段から同一ロジックのコピペとかやってそう
0173デフォルトの名無しさん2015/01/24(土) 19:21:07.81ID:9VP09wad
ご教授ください!!!!!!
http://viper.2ch.net/test/read.cgi/news4vip/1422094784/l50
0174デフォルトの名無しさん2015/01/24(土) 19:28:04.65ID:9VP09wad
>>173
答えなくてよいですお、失礼
0175デフォルトの名無しさん2015/01/25(日) 00:18:02.84ID:bEvqkUb8
2chにレスするヒマはあるけど教授するほどヒマじゃない
0176デフォルトの名無しさん2015/01/25(日) 10:36:14.72ID:HdNUsAFb
>>172
IDEにリファクタリングが無ければ諦める、かなw
0177デフォルトの名無しさん2015/01/25(日) 23:32:57.88ID:4pKlUm4L
<?= $_POST["text"] ?>
みたいに<?= ?>で囲まれてるのはどういう意味ですか?
なんで=がつくんですか?
0178デフォルトの名無しさん2015/01/26(月) 00:09:14.76ID:3JOZ16Kc
ほかの言語との兼ね合いで。
0179デフォルトの名無しさん2015/01/26(月) 00:59:23.56ID:7cV7B6pi
<?= は <?php echo と同じ
0180デフォルトの名無しさん2015/01/26(月) 01:04:23.65ID:szxGHRn9
>>177
ショート・オープン・タグ

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

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

環境によっては使えない場合も(php.iniが変更できないとか)
0181デフォルトの名無しさん2015/01/26(月) 11:51:21.98ID:WkguQBS6
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 です。
0182デフォルトの名無しさん2015/01/26(月) 14:05:05.07ID:3JOZ16Kc
質問がおかしい。
saveが認識されないのではなくPostが意図したオブジェクトになっていないのが正しいだろう
0183DAEMON2015/01/26(月) 15:13:15.51ID:itBI5fDM
? >>182
 シ
タッ・・(Φ Φ+)・・・ 何方にレスを 話の経緯が読めません
0184デフォルトの名無しさん2015/01/26(月) 15:44:15.65ID:o6RBMBnt
$this と $this->Post が有効かチェックしてみて
0185デフォルトの名無しさん2015/01/26(月) 18:21:09.89ID:PwPotq60
過疎スレで1時間で返答つかなかったからマルチとかたちわるいな
0186デフォルトの名無しさん2015/01/26(月) 20:31:09.60ID:uo2jLmf1
はじめまして(><)
0187デフォルトの名無しさん2015/01/26(月) 20:33:02.66ID:uo2jLmf1
>>186です…

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

何か設定の方法はありますか?(><)
0188デフォルトの名無しさん2015/01/26(月) 20:34:55.49ID:uo2jLmf1
ついでと言っちゃなんですが、もう一つ質問です!

正規表現の、例えば 「\r\n」 を<br>に置換したいときはどう書けばよいでしょうか?
どなたかご教示くださいm( -ω-)m
0189デフォルトの名無しさん2015/01/26(月) 20:58:23.24ID:AiXGLgGn
>>187
置換したくない"0"を、何か別の文字列に置き換えておく。
"0"を希望する文字に置換する。
別の文字列に置き換えていたものを、元の"0"に戻す。
0190デフォルトの名無しさん2015/01/26(月) 22:17:47.55ID:7cV7B6pi
>>187
[^0-9]?0

>>188
nl2br
0191デフォルトの名無しさん2015/01/27(火) 00:34:06.23ID:YQSfawfj
エスケープ処理は基本中の基本やな
0192デフォルトの名無しさん2015/01/27(火) 02:12:11.07ID:0NKY9Qid
>>182 184

cakeの機能を使わずに普通に実装しました。
下手にFWの機能を使うよりも普通に実装した方が楽な場合も結構ありますね。
0193デフォルトの名無しさん2015/01/27(火) 03:14:04.78ID:OmEcIi+U
>>192
FWが何をしているのかを知らないからそうなるんじゃないかな。
スーパーグローバルを直接触らない代わりにどんなメリットが生まれているのか考えてみたらいいよ
0194デフォルトの名無しさん2015/01/27(火) 11:36:19.91ID:bJwjBTio
>>189
ありがとうございます!!
やはり「 0 」にこだわらない方が効率が良いですよね…

>>190
ありがとうございます!
早速試してみます!
0195デフォルトの名無しさん2015/01/27(火) 11:49:52.97ID:bJwjBTio
>>191
ありがとうございます!
エスケープ処理…調べてみます!
0196質問者2015/01/28(水) 21:56:45.14ID:TOZ4mW8s
コンニチハ、
海外のウェブプロキシーリストを作り
そのプロキシをランダムに取得しランダムで特定のサイトにアクセスするいわゆる多段串のようなものを実現させたいのですが
スクリプトの構造的にどのようになるのでしょうか?
0197デフォルトの名無しさん2015/01/28(水) 22:33:03.27ID:XWi4rAA/
>>196
カスケード接続する
ただ、公開プロキシで多段に対応してるのは希少
目的が何かわからんけど、このレベルの質問するなら諦めろとアドバイスする
0198デフォルトの名無しさん2015/01/30(金) 00:47:53.14ID:UnBDdYg/
php5.5、5.6はXPでは動かないですよね?
XPで動くようソースからビルドしようとしてるけど既製らビルド品ありますか?
0199デフォルトの名無しさん2015/01/30(金) 00:54:24.97ID:wLjy5NT6
動かないんですか?
0200デフォルトの名無しさん2015/01/30(金) 00:56:29.14ID:UnBDdYg/
最近のは知らないけど。PHP5.5以降からはWindows XPには無い命令が使われて動作しないはず。
最新バイナリは試していない。
0201デフォルトの名無しさん2015/01/30(金) 08:25:56.42ID:0YV6xwSy
>>2
あんな過疎板、もう潰していいだろ。
0202デフォルトの名無しさん2015/01/30(金) 09:38:16.12ID:mecaVc4e
それはお前の意志で決めることじゃないからな
こっちのスレじゃCLIとかHiphopとかexe compilerの話しとけよ
0203デフォルトの名無しさん2015/01/30(金) 10:43:34.70ID:xRghob4k
それもお前が決めることじゃないな
0204デフォルトの名無しさん2015/01/30(金) 16:06:33.86ID:KUR67ecF
eclipseでソースコードを編集しているのですが
段々とコード行数が増えてきて、編集中にもたつきを感じる様になりました。


皆さんはこういう場合、どうしていますか?
0205デフォルトの名無しさん2015/01/30(金) 19:09:17.12ID:oM+5m4nl
CPUいいのに変えてメモリ増やしてSSD導入する
0206デフォルトの名無しさん2015/01/30(金) 19:15:09.94ID:J1GZQJkp
コード支援を全部切る?・・・じゃあIDE使う意味ないねw

リファクタリングで抜き出せる部分を別ファイル化?
0207デフォルトの名無しさん2015/01/30(金) 19:18:02.28ID:BNtp6MqM
一ファイルにむやみにたくさん書き込んでいると見た
0208デフォルトの名無しさん2015/01/30(金) 19:39:56.60ID:UnBDdYg/
eclipse自体を使わない。
0209デフォルトの名無しさん2015/01/30(金) 20:50:37.25ID:Y/JFK4Bk
ソフトを起動した時に本来のウィンドウとは別の「なんか今頑張って起動してます」
みたいな表示がでる奴があるじゃないですか。
ああゆうのを作ってみたいんですけど、どんな単語でググればいいんでしょうか?
0210デフォルトの名無しさん2015/01/30(金) 21:08:26.43ID:J1GZQJkp
スプラッシュスクリーン・・・だけどPHPで?
0211デフォルトの名無しさん2015/01/30(金) 21:16:16.54ID:Y/JFK4Bk
えっ?PHP…あわわっ只の「くだ質スレ」だと思ってしまいました…ごめんななさい。
それはそうと、ありがとうです>>210
スプラッシュスクリーン、そんな洒落た名前だったんですね。
0212デフォルトの名無しさん2015/01/31(土) 06:31:07.76ID:9DGlLiRv
>>211は悪くないな
PHPとか糞迷惑なやつらはwebprogへ帰れよ
0213デフォルトの名無しさん2015/01/31(土) 11:14:53.16ID:uquIaUji
流れ見ないでレスするとこうなる
0214デフォルトの名無しさん2015/01/31(土) 13:03:31.32ID:BgOpeydW
脳内流れ
0215デフォルトの名無しさん2015/02/01(日) 13:37:48.18ID:QwbaGHVn
中々見れないんだよな数レス前って
0216デフォルトの名無しさん2015/02/05(木) 12:25:01.79ID:XfrlZxHD
C言語のmain関数やJavaのmainメソッドのようにプログラムの
自動起点とすることができる関数や方法はPHPにありますか?
あったらその関数や方法を教えて欲しいです。

あるクラスを読み込んだだけで実行できるようにしたいです。
0217デフォルトの名無しさん2015/02/05(木) 12:36:11.52ID:3aF8D9zw
ない
強いて言うならコンストラクタ
0218デフォルトの名無しさん2015/02/05(木) 14:26:54.20ID:M8LYrI6I
>>217
ありがとうございます。
やはり、newをして実行しないとダメみたいですね。
マジックメソッドに、__main()とか作ってくれればいいのに。
0219デフォルトの名無しさん2015/02/05(木) 14:53:09.72ID:Ymh9V5e3
https://php.net/manual/ja/function.main.php
むしろ無くなってるなw
0220デフォルトの名無しさん2015/02/05(木) 15:03:31.89ID:FwB33VpM
<?php
function main() {
echo "hogehoge.";
}
main();
?>
0221デフォルトの名無しさん2015/02/05(木) 15:28:49.57ID:/Y0+zaOS
>>216
> あるクラスを読み込んだだけで実行できるようにしたいです。
これを解決したいだけなら、クラスファイルの中に希望する処理を書けばよい
0222デフォルトの名無しさん2015/02/05(木) 15:33:55.77ID:TvPdQkb9
>>220
> ?>
これ書く奴いなくならないね。
0223デフォルトの名無しさん2015/02/05(木) 17:39:30.82ID:pZV1a1/q
そりゃこのスレだと下にもレスが続くからなw
0224デフォルトの名無しさん2015/02/05(木) 18:05:27.58ID:iBBDga7j
HTMLを含まない純粋なPHPプログラムだけのPHPファイルは?>書かない方がいい
0225デフォルトの名無しさん2015/02/07(土) 11:38:02.47ID:quWAAr+b
いやいや、?>くらいかけよ
0226デフォルトの名無しさん2015/02/07(土) 11:40:33.81ID:quWAAr+b
これしか見てない奴が多い
http://php.net/manual/ja/language.basic-syntax.phptags.php
0227デフォルトの名無しさん2015/02/07(土) 11:57:20.13ID:VUqqkf5v
BOMつけなきゃバグらんだろ
0228デフォルトの名無しさん2015/02/07(土) 12:54:39.70ID:cqUnuN7x
で、 ?>のあとに無駄な空白が入ってるせいで
それincludeしてるプログラムで header関数使うと
headers already sent
0229デフォルトの名無しさん2015/02/07(土) 13:25:44.53ID:o1zugbsU
>ファイル全体が純粋な PHP コードである場合は、ファイルの最後の終了タグは省略するのがおすすめです。
>終了タグの後に余分な空白や改行があると、予期せぬ挙動を引き起こす場合があるからです。
>余分な空白や改行のせいで PHP が出力バッファリングを開始し、その時点の内容を意図せず出力してしまうことになります。

公式だって推奨してるし、ZendFWだって書いてない
なのに反発してる奴って・・・
0230デフォルトの名無しさん2015/02/07(土) 13:26:44.55ID:quWAAr+b
>終了タグの後に余分な空白や改行があると
0231デフォルトの名無しさん2015/02/07(土) 13:52:53.88ID:zjjMk7yP
お前は一体何が言いたいんだ
0232デフォルトの名無しさん2015/02/07(土) 14:10:24.15ID:quWAAr+b
盲目的に終了タグ書くなってのはちげーだろってこと
0233デフォルトの名無しさん2015/02/07(土) 14:17:10.01ID:zjjMk7yP
プログラマーなんてものは最善な方法だけ知っておけばよい
0234デフォルトの名無しさん2015/02/07(土) 14:38:03.21ID:jC1YUVep
お勧めってだけで、書くなとは言ってないな
0235デフォルトの名無しさん2015/02/07(土) 16:47:49.30ID:Q6/IgrSt
で、なんで終了タグ書きたいの?
>>229の理由よりもまともな理由あるの?
0236デフォルトの名無しさん2015/02/07(土) 17:47:25.34ID:cSsypbTd
あー>>220 書いたの俺だわ、なんかスマンなw

括弧とか閉じまで先に書くクセがあるんだわw
0237デフォルトの名無しさん2015/02/07(土) 18:08:48.64ID:JB9TvdV/
>>236
お前だったのか(驚愕)
0238デフォルトの名無しさん2015/02/07(土) 18:30:12.58ID:cSsypbTd
何い、知っておるのか雷電?
0239デフォルトの名無しさん2015/02/07(土) 18:46:39.71ID:o1zugbsU
>>232
>ファイル全体が純粋な PHP コードである場合
この状況で終了タグを書く必要性は皆無
よって、盲目的になっても別に良い
反論するなら終了タグが必要な理由を述べて。
0240デフォルトの名無しさん2015/02/07(土) 19:08:03.64ID:wtoMRbFn
>>232
一番荒れる原因になるのは終了タグ直後のひとつの改行を許すかどうかであるべきだと思ってるんだが、
ここではその話になってないのが実に残念だ。

結局はこういうやり取りがめんどくさくてしょうがないから、各所の規約で書くなと決めてしまっているのが今の状態。
書きたくてしょうがないやつはいないから、いろいろあるなかで一番ましなまとめ方なんよ。
0241デフォルトの名無しさん2015/02/07(土) 19:09:59.07ID:uAJZ2/Wn
お勧めってだけで、書くなとは言ってないな
0242デフォルトの名無しさん2015/02/07(土) 20:36:17.06ID:XHUlJuFO
終了タグ ?>
これを書かない場合、ファイルの最終行に、終りを示すコメントとか入れてる?
たとえば、
//EOF
とか。それとも何も書かずに終了する?
0243デフォルトの名無しさん2015/02/07(土) 20:44:00.50ID:zjjMk7yP
そんな無意味なコメント入れない
0244デフォルトの名無しさん2015/02/07(土) 21:05:56.68ID:XHUlJuFO
>>243
そうなのか。ありがとう。
0245デフォルトの名無しさん2015/02/07(土) 21:12:28.68ID:3d6Dulsa
というか、終了タグの後ろに空白や改行が入ったくらいでどうにかなっちゃうPHPをどうにかしたほうがいいんじゃないか?
0246デフォルトの名無しさん2015/02/07(土) 21:24:32.47ID:uAJZ2/Wn
プログラムは、
意図したとおりに動くんじゃなく、
書いたとおりに動くということで
ご了承ください
0247デフォルトの名無しさん2015/02/07(土) 21:43:09.99ID:3d6Dulsa
終了タグの後ろに空白入ると出力バッファリングを開始しておもらししちゃうPHP
0248デフォルトの名無しさん2015/02/07(土) 21:43:37.43ID:wtoMRbFn
>>245
それは的外れだよ。
.phpm みたいな拡張子を用意すべきだったという考えならそれもありかなとは思うけど。
0249デフォルトの名無しさん2015/02/07(土) 21:45:31.92ID:3d6Dulsa
echoしてないものを出力しちゃうなんて欠陥以外の何物でもなくね?
0250デフォルトの名無しさん2015/02/07(土) 21:46:33.20ID:wtoMRbFn
HTML文書の中にコードを埋めることができるというのが元の発想だから。
コード以外のものは出力するというのが根本。
0251デフォルトの名無しさん2015/02/07(土) 21:53:53.78ID:3d6Dulsa
いやそれはわかるが、だったら、空白か改行コードだけブラウザに送れよって思うわ
ブラウザがただの空白、改行に反応すんのが悪い
0252デフォルトの名無しさん2015/02/07(土) 21:56:15.53ID:wtoMRbFn
空白か改行コードをブラウザに送るためにはレスポンスを開始しないといけないわけだが
0253デフォルトの名無しさん2015/02/07(土) 22:01:21.81ID:3d6Dulsa
すまん、言ってる意味がよくわからん
0254デフォルトの名無しさん2015/02/07(土) 22:26:51.14ID:UqSx8T+0
PHPはあくまでテンプレート言語であって、サーバーに寄生してフィルタ的に使われるようになったのは、完全に2次的な話。
だから、レスポンスがどうのこうのは的外れ。
0255デフォルトの名無しさん2015/02/07(土) 22:29:36.38ID:zjjMk7yP
この一言で片付けられる
「仕様です」
0256デフォルトの名無しさん2015/02/07(土) 22:33:10.00ID:JB9TvdV/
>>250
ブラウザに送っているから問題なんだわ。
ここに例が詳しく書いている。
http://d.hatena.ne.jp/fbis/20090716/1247714151
0257デフォルトの名無しさん2015/02/07(土) 22:33:44.93ID:JB9TvdV/
>>251の間違い
0258デフォルトの名無しさん2015/02/07(土) 22:38:00.19ID:wtoMRbFn
>>253
HTTPのいろはから勉強したほうがいいと思うの。
0259デフォルトの名無しさん2015/02/07(土) 22:55:10.31ID:y/AEt64y
これは何しているところですか?
http://i.imgur.com/8FRiTmg.jpg
0260デフォルトの名無しさん2015/02/07(土) 23:18:40.96ID:ch9ozq+p
>>259
グロ
0261デフォルトの名無しさん2015/02/08(日) 06:59:25.15ID:LYmBvKCw
>>256
そこのページも改行コードが「表示される」とか書いてあるけど
いやいやって感じだな
<br> または <br />って書いてるならまだしも
0262デフォルトの名無しさん2015/02/08(日) 07:23:09.53ID:oFLWAs+T
>>258
改行コードをブラウザが読み込んだら表示も改行されるの?
おめでたいやつだな
いろはを学んだ方がいいのはお前だろw
0263デフォルトの名無しさん2015/02/08(日) 08:01:00.06ID:aMsy6Zj7
PHPって<?php?>の外でもファイルの先頭に#って書けないよな?w
0264デフォルトの名無しさん2015/02/08(日) 10:17:23.17ID:rmuNBtf+
#!/usr/local/bin/php
<?php

とか普通にやりますが何か?
0265デフォルトの名無しさん2015/02/08(日) 10:58:00.60ID:aMsy6Zj7
>>264
それのために書けないよなw
0266デフォルトの名無しさん2015/02/08(日) 11:32:10.62ID:p7WE/J50
まあ、こんなに仕様が変わっていった言語もそうないだろ
0267デフォルトの名無しさん2015/02/08(日) 11:44:17.86ID:e4rj0+Rn
使っているユーザーが多くて、改善要望が多いせいじゃないか?
0268デフォルトの名無しさん2015/02/08(日) 12:06:24.14ID:/NbqY0E2
>>265
実行権限与えれば動作するが、何が言いたいんだ?
0269デフォルトの名無しさん2015/02/08(日) 12:49:40.73ID:kikHBD4l
民主党のマニフェスト並みに何でも取り込むからだよ
0270デフォルトの名無しさん2015/02/08(日) 16:08:14.61ID:57iH9vTa
>>262
HTTPとHTMLの違いを理解したほうがいいと思うの
0271デフォルトの名無しさん2015/02/08(日) 16:13:14.42ID:57iH9vTa
>>265
はいどうぞ。
http://php.net/manual/ja/features.commandline.usage.php

ちなみに、"それ"とか"ファイルの先頭に#"って書いてるそれはシェバング行と言ったりするよ。
0272デフォルトの名無しさん2015/02/08(日) 16:22:42.72ID:LYmBvKCw
>>270
( ゚Д゚)ハァ?
0273デフォルトの名無しさん2015/02/08(日) 16:26:01.50ID:57iH9vTa
>>272
話の流れ的にはそうだろう。
ID:3d6Dulsa の件。
0274デフォルトの名無しさん2015/02/08(日) 19:31:58.60ID:lw0YQSqg
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が使われなくなったから外す流れになった。



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

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

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

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

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

このようなIDを生成するにはどうしたらよいでしょうか?
02762752015/02/09(月) 10:42:11.97ID:AuqukOe+
補足です。
IDは一意なもので、可能な限り短く、
長さは可変(データ量が振れば文字の桁数が増えていく)を考えています。
0277デフォルトの名無しさん2015/02/09(月) 10:56:02.80ID:p6Gav+v7
PHP 62進数で検索
0278デフォルトの名無しさん2015/02/09(月) 10:57:05.37ID:AuqukOe+
>>277
62進数も結局は連番なので、考えているものと違います
0279デフォルトの名無しさん2015/02/09(月) 11:05:04.60ID:p6Gav+v7
数値なんだから、一回適当な数足すとか引くとか
生成した文字列を規定の方法でシャッフルするとか
ご自分の考えているものでどーぞ
0280デフォルトの名無しさん2015/02/09(月) 11:14:46.67ID:AuqukOe+
>>279
なるほど、最初に手を加えてから進数変換するわけですね
一先ずそれで試してみようと思います、ありがとうございます。


それと、他の手法も知っておきたいので、
もし他のやり方をご存知の方いらっしゃれば教えてください。
0281デフォルトの名無しさん2015/02/09(月) 11:43:51.56ID:kQFsD0xw
Ohgakiとかいうおっさん、どうにかならんの?
0282デフォルトの名無しさん2015/02/09(月) 11:46:45.73ID:/goebppZ
>>280
MD5でいいじゃん
0283デフォルトの名無しさん2015/02/09(月) 11:52:45.89ID:AuqukOe+
>>282
MD5ではURLに対しては文字数が長すぎます
0284デフォルトの名無しさん2015/02/09(月) 12:17:07.31ID:/goebppZ
そんな長くもないけどな、でもうちで使ってるのはパスブックのauthコードか、、
あと事前にランダム文字列をテーブルに入れといてidと変換して使ってるけどね
これはURLじゃないけどお客様予約コードとして
0285デフォルトの名無しさん2015/02/09(月) 12:28:44.69ID:iwYt+9F+
trすれば?w
0286デフォルトの名無しさん2015/02/09(月) 12:29:36.99ID:AuqukOe+
>>284
>事前にランダム文字列をテーブルに入れといて
これはどのように生成していますか?
生成したら毎回一意かどうかDBを確認してるんでしょうか?
0287デフォルトの名無しさん2015/02/09(月) 12:36:03.28ID:/goebppZ
一意かどうかはDBにユニーク属性つけときゃかぶらないでしょ
どうやって生成したか忘れた、、10年近く前だったしな、
必要なときに都度作ってかぶったら作り直し、でもいいと思うけどな

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

URL先はこれから拝見します。
0289デフォルトの名無しさん2015/02/09(月) 12:52:26.54ID:AuqukOe+
URL先拝見しました。
見たところ単にランダムなだけであって一意性が保証されてないように見えます。
また、ダウンロードやソースや利用規約なども明記されてないので使いようがないように思えます(探し方がわるく見つけ切れなかっただけならごめんなさい)
0290デフォルトの名無しさん2015/02/09(月) 12:53:10.46ID:r3iadyqd
>>288
ハッシュ関数で検索する。
桁数が短い場合は重複する値が発生する確率が高まるよ。
0291デフォルトの名無しさん2015/02/09(月) 13:01:09.59ID:AuqukOe+
>>290
ハッシュ関数は知っています。
ただ、参考にしたいYouTubeやAmazonのIDはハッシュには見えませんが、どうやればいいでしょうか?
0292デフォルトの名無しさん2015/02/09(月) 13:01:36.67ID:r3iadyqd
>>291
ハッシュに見えないですか。ハッシュですよ。
0293デフォルトの名無しさん2015/02/09(月) 13:03:52.87ID:r3iadyqd
別案としては、乱数生成して文字列化でもいいと思うよ。
ハッシュアルゴリズムを使用するよりも重複する確率は高くなるので、重複チェック怠らずに。
0294デフォルトの名無しさん2015/02/09(月) 13:04:08.95ID:AuqukOe+
>>292
数値ではないので厳密な意味でのハッシュ関数ではありませんね。
でもこれは本題ではないのでいいです。
YouTubeやAmazonのように短いIDの生成方法を教えてください。
0295デフォルトの名無しさん2015/02/09(月) 13:06:59.50ID:AuqukOe+
>>293
膨大なデータが既にある状態だと、何度も何度も重複してやり直す必要が出てくるのって
凄くパフォーマンスが悪い気がしますが、改善策はないのでしょうか?
0296デフォルトの名無しさん2015/02/09(月) 13:27:44.86ID:r3iadyqd
>>295
データ登録時のコストとデータ参照時のコストは分けて考えるべきだけど、
初期データ登録以外でも前者が多いの?
0297デフォルトの名無しさん2015/02/09(月) 13:37:51.46ID:AuqukOe+
>>296
最初はデータは少ないです。
ただ、運用していくにあたってデータ量はかなりのものになると予想してます。
0298デフォルトの名無しさん2015/02/09(月) 13:42:17.24ID:/goebppZ
リンク先でも同じようにやってるけど、ユーザーが誤認しやすい文字をあらかじめ省く、とかもやってんだよね
実行時生成で無限ループが怖かったら先に全部作っときゃいいじゃん、目の前で実行してんだから
ループしたら止めてやり直しゃいいだろう。10年分も作っときゃいい
0299デフォルトの名無しさん2015/02/09(月) 13:51:36.63ID:AuqukOe+
>>298
無限ループって言葉は悪かったかもしれません。(そもそも、そんな実装をする場合は無限ループしないようになんらかの処理を加えるので)
要は、何度も生成を繰り返す(一定条件で失敗と見なす)やり方はUXにも影響が出てしまいますし、
もっとスマートに出来る手法があるのかを知りたいです。

>先に全部作っときゃいいじゃん
このやり方は一理ありますが、凄く無駄のようにも思えます。
こういうやり方が主流なんでしょうか?
0300デフォルトの名無しさん2015/02/09(月) 15:15:32.48ID:8DtgTl9e
phpをテンプレートとして使って
モデルとコントローラは別言語で書きたい
0301デフォルトの名無しさん2015/02/09(月) 16:01:53.96ID:4CCXLzuG
>>299
そのIDってDB上で何桁なの?
0302デフォルトの名無しさん2015/02/09(月) 16:22:57.25ID:kQFsD0xw
こんなのでいいんじゃないの?
substr(md5(uniqid(rand(), 1)), 0, 10)
0303デフォルトの名無しさん2015/02/09(月) 17:30:08.93ID:J1Lpqudc
ハッシュをsubstrとか最悪だろ
0304デフォルトの名無しさん2015/02/09(月) 17:32:08.03ID:/goebppZ
まだバイナリに戻してbase64のが、、w
0305デフォルトの名無しさん2015/02/09(月) 17:37:09.09ID:p6Gav+v7
base64はURLでエンコ掛かる文字があるからな
0306デフォルトの名無しさん2015/02/09(月) 17:43:54.37ID:KZXLvyao
普通にランダム文字列生成して、DBで重複チェックすればいいじゃねーか
無限ループする可能性は0じゃないけどほぼ0。
大文字小文字数字で62種類から5桁使うだけで916132832通り。
こんな中から重複する確率心配する必要あるのか?
0307デフォルトの名無しさん2015/02/09(月) 17:44:22.42ID:8DtgTl9e
substrを嫌って
md5の値をxorで半分に畳んでから64進数にするコードとかは書いた
1/6位に縮む
0308デフォルトの名無しさん2015/02/09(月) 17:46:06.77ID:8DtgTl9e
同じデータで同じ値が得られるって必要ないなら乱数がいいわな
0309デフォルトの名無しさん2015/02/09(月) 17:50:30.50ID:8DtgTl9e
乱数の衝突確率と
DB使った衝突チェックコードがバグってデッドロックする確率と
どっちを重要視するかだなー
0310デフォルトの名無しさん2015/02/09(月) 17:53:30.41ID:kQFsD0xw
>>303
> ハッシュをsubstrとか最悪だろ
そうかな。
10桁のランダム文字列を生成して衝突する確率と、>>302の衝突確率、どっちがどれくらい大きい?
そんな違わんと思うんだが。
0311デフォルトの名無しさん2015/02/09(月) 17:59:54.64ID:8DtgTl9e
元データがユーザーで指定出来るなら
わざと衝突させることは可能
でも元データが乱数なら特に仕様に問題なさそう?
0312デフォルトの名無しさん2015/02/09(月) 18:31:51.59ID:kQFsD0xw
まぁ、それなりに短くてユニーク性が担保されてる物を使いたいなら、事前生成してIDプールを作っとくしかないかなぁ。
0313デフォルトの名無しさん2015/02/09(月) 18:32:05.65ID:gGWdGnGd
youtubeの動画idを作るアルゴリズムは俺も気になる
誰もわかる人いないの?
0314デフォルトの名無しさん2015/02/09(月) 18:37:53.76ID:TIoddbDq
ざっと見た感じ10桁と11桁があったから固定長ではないということと
0-9a-zA-Z-_の64進数であるということ
別に難しいことやってないだろ衝突のチェックはしてるはずだ
0315デフォルトの名無しさん2015/02/09(月) 19:44:46.65ID:5MH5oReq
>>307 のコードはこれな
https://ideone.com/KRfKyg
>>314と桁数も同じだし似たような事やってんだろ
0316デフォルトの名無しさん2015/02/09(月) 21:14:55.73ID:AuqukOe+
解決できました。
ベースとなる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

十分満足する結果が得られたので、この質問は締め切りたいと思います。
解答してくださったみなさん、ありがとうございました。
0317デフォルトの名無しさん2015/02/10(火) 10:18:17.48ID:BBYveUv7
>>316
え?そんなので満足なの?
2文字のキーが存在するとわかると、2文字のその他のキーは総当たりでアタックされちゃうし、
vR7TLCとvR7TLvなんて近すぎるよ。下位一桁を変えるだけで別のを参照できちゃうけど?
0318デフォルトの名無しさん2015/02/10(火) 10:24:25.46ID:4KbenIEn
>ベースとなる62文字を底とした対数を元に数値から各文字列を算出して、

これって分かりやすく言うとどういうことをしているの?
またはコードで書くとどうなるのですか?
62進数とか、>>279の言うことはわかるのですが、対数とかわからなくなる。
0319デフォルトの名無しさん2015/02/10(火) 10:40:39.68ID:gUpJ+a7f
62を底にしたとき62の対数 1
62を底にしたときの62^2の対数 2

まあ、1,2,3・・・を元に計算しましたってことだよw
0320デフォルトの名無しさん2015/02/10(火) 11:21:41.79ID:4KbenIEn
>>319
なるほど。少しわかりかけてきたよ。
ありがとう。
0321デフォルトの名無しさん2015/02/10(火) 14:19:58.35ID:wIt1SCny
>>317
>2文字のキーが存在するとわかると
例に在るとおり、桁数は設定できます

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

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

結果はYouTubeのようなIDが生成されます。
ただ、YouTubeは末尾一桁の4byte程を許容しているようなので完全に同じってわけじゃあありません。
多分CheckDigit的な何かだと思うので、これから真似してみます。
0322デフォルトの名無しさん2015/02/10(火) 14:45:10.93ID:BBYveUv7
>>321
> >下位一桁を変えるだけで別のを参照できちゃうけど?
> これはわかりやすくした結果の一例なので、正しく使えば出来ませんよ
下位一桁を順番にさかのぼれば一個前のキーがわかるのでは?
(一桁だけでさかのぼれなければ二桁さかのぼる)
数値の増加と、生成されたキーの辞書順の順番は同じじゃないの?
元となる値はひとつずつ増え、変換後の1つ前との文字列のΔが小さすぎるんじゃないのってことなんだけど。
0323デフォルトの名無しさん2015/02/10(火) 14:47:33.98ID:BBYveUv7
「YouTubeのようなID」っていうから、時系列に生成されたキーを並べても辞書順にはならないものを
求めてると思ったんだけど。
0324デフォルトの名無しさん2015/02/10(火) 14:49:02.48ID:IKKD2i9Y
本人が満足してるならそれでいいだろ
0325デフォルトの名無しさん2015/02/10(火) 15:04:12.81ID:BBYveUv7
いや、その辺のこと全部わかって満足してるんならいいんだけど、ほんとにわかってんのかなと思って。
0326デフォルトの名無しさん2015/02/10(火) 15:17:07.84ID:wIt1SCny
>>322
変換テーブルは任意のキーで変更でき、それはいわばランダムにシャッフルされた状態になるので
>下位一桁を順番にさかのぼれば一個前のキーがわかるのでは?
このような心配は必要ないです。
0327デフォルトの名無しさん2015/02/10(火) 15:18:16.00ID:wIt1SCny
再度言いますが、>>316の一例はわかりやすい結果にした出力です
0328デフォルトの名無しさん2015/02/10(火) 15:23:16.48ID:PEY4PO1c
>>325
最初のやり取りの時点でわかってるつもりでわかってない人だということがわかってる。
0329デフォルトの名無しさん2015/02/10(火) 15:36:22.03ID:wIt1SCny
適切に出力しました。
これを見てまだ指摘があるならください。


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
0330デフォルトの名無しさん2015/02/10(火) 15:52:10.98ID:BBYveUv7
疑問多数なんだけど、もろもろ理解した上での満足なんだなということだけはわかったので、もういい。
0331デフォルトの名無しさん2015/02/11(水) 16:37:52.44ID:qk9mI8Ky
インタビュー:[楽天]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/
0332デフォルトの名無しさん2015/02/11(水) 18:26:22.06ID:bsa0WqJ9
PHPで外部ディレクトリのファイルを全て取得したいです!
たとえばhttp://peace.2ch.net/test/read.cgi/tech/から1418738547などのスレッドキー(ファイル)を取得したいって
ことです!globなどが良さげなのですが自分のディレクトリ配下のファイルしか出ません><
0333デフォルトの名無しさん2015/02/11(水) 18:31:44.60ID:sJPqGjE7
それが出来たらやりたい放題だなw
0334デフォルトの名無しさん2015/02/11(水) 18:45:25.70ID:bsa0WqJ9
>>333
私がやりたいことは、http://e.z-z.jp/という掲示板サービスのIDを自動で取得したいんです
0335デフォルトの名無しさん2015/02/11(水) 20:31:02.10ID:bsa0WqJ9
うそです!
0336デフォルトの名無しさん2015/02/11(水) 20:56:44.79ID:RxP1DnB1
phpのみで苦しみながらコード書いてるけど
テンプレート言語にしては
ずいぶんプログラミングみたいにこと出来ていいねphp
0337デフォルトの名無しさん2015/02/11(水) 21:08:50.16ID:Z2laVfQS
>>336
Framework使ってる?
苦しむことすらからも解放されるよ
0338デフォルトの名無しさん2015/02/11(水) 21:16:41.02ID:RxP1DnB1
php4 dbなしos限定なし設定なし
php拡張ライブラリもwindows apacheデフォルトのみ
そんな環境向けだからWAF使いずらい
0339デフォルトの名無しさん2015/02/17(火) 23:51:28.31ID:Qrf9op+9
インタビュー:[楽天]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/
0340デフォルトの名無しさん2015/02/18(水) 00:05:35.11ID:lUlCQlA9
Rubyのおかげでハゲが治り、体重も減って恋人も出来ましたw
0341デフォルトの名無しさん2015/02/18(水) 00:25:06.29ID:deVdAFDE
>>207
その通り!だから左右に画面を分割してコードをいじっているともっさりして大変なのだ
0342デフォルトの名無しさん2015/02/19(木) 01:30:22.68ID:VWQ00iRn
小規模なスクリプトしか書かないから
railsとか重いWAF覚えるには腰が重い
どうでもいいところでハマるし
0343デフォルトの名無しさん2015/02/19(木) 19:49:34.57ID:6DAiIyVa
PHPを利用して作成されたサイトを見分ける方法ってありますか?
拡張子が.phpであることやexpose_phpによるヘッダー情報で見分ける以外に
どういった方法があるか知りたいです。
0344デフォルトの名無しさん2015/02/19(木) 20:12:16.08ID:yeNrSBng
サーバでうまく設定してればわからない
03453432015/02/19(木) 21:48:47.12ID:lO9TT2c4
>>344
ありがとうございます。

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

たまに、良さそうなサイトがどの言語で作成されているか
気になることがあるのですが、対策されてれば知るのは無理そうですね。
0346デフォルトの名無しさん2015/02/19(木) 22:56:56.57ID:lV3Z3yoq
質問者はまずこれを読み、そこまでして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/
0347デフォルトの名無しさん2015/02/19(木) 23:36:56.05ID:oS1fF8P8
2007年の記事を未だにしつこく貼る奴ってなんだろうね
崇拝でもしてるのかな?
あまりしつこいようなら運営に荒らし通報するからな
0348デフォルトの名無しさん2015/02/19(木) 23:37:17.33ID:ktrT5ybF
ぼっちって、悲しいね
0349デフォルトの名無しさん2015/02/19(木) 23:39:47.72ID:yeNrSBng
自演がバレちゃうから連続で煽ってこない
効果ありすぎw
0350デフォルトの名無しさん2015/02/23(月) 15:44:13.42ID:jEdpJRTO
foreach($contents as $line)
{

}


このコードでは改行文字は  \n \r\n どちらで認識されるのでしょうか?
0351デフォルトの名無しさん2015/02/23(月) 22:24:39.65ID:cWkGfwjm
>>350
試せ
'\r'検索
0352デフォルトの名無しさん2015/02/23(月) 23:44:09.35ID:ETApao89
>>351
さんきゅー
0353デフォルトの名無しさん2015/02/24(火) 01:43:39.16ID:hwXyjfLa
あいまいな情報だが、Rubyだと改行は、外部では\r\nでも、
Ruby内では自動的に、\nに変換されていたかな?

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

PHPはどうなの?
03543532015/02/24(火) 05:19:14.75ID:hwXyjfLa
自己レス
ary = []; ary[2] = []

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

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

最初の1回目だけは、空配列で初期化して、
2回目以降は初期化せずに、追加のみしていきたい
03553532015/02/24(火) 05:22:45.09ID:hwXyjfLa
354は、誤爆!
0356デフォルトの名無しさん2015/02/24(火) 18:54:05.36ID:qJzaoY6z
cURLのラッパークラスhttp://qiita.com/mpyw/items/c65fb4ec4cef80909a47

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

セキュアなwebサイトではcURLを使ってログインすることができない場合があるんですか?
0357デフォルトの名無しさん2015/02/24(火) 19:37:17.89ID:yPCiESzG
そのサーバがクライアントに何を求めてるか
求めてるものが足りないからログインできないだけでcURLは関係ないだろ
正常にログイン出来るブラウザを使ってhttpトレースして自分で調べれないならあきらめろん
0358デフォルトの名無しさん2015/02/24(火) 20:51:53.39ID:qJzaoY6z
>>356
自己解決

httpヘッダーにOrigin: と'Cache-Control:の要素が足りないだけでした
0359デフォルトの名無しさん2015/02/25(水) 11:20:35.02ID:K9ShYAxG
質問です。お願いします。
抽象クラスの抽象メソッドは、必ず継承されるので、
可視性にprivateをつけるのは有り得ないという理解でいいのでしょうか?
継承先ではprivateにしたいのですが、protectedにするしかないのでしょうか?
0360デフォルトの名無しさん2015/02/25(水) 12:33:38.55ID:XX47xY3L
必ず継承されるので ではなく、
継承でオーバーライドできないから です
0361デフォルトの名無しさん2015/02/25(水) 12:48:16.50ID:K9ShYAxG
>>360 ありがとうございます!
>継承でオーバーライドできないから です

つまり、オーバーライドが必須なため必ずprotected以上が要求される
のですね。継承先での実装は強制したいが、その実装の可視性は
privateにするというのは無理そうですね。
ありがとうございました。
0362デフォルトの名無しさん2015/02/25(水) 12:55:47.85ID:UFHbrp38
ほんとはPHPがやりたいのに、職業訓練校だと全部JAVAばっかり
遠回りになるのかな
0363デフォルトの名無しさん2015/02/25(水) 14:33:33.72ID:l9sg+6hs
選択の自由が欲しいなら自費で学校池
0364デフォルトの名無しさん2015/02/25(水) 15:12:57.15ID:GuxC04/B
アホ。お前等なんて誰も雇わねぇよ。レンタルサーバなり、VPSなり借りろ。
講師なんて、プログラマになれなかったような連中がやる仕事だろw
0365デフォルトの名無しさん2015/02/25(水) 15:53:53.56ID:UFHbrp38
>>364
あったまわりいなおまえ
コンビニバイトでもしてろ
0366デフォルトの名無しさん2015/02/25(水) 16:33:46.08ID:GuxC04/B
職業訓練校から雇用されると思ってる方が素敵な頭だよね
あれって、講師共に体裁の良い仕事を与えるためだけのものだよ?
知らなかった?
0367デフォルトの名無しさん2015/02/25(水) 16:36:34.83ID:JFD+ngFs
目の前にある箱使えばドットインストールとか色々あるのに
0368デフォルトの名無しさん2015/02/25(水) 16:49:38.60ID:JFD+ngFs
ttp://paiza.jp/

こことか学びながら求職もできるぞ?
0369デフォルトの名無しさん2015/02/26(木) 11:10:22.20ID:5qyZqY5X
PSRを読んでいたらプロパティは特に定めなしってなってるけど普通はどう?
「StudlyCaps」
「camelCase」
「under_score」

クラスはStudlyCaps、メソッドはcamelCaseで決定みたいだから、
そうするとプロパティはunder_scoreがいいの?
0370デフォルトの名無しさん2015/02/26(木) 11:59:10.15ID:32CLcP5C
有名どころのライブラリに倣えばいいんじゃ?
0371デフォルトの名無しさん2015/02/26(木) 12:24:55.43ID:2jW4ac6x
>>370
なるほど。ライブラリやFW等を調べてみます。
ありがとうございました。
0372デフォルトの名無しさん2015/02/26(木) 12:29:38.27ID:32CLcP5C
そういやcakePHPは結構細かく決まってた気がするな

ファイル名とかDBのテーブル名も含めて
0373デフォルトの名無しさん2015/02/27(金) 17:59:36.14ID:jUJY8z2X
フレームワーク自体そこらへん厳密に決めておかないといけないものだし
0374デフォルトの名無しさん2015/02/27(金) 18:33:58.48ID:tXb9/4s1
フレームワークだから決めなければならないってことはないよ。
そのあたりの命名に制約を課す代わりにメリットを享受できるフレームワークだってことだね。
0375デフォルトの名無しさん2015/02/27(金) 21:49:08.02ID:NM1bEzGX
コネクション張りっぱなしの状態でもxhrで非同期通信が出来ますが
この時通信先のスクリプトでsession_start()をしていると
応答がものすごい長くなります(たぶん張りっぱなしのコネクションがタイムアウトしてから応答が来る)
session_start()をしなければ早く応答が来るのですが何が原因でしょうか?
03763752015/02/27(金) 21:59:03.00ID:NM1bEzGX
ちなみに張りっぱなしのほうでもsession_start()しています
0377デフォルトの名無しさん2015/03/01(日) 16:03:20.30ID:NDBOI03r
質問です。
変数をダブルクォート内に書くとき、

echo "$var";
echo "{$var}";
echo "${var}";
;
のように3通りの書き方がありますが、
どれがいいのでしょうか?
使い分け方とかがわかりませんので教えてください。
0378デフォルトの名無しさん2015/03/01(日) 16:33:32.67ID:u/KO/Jjc
>>377
気が向いたのでこたえる。変数を書くだけなら波括弧はいらない。
配列や可変変数を使いたいときは、どこまでが $ の範囲かを分からせるために波括弧が必要な場合がある。

$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 (可変変数)

ただ個人的には、もし>>377が職場の後輩だったら、こんな文法を駆使したプログラムなんか読み難くて糞だから厨二で卒業しろ
ちゃんと変数に代入して普通にechoしろって言う
0379デフォルトの名無しさん2015/03/01(日) 16:44:13.52ID:NDBOI03r
>>378
なるうほど、可変変数や配列を使う以外は使用する必要がないといことですね。
そうでない場合(単に文字列を収めた変数)にも{}を使用している記述を見かけたので質問しましたが、そのサイトが誤ってるということですね。
ありがとうございました。
0380デフォルトの名無しさん2015/03/01(日) 16:50:28.49ID:W+GQEi2b
>>362
JavaやっときゃPHPは簡単だぞ。逆は難しい
ギターとベースのような関係だ
0381デフォルトの名無しさん2015/03/01(日) 20:26:05.31ID:/QNvxMin
PHP的には、
echo "{$var}";
の書き方だけやっときゃいいんじゃないの?

echo "${var}";
は、シェルスクリプト由来だと思うけど、例によって「余計なもの」つけちゃった仕様でしょ。
0382デフォルトの名無しさん2015/03/01(日) 21:39:12.47ID:KsvF2WvU
Javaなんて企業勤めでもないと何の恩恵もないよね
0383デフォルトの名無しさん2015/03/01(日) 23:43:45.26ID:4t5j5bTH
○○やっておけば楽っていうのならJavaじゃなくてC言語勧めるわ。
0384デフォルトの名無しさん2015/03/02(月) 00:06:58.65ID:KLUkqw11
そうだなぁ。Cを"ちゃんと"使える人は基礎が出来てるからね。
0385デフォルトの名無しさん2015/03/02(月) 05:59:19.17ID:rsjtQPNm
気が向いたのでこたえる(キリッ)

意訳
簡単な質問だから答えられる
0386デフォルトの名無しさん2015/03/02(月) 09:36:58.55ID:u4SyLN4h
可変変数だけじゃなくて、 $var という変数で "$varvar" で困るからだし、
使う使わないはともかく、読める必要はある
0387デフォルトの名無しさん2015/03/02(月) 10:21:16.89ID:QzRGZF5w
単純に、{ }で囲った方が読みやすいというのもあるな。
0388デフォルトの名無しさん2015/03/03(火) 09:06:42.18ID:xikuZzZ1
多次元連想配列についての質問です。

$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がキーとなりましたが、このキーの個数も汎用性があるようなプログラムにしたいです
日本語変ですがよろしくお願いします
0389デフォルトの名無しさん2015/03/03(火) 09:29:03.39ID:PeR2EUn1
foreach($fruits as $v)
$arr[$v['kind_id']][$v['name']] = array('from'=>$v['from'],'seisan'=>$v['seisan']);
0390デフォルトの名無しさん2015/03/03(火) 09:36:05.75ID:5yCpJehD
>>388

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

print_r($fruits);
print_r($fruits[0]);
print_r($fruits[0]["ミカン"]);
0391デフォルトの名無しさん2015/03/03(火) 09:50:04.73ID:xikuZzZ1
>>388です
お二人ともありがとうございます

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

今回の場合だとキーが2つなので
$keys = array("kind_id" ,"name");
というキーを指定する配列があるとします。
$keys = array("kind_id" ,"name","seisan");
のように増えた時にも対応したいのです。
0392デフォルトの名無しさん2015/03/03(火) 10:03:51.53ID:xikuZzZ1
自分で考えたのは

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

foreach($keys as $k){
ここで
$fruits[kind_id][name] = array();
という連想配列を作る
}
これに>>389の
foreach($fruits as $v){
$arr[$v['kind_id']][$v['name']] = array('from'=>$v['from'],'seisan'=>$v['seisan']);
}
を組み合わせたいです
0393デフォルトの名無しさん2015/03/03(火) 11:17:55.72ID:PeR2EUn1
$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);
0394デフォルトの名無しさん2015/03/03(火) 13:27:41.76ID:vf1rXF9z
全然違うよって話になるかもしれないけど、
その変換後のデータ形式を元に表を作りたいという要件なら
変換前のデータ形式のまま、連想配列のキー名を指定すれば表になるようなものを目指したほうがいいと思う。
0395デフォルトの名無しさん2015/03/03(火) 13:49:41.99ID:J64zrXar
>>388です

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

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


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

ここで言う$keysが比較するとき同じレコードを引っ張って来るためのユニークなカラム名で、
$fruitsがデータです
0396デフォルトの名無しさん2015/03/03(火) 14:47:30.97ID:PeR2EUn1
>2つのDBの同じデータが入ってるけど、カラム名が違う2つのテーブルのデータがホントに合ってるか比較する
SQLで出来るんじゃね?
0397デフォルトの名無しさん2015/03/03(火) 15:01:14.05ID:J64zrXar
>>396
実はおっしゃってる、SQL飛ばすバージョンのプログラムはもう出来てるんです
そっちの方が簡単ですよね

でもレコード数多いテーブルが結構あるらしく、上司に↑とは別に今回のプログラム(SQLは最低限しか投げずデータ取得し、プログラムでどうにかするというもの)を作れと言われ…
研修みたいなものです
0398デフォルトの名無しさん2015/03/03(火) 15:08:58.50ID:5yCpJehD
力量を試すものなら人に投げちゃダメでしょw
0399デフォルトの名無しさん2015/03/03(火) 15:11:48.82ID:J64zrXar
>>398
そうなんですけどわからなかったもので…サーセンw
0400デフォルトの名無しさん2015/03/03(火) 15:47:36.14ID:vf1rXF9z
>>397
・上司案
 データ取得:比較元、比較先の2回クエリ発行
 データ比較:ロジック
 DBサーバとの通信量:多い

・みんなの案
 データ比較結果取得:クエリ1回
 DBサーバとの通信量:少ない
0401デフォルトの名無しさん2015/03/03(火) 22:42:58.09ID:bhYwIQkT
>>388です

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

〆ます
皆さんありがとうございました!
0402デフォルトの名無しさん2015/03/04(水) 00:33:37.01ID:aLbHB3FI
比較元のデータ抜いてきて、1件ごとにクエリ投げるようなお馬鹿なことしてなければ。
0403デフォルトの名無しさん2015/03/05(木) 07:56:45.48ID:42cw4PSJ
mysqlのdbとposgresqlのdbにjoinしたsqlを投げることはできますか?
0404デフォルトの名無しさん2015/03/05(木) 07:58:12.01ID:Z2cyKMvI
なぜ試してから質問しない
0405デフォルトの名無しさん2015/03/06(金) 10:36:51.69ID:AIFKHCSQ
>>403
おまえのデバッグの為にここに人間がいるわけじゃない。
試しもせずに質問するような馬鹿は、板に来なくていい。


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

PDOオブジェクトが空でもデータベースは接続されるのか?
それとも他になにか原因があるのか?
0408デフォルトの名無しさん2015/03/06(金) 12:59:15.57ID:qTMDyHIM
両方で phpinfo()して違いを見れば分かるだろ
それぞれの設定は変えられるんだよ
0409デフォルトの名無しさん2015/03/08(日) 17:16:37.80ID:90OQJ5F3
質問です。
よろしくお願いいたします。

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

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

omoi.phpは1分程度かかる処理なんですが、
期待してるのは、即時trueの返却、別プロセスでomoi.phpの処理なのに、待たされてしまってます。
0410デフォルトの名無しさん2015/03/08(日) 17:32:37.00ID:psXgySVj
で、プラットフォームは何なの?(´・ω・`)
0411デフォルトの名無しさん2015/03/08(日) 17:48:55.01ID:q94065c/
execはwindowsでは同期だ。他OSはしらん。
基本非同期で同期にするのが困難なnode.js使えば。
0412デフォルトの名無しさん2015/03/08(日) 18:43:56.83ID:6V9jwiMr
>>409
stderrに何か出てるというオチはないの
0413デフォルトの名無しさん2015/03/08(日) 22:48:48.97ID:90OQJ5F3
>>410
プラットフォームですか、、
サーバは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を動かしたいのです。説明不足ですいません。

>>412
確認してみます。
0414デフォルトの名無しさん2015/03/08(日) 23:21:45.93ID:4v0KO8Ne
phpって並列処理するならpthreadsでしょ
0415デフォルトの名無しさん2015/03/08(日) 23:31:53.20ID:90OQJ5F3
>>414
ということはレンサバではキツそうですね。。。
VPSでやってみようと思います。
ありがとうございました!!
0416デフォルトの名無しさん2015/03/09(月) 00:12:07.80ID:WyTJE+zr
バックグラウンドプロセスで起動するのとスレッド起こすのではずいぶん話が変わるけれど。
とりあえずstderrも捨てるようにして試してみたら?


ちなみに、これの真偽についてはしらないけど、そうなの?
> execはwindowsでは同期だ。
0417デフォルトの名無しさん2015/03/09(月) 00:13:07.76ID:WyTJE+zr
あああと、通常プラットフォームといえばOSを指すよ
0418デフォルトの名無しさん2015/03/09(月) 00:53:49.45ID:sOi42beA
>>416
/dev/nullはUNIX系OSのコマンド
Windowsでは認識されないから処理が止まる
解決策はManualに載ってる
0419デフォルトの名無しさん2015/03/09(月) 02:38:09.61ID:ZguKliEH
コマンドとは言えないが
0420デフォルトの名無しさん2015/03/09(月) 03:19:02.65ID:I2mO0aB9
超初心者です。お願いします。
mac os x 10.9.5

eclipseの日本語設定の質問です
ネットで見たままのやり方でpleiadesの中身を貼ったりiniで最後に-javaagent:../../../plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jarを追加しました。
しかし追加する前は起動するのですが、追加後は起動しません。
いくら調べても解決策がわからないので質問させて頂きました。
拙い質問ですが答えて頂けたら大変助かります。
0421デフォルトの名無しさん2015/03/09(月) 03:32:42.16ID:WyTJE+zr
汎用くだ質じゃないですよ
0422デフォルトの名無しさん2015/03/09(月) 09:22:36.36ID:qeIeMtGl
>>409
>>416
ありがとうございます。
/dev/null 2>&1
としてみましたが、やはり処理が終わってから trueが返ります。

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

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

XMLでレスポンスを返すのですが、相手のタイムアウトが30秒で、処理を終わるのを待ってからでは難しいのでできないかな?と思いました。
引き続き悩んでみます。
0423デフォルトの名無しさん2015/03/09(月) 11:07:14.49ID:dbEYjzPy
2>&1 はstderr出力をstdoutに回す指定だ。 & はそれとは別につける
0424デフォルトの名無しさん2015/03/09(月) 11:09:01.52ID:dbEYjzPy
でも結局 nohup.out に出るような気が
0425デフォルトの名無しさん2015/03/09(月) 21:57:01.95ID:qeIeMtGl
>>423

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

受け取ったXMLをDBなり、テキストなりに保存して、重い処理はCronをとか考えるようになっていますが、レンサバではあまり短い時間でcronを実行できないので、やっぱりVPS?とかいろいろ考えてます。
標準出力のリダイレクトのこと、今回初めて調べたのですが勉強になりました。
今までは「cronでメール送信を止めるもの」な理解でした。
アドバイスくださった方々ありがとうございます。
0426デフォルトの名無しさん2015/03/09(月) 22:54:38.75ID:qeIeMtGl
できました!!
> /dev/null 2> /dev/null &
としたらできた!
ふとstackoverflowを確認したらこう書いてあって、試したらできました。
この&の意味がよくわからないので、調べてみます!
ありがとうございました!失礼します!
0427デフォルトの名無しさん2015/03/10(火) 00:28:33.54ID:40zCF9Gm
linuxのお勉強からどうぞ
0428デフォルトの名無しさん2015/03/10(火) 09:49:51.10ID:54L7jzsb
>>423 に書いてあるだろ
0429デフォルトの名無しさん2015/03/12(木) 22:21:29.74ID:JaffYOCz
最近PHP勉強し始めたんだけど、安定性とサポート期間考えると今は何を使うのがいいの?
5.6の最新版がいいと思ったんだけど、バージョンを選ぶイロハあったら教えてください( ;´Д`)

知識は参考書読んでるけど、こういうバージョンとか運用の面は参考書にのってない( ゚д゚)
0430デフォルトの名無しさん2015/03/12(木) 22:34:46.39ID:xsip/rYn
最新版でいいだろう。
基本的には前版と互換性がある。
古い版コードが最新版で動かない、最新版コードが古い版で動かないは僅かでそのときはネットで調べる。少々しかない。
0431デフォルトの名無しさん2015/03/12(木) 22:34:47.38ID:vab9UUhA
自分が使う環境にあわせろとしか
0432デフォルトの名無しさん2015/03/12(木) 22:45:07.43ID:mlnVAA5X
自由に選べるなら、もちろん5.6の最新版がいい。
ただ、レンタルサーバーなどでは、5.3だったりするので
そこを注意しておけばいいんじゃない。
あと古いコードだとDeprecatedエラーが出たりするので注意が必要。

参考書に関しては、PHP5であれば運用上の問題はほとんどないよ。
さすがにPHP4はやばいけど。
0433デフォルトの名無しさん2015/03/12(木) 23:33:53.07ID:040+TJcm
5.2以前は化石なので、必要にならない限り知らない方がいい。
0434デフォルトの名無しさん2015/03/13(金) 01:07:12.21ID:miWaPtrS
CentOS7使うなら5.4っていうのもあり。
公式でEOLが来てもOSがEOLになるまで緊急性の高い脆弱性は対処してくれるはず。
0435デフォルトの名無しさん2015/03/13(金) 20:18:33.88ID:FQqfzrLS
php5からphp4へのデグレード作業がきつかった
業務でphp4のメンテナンスやってる奴等は
なんか労災とか貰っていいんじゃないか?
0436デフォルトの名無しさん2015/03/14(土) 02:23:33.30ID:jyLQB1wB
下らない質問OKのスレタイなので
お言葉に甘えた質問なんですが、
皆さんってどういうきっかけでPHPを
始めたんですか?
0437デフォルトの名無しさん2015/03/14(土) 03:04:36.06ID:UOAf6rNe
>>437
上司「やれ」
ぼく「ア、ハイ」
0438デフォルトの名無しさん2015/03/14(土) 03:05:15.13ID:UOAf6rNe
>>436のミス
0439デフォルトの名無しさん2015/03/15(日) 04:37:19.18ID:Jzltsf/u
仕事でメインフレーム開発ばかりだったから、趣味でwebにも手を出してみようと思った。
aspはiisだったから除外して、ちょうどphpが流行り始めた頃だったからperlと両方やってみた。
結果perlでの開発効率が悪かったからphpに絞った。
当時もテンプレートエンジンは存在してたし、それを使えば少しはよかったんだけど、
そこまで気合いれてやってたわけじゃないから。。
今はフレームワークも発達してどれも似たり寄ったりだけどねえ。
0440デフォルトの名無しさん2015/03/15(日) 07:06:59.57ID:5K2B7oPu
質問です
日付の再フォーマットをしたいのですが、どのようなやり方が一番効率が良い(速い)ですか?
現在は↓のようにしています

$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));

このようなやり方もあるので、どれが最適なのか分からず悩んでいます
この他にも違ったやり方がありましたら、それらも含めて一番良い方法を教えてください
0441デフォルトの名無しさん2015/03/15(日) 07:27:14.00ID:WQl3FFdF
思いつくやつをすべて実測して報告してくれ
0442デフォルトの名無しさん2015/03/15(日) 07:30:07.66ID:WQl3FFdF
日付の再フォーマットがボトルネックになっていて重要だったら
たぶん最速はC言語による日付の再フォーマットのモジュール化だろう。
自分は実測してはないが最低でも倍速、一桁変わるかもしれない。
0443デフォルトの名無しさん2015/03/15(日) 07:42:35.00ID:5K2B7oPu
>>441-442
ボトルネックになってるわけじゃないんですが、ふと疑問に思った次第であります
今しがた↑の2つの方法で測ってみたところ手元の環境では前者の方が1.3倍ほど高速でした
かなり差が出たので不安でもあります(測り方を間違っていないかなどで)

もしどなたか他に良い方法をご存知であれば教えてください
0444デフォルトの名無しさん2015/03/18(水) 12:44:20.40ID:rkVvy0oF
php7はいつでるのよ?
0445デフォルトの名無しさん2015/03/19(木) 05:56:24.95ID:s+DBGS1U
http://php.net/manual/ja/ の左上のロゴがクルクル回って目が回るんですけど
止める方法ありますか?
0446デフォルトの名無しさん2015/03/19(木) 08:49:34.34ID:DjmTGLqg
PHPを滅ぼすためにはどんな努力が必要ですか?
0447デフォルトの名無しさん2015/03/19(木) 12:50:56.63ID:Mi/YioFJ
rubyはプログラミング初心者にもやさしくて
railsでウェブサービスを作るのは工数が少なく
安上がりだと教えましょう
0448デフォルトの名無しさん2015/03/19(木) 13:49:13.22ID:Wt8pcZlV
>>447
Webサービスの話は板違いなんじゃないの
0449デフォルトの名無しさん2015/03/20(金) 00:07:17.85ID:ezYrXVsa
WebProg板が過疎っちゃってついにこっちに来たかw
まぁ恥ずかしいから単発IDだろうけど
0450デフォルトの名無しさん2015/03/20(金) 01:25:37.78ID:gj2WpmKA
今日中に完成させないと帰れないので教えてください。



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

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

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

何が原因なのでしょうか?
0451デフォルトの名無しさん2015/03/20(金) 01:28:31.64ID:f7yJj+Mt
>>450
エラーログは見たの?
0452デフォルトの名無しさん2015/03/20(金) 01:32:05.79ID:gj2WpmKA
>>451
まだみていないです。

エクストリムの管理画面をのぞいて確認してみます。
0453デフォルトの名無しさん2015/03/20(金) 01:45:53.62ID:oGoXNJGN
作成しようとしてる場所のパーミッションを確認してごらん
0454デフォルトの名無しさん2015/03/20(金) 01:47:58.26ID:oGoXNJGN
それと、入れ子構造なら第三引数をtrueにする
0455デフォルトの名無しさん2015/03/20(金) 01:57:25.90ID:gj2WpmKA
ありがとうございます。

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


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


安いサーバはダメですね
0456デフォルトの名無しさん2015/03/20(金) 02:04:47.64ID:oGoXNJGN
>>455
他で動いてるなら、そのサーバーはOwnerとGroupが違ってるんじゃないの?
作成場所を777にして試してみたらどうだろうか
これ以上はエスパーできないからログや実行してるコマンドがないと無理
0457デフォルトの名無しさん2015/03/20(金) 02:07:15.31ID:gj2WpmKA
>>456
ありがとうございます!!!!!!!!!!!!
動きました!!!!!!!!!!!
0458デフォルトの名無しさん2015/03/20(金) 23:07:23.98ID:Kn1Oysu5
突然すみません、初心者です。
10桁の重複しない整数をランダムで出力したいのですが、どのようにすればよいでしょうか?
ご教授お願いします。
0459片山博文MZ ◆T6xkBnTXz7B0 2015/03/21(土) 00:00:47.38ID:rA11USYH
>>458
$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;
0460デフォルトの名無しさん2015/03/21(土) 01:03:29.74ID:Xyj3Py7G
>>459
言葉足らずで申し訳ありません。
10桁の重複しない整数をランダムで前通り出力したいです。
何卒よろしくお願いしますm(_ _)m
0461デフォルトの名無しさん2015/03/21(土) 01:08:40.94ID:Xyj3Py7G
×前通り
○全通り です
0000000000〜9999999999の範囲になります
ご教授お願いします
0462デフォルトの名無しさん2015/03/21(土) 01:10:14.98ID:b4FQIC21
配列の中身を、ランダムに入れ替える、
shuffle 関数は無いの?

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

でも、頭に0が来ると、やり直しかな?
0463デフォルトの名無しさん2015/03/21(土) 01:12:09.47ID:Xyj3Py7G
>>462
shuffle 関数はあるのですがメモリの使用量が莫大になってしまい読み込みの処理が出来ませんでした
0464デフォルトの名無しさん2015/03/21(土) 01:17:52.65ID:b4FQIC21
全通りなら、(頭に0が付くものを除いてから?)
すべての順列を求めて、配列に格納する

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

Rubyでは、配列.sample
0465デフォルトの名無しさん2015/03/21(土) 01:22:24.50ID:Xyj3Py7G
配列への格納 がデータ量が多すぎてメモリ的に不可能でした
0466デフォルトの名無しさん2015/03/21(土) 01:29:32.13ID:whATksAH
メモリの上限を上げたら?
ini_set('memory_limit', 150M); //150MBで足りなければ増やす
これで解決する
処理を終えて元に戻したければini_get('memory_limit');の値を予め保持して再設定すればいい

あと、質問の後出しはしないようにね
0467デフォルトの名無しさん2015/03/21(土) 01:37:17.83ID:Xyj3Py7G
>>466
はい、すみませんでした。。。
メモリ使用量2GBで1000万のデータを配列に読み込むのが限界でした。
なので重複しない整数をダイレクトに出力したいです。
0468デフォルトの名無しさん2015/03/21(土) 03:50:08.63ID:Xyj3Py7G
467です。
ご迷惑をおかけしました。
少しやり方を変えることにしました、また分からないことが出てきたら質問したいのでよろしくお願いします。
0469デフォルトの名無しさん2015/03/22(日) 01:52:10.58ID:zalLAL+t
すべての順列を、表に持たないで、
頭の中だけで、すべての順列を、
昇順または降順でソートしたものを、想定しておく。
そしてその都度、ソート後の並び順より、計算して求める

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となる
0470デフォルトの名無しさん2015/03/22(日) 02:19:28.23ID:+Q19Br9U
>>468
単純に一桁ずつrandかなんかで決めていけばよくね?

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



> 10桁の重複しない整数をランダムで前通り出力したいです。
0472デフォルトの名無しさん2015/03/22(日) 03:34:10.23ID:Cl7axnxP
擬似乱数の周期を求めるより、与えられた周期の擬似乱数を求めるほうが難しいとおもう。
この辺に擬似乱数のこと書いてあるが。10^11-1の周期のものはどうやったら見つかるものか。



有限体の擬似乱数への応用
http://www.math.sci.hiroshima-u.ac.jp/~m-mat/TEACH/0407-2.pdf
0473デフォルトの名無しさん2015/03/22(日) 11:57:53.05ID:RzBEcZyq
ランダムな値を生成して
dbaで保持っておけばいいだけだよね
0474デフォルトの名無しさん2015/03/22(日) 12:21:30.99ID:RzBEcZyq
32bitの乱数生成して1000000000でmodとればいいだけ
0475デフォルトの名無しさん2015/03/22(日) 12:59:06.48ID:0IynoJqq
>>474
え?算数できない人?
0476デフォルトの名無しさん2015/03/22(日) 19:02:57.24ID:kFSoFK6v
>>475
ツッコミが浅い
0477デフォルトの名無しさん2015/03/24(火) 00:46:11.82ID:Pei7Q5Ow
 
0478デフォルトの名無しさん2015/03/24(火) 00:49:22.86ID:Pei7Q5Ow
$lines = array("name1<>180<>100","name2<>190<>125","name3<>160<>80","name4<>200<>200","name5<>175<>90");
0479デフォルトの名無しさん2015/03/24(火) 00:50:08.21ID:Pei7Q5Ow
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;}

}
0480デフォルトの名無しさん2015/03/24(火) 00:50:39.29ID:Pei7Q5Ow
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))としてもだめでした
0481デフォルトの名無しさん2015/03/24(火) 01:27:49.86ID:zkeD9l/s
usort($lines, function($a, $b){
return cmp($a, $b, 2);
});
こんな感じでどうだろう
0482デフォルトの名無しさん2015/03/24(火) 19:32:12.82ID:+bpB/1qX
モテる!PHP
って本のタイトル思い付いたんだけど
どうだろうか?
0483デフォルトの名無しさん2015/03/25(水) 04:36:19.70ID:WgKCwIYk
8年ぐらい前ならよかったかもな
0484デフォルトの名無しさん2015/03/25(水) 09:27:56.40ID:B13xpX6A
ハゲる!PHPって本のタイトル思い付いたんだけど
どうだろうか?
0485デフォルトの名無しさん2015/03/25(水) 09:59:50.03ID:aN5inpo9
自分が禿げてるからって人を巻き込もうとするなよ
0486デフォルトの名無しさん2015/03/25(水) 20:11:46.27ID:NVq1fR41
また髪の話ですか...
0487デフォルトの名無しさん2015/03/25(水) 21:42:55.99ID:khkApypB
phpからスレ一覧取得しようとすると403 Forbiddenになる。仕様変更したからぽいけど、解決法分かります?
ブラウザからだと普通に見れるし、特に何も必要ないはずなんだが

$thread_list=file_get_contents("http://peace.2ch.net/tech/subject.txt";);
0488デフォルトの名無しさん2015/03/25(水) 22:26:50.84ID:Hdvsam71
試すとこれだけで表示する

<?
$thread_list=file_get_contents("http://peace.2ch.net/tech/subject.txt";);
print_r($thread_list);
0489デフォルトの名無しさん2015/03/25(水) 22:32:32.06ID:8rk42Qme
>>485
絶対版元が同意しないw
0490デフォルトの名無しさん2015/03/25(水) 22:36:46.45ID:khkApypB
>>488
あー別の鯖使ったら普通に表示したわ・・
さくら鯖が弾かれてるだけだった
スレ汚しスマソ
0491デフォルトの名無しさん2015/03/25(水) 22:51:18.71ID:mXwCiPPa
phpでは関数に配列を普通に渡すときは配列のコピーが生成されるってことですか?
そうするとメモリ食いそうだけど

phpでは&をつけて配列の参照渡しをするより普通に渡したほうがいいのでしょうか?
0492デフォルトの名無しさん2015/03/26(木) 08:47:53.10ID:sbYfUV2c
>>491
参照渡ししなくても内部では参照ですのでメモリ確保しません
書き換えるとコピーします
0493デフォルトの名無しさん2015/03/28(土) 17:04:05.78ID:BzFWUJ2D
便乗だけど、&つけた参照渡しは速度が遅くなったり使用メモリが増えたりしますか?
つけてもつけなくてもいいのなら、明示的につけた方がわかりやすい場面もあるのでつけようと思いますが、どうなんでしょう?
0494デフォルトの名無しさん2015/03/28(土) 17:17:07.29ID:Pu+VtIJn
そこまで負荷を気にしてプログラム組むなら
PHP内部で変数がどういう扱いになってるか調べたらいいと思うよ

単に参照渡しにするというだけのことに関して言えば、遅くなるとかメモリがということはない
けど、つけてもつけなくてもいい ということはない
0495デフォルトの名無しさん2015/03/28(土) 17:37:28.43ID:BzFWUJ2D
>>494
遅くなったりメモリが増えたりはないんですね、ありがとうございます
どう扱われているかは気になったので調べてみることにします
0496デフォルトの名無しさん2015/04/01(水) 19:21:35.99ID:pYYryVxA
7で、ガラリと変わるけどな。
0497デフォルトの名無しさん2015/04/02(木) 12:28:51.49ID:INFrUse2
7いつだよはよこい
0498デフォルトの名無しさん2015/04/02(木) 18:26:34.08ID:gm7HoNp7
初心者です
Symfonyのバリデートとはフォームに入力された値が存在するか、値があってるかチェックするという意味でいいのでしょうか?
日本語ドキュメント見たけどわからなくて
0499デフォルトの名無しさん2015/04/02(木) 19:02:14.86ID:w0RukMoF
Symfonyは知らないが、一般的なFromのValidationはそういう用途に使われるよ
0500デフォルトの名無しさん2015/04/02(木) 19:03:08.81ID:w0RukMoF
Symfony専門の質問ならSymfonyスレで聞いた方がいいね
0501デフォルトの名無しさん2015/04/08(水) 10:17:51.99ID:G2jb+k0p
7は秋からか
かなり速くなったみたいだけど
0502デフォルトの名無しさん2015/04/08(水) 18:49:57.55ID:exoXdHy3
facebookの奴と同等らしいな
0503デフォルトの名無しさん2015/04/09(木) 12:24:39.69ID:SXMrA4Vi
workerとかで動くようになるといいなあ
0504デフォルトの名無しさん2015/04/09(木) 15:22:18.40ID:Y8qSNfSy
継承関係とかには無いんだけど、メンバ変数名とかそっくりな
ふたつのクラスを相互にコピーしたいとき、どうしたらいいかな。
コピー先に無い変数はNULLのままでいいです。
0505デフォルトの名無しさん2015/04/11(土) 01:59:23.46ID:Ekh++R8a
プログラム初心者です
ソースを見やすくするために\tでタブを入れているのですが、コードが\tだらけになってプログラム自体が読みにくくなってしまいます
何か良い方法はないでしょうか?

例
echo "$test\n\t\t\t";
echo "<br /><br />\n\t\t\t";
echo "$test2\n";
0506デフォルトの名無しさん2015/04/11(土) 03:57:37.04ID:o8nmaZnG
(出力されたHTMLの)ソースを見やすくするために
ってことだよね。

・Tidyなどの出力整形ライブラリを使う
・インデントせずに出力して、ソースを見るときにエディタで再インデントする
・\tではなく、タブコードを入れる
・ヒアドキュメントを使う
・テンプレートエンジンを使う
とか。
0507デフォルトの名無しさん2015/04/11(土) 08:29:57.15ID:J/M2FJ7a
MVC分離してテンプレートでやるようなもんだが初心者には難しい課題だな
出力されたソースに不備がないか検証したいが目的でそのようなことをやってるなら
出力されたソースをlintにでもぶっこめばいいんじゃないかね
0508デフォルトの名無しさん2015/04/11(土) 17:52:50.99ID:Ekh++R8a
>>506-507
ありがとうございます
色々試してみましたが、自分には難しいようなのでもう少し理解を深めてからこの辺りをやっていこうと思います
ブラウザ上のソースがみにくくても今のところ自分に困る事はないので、コードは適度にインデントをつけてやっていきます
0509デフォルトの名無しさん2015/04/11(土) 18:51:56.39ID:o8nmaZnG
>>508
http://www.php-labo.net/tutorial/php/heredocument.html
0510デフォルトの名無しさん2015/04/16(木) 03:05:04.14ID:Lxb5p7kV
imagefilledrectangle使って画像を生成してるんだけど、生み出した画像が200ちょい超えたところで新しく作れないような症状が出たっぽいんだけど、作れる数に制限があるんでしょうか?
0511デフォルトの名無しさん2015/04/16(木) 03:18:10.30ID:Lxb5p7kV
200ちょっとじゃなくて256くらいでした
これはダメなやつっぽいですね
0512デフォルトの名無しさん2015/04/16(木) 09:52:06.43ID:M8stHknI
エラーは出てるの?
メモリ上限に達してるんじゃ
0513デフォルトの名無しさん2015/04/16(木) 10:02:52.10ID:Lxb5p7kV
エラーは出ないです。
40回ループの中に40回ループを入れ子して画像を出してます。
両ループともエラーを出さずに最後まで回りますが256枚表示したところで描画が止まってるようです。
imgpngした時点で、命令した内の最初から数えて256枚までは出力してるような状態なのかなと思ってます。
画像一枚の大きさは1ピクセルです。
解決できそうでしょうか?
0514デフォルトの名無しさん2015/04/16(木) 12:08:34.98ID:M8stHknI
>>513
再現しない
俺のやり方が違うかもしれんから最小コード出してみて
0515デフォルトの名無しさん2015/04/16(木) 12:23:11.43ID:Lxb5p7kV
>>514
ありがとうございます。
あと20分ほどしたら家に着くのでその時に書き込みます。
0516デフォルトの名無しさん2015/04/16(木) 13:03:34.74ID:Lxb5p7kV
<?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;
0517デフォルトの名無しさん2015/04/16(木) 13:04:52.41ID:Lxb5p7kV
$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);

?>

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

この部分
��
$img = imagecreate(40, 40);
$background_color = imagecolorallocatealpha($img, 100, 255, 255, 110);

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

これがなければ例えば256枚制限だとしたら、16×16ドットの画像が生成出来るんですけど、背景入れると1ドット欠けてしまうので。
0519デフォルトの名無しさん2015/04/16(木) 13:25:10.68ID:j5PiUgUc
最初言ってたのとぜんぜん違うし 生み出した画像が200とか・・・画像は1枚じゃん
なんかひどいソースだなぁ

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

配列に保存してる意味がさっぱりないですが
0520デフォルトの名無しさん2015/04/16(木) 13:42:57.27ID:Lxb5p7kV
>>519
解決出来ました!ありがとうございます。

だめだめな文については返す言葉もないです。
0521デフォルトの名無しさん2015/04/16(木) 13:43:04.46ID:j5PiUgUc
・・・ごめん違うね そこで開放しちゃだめだ
そもそもの問題は 色IDが255までってことだった

1色で塗るだけなら 色は1個だけにするべきだし
全部のピクセルをもっといろんな色で塗りわけたいなら
imagecreate を imagecreatetruecolor にしてください
0522デフォルトの名無しさん2015/04/16(木) 13:48:29.01ID:j5PiUgUc
>>520
真っ黒くなったでしょう
何をしたいのかは分からないけど、それだと
指定した色で塗られてるわけじゃないからね
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);
0523デフォルトの名無しさん2015/04/16(木) 14:19:56.19ID:Lxb5p7kV
>>521
色んな色で塗りたいんですが、truecolorにしてしまうとalphaで透過が効かなくなって、塗ってない部分に背景色の黒(truecolor部分?)が見えてしまうんですが、その場合はどうしたらいいですか?
0524デフォルトの名無しさん2015/04/16(木) 14:41:01.84ID:j5PiUgUc
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);
0525デフォルトの名無しさん2015/04/16(木) 15:10:38.65ID:WwBzC5aK
>>524
ありがとうございます。また外に出てるので帰ったら組み立ててみます。


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

プログラミングはどうやったら上達しますか?
今自分が採ってる方法は基礎なしで、目的の動作をさせるために適当に(検索にかけるべき言葉もわからないので)ググって例文を見つけては貼り付けて組み合わせてるだけなんです。

作りたくないものでも、教科書的なものに従って順に覚えていく方が上達するんですか?

あと、PHPはPHPでも得意とする分野というのがプログラマーさんによって違うんでしょうか?
例えば、音楽の再生?が得意だったり画像の出力が得意だったり、とか。
つまり、偏りがあるのかなあと思って。

PHPの全てをマスターするのも本分ではないし、PHPのここが得意になる!という目指し方でもいいんでしょうか?
よろしくお願いします。
0526デフォルトの名無しさん2015/04/16(木) 16:00:04.91ID:j5PiUgUc
一人で勉強する以上、PHPとか言語に関係ない部分での能力が必要です
あなたがやりたかったことは、検索すれば全部分かることです

truecolorにしてしまうとalphaで透過が効かなくなってるなら、
truecolor imagecolorallocatealpha 透過 で検索ですよ

プログラマにとって、得意なことだの、やったことのあることかどうか
なんてのは大事じゃないんですよ
0527デフォルトの名無しさん2015/04/16(木) 16:22:29.70ID:M8stHknI
2chが重くて全然見れなかった・・・file関連で攻撃受けてるの?
質問の方は、他の方が解答して解決したようなのでなによりです
頑張ってね
0528デフォルトの名無しさん2015/04/16(木) 16:30:05.43ID:icRCAjY/
好きこそ物の上手なれ
0529デフォルトの名無しさん2015/04/16(木) 20:08:35.22ID:8DghKf0U
PHPによるWEBアプリ開発では、アサーションはあまり使わないのですか?
PHPの入門書では、assert関数って出てきませんよね。

http://php.net/manual/ja/function.assert.php
http://php.net/manual/ja/function.assert-options.php
0530デフォルトの名無しさん2015/04/16(木) 22:13:25.45ID:3UComU26
>>529
標準のアサーションだとなんか失敗した、としか判らないからね
PHPUnitのようなテストフレームワークを使うのが主流だよ
0531デフォルトの名無しさん2015/04/16(木) 22:26:35.04ID:caSB52ZJ
>>530
なるほど。素直にPHPUnitを使うようにします。
ありがと。
0532デフォルトの名無しさん2015/04/17(金) 04:11:51.25ID:xa27KbBr
>>530
> 標準のアサーションだとなんか失敗した、としか判らないからね
そうでもない
http://php.net/manual/ja/function.assert.php
0533デフォルトの名無しさん2015/04/21(火) 18:46:22.33ID:4N8iHnMp
phpdocの書き方で
@param で 入力と出力を区別したいときは
[in][out]使っても大丈夫?
0534デフォルトの名無しさん2015/04/22(水) 19:18:58.54ID:GzvvVOyO
【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
---
と出力され、インストールされているようです。
何が原因なのかさっぱり分からず、悩んでいる状態です。
なにか助言等いただけないでしょうか?
0535デフォルトの名無しさん2015/04/22(水) 20:04:21.91ID:j4sfg3bP
>>534
ほにゃらら.php の266行目見ろって書いてあるじゃん。
0536デフォルトの名無しさん2015/04/22(水) 20:27:37.77ID:GzvvVOyO
>>535
ほにゃらら.phpの266行目は
---
$req = self::getHTTPRequest2($url, HTTP_Request2::METHOD_GET);
---
と、HTTP_Request2を呼び出しているだけなんです。
で、ここでエラーが出たままにっちもさっちもいかない状態です。
0537デフォルトの名無しさん2015/04/22(水) 20:55:41.17ID:j4sfg3bP
>>536
わかってんじゃん。一個ずつ問題潰してきゃいいじゃん。
0538デフォルトの名無しさん2015/04/22(水) 21:59:21.16ID:GzvvVOyO
>>536
誠にど素人的発言で申し訳ないのですが、その問題の潰し方が分からなくて悩んでいるのです。
申し訳ございません。
0539デフォルトの名無しさん2015/04/23(木) 00:01:54.68ID:3uxxFF8+
>>538
pearのライブラリにパス通ってないとか。php.ini確認
0540デフォルトの名無しさん2015/04/23(木) 01:31:23.64ID:UbFbi6S3
>>539
そこは最初に確認したのですが、
--
inclulde_pach=".;C:\xampp\php\PEAR;"
--
と、PEARのライブラリにパスは通った状態のようです。
情報後出しばかりで申し訳ありません。
0541デフォルトの名無しさん2015/04/23(木) 01:41:47.01ID:rwZnJZ09
inclulde_pach?
0542デフォルトの名無しさん2015/04/23(木) 02:25:17.41ID:UbFbi6S3
>>541
あぁ、記入ミスです。
「include_path」でした。重ね重ね申し訳ありません。
0543デフォルトの名無しさん2015/04/23(木) 04:04:37.65ID:r7EBgXZ0
>>540
実行時にそうなってるか確認した?
0544デフォルトの名無しさん2015/04/23(木) 04:09:11.43ID:IIHzOglt
あとPHPのバージョンとエラー吐いた時のURL
0545デフォルトの名無しさん2015/04/23(木) 04:09:33.26ID:r7EBgXZ0
なんかrequireしてないだけって気がしだした
0546デフォルトの名無しさん2015/04/23(木) 10:54:45.24ID:drWRwQRf
それっぽそう
05475342015/04/23(木) 20:37:50.92ID:UbFbi6S3
>>534です。お世話になっております。
もうぶっちゃけちゃいますと、
 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を再起動しても、やはり同じ様に正常に動きました。

何が何だかさっぱり分からないまま正常に動くようになったようです。
なんだかとても気持ち悪いですが、とりあえずいったん質問をクローズさせていただきます。
みなさま、どうもありがとうございました。
0548デフォルトの名無しさん2015/04/23(木) 20:54:54.10ID:r7EBgXZ0
>>547
↓これはやったの?

動作環境
以下のコマンドを実行して、全ての項目で OK が出たなら大丈夫です。
何かエラーが出たらがんばって環境を整えてください。
php scripts/p2cmd.php check
0549デフォルトの名無しさん2015/04/23(木) 22:49:19.78ID:UbFbi6S3
>>548
動かなくなったときにやりました。
 php scripts\p2cmd.php check
ですべてOKもでましたし、
 php scripts\p2cmd.php update
で関連ファイルの更新も行いました。
それでも動かなかったので悩んでいたんです。
0550デフォルトの名無しさん2015/04/23(木) 22:51:12.41ID:r7EBgXZ0
そっか。まぁ動くようになってよかった。
0551デフォルトの名無しさん2015/04/24(金) 15:21:08.71ID:CdNzOuAf
PHPで名前入力する際に、名前が妥当かを判断するにはどうしたら良いでしょうか?
送られてくる値はUTF8で、名前にはひらがな/漢字/半角アルファベットを許容したいです。(数字や記号は拒否したい)
正規表現?を使えば良いようですがどのように書いたらいいのかわかりません
よろしくお願いします
0552デフォルトの名無しさん2015/04/24(金) 15:29:39.15ID:nbG5ZGP2
>>551
ググったら見つかったが
preg_match("/^[a-zA-Zぁ-んァ-ヶー一-龠]+$/u",$name)
0553デフォルトの名無しさん2015/04/24(金) 15:32:30.55ID:5uVSKzYn
今からC始めるのは無意味ですか?
0554デフォルトの名無しさん2015/04/24(金) 15:41:10.13ID:qImV3X6l
>>551
preg_match('/\A[\p{Hiragana}\p{Han}a-zA-Z]+\z/u' , $name )

>>553
スレチ
0555デフォルトの名無しさん2015/04/24(金) 15:45:46.33ID:CdNzOuAf
>>552
>>554
ありがとうございます!
0556デフォルトの名無しさん2015/04/24(金) 15:58:59.35ID:qImV3X6l
佐々木さんでチェックしてみてね
0557デフォルトの名無しさん2015/04/25(土) 02:52:29.20ID:Jt8VYq7n
半角アルファベットを許容するなら全角も許容したい。
0558デフォルトの名無しさん2015/04/25(土) 11:01:52.61ID:TkDEI2+D
半角alphaは外人用とわかるが
全角alphaを使う名前の持ち主なんてこの世に存在するのか?
0559デフォルトの名無しさん2015/04/25(土) 19:34:22.97ID:CcP3xJY9
そう思うのであれば全角アルファベットを許容した上で半角変換をすればよい
0560デフォルトの名無しさん2015/04/27(月) 12:29:57.40ID:fsx4AjcX
.phpのファイルをアップロードしてて、そのphpファイル自体をダウンロードされる事は無いんですか。
0561デフォルトの名無しさん2015/04/27(月) 12:46:50.48ID:N2foMO9n
あるだろ。PHPもTXTもCPPもテキスト。
0562デフォルトの名無しさん2015/04/27(月) 15:51:49.94ID:tqpe0E7p
>そう思うのであれば全角アルファベットを許容した上で半角変換をすればよい

底辺プログラマ乙
0563デフォルトの名無しさん2015/04/27(月) 18:28:48.27ID:4OuKNXPJ
数値をヒューマンリーダブルな文字列に変換する関数ってある?
1024 → 1K みたいな感じで
0564デフォルトの名無しさん2015/04/27(月) 18:42:22.88ID:4f0BeVWY
>>563
つくりゃいいじゃん
0565デフォルトの名無しさん2015/04/27(月) 19:22:41.19ID:VIDDBC3g
>>562
郵便番号は全角数字で入力してください。が好きな人?
0566デフォルトの名無しさん2015/04/27(月) 20:00:04.91ID:tqpe0E7p
>>565
郵便番号と名前が同じと思ってるんだ。頭腐ってるのか?
0567デフォルトの名無しさん2015/04/27(月) 20:24:19.70ID:VIDDBC3g
>>566
>>558に対するレスとしては妥当だと思ったんだが、何がそんなにおかしいの?
0568デフォルトの名無しさん2015/04/27(月) 21:09:15.62ID:tqpe0E7p
名前に郵便番号使えるのか?
郵便番号に名前が使えるのか?
こんなことも判らないんだなぁ・・・
0569デフォルトの名無しさん2015/04/27(月) 21:16:28.53ID:qTKVpAug
>>562
全角→半角変換以上の解決策プリーズ
0570デフォルトの名無しさん2015/04/27(月) 21:29:25.97ID:tqpe0E7p
>>569
答え出てるじゃん。馬鹿か?
0571デフォルトの名無しさん2015/04/27(月) 23:39:44.56ID:Q8o5TdgJ
ユーザーは○○を記入しないからエラーで良いとか簡単に言い出すやつは、
ユーザビリティを考えなくていい立場の人間だわ。
0572デフォルトの名無しさん2015/04/28(火) 00:08:23.11ID:NeoZrJWE
JavaScriptで大体やって、PHPは全部エラーでOK
0573デフォルトの名無しさん2015/04/28(火) 00:21:03.93ID:cqUwhhlI
>>571
そんな発想だから底辺って言われるんだよ
0574デフォルトの名無しさん2015/04/28(火) 00:24:14.28ID:cqUwhhlI
ID:Q8o5TdgJは状況とバランスを理解できないIT土方なんだろうね
仕様書とか作ったことなさそう
0575デフォルトの名無しさん2015/04/28(火) 01:37:26.97ID:gadPr3gO
>>560
PHPがそもそも使えないサーバや、サーバの設定がおかしかったりするとそういうこともありうる。
サーバ管理者が未熟な場合、流出ありきでコードに重要な情報を含まないようにしたほうがいい。
0576デフォルトの名無しさん2015/04/28(火) 11:43:00.56ID:dru2pj9t
>>560
ありえる。
だから、セキュリティ的に重要なデータの記載のあるファイルは公開領域には置かない。
普通は、非公開領域に置く。
0577デフォルトの名無しさん2015/04/28(火) 11:50:38.81ID:6B7Pn2o6
>>575
> サーバ管理者が未熟な場合、流出ありきでコードに重要な情報を含まないようにしたほうがいい。
サーバ管理者が未熟なら、root以下なんでも漏れちゃう可能性があるわけで、特にPHPファイルだけを
どうにかしておく必然性は無いと思うが。
0578デフォルトの名無しさん2015/04/28(火) 13:27:29.61ID:K6X4GgZO
>>564
つまり無いってことね。 ありがとう。作るわ。
0579デフォルトの名無しさん2015/04/28(火) 15:39:30.57ID:4P4rfz1u
>>577
そのとおりだと思うけど
ただアクセスするだけで誰でもダウンロードできてしまう状態と
狙ってroot取りに行くのじゃわけが違うぜー

ま、DBのパスワードなんかはドキュメントルート外においとけっていうのは
暗黙の了解だと思うけどな
0580デフォルトの名無しさん2015/04/28(火) 15:59:15.82ID:6B7Pn2o6
>>579
> ただアクセスするだけで誰でもダウンロードできてしまう状態と
「ただアクセスするだけ」ってのがHTTPアクセスのことだとしたら、それでPHPファイルを取得されちゃう
ような無能は、アプリ作るなってレベルだ。
つか、サーバをインターネットに公開すんな。
0581デフォルトの名無しさん2015/04/28(火) 16:31:51.45ID:cqUwhhlI
ID:6B7Pn2o6
こいつがリスクヘッジも出来ない無能だという事がよくわかるな
0582デフォルトの名無しさん2015/04/28(火) 16:37:15.33ID:zYT0yAj9
ID:cqUwhhlI おかえり。
0583デフォルトの名無しさん2015/04/28(火) 16:45:12.93ID:6B7Pn2o6
>>581
PHPのファイルをどこに置くかレベルの近視眼的なセキュリティ対策じゃダメだってことだよ。
DBのパスワードが漏れても、アクセス不可なら問題ない。
0584デフォルトの名無しさん2015/04/28(火) 17:07:07.16ID:cqUwhhlI
>>583
対策じゃなくてリスクヘッジ
これだから無能は。
0585デフォルトの名無しさん2015/04/28(火) 17:24:34.57ID:6B7Pn2o6
>>584
> PHPがそもそも使えないサーバや、サーバの設定がおかしかったりするとそういうこともありうる。
> サーバ管理者が未熟な場合、流出ありきでコードに重要な情報を含まないようにしたほうがいい。
のリスクヘッジを一生やってろ
0586デフォルトの名無しさん2015/04/28(火) 17:30:16.95ID:cqUwhhlI
ID:6B7Pn2o6
これが本当の無能です
0587デフォルトの名無しさん2015/04/28(火) 19:21:58.77ID:aiJZeiPg
かぎ壊されたらどうせ意味ないんだから鍵かけなくたって同じ
と言ってるようなもんだなw
0588デフォルトの名無しさん2015/04/28(火) 19:42:10.85ID:4P4rfz1u
>>583
それは攻撃者のレベルを考慮してないよ
深いとこまで潜ってくるようなセキュリティつつくことでメシ食ってる攻撃者より
にわかが腕試しにやることがほとんどでしょ
ていうかDBのパスワードが漏れてもアクセス不可ってそれこそルート取られたら・・・
結局はルート取られなくするしかないわけだけどそれは鯖管のしごと
最近は共有使ってる人も減ってはいるけどまだまだ多いのが実情だし
とれる対策なんて限度があるわけで
0589デフォルトの名無しさん2015/04/28(火) 20:33:33.76ID:PJN+vN0C
そうか、普通にhtmファイルと同じフォルダにphpファイル置いてたよ。
phpファイルは非公開フォルダに全部入れた方が良いのか。
それとも大事なデータがソースに書かれてるphpだけ非公開に置けば良いのか。
0590デフォルトの名無しさん2015/04/28(火) 20:57:53.49ID:zYT0yAj9
>>589
とりあえずその辺のフレームワーク使ってみればいいと思う。
で、何でそういう構成になってんのかなって考えてみるのもひとつの勉強
0591デフォルトの名無しさん2015/04/29(水) 12:07:30.59ID:letzh3NS
>>589
>phpファイルは非公開フォルダに全部入れた方が良いのか。
これはやりすぎ。

>それとも大事なデータがソースに書かれてるphpだけ非公開に置けば良いのか。
これが正解。必要に応じてrequire_onceとかで読み込めばいい。
0592デフォルトの名無しさん2015/04/29(水) 12:18:00.41ID:2Ot3YiMd
まあ、家に現金置くとして
常に机の上においておくのか、机の引き出しにしまっとくのかの違いぐらいに
意味はある たまに鍵かけ忘れることもあるからな
0593デフォルトの名無しさん2015/04/30(木) 22:03:52.14ID:2YD/JiCb
>>592
これは良い例え
予期せぬ事態に備えておくのは大事
例えば鯖管が何かの作業中に誤ってPHPのMIME-TYPEを設定して、
直接アクセス可能なファイルすべてのソースコードが丸見えになるとかも考えられる
備えは大事だよ
0594デフォルトの名無しさん2015/04/30(木) 23:50:06.82ID:jr4bhkLM
だからフレームワーク見ればいいのに。
>>591とか5年前からタイムスリップしてきたのかと勘違いしちゃう
0595デフォルトの名無しさん2015/05/01(金) 00:08:25.99ID:mGcUeeZw
5年どころか10年前だな
0596デフォルトの名無しさん2015/05/01(金) 01:14:35.49ID:xZIdrgfi
>>591は悪い対応なのか?
フレームワークほとんど使ったことないから分からんけど、
Zendをググった感じだと対策されてなさそうなんだが・・・
ついでに俺のwordpressも対策してなかったから対策しといた。
0597デフォルトの名無しさん2015/05/01(金) 01:44:42.21ID:mGcUeeZw
>>596
Zendならドキュメントにちゃんと載ってる
↓
newproject
|-- application    ←ここにPHPプログラム
|-- library
|-- public       ←サーバーのDocumentRoot
| `-- index.php   ←これがBootstrap.phpを実行

こんな感じが推奨されてる
0598デフォルトの名無しさん2015/05/01(金) 02:47:57.09ID:xZIdrgfi
なるほどね、application全部非公開領域なのか
0599デフォルトの名無しさん2015/05/01(金) 03:38:11.97ID:uP4+4JeO
> Zendをググった感じだと対策されてなさそうなんだが・・・
何を見てこれに至ったのかが気になる。
0600デフォルトの名無しさん2015/05/01(金) 04:19:55.76ID:xZIdrgfi
zend DB パスワードとか検索したら、設定ファイルをいじるやり方がTOPに出てきたから、
対策必要なんかなーと思ったわけさ

フレームワークのメリットデメリットも調べてたけど、
どうも俺には向かなさそうな感じだな。
単純なページを数多く作るシステムとかだとメリット多そう。
0601デフォルトの名無しさん2015/05/01(金) 05:43:51.53ID:uP4+4JeO
http://blog.tojiru.net/article/230726490.html
トップにこれが出てきたけど、公開領域かどうかという話とは関係ないから違うよね。
具体的にURLを出してもらえると嬉しい。
0602デフォルトの名無しさん2015/05/01(金) 06:20:44.46ID:VXg57tOC
配列をループで処理するとき、先頭や最後の要素であることを判別するスマートな方法はある?

今のところ、先頭要素なら配列インデックスが 0 かどうかで判別したりループ前に「先頭フラグ」を立てておいて判別してる。
最後の要素判定は単純配列であれば配列インデックスと配列長を比較して判別、連想配列ならキーを受ける変数とは別にループカウンタ持って配列長と比較して判別してるけど、非常に泥臭い。
0603デフォルトの名無しさん2015/05/01(金) 06:28:39.57ID:xCWnJTf9
配列をループするとき最初から範囲外にアクセスしなければいいだろ。
端とその他は、データとしてなにが違う。
06046022015/05/01(金) 07:10:59.65ID:VXg57tOC
>>603
最初の要素や最後の要素だけ処理をちょっと変えたいことがあるんだよ。

foreach($items as $item) {
echo "<li>$item</li>\n";
}

なんて処理があったとき、最初や最後の li に特別な class を付加するとかな。
こんな説明しないとわからないものか?
0605デフォルトの名無しさん2015/05/01(金) 07:14:27.90ID:xCWnJTf9
これで。

前処理
中間処理(ループ)
後処理
06066022015/05/01(金) 07:30:10.16ID:VXg57tOC
>>605
その方法を >>604 の処理に当てはめてコードで示してくれ
0607デフォルトの名無しさん2015/05/01(金) 07:35:16.60ID:xCWnJTf9
$x = array_shift($A);
fnc_mae($x);
$x = array_pop($A));

foreach($A as $a)・・・

fnc_ato($x);
06086022015/05/01(金) 07:38:52.35ID:VXg57tOC
>>607
処理案のひとつだとは思うが、それは >>602 で挙げた方法よりスマートだと思ってるのね?
0609デフォルトの名無しさん2015/05/01(金) 09:38:28.90ID:EejPW5t5
皆さんはエディタは何使ってますか?
サクラとかネットビーンズ使ったけどなんか使いにくいので、参考までに教えてください
0610デフォルトの名無しさん2015/05/01(金) 10:10:32.01ID:GC2txC2S
viしか使っていないや
0611デフォルトの名無しさん2015/05/01(金) 11:31:39.18ID:xZIdrgfi
>>601
そうそれそれ。
他にも1こ上の階層に上げるやり方とか載ってたりしたから、
ちょっとググッただけの素人目にはそう見えたんだよ。
そういった細かい事をやるのにいちいち検索しないと分かりにくいから
フレームワークって嫌いなんだけどね。

>>602
スマートっていうなら、if(index == 0)以上のスマートなのないんじゃ?
分かりやすいし。
同じ疑問はよく浮かぶ

>>609
秀丸
06126022015/05/01(金) 12:00:38.53ID:VXg57tOC
>>611
先頭のケースはそれでも十分きれいなんだけど、最後の要素判定がね。
書き方そのものは $index==count(配列)-1 かそれに類することをやるだけなんだけど、単純配列じゃなければ $index はただ判定のためだけに用意する処理の本質とは関係の無いカウンタに成り下がる。
もうちょっと先進的に、イテレータとして isFirst とか isLast みたいな判定方法があればスマートだと思うんだけどね。

または、配列の一番最後の要素のキーを端的に得る方法ってあるかな。
イメージとしてはこんな感じ。
$lastkey=array_pop(array_keys(配列))
0613デフォルトの名無しさん2015/05/01(金) 12:19:10.98ID:xCWnJTf9
ループ内で判定を多くするのは非効率。
06146022015/05/01(金) 13:08:31.10ID:VXg57tOC
>>613
それを許容できるかできないかはループの規模にもよるだろうし、
実際にはループの中ではこんな些細な判定などより重い処理が書かれているから、コードとして簡潔に書いてある方がメンテ性がよくていいと思うよ。
大量のデータ処理を高効率でやるならPHPなんて使わないしな。

>>607 についてまじめにコメントすると、まず要素取り出しごとに empty の確認が必要だったりでいちいち面倒。
さらに先頭要素と末尾要素のキーが失われることや中間要素のインデックスがリナンバーされるのも場合によっては許容できない。
処理内容がある程度複雑であれば >>607 にあるようにまさに関数化する必要があるけど、機能的ではない関数化などしたくない。

でも効率についても意識しているのは確かで、ループ内を「先頭」「末尾」「それ以外」に分ける判定では、最も頻度の高い「その他」の選択に一番コストがかかるという点は改善するいい方法があればと思ってる。
若干トリッキーなことやればできるけど、訳の解らんコードになるなら採用できないしな。
0615デフォルトの名無しさん2015/05/01(金) 13:51:32.77ID:uP4+4JeO
>>602
end(配列);
list($end_key, $end_val) = each(配列);

ちなみに>>604の内容ならCSSで解決するのがスマート。

>>611
単に読み間違いだったようでよかった。
また嘘ばかり並べてるPHP解説サイトでも出てくるのかとちょっと心配だった
06166022015/05/01(金) 14:30:00.50ID:VXg57tOC
>>615
あ、そういう方法があったのか。

$firstkey=key(配列);
end(配列);
$lastkey=key(配列);
foreach(配列 as $k=>$v) {
if($key===$firstkey) {
// 先頭要素
}
elseif($key===$lastkey) {
// 末尾要素
}
else {
// その他要素
}
}

という基本型にできそうだね。
この考え方でコードがきれいになるケースはありそうだ。ありがとう。

>>604 はシンプルな例として挙げただけで CSS で対応する余地については強く同意なんだけど、今回の質問のきっかけがこれなんだよね。
別のところで作った HTML をもらってフタを開けたら、ありとあらゆる一覧要素の末尾に class="last" が付けてある。
なんだか IE の互換性の問題でこれがどうしても必要なんだと。
せめて class="first" だったら楽なんだけど、last ってのがなんともいやらしい。
0617デフォルトの名無しさん2015/05/01(金) 15:34:18.49ID:uP4+4JeO
あぁ、なるほど。デザイナ様がそれをつけろとおっしゃるならしょうがないね。乙。
0618デフォルトの名無しさん2015/05/01(金) 19:19:07.02ID:PZEl4U1u
global してんのにそのグローバル変数が無いときってどうなるの?
0619デフォルトの名無しさん2015/05/01(金) 20:01:50.31ID:PZEl4U1u
質問です。

抽象クラスを継承してる子クラスが、抽象メソッドを定義し忘れてるのを
静的に検出したいのですが、どうしたらよいでしょうか。
0620デフォルトの名無しさん2015/05/02(土) 03:56:53.65ID:kZuCqpus
>>618
NULL

>>619
そういう時はインターフェイスを使う
0621デフォルトの名無しさん2015/05/02(土) 10:23:22.95ID:202tz8Zm
>>620
抽象メソッドを定義し忘れてるんじゃなく実装し忘れてるということだと思うけど、
抽象クラスをインタフェースに置き換えたところで >>619 で解決したい問題を解決できる話じゃなくない?

クラスは延々と継承が可能だから、実装し忘れてるのかそれそのものはインスタンス化されないクラスで子孫クラスのどこかで実装されるものなのかは機械的には分からないから、
インスタンス化してみること無しにチェックすることはできないんじゃないのかな。
0622デフォルトの名無しさん2015/05/02(土) 10:55:52.20ID:kZuCqpus
>>621
いや、「抽象メソッドを定義し忘れてるのを」と言ってるだろ
それと君はインターフェイスについてちゃんと勉強してきなさい
0623デフォルトの名無しさん2015/05/02(土) 11:03:45.78ID:202tz8Zm
>>622
「抽象クラスを継承している子クラス」がし忘れることがあるとすれば、それはなんだ?
定義か?
違うだろ?
お前こそ勉強し直してこい
06246212015/05/02(土) 12:37:01.91ID:202tz8Zm
>>621
後半部分は誤りだね。
インスタンス化以前に抽象クラスの派生クラスで抽象メソッドの実装漏れがあれば、そのクラス宣言のパース時にエラーになるもんな。
>>619 のいう静的ってのは、動かしてみることなくってことかね。

であれば、めぼしいクラス宣言のあるソースを軒並み require しただけのスクリプトを書いて実行するのはどうなのかね。
0625デフォルトの名無しさん2015/05/02(土) 12:46:38.32ID:86QaeJl2
>>624
>めぼしいクラス宣言のあるソースを軒並み require しただけのスクリプトを書いて実行

そこに気付くとは・・・ やはり天才か
静的には無理⇒動的には可能 という発想の飛躍
さっそくrequireを列挙したプログラム書きます
0626デフォルトの名無しさん2015/05/02(土) 14:20:24.44ID:kZuCqpus
>>623
インターフェイスを知らないんだね
0627デフォルトの名無しさん2015/05/02(土) 17:07:41.89ID:86QaeJl2
ところで話は変わるけど、

元は戻り値 bool を返すメソッドを継承して
戻り値 boolまたはオブジェクト を返すようにしたら
やっぱり行儀が悪いかな
0628デフォルトの名無しさん2015/05/02(土) 18:42:10.19ID:202tz8Zm
>>626
知ってるけど、それがどうした?
>>619 をどう解釈して、それがインタフェースだとどう解決できると言ってるのかを説明をするというなら聞いてやってもいいぞ。

>>627
継承前のメソッドの仕様次第じゃね。
たまたまboolしか返してなかったけどオブジェクトも返しえる、みたいに解釈できるなら、あるいはそう修正できるなら悪くないんじゃね。
ようは、仕様に沿って作られた既存のコードでそのメソッドの呼び出し元が true や flase と比較してる可能性があるならダメだと思う。
0629デフォルトの名無しさん2015/05/02(土) 19:47:57.88ID:cEdA8aDd
>>619
>静的に検出したいのですが

この「静的」というのが具体的でないから回答は困難。
もう少し具体的に説明したほうがいい。
0630デフォルトの名無しさん2015/05/02(土) 20:06:44.46ID:NSdkbqbf
>>629
>>625で完結した
0631デフォルトの名無しさん2015/05/04(月) 17:07:52.59ID:LDLlVI0c
>>629
動的ってのは、実行し実際に動作させること。
静的ってのは、実行しない。
多言語だと良く出てくる概念だから覚えておいて損は無いよ
0632デフォルトの名無しさん2015/05/05(火) 00:16:13.00ID:gXNF+Bkg
・・・それを知らないと思ったのが分からん
PHPで静的にって言われて、詳しくどういう意味か聞きたくならんのか?
0633デフォルトの名無しさん2015/05/05(火) 03:56:20.63ID:X6lIspm3
そもそも継承先で抽象メソッドの定義忘れとかFatal Error出るだろ?
0634デフォルトの名無しさん2015/05/05(火) 04:07:04.21ID:6RX8cnex
まず定義と実装の区別をつけようか
0635デフォルトの名無しさん2015/05/05(火) 04:08:49.88ID:X6lIspm3
こまけーこたぁいいんだよ!
0636デフォルトの名無しさん2015/05/05(火) 09:21:04.27ID:td7P7nJT
抽象クラスの存在意義の一つにオーバーライドの強制があるのにそれを知らないとか今まで何をしてきたんだ
0637デフォルトの名無しさん2015/05/05(火) 09:34:37.96ID:td7P7nJT
クラスじゃなくてメソッドね
0638デフォルトの名無しさん2015/05/05(火) 11:46:40.25ID:m8J9PzSH
普通はこういう解釈じゃないの?
動的ってのは、インスタンスを生成してメソッドを呼ぶこと(newを使う)。
静的ってのは、インスタンスを生成せずメソッドを呼ぶこと(staticを使う)。

つまり、
動的ってのは、インスタンス変数やインスタンスメソッドを利用すること。
静的ってのは、クラス変数やクラスメソッドを利用すること。
0639デフォルトの名無しさん2015/05/05(火) 12:06:43.43ID:6RX8cnex
文字列をコードとして実行するのも動的と言ったりするかな。
前触れ無く動的静的言ってもいろいろあるな。

>>636
細かい話だけど、抽象メソッドを実装することはオーバーライドになるのかな?
実装を別の実装で上書くことがオーバーライドってイメージだけど。
0640デフォルトの名無しさん2015/05/05(火) 13:14:57.41ID:uK50+OeE
>>633
それ、実行するまでわからんよね
0641デフォルトの名無しさん2015/05/05(火) 16:25:42.00ID:uK50+OeE
動作ログを出力する関数 log_shutsuryoku() を作ってるんだけど
毎回 __FILE__と__LINE__ を引数に書くのが面倒くさいので
これ省略したいんだけど、なにかいい方法ありますか?
0642デフォルトの名無しさん2015/05/05(火) 16:28:41.20ID:uK50+OeE
解決しました。ありがとう
0643デフォルトの名無しさん2015/05/05(火) 16:47:26.26ID:SAyXrWcb
どういたしまして
0644デフォルトの名無しさん2015/05/05(火) 19:37:55.26ID:QsUeX1N1
>>632
ならんが
0645デフォルトの名無しさん2015/05/05(火) 21:56:08.08ID:bTeIB/IH
動的っていうのは実行中にメモリを確保したり解放したりすること
静的っていうのは起動時にメモリを確保し終了時に解放すること
0646デフォルトの名無しさん2015/05/06(水) 00:55:16.10ID:vZJA/INS
>>640
そういうことなら不可能なんじゃね
パーサーなり通さないとただのテキストだし
あとは人間の目でチェックするぐらいしか
0647デフォルトの名無しさん2015/05/06(水) 15:29:35.75ID:LywkhDvi
>>646
php -l で文法チェックにかけても、継承漏れはチェックできないんだよね
これほんとどうしたもんだろう
0648デフォルトの名無しさん2015/05/06(水) 17:31:51.78ID:98HapcQN
何で実行して確かめちゃだめなの?
0649デフォルトの名無しさん2015/05/06(水) 20:11:29.33ID:LywkhDvi
>>648
そこを走行するまでわかんないじゃんね
それって、とても面倒くさいことなんだよ
0650デフォルトの名無しさん2015/05/08(金) 03:07:30.17ID:8fj/JrJq
という問題を解決するために、人類はユニットテストというものを生み出したんだよ。
0651デフォルトの名無しさん2015/05/09(土) 10:31:05.16ID:Oida1g77
横レスですみませんが、>>641 を解決するには、
どうすればいいのでしょうか?

呼び出す関数の引数に__FILE__と__LINE__を渡さないで、
呼び出された関数が、__FILE__と__LINE__ を取得する方法を知りたいです。
0652デフォルトの名無しさん2015/05/09(土) 12:17:45.67ID:VoWdYRCu
>>651
バックトレースでも取ったんじゃね?
0653デフォルトの名無しさん2015/05/09(土) 13:17:25.38ID:xiP/cA9M
>>652
ありがとうございます!!
ご指摘のバックトレースとやらで解決できそうです。

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
0654デフォルトの名無しさん2015/05/09(土) 16:53:38.46ID:5gJDPjVz
相手サーバーにバックアップを復元してもWEBページを正常に表示させたくないんだけど何か良い方法ないかな?
環境はLINUXにアパッチPHP使用
LINUXでchattrで+iで.htaccess設置しようかと思ったんだがSSHで接続はできなかった
FTPとデータベース接続は今はできる
0655デフォルトの名無しさん2015/05/09(土) 17:32:18.28ID:Gc8RqdRM
レッドハットとは赤ずきんのことかもしれません。
0656デフォルトの名無しさん2015/05/09(土) 17:50:31.60ID:MtmjsyLp
>>654
スレチ
0657デフォルトの名無しさん2015/05/10(日) 00:28:36.82ID:pv6tlAro
初心者になります。

mysqlのデータベースからphpで一つのカラムだけを取りだし表示をさせ、
取り出したカラムそれぞれに詳細ボタンを作り、ボタンを押すとそのカラムのレコードが表示されるボタンを作りたいのですが、
どのような方法がありますか?
0658デフォルトの名無しさん2015/05/10(日) 01:08:49.91ID:d6FZBecy
>>657
どこまでが分かっててどこからが分からないの?
0659デフォルトの名無しさん2015/05/10(日) 02:06:24.32ID:pv6tlAro
>>658

データベースの接続までは分かっていて、そこからが分からないです。
0660デフォルトの名無しさん2015/05/10(日) 02:40:24.96ID:JmENrleS
>>659
データベースとPHPの連携の勉強していけば絶対出てくる内容だから勉強を進めるべき
自分で勉強して新しいことが出来るようになったときの快感はすごいぞ
0661デフォルトの名無しさん2015/05/10(日) 02:43:11.77ID:d6FZBecy
>>659
SQL発行して必要カラムや必要レコードを取得するところまではできるの?
ようは、画面回りの作り方が分からないだけなのか、データ取得の仕方もわからないのか、ということなんだけど。

とりあえず詳細ボタンじゃなく詳細リンクにする仕様でのアウトラインを書いとく。
まずカラム値の一覧を表示するスクリプト list.php とPKを引数としたレコードを1件分の詳細表示するスクリプト detail.php の2本を作りましょう。
カラム値一覧表示の際は、各値にリンクを張って表示しましょう。リンク先は詳細表示スクリプトで、引数にPKを仕込んでおきます。こんなの。
<a href="detail.php?pk=キー値" target="_blank">カラム値</a>
詳細表示側では、渡されたPKのレコードを取得して表示する。
自分好みの仕様にするのはこれができてからだろうな。
0662デフォルトの名無しさん2015/05/10(日) 04:30:32.50ID:pv6tlAro
>>661
理解出来ていません。

list.phpで
while($row = $result->fetch_assoc())[
echo $row["date"],"<br>"
]

でdateカラムの表示は出来たのですがそこから詳細をどのように配置すればいいのでしょうか?
0663デフォルトの名無しさん2015/05/10(日) 05:02:38.46ID:Q7tMiRkC
>>662
HTMLの基礎も知らない可能性があるけれど、>>661のこれは読めた?

> リンク先は詳細表示スクリプトで、引数にPKを仕込んでおきます。こんなの。
> <a href="detail.php?pk=キー値" target="_blank">カラム値</a>
0664デフォルトの名無しさん2015/05/10(日) 06:06:45.54ID:pv6tlAro
>>663
<a href></a>でリンクに飛ぶとゆうのは理解しています。

その中に書いているPKのtagetが理解出来ていないです。
0665デフォルトの名無しさん2015/05/10(日) 06:57:26.72ID:nSgk2cU6
>>664
targetは新しいタブで開く指定だから気にしなくていいよ
0666デフォルトの名無しさん2015/05/10(日) 07:48:47.43ID:dQsyuQT8
メジャーな企業サイトや新聞社のサイトで、
Can't connect database.とかデータベースに接続できませんとか
そんな具合のエラーを表示しているけどあれはなんなんですかね?

ただいま接続障害が発生しております。時間をおいてアクセスして下さい。
とか503的なメッセージを表示しておいて、
見えないヘッダーあたりに原因であるデータベースと接続出来なかったとか書いときゃいいと思うのに、
なにを考えてプログラマーはあんなデバッグ向けメッセージを残してるんでしょうか?
0667デフォルトの名無しさん2015/05/10(日) 07:50:45.47ID:pv6tlAro
>>665
今の段階でわからないのはdetail.phpの作り方と、作った後に、list.phpとどう組合わせるかです。
0668デフォルトの名無しさん2015/05/10(日) 07:55:54.88ID:d6FZBecy
>>662
html の話、それもかなり基礎的な話はPHPとあまり関係ないから、ここで掘り下げるようなことじゃないよ。
HTMLタグリファレンスなんてそこらに溢れてて簡単に調べられるんだし。

PHP 的な話でひとつだけ情報を追加しておくと、detail.php に渡されたPK(引数名 pk)は $_GET['pk'] で取得できる。
あと使いそうなものは htmlspecialchars と urencode かな。
それ以上は調べなよ。

つか、これ宿題かなんか?
0669デフォルトの名無しさん2015/05/10(日) 07:58:12.10ID:lFzaOLtb
>>666
開発費が足りないんじゃね?
0670デフォルトの名無しさん2015/05/10(日) 09:13:47.83ID:nSgk2cU6
>>667
detail.phpでは $_GET['pk'] を使ってSELECT WHERE で行を表示すればいい
0671デフォルトの名無しさん2015/05/10(日) 11:54:06.36ID:fqW2K+gx
ここでいちいち疑問点が出たら聞くを繰り返すより入門書でも買って手を動かしたほうが早くね?
0672デフォルトの名無しさん2015/05/10(日) 12:07:20.60ID:lFzaOLtb
>>671は、スレタイにピッタリ。
0673デフォルトの名無しさん2015/05/10(日) 12:08:22.99ID:W9ZiKZfY
じゃあこのスレいらないな
ここは下らない質問をするところだからな?
0674デフォルトの名無しさん2015/05/10(日) 12:28:15.76ID:DkNBXTKK
おまえら、今日は母の日だぞ。
つまらない言い合いするより、親孝行しとけ。
https://www.google.co.jp/
0675デフォルトの名無しさん2015/05/10(日) 13:05:35.18ID:fqW2K+gx
まあ要らないって事はないな

本とか入門サイトとか読んでやってみたけどどーしてもわからないとか腑に落ちないところがあれば
ここで聞けばよくね?
0676デフォルトの名無しさん2015/05/10(日) 13:09:20.90ID:IBnS4wF/
なくなったら、暇つぶしができないので困る
0677デフォルトの名無しさん2015/05/10(日) 13:23:32.69ID:d6FZBecy
一から全部説明するレベルだとコードそのまま書いた方が短そうだもんな。

つか根本的な話なんだけど、実行環境はあるんだろうね?
webプログラムの話なんだよね?
0678デフォルトの名無しさん2015/05/10(日) 20:48:11.85ID:yRYOsbTo
>>668
開発環境はxamppであります。

phpの話です。

詳細リンクを取り出したdateカラムの横にそれぞれ表示されるようにしたいのですが上手くできません。
0679デフォルトの名無しさん2015/05/10(日) 20:57:50.48ID:yRYOsbTo
>>670
行の部分を取り出したdateのそれぞれのレコードだけ取り出したいのですがやり方がわかりません。

イメージとしては

5/01 詳細
5/02 詳細

の用に表示され

詳細リンクを押すとその日付のレコードが表示される感じです。
0680デフォルトの名無しさん2015/05/10(日) 21:42:27.54ID:EHHJTd+L
なんか一冊本買ってやってみたほうがいい。
0681デフォルトの名無しさん2015/05/10(日) 22:06:40.77ID:yRYOsbTo
>>680

独学ならそうしたいのですが、
 
宿題みたいたな感じなので、指定通りにしないといけないんです。
0682デフォルトの名無しさん2015/05/10(日) 22:20:00.48ID:d6FZBecy
>>681
宿題“みたいな感じ”ってなんだよ。
学校の宿題でもなけりゃ新人研修の課題でもないのかよ。
どっちにせよ講義なりテキストなり必要十分な何かは無かったのかい?
どちらかと言えばPHP以前の話で、>>661 の説明があってそんなこと言ってるとか、正解を丸ごとコードで示せと言ってるようなもんなんだけど、ちょっとは自分でやってみるという気は無いわけ?
aタグについてHTMLのタグリファレンスくらいは読んだんだろうな?
つべこべ言わずに >>661 の仕様で list.php くらいは書けてるんだろうな?
0683デフォルトの名無しさん2015/05/10(日) 22:22:39.84ID:fqW2K+gx
別窓じゃなくてそのページにか…
JavaScriptでAJAX使ったリロードの無い今風のシングルページって奴?

だったら初心者にはかなり難易度高め
0684デフォルトの名無しさん2015/05/10(日) 22:36:28.15ID:fqW2K+gx
まあWeb開発ってWebサーバー、アプリの基本動作原理、PHPなどのサーバー側スクリプト、
HTMLとCSS、JavaScriptと結構広範だから本などの前提知識が無いのは結構辛いと思う

聞く側も教える側も
0685デフォルトの名無しさん2015/05/10(日) 22:56:52.43ID:yRYOsbTo
>>682
講義やテキストはないです。
本はかったのですがあまり役に立っていません。
自分でやる気はありますが調べてもわからないので聞いています。


661には各値にリンクを貼ってとありますが、ここがわからないんですよね。

それぞれリンクを貼るのではなくて、取り出したdateのように繰り返しリンクを表示させたいんです。
0686デフォルトの名無しさん2015/05/10(日) 22:59:41.23ID:yRYOsbTo
>>684

とりあえず表示が出来ればいいみたいです。

htmlとcssの基礎的な部分は分かっているつもりです。クリエイター試験も受かったので。

やっぱり複数の知識が必要みたいですね。
0687デフォルトの名無しさん2015/05/10(日) 23:07:25.39ID:6QPckb+O
>>686
次のaとbのどっち?

a)詳細リンクを押すと別ページに移動して詳細が表示される
b)詳細リンクを押すと別ページに移動しないで同一ページに詳細が表示される

a)なら単純なリンクで>>661の構成でOK
b)ならJavaScript・Ajaxなどが必要で>>683の構成になる
0688デフォルトの名無しさん2015/05/10(日) 23:21:41.05ID:d6FZBecy
>>687
当初「ボタンで」と書いてるくらいだから少なからずJSが絡んでるんじゃないの。
でもJSなりAjaxなりでやるにも >>661 ができることは必須なんだから、今の段階で JS がどうとか言ってもしょうがないでしょ。

>>685
>それぞれリンクを貼るのではなくて、取り出したdateのように繰り返しリンクを表示させたいんです。
取り出したdateそれぞれのことを「各値」と言ってるし、それれぞれにリンクを貼るというのはすなわち繰り返しリンクを表示することと同じ意味なんだが...

つかさ、>>662 の echo で >>661 の aタグを出力すればいいということすらわからないの?
もしかしてPKが何のことなのかわからない?
0689デフォルトの名無しさん2015/05/10(日) 23:58:44.73ID:yRYOsbTo
>>687

aの方です!

>>688

aタグの出力が上手くできません。
単独の表示になってしまいます。

pkはレコードを取り出して表示するとゆう認識なのですが間違いですか?
0690デフォルトの名無しさん2015/05/11(月) 00:37:24.62ID:oRNChqV7
>>689
> aタグの出力が上手くできません。
>>662 みたいに出力部分のコードを貼り付けてみろよ。

ただね、素人にこういう課題を出すに当たって講義もテキストも無いというのが本当であれば、自分は素人だと明言して指導を扇ぐのがよいと思うよ。
学校の宿題じゃなくて職場の新人研修でGW中に出された課題なんじゃないの?
だったらなおさら。
0691デフォルトの名無しさん2015/05/11(月) 00:41:36.42ID:oRNChqV7
あぁ、忘れてた。
PK ってのはプライマリキー、主キーのことだぞ。
レコードを一意に特定するためのキーだ。
そのケースだと date をPKにしてる可能性もあるな。
0692デフォルトの名無しさん2015/05/11(月) 01:11:13.07ID:pEYHs+HR
>>690
>>661

pkわかりましたありがとうございます。

職場の課題で担当の人に聞いてはいるんですが、上手く時間が合わないので。

while($row = $result->fetch_assoc())[
echo $row["date"]
<a href="detail.php?pk=">詳細</a> ."<br>"
]

どこがおかしいですか?
0693デフォルトの名無しさん2015/05/11(月) 01:27:43.39ID:oRNChqV7
>>692
while($row = $result->fetch_assoc()) {
echo htmlspecialchars($row["date"])." <a href=\"detail.php?pk=".urlencode($row["XXX"])."\">詳細</a><br>";
}


つかさ、>>662 のコード本当に動かしてる?
単なるコピペミスだと思って細かいこと言わなかったけどさ。
0694デフォルトの名無しさん2015/05/11(月) 03:07:58.39ID:sHXwVAbX
表示はできました。
$row["XXX"]の部分は何が入りますか?
0695デフォルトの名無しさん2015/05/11(月) 04:43:28.28ID:cUL4ahFk
>>694
データベースの主キーのカラム名だよ
他のレコードと重複してない一意な値があるカラム
0696デフォルトの名無しさん2015/05/11(月) 06:08:25.01ID:pEYHs+HR
>>695
ありがとうございます。

次にdetail.phpの書き方ですが、
select from whereで書くとありますが、どのように書けばいいでしょうか?
0697デフォルトの名無しさん2015/05/11(月) 07:32:09.17ID:gSMAj2w3
やっぱ答えたら駄目なやつだったよ
0698デフォルトの名無しさん2015/05/11(月) 08:13:48.79ID:oRNChqV7
もう上司に聞けでいいだろう。
なんのレクチャーも無いというのも聞いても時間が合わないというのも信じがたい。
本当にそうなら職場の責任だから担当とかじゃなく偉い人に堂々と聞けばいい。
スキル詐称して入社したんじゃなけりゃありえんよ。

そういう職場に入って入門書すら買わないというのもどうかと思うが。
0699デフォルトの名無しさん2015/05/11(月) 08:30:58.43ID:0bwE6yMo
くだらねぇ質問にも及んでない。
0700デフォルトの名無しさん2015/05/11(月) 11:28:07.66ID:gNcmvm54
他言語でWebシステム構築経験者のPHP入門は、オライリーのプログラミングPHPでおk?
パーフェクトPHPはもう古いのかな
0701デフォルトの名無しさん2015/05/11(月) 15:33:14.21ID:5R23B0V0
>>696
一つ一つ聞かずに、まず一通り学んでみて。
その上で、書いてある通りやったけど駄目だった
って聞いてみて。

http://codezine.jp/article/detail/4473
会員登録が必要だけど参考になるかな
0702デフォルトの名無しさん2015/05/11(月) 15:43:03.10ID:cxSKig/O
>>700
他言語の経験者なら割と容易に習得できる言語だと思うよ
0703デフォルトの名無しさん2015/05/11(月) 19:35:33.01ID:/EY7yyUc
>>700
多少古いのは否めないがパーフェクトPHPに一票
0704デフォルトの名無しさん2015/05/11(月) 21:59:12.04ID:hW43GQvw
知識が断片的過ぎる

本ぐらい買って読みなさいよ

ゲームとかならすぐ金出すんでそ?
0705デフォルトの名無しさん2015/05/11(月) 23:43:35.98ID:0DBOnMdV
本家と、stack overflowとcodexとcakephpのtutorialとかで十分だろ
0706デフォルトの名無しさん2015/05/12(火) 03:46:22.94ID:XWfrzLl1
そうなんだよね。
OS使うのも本買ったほうが分かりやすいし。
なんだかんだ体系的に学べるのは利点だな
0707デフォルトの名無しさん2015/05/12(火) 11:37:12.82ID:sejXMx92
linuxにだって山程、初心者向けのtutorialあるだろが
0708デフォルトの名無しさん2015/05/12(火) 20:54:44.82ID:icc0PmJx
>>707
初心者向けのチュートリアルは見たことないなぁ
初心者が書いたチュートリアルモドキなら
掃いて捨てるほどあるけど
0709デフォルトの名無しさん2015/05/12(火) 21:22:05.77ID:sejXMx92
ttp://www.ee.surrey.ac.uk/Teaching/Unix/
はぁ?linux tutorialで一番上に出てくるだろ
0710デフォルトの名無しさん2015/05/12(火) 21:24:01.01ID:sejXMx92
おまえは、manや/usr/share/docすら見たことないんだろうな
0711デフォルトの名無しさん2015/05/12(火) 22:56:32.65ID:XWfrzLl1
linuxはいくらでもドキュメントあるから困らん
どうしても困ったらソースも読めるわけだし
0712デフォルトの名無しさん2015/05/13(水) 00:35:07.39ID:tj2XXHnt
php弄ってるヤツらlinuxのソースなんて読むわけないだろ
良くてもcakephpかwordpressのバグをfixするぐらい
0713デフォルトの名無しさん2015/05/13(水) 02:50:03.15ID:HRWLG218
なぜそう決め付けるのか理解に苦しむ。
自分自身がそうであるからという基準でしか見ることができなくなってるのかな。
0714デフォルトの名無しさん2015/05/13(水) 03:52:32.28ID:xdY7g3Br
ID出てるから単発でしか突っかかってこないんだなw
0715デフォルトの名無しさん2015/05/13(水) 22:00:29.60ID:NgVHOpPE
>>709
これ、イマイチじゃね?
0716デフォルトの名無しさん2015/05/14(木) 03:10:30.92ID:W711bNAF
Cの授業の準備段階としてやってもらう程度の内容かな。
1コマ目がこれで、2コマ目はエディタの基本操作でも教えるんじゃない?
0717デフォルトの名無しさん2015/05/14(木) 13:19:07.66ID:iz5duSo7
>>709
初心者が書いたチュートリアルモドキ の良いサンプルだね。
0718デフォルトの名無しさん2015/05/15(金) 11:39:10.35ID:YfmCR69l
>>717
必要な資料は自分で探せカス
0719デフォルトの名無しさん2015/05/15(金) 14:10:49.51ID:aYoiMiFy
>>718
>>709に言ってやれ。
0720デフォルトの名無しさん2015/05/15(金) 16:05:10.23ID:aYoiMiFy
文法チェックで不正な変数をはじく方法ある?
function hoge(){
 $piyo->unko();
}
これをエラーと見抜いてほしい
0721デフォルトの名無しさん2015/05/15(金) 17:06:07.85ID:XFrVDM0g
>>720
> 文法チェックで不正な変数をはじく方法ある?
断言はできないけど、多分ないと思う。
ちなみに、Phalanger(https://phalanger.codeplex.com/)ならと思って試してみたが、
コンパイルではエラーは検出されなかった。
0722デフォルトの名無しさん2015/05/15(金) 21:25:03.36ID:aYoiMiFy
>>721
ありがとう

この程度のポカミスなら、できることなら
テストコードを書く前に気付きたいんだよな
0723デフォルトの名無しさん2015/05/16(土) 03:59:05.38ID:fXloEdfu
phpはどんなクソコード書いても許される
この気楽さをRubyキチガイにもしらしめたい
0724デフォルトの名無しさん2015/05/16(土) 08:21:10.97ID:uvSP2ukl
いつにもまして煽りが下手になってるけど何かあったの?
0725デフォルトの名無しさん2015/05/16(土) 09:34:03.51ID:IeMY8Qzy
PHPはプログラムの基礎もわかってないド素人が触っても大体似たり寄ったりのコードが作れるからな
誰が書いてもさほど変わらないコードが量産されていく、クソ言語だろこれ。
0726デフォルトの名無しさん2015/05/16(土) 12:42:56.37ID:qMXDpux9
それは究極の言語では?>だれが書いても同じコードになる
0727デフォルトの名無しさん2015/05/16(土) 18:45:25.45ID:2unSLM4N
だれが書いても同じコードになるって最高だな
コーディング規約すらいらない最強言語だったか
0728デフォルトの名無しさん2015/05/16(土) 20:44:09.24ID:ZJDdRqxh
>>725
「PHP」を「日本語」に置き換えてみそ。
0729デフォルトの名無しさん2015/05/17(日) 03:41:22.76ID:JFSZ0UWx
誰が書いても同じコードになるは間違い
どんな初心者でもコード書いたら同じ動きをするが正解
0730デフォルトの名無しさん2015/05/17(日) 07:41:10.73ID:N7mUBV2Z
Webprog板から出てきたと思ったら単発ww
0731デフォルトの名無しさん2015/05/17(日) 10:54:29.29ID:ONGBQsYQ
どんなクソコードを書いても許される
これは趣味で書くには有難いぞ
perlよりずっと気楽に書ける
0732デフォルトの名無しさん2015/05/17(日) 11:10:03.99ID:LKO/92Vj
>>725
>>誰が書いてもさほど変わらないコード

Pythonのことか?

『Pythonでは多くのユーザによって書かれた同一の仕事をするプログラムは、
だいたいどれも同じようなコードに収束する。』
http://ja.wikipedia.org/wiki/Python
0733デフォルトの名無しさん2015/05/17(日) 14:28:16.57ID:rJ7+9T5q
PHPは人によってコード違う部類の方だな
0734デフォルトの名無しさん2015/05/17(日) 15:43:03.84ID:CzRQDZeG
>>725の世界では論理的帰結として、725は糞コードを量産してるわけか。
まあ、がんばれ。
0735デフォルトの名無しさん2015/05/17(日) 21:53:32.82ID:YJLG5+oq
Rubyに比べればPHPは人によっての差が少ないほうかもしれない
0736デフォルトの名無しさん2015/05/18(月) 12:13:44.69ID:NlgV+Pgh
コードが違ってくる箇所としてはどんなとこが多いんだろ?

連想配列の入れ方なんかは大きい要因じゃない気がするな
arr[a][b]→arr[b][a]とか
if文連発・if-returnで分岐減らす・switch
関数の作り方(引数に無駄なものがあるかとか)
0737デフォルトの名無しさん2015/05/18(月) 14:43:26.36ID:fsW0cWx4
まあ、そういうのは他の言語でも同じ

PHPは、class何それの人と、最新技術使う人らとの差が大きすぎる
0738デフォルトの名無しさん2015/05/18(月) 14:54:14.07ID:NlgV+Pgh
最新技術ってどういうこと?
フレームワーク使ってたらそりゃ違うソースになって当たり前だろうけど
0739デフォルトの名無しさん2015/05/18(月) 14:58:37.76ID:05C/IAfg
最新技術ってどんなの?
バージョンアップされる度に何か追加されてんの?
0740デフォルトの名無しさん2015/05/18(月) 15:00:50.07ID:LJ5lzNye
同じ目的のために色々方法はある上に、
オブジェクト指向的な要素が最初からあるものと後から追加されたものじゃ
そりゃ差が出るっしょ。
0741デフォルトの名無しさん2015/05/18(月) 15:29:46.43ID:fsW0cWx4
な、PHPの言語自体の機能が増えてるの知らない人がいるんだよ
0742デフォルトの名無しさん2015/05/18(月) 15:41:28.44ID:NlgV+Pgh
増えてることは知ってても増えた内容知らない人は普通じゃないか?
といっても、ソースが大幅に変わるような内容はないでしょ。
言語機能を最新技術というのは何か違うと思う。
0743デフォルトの名無しさん2015/05/18(月) 15:49:44.53ID:hcu+yNsD
ある変数が文字列か数値かを知る方法ってある?

たとえば、$a=123; $b="123"; とあるとき $a===$b は偽だけど
このときに $aが「数値」で$bが「文字列」だというのをログに吐きたい。
0744デフォルトの名無しさん2015/05/18(月) 15:50:45.10ID:hcu+yNsD
gettype()使えばいいんですね。 ありがとうございました。
0745デフォルトの名無しさん2015/05/18(月) 16:27:35.53ID:fsW0cWx4
まあ、環境が古いままの人が多いのもPHP
いまだに $v = array('1','2') な人もいるでしょ
0746デフォルトの名無しさん2015/05/18(月) 16:30:42.17ID:WxtKXoiM
確か5.2と5.3が多いんじゃないかな
0747デフォルトの名無しさん2015/05/18(月) 21:25:10.67ID:dqU8r2pT
>>736
普通設計の話になると思うが、なぜそんな枝葉末節から始まるのか
0748デフォルトの名無しさん2015/05/18(月) 21:53:19.59ID:M5tSLFsj
class何それは、さすがに無いだろうけど
エラー処理に例外使ってないとか、
ジェネレータ、名前空間何それは十分有り得るよね。
0749デフォルトの名無しさん2015/05/18(月) 21:57:37.92ID:GE/vKBW3
$this->
$this->
$this->
$this->
$this->
0750デフォルトの名無しさん2015/05/18(月) 22:18:46.83ID:vI2H8fDe
>>747
設計が決まっているところからの実装の違いの話だからじゃね?
設計の違いまで含めたら同じことやるコードだろうと似たようなものに収束するなんて話は無いだろ。
0751デフォルトの名無しさん2015/05/18(月) 22:30:58.77ID:puNFPU+7
c++みたいにごった煮になってて
まあいいんじゃないっすかね
0752デフォルトの名無しさん2015/05/18(月) 23:17:30.40ID:ZqIMXwl7
5.6までの機能には触れてはいるけど、コード書くと5.2で動くのが出来上がるんだよなぁ。
便利になっているのは確かだが特に積極的に採用するようなものでもないという。
PHP7ではさすがに過去のもの切り捨てたスタイルに変えようと思うけど。
0753デフォルトの名無しさん2015/05/18(月) 23:32:59.19ID:AnePxwCu
「最新機能の採用」と「コードの品質」には、それほど相関は無いんじゃね。
0754デフォルトの名無しさん2015/05/18(月) 23:50:54.23ID:dqU8r2pT
>>750
要件定義が同じでも設計が異なることなんていくらでもあるように思うんだけど、同じになるの?
0755デフォルトの名無しさん2015/05/19(火) 00:18:01.36ID:H38JoFSc
>>754
そう言ってるんだが
0756デフォルトの名無しさん2015/05/19(火) 12:37:21.95ID:N+AyWRZk
まじかよすげえ
0757デフォルトの名無しさん2015/05/19(火) 13:54:20.17ID:kkxdp1Ko
>>756
そのすごい状態が とりあえずの理想だよ
実際にはそこにたどり着けないので トラブルがある
0758デフォルトの名無しさん2015/05/19(火) 13:55:59.74ID:CgqCKJNS
建て増しにつぐ建て増しだからな。
いろいろ無理がある。
0759デフォルトの名無しさん2015/05/19(火) 15:04:52.29ID:H38JoFSc
回答はしょりすぎた
>>750 では同じことするにも設計なんて色々あると言ってる
そこを一緒にしなければ実装の違いなんて比べられないでしょと
0760デフォルトの名無しさん2015/05/27(水) 08:19:37.93ID:A8cyjd7P
半月後の日時を取得したいのですが、
strtotime()ではどのような記述にしたらいいですか?
もし出来ないのであれば違う方法を教えてくださいm(_ _)m
0761デフォルトの名無しさん2015/05/27(水) 08:22:46.47ID:RnsHGaMt
半月の定義について聞こうか
単純に15日なのか
そうでない場合月をまたぐ場合はどうするのかとか
0762デフォルトの名無しさん2015/05/27(水) 13:06:36.87ID:Tt3K3vlc
いつもの学生の課題丸投げかと思ったら PHPスレだった…
0763デフォルトの名無しさん2015/05/27(水) 15:26:48.93ID:SOZj9WGY
>>760
http://php.net/manual/ja/book.datetime.php
0764デフォルトの名無しさん2015/05/29(金) 22:36:40.60ID:6as2IH6X
PHPDocで、戻り値がないことを明示的に書くときは どうしたらいい?
@return 書かないだけだと、書き忘れと区別つかんし。
0765デフォルトの名無しさん2015/05/29(金) 23:22:11.54ID:9jHPFz3S
@return null じゃだめなん?
0766デフォルトの名無しさん2015/05/29(金) 23:27:44.26ID:3oguv8SC
基本的に書き忘れるなよとしか言いようがない
書くべきじゃないがどうしても書きたきゃvoidにしときゃいいんじゃね
フォーマット違反でも結局見る側がわかればいい問題だし
0767デフォルトの名無しさん2015/05/30(土) 01:11:45.81ID:c2c+lsoh
>>766
書き忘れと区別付けたいんだよね。
0768デフォルトの名無しさん2015/06/01(月) 12:21:15.17ID:jClPxdDj
# return
0769デフォルトの名無しさん2015/06/02(火) 15:18:01.04ID:fJ3eeBtW
自分自身のクラスは self でも参照できる
ってのは、マニュアルのどこに書いてありますか?

なんかどこを読んでも、そういう前提でマニュアル書いてあるんだけど
自分自身はselfだってことがどこにも書いてないんだよな
0770デフォルトの名無しさん2015/06/02(火) 15:31:48.92ID:JpMYfsQK
>>769
『定義済のクラス』
http://php.net/manual/ja/reserved.classes.php
0771デフォルトの名無しさん2015/06/02(火) 15:48:27.80ID:fJ3eeBtW
>>770
オー! サンキューベリーマッチ
0772デフォルトの名無しさん2015/06/02(火) 20:35:59.42ID:7VRhULmj
うっひょ〜!PHP最高!
0773デフォルトの名無しさん2015/06/02(火) 21:30:11.04ID:ruRnIKMr
Symfonyがわからなすぎて辛い
日本語ドキュメントもほとんどないし…
0774デフォルトの名無しさん2015/06/02(火) 21:35:16.19ID:38iTpmow
でも代わりになる良いフレームワークが無い
0775デフォルトの名無しさん2015/06/02(火) 22:24:24.05ID:OtbaiMpw
laravelって流行ってるの?
0776デフォルトの名無しさん2015/06/02(火) 22:50:28.64ID:fJ3eeBtW
>>774
FuelPHP いいよ
導入コストはゼロに近い
0777デフォルトの名無しさん2015/06/02(火) 22:57:26.07ID:dwjHRJAm
laravel重いからやだ
0778デフォルトの名無しさん2015/06/02(火) 23:10:54.40ID:n6IbB7yL
SymfonyのようなフルスタックなMVCフレームワークは頑張ってやっといたほうがいいぞ
他で応用がきくからな
おかげでPlayもすんなり使えたぜー
0779デフォルトの名無しさん2015/06/02(火) 23:27:46.86ID:OtbaiMpw
cakephpぐらいしか入門者向けのtutorialなくね?
0780デフォルトの名無しさん2015/06/02(火) 23:58:49.30ID:n6IbB7yL
http://docs.symfony.gr.jp/
一応あるっちゃあるんだけどな
完璧に使いこなせなくてもいいから
とりあえず使ってみることが大事だぜー
0781デフォルトの名無しさん2015/06/03(水) 00:43:03.71ID:TkXokWHH
ASP.NET MVC使ったらZendFramework使いたくなくなるのは伏せておくとして、
他のよりはいいと思うが。
0782デフォルトの名無しさん2015/06/03(水) 18:21:53.92ID:CFPmUN8f
テンプレート使いたいけどfuelと一緒に使うならtwigかsmartyの2つの他に何かある?
0783デフォルトの名無しさん2015/06/04(木) 01:04:06.76ID:FZpfA7xp
twig ってどう言うの? 使いやすい?
0784デフォルトの名無しさん2015/06/05(金) 00:36:24.73ID:vgtnI7Mx
>>782
ttp://fuelphp.com/docs/packages/parser/intro.html
0785デフォルトの名無しさん2015/06/05(金) 15:38:50.15ID:aaRdZOdi
composerにデフォルトでtwig,haml指定されてるのか
0786デフォルトの名無しさん2015/06/05(金) 15:48:01.47ID:H2M0ctpc
debug_backtrace で返される連想配列の途中で
'file' が無いところがあったんだけど、ナンデ?

ファイルの存在しないところからのアクセス?
0787デフォルトの名無しさん2015/06/05(金) 17:50:21.74ID:Mh91SRqR
symfonyのpersistがよくわからない
0788デフォルトの名無しさん2015/06/06(土) 06:26:00.41ID:D7JiD14y
フレームワークよりsubversionとかの使い方がよくわからない
一人ならいらないかもしれんけどせっかくだから使ってみたいよね
0789デフォルトの名無しさん2015/06/06(土) 08:13:38.77ID:wzCXSsbY
〜がわからないって書き込みみると質問というより独り言に見えてならない

ソーシャル日記アプリみたいな感覚なのかな?
0790デフォルトの名無しさん2015/06/06(土) 09:07:33.50ID:KMNvqcU5
>>788
動いたバージョンに何時でも戻せるという安心感は、個人でも有効。
特に学習中は、勘違いして色んな意味で間違ったコードで埋めがちだし。
仕事で本格的に使うようになる前の練習くらいのつもりて良いと思うよ。
0791デフォルトの名無しさん2015/06/06(土) 18:08:34.74ID:zuUc75X6
>>789
2chなんて「品のいい便所の落書き」だろ
何書いたっていいのさ
0792デフォルトの名無しさん2015/06/06(土) 19:38:20.72ID:KXeoVawS
>>788
一人でも要る。
0793デフォルトの名無しさん2015/06/06(土) 19:51:46.05ID:wzCXSsbY
一人だけどGit立て、redmineもついでに立てた

バックアップやメモ代わりには大げさ過ぎる気もするが
0794デフォルトの名無しさん2015/06/07(日) 20:45:19.06ID:ovV6qflK
メーリングリストに加入したいけどメールがこない
手動なの?遅すぎるよ
0795デフォルトの名無しさん2015/06/08(月) 23:26:18.96ID:73KDW0i2
◆質問用テンプレ
【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に関する記述がないのですが
どのように対処するのが適切なのでしょうか?
旨くかけていないかもしれませんがよろしくお願いします。
0796デフォルトの名無しさん2015/06/08(月) 23:52:37.87ID:pbk/+Kp9
一片のコードすら出てこないのな
0797デフォルトの名無しさん2015/06/08(月) 23:53:58.91ID:pbk/+Kp9
書き込んでしまった。
これ読んで、そのように使ってるかどうか確認してみたら。
http://www.codeigniter.com/user_guide/libraries/sessions.html
0798デフォルトの名無しさん2015/06/09(火) 00:00:36.44ID:rzPPp0B+
>>796
すいません、、
職場でちょっと触ってて家帰って頭捻ってたとこでしてコード見れません。
頂いたUrl見てみます。
0799片山博文MZ ◆T6xkBnTXz7B0 2015/06/09(火) 12:05:41.38ID:9rDHYdk2
PHPで作った体液取引所の人気が出ない。。。

http://katahiromz.esy.es/taieki/
https://github.com/katahiromz/taieki

なんかいい方法ないかなああああああ
0800デフォルトの名無しさん2015/06/10(水) 16:30:07.78ID:JjE8Vgth
PHPExcelを使うことになって、作者には大変感謝するが、セル"B8"を取得するのに
> getCellByColumnAndRow(1, 8)
はひどいよ。
VBAだとCells(8, 2)。
"A1"がgetCellByColumnAndRow(0, 1)ってどういうことだよ・・・。
0801デフォルトの名無しさん2015/06/10(水) 17:47:10.97ID:o1tFouS8
>>800
VBAと同じになるようにクラス作れ
0802デフォルトの名無しさん2015/06/10(水) 18:35:55.43ID:JjE8Vgth
>>801
そんなに使う昨日多くなかったから、ラッパーメソッドいくつか書いてお茶を濁した。
ほかもいろいろ酷かった。

セルの背景色設定が、
$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);

みたいな感じ。
0803デフォルトの名無しさん2015/06/11(木) 03:53:34.16ID:ABeq3ksD
これはひどい
0804デフォルトの名無しさん2015/06/11(木) 12:08:06.37ID:dLC9LZnf
>>795
質問の聞き方が悪すぎる
session関係の設定がわからないしcodeigniterの設定もわからないのにこちらが聞き返さないと行けない
0805デフォルトの名無しさん2015/06/15(月) 16:32:23.03ID:ks4U7BG0
またまたまたまたyohgaki氏がしょうもない記事を書いてる。

ほぼ全てのインジェクション攻撃を無効化/防止する入力バリデーション
http://blog.ohgaki.net/input-validation-disables-most-injection-attacks

この人なんでバリデーションにこうもこだわるかね。

SQLインジェクション対策なら、第一に上げるべきはプリペアードステートメントでしょうが。
0806デフォルトの名無しさん2015/06/16(火) 02:17:57.61ID:VrtJnVQC
まあ溢れんばかりの情熱は感じるから、これはこれで。
0807デフォルトの名無しさん2015/06/16(火) 14:34:25.00ID:8MBTn3Q1
>>805
また大垣か
何もしないよりはマシだけど、こういう間違ったセキュリティ対策を勧めてもし何かあった場合こいつ責任取れんのかな?
0808デフォルトの名無しさん2015/06/16(火) 17:03:13.30ID:1ZpIz9bG
これはこれでとか、何もしないよりはとか、本気かね。
このレスには>>805も戸惑いを隠せないだろう。
0809デフォルトの名無しさん2015/06/16(火) 17:53:26.78ID:a7UeLNF9
これ間違ってるの?
これじゃ対策できないの?
0810デフォルトの名無しさん2015/06/16(火) 18:12:09.79ID:sXGSd9sk
>>809
yohgakiという人が、Webアプリのコードを書いてるのか、メジャーどころのFWの事情なんかを
知ってるのか、それを使ってるのか不明だが、上のURLみたいなコードを書いてるとしたら、
もう全然ダメ。

まねしてはいけない。
0811デフォルトの名無しさん2015/06/16(火) 18:23:04.82ID:TqJAvMYM
具体的に何が駄目なの?
0812デフォルトの名無しさん2015/06/16(火) 18:33:03.60ID:sXGSd9sk
>>811
あのコードが「ほぼ全てのインジェクション攻撃を無効化/防止する入力バリデーション」に
なってるかどうかも判断できないのなら、もっと本読め。
0813デフォルトの名無しさん2015/06/16(火) 18:34:09.95ID:gqnH2dL3
>>812
お前に理解力と説明力が無いことは良く分かった。
0814デフォルトの名無しさん2015/06/16(火) 18:36:34.18ID:sXGSd9sk
仮に「ほぼ全てのインジェクション攻撃を無効化/防止する入力バリデーション」を実現する
コードが書けたとしても、それは「ほぼ全て」でしかないんだよ。
0815デフォルトの名無しさん2015/06/16(火) 18:37:41.88ID:sXGSd9sk
>>813
あ、そう来る?

じゃ、大垣氏の考えを全面的に受け入れて、今後もコードを書いてけばいいよ。
大垣氏は書籍も出してるから、全部買って読めばいいさ。
0816デフォルトの名無しさん2015/06/16(火) 18:43:20.89ID:gqnH2dL3
>>815
そうくる? じゃねーよw
具体的に例を挙げて説明してみろよw
それも出来ないようじゃお前こそ大垣以下だろw
0817デフォルトの名無しさん2015/06/16(火) 18:53:58.41ID:TqJAvMYM
>>812
いや、だからそれがわからないから聞いてるんだけどw

具体的に何が駄目なの?って
0818デフォルトの名無しさん2015/06/16(火) 18:59:20.87ID:VNwjpJ1t
アレって、お前の言うSQLインジェクション等の確実な対策の前段階の
入力に対するエラーを出すための処置だろ

アレで対策を行なうんだと思った方がおかしいんだよ
もっとも、俺もこいつ嫌いだがな。
そもそも、開発中だの仕様変更で開発速度だの言ってるくだりが意味が分からん
最後に、くれぐれもこの緩い入力バリデーション関数で運用に入らないようお願いします
って書いてるんだぞ お前は何がしたいんだ
0819デフォルトの名無しさん2015/06/16(火) 19:24:49.25ID:1ZpIz9bG
>>817
横からだけど、
・適切に処理しなければ問題が発生する文字がある
 →ならそれらの文字を除外すればよい
という対応をしているわけだけれど、それが本末転倒だと思えるかどうかじゃないかな。

Webサーバを公開していたら攻撃されたので80ポートふさぎました。これで攻撃されません。
この対策はある意味では正しいけど、本末転倒だし根本的に間違えているでしょ。
0820デフォルトの名無しさん2015/06/16(火) 19:27:22.33ID:1ZpIz9bG
ついでにいうと、彼の方針に従うとしたとしてもバグがあるので、
彼が除外すべきだとしている一部の記号を入力できてしまう。

そういう意味でも、駄目だね。
0821デフォルトの名無しさん2015/06/16(火) 19:43:29.69ID:VNwjpJ1t
0-Zが面白い
0822デフォルトの名無しさん2015/06/16(火) 21:31:42.38ID:ZuUbQivG
0-Zは、0-9A-Zの間違いだろうね。
その他に、バリデーションとしてどこがダメなの?
0823デフォルトの名無しさん2015/06/16(火) 22:08:13.38ID:JwGJ9FW7
ほぼ全てのインジェクションって書いてるじゃん
インジェクション攻撃はSQLだけにあらず
0824デフォルトの名無しさん2015/06/16(火) 22:44:11.83ID:+xig3h/n
>>822
横から口挟むけど、インジェクション対策をしようとしてのバリデーションて話なら、その発想がどこかナナメだということじゃないの?
例えばHTMLエディタを作りましょうって場合に、悪用可能な文字は全部除外してしまえ!とか無理でしょ。
インジェクション対策は、例えどんな文字列が来ようとSQLとか外部コマンド、ユーザーサイドへ出力するHTML、JS、CSS、etc. を混乱させない処理を施すこと(適切なエスケープ、サニタイジング)が基本でしょ。
もちろん目的に敵わない入力を予め除外するというのは前処理として決して的外れではないんだけど、それは本質じゃないってことだ。

そんな当たり前のところで食い下がるって、もしかして本人?
0825デフォルトの名無しさん2015/06/16(火) 22:54:56.34ID:MQvvbfkJ
>>822
まず>>829が書いているように、省いている文字を入れたいのに入れられない。
あとバイナリデータ入れたい場合これだとどうしようもない。

書いているバリデーションの質としてどうこうはこの際どうでもよくて、「SQLインジェクション対策」を目的としているから根本的にダメなんだよ。
0826デフォルトの名無しさん2015/06/16(火) 22:55:59.68ID:a7UeLNF9
>>812からすると、あのコードではほぼ全ての無効化はできていない、と判断できるのだけど、
0-Zみたいなバグは置いといて、何がまずいの?
仮にあれだけの文字除外して大丈夫なシステムだったら採用してOKなの?

>>824の基本は十分分かってるけど、そもそも色んな言語に分けて対応しなくていいなら楽でしょ
0827デフォルトの名無しさん2015/06/16(火) 22:56:54.24ID:MQvvbfkJ
間違い。>>829じゃなくて>>819ね
0828デフォルトの名無しさん2015/06/16(火) 23:07:26.26ID:MQvvbfkJ
>>826
> 仮にあれだけの文字除外して大丈夫なシステムだったら採用してOKなの?
改行と記号と空白を除外するシステムって自分は見たことないんですが……。

> >>824の基本は十分分かってるけど、そもそも色んな言語に分けて対応しなくていいなら楽でしょ
それだったらプリペアードステートメントのほうが間違いなく楽なんですが……。
0829デフォルトの名無しさん2015/06/16(火) 23:07:32.75ID:+xig3h/n
>>826
バリデーションですり抜ける直接的な文字でインジェクションできなくても、その文字列が直接使われない場所でなら悪用できるかもよ。
メジャーな処理として挙げるわけじゃないが、何かのキーをBASE64で変換してフォームとやりとりしてて、SQLにはそれをデコードしたものを含めてるとか。
だいたい悪用しようとする側からすれば、サーバサイドへ何かを入力する経路はGETやPOSTだけじゃなくCOOKIEだってあるわけで、フォームの項目だけバリデーションすればいいような話はひいき目に見てもミスリード。
対策はそのデータの利用場面に合わせてしか行えない。
だから基本だと言ってるし、それが本質。
0830デフォルトの名無しさん2015/06/16(火) 23:31:47.97ID:96Zh/lJj
「ほぼ全てのインジェクション攻撃を・・・」っていうタイトルだけど、
本来は個別に対策すべきで、「ほぼ全ての・・・」っていう
包括的なバリデーション関数を作ること自体がナンセンスってことなの?
0831デフォルトの名無しさん2015/06/16(火) 23:41:57.96ID:+xig3h/n
>>830
ほぼ全て云々はおれの主張することじゃないんで見解だけ言えば、バリデーションで全てのケースに対応できるわけないんだからバリデーションでインジェクション対策をするという発想そのものが誤り、かな。
そもそも何故それをバリデーションでやりたいの?って話だよ。
それだけやっとけば後は特別なことをする必要がない包括的な手段として目を付けたということなんだろうけど、それが成立するのは全てのケースに対応できる場合だけ。
それができないというんだから、その方法には特別な価値は無いということだよ。
0832デフォルトの名無しさん2015/06/16(火) 23:44:05.29ID:a/iHLN7R
欠陥だらけのシステム作ってもらわないとお仕事なくなっちゃう><
0833デフォルトの名無しさん2015/06/17(水) 00:03:10.37ID:LiGG8CES
>>831
なるほど。「バリデーション」と「インジェクション対策」は別のフェーズと考えるべきなのか。
そういう考え方だと、「ほぼ全てのインジェクション攻撃を無効化/防止する入力バリデーション」
っていうのはフェーズを混同させるものとも言えるね。
0834デフォルトの名無しさん2015/06/17(水) 00:24:54.80ID:qOETCbZk
そういうこと。
しかも、他の人も書いてるけどプリペアドステートメントみたいなずっといい方法があるんだから、それを活用した方がいい。

ただ、包括的に処理できればなぁとは思う。
SQLの場合はこの方法、sh使うならこの方法、HTMLに埋めるならこの方法と、やり方がばらばらだしやるべき場面も知っている必要があるからね。
変数のtypeを拡張して、単なる文字列なのか、HTMLとしても文字列なのかのような属性を持たせて、型違いになる値の埋め込み時には自動キャストよろしく勝手に適切な処理がされるとか。
言うほど簡単な話じゃないけど。
0835デフォルトの名無しさん2015/06/17(水) 09:59:54.85ID:DHqA5koz
>>833
> そういう考え方だと、「ほぼ全てのインジェクション攻撃を無効化/防止する入力バリデーション」
> っていうのはフェーズを混同させるものとも言えるね。
そう。

そして、yohgakiは意識的にか無意識か知らないけどずっと前(2008年あたり?)からそういう論調で、
自分が万人に受け入れられるまでは続けると思うよ。
0836デフォルトの名無しさん2015/06/17(水) 10:32:14.52ID:k/UmS/Z+
次の記事見ればコイツのスタンスは分かる

つーか、いちいちコイツがなんか書いたからってわざわざ報告しなくていいから
0837デフォルトの名無しさん2015/06/17(水) 12:39:47.02ID:RAu2/XiI
まぁインジェクション対策云々はおいといて入力バリデーションは重要だけど
フィルタリングである程度想定してないデータを弾くのはいいことだ
0838デフォルトの名無しさん2015/06/17(水) 12:46:54.91ID:Y2jbb8HB
そもそも多重防御がセキュリティの基本だからね。
0839デフォルトの名無しさん2015/06/17(水) 21:56:23.78ID:jnKm6Y3Z
$tweetid = (int)$_GET['tweetid'];
$query = "SELECT * FROM tweets WHERE tweetid=$tweetid;";

みたいに、入れるものが明らかに安全なときはプリペア使わないことがあるけどだめ?
0840片山博文MZ ◆T6xkBnTXz7B0 2015/06/17(水) 21:59:08.77ID:/OO8ry8l
>>839
馬鹿が危険なコードに書き換える可能性アリ
0841デフォルトの名無しさん2015/06/17(水) 22:15:53.40ID:RAu2/XiI
>>839
そんなのは普通
0842デフォルトの名無しさん2015/06/17(水) 23:54:41.11ID:nOv8plof
>>839
Getの値があきらかに安全だという
根拠を知りたい(´・ω・)
0843デフォルトの名無しさん2015/06/18(木) 00:34:26.83ID:KbwadcNI
intにキャストしてんじゃん
変なのきてても0になるだけ
0844デフォルトの名無しさん2015/06/18(木) 10:55:58.22ID:yMgp6kaJ
>>839
それはそれでいいかもしれない。
ただ数値型はAという処理、文字列はBという処理みたいに、内容に応じてクエリを作るとミスが起きる可能性がある。
その点プリペアドステートメントはどのパターンでも統一した書き方ができるので、結果ミスが起き辛くなる。
0845デフォルトの名無しさん2015/06/18(木) 12:54:06.95ID:d3F4/2GH
>>839
RDBMSにもよるが、プリペアードクエリは、SQLインジェクション対策以外にも
実行計画をキャッシュできるというメリットがある。
0846デフォルトの名無しさん2015/06/18(木) 16:01:25.16ID:spIyrXEm
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にした方がいいのではないかと悩んでいます。
0847デフォルトの名無しさん2015/06/18(木) 16:57:43.56ID:kNpEqESr
複数バージョンのインストールした場合みたいな話は
サーバー次第なので聞かれても分からんよ
cdコマンドの後 普通は ;じゃね?

つーかPHPかんけーねー
0848デフォルトの名無しさん2015/06/24(水) 21:08:45.56ID:sYzOe4hn
質問です。スレチだったらすみません。
Youtubeの動画をDLするスクリプトを書いてたのですが、ものによって低画質だったり高画質だったりします。
高画質でDLするにはどうすればいいでしょうか。
0849デフォルトの名無しさん2015/06/24(水) 21:39:02.34ID:ix5XSndE
>>848
先にコード貼れよ
どういうコードかによってアドバイス変わるだろ
0850デフォルトの名無しさん2015/06/24(水) 21:50:20.18ID:dh/bI8tC
違法ちゃいますのん
0851デフォルトの名無しさん2015/06/24(水) 23:07:30.99ID:XZ6zUxBq
元々低画質なだけだろ
0852デフォルトの名無しさん2015/06/24(水) 23:57:01.78ID:sYzOe4hn
ビットレートが明らかに低く音質、画質ともに最悪です。
やり方は同じなので、品質のばらつきはコードとは別に問題があると思い質問しました。
0853デフォルトの名無しさん2015/06/25(木) 03:19:00.00ID:Wi36vyFt
>>848
お察しのとおりスレチだよ。PHP関係ないもの。
0854デフォルトの名無しさん2015/06/25(木) 04:38:30.21ID:chffdwA+
>>848
やり方は知ってるよ
でもスレチだから答えてあげない
0855デフォルトの名無しさん2015/06/25(木) 07:52:20.99ID:iAgotMUN
失礼しました。 他の板で質問し直します。
0856デフォルトの名無しさん2015/06/26(金) 13:58:00.27ID:LOLHSmOB
以前PhpStormのスレがあった気がしたんだがどこ行っちゃったかね
無いようなら立ててもいいかな?
0857デフォルトの名無しさん2015/06/26(金) 14:17:52.32ID:OdrCnoN5
この板はプログラムを作る人のための板です。

あらゆる質問はまずすれ立てるまでもない質問はここでスレにしてください。

その他、お勉強ページへのリンクスレ、
推薦図書・必読書スレ
もあります。

プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。
Javascript は Web 制作板、CGI は Web プログラミング板へ。
業界談義、愚痴はプログラマ板へどうぞ。
ゲーム関係の話題はゲーム製作板へどうぞ。
ネタ、板とは関係の無い話題はご遠慮ください。
0858デフォルトの名無しさん2015/06/26(金) 18:05:08.61ID:LOLHSmOB
PhpStormでさ、定数の定義値をマウスオーバーでポップアップさせたいんだけど
どうしたらいいかな
CTRL+SHIT+�T でポップアップできるけど、いちいちキー打ちゅの面倒くさい
0859デフォルトの名無しさん2015/06/26(金) 18:36:39.29ID:o1Df+09Z
キーを打つ時間がほとんどなのに
0860デフォルトの名無しさん2015/06/27(土) 19:15:35.21ID:XTIsa2U8
PhpStormでさ、ボタンアイコンとかの上にマウスカーソル乗せたときに
ツールチップヒントが出るけど、この出るまでの時間がちょっと長くて
これを短くするにはどうしたらいいかな
0861デフォルトの名無しさん2015/06/28(日) 13:48:24.55ID:5m9gZHLm
switch文のインデントで、case文をhalf indentにしてるんだけど
これって俺だけ?

if( $unko ){
    exit(0);
}
switch( $chinko ){
  case USED:
    do();
    break;
  default:
    die();
}
みたいな感じ
0862デフォルトの名無しさん2015/06/28(日) 14:31:25.51ID:ztXjEmUK
>>861
してる
0863デフォルトの名無しさん2015/06/28(日) 15:40:16.32ID:5m9gZHLm
>>862
おお! いるのか。

PhpStormとかEclipseとかは こういうインデントに対応してないから
switch文だけ毎回微調整しなきゃならなくて 面倒くさいんだよな
0864デフォルトの名無しさん2015/06/28(日) 15:54:18.93ID:YBvq0FDq
そのインデントやめれば?w
0865デフォルトの名無しさん2015/06/28(日) 20:49:02.58ID:RSiHFvOo
おれも前はインデントしてたけど、ラベルの親戚だと考えればインデントしない方がいいという結論に至った
0866デフォルトの名無しさん2015/06/29(月) 07:19:44.21ID:GUCtyGAa
質問です。
また大垣がやらかしたようですが、
自分は脆弱性のあるプログラムしか書けないくせに、
バリデーションはセキュリティ(キリッ)とか言っちゃてて恥ずかしくないのでしょうか?
0867デフォルトの名無しさん2015/06/29(月) 12:29:31.19ID:eS8mn29W
その大垣って有名な人なの?
0868デフォルトの名無しさん2015/06/29(月) 14:03:59.40ID:dI4zlbgu
徳丸と大垣はお互いにあいつは話のわからんやつだと思い合う関係。
どっちにつくのも自由だよ
0869デフォルトの名無しさん2015/06/29(月) 14:42:09.32ID:teFqna/9
PDOでエラーになったときに例外が出るのと出ないのがあるんだけど
どこで区別されるの?

insert時に重複してると例外がでるけど
これエラーで済ませないかな
0870デフォルトの名無しさん2015/06/29(月) 17:19:26.63ID:k48kibIU
PDO::ATTR_ERRMODE の話?
どっちにしてもトランザクション中なら続きできない気がするが
0871デフォルトの名無しさん2015/06/29(月) 17:41:24.15ID:nWtxw8xH
test
0872デフォルトの名無しさん2015/06/30(火) 06:37:05.20ID:+pw4+xSb
>>868
いや全然違う
CSRFも理解しておらず、この間はテストすらしてないバグのあるコードを公開してた
大垣にセキュリティを語る資格はない
0873デフォルトの名無しさん2015/06/30(火) 12:26:30.07ID:htUHD13i
>>872
話がかみ合ってない
0874デフォルトの名無しさん2015/06/30(火) 12:39:27.03ID:f9Xenhmh
ポインタがずれてますよ
0875デフォルトの名無しさん2015/06/30(火) 12:57:40.74ID:+pw4+xSb
>>873
会話の土台にすら立ててないってこと
デタラメなセキュリティ情報を発信する奴につくのは見当違いな発言だろ
0876デフォルトの名無しさん2015/06/30(火) 13:01:17.94ID:htUHD13i
>>875
別におかしなやつについていこうがなにしようが自由でしょ。ばかだなぁとは思うけど。
ちな>>808は俺な
0877デフォルトの名無しさん2015/06/30(火) 15:57:44.78ID:yGbQd19m
徳丸disな記事を丸々削除して、同じURLで別の記事を登録した模様。
http://blog.ohgaki.net/criticism-for-my-sample-program

削除した記事には、こんなこと書いてたのに。

> 徳丸さんのブログでの全く間違った指摘に対するコメント ...
> blog.ohgaki.net/wrong-criticism-for-my-sample-program
> 4 時間前 - 徳丸さんとは論理的に議論をする余地がないので、議論をするつもりは全くありません。
> しかし、完全に間違った指摘をされているのでコメントしておきます。 問題のブログはこちらです。
> 書籍『Webアプリケーションセキュリティ対策入門』のCSRF ...
0878デフォルトの名無しさん2015/06/30(火) 16:01:05.21ID:yGbQd19m
おっと、
http://blog.ohgaki.net/wrong-criticism-for-my-sample-program
の内容を丸ごと置き換えて、同じ内容を
http://blog.ohgaki.net/criticism-for-my-sample-program
でも公開してる。
なんだこれ。
0879デフォルトの名無しさん2015/06/30(火) 16:17:02.91ID:+pw4+xSb
>>877
これは酷い
けど、ようやく間違いを認めたようだね


検証した人のわかりやすいまとめもあるから反面教師にしよう
↓
書籍『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
0880デフォルトの名無しさん2015/06/30(火) 19:44:44.03ID:6xoEPUUH
せめて くだらない質問スレ にあったこと書け
そんなのはお前の名前だした上で別のとこでやれ
0881デフォルトの名無しさん2015/06/30(火) 21:20:00.22ID:TGfi4m1b
private とか public とかの修飾って、なんて呼べばいいの?
公開属性?
0882デフォルトの名無しさん2015/06/30(火) 22:18:02.60ID:Ni6S0TpV
アクセス修飾子
0883デフォルトの名無しさん2015/07/01(水) 00:39:36.48ID:O0L9W844
smartyのテンプレート内で配列の定義が出来なくて
ドロップダウン作るのがすごく不便なんですがなんとかなりませんかね
0884デフォルトの名無しさん2015/07/01(水) 02:53:09.99ID:jhXB2ucL
配列をアサインできないのっぴきならない理由があるとしても、最悪PHPのコードかけるわけだけども。
0885デフォルトの名無しさん2015/07/01(水) 10:49:41.54ID:Gv9F9Dvy
PHP関係ない愚痴を書くのやめてくれませんかねぇ
0886デフォルトの名無しさん2015/07/01(水) 11:35:50.08ID:7SCeZZlO
PHP関連の話だろ・・・
質問も上に出てる
0887デフォルトの名無しさん2015/07/02(木) 17:13:07.14ID:udBxYDkn
PhpStormでさ、@param に 参照だよ、とか、戻り値用だよ、とかを
書き留めておきたいんだけど、どうすればいい?
0888デフォルトの名無しさん2015/07/02(木) 20:28:22.37ID:u9YxqP+S
doxygenならin out指定もできたんだけどね。
phpdocのときは変数名でわかるようにしたりしたよ。
0889デフォルトの名無しさん2015/07/02(木) 22:59:52.90ID:Ji+WLvKO
インフラエンジニアで上にのせるエンジニアの気持ちを知るためにPHPを覚えたい。
だが作りたいものが無いので取っ掛かりがつかめないんだがどうしたらいいだろう。
0890片山博文MZ ◆T6xkBnTXz7B0 2015/07/02(木) 23:05:58.70ID:4xu5S6Hj
>>889
クラウドとAjaxで掲示板のウェブパーツを作ってくれ。
0891デフォルトの名無しさん2015/07/03(金) 13:38:24.37ID:nz2GsR+p
htmlのヘッダーで定義した変数の存在期間っていつまでなのかな?
例えばページ読み込んで1秒後にjavascriptを使ってphpの変数の値を取りたい時とか、変数の値はまだ保持できてるの?
0892デフォルトの名無しさん2015/07/03(金) 14:16:31.27ID:3rp9Mnby
サーバとクライアント、HTMLとPHPとjavascriptの生存場所等、把握してる?
0893デフォルトの名無しさん2015/07/03(金) 14:24:32.64ID:nz2GsR+p
>>892
サーバとクライアントは把握している
phpはサーバー側で処理されるんだろう
例えばjsで作った変数はクライアント側で保持されるけど、phpの変数保持期限ってのはよくわかってない
生存場所はどっかのメモリに保持される、ぐらいの曖昧なレベルしか想像出来ていない
0894デフォルトの名無しさん2015/07/03(金) 14:49:09.71ID:HsGlHAzd
>>893
PHPの変数なんだからphpが生きてる場所生きてる間だけが有効範囲。
つまりそのままではサーバ上のPHPスクリプト内でしか参照できないし、クライアント(ブラウザ)へ出力し終えたら跡形もなく居なくなる。
PHPが持っていた変数の値をクライアントのJSで参照したいなら、クライアントへ送り返す出力へJSソースコードの形なんかで含めておく。

んまあその調子だとサンプルが無いと理解できなそうだね。
残念ながら今サンプルは提供できないけど。
0895デフォルトの名無しさん2015/07/03(金) 14:58:13.27ID:nz2GsR+p
>>894
ありがとう、理解出来たよ

>クライアント(ブラウザ)へ出力し終えたら跡形もなく居なくなる。
これが知りたかった
0896デフォルトの名無しさん2015/07/03(金) 21:50:02.57ID:7d9NxVxw
>>888
ありがとう
PHPDocって意外とかゆいところに手が届かないよね
0897デフォルトの名無しさん2015/07/04(土) 10:41:36.81ID:tBngPXwX
VS2013でオンラインのツールをキーワード PHP で検索すると
 VS.Php for Visual Studio
 PHP Tools for Visual Studio
 PHP Language Support
の3つが出てくるのですが、どれがお勧めですか?
3つ全部入れるとおかしくなりますか?
使ったことある人、それぞれの特徴など教えてくれよ
0898デフォルトの名無しさん2015/07/04(土) 11:10:15.10ID:cUUS545T
PHP Tools for Visual Studio一択


上は有料 下はハイライト表示できるだけ
0899デフォルトの名無しさん2015/07/04(土) 11:21:57.49ID:tBngPXwX
>>898
レス有り難うございます。
この二番目のやつ、昔は無料板が有ったようですが、今は無さそうなんでが、私の勘違いですか?この会社のHP見てもfree版を見つけられません。
0900デフォルトの名無しさん2015/07/04(土) 12:27:38.01ID:cUUS545T
>>899
払わないと機能は限られるけど無料で使い続けられる
0901デフォルトの名無しさん2015/07/04(土) 13:09:36.94ID:csloKTS+
PhpStormでさ、ライセンスを読んでも良く分からないんだけど
デスクトップPCとノートPCの両方にインストールして使っていいの?
0902デフォルトの名無しさん2015/07/04(土) 14:12:51.05ID:tBngPXwX
>>900
なるほど、そういうことですか。
ありがとうございます。
やはりVSでPHPやる人は、これを購入しているのでしょうか?
0903デフォルトの名無しさん2015/07/04(土) 14:46:48.69ID:ZF0hC5cM
VS自体が少ない気が

PHPならnetbeansやeclipse、はたまた慣れたエディタで良さそうな気が
0904デフォルトの名無しさん2015/07/04(土) 15:49:05.14ID:3cpiwj5J
ライセンスはどちらかにしか適用されない
0905デフォルトの名無しさん2015/07/04(土) 18:03:00.13ID:vQN4X51O
初歩的な質問で申し訳ないです。
VSのphpツールを使えば、phpスクリプトをexeファイルに転換することは出来ますか。
09068972015/07/04(土) 18:26:21.97ID:tBngPXwX
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
が出て解消出来ません。どのあたりをチェックすれば良いでしょうか?
0907デフォルトの名無しさん2015/07/04(土) 18:38:08.01ID:qSwrJLUr
>>906
Class 'PEAR' not found
↑このあたりをチェックしてください

あと、VS2013にphpを入れたって言うのやめよう。
あなたのPCにVS2013とPHPを入れたに過ぎない。
0908デフォルトの名無しさん2015/07/04(土) 19:54:39.60ID:v523Fn+n
今時HTTP_Requestなんて使わない
せめてHTTP_Request2を使ってください
PEARなんて使わんでもcURLでことたりる
クッキーとかリファラーとかいらないサイトならfile_get_contentsだけでいい

と余計なおせっかいをしてみる
09098972015/07/04(土) 20:13:59.14ID:tBngPXwX
今まで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使う方針のほうが良いでしょうか?
0910デフォルトの名無しさん2015/07/04(土) 21:04:16.09ID:v523Fn+n
自分が入れてるのは4年前のxamppだから最近のは知らないけど、
windows版xamppのphpはよく使うpeclとかに必要なdllが揃っていて、
php.iniで有効にするだけですぐ使える状態になるのも多いが、
pearはコアしか入ってないような気がする。
結局必要なものは都度インストールしないといけないと思うよ。
go-pearでパッケージマネージャ入れて、
php pearcmd.php install HTTP_Request2
とかやれば関連パッケージも勝手にやってくれるし。
0911デフォルトの名無しさん2015/07/04(土) 21:15:52.96ID:ku1TVvdF
ライブラリはcomposerで
0912デフォルトの名無しさん2015/07/04(土) 21:20:13.76ID:ZF0hC5cM
なんだかんだwindowsでOSSもの扱うのは割りと面倒くさいな

ビルド環境整えられる人は実質限られてる
09138972015/07/04(土) 21:29:51.38ID:tBngPXwX
ちなみに皆さん、自宅にテスト環境など構築されていますか?
参考までにどういう構成か教えてください。
0914デフォルトの名無しさん2015/07/04(土) 22:59:15.02ID:ifL9jFAi
>>913
仮想でCentOS入れて擬似的な環境を構築してる。
理由はWindowsとLinuxだと挙動が異なる部分があるから。
0915デフォルトの名無しさん2015/07/05(日) 00:22:14.63ID:4t+47Ntn
テスト兼本番環境は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は使わない方針。
0916デフォルトの名無しさん2015/07/05(日) 03:02:00.62ID:+z9nj1c8
>>913
>>914と同じで、仮想マシンにLinux入れてる
0917デフォルトの名無しさん2015/07/05(日) 07:12:11.96ID:3yF620GD
普段javaしているのでPHPのコンパイルエラーないのとか変数型ないのとか怖いんですがどうすればミスを防げるんですか?
とりあえず間違って代入しないように全部の変数名を型名_変数名にしてるんですが一般的ではないですよね?
0918デフォルトの名無しさん2015/07/05(日) 08:24:26.93ID:Uqe8BPso
>>917
なんかいろいろ心配と勘違いしてるな
0919デフォルトの名無しさん2015/07/05(日) 09:11:30.64ID:wLc26Ae+
半端な知識だと不安しか生まないよな
0920デフォルトの名無しさん2015/07/05(日) 12:36:43.76ID:yHORgw3K
>>917
第一に、型の自動変換をよく理解する。
第二に、必要に応じ明示的にキャストする。
第三に、ユニットテストで確認する。
0921デフォルトの名無しさん2015/07/05(日) 12:40:09.72ID:yHORgw3K
ついでに言うと、変数名を型名_変数名としても
自動変換された型の値が入ることもあるのであまり意味がない。
0922デフォルトの名無しさん2015/07/05(日) 15:46:48.25ID:3yF620GD
自動変換は分かります。文字列"1"で計算をする時は関数を使わないといけないのも分かります。
ただミスが心配で・・・
構文エラーを見つけてくれるツールみたいなのありませんか?
0923デフォルトの名無しさん2015/07/05(日) 15:48:10.63ID:+z9nj1c8
>>917
変数名から型が類推できない状況があまりないように思うけど、たまにはあるのかな
0924デフォルトの名無しさん2015/07/05(日) 16:09:08.10ID:VORGGaSF
>>922
う〜(・ω・`)
0925デフォルトの名無しさん2015/07/06(月) 01:20:56.94ID:Kti+i7Kd
>>922
Javaっつったら普通Eclipseあたり使うと思うんだけど
メモ帳とかで開発してたわけ?
0926デフォルトの名無しさん2015/07/06(月) 01:26:59.99ID:1HLVIjn9
>>925
Eclipse使うとPHPの構文エラー見つけてくれるの?
0927デフォルトの名無しさん2015/07/06(月) 01:31:02.02ID:KV2IR53H
phpEditor使っとけ
0928デフォルトの名無しさん2015/07/06(月) 01:39:37.85ID:Kti+i7Kd
>>926
IDE使ったことないのかよ・・・
0929デフォルトの名無しさん2015/07/06(月) 02:10:38.84ID:1HLVIjn9
>>928
あるよ。
PHPの型の不一致も見つけてくれるの?
0930デフォルトの名無しさん2015/07/06(月) 02:22:19.22ID:i5+ZC+xx
>>929
Eclipseではそこまで見てくれない
PhpStormなら見つけてくれる
0931デフォルトの名無しさん2015/07/06(月) 03:42:51.76ID:iuaD/3wt
暗黙の変換をするPHPの型の不一致はパースエラーじゃないしな
===使えっていう話になるし
0932デフォルトの名無しさん2015/07/06(月) 04:42:41.97ID:1HLVIjn9
>>931
じゃあタイプヒンティングなんていらないね。
つーか、なんかかたくなすぎないか?
0933デフォルトの名無しさん2015/07/06(月) 04:50:53.53ID:iuaD/3wt
かたくなって?
タイプヒンティングは暗黙の変換じゃないじゃん
それはもちろんパースエラーになるに決まってる
0934デフォルトの名無しさん2015/07/06(月) 04:52:57.84ID:1HLVIjn9
なぜ暗黙の型変換の話に限定して進めたのかがわからん。
パースエラーって、実行前にEclipse上でエラーを検知してくれるということ?
0935デフォルトの名無しさん2015/07/06(月) 05:10:25.26ID:iuaD/3wt
>>934
Eclipseってひとくくりにしても実行前にエラー検知してくれるかはプラグインによるでしょ
Java入れてないからEclipseなんて使えんし知らんよ
わざわざ型指定してんならさすがに出してくれるだろ
ていうか無料なんだからPDTあたりで試してみろよ
0936デフォルトの名無しさん2015/07/06(月) 05:33:44.03ID:1HLVIjn9
> Java入れてないからEclipseなんて使えんし知らんよ
なのに > それはもちろんパースエラーになるに決まってる
なんて書いたの?

> わざわざ型指定してんならさすがに出してくれるだろ
ふぅん
0937デフォルトの名無しさん2015/07/06(月) 05:38:19.34ID:iuaD/3wt
>>936
俺はPHPインタプリタの話をしてたんだがな
Eclipseの話なんてした覚えはねーよ
0938デフォルトの名無しさん2015/07/06(月) 06:05:01.37ID:1HLVIjn9
>>937
じゃあ実行時エラーの話に変わってるってことか。
元質問の意図を読めてないね。
0939デフォルトの名無しさん2015/07/06(月) 06:08:21.21ID:iuaD/3wt
PHPにおいて型の不一致が構文エラーって言ってるから
それは違うだろうと言っただけなんだがな
0940デフォルトの名無しさん2015/07/06(月) 06:13:19.34ID:1HLVIjn9
構文エラーじゃないだろっていっても、
> それはもちろんパースエラーになるに決まってる
んでしょ?
0941デフォルトの名無しさん2015/07/06(月) 06:55:26.33ID:iuaD/3wt
型指定したい人がいるから妥協してそういう書き方もできるようにしたってだけで
型の不一致って曖昧な表現で型指定ありきで議論するのがそもそもナンセンスだからその辺理解してくれ
0942デフォルトの名無しさん2015/07/06(月) 07:21:47.69ID:ltVzluvD
function sum(int $a, int $b) : intとか、
function concat(string $a, string $b) : stringとか、引数や返り値にはできても、
int $a = 1;
string $b = "a";
とか、変数には出来ないのに、タイプヒンティングとか関係あるの?
$a+$bや$a.$bでエラーが出るようにしてくれって言ってるように思えるんだけど。
0943デフォルトの名無しさん2015/07/06(月) 10:52:48.09ID:jnmQ4lhD
>>940
PHPにおいてそれは構文エラーでもパースエラーでもないよ。
だからIDEで検出できるのは無いか、もしくは少ないだろうね。
0944デフォルトの名無しさん2015/07/06(月) 12:21:26.51ID:da/MN1a6
多分ね、案ずるより産むが易しだと思うの。
そんなチェック無くても困ることなんてほとんど無いよ。
ちゃんとテストすれば何の問題も無い。
0945デフォルトの名無しさん2015/07/06(月) 14:03:52.24ID:oXtXAYjB
PhpStorm最近使い始めたけどチェック弱くない?
バルーン出たと思ったら全然関係なかったり
>>930のテストコードがどういうのかはわからないけど
"abc"===trueやarray指定してるのにただの変数渡しても特に何も言わない
設定が悪いのかなんか入れないといけないのか見るところ間違ってるのかわからないけども
前回保存したコードいじってたらインデントがおかしくなったり
今のところ評価はNetbeansやEclipseより駄目な感じ
0946デフォルトの名無しさん2015/07/06(月) 14:18:08.71ID:jgWjPX/O
>>945
Netbeans ってPhpStormの無料版じゃないの?
0947デフォルトの名無しさん2015/07/06(月) 14:25:36.29ID:oXtXAYjB
>>946
それは初耳
フォークかなんか?
とりあえず開発してるグループは違うから別物だと思うけど
PhpStormに無料版があるならPhpStorm Free Editionとかになりそう
0948デフォルトの名無しさん2015/07/06(月) 14:27:24.46ID:oXtXAYjB
あ、もしかして
Photoshopに対するGimpみたいなこと言いたかったのかな?
VSも含めてIDEは似てる部分いっぱいあるからね
0949デフォルトの名無しさん2015/07/06(月) 16:16:12.23ID:jgWjPX/O
>>947
完全な勘違いだった。 同じ会社が作ってると思ってたわ。
ねこび〜んかわいい。
0950デフォルトの名無しさん2015/07/06(月) 16:17:17.27ID:jgWjPX/O
ねこび〜んだと 「引数の数が合ってない」 とかも検知してくれるのかな
0951デフォルトの名無しさん2015/07/06(月) 17:07:27.00ID:EWqBVBeG
>>925
Eclipse使ってたけど構文エラー警告してくれない。
0952デフォルトの名無しさん2015/07/06(月) 18:45:06.80ID:swqGSHIc
>>951
vsでphpやる奴はいないのか?
猫ビーンのほうがいいのか?
0953デフォルトの名無しさん2015/07/06(月) 20:27:43.19ID:TRPzwZ1E
言語に応じて切り分けるのは当然だろう
VSでPHPやる事自体そもそもナンセンス
VSでJava書いたりCOBOL書いたりしてるようなもの
0954デフォルトの名無しさん2015/07/06(月) 20:41:52.88ID:swqGSHIc
>>953
vsでcobolやれるのかどうかは知らんが、vsでcobolやってる奴居ればそりゃ変だと俺も思う。
でもvsでphpやるのって、それ位変なのか?ここにはvsでphpやってる人、一人も居ないのか??教えてケレ!
0955デフォルトの名無しさん2015/07/06(月) 20:49:24.37ID:+DHCfnaN
情報が少ないからトラブったら大変だなーと思ってEclipseでやってるわ
元々Win畑で大半は.netだけどたまーにECCUBEカスタマイズとかの案件やるくらいだから
VS以上のIDEなんて存在しないんだけど情報少ないのはハマるとキツイ
0956デフォルトの名無しさん2015/07/06(月) 21:02:13.84ID:swqGSHIc
>>955
なるほど、そう言う事か。
phpと.net両方やっている人の意見は説得力有るな。参考になったよ、サンキュウ!
0957デフォルトの名無しさん2015/07/06(月) 21:28:30.57ID:SWoG0MmF
VSは無料化したからこれからの主流になる
0958デフォルトの名無しさん2015/07/06(月) 21:37:40.57ID:3Nwo+Cbx
売り物作るのに無償版使ったらアカンよ?
0959デフォルトの名無しさん2015/07/06(月) 21:43:05.84ID:SWoG0MmF
小規模(10人?)なら大丈夫なはずだが
0960デフォルトの名無しさん2015/07/06(月) 21:44:39.72ID:SWoG0MmF
あっ売り物はダメなのね
0961デフォルトの名無しさん2015/07/06(月) 23:19:17.73ID:jnmQ4lhD
Eclipse重くない?
昔使ってたけど即捨てた。で、色々試した結果結局SublimeTextに落ち着いた。
最近Atomが出たけどどうなんだろ?
0962デフォルトの名無しさん2015/07/07(火) 01:01:39.96ID:jrHiHLu0
>>953
当然じゃない
慣れたIDEに統一したほうがいいしいくつもIDE入れるのは愚策
使えなかったら仕方なく他のを入れるぐらい
0963デフォルトの名無しさん2015/07/07(火) 08:07:08.09ID:GGpy3zJy
>>962
いくら慣れ親しんでてもVSでPHPやるみたいに生産性落ちたら意味ないだろ
馬鹿か
0964デフォルトの名無しさん2015/07/07(火) 08:17:23.35ID:oR9xV2kd
>>963
VSでPHPやるとそんなに生産性悪いのか?俺は知らんが、も少し具体例を教えてくれよ。
0965デフォルトの名無しさん2015/07/07(火) 08:38:07.60ID:0GZbV0wX
phpでIDE使ったこと無くてもっぱらテキストエディタでコーディングしてるけど、IDE使うとどんないい点があるの?
トレースしたりブレーク張ったりできれば便利だなと思うけど、そういうことはできるの?
0966デフォルトの名無しさん2015/07/07(火) 08:41:54.00ID:oR9xV2kd
>トレースしたりブレーク張ったりできれば便利だなと思うけど、そういうことはできるの?
IDEって言えば最低限それ位の機能は必要だと思う。それが無いとエディタと変わらんし。
0967デフォルトの名無しさん2015/07/07(火) 08:42:28.83ID:9H83+G3x
>>954
VSでPHP、JS、C#書いてるけど、各言語オンリーだったらJS以外に使ってみたいのは有る。
ただ、個人でやるならまだしも、社外の応援頼んだり後輩教育の時にVSだと話が通りやすい。
0968デフォルトの名無しさん2015/07/07(火) 08:46:18.06ID:qmpX8CEE
IDEにだって学習コストかかるし全部切り分けてるやつは馬鹿と言わざるをえない
いくら言語に特化した優秀なIDEだって0からだとしばらくは生産性落ちるだろうよ
やり玉にあがってるVSでPHPだってそんな生産性落ちるってほどでもない

自分ならC#はVSだがその他のJS PHP Py JavaはEclipse使うわ
0969デフォルトの名無しさん2015/07/07(火) 08:48:10.24ID:9H83+G3x
>>965
今時のIDEはクラスライブラリの取込みが簡単になってるから、既存ライブラリで良い時に使ってる。
0970デフォルトの名無しさん2015/07/07(火) 08:55:44.25ID:0GZbV0wX
>>966,969
なるほど、やっぱりそれなりのことはできるのね。
でもそういうのって、デバッグ環境をターゲット環境にどう合わせるかが面倒そうだけど、
例えば httpd下で動くphpにも対応できるのかな。
ブラウザから何かをPOSTして、サーバサイドのphpにブレーク張ってステップ実行する、みたいな。
もしかするとIDEにhttpdまで入っちゃってたりするのかな。
それはそれでhttpdの設定の再現や互換性が気になるところ。

つべこべ言わずこれ触ってみろやってのはある?
0971デフォルトの名無しさん2015/07/07(火) 09:51:11.21ID:41wd3X8y
>>970
ちょっとは触っとけ というのは確かにある。
おれはそれでsublimeとbracketsを切った。
0972デフォルトの名無しさん2015/07/07(火) 13:39:05.05ID:ws3V8sWI
>>970
IDEがどうこうの前に、xdebug使ってないってことか
0973ドラゴニア善財2015/07/07(火) 18:20:16.54ID:rvYvDGj8
29歳引きこもりで家で暇つぶしにJAVAでゴミみたいなショピングサイト作ってたらなんかいける気がしてきて
勢いで就活したらPHP使うWEB系のブラックっぽい企業に内定もらった。

phpも実際の現場じゃオブジェクト指向にもとづいてみんなで開発してんの?一人でやってたから
まったくイメージがわかない。まずは営業成績管理するシステム開発する部署でスタートするんだけども。
0974デフォルトの名無しさん2015/07/07(火) 18:33:43.27ID:ws3V8sWI
>>973
とりあえず現場にあわせる。
ちゃんとしてるならそれでいいし、ひどいなら少しずつ改善提案。
それだけのことですよ。
0975ドラゴニア善財2015/07/07(火) 21:08:04.43ID:rvYvDGj8
>>974
ありがとう
一応オブジェクト指向で開発していくのが望ましいいんだね。
0976デフォルトの名無しさん2015/07/07(火) 22:11:59.00ID:oR9xV2kd
>>973
もし良ければそのショッピングサイト
どこ?教えてくれよ
0977デフォルトの名無しさん2015/07/07(火) 22:41:27.51ID:ws3V8sWI
>>975
今どきデザインパターン知らない人もいないだろうし、意識レベルを合わせやすいからね。
とにかく、独学でやってた人がチームに入る場合は、まず合わせること。
気に食わなかろうがなんだろうが、まずはそうすることが大事だよ。
0978デフォルトの名無しさん2015/07/08(水) 04:17:30.25ID:PAkk6Hqa
教えてケレ。
VSでclient sideのJavaScriptしか書いた事無いんだが、PHPでserver sideのデバッグする時ってclient side JSのデバッグも一緒に出来るの?
0979デフォルトの名無しさん2015/07/08(水) 11:56:22.30ID:ribTz8l0
教えてケレ。
PhpStormでクラス定数とかの上にマウスカーソルを乗せたときに
定義値をポップアップ表示してほしいんだけど、どうすれば出来るの?
0980デフォルトの名無しさん2015/07/08(水) 19:31:14.68ID:AmEp81Mb
php初心者なのですが、参考書には
DBのパスワードがかかれたソースファイルを
ルートより上位のディレクトリに置くように書かれていたのですが、これは、レンタルサーバで実現できるのでしょうか?
ロリポップではできませんでした。
レンタルサーバで、パスワードがかかれたソースファイルを隠すにはどのような手段が一般的なのでしょうか?
0981デフォルトの名無しさん2015/07/08(水) 19:39:13.06ID:Kxz7evxA
>>980
非公開ディレクトリに置けばOK
0982デフォルトの名無しさん2015/07/08(水) 22:19:04.00ID:9IdXyS8m
>>980
ロリポは、たしか公開領域しか使えないんだよね。
その場合、.htaccessでアクセス制限かけたディレクトリを使う方法がある。

根本的な解決として、公開領域の上に非公開領域がある
別のサーバーを使う方がおすすめ。
0983デフォルトの名無しさん2015/07/08(水) 23:54:16.12ID:zNFh4RYA
ホームディレクトリ以下全部公開ファイルなの?
ドットファイルは上位でアクセス制限されてるんだろうけど、不安で仕方ないね。
0984デフォルトの名無しさん2015/07/09(木) 06:24:58.47ID:CmA0FZny
PHP界では相変わらずDBはほぼMySQL一択状況なの?
0985デフォルトの名無しさん2015/07/09(木) 10:41:14.35ID:a973sKT/
>>984
PHPというか、rubyでもJavaでもWEB制作界ではMySQL一択だね
あとスケールしないことがわかってる小規模なところはSQLiteか
未だにPostgreSQL使ってるところはもうほぼ無いんじゃないかな
0986デフォルトの名無しさん2015/07/09(木) 11:23:32.23ID:SLWTmnwe
>>985
> 未だに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
0987デフォルトの名無しさん2015/07/09(木) 11:26:19.72ID:9ZnfqP+N
>>985
ひろゆき「それはあなたの感想ですよね?」
0988デフォルトの名無しさん2015/07/09(木) 11:34:11.22ID:OqiP450p
 
(MariaDBってまだまだなの?)
0989デフォルトの名無しさん2015/07/09(木) 11:56:15.57ID:OtgBnuSy
MsSQL Server (´;ω;`)
0990デフォルトの名無しさん2015/07/09(木) 12:47:10.03ID:SLWTmnwe
>>989
>>986の調査は、対スタートアップのものだからね。
エンタープライズ向けの調査したら、MSSQLもかなり使われてる気がする。
0991デフォルトの名無しさん2015/07/09(木) 13:10:21.36ID:OtgBnuSy
>>990
無償版のExpress使ってる
0992デフォルトの名無しさん2015/07/09(木) 13:51:02.44ID:mMbg3FA2
>>988
後発の新規DBMSと勘違いしてんのか、それともMySQLがまだまだだという前提に立ってるのか。
0993デフォルトの名無しさん2015/07/09(木) 14:37:57.66ID:g/ZifueO
MariaDBってMySQLと同義じゃないの
0994デフォルトの名無しさん2015/07/09(木) 14:56:15.49ID:FXD7F5LP
OracleにMySQLが買収されて、反発したコミュニティがForkしたのがMariaDB
だから中身は殆ど一緒
GoogleもMySQLは切り捨ててMariaDBに移行してる
0995デフォルトの名無しさん2015/07/09(木) 16:04:30.10ID:zI7Krizk
実装レベルで微妙な違いあるからね。
今後のサポート面ではmariaの方が良いかもしれない。
oracleはMySQLを葬り去ろうとしている気がする。
0996デフォルトの名無しさん2015/07/09(木) 22:13:37.66ID:a973sKT/
MariaDBでもMySQLコマンドのままだしあんまり困らないしな
0997デフォルトの名無しさん2015/07/09(木) 22:47:16.65ID:7gcchy0Q
次スレ
http://peace.2ch.net/test/read.cgi/tech/1436449286/
レス数が950を超えています。1000を超えると書き込みができなくなります。