PHP上級者が集まるスレ at PHP
[2ch|▼Menu]
[1からを表示]
50:nobodyさん
08/10/09 18:07:47 .net
上級者の皆様に質問です。
文字列を50音順で並び替えたいのですが、
どうしたらよいでしょうか?
やはり一文字ずつ配列で確認した方がいいですか?


51:nobodyさん
08/10/09 18:11:48 .net
>>50
頭数文字を数値化して並べ替え後、同じ数値が並んでるかどうか比較して並べ替え。

52:nobodyさん
08/10/09 18:16:32 .net
>>51
頭数文字の数値化というのは、(あ)なら1で(い)なら2という意味ですか?

53:nobodyさん
08/10/10 09:40:02 .net
イイヨイイヨー

54:nobodyさん
08/10/31 19:40:09 Eo+dqOlV.net
preg_match_all()で得られる結果の多元配列を、
count()に渡したときのカウント数について教えて頂けないでしょうか。
カウント数がどうにも解せないのです。

↓これを実行すると、なぜか結果として4が表示されてしまいます。
$s = "aaa111aaa222\naaa111aaa222\naaa111aaa222\naaa111aaa222";
preg_match_all('/(.+111)(.+222)/', $s, $match);
echo count($match[0], COUNT_RECURSIVE);

では、preg_match_all()が返す多元配列と同等の多元配列を作って、
それをcount()に渡してみます。

↓この結果は3になる。この結果は正しい。
$match = array(
array(0, 1, 2),
array(0, 1, 2),
array(0, 1, 2),
array(0, 1, 2)
);
echo count($match[0], COUNT_RECURSIVE);

preg_match_all()の返す多元配列は特殊なものなのでしょうか?
(うーん、そんな馬鹿な・・・)


55:nobodyさん
08/10/31 20:45:48 .net
質問スレがあるのにこんなところで聞くというセンスもどうかと思うが、
まずなぜ$match[0]をvar_dumpしてみようと思わないのかな
↓結果
array(4) {
[0]=>
string(12) "aaa111aaa222"
[1]=>
string(12) "aaa111aaa222"
[2]=>
string(12) "aaa111aaa222"
[3]=>
string(12) "aaa111aaa222"
}


56:nobodyさん
08/10/31 23:58:11 .net
レンザバでiconvを使おうとしたらモジュールに組み込まれてなくて
phpからJavaのJNIみたいに直接libiconv.soを呼び出せないかと思ったのですが
出来ますか?


57:nobodyさん
08/11/01 00:08:17 .net
やってみれば

58:nobodyさん
08/11/01 00:20:57 .net
できるならやってみます

59:nobodyさん
08/11/01 00:23:11 .net
どんだけ〜

60:nobodyさん
08/11/01 07:37:24 /2wL5ARz.net
>>55さん
preg_match_all()の結果と同じ配列を作るには

$match[0]=array("全体1","全体2","全体3");
$match[1]=array("部分1","部分2","部分3");
$match[2]=array("部分A","部分B","部分C");

と、しないといけなかったんですね・・・。
ありがとうございます。なぞが解けました。
多元配列を正しく理解していませんでした。

61:nobodyさん
08/11/01 11:28:32 .net
>>60
何を言ってるんだ?
まとめて代入しても同じ

62:60
08/11/01 17:51:55 /2wL5ARz.net
>>61さん
すいません。どういう意味なのでしょうか?

63:nobodyさん
08/11/01 18:09:48 .net
>>62
61じゃないけど>>60のほうが意味わからない。
何を想定してどんなふうに想定外だったのかということがはっきりしないな。


64:60
08/11/01 18:17:53 /2wL5ARz.net
>>63さん
要するに、preg_match_all()でマッチしたときに返される多元配列と
同じ形の多元配列を自分で作るにはどうしたらいいのか?
ということがわからなかったです。

