トップページ⇒php
585コメント154KB

PHP上級者が集まるスレ

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/01/14(日) 16:53:46ID:???
ここでは他のPHPスレよりもより一層と高いレベルでの情報交換・体験談などを行うスレです。 
我こそはPHPプロフェッショナルだという方の書き込みをお待ちしております。 
0083nobodyさん2008/12/14(日) 11:54:39ID:???
PHPです。
0084nobodyさん2008/12/14(日) 13:25:18ID:vrT8sAoj
ぐぐってもみつけられなかったんで上級者さん教えてください
formからアップロードしたzipファイルを解凍するスクリプト書いてるんですが、
解凍する前にzipファイルの破損をチェックするのってどうやったらできますか?
0085nobodyさん2008/12/14(日) 14:07:31ID:???
質問スレでどうぞ
0086nobodyさん2008/12/14(日) 14:17:08ID:???
>>85
すれ違いすみませんでした
0087nobodyさん2008/12/14(日) 14:32:36ID:???
>>82
一概にいえないだろ。
PHPでもView部分はWebオーサリングソフト使ってテンプレートエンジンかませば同様に
GUIで画面のデザインできるし、だいたいView部分だけを根拠に「どう考えても」は飛躍しすぎ。
0088nobodyさん2008/12/14(日) 18:30:55ID:???
>>87
VSを抜く
 Webオーサリングソフト使ってテンプレートエンジン
はありますか?


話はそれからだ。
0089nobodyさん2008/12/25(木) 06:13:30ID:???
PHPでPostgreSQLのbytea型へのバイナリデータアクセスについて教えてください。
(PHP 5.2.3 + PostgreSQL 8.3.1です)

(1)書き込み(insert)時は、bindParamの第3引数にPARAM_LOBを指定して
   正常に書き込める。
   ex. $sth->bindParam(":data", $data, PDO::PARAM_LOB);

(2)読み出し(select)時は、bindColumnの第3引数にPARAM_LOBを指定すると
   バイナリデータの読み出しが正常にできない(サイズが異なる)
   ex. $sth->bindColumn(":data", $data, PDO::PARAM_LOB);

(2)でPDO::PARAM_LOBの代わりにPDO::PARAM_STRを指定すると正しく読み出せます。

これはPDOの不具合なんでしょうか?
それとも、これが仕様なのでしょうか?
0090nobodyさん2008/12/28(日) 11:09:37ID:???
>>88
DreamWeaverは便利ですよ^^
0091nobodyさん2009/01/08(木) 05:23:45ID:???
PHPで、proxy経由でSSL通信をしたいです。
PEAR::HTTP_Requestでは未サポートであることがわかりました。
PHPからwgetを起動する方法も考えましたが、シンプルな方法とは
いえないので、PHPだけで実現したいです。

良い方法をご存知の方、教えてください。
0092nobodyさん2009/03/03(火) 01:30:53ID:hdsn1ZlD
>>68
ちょっと遅いレスだけどflags引数使え

PREG_PATTERN_ORDER

$matches[0] はパターン全体にマッチした文字列の配列、
$matches[1] は第 1 のキャプチャ用サブパターンにマッチした文字列の配列、
といった順番となります。

$match=array(
array('aaa111aaa222','aaa111aaa222','aaa111aaa222','aaa111aaa222',),
array('aaa111','aaa111','aaa111','aaa111',),
array('aaa222','aaa222','aaa222','aaa222',),
);

PREG_SET_ORDER

$matches[0]は 1 回目のマッチングでキャプチャした値の配列、
$matches[1]は 2 回目のマッチングでキャプチャした値の配列、
といった順序となります。
$match=array(
array('aaa111aaa222','aaa111','aaa222'),
array('aaa111aaa222','aaa111','aaa222'),
array('aaa111aaa222','aaa111','aaa222'),
array('aaa111aaa222','aaa111','aaa222'),
);

どっちかっていうとSET_ORDERの方が○行目の\1,\2みたいな感じで俺は好きだ
0093nobodyさん2009/03/28(土) 02:06:29ID:???
Visual Studio2005( VS.Php 2.6 試用版 )を使用して
PHPのデバッグ実行を行おうとしているのですが、PHPスクリプト内に設定した
ブレークポイントで止りません。
一体どうすればブレークポイントを止める事が出来ますか?


【ブレークポイント上のエラー】
・ブレークポイントは、現在の設定ではヒットしません。
Unbound break point

