トップページ⇒php
982コメント234KB

PHP総合雑談スレ

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/01/14(月) 21:35:11ID:???
PHP全体の雑談のようなスレがなかったからたてた
反省はしていない
0507nobodyさん2009/01/31(土) 23:40:14ID:???
array_searchでぐぐったら
軒並み「このサイトはコンピュータに損害を与える可能性があります。」
って出てる…
何が起きたんだ
0508nobodyさん2009/01/31(土) 23:41:12ID:???
大変なことになってるのはgoogleみたいだ
0509nobodyさん2009/02/01(日) 00:10:24ID:???
ほんとだ
0510nobodyさん2009/02/01(日) 22:19:55ID:a2Wuf/Lf
初めてここの板にきました
超初心者ですが、基本営業系なので、サイトを作ってもよく侵入されたり、
壊されたり、防御がへたくそなので、どなたかお手伝いしてくれる方いらっしゃいませんか?
サイトはZenCartでいくつかcontribution使っています。
今、サーバー側でチェックさせていますが、脆弱なセキュリティやスクリプトなどを
防御していただける方、スポットで募集したいです。
興味のある方はlapopo@xxne.ジェイピ までご連絡下さい。
0511nobodyさん2009/02/02(月) 00:08:42ID:???
金払ってLACに頼めよ
0512nobodyさん2009/02/02(月) 02:58:37ID:7ApsZzyj
高そうだな LAC
0513nobodyさん2009/02/02(月) 13:34:08ID:???
超高いよ!その辺のWEB屋で十分対応できる。
LACは独自のシステムとかを入れさせそうだから、
高いし、運用までさせることになるかもよ。
それだけ、ちゃんとやって保証もしてくれるんだろうけど。
0514nobodyさん2009/02/02(月) 21:23:42ID:???
そういうお仕事してる人はいっぱいいるでしょ
なぜ2chに書き込むのか、その神経がわからない
0515nobodyさん2009/02/03(火) 01:11:58ID:bGOOUPoS
☆PCが自動で稼いでくれるこのプログラムに参加してみて下さい。
無料で参加できます。
米国発ですが日本国内でも流行り始めています。
 今ならまだ間に合います。
 ↓↓↓
ttp://greenhorse.iinaa.net/
0516nobodyさん2009/02/08(日) 21:11:41ID:???
コマンドラインでスクリプト書いた場合デフォルトだとタイムアウトしないよね?

うまいことしてタイムアウト設定したいんだけどいい方法ないかな?
0517nobodyさん2009/02/08(日) 21:35:56ID:???
するよ
0518nobodyさん2009/02/09(月) 14:08:51ID:???
php.iniでmax_execution_timeという話なら相談に乗れない
0519nobodyさん2009/02/19(木) 02:17:01ID:???
「PHPはWebアプリに最適な言語」
http://www.atmarkit.co.jp/news/200902/16/delphiphp.html

を詠んだけど Delphi for PHPって実際どうですか?
0520nobodyさん2009/02/19(木) 05:39:48ID:???
高い
0521nobodyさん2009/02/20(金) 23:21:11ID:???
>>519
あれってホームページビルダー感覚でパーツを並べるやつでしょ?
PHPって単語がついてるけど、単なるHTMLエディタじゃないの?
0522nobodyさん2009/02/21(土) 03:32:53ID:???
PHP5メモリ食いすぎじゃね?気のせい?
Smarty+adodbで簡単なブログ作ってたらアロケートしろと…。
どうすりゃいいんだー。
メモリは32MBに設定してるのに。
0523nobodyさん2009/02/21(土) 04:06:19ID:???
お前のコードのせい
0524nobodyさん2009/02/21(土) 11:40:47ID:???
PHP4に比べれば、そりゃメモリは食うね。
0525nobodyさん2009/02/21(土) 11:57:32ID:???
fetchAll()とか使ってるんだろ、どうせ。
0526nobodyさん2009/02/21(土) 13:29:18ID:???
>>523の言うとおりだった。