65:nobodyさん
08/11/01 18:22:04 .net
$match = array(array(array(...

66:nobodyさん
08/11/01 18:44:31 .net
>>64
array(4) {
[0]=>
string(12) "aaa111aaa222"
[1]=>
string(12) "aaa111aaa222"
[2]=>
string(12) "aaa111aaa222"
[3]=>
string(12) "aaa111aaa222"
}
のcountは4になって当然。
なのに3になると思ってたのはなぜ?
要点だけ言われても余計分からないから全部言ってくれ。
いや解決したんならもういいんだけど、単なる雑談として。

67:60
08/11/01 19:36:22 /2wL5ARz.net
サンプルコードをもう一度きちんと書きました。

//@///////////////////////
$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>';


68:60
08/11/01 19:37:04 /2wL5ARz.net
>>66さん
たびたびすいません。
まだ解決していませんでした。

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

>>65さん
Bのケースと同じでしょうか?
これだと@と同じ結果にはなりませんでした。
申し訳ありませんが、もう少し具体的にお願いできないでしょうか?

69:nobodyさん
08/11/01 20:19:34 .net
>>68
いや66で書いたのと同じことを繰り返すことになるけど
@の$match[0]に入っているのは
array(4) {
[0]=>
string(12) "aaa111aaa222"
[1]=>
string(12) "aaa111aaa222"
[2]=>
string(12) "aaa111aaa222"
[3]=>
string(12) "aaa111aaa222"
}
だろ?なんでそれが3になると?
正規表現を誤解しているのか、count関数の挙動を誤解しているのか、さっぱり分からん。

70:nobodyさん
08/11/01 20:23:04 .net
まさか$matchと$match[0]の区別がつかないとか・・・

71:nobodyさん
08/11/03 02:12:33 .net
PHP5.3 (PHP6)の新機能についていけないです
無名関数とかラムダ関数とかクロージャとか静的遅延束縛とか、
理解できないです
そういったキーワードを検索して楽しそうに書いてたり、
愚痴ったりしてるブログを見ると、理解できない自分が寂しいです
情報系の大学に行った方がいいんでしょうか
独学は無理っぽいです

72:nobodyさん
08/11/03 02:23:37 .net
大学はそんなこと学ぶとこじゃないと思うがw

73:nobodyさん
08/11/03 22:29:26 .net
>>71
PHPは手っ取り早くWebアプリを開発するためのツールという側面が強いから、
そこらへんのことを学びたいなら他の言語で勉強した方がいいと思う。
PHPは最初は取っつきやすいけど、プログラミングの本質を学ぼうとするとすぐに壁に突き当たる。
最近の言語ではPythonが学習に向いていると思うけど、なにしろ日本語の情報が少ないしな。

74:nobodyさん
08/11/06 10:30:09 .net
>>42
PHP3は、んなだったね

75:nobodyさん
08/11/07 20:58:40 .net
IDE何使ってる?
Eclipse+phppluginは微妙に使いづらそうな印象を受けるし
sjisじゃないと文字化けするとか不穏な情報もある(古いが)
phpエディタはよさそうな印象だが使ってはいない

経験者情報plz

76:nobodyさん
08/11/07 21:00:43 .net
いつの話だよ

77:nobodyさん
08/11/07 21:41:19 .net
phpなんてもう何年も使ってないもので

78:nobodyさん
08/11/08 00:26:17 .net
viで編集・・・

79:nobodyさん
08/12/14 00:39:45 .net
phpとASP.net両方得意な人に質問があります。

生産性という面で言うとやはりASP.netの方が高いのでしょうか?

80:nobodyさん
08/12/14 01:12:48 .net
PHPだろ

81:nobodyさん
08/12/14 02:15:12 .net
PHPだね。

82:nobodyさん
08/12/14 09:59:12 .net
>>80 >>81
あんた方本気で言ってるの?

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

どう考えてもASP.netの方が生産性が高い、としか思えないのですが。
もっともASP.netの場合にはライセンス料とかの兼ね合いもあって
同じスペックのレンタルサーバを借りたとしても高いけどね。


83:nobodyさん
08/12/14 11:54:39 .net
PHPです。

84:nobodyさん
08/12/14 13:25:18 vrT8sAoj.net
ぐぐってもみつけられなかったんで上級者さん教えてください
formからアップロードしたzipファイルを解凍するスクリプト書いてるんですが、
解凍する前にzipファイルの破損をチェックするのってどうやったらできますか?

85:nobodyさん
08/12/14 14:07:31 .net
質問スレでどうぞ

86:nobodyさん
08/12/14 14:17:08 .net
>>85
すれ違いすみませんでした

87:nobodyさん
08/12/14 14:32:36 .net
>>82
一概にいえないだろ。
PHPでもView部分はWebオーサリングソフト使ってテンプレートエンジンかませば同様に
GUIで画面のデザインできるし、だいたいView部分だけを根拠に「どう考えても」は飛躍しすぎ。

88:nobodyさん
08/12/14 18:30:55 .net
>>87
VSを抜く
 Webオーサリングソフト使ってテンプレートエンジン
はありますか?


話はそれからだ。

89:nobodyさん
08/12/25 06:13:30 .net
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の不具合なんでしょうか?
それとも、これが仕様なのでしょうか?


90:nobodyさん
08/12/28 11:09:37 .net
>>88
DreamWeaverは便利ですよ^^

91:nobodyさん
09/01/08 05:23:45 .net
PHPで、proxy経由でSSL通信をしたいです。
PEAR::HTTP_Requestでは未サポートであることがわかりました。
PHPからwgetを起動する方法も考えましたが、シンプルな方法とは
いえないので、PHPだけで実現したいです。

良い方法をご存知の方、教えてください。


92:nobodyさん
09/03/03 01:30:53 hdsn1ZlD.net
>>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みたいな感じで俺は好きだ

93:nobodyさん
09/03/28 02:06:29 .net
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 ;
;;;;;;;;;;;;;;;;;;;


94:nobodyさん
09/06/09 10:22:17 .net
>>75
IDEはZS
エディタはTextmate

95:nobodyさん
09/06/17 22:51:20 .net
つ Komodo Edit

96:nobodyさん
09/11/30 18:40:16 .net
これが噂の上級者が集まるスレか。流石だな。

97:nobodyさん
09/12/01 22:13:32 .net
私はPHP上級者ですがどうしてもわからないことがありますか?

98:nobodyさん
10/01/01 22:37:35 .net
PHPで指定したディレクリにあるjpg|jpeg|gif|pngの画像枚数を取得したいんだが、教えてくれ。

99:nobodyさん
10/01/02 00:26:34 .net
マルチ乙

100:nobodyさん
10/01/04 03:31:33 .net
PHP6使う?

101:nobodyさん
10/01/04 19:29:16 .net
>>100
5

102:nobodyさん
10/01/04 21:02:11 .net
>>100
6

103:nobodyさん
10/01/14 19:40:22 .net
ls 使ってチェックだな。

104:nobodyさん
10/03/11 17:14:56 .net
readdir()で検索してpreg_match()で照合すればよくない?


105:nobodyさん
10/03/27 19:43:37 .net
php6のオブジェクト指向ってphp5と同じですか?

106:nobodyさん
10/04/11 19:33:45 .net
>>105
ここで聞いたほうがいい。
URLリンク(pc11.2ch.net)

107:nobodyさん
10/06/12 00:33:14 RYMW4bMX.net
ここの上級者ってやっぱりオブジェクト指向でPHPプログラム作ってるんですか?

108:nobodyさん
10/06/12 03:36:45 .net
規模による

上級者じゃないけど

109:nobodyさん
10/06/12 06:41:28 .net
必要に応じて。
PEARとか使うだけでもある意味オブジェクト指向だしな

110:nobodyさん
10/06/12 09:20:35 .net
規模による?必要に応じて?
PHP5以上なら常に使えよ。

111:nobodyさん
10/06/12 23:27:14 .net
なんで?

112:nobodyさん
10/06/13 04:09:02 .net
オブジェクト指向は常に使うべきである

<?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 '';
}
}


113:nobodyさん
10/06/13 12:42:32 .net
コンストラクタで返り値返せないよ

114:nobodyさん
10/06/13 13:10:40 .net
>>112
これ適当?

115:nobodyさん
10/06/13 14:35:11 .net
無茶苦茶じゃねーかww

116:nobodyさん
10/06/13 17:13:20 .net
>>112
釣りにしてもひどすぎるぞ

117:nobodyさん
10/06/13 17:17:49 .net
てかこのスレ、下スレと何が違うの?
初心者が上級者のふりして書き込む厨房専用スレ?

118:nobodyさん
10/06/15 09:30:26 .net
上級者用の下らない質問スレでしょう。

119:nobodyさん
10/06/18 16:40:47 .net
これ見てよ↓
URLリンク(livedoor.2.blogimg.jp)
ばらまこうぜ!


120:nobodyさん
10/06/21 14:15:37 CBlb9XeO.net
PHPでなにができたら上級者と言える?

121:nobodyさん
10/06/22 02:37:39 .net
2chのクローン作れば私が褒めてあげる。

122:nobodyさん
10/06/22 11:31:47 .net
>>120
ハローワールド

123:nobodyさん
10/06/22 20:31:27 .net
>>121
2chのクローンなんてblogサンプルがそこらじゅうに出回ってるし、
簡単に作れる。寧ろそのサンプルの方が2chより高機能だろ。

124:nobodyさん
10/06/25 21:53:45 .net
P2P掲示板作ってよ!

125:nobodyさん
10/06/26 21:56:49 nh7WDbu8.net
>>123
いや、んなこと聞いてない・・・・

126:nobodyさん
10/06/27 15:28:48 .net
私は上級者なのにechoとprintの違いがわかりません。どうしてですか?

127:nobodyさん
10/06/27 17:00:45 .net
タイピングがとろいからじゃね?

128:nobodyさん
10/06/28 12:18:08 .net
PHPで VB.netみたく optional 的な記述方法はありませんか?

129:nobodyさん
10/06/28 13:25:54 WPgH34jW.net
今、phpでグラフを作成しておりまして、配列中にある最大値と最小値を求めて
それぞれをグラフのy軸の最大値、最小値としていましたが、それだと配列内の
最大値、最小値のスケールでしかグラフが生成できません。

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

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

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

よろしくお願いします


130:nobodyさん
10/06/28 15:39:09 PXXo1bnr.net
グラフの余白値 = 最大値 × 0.5
グラフ最大値 = 最大値 + グラフの余白値
グラフ最小値 = 最小値 - グラフの余白値

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



131:nobodyさん
10/06/28 17:22:03 .net
>>128
を誰か答えてちょ。

132:nobodyさん
10/06/28 20:00:36 .net
あるよ

133:nobodyさん
10/06/28 20:11:56 .net
>>132
教えてちょ。

134:nobodyさん
10/06/28 20:13:47 .net
態度がふざけてるからやだ

135:nobodyさん
10/06/28 20:42:28 .net
>>134
しね

136:nobodyさん
10/06/30 11:55:48 .net
明るいoptional
明るいoptional
みんな家中なんでもoptional

137:nobodyさん
10/07/07 01:15:08 .net
クラス作るときにpublicとprivateしか使わないのは
一発で雑魚だと分かるね。
protectedの意味を知らないらしいw

138:nobodyさん
10/07/07 04:26:58 .net
型指定が曖昧なPHPにおいてprotectedは危険因子だと思ってあまり使っていない。

139:nobodyさん
10/07/07 08:01:03 .net
.Net開発の場合には、protectedとかは普通に使うけど、
PHPでは使わないなぁ。

public と private しか使わない。


PHPごときで何を粋がっているんだか。

140:nobodyさん
10/07/07 21:21:53 .net
>>139
雑魚の典型だな。
なんでPHPの時だけprotected使わないんだよ。
理由を簡潔に述べよ。

141:nobodyさん
10/07/07 21:34:59 .net
>>140
使う必要が無い。
phpだけしか使えない馬鹿へ。

142:nobodyさん
10/07/07 22:11:57 .net
>>141
仕事では殆どJavaだよ。
使う必要が無い?オブジェクト指向の基本も分からん雑魚は消えろ。

143:nobodyさん
10/07/07 23:02:03 .net
Javaなんて古くせー

今は、ASP.netだよ。タコ。

144:nobodyさん
10/07/07 23:45:24 .net
なんだガキか。
ま、言語でどうこう言ってるようなのは程度が知れてる。

145:nobodyさん
10/07/07 23:50:32 .net
protectedを使うか使わないかで上級者判定しちゃうあたりが、
言語覚え立ての素人っぽくて恥ずかしい。


146:nobodyさん
10/07/08 13:31:46 .net
URLリンク(cmf.ohtanz.com)

この人のプログラム酷い

147:nobodyさん
10/07/08 23:46:56 .net
>>145
でも実際お前は使い方分からないんだろ?
当たってんじゃんw

148:nobodyさん
10/07/09 01:09:23 .net
URLリンク(hoge_domain) として通常アクセスするのを

URLリンク(hoge_domain) でアクセス出来る様にしたいのですが、

mode_rewrite でどういう設定をすれば良いのでしょうか?

149:nobodyさん
10/07/09 01:12:33 .net
protectedを使えるのは上級者の証

<?php
print "protected";
?>

150:nobodyさん
10/07/09 01:40:03 .net
上級者の証じゃねーよ。当たり前のことだ。
protectedの使い方が分からないのは雑魚の証

151:nobodyさん
10/07/09 02:05:35 .net
むしろpublicとprotectedしか使わない俺が来ましたよ。

152:nobodyさん
10/07/09 06:34:20 .net
privateとgetter/setter派が来ましたよ。
private以上の権限が必要ならprotectedにしてやらんこともないが、
それが美しいとは思えないね。

で、何でprotected如きで上級者判定してんのw?

153:nobodyさん
10/07/09 06:56:15 .net
継承先で使いたいメソッドはどうすんの

154:nobodyさん
10/07/09 07:28:38 .net
>>153
うちの職場 public wwwwwwww

155:nobodyさん
10/07/09 07:32:34 .net
>>152
ソースがムダに長くなるからやめれ

156:nobodyさん
10/07/10 02:37:53 .net
protectedなんて、
TemplateMethodを適用する時か、
Decoratorを適用した基底クラスを作る際の移譲先を保持する時ぐらいだな。

>>155
ライブラリの外に公開するValue Objectの場合、getter/setter型にしておいた方が仕様変更に追随しやすくできるよ。


157:名無しさん@そうだ選挙に行こう
10/07/10 10:15:04 .net
全部publicでいいよもう
ってBASICerが言ってました

158:名無しさん@そうだ選挙に行こう
10/07/10 11:40:57 .net
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";
  }
}