【IEの設定】
次のチェックを外しています。
・スクリプトのデバッグを使用しない(Internet Explorer)
・スクリプトのデバッグを使用しない(その他)

【php.iniの設定】
[DBG]
debugger.enabled = true
debugger.profiler_enabled = true
debugger.JIT_host = 127.0.0.1
debugger.JIT_port = 7869
debugger.enable_session_cookie = true

extension=php_dbg.dll
;;;;;;;;;;;;;;;;;;;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;
0094nobodyさん2009/06/09(火) 10:22:17ID:???
>>75
IDEはZS
エディタはTextmate
0095nobodyさん2009/06/17(水) 22:51:20ID:???
つ Komodo Edit
0096nobodyさん2009/11/30(月) 18:40:16ID:???
これが噂の上級者が集まるスレか。流石だな。
0097nobodyさん2009/12/01(火) 22:13:32ID:???
私はPHP上級者ですがどうしてもわからないことがありますか?
0098nobodyさん2010/01/01(金) 22:37:35ID:???
PHPで指定したディレクリにあるjpg|jpeg|gif|pngの画像枚数を取得したいんだが、教えてくれ。
0099nobodyさん2010/01/02(土) 00:26:34ID:???
マルチ乙
0100nobodyさん2010/01/04(月) 03:31:33ID:???
PHP6使う?
0101nobodyさん2010/01/04(月) 19:29:16ID:???
>>100
5
0102nobodyさん2010/01/04(月) 21:02:11ID:???
>>100
6
0103nobodyさん2010/01/14(木) 19:40:22ID:???
ls 使ってチェックだな。
0104nobodyさん2010/03/11(木) 17:14:56ID:???
readdir()で検索してpreg_match()で照合すればよくない?
0105nobodyさん2010/03/27(土) 19:43:37ID:???
php6のオブジェクト指向ってphp5と同じですか?
0106nobodyさん2010/04/11(日) 19:33:45ID:???
>>105
ここで聞いたほうがいい。
http://pc11.2ch.net/test/read.so/php/1172205352/
0107nobodyさん2010/06/12(土) 00:33:14ID:RYMW4bMX
ここの上級者ってやっぱりオブジェクト指向でPHPプログラム作ってるんですか?
0108nobodyさん2010/06/12(土) 03:36:45ID:???
規模による

上級者じゃないけど
0109nobodyさん2010/06/12(土) 06:41:28ID:???
必要に応じて。
PEARとか使うだけでもある意味オブジェクト指向だしな
0110nobodyさん2010/06/12(土) 09:20:35ID:???
規模による?必要に応じて?
PHP5以上なら常に使えよ。
0111nobodyさん2010/06/12(土) 23:27:14ID:???
なんで?
0112nobodyさん2010/06/13(日) 04:09:02ID:???
オブジェクト指向は常に使うべきである

<?php

$makehw=new makehw();
$echohw=$makehw->echo_helloworld("hello world!");
echo $echohw;
exit;

class makehw {
function __construct() {
$this->str="hello world!";
return $str;
}
function echo_helloworld($indata) {
echo $this->str;
return '';
}
}
0113nobodyさん2010/06/13(日) 12:42:32ID:???
コンストラクタで返り値返せないよ
0114nobodyさん2010/06/13(日) 13:10:40ID:???
>>112
これ適当?
0115nobodyさん2010/06/13(日) 14:35:11ID:???
無茶苦茶じゃねーかww
0116nobodyさん2010/06/13(日) 17:13:20ID:???
>>112
釣りにしてもひどすぎるぞ
0117nobodyさん2010/06/13(日) 17:17:49ID:???
てかこのスレ、下スレと何が違うの?
初心者が上級者のふりして書き込む厨房専用スレ?
0118nobodyさん2010/06/15(火) 09:30:26ID:???
上級者用の下らない質問スレでしょう。
0119nobodyさん2010/06/18(金) 16:40:47ID:???
これ見てよ↓
http://livedoor.2.blogimg.jp/agomesu/imgs/4/f/4faec292.png
ばらまこうぜ!
0120nobodyさん2010/06/21(月) 14:15:37ID:CBlb9XeO
PHPでなにができたら上級者と言える?
0121nobodyさん2010/06/22(火) 02:37:39ID:???
2chのクローン作れば私が褒めてあげる。
0122nobodyさん2010/06/22(火) 11:31:47ID:???
>>120
ハローワールド
0123nobodyさん2010/06/22(火) 20:31:27ID:???
>>121
2chのクローンなんてblogサンプルがそこらじゅうに出回ってるし、
簡単に作れる。寧ろそのサンプルの方が2chより高機能だろ。
0124nobodyさん2010/06/25(金) 21:53:45ID:???
P2P掲示板作ってよ!
0125nobodyさん2010/06/26(土) 21:56:49ID:nh7WDbu8
>>123
いや、んなこと聞いてない・・・・
0126nobodyさん2010/06/27(日) 15:28:48ID:???
私は上級者なのにechoとprintの違いがわかりません。どうしてですか?
0127nobodyさん2010/06/27(日) 17:00:45ID:???
タイピングがとろいからじゃね?
0128nobodyさん2010/06/28(月) 12:18:08ID:???
PHPで VB.netみたく optional 的な記述方法はありませんか?
0129nobodyさん2010/06/28(月) 13:25:54ID:WPgH34jW
今、phpでグラフを作成しておりまして、配列中にある最大値と最小値を求めて
それぞれをグラフのy軸の最大値、最小値としていましたが、それだと配列内の
最大値、最小値のスケールでしかグラフが生成できません。