for ( $i=0; count($lines); $i++ )

こんなアホみたいなミスしてた…。
構文エラーにはならないから、こんなので数時間も無駄にしてしまった…。
0527nobodyさん2009/02/21(土) 15:04:44ID:???
>>526ってPHPの定石だよね…とおもってたらコーディングミスだったのか。
0528nobodyさん2009/02/21(土) 16:58:05ID:???
$c = count($lines);
for ( $i=0; $i < $c; ++$i)

とかちゃんと心掛けるようにしとけばもっと速くなるよ
0529nobodyさん2009/02/21(土) 17:10:05ID:???
ていうか、foreach($lines as $line)でいいんじゃないか疑惑
$iを中で使うならforの方が読みやすいが
0530nobodyさん2009/02/21(土) 17:22:12ID:???
>>529
ここでfor vs foreach論争勃発。
0531nobodyさん2009/02/21(土) 17:55:17ID:???
ForでできることはForでやったほうがいいような気はする
ハッシュから値を取り出すみたいなカウンタが使えないときに使うもんだと思うし
0532nobodyさん2009/02/21(土) 19:42:21ID:???
俺は配列全要素を対象にループを回す時は基本的にforeach。
foreachは「配列の全要素を処理する」という意味。
だから、意図が「配列の全要素を処理する」事なら、foreachを使うのが一番読みやすい。

>526のようにforをわざわざ使ってある箇所からは、「ループカウンタ($i)が内部の処理に必要」という意図が見える。
俺なら、$iを実際に使わないなら避ける。
ループカウンタが不要なのに配列をforで回すのは、foreachのない言語が仕方なくやる書き方じゃないか?
0533nobodyさん2009/02/21(土) 23:13:04ID:???
Javaとかだとバイトコードに差異なかったようなきがするけど
インタプリタ言語だとやっぱコスト的な差があったりするもんなのかな?
0534nobodyさん2009/02/21(土) 23:17:42ID:???
今のPHPは純粋なインタプリタじゃない。
最初の読み込み時にバイトコードっぽいものに変換され、そいつがVMっぽいものに実行される。
Rubyとかと同じ形式だな。
0535nobodyさん2009/02/22(日) 00:06:55ID:???
rubyが最近になってphpと同じように内部でバイトコードにコンパイルされるようになったんじゃなかったっけ?
0536nobodyさん2009/02/22(日) 00:15:58ID:???
zend server試してみた
やヴぁいぜ今すぐapacheはアンスコすることにした
0537nobodyさん2009/02/22(日) 01:25:51ID:???
zend serverってapacheも使うんじゃないの?
0538nobodyさん2009/03/01(日) 04:09:00ID:???
Windowsで動く単純なツールを作りたい。
exe配布だけで済むことが必須、つまりEXE形式に変換できないといけない。