159:名無しさん@そうだ選挙に行こう
10/07/10 11:59:11 .net
>>158
クラスの定義にglobalを記述したい理由が分からん。
staticじゃだめなの?

160:名無しさん@そうだ選挙に行こう
10/07/10 12:03:10 .net
>>159
<?php
<html>
<head></head>
<body>
<!-- -->

</body>
</html>

161:名無しさん@そうだ選挙に行こう
10/07/10 12:10:34 .net
>>159
途中で誤爆してしまいました。すみません。
用は以下の用な事をしたいのです。

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

<?php
  //POSTデータを取得しグローバル変数へ格納
  $test1 = $_POST["name_mei"];
?>
<html><head></head><body>
  <?php
       TestClass::TestFunctionA();
       TestClass::TestFunctionB();
  ?>
</body></html>
<!--
    以下にPHPのコードが続きます。
    ※改行が多過ぎますエラー回避の為
-->

162:名無しさん@そうだ選挙に行こう
10/07/10 12:27:26 .net
<< やりたいコード 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;
  }
}
?>


163:名無しさん@そうだ選挙に行こう
10/07/10 13:45:50 .net
上級者・・・が集まるスレ・・・だと?

164:名無しさん@そうだ選挙に行こう
10/07/10 21:45:48 .net
上級釣り師

