トップページphp
1001コメント321KB

【PHP】下らねぇ質問はID出して書き込みやがれ 113

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2011/11/29(火) 19:55:27.17ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 112
http://hibari.2ch.net/test/read.cgi/php/1320005469/

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0723nobodyさん2011/12/25(日) 06:55:07.50ID:???
>>714
何を言わんとしているのかおれにもわからんけどserializeはなんらかの事情で文字列としてデータを扱いたい時に使うものだろ
例えば、ウェブサイトのトップページは1日1回の更新だからアクセスの都度DBに問い合わせるのは効率が悪い
なのでDBから取得したデータは暫くファイルにキャッシュしておこうとか、そういう場面
結果として相当効率が良い
つまり使い方次第
0724nobodyさん2011/12/25(日) 07:45:11.29ID:???
現在のWebアプリケーションシステムではデータ通信にはXMLベースのデータを採用することが多い。
時代の趨勢としてXMLをデータ通信の基本フォーマットとして採用する流れにある。
しかしながら、バイナリフォーマットにもまた利点がある。
たとえばXMLベースのデータとバイナリフォーマットベースのデータを比較した場合、数値情報の表現に差が表れる。
XMLベースフォーマットでは数値を文字列として表現するが、バイナリフォーマットであればビットサイズのまま表現できる。
XMLベースではデータのみならずその構造も表現するため、データ以上にサイズが大きくなる傾向にある。
つまり、総合的に見てバイナリフォーマットベースの方が通信に必要になるデータ量を抑えることができる可能性がある。
すべての問題を解決できるわけではないが、JSONをベースにしてさらにバイナリデータを組み込み、
データ量の削除を狙うという発想のもと取り組まれたプロジェクトがBinary JSON、すなわち"BISON"だ。
JavaScriptやPHPを使って同コンセプトが実装できるかどうかというチャレンジという意味合いも持っている。

【レポート】バイナリフォーマット"BISON" - 概念実証が発表に | エンタープライズ | マイナビニュース
http://news.mynavi.jp/articles/2007/02/20/bison/index.html
0725nobodyさん2011/12/25(日) 08:15:25.23ID:???
>>722
いま思いつくかぎりの書き方

echo "hoge\n"; // 普通

$br = "\n";
echo 'hoge' . $br; // 変数に入れちゃう

echo "hoge${br}"; // 変数に入れる意味ないな

echo 'hoge' . PHP_EOL; // こんなのもある

echo 'hoge
'; // ちゃんと改行されるよ
0726nobodyさん2011/12/25(日) 11:24:14.64ID:???
>>714
効率の問題じゃない受け渡しの容易さの問題
0727nobodyさん2011/12/25(日) 12:01:38.32ID:c11fbtEa
prepareを使ってsqlを実行する場合は
sqlに渡す文字列が$_GETと$_POSTの場合
サニタイズする必要はありますか?
0728nobodyさん2011/12/25(日) 12:15:43.15ID:MyTDaANd

