トップページ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等)・フレームワークは各該当スレへ
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ぐらい増えるようにしておくと流行ってるサイトのように見えて実用的
0823nobodyさん2011/12/28(水) 04:45:49.14ID:???
おまえ頭いいな
0824nobodyさん2011/12/28(水) 05:30:17.54ID:???
100で固定するとすぐバレるから、
アクセスする都度、ランダムに1〜50加算するカウンタを付けたことがあるけど
やっぱりすぐバレたw
0825nobodyさん2011/12/28(水) 05:40:56.52ID:???
バレないように1ずつ増えるカウンタ作ればいいんじゃね?
0826nobodyさん2011/12/28(水) 07:17:27.62ID:???
おまえ頭いいな
0827nobodyさん2011/12/28(水) 09:02:21.05ID:SRE3gfoW
なるほど、ならクッキーを使って、連続アクセスを防いで、
「ページビュー数」って名前にしてしまえばいいのですね。
これで、見かけ上流行ってるwebサイトに見えるってことですか。
クッキーを有効にしてないと連続アクセスは防げませんが。
0828nobodyさん2011/12/28(水) 09:05:23.88ID:SRE3gfoW
あ、クッキーを有効の場合にのみカウントすれば解決ですね。
これでページビュー数のphpプログラムが完成。
0829nobodyさん2011/12/28(水) 09:08:16.81ID:???
一回しか訪問しない人はカウントしないということですね。
0830nobodyさん2011/12/28(水) 09:18:45.91ID:???
で、PHP関係なくね
0831nobodyさん2011/12/28(水) 09:41:40.24ID:???
それって、ページビュー数じゃなくユニークユーザー数じゃね?
0832nobodyさん2011/12/28(水) 10:23:14.32ID:xSVq2vEm
知恵袋の常連PHP回答者って何で揃いも揃って上から目線な奴ばっかりなんですか?
0833nobodyさん2011/12/28(水) 10:48:53.35ID:???
>>832
君が下にいるからだよ
0834nobodyさん2011/12/28(水) 10:58:19.20ID:???
スレ違いの質問に答えるなよ。
0835nobodyさん2011/12/28(水) 10:58:37.15ID:cHFSG35P
質問させてください。PHP5.3を使っています

exec();を使ってhoge.phpを実行していて、hoge.phpの中で
require "objClass.class.php";
$obj = new objClass();
$obj->doIt();
という処理をしてるのですが理解できない挙動をします

objClass.class.phpの中で以下のようになっているのですが
class objClass{
public $this->var = 0;
function doIt(){
if($this->_var ==0){
$this->_var ++;
}
}
}

$this->_varの値が何度execを実行しても1より増えません
なぜでしょうか?
exec();を利用して実行されるクラスではコンストラクタや変数の初期化が毎回行われないということですか?
if()の条件式を見る限りでは、前回実行された$this->_varが保持されてしまってるのかなとしか解釈できないですが
なぜそうなるのか理解できないです
0836nobodyさん2011/12/28(水) 11:01:43.82ID:???
>>835
おまえな・・・・

class A{
public $var = 0;
}

$a = new A();

$a->var++;
var_dump($a->var);
0837nobodyさん2011/12/28(水) 11:16:24.30ID:???
>>836
0の時しかインクリメントしないロジックになっているのもそうだけど
そもそもexecを複数回叩いたら別プロセスでしょ?
0838nobodyさん2011/12/28(水) 11:17:29.12ID:???
どこから突っ込めばいいやら。
1、exec();を利用して実行されるクラス?
2、コンストラクタ?どこ?
3、public $this->var = 0; ?
4, $this->_var ?
0839nobodyさん2011/12/28(水) 11:22:17.59ID:???
>>835
exec使う前にマニュアル読めよ
http://www.php.net/manual/ja/language.oop5.php
0840nobodyさん2011/12/28(水) 12:29:18.71ID:???
>>835
> if($this -> _var == 0){
> $this -> _var++;
> }
> 1より増えません
…コードを見直したり組み直したりしないのか
0841nobodyさん2011/12/28(水) 12:30:20.95ID:???
>>837
それ以前の話
0842nobodyさん2011/12/28(水) 12:44:18.16ID:???
スレでやたらとexecを使うのを見かけるが、そんなに使うもの?
0843nobodyさん2011/12/28(水) 12:50:13.36ID:???
>>842
必要であれば。
0844nobodyさん2011/12/28(水) 13:43:00.93ID:???
何かで使った覚えがあるな
phpからperl使ってimagemagickを叩いたときかな
0845nobodyさん2011/12/28(水) 15:02:40.67ID:???
eclipseの使い方教えて
0846nobodyさん2011/12/28(水) 15:39:12.41ID:ykuOHvra
PHPの力でかわいくてやさしくて頭よくて若干ツンデレな彼女の作り方を
教えてください!
0847nobodyさん2011/12/28(水) 15:41:39.11ID:???
オレオレフレームワークのことですね わかります
0848nobodyさん2011/12/28(水) 15:51:08.69ID:???
>>846
<?php
function heyKanojyo() {
for($i = 0;$i < 1; $ore++) {
echo 'hey';
}
}

for($i = 0;$i < 1; $ore++) {
heyKanojyo();
}
?>

おすすめ
0849nobodyさん2011/12/28(水) 16:47:56.43ID:Yn7F8uVq
Windowsで特定の文字を含むフォルダを開こうとするとエラーがでることがあるのですが何とかならないでしょうか。

例 (コードの文字コードはutf8です)
opendir(mb_convert_encoding('十', 'SJIS', 'UTF-8'));

Warning: opendir(十,十) [function.opendir]: 指定されたファイルが見つかりません。
0850nobodyさん2011/12/28(水) 16:52:39.76ID:???
「エラーがでることがある」 ということはエラーが出ないこともあるのでしょうか
興味深い現象ですね
0851nobodyさん2011/12/28(水) 17:02:46.26ID:???
Warningってエラーだったのか。知らなかった。
0852nobodyさん2011/12/28(水) 17:11:05.22ID:???
>>849
sjis-win は試したか?
0853nobodyさん2011/12/28(水) 17:15:21.86ID:???
古い情報見てると思うんだけど
環境に依存する文字使うときは
euc-jpは使うなeucJP-winを使え
sjisは使うなsjis-winを使え
0854nobodyさん2011/12/28(水) 17:22:50.86ID:???
今header()を使うと"headers already sent"になるかどうかを
判定することってできますか?
0855nobodyさん2011/12/28(水) 17:23:03.84ID:Yn7F8uVq
sjis-winでやってみたのですがやはりダメでした
PHPのバージョンは5.3.5 XAMPPを使っています
0856nobodyさん2011/12/28(水) 17:25:50.60ID:???
>>849
どうにもなりません。 仕組みの説明は面倒だけど、PHP自体が対応してません。
0857nobodyさん2011/12/28(水) 17:28:39.66ID:???
>>854
headers_sent
http://www.php.net/manual/ja/function.headers-sent.php
0858nobodyさん2011/12/28(水) 17:29:56.28ID:???
>>856
いい加減なことを言うな。ソースを示せ。
■ このスレッドは過去ログ倉庫に格納されています