165:nobodyさん
10/07/12 04:23:32 .net
>>162
TestClass::$test1 = $_POST["name_mei"];
staticでなく、globalを使う理由は?

どちらにせよ上級者はやらん設計だと思うがw

166:nobodyさん
10/07/13 21:18:11 gdo55WeB.net
htmlspecialchars関数についてお尋ねします。
この関数に文字列を2回通した場合、アンパサンドが二重に変換されてしまいます。
<→&lt;→&amp;lt; のようにです。

Ver5.2.3からは、第四引数「double_encode」が追加されたので、
これを防止する事ができると思いますが、
それ以前のバージョンの場合に回避方法はありませんでしょうか?

167:nobodyさん
10/07/13 22:10:27 .net
Ver5.2.3のソースコードを移植する

168:nobodyさん
10/07/14 00:13:58 .net
>>166
一度デコードするか、自作関数作ればいいんじゃない?

上級者を自負するなら、そもそも2回通すロジックを見直すべきだとは思うが・・・・・・

169:nobodyさん
10/07/14 05:54:21 .net
> 2回通すロジックを見直すべき

はげどう

170:166
10/07/14 07:24:12 .net
>>168-169
レスありがとうございます。
上級の方がいそうなスレなのでお尋ねしました。

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

ちなみに、1度デコード(あるいは&だけデコード)する方法も考えましたが、
URLリンク(www.asp-edita.jp)
辺りや、リンクされている記事を読んで結局はコチラで質問した次第です。


171:nobodyさん
10/07/14 13:23:56 .net
htmlspecialcharsはあくまで
「HTML内に出力するときはエスケープしなきゃダメでしょ><!」
って関数なので、htmlとして出力する時にしか使わない。
てことはまったく使わないか、使うとしても1回。

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

そうは言っても…って話も、まあ、あるんだろうけど(笑)

172:nobodyさん
10/07/14 15:34:35 uN19CneF.net
スレリンク(prog板)