有ります
0729nobodyさん2011/12/25(日) 12:18:35.71ID:???
WebアプリってぶっさいくなUIしか使えないんでしょうか?
初心者ですがよくわからなくて。
0730nobodyさん2011/12/25(日) 12:23:08.31ID:c11fbtEa
prepareに文字列を渡せばprepareで文字列を処理してくれると思うんですが
何故サニタイズが必要なんですか?
0731nobodyさん2011/12/25(日) 12:33:48.82ID:???
GET POSTはユーザ側ブラウザで実行されるから
0732nobodyさん2011/12/25(日) 12:37:21.89ID:c11fbtEa
すいませんやっぱり質問取り消します
0733nobodyさん2011/12/25(日) 13:32:14.96ID:???
サニタイズとか久しぶりに聞いたな
0734nobodyさん2011/12/25(日) 13:39:51.46ID:???
>>731
日本語で
0735nobodyさん2011/12/25(日) 14:35:13.02ID:???
エスケープって意味ならプレースホルダでおk
サニタイズって言うとアプリにもよるだろうし範囲が明確じゃないからなんとも言えない
0736nobodyさん2011/12/25(日) 14:35:48.63ID:KXLlum02
クリスマスに一緒に過ごす女がいないのは
オレがphpを極めていないからなんですか?
0737nobodyさん2011/12/25(日) 15:59:26.20ID:z/wLYyV7
いいえ、イケメンでなくなおかつお金がないからです。
さあ、これをphpで表してみろ
0738nobodyさん2011/12/25(日) 16:09:07.06ID:KXLlum02
<?php
print "いいえ、イケメンでなくなおかつお金がないからです。";
?>
0739nobodyさん2011/12/25(日) 16:30:38.57ID:???
>>721
ほんとに2度発生する?
0740nobodyさん2011/12/25(日) 16:32:10.69ID:???
>>721
serializeは二度発生せんのか?
0741nobodyさん2011/12/25(日) 18:49:44.85ID:???
バージョンよっては勝手に参照に変更してたりするし。
しかし明示的に参照の引数にしたって良いだろ。
serializeの定義は値渡しだろうけど、これも配列やクラスなどくると参照かもしれない。
0742nobodyさん2011/12/25(日) 19:07:43.02ID:???
>>741
日本語でおk
0743nobodyさん2011/12/25(日) 20:57:29.11ID:???
>>741
うーん?
$foo = "aaa";
$bar = $foo;
このとき、$barと$fooが同じ場所を参照しないバージョンの例をひとつ挙げてもらえるか?
0744nobodyさん2011/12/25(日) 21:40:30.72ID:???
>>741じゃないけど、それ完全にコピーじゃん
参照するわけないし
0745nobodyさん2011/12/25(日) 22:14:21.63ID:S0RLrYDm
質問です
親クラスを定義するとき、abstractで定義された抽象メソッドにfinalも定義してしまうと
子クラスで上書きすることもできず、parentで参照することもできず、
詰んでしまうという理解でいいのでしょうか?
0746nobodyさん2011/12/25(日) 22:37:46.10ID:???
>>745
なぜ聞く前に試さない

$ php -r "abstract class A { final abstract public function x(); }"
PHP Fatal error: Cannot use the final modifier on an abstract class member in Command line code on line 1
0747nobodyさん2011/12/25(日) 22:43:44.11ID:S0RLrYDm
>>745
すみません、自分では試してfinalとabstractを
いっしょに定義することは詰んでしまうので無意味なことのように思ったのですが、
もしかすると自分には分からなかっただけで
何か使い道があるのかと思って質問させていただきました

0748nobodyさん2011/12/25(日) 22:44:14.67ID:S0RLrYDm
>>746さん宛てでした
0749nobodyさん2011/12/25(日) 23:12:09.53ID:???
>>747
矛盾が起きるからエラーが出る訳で、深く考えすぎだ

abstract=お前実装しろよ
final=お前いじるなよ
0750nobodyさん2011/12/26(月) 00:22:31.13ID:???
parentで参照できないのはprivate
0751nobodyさん2011/12/26(月) 00:23:55.30ID:D998BOvR
大規模システムに向くFWは何ですか?
0752nobodyさん2011/12/26(月) 00:24:03.06ID:???
>>751
Zend
0753nobodyさん2011/12/26(月) 00:24:24.71ID:quzjxib5
配列$arrに値があるか調べる方法は何ですか?
0754nobodyさん2011/12/26(月) 00:24:36.82ID:???
>>753
empty($arr)
0755nobodyさん2011/12/26(月) 01:06:15.77ID:quzjxib5
>>754
ありがとうございました。
0756nobodyさん2011/12/26(月) 01:30:08.21ID:???
いいってことよ
0757nobodyさん2011/12/26(月) 01:49:34.37ID:???
if使うんだろから
if($arr)
でもいいんじゃね
0758nobodyさん2011/12/26(月) 01:54:00.55ID:quzjxib5
Javascript+phpのAjaxで作る画像うpローターが、
ver1.00が2011年11月25日で、ver1.06が12月26日で
完成に近づいてます。製作者だけが使える画像全消去のボタンが
バルスです。
0759nobodyさん2011/12/26(月) 05:36:27.52ID:???
NGワードのせいで>>758が読めません
0760nobodyさん2011/12/26(月) 05:49:12.92ID:???
>>759みたいなNG報告って内容が気になってしょうがないのかね。
0761nobodyさん2011/12/26(月) 06:22:26.68ID:???
>>749
ありがとごうございます
0762nobodyさん2011/12/26(月) 08:54:35.32ID:D998BOvR
>>752
Yii と Zend どっちがベター?
0763nobodyさん2011/12/26(月) 11:18:45.58ID:???
フレームワークとか使うなよ。
ソフトウェアのやつは速度低下の原因。
標準のバイナリ関数を直に呼ぶのが最速。
PECLとかはは移植性に乏しいがフレームワークのソフト使うましだな。
0764nobodyさん2011/12/26(月) 11:22:23.15ID:???
圧縮されていてこんなにサイズがある。重くなるし全機能使うこともないだろう。はじめからつかわなくていい。