PHPでできる方法知ってる人手を上げて〜。
0539nobodyさん2009/03/01(日) 05:51:44ID:???
ノ
0540nobodyさん2009/03/01(日) 10:53:46ID:???
Perlにも似たようなのあったな
ちょっと試してみたらファイルサイズがアホみたいになるので
何かに使うことはなかったけど
0541nobodyさん2009/03/01(日) 15:33:00ID:???
普通にVisualStudio使ってVBやC#で作った方がいい。
0542nobodyさん2009/03/01(日) 16:28:03ID:???
>>538
php guiでググレカス
0543nobodyさん2009/03/01(日) 17:27:03ID:???
普通に作れってのはわかるが、VS.NETあたりを使う理由は特にないよな
0544nobodyさん2009/03/01(日) 21:48:55ID:???
今から新規にやるなら、.NETを選ばない理由がない。
0545nobodyさん2009/03/01(日) 22:27:06ID:???
>>544
選ぶ理由は?
0546nobodyさん2009/03/01(日) 23:53:29ID:???
かっこいいから
0547nobodyさん2009/03/02(月) 04:00:33ID:???
今からPHP4を選ぶ理由はないだろ
0548nobodyさん2009/03/02(月) 12:28:03ID:???
nai
0549nobodyさん2009/03/02(月) 13:38:26ID:???
ttp://d.hatena.ne.jp/hnw/20090228
これ、この板では全く問題になってないから、思い過ごしってことでいいのかな。
0550nobodyさん2009/03/02(月) 14:55:17ID:???
なんという判断基準w
0551nobodyさん2009/03/02(月) 21:52:38ID:???
実際問題使ってる人からすれば困るだろうけど
俺は使ってないからどうでもいーやー みたいなかんじです
0552nobodyさん2009/03/03(火) 02:42:42ID:???
PHPの暗黙の型変換とか順番付きの連想配列は、初心者向けとも言えるけど、バグの温床とも言える。
0553nobodyさん2009/03/03(火) 02:52:28ID:???
初心者向けなんかじゃねぇよ
開発効率の向上
0554nobodyさん2009/03/03(火) 20:46:04ID:???
結局ちゃんとしようと思えば、 型を揃えて===ってやらなければならないんだから、まったく開発効率は良くなってない。学習曲線の立ち上がりが速いのはそうだが。
0555nobodyさん2009/03/03(火) 20:51:57ID:???
===使うのは当たり前だろ
0556nobodyさん2009/03/03(火) 21:14:47ID:???
まぁ結局は型とかちゃんと意識してたほうが間違いないしな
自動変換される意味ってあんまりないよね
0557nobodyさん2009/03/03(火) 22:07:32ID:???
>>554
暗黙の型比較も厳密な型比較も
両方出来た方が開発効率高いのは自明だろう
0558nobodyさん2009/03/05(木) 08:18:14ID:???
PHPの暗黙の型変換は、相当PHPに慣れていてもハマル。
http://techblog.ecstudio.jp/tech-tips/php-string-compare.html
0559nobodyさん2009/03/05(木) 08:52:55ID:???
いや、なら==使うなと
0560nobodyさん2009/03/05(木) 21:06:00ID:???
原因自体はそんなに曲がりくねってないんだし
型変換されるってことを理解してれば間違うことなんてないでそ
0561nobodyさん2009/03/05(木) 23:23:33ID:???
型変換は可読性のために当たり前のようにやってきたから別に痛くもない
0562nobodyさん2009/03/06(金) 05:20:16ID:???
if (0 == "0x") {
print "1\n";
}
if ("0" == "0x") {
print "2\n";
}
if (0 == "x") {
print "3\n";
}
if (true == "x") {
print "4\n";
}
if ("0" == null) {
print "5\n";
}
if ("0" == false) {
print "6\n";
}
if (array() == 0) {
print "7\n";
}
if (array() == "0") {
print "8\n";
}
if (array() == false) {
print "9\n";
}
0563nobodyさん2009/03/06(金) 08:02:06ID:???
ださいコードw
0564nobodyさん2009/03/06(金) 13:24:19ID:???
おれならもっとスマートにかけるぞ
0565nobodyさん2009/03/06(金) 13:42:27ID:???
>>562
$a = array(0,"0",0,true,"0","0",array(),array(),array());
$b = array("0x","0x","x","x",null,false,0,"0",false);

function f($a,$b) {
if ($a == $b) return true;
}

$k = array_map(f,$a,$b);
print_r($k);

どうだまいったか!!!!!
0566nobodyさん2009/03/06(金) 13:42:59ID:???
>>562
きめえwwwwwwwwww
0567nobodyさん2009/03/06(金) 14:04:00ID:???
>>565