173:166
10/07/14 20:41:25 .net
>>171
皆さん、レスありがとうございました。
自動的にhtmlspecialcharsと同様にサニタイズするWAFが有る・無しにかかわらず、
同じソースコードを使いたかったのです(--;

「関数を2回通す」というのは悪い例えでした、すみません。


174:nobodyさん
10/07/15 00:12:50 .net
docomo携帯から閲覧した時に文字に下線が引かれる様にするには
どうすれば良いですか?

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

こんな感じのタグをhtmlに入れても
docomoからは下線が表示されません。

175:nobodyさん
10/07/15 00:31:12 .net
>>174
<hr>しか無理じゃね?
wordpressとかなら消えるんじゃね?

176:nobodyさん
10/07/15 00:54:39 .net
>>175
<U>タグが使え無いのは、docomo仕様なのでしょうか?

177:nobodyさん
10/07/15 01:14:17 .net
>>174
URLリンク(detail.chiebukuro.yahoo.co.jp)
ちったー調べたら?

<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とか使ってるなら出力みよーよ

178:nobodyさん
10/07/15 05:22:22 .net
もはやPHPかすりもしない質問kt

179:nobodyさん
10/07/20 18:13:27 .net
URLリンク(test)

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

URLリンク(test)

として同じ挙動をさせるにはどうすれば良いでしょうか?

180:nobodyさん
10/07/20 21:09:14 .net
mod_rewrite

181:nobodyさん
10/07/20 23:16:15 .net
>>180
お勧めの解説サイトプリーズ

182:nobodyさん
10/07/21 00:58:01 .net
>>181
「mod_rewrite」でググってこい

183:nobodyさん
10/07/23 11:36:54 AgQn7g4l.net
PHPで車は動かせますか?

上級者なら出来るって聞いたものでここで質問させていただいてます。

184:nobodyさん
10/07/23 15:31:24 .net
できます。次

185:nobodyさん
10/07/24 13:56:23 C0x7DFuy.net
このスレのレスはPHPで自動化されているって本当ですか?

186:nobodyさん
10/07/24 19:46:46 .net
本当です。次

187:nobodyさん
10/07/24 20:14:35 .net
なんでpdoモジュールを書いてる奴らはソースをどっちかに纏めないんだ?

188:nobodyさん
10/07/26 07:56:54 .net
>>187
どういういみでござるか?

189:PHP@最強戦士
10/07/26 16:55:45 x+pw7Ejc.net
PHPいいですよね〜クソさ加減が

PHPつかっててきずいたんですが PHPのコミュって
珍言ばっかりほざいてる人たちがいてとても素晴らしいと思いますよ
年齢層が低くて 頭の低レベルな人たちと交流できるので素晴らしいです
ustreamでPHPユーザのクソ発言をみると喜んじゃいます!!おお

それとPHPが無いと死にそうです PHPはド素人でもできるので
html=PHPですよね

PHPの良さはPHPがわかればhtmlとCSSがわかるってところですよね
脆弱性が多いところもいいんですよ
ワタシはPHP 20年つかってるんですが 最高なのでやめれませーーーーーーーーーーーん!!!!!!!!!!

趣味はPHPユーザーの珍言、クソブログを見る事です^^

Perlやってる人ってバカですよね
この前Perlやってる人に話かけられました

Perlユーザー「君、Unixとかしってるかい?PHPみたいなくそ言語やってておもしろい?」
ワタシ「unixとか時代遅れですね そんなの知りません! いまどきPHPですよ! perlとか本当時代遅れですね!! 何年前の人ですか?」
Perlユーザー「あんたなめてんの?」
ワタシ「キャーこわい! PHPをばかにしないでください! PHPがあればwebアプリつくれるんですよ?」
Perlユーザー「ねえ ターミナルひらいて sudo rm -rf / ってうって」
ワタシ「怖いわ!ははい! やめてください 開きました うちました」
Perlユーザー「そのまま放置しといて」
ワタシ「なんかパソコン起動しなくなっちゃいました〜泣」

190:nobodyさん
10/07/26 17:11:53 .net
PHPはいいですね

まで読んだ。

191:nobodyさん
10/07/26 17:22:08 x+pw7Ejc.net
>>190
てめえはPHPユーザーだろ?
はやく氏ねよwwwwwwてめえみたいなPHPユーザーが消えれば平和になる

192:nobodyさん
10/07/26 17:25:32 .net
てめえはP

まで読んだ。

193:nobodyさん
10/07/26 17:45:49 .net
八百忠が消えれば平和になる

まで読んだ

194:PHP=クソ(笑)
10/07/26 23:34:55 z/NbSmjH.net
名前の通りです(笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑)

195:nobodyさん
10/07/27 00:42:12 .net
道ばたに落っこちているウンコに対して、
「ウンコ!このウンコ!・・・おまえはウンコ(笑)・・・ウンコ(笑笑笑)」
と一人叫んでいる >>194 さんを想像したら心がほっこりした

その余裕が顔に出たのか、モテキ到来で彼女が出来ました。
本当にありがとうございました。

196:名無しさん@お腹いっぱい。
10/07/27 07:38:03 Q+p+NFYS.net
だからなに?てめえは彼女が出来てなんなの?
バカじゃん?それがどうかしたの?いちいち報告しなくていいよなあ?
御前等みたいなゴミは仲良しグループで仕事してんだろこら?
なあ?てめえみたいなゴミは死ねよ今すぐ死ねよ
まじしねよ!!!!!!コネコネしてんじゃねえよ死んでほしい

てめえブログとかに沢山言語自慢してそうなやつだな かっこつけてhaskellとか
沢山言語やってそうな御前は八方美人なんだろうな うぜえんだごみ まじきえろ

197:nobodyさん
10/07/27 09:46:44 .net
まじきえろ まで読んだ

198:nobodyさん
10/07/27 11:11:26 .net
PHP技術者認定もってるひといまsか?

199:nobodyさん
10/07/27 14:28:08 .net
クソクソ言ってる方がキレがあったな。

>>198
Zendのやつ?あれってまだあるの?

200:nobodyさん
10/07/29 10:30:15 .net
上級者って下品

201:nobodyさん
10/07/29 22:02:33 .net
A.htmlに名前(文字列)を入力し、
A.html内の実行ボタンがクリックされたら、

GETパラメータに入力値(文字列)をエンコーディングした上で
連結しA.html内に定義した<iframe>のsrcにurlを
JavaScriptで動的に作成(指定)する事により、
B.php画面の処理結果をA.html内に定義した<iframe>内に描画
したいと思っています。

しかし、srcにはURLエンコードを正常に行い指定しているにも関わらず、
入力値に「#」が入っていると「#」以降の文字列が失われてしまいます。
一体なぜでしょうか?

■A.html
  [名前] あいうえお#かきくけこ
  [実行(ボタン)]

  ※JavaScriptにより内部的に生成されるURL
  URLリンク(test_site)あいうお#かきくけこ

■B.php
  //名前
  $name = $_GET["name"];
  →ここで $name には、 あいうえお しか入らないです。
  本当は、 あいうえお#かきくけこ まで取得したいのですが。

宜しくお願い致します。

202:nobodyさん
10/07/29 22:33:33 .net
>>201
#はページ内リンクだからかね。

203:nobodyさん
10/07/29 22:52:57 .net
>>202
どうやったら「#」という文字列を渡す事が出来ますか?

204:nobodyさん
10/07/30 01:56:11 .net
エンコード

205:nobodyさん
10/08/01 14:33:20 .net
>>204
エンコードはしてるらしいが

206:nobodyさん
10/08/01 14:40:29 .net
>>204 >>205
両方アホ

207:nobodyさん
10/08/31 00:19:19 .net
フォームからファイルアップロードするときに、
大きいサイズだとけっこう時間がかかります。
アップロード状況をプログレスバー等でリアルタイムに視覚化するには
どのような処理をすればよいのでしょうか?

208:nobodyさん
10/08/31 01:55:16 .net
apcでできなかったっけ

209:nobodyさん
10/08/31 15:41:41 .net
PHP_APCってレンタルサーバでもインストールできます??

210:nobodyさん
10/08/31 15:45:18 .net
php.ini弄らないといけないみたいなので、ムリっぽいですね><

211:nobodyさん
10/09/09 19:31:47 .net
掲示板のようなシステムで、投稿内容に
JavaScriptやIframeなどのタグがあったらNGにするには
どのように処理されてますか?
単純な文字列検索だけだと、逃げ道がいろいろありますよね。。。

212:nobodyさん
10/09/09 22:07:14 .net
適当でいーんじゃね?
抜けられて困る事もあまり無いし
スパムだったら都度フィルタ調整するしか無いだろうし
許可タグはホワイトリストだべ。

213:nobodyさん
10/09/10 20:05:06 .net
適当ってどれくらい??
こんなんでいいの?

if (preg_match("/<script/i", $body)) {
return false;
}

214:nobodyさん
10/09/13 01:34:52 .net
たとえば掲示板プログラムで、
投稿本文にタグの閉じ忘れがあったらレイアウト崩れますよね。
プロのみなさんは、どうやって対応されていますか?

215:nobodyさん
10/09/13 01:47:00 .net
1. そもそもタグを許可するような仕様を提案することはない。
2. やむなく作るなら、閉じ忘れを警告し、閉じないと投稿できないようにする。

216:nobodyさん
10/09/13 20:08:57 .net
タグありにしたいんです><
閉じ忘れの検出はどのように実装しますか?

217:nobodyさん
10/09/13 21:01:05 .net
>>216
tidyで修正出来なかったっけ?

218:nobodyさん
10/09/14 02:39:32 .net
JavaScriptで実装する。
送信ボタンを押したときか、テキストエリアからフォーカスが外れるタイミングで。

正規表現で<tagと</tagをペアで数えていけばいいんじゃね?
自分なら厳密にやるよりはソースがシンプルなほうを選んで実装するな。
「親切で指摘してあげるんですよ^^^」的な上から目線を根拠に。

219:nobodyさん
10/09/14 13:43:42 LyPWJsrC.net
<br>なんかはどうする?

220:nobodyさん
10/09/14 14:00:50 .net
ん?チェックする対象にしなけりゃいいんじゃない?
それとも<br>が100個書かれたときのレイアウト崩れまで考慮すんの?
それやるとキリがないからやりたくないな…。

221:nobodyさん
10/09/15 04:01:29 .net
>>211
strip_tags() で不満なら HTML Purifier

222:nobodyさん
10/09/15 12:55:31 .net
strip_tagじゃjavascriptのコードは消せませんよ

223:nobodyさん
10/09/16 02:50:48 .net
>>222
だからその後まで書いてるんじゃん。バカ?

224:nobodyさん
10/09/16 10:29:22 .net
認識するタグは変更出来なかったっけ

225:nobodyさん
10/09/17 13:09:32 .net
正規表現で消せばいいだろ


226:nobodyさん
10/09/17 13:41:52 .net
似非上級者の集うスレはここですか?

227:nobodyさん
10/09/17 13:45:23 .net
>>226は下のスレに誘導
スレリンク(php板)


228:nobodyさん
10/09/22 17:57:31 .net
PHP上級者(笑)

229:nobodyさん
10/09/22 19:00:53 .net
PC iPhone 携帯 いずれからアクセスされたも指定したURLへ飛ばすにはどうすれば良いでしょうか?
当然携帯電話の場合には、JavaScriptが使えないので Location等を使う事になると思うのですが、
携帯キャリアを問わず正常にページ遷移させる事が出切るのか不安です。

230:nobodyさん
10/09/22 19:07:17 .net
ゆーざーえーじぇんとー^^

231:nobodyさん
10/09/22 19:08:05 .net
URLリンク(php.net)
header("Location: うんたら")

232:nobodyさん
10/09/22 21:00:14 .net
ドコモの古いので無ければ、まあ

233:nobodyさん
10/09/27 00:08:18 .net
PHP5のオブジェクト指向開発で
protectedを一切使わない奴はすべからく雑魚PGである。

234:nobodyさん
10/09/27 00:52:33 .net
雑魚PGの俺に、protetedとprivateの使う場面の違いを教えてくれ

235:nobodyさん
10/09/27 17:58:35 .net
protectedは欠陥商品
使うヤツが雑魚

236:nobodyさん
10/09/30 19:41:34 .net
do-while と Exception を使わない奴は間違い無く雑魚PG

237:nobodyさん
10/09/30 20:34:11 .net
最近覚えた単語を使いたいのか
組み込み系では使うがPHPで使う機会ってほとんどないけどな

238:nobodyさん
10/10/01 00:14:13 .net
使わなくても書けるけど、使えばコードがスマートになる場面は多々ある。
>>237が雑魚PGという事は良くわかった。

239:nobodyさん
10/10/01 01:02:57 .net
●初心者の考える関数/メソッド
・成功した場合は配列を返す
・エラーの場合は1〜nのエラーコード返す
・第1引数&$errを渡した場合はエラーが代入される。
・第2引数&$msgを渡した場合はメッセージが代入される。

●まともな関数/メソッド
・戻り値は配列
・エラー時は XxxException が throw される

240:nobodyさん
10/10/02 19:57:41 .net
致命的じゃないものはfalseを返すとかはよくやる
try(func())catch(XxxException $e){die();}より
if(func()===false){die();}のがてっとりばやいし
特に複数種類Exception出すと面倒だし

参照渡しは絶対に使わないけどな

241:nobodyさん
10/10/02 20:45:24 .net
このスレで上級者は1割に満たないだろ。

9割はカッスカス

242:nobodyさん
10/10/02 23:39:41 .net
1人もいないよ

243:nobodyさん
10/10/02 23:53:20 .net
241だが

俺は少なくとも上級者に入ってるので一人は先ずありえない。

244:nobodyさん
10/10/03 00:06:59 .net
オレも同じようなこと書こうとしたけど恥ずかしくてやめました

245:nobodyさん
10/10/06 07:23:47 .net
Facebookに勤めてるPHPハッカーとか憧れるわ
どんなコード書いてるんだろ

246:nobodyさん
10/10/09 04:01:25 .net
作りたいものがない!

247:nobodyさん
10/10/09 18:35:21 .net
上級者ってどこからなの?
という疑問。

248:nobodyさん
10/10/10 00:59:01 .net
別スレで分る人がいなかったのでこちらにて質問させて下さい。

Googleで特定サイトの(画面上から入力されたURL)ページランクを

調べるにはどうすれば良いでしょうか?

GoogleのAPIをコールするのかな?


249:nobodyさん
10/10/10 01:25:50 .net
>>248
URLリンク(hm2k.googlecode.com)

URLリンク(www.hm2k.com)

GoogleにGETでアクセスしてるっぽい。
ソース直張。

250:nobodyさん
10/10/10 01:44:06 .net
>>249
サンクス

流石上級者が集まるスレだけあるわw

251:nobodyさん
10/10/10 02:53:51 .net
>>250
いや、普通にググっただけだよ。
実はGoogleAPIでもいけるんじゃないか。。。とかはわからん。

252:nobodyさん
10/10/11 15:44:05 .net
ちょっと質問なんですが
Googleで特定のキーワードが何回検索されたかを調べる方法ってありますか?
出来れば、特定の日に何回検索されたかです。

例) 赤い一輪車 というキーワードが 10月10日(日) に15回 といった具合です。