Yii PHP Framework
yii-1.1.8.r3324.tar.gz 2.6 MB
http://sourceforge.jp/projects/sfnet_yii/
0765nobodyさん2011/12/26(月) 11:31:48.81ID:???
時間短縮の初心者むけだ。資源の少ないときにC++よりアセンブラやC言語を使うのと同じ。根本命令を直に使うのが最速。


ソフトウェアフレームワーク - Wikipedia

システム構築に必須な標準的かつ低レベルの詳細を設計者やプログラマが検討する時間を省き、
要求仕様の実現に多くの時間を割けるようにし、ソフトウェア開発を容易にすることを目指している。

批判としては、フレームワークはコードを肥大化させるという主張もある。
フレームワークの使い方を学ぶ時間がかかるという主張もある。
ただし一度フレームワークを学べば、同じフレームワークであれば、次のプロジェクトからはより素早く完璧な応用が可能となる。

フレームワークは、特定のフレームワーク・ベンダーや、特定のバージョンに依存(ロックイン)されるリスクがあるとの主張もある。
いずれにしても、適切なフレームワークの選定は特に重要である。
開発途中で、選択したフレームワークが開発要件を満たさないと判明した場合や、そのフレームワークの開発・提供が打ち切られた場合などは、
開発途中で別のフレームワークに移行して(場合によっては基本設計から)再開発する必要が発生するためである。
0766nobodyさん2011/12/26(月) 12:09:34.32ID:e0HWMKFl
データ1,データ2,データ3
とカンマをデリミタとして
分割してるんですが、データに
1,000円等、カンマ入り文字がはいっていると
挙動がおかしくなります。
データのカンマをエスケープする方法って
何かないでしょうか
0767nobodyさん2011/12/26(月) 12:23:54.49ID:???
1,000は格納時1000にする。
0768nobodyさん2011/12/26(月) 12:28:04.00ID:e0HWMKFl
>>767
回答ありがとうございます。

カンマ入りのデータが必ずしも金額というわけではないので
"9,11のテロ" とかでも誤動作しちゃうんです。
0769nobodyさん2011/12/26(月) 12:29:36.08ID:???
>>764
それら全部を読み込むと思ってるわけではないんでしょ
0770nobodyさん2011/12/26(月) 12:30:56.70ID:???
>>768
判断できる何かがあれば判断を行い、なければどうしようもない
0771nobodyさん2011/12/26(月) 12:37:31.32ID:???
3桁区切りのルールに沿っていて、かつ前か後ろに単位記号があるやつ、とかね
0772nobodyさん2011/12/26(月) 12:40:51.95ID:???
ああ、言いたいことがわかった。
ちゃんとCSVを読めばその誤動作は起きないし、カンマをエスケープする必要はない
0773nobodyさん2011/12/26(月) 12:41:38.14ID:???
今それができないなら、ちゃんとしたCSVを作成するようにするか、TSVに逃げるかがいいかと。
0774nobodyさん2011/12/26(月) 13:11:49.59ID:???
タブ
0775nobodyさん2011/12/26(月) 13:13:07.81ID:???
0x00〜0x20くらいで出現しない文字を区切りに使えよ。
0776nobodyさん2011/12/26(月) 13:17:27.56ID:???
似たような問題で、SQLiteは直にバイナリの値を格納できないの?
エスケープ、エンコードの負荷が掛かるので直に入れたい。
連想記憶の変わりにデータベースを使おうとしたんだけど。メモリ食うケースで。
0777nobodyさん2011/12/26(月) 13:22:25.71ID:???
>>776
blobがあるけどスレチ。
0778nobodyさん2011/12/26(月) 22:15:17.16ID:D998BOvR
>>764
2.6とか軽いじゃん