なので、ある程度範囲を持たせる為に

例えば最大値が1001の場合
1、配列中の最大値の桁数を取得して(=4)
2、桁数の頭に1をつけて(1000)
3、2、の桁数を整数で切り上げ除算して(2)
4、最後に3、に2、の桁数を乗算した(2000)

をy軸の最大値にしたいと思います。
2の部分が不明瞭で皆さんのお知恵をお借りしたく思います。

よろしくお願いします
0130nobodyさん2010/06/28(月) 15:39:09ID:PXXo1bnr
グラフの余白値 = 最大値 × 0.5
グラフ最大値 = 最大値 + グラフの余白値
グラフ最小値 = 最小値 - グラフの余白値

これぐらいでいんでねーの
グラフ最小値がマイナスになったらゼロにすればいいでしょう

0131nobodyさん2010/06/28(月) 17:22:03ID:???
>>128
を誰か答えてちょ。
0132nobodyさん2010/06/28(月) 20:00:36ID:???
あるよ
0133nobodyさん2010/06/28(月) 20:11:56ID:???
>>132
教えてちょ。
0134nobodyさん2010/06/28(月) 20:13:47ID:???
態度がふざけてるからやだ
0135nobodyさん2010/06/28(月) 20:42:28ID:???
>>134
しね
0136nobodyさん2010/06/30(水) 11:55:48ID:???
明るいoptional
明るいoptional
みんな家中なんでもoptional
0137nobodyさん2010/07/07(水) 01:15:08ID:???
クラス作るときにpublicとprivateしか使わないのは
一発で雑魚だと分かるね。
protectedの意味を知らないらしいw
0138nobodyさん2010/07/07(水) 04:26:58ID:???
型指定が曖昧なPHPにおいてprotectedは危険因子だと思ってあまり使っていない。
0139nobodyさん2010/07/07(水) 08:01:03ID:???
.Net開発の場合には、protectedとかは普通に使うけど、
PHPでは使わないなぁ。

public と private しか使わない。


PHPごときで何を粋がっているんだか。
0140nobodyさん2010/07/07(水) 21:21:53ID:???
>>139
雑魚の典型だな。
なんでPHPの時だけprotected使わないんだよ。
理由を簡潔に述べよ。
0141nobodyさん2010/07/07(水) 21:34:59ID:???
>>140
使う必要が無い。
phpだけしか使えない馬鹿へ。
0142nobodyさん2010/07/07(水) 22:11:57ID:???
>>141
仕事では殆どJavaだよ。
使う必要が無い?オブジェクト指向の基本も分からん雑魚は消えろ。
0143nobodyさん2010/07/07(水) 23:02:03ID:???
Javaなんて古くせー

今は、ASP.netだよ。タコ。
0144nobodyさん2010/07/07(水) 23:45:24ID:???
なんだガキか。
ま、言語でどうこう言ってるようなのは程度が知れてる。
0145nobodyさん2010/07/07(水) 23:50:32ID:???
protectedを使うか使わないかで上級者判定しちゃうあたりが、
言語覚え立ての素人っぽくて恥ずかしい。
0146nobodyさん2010/07/08(木) 13:31:46ID:???
tp://cmf.ohtanz.com/blog/archives/category/php/page/3#post-82