253:nobodyさん
10/10/11 15:51:53 .net
>>252
Google Trends, AdSense管理画面 以上のことは無理。

はい次

254:nobodyさん
10/10/11 15:54:31 .net
>>253
つまりある程度検索上位ワードでないと
無理という事でしょうか?

Google Trends で適当にキーワードを入力して
検索したところ、

検索ボリュームが不足しているため「寄与等」のグラフを生成できません。


というエラーメッセージが表示されてしまいました。

255:nobodyさん
10/10/11 16:12:45 .net
そうですね。

256:nobodyさん
10/10/11 16:20:05 .net
なんとかならないですか?

257:nobodyさん
10/10/11 16:24:57 .net
なりません。

258:nobodyさん
10/10/20 14:33:30 .net
mod_rewriteの正規表現が苦手です。

皆さんはどうやって勉強しましたか?


また、お勧めの解説サイトを教えて下さい。

259:nobodyさん
10/10/20 15:39:30 .net
2chでスレッドを立てた場合
どの位レスが無いとDAT落ちしてしまうのでしょうか?
※お気に入りスレッドの保守ツールを作ろうと考えています。

260:nobodyさん
10/10/20 17:52:52 .net
phpからjavascript に配列渡す方法おねがいします

261:nobodyさん
10/10/20 20:25:15 .net
ドメインを検索した結果
Organization:Personal