.NETなんて何GBあると思ってんだ?

Yiiはイィー
0779nobodyさん2011/12/26(月) 22:27:50.16ID:???
>>762
Zend
0780nobodyさん2011/12/26(月) 22:28:37.57ID:???
>>766
fputcsv使えば解決
0781nobodyさん2011/12/27(火) 01:57:15.15ID:???
開発を複数人でやるならフレームワークは使うべき
他人が書いた手続き型のソースなんてデバッグに時間がかかってしょうがない
誰が書いてもある程度一定の形で書くことができることにメリットがある
これはセキュリティの面でも重要

開発が一人なら軽い自分用フレームワークを自分で書くといい
実際ZendやCakeに用意された豊富な機能は使い切れないから必要最低限を自分で実装するのがおすすめ
デカイオブジェクトをゴロゴロ転がして無駄にメモリを食うことも無くなる
0782nobodyさん2011/12/27(火) 02:51:06.14ID:???
PHP自体がすでに豊富にそろってるフレームワークだろ。
制作に何日もかかる部分は、完成品のソースを使うのがいいけど、
フレームワークを使うのが前提なのは無駄。
0783nobodyさん2011/12/27(火) 03:12:05.47ID:???
2011年の最高のPHPフレームワーク5選 ≪ 山本隆の開発日誌
http://www.gesource.jp/weblog/?p=4872
0784nobodyさん2011/12/27(火) 06:31:24.45ID:???
山本さん宣伝乙
0785nobodyさん2011/12/27(火) 10:09:35.18ID:???
フレームワークは関数の使い方のサンプルして使えるかもな。
0786nobodyさん2011/12/27(火) 10:18:21.78ID:???
>サンプルして使えるかもな。

0787nobodyさん2011/12/27(火) 10:36:40.74ID:???
フレームワークのコードを参考にしてプログラムする。
0788nobodyさん2011/12/27(火) 12:25:28.24ID:AB1LeUCm
phpマニュアルを読むと
The foreach construct〜って載ってましたforeachってコンストラクタ
なんですか?関数と思ってました。
0789nobodyさん2011/12/27(火) 12:27:13.03ID:???
url張れよバカ
0790nobodyさん2011/12/27(火) 12:32:13.90ID:AB1LeUCm
http://jp2.php.net/manual/en/control-structures.foreach.php
0791nobodyさん2011/12/27(火) 12:36:12.04ID:???
タダの英文じゃねーか。  foreach構文
0792nobodyさん2011/12/27(火) 12:38:38.23ID:???
>>788
関数じゃないよ。無論コンストラクタでもないけど。
0793nobodyさん2011/12/27(火) 12:43:06.90ID:???
ってかおまいら平日の昼間に2chかよ、オレもだけどwww
0794nobodyさん2011/12/27(火) 12:43:41.80ID:???
無職だから
0795nobodyさん2011/12/27(火) 12:47:02.75ID:???
>>788
建築物だよ
0796nobodyさん2011/12/27(火) 12:48:20.14ID:???
神聖ニートは冬厨を名のるなんてアウトオブ眼中なんだなw
0797nobodyさん2011/12/27(火) 13:01:15.72ID:AB1LeUCm
http://ejje.weblio.jp/content/construct
では、構造体って出てきました。foreachって構造体なんですか?
0798nobodyさん2011/12/27(火) 13:32:12.87ID:???
NGっと
0799nobodyさん2011/12/27(火) 13:32:44.16ID:???
英語が出来ないなら機械翻訳に頼ってもいいのよ