この人のプログラム酷い
0147nobodyさん2010/07/08(木) 23:46:56ID:???
>>145
でも実際お前は使い方分からないんだろ?
当たってんじゃんw
0148nobodyさん2010/07/09(金) 01:09:23ID:???
http://hoge_domain/test.php として通常アクセスするのを

http://hoge_domain/test/ でアクセス出来る様にしたいのですが、

mode_rewrite でどういう設定をすれば良いのでしょうか?
0149nobodyさん2010/07/09(金) 01:12:33ID:???
protectedを使えるのは上級者の証

<?php
print "protected";
?>
0150nobodyさん2010/07/09(金) 01:40:03ID:???
上級者の証じゃねーよ。当たり前のことだ。
protectedの使い方が分からないのは雑魚の証
0151nobodyさん2010/07/09(金) 02:05:35ID:???
むしろpublicとprotectedしか使わない俺が来ましたよ。
0152nobodyさん2010/07/09(金) 06:34:20ID:???
privateとgetter/setter派が来ましたよ。
private以上の権限が必要ならprotectedにしてやらんこともないが、
それが美しいとは思えないね。

で、何でprotected如きで上級者判定してんのw?
0153nobodyさん2010/07/09(金) 06:56:15ID:???
継承先で使いたいメソッドはどうすんの
0154nobodyさん2010/07/09(金) 07:28:38ID:???
>>153
うちの職場 public wwwwwwww
0155nobodyさん2010/07/09(金) 07:32:34ID:???
>>152
ソースがムダに長くなるからやめれ
0156nobodyさん2010/07/10(土) 02:37:53ID:???
protectedなんて、
TemplateMethodを適用する時か、
Decoratorを適用した基底クラスを作る際の移譲先を保持する時ぐらいだな。

>>155
ライブラリの外に公開するValue Objectの場合、getter/setter型にしておいた方が仕様変更に追随しやすくできるよ。
0157名無しさん@そうだ選挙に行こう2010/07/10(土) 10:15:04ID:???
全部publicでいいよもう
ってBASICerが言ってました
0158名無しさん@そうだ選挙に行こう2010/07/10(土) 11:40:57ID:???
phpのglobal変数について質問があります。
global変数はクラス内に定義する事は出来ないのがphpの仕様なのでしょうか?

//文法エラーが発生
class TestClass
{
  global $test1;
  static public function TestFunction( )
  {
    echo "test";
  }

}

//OK
class TestClass
{
  static public function TestFunction( )
  {
    global $test1;
    echo "test";
  }
}
0159名無しさん@そうだ選挙に行こう2010/07/10(土) 11:59:11ID:???
>>158
クラスの定義にglobalを記述したい理由が分からん。
staticじゃだめなの?
0160名無しさん@そうだ選挙に行こう2010/07/10(土) 12:03:10ID:???
>>159
<?php
<html>
<head></head>
<body>
<!-- -->

</body>
</html>
0161名無しさん@そうだ選挙に行こう2010/07/10(土) 12:10:34ID:???
>>159
途中で誤爆してしまいました。すみません。
用は以下の用な事をしたいのです。

<< やりたいコード �@ >>

<?php
  //POSTデータを取得しグローバル変数へ格納
  $test1 = $_POST["name_mei"];
?>
<html><head></head><body>
  <?php
       TestClass::TestFunctionA();
       TestClass::TestFunctionB();
  ?>
</body></html>
<!--
    以下にPHPのコードが続きます。
    ※改行が多過ぎますエラー回避の為
-->
0162名無しさん@そうだ選挙に行こう2010/07/10(土) 12:27:26ID:???
<< やりたいコード �A >>
※>>161の続きです。

<?php
class TestClass
{
  global $test1;
  static public function TestFunctionA( )
  {
     $w = $test1;
     $w .= "さん";
     echo $w;
  }
  static public function TestFunctionB( )
  {
     $w = $test1;
     $w .= "ちゃん";
     echo $w;
  }
}
?>
0163名無しさん@そうだ選挙に行こう2010/07/10(土) 13:45:50ID:???
上級者・・・が集まるスレ・・・だと?
0164名無しさん@そうだ選挙に行こう2010/07/10(土) 21:45:48ID:???
上級釣り師
0165nobodyさん2010/07/12(月) 04:23:32ID:???
>>162
TestClass::$test1 = $_POST["name_mei"];
staticでなく、globalを使う理由は?