というのが出て来るんですが
これってどういう意味でしょうか?


262:nobodyさん
10/10/20 20:35:26 .net
>>258
PHP関係ないです。正規表現スレで聞いてください。
>>259
PHP関係ないです。2chを開発または維持保守してる人達に聞いてください。
>>260
PHP半分だけ関係あります。echoなりprintでjavascriptコード吐けばOKです。
>>261
PHP関係ないです。英和辞書引いてください。




263:nobodyさん
10/10/20 20:55:04 .net
>>262
>PHP関係ないです。2chを開発または維持保守してる人達に聞いてください。
2chを開発してるのは誰ですか?


264:nobodyさん
10/10/20 21:03:10 .net
>>263
2chを開発してる人を監督している人に聞いてください

265:nobodyさん
10/10/20 21:07:48 .net
>>264
(株)ゼロ or (株)イスト という情報をGETしますた!

266:nobodyさん
10/10/21 09:22:12 .net
d7028c0bfaf88de9734406fb7bc893d3

267:nobodyさん
10/11/28 01:08:02 F1JfXYTU.net
ワールドワイドに展開したいサービスを作る場合、
日付情報はローカル時刻から世界標準時に変換してDBに保存して、
閲覧時には、閲覧者の国に合わせて時刻を変換するのがベストなんでしょうか?