http://translate.google.co.jp/#en|ja|The%20foreach%20construct%20provides%20an%20easy%20way%20to%20iterate%20over%20arrays.
0800nobodyさん2011/12/27(火) 18:05:17.01ID:taC6CWfJ
PHPがfastcgiで動いているかモジュールで動いているかで処理を振り分けたいのですが取得する方法ありませんか?
0801nobodyさん2011/12/27(火) 18:14:08.20ID:???
手動で判別しろ。どっかに書いてあったり設定できるだろ。
0802nobodyさん2011/12/27(火) 18:24:18.63ID:taC6CWfJ
手動でやるならここで質問しねえよw
0803nobodyさん2011/12/27(火) 18:25:26.67ID:???
Server API
0804nobodyさん2011/12/27(火) 18:27:00.85ID:???
php_sapi_name()
0805nobodyさん2011/12/27(火) 19:04:18.56ID:???
>>793
職場から
0806nobodyさん2011/12/27(火) 19:30:00.66ID:Yl0eO9gq
接続元のPCのコンピュータ名を取得するのは、
どうすればいいのでしょう
0807nobodyさん2011/12/27(火) 19:39:34.38ID:???
不特定な接続元から取りたいなら教えません
0808nobodyさん2011/12/27(火) 20:41:39.56ID:???
連想配列を出力しようとして
<?php echo $foo["bar"]; ?>
としたらCannot use object of type stdClass as array in ** というエラーが出て、
ググったとおり
<?php echo $foo->bar; ?>
とすると上手く表示されます。
この2つに違いはないと思ってたのですが、内部で何か処理が異なるのでしょうか?
08098082011/12/27(火) 20:42:10.70ID:V+bLwFWD
すみません、下げてしまいました。
0810nobodyさん2011/12/27(火) 20:47:34.11ID:???
>>808
上は配列
下はオブジェクト
0811nobodyさん2011/12/27(火) 21:01:19.72ID:V+bLwFWD
>>810
出力しようとする元データがオブジェクトとして格納されているということですね。
もうちょっと勉強してみます。

<?php
while(list($key,$value) = each($foo)) {
echo $key."->".$value."<br>\n";
}
?>

で問題無く全部出力されていたので、
配列として出せば良いものだと思ってました。
0812nobodyさん2011/12/27(火) 21:20:55.77ID:???
>>811
http://www.php.net/manual/ja/language.oop5.iterations.php
http://www.php.net/manual/ja/function.each.php
0813nobodyさん2011/12/27(火) 21:29:07.33ID:???
>>811
もう少し平たく言えば、$fooは連想配列じゃないってこと
0814nobodyさん2011/12/27(火) 22:24:22.53ID:???
さらに言うと配列とオブジェクトは別物
0815nobodyさん2011/12/27(火) 22:58:47.47ID:???
オブジェクトを配列にキャストすれば$foo["bar"]でアクセスできるけど、罠がある
0816nobodyさん2011/12/27(火) 23:16:13.23ID:???
>>783
symfonyが完全に消えてる
0817nobodyさん2011/12/28(水) 01:42:20.55ID:???
さて年末だし今年こそはフレームワーク学習するか
Cakeはどん詰まり感があるし
LithiumはMongoDBが謎だし
やっぱSymfonyしかないか
0818nobodyさん2011/12/28(水) 03:04:21.64ID:SRE3gfoW
アクセスカウンターの質問。
アクセスする度にカウントするのが一番簡単につくれますが、
実用的なカウンターってIPで一日1回カウントとかの仕様なのでしょうか?
0819nobodyさん2011/12/28(水) 03:08:09.30ID:???
>>818
アクセスカウンターの回答。
それは使う人の要件次第。
0820nobodyさん2011/12/28(水) 03:23:38.00ID:???
アクセスカウンターw
すっげ懐かしい響きw
0821nobodyさん2011/12/28(水) 03:30:27.42ID:???
>>818
今はそんなことせずに、せいぜい連続アクセスをはじくぐらいにして、ページビューという名前にするかも。
まじめに分析したいならログを保持しておいて、そこから改めて。
0822nobodyさん2011/12/28(水) 04:00:08.74ID:???
リロードするたびに100ぐらい増えるようにしておくと流行ってるサイトのように見えて実用的
■ このスレッドは過去ログ倉庫に格納されています