まいった!
0568nobodyさん2009/03/06(金) 14:45:44ID:Eukp8E4G
可読性は>>562が圧勝。
0569nobodyさん2009/03/06(金) 14:51:10ID:???
>>568
本人乙
0570nobodyさん2009/03/06(金) 14:51:40ID:???
値と計算式を分けてる>>565が圧勝
0571nobodyさん2009/03/06(金) 15:24:38ID:???
可読性最悪だろw
0572nobodyさん2009/03/06(金) 15:30:01ID:???
>>571にフイタ
おまえMVCとかわからないような初心者ですね、わかります
0573nobodyさん2009/03/06(金) 18:05:09ID:???
能力も見る目もないんだねw
0574nobodyさん2009/03/06(金) 18:26:02ID:???
>>571
君はしょぼいコードしか見てきてないから仕方がないか
0575nobodyさん2009/03/06(金) 19:33:16ID:???
可読性最悪ってのはこんなのだ
↓
0576nobodyさん2009/03/06(金) 19:58:41ID:???
echo "1\n3\n4\n6\n9\n";
0577nobodyさん2009/03/06(金) 20:00:53ID:???
今時>>562みたいなコード書く新人が後を絶たないんだよな
0578nobodyさん2009/03/06(金) 20:20:37ID:???
でも>>562ぐらいキレイに羅列してくれたほうが明確だから上達しそうだな
0579nobodyさん2009/03/06(金) 21:22:03ID:???
>>562=>>578
0580nobodyさん2009/03/06(金) 21:22:56ID:???
>>562が綺麗って言うやつはコードの読み方を知らないキチガイ
0581nobodyさん2009/03/06(金) 22:36:14ID:???
なんかマ脳とム脳の差を見てる気がするわw
0582nobodyさん2009/03/06(金) 22:47:31ID:???
0 == "0x"
0 == "x"
true == "x"
"0" == false
array() == false

↑の3つが特に鬼門。
0583nobodyさん2009/03/06(金) 23:05:58ID:???
じゃあ、行っちゃダメ!
0584nobodyさん2009/03/06(金) 23:18:46ID:???
いきなり>565のコードを出したとしたら、意図が伝わりにくいと思う。
というか意味的にペアのものを2つの別の配列に格納すべきではないだろ。やるなら値のペアを格納した配列にすべき。
$ary[] = array(0, "0x");$ary[] = array("0", "0x");…

俺が書くならとりあえずこうかな。
function compare($a, $b){
 if($a == $b){
  return "same\n";
 }
 return "not same\n";
}

echo compare(0, "0x");
echo compare("0","0x");
echo compare(0, "x" );
…
配列に対しcompareを実行するメソッドは、多分使いたくならないので実装しない。
あとはnullと空文字を見分けられるようなstrvalを実装し、compareの出力で何と何を比較したのか分かるような改造を入れる。
0585nobodyさん2009/03/06(金) 23:34:41ID:???
かなりPHPを書き慣れてきても>>562の挙動を全部言い当てるのは難しい。PHP以外の言語をメインにしてると、まあ無理。
↓もPHP以外をメインにしてる人には想定外の結果になる。

<?php
$v = 1 > 0 ? 'a' : 1 < 0 ? 'b' : 'c';
print "$v\n";

#!/usr/local/bin/perl
$v = 1 > 0 ? 'a' : 1 < 0 ? 'b' : 'c';
print "$v\n";

#!/usr/local/bin/ruby
v = 1 > 0 ? 'a' : 1 < 0 ? 'b' : 'c'
p v
0586nobodyさん2009/03/06(金) 23:36:06ID:???
どう書くということではなく、PHPの比較演算子の挙動を確かめるということ。
0587nobodyさん2009/03/06(金) 23:49:58ID:???
>>585
それって優先順位の話だよな?
それは流石に括弧つけるだろー
0588nobodyさん2009/03/06(金) 23:59:26ID:???
PHPの場合、条件が2つ以上ある三項演算子は使わない方が良い。混乱の元になるから。
array_map()も無名関数が実装されるまでは使わない方がいい。普通にループで回した方が良い。見づらいだけだから。
0589nobodyさん2009/03/07(土) 03:20:24ID:???
>>574
自分のがしょぼいとは認めてるんだw
0590nobodyさん2009/03/07(土) 11:09:08ID:???
>>589
日本語でおk
0591nobodyさん2009/03/07(土) 14:51:00ID:/9SP6JzE
流れ無視スマン