268:nobodyさん
10/11/28 01:17:47 .net
No

269:267
10/11/28 01:30:18 F1JfXYTU.net
どうするのがいいですか?


270:nobodyさん
10/11/28 08:17:58 .net
ワールドワイドに展開したいんだから
ワールドワイドに展開してるということを分かってもらう必要がある
つまり日本時刻に統一することで、日本のサイトがワールドワイドに展開してると認識してもらう

271:nobodyさん
10/11/29 00:45:34 .net
>閲覧時には、閲覧者の国に合わせて時刻を変換するのがベストなんでしょうか?
YES。

閲覧時に変換すればいいだけの話で、
DBにはローカル時刻で保存しておいても問題無いよ。

というか、日本で開発するならデバッグのし易さ等も含めて、、
わざわざ世界標準時に変換して保存する必要は無いかと。

272:nobodyさん
10/11/29 00:56:52 .net
timestampで保存すりゃいいじゃん

273:nobodyさん
10/11/29 01:10:16 .net
$_REQUEST

を使えば GET も POST もどちらの値も取れる様なので
GET や POST を使わずに

REQUEST 一本で行こうかと思っているのですが
何か問題(セキュリティー的な面で)はありますか?

274:nobodyさん
10/11/29 01:28:15 .net
うむ

275:nobodyさん
10/11/29 01:36:22 .net
>>273
getとpostを区別しないフレームワークもあるし、いいんじゃない?

276:nobodyさん
10/11/29 02:50:23 .net
timestampで保存??
PHPおよびDBのtimestamp型はグリニッジ標準時で格納されて、
表示のときにタイムゾーンにあわせて変換されてるの??

277:nobodyさん
10/11/29 02:52:33 .net
>>273

<img src="URLリンク(hoge.com)">

なんてのが掲示板に書き込まれたらどうだろう?
CSRFチェックしてるならいいけど。

278:nobodyさん
10/11/29 03:13:43 .net
timestamp型は内部ではGMTなんだね。知らなかった。さすが上級。
でも2038年までしか使えないのか。
案外すぐそこだと思ってしまう。

279:nobodyさん
10/11/29 03:15:47 .net
>>275
ええのかな。

>>277
ごめんなさい。
かりに投稿されてもサニタイジング処理するから
問題無い気もするのですが何が問題なのでしょうか?

280:nobodyさん
10/11/29 03:56:53 .net
サニタイズじゃないだろそれ

281:nobodyさん
10/11/29 10:10:19 .net
>>278
DateTimeつかいなよ

あと「2038年問題」で検索すればわかるけど
過去に銀行でトラブルがありニュースになってる
php5.1までは対応が面倒だったが
php5.2以降ならDateTime使えば2038年問題はクリアできる
書式も柔軟で使いやすい

282:nobodyさん
10/12/01 01:33:56 fFpZquRW.net
PHPでtry-catch-finallyの動きさせたい時どう書くのが手軽?
try-finally-catchでも別にいいのでこんなの考えたけどキモいかなあ

$ex=NULL;
try{
 …例外が出るかも知れない処理…
}
catch(Exception $ex){}

…finally処理…

switch(true){
case $ex instanceof HogeException:
 …例外ハンドラ…
case $ex instanceof Exception:
 …例外ハンドラ…
 throw $ex;
}


283:nobodyさん
10/12/01 02:41:56 .net
tryとcatchブロックの最後に同じ処理を入れとけばいい

284:nobodyさん
10/12/02 04:12:56 .net
YahooやGoogleなど、1つのIDで複数のサービスを利用できるようにしているサイトは
どのようなユーザーDBを持っているのでしょうか?
まさかすべてのサービスを1つのDBに格納してるわけではないですよね?
サーバやDBを分けると、リレーションが作れないと思うのですが
管理しにくくなるデメリットをどう回避しているのでしょう?

たとえば、全IDの基本情報を持った1つのユーザーIDマスターテーブルがあって、
サービスごとのDBに、ユーザーIDマスターテーブルをコピーして、サービス用のカラムを追加した
各サービス用のユーザーIDテーブルがあって、マスターが更新されると、こちらも自動更新されるとか、
もしくは、各サービス用ユーザーテーブルには、マスターのIDが保存されていて
GET URLリンク(api.mydomain)
とかHTTPリクエストでマスターテーブルから取得しているんでしょうか。
(いま利用しているレンサバは外部からのDB接続ができません)

できるだけスマートな実装を教えてください。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

559日前に更新/133 KB
担当:undef