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

PHP上級者が集まるスレ

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/01/14(日) 16:53:46ID:???
ここでは他のPHPスレよりもより一層と高いレベルでの情報交換・体験談などを行うスレです。 
我こそはPHPプロフェッショナルだという方の書き込みをお待ちしております。 
0067602008/11/01(土) 19:36:22ID:/2wL5ARz
サンプルコードをもう一度きちんと書きました。

//�@///////////////////////
$s = "aaa111aaa222\naaa111aaa222\naaa111aaa222\naaa111aaa222";
preg_match_all('/(.+111)(.+222)/', $s, $match);
echo count($match[0], COUNT_RECURSIVE).'<br>';

//�A///////////////////////
$match[0]=array("aaa111aaa222", "aaa111", "aaa222");
$match[1]=array("aaa111aaa222", "aaa111", "aaa222");
$match[2]=array("aaa111aaa222", "aaa111", "aaa222");
$match[3]=array("aaa111aaa222", "aaa111", "aaa222");
echo count($match[0], COUNT_RECURSIVE).'<br>';

//�B///////////////////////
$match = array(
array("aaa111aaa222", "aaa111", "aaa222"),
array("aaa111aaa222", "aaa111", "aaa222"),
array("aaa111aaa222", "aaa111", "aaa222"),
array("aaa111aaa222", "aaa111", "aaa222"));
echo count($match[0], COUNT_RECURSIVE).'<br>';
0068602008/11/01(土) 19:37:04ID:/2wL5ARz
>>66さん
たびたびすいません。
まだ解決していませんでした。

�@は4が出力されます。
�Aは3が出力されます。
�Bは3が出力されます。
私は�@�A�Bはすべて、3が出力されるのが正しいと思っていました。
なぜなら$match[0]に入っている配列要素は3つなので。

>>65さん
�Bのケースと同じでしょうか?
これだと�@と同じ結果にはなりませんでした。
申し訳ありませんが、もう少し具体的にお願いできないでしょうか?
0069nobodyさん2008/11/01(土) 20:19:34ID:???
>>68
いや66で書いたのと同じことを繰り返すことになるけど
�@の$match[0]に入っているのは
array(4) {
[0]=>
string(12) "aaa111aaa222"
[1]=>
string(12) "aaa111aaa222"
[2]=>
string(12) "aaa111aaa222"
[3]=>
string(12) "aaa111aaa222"
}
だろ?なんでそれが3になると?
正規表現を誤解しているのか、count関数の挙動を誤解しているのか、さっぱり分からん。
0070nobodyさん2008/11/01(土) 20:23:04ID:???
まさか$matchと$match[0]の区別がつかないとか・・・
0071nobodyさん2008/11/03(月) 02:12:33ID:???
PHP5.3 (PHP6)の新機能についていけないです
無名関数とかラムダ関数とかクロージャとか静的遅延束縛とか、
理解できないです
そういったキーワードを検索して楽しそうに書いてたり、
愚痴ったりしてるブログを見ると、理解できない自分が寂しいです
情報系の大学に行った方がいいんでしょうか
独学は無理っぽいです
0072nobodyさん2008/11/03(月) 02:23:37ID:???
大学はそんなこと学ぶとこじゃないと思うがw
0073nobodyさん2008/11/03(月) 22:29:26ID:???
>>71
PHPは手っ取り早くWebアプリを開発するためのツールという側面が強いから、
そこらへんのことを学びたいなら他の言語で勉強した方がいいと思う。
PHPは最初は取っつきやすいけど、プログラミングの本質を学ぼうとするとすぐに壁に突き当たる。
最近の言語ではPythonが学習に向いていると思うけど、なにしろ日本語の情報が少ないしな。
0074nobodyさん2008/11/06(木) 10:30:09ID:???
>>42
PHP3は、んなだったね
0075nobodyさん2008/11/07(金) 20:58:40ID:???
IDE何使ってる?
Eclipse+phppluginは微妙に使いづらそうな印象を受けるし
sjisじゃないと文字化けするとか不穏な情報もある(古いが)
phpエディタはよさそうな印象だが使ってはいない

経験者情報plz
0076nobodyさん2008/11/07(金) 21:00:43ID:???
いつの話だよ
0077nobodyさん2008/11/07(金) 21:41:19ID:???
phpなんてもう何年も使ってないもので
0078nobodyさん2008/11/08(土) 00:26:17ID:???
viで編集・・・
0079nobodyさん2008/12/14(日) 00:39:45ID:???
phpとASP.net両方得意な人に質問があります。

生産性という面で言うとやはりASP.netの方が高いのでしょうか?
0080nobodyさん2008/12/14(日) 01:12:48ID:???
PHPだろ
0081nobodyさん2008/12/14(日) 02:15:12ID:???
PHPだね。
0082nobodyさん2008/12/14(日) 09:59:12ID:???
>>80 >>81
あんた方本気で言ってるの?

ASP.netだと画面のデザインなんてマウスのドラッグで簡単に出来るよ。
であとはサーバ側の処理を記述するだけで完了する。

どう考えてもASP.netの方が生産性が高い、としか思えないのですが。
もっともASP.netの場合にはライセンス料とかの兼ね合いもあって
同じスペックのレンタルサーバを借りたとしても高いけどね。
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」が追加されたので、
これを防止する事ができると思いますが、
それ以前のバージョンの場合に回避方法はありませんでしょうか?
■ このスレッドは過去ログ倉庫に格納されています