http://www.haruzine.com/main
http://www.harikonotora.net/main.html
http://www.meiwasuisan.com/frame/
上記の掲示板って元は同じphpですよね?
どっかフリーで配布してるんでしょうか、
誰か知ってたら教えてくださいな。
0592nobodyさん2009/03/07(土) 15:03:55ID:???
>>591
いずれも2chに似せてるだけで中身は別物だろう
0593nobodyさん2009/03/07(土) 15:13:46ID:???
>>591
宣伝乙
0594nobodyさん2009/03/07(土) 15:26:16ID:/9SP6JzE
>>592
何かベースのものがあると思ったのですが…オリジナル?
>>593
ちげーよ

0595nobodyさん2009/03/07(土) 17:52:34ID:???
>>594
難しいもんじゃないし自分で一から書けば
05965942009/03/07(土) 19:32:48ID:/9SP6JzE
そんな頭ないんだよ!
595書いてくれよ。
0597nobodyさん2009/03/07(土) 19:55:51ID:???
ろくな検索すらできない奴なんだから察してやれよw
0598nobodyさん2009/03/19(木) 00:58:24ID:???
php+winbinder使って
windows上で動くシューティングゲームを作ってみたりしてるけども
ゲームの基礎がないのでつらいw

そんな酔狂なヤツは他にいますか?
0599nobodyさん2009/03/19(木) 01:02:17ID:???
なんとなく自機が動いたり
敵機が動いたりするようになったのだが
画面の描画とか押されたキーを受け取る方法とかが自己流で
妥当な関数つかってるのかもわからないんだよなー。
0600nobodyさん2009/03/19(木) 18:49:33ID:???
お前らなんか今、個人的に作ろうとしてるものとか作りたいものとかある?
0601nobodyさん2009/03/19(木) 19:00:53ID:???
CMSを自作してる最中
0602nobodyさん2009/03/19(木) 19:37:33ID:yS9l3Qpm
http://blog.livedoor.jp/dankogai/archives/51189905.html
もうおまえらPHPerは正規表現をブログにうpするんじゃねえ!
0603nobodyさん2009/03/19(木) 20:08:17ID:???
>>602
宣伝乙
0604nobodyさん2009/03/19(木) 21:41:30ID:???
>603
このスレdankogaiがチェックしてるのか!すっげ!
0605nobodyさん2009/03/19(木) 22:48:28ID:???
similar_textとlevensteinとの関係について、ちょっと聞きたいことがあります。

文字列長がM,N(N>M)な二つの文字列の比較に必要な計算時間は
similar_textがO(N^3)でlevensteinがO(MN)ということで、similar_textの方が重い処理です。
ソースをさらっと読んだ感じでは、similar_textは(一致した文字の個数)を計算してるだけですよね。

ところで、
M+N = 2*(一致した文字の数) + (文字を挿入した回数) + (文字を削除した回数) + 2*(文字を置き換えた回数)
という関係が成り立っているので、整理して
(一致した文字の数) = (M+N - {(文字を挿入した回数) + (文字を削除した回数) + 2*(文字を置き換えた回数)} )/2
中括弧の中は、Levensteinのアルゴリズムで置き換えのコストを2に設定したものと同じになると思うので、
similar_textはO(N^3)も計算コストがかからないはず。

なんか間違ってますか?
0606nobodyさん2009/03/20(金) 07:20:05ID:???
その正規表現、ひどいよな。多分、どっかに載ってたメールアドレスの正規表現をいくつか組み合わせて、たまたま動いたから、これでいいや、みたいな感じなんだろうな。
0607nobodyさん2009/03/21(土) 22:16:06ID:???
PHPは楽しいのー^^
■ このスレッドは過去ログ倉庫に格納されています