どちらにせよ上級者はやらん設計だと思うがw
0166nobodyさん2010/07/13(火) 21:18:11ID:gdo55WeB
htmlspecialchars関数についてお尋ねします。
この関数に文字列を2回通した場合、アンパサンドが二重に変換されてしまいます。
<→&lt;→&amp;lt; のようにです。

Ver5.2.3からは、第四引数「double_encode」が追加されたので、
これを防止する事ができると思いますが、
それ以前のバージョンの場合に回避方法はありませんでしょうか?
0167nobodyさん2010/07/13(火) 22:10:27ID:???
Ver5.2.3のソースコードを移植する
0168nobodyさん2010/07/14(水) 00:13:58ID:???
>>166
一度デコードするか、自作関数作ればいいんじゃない?

上級者を自負するなら、そもそも2回通すロジックを見直すべきだとは思うが・・・・・・
0169nobodyさん2010/07/14(水) 05:54:21ID:???
> 2回通すロジックを見直すべき

はげどう
01701662010/07/14(水) 07:24:12ID:???
>>168-169
レスありがとうございます。
上級の方がいそうなスレなのでお尋ねしました。

仰るとおり、2回通すロジックが問題ですが、
誤って2回通してしまうような場合も想定して、他にも方法がないか模索していました。
また、WAFのようなものでサニタイズされた場合、
ソースを修正しなければ、やはり二重に処理されてしまいますので、やはり何か手が打ちたかったのです。

ちなみに、1度デコード(あるいは&だけデコード)する方法も考えましたが、
ttp://www.asp-edita.jp/doda/one/doda5728_17.html
辺りや、リンクされている記事を読んで結局はコチラで質問した次第です。
0171nobodyさん2010/07/14(水) 13:23:56ID:???
htmlspecialcharsはあくまで
「HTML内に出力するときはエスケープしなきゃダメでしょ><!」
って関数なので、htmlとして出力する時にしか使わない。
てことはまったく使わないか、使うとしても1回。

(他作WAFだろうが自作PHPだろうが)「誤って」2回通すとすれば、
それは局所的なバグとかじゃなくて、思想・理解的な間違いだと思われる。
今後の似たようなバグの根絶のためにも、思想の見直しを。

そうは言っても…って話も、まあ、あるんだろうけど(笑)
0172nobodyさん2010/07/14(水) 15:34:35ID:uN19CneF
http://pc11.2ch.net/test/read.cgi/prog/1195719971/
01731662010/07/14(水) 20:41:25ID:???
>>171
皆さん、レスありがとうございました。
自動的にhtmlspecialcharsと同様にサニタイズするWAFが有る・無しにかかわらず、
同じソースコードを使いたかったのです(--;

「関数を2回通す」というのは悪い例えでした、すみません。
0174nobodyさん2010/07/15(木) 00:12:50ID:???
docomo携帯から閲覧した時に文字に下線が引かれる様にするには
どうすれば良いですか?

<U>文字の下線</U>

こんな感じのタグをhtmlに入れても
docomoからは下線が表示されません。
0175nobodyさん2010/07/15(木) 00:31:12ID:???
>>174
<hr>しか無理じゃね?
wordpressとかなら消えるんじゃね?
0176nobodyさん2010/07/15(木) 00:54:39ID:???
>>175
<U>タグが使え無いのは、docomo仕様なのでしょうか?
0177nobodyさん2010/07/15(木) 01:14:17ID:???
>>174
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1213056147
ちったー調べたら?

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body>
<u>アンダーライン引かれる?</u>
hrは?<br />
<hr />
</body>
</html>

ちなみに i モードHTMLシミュレータII で見た引かれてたよ
ktaystyleとか使ってるなら出力みよーよ
0178nobodyさん2010/07/15(木) 05:22:22ID:???
もはやPHPかすりもしない質問kt
0179nobodyさん2010/07/20(火) 18:13:27ID:???
http://test/test1.php

として通常は動作させるのを

http://test/test1/

として同じ挙動をさせるにはどうすれば良いでしょうか?
0180nobodyさん2010/07/20(火) 21:09:14ID:???
mod_rewrite
0181nobodyさん2010/07/20(火) 23:16:15ID:???
>>180
お勧めの解説サイトプリーズ
0182nobodyさん2010/07/21(水) 00:58:01ID:???
>>181
「mod_rewrite」でググってこい
■ このスレッドは過去ログ倉庫に格納されています