トップページ⇒php
1001コメント342KB

【PHP】下らねぇ質問はID出して書き込みやがれ 88

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2009/09/16(水) 09:39:37ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 87
http://pc11.2ch.net/test/read.cgi/php/1251447028/

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
05585552009/10/01(木) 20:53:49ID:hYnFYsU3
>>557
ありがとうございます。
ちなみに質問する前に例2も一緒にコピペしてみたんですけどダメでした。
しかも、困ったことに下半分をコメントアウトしない限りエラーメッセージも出ないんですよね。

cloneはfinalにしてあってcloneできないようにしてありますよね。
しかも、どこからも呼ばれていません。
ですからE_FATAL エラーの発生ではないですね。

Exceptionクラスのみでさえエラーが出るんですから
それ以上足しても・・・と思うんですけどどうですか?
0559nobodyさん2009/10/01(木) 20:57:35ID:???
マニュアルの文章を読んでください
05605552009/10/01(木) 21:01:20ID:hYnFYsU3
>>559
読んで分からないから質問しているんです。
マニュアル読んだだけですべて理解できるならこの質問スレの意義すらないでしょう。
せめてヒントをください。あなたのレスでは抽象的過ぎて分かりません。
0561nobodyさん2009/10/01(木) 21:15:34ID:???
答えが分からないけど回答者ぶりたい奴ってマニュアル見ろしか言わないよね
激しくうざい存在
0562nobodyさん2009/10/01(木) 21:18:18ID:???
>>560
あなたの質問内容がマニュアルを読めば解決するレベルだからです。
05635552009/10/01(木) 21:24:20ID:hYnFYsU3
>>561
激同です
(出来ればIDを晒して文句を言っていただけると幸いです、自演と思われるとアレですので…)。
前回質問したときも、まったく的外れだったことがあります。

>>562
こっちだって出来るだけのことは調べて質問しているんです。
あなたが教える気がないのは分かりましたのでお引取りください。

代わりに他の回答者の方、お願いします。
0564nobodyさん2009/10/01(木) 21:31:31ID:???
>>562
じゃ六法全書も読めばすぐに弁護士になれるよな?

http://www.ron.gr.jp/law/

マニュアルがあればこの世の問題はすべて解決
・・・って馬鹿じゃね?
0565nobodyさん2009/10/01(木) 22:00:03ID:???
>>563
>>1
05665552009/10/01(木) 22:03:39ID:hYnFYsU3
>>565
自演乙です
0567nobodyさん2009/10/01(木) 22:07:27ID:???
自演じゃない煽りをスルーできない質問者もウザイということだ
答えが出てくるまで黙ってろボケ
0568nobodyさん2009/10/01(木) 22:15:15ID:???
>>562
本家PHPサイトの和訳を教えていただけませんか?
英語辞書あるから完璧ですよね
和訳を俺に伝授してくれませんか?^^
0569nobodyさん2009/10/01(木) 22:18:51ID:???
例2 例外クラスを拡張するの

// 例2
try {
$o = new TestException(TestException::THROW_DEFAULT);
} catch (MyException $e) { // この型にはマッチしない
echo "Caught my exception\n", $e;
$e->customFunction();
} catch (Exception $e) { // キャッチされる
echo "Caught Default Exception\n", $e;
}


これだけためして
ちゃんとExceptionしてくれてるよ

05705552009/10/01(木) 22:42:33ID:hYnFYsU3
>>569
ありがとうございます。
今、「例2 例外クラスを拡張する」のみを試したら、実行できました。
その中の「例1」「例2」「例3」「例4」も含めていますが、実行できます。

ということは、「例1 例外クラスを構築する」は元々既にPHPに組み込まれているクラスなのですか?
つまり、「例1 例外クラスを構築する」は「わざわざ打ち込んで実行する必要はない」という解釈で良いですか?
0571nobodyさん2009/10/01(木) 22:44:17ID:BF5xnbIm
>>570
よかったですねまともな回答者にめぐり合えて。
>>562みたいな回答したいだけの香具師(知識はもちろん初心者レベルでしょうね)の事は気にしてはいけませんよ
0572nobodyさん2009/10/01(木) 22:49:02ID:59iiS7vg
>>570
>以下のメンバーおよびプロパティは、 組み込みの Exception クラスから派生した子クラスの中でアクセス可能です。

ってマニュアルに書いてあるでしょ?

解答示せと言うのもわかる。ググレで終わるのもどうかと思う。
だがそれに対して逆ギレするのもどうかと思うぞ。
>>1のテンプレ位読んでくれ
0573nobodyさん2009/10/01(木) 22:56:26ID:???
すまないがそれでは下質ID認定回答者の証は与えられないかな
0574nobodyさん2009/10/01(木) 23:00:50ID:???
>>570

そのとおりだよ。
php5にもともと入ってるクラスを書きだしたのが例1


例2 例外クラスを拡張する の
class MyException extends Exception
の親クラスの中を見てみ
05755552009/10/01(木) 23:21:44ID:hYnFYsU3
>>571
応援、ありがとうございます。
正直、今回のは納得いきませんでしたね。
中途半端に回答して煽るくらいなら回答要りませんよね。

>>572
>以下のメンバーおよびプロパティは、 組み込みの Exception クラスから派生した子クラスの中でアクセス可能です。

それは「分かっている人の、分かっている人による、分かっている人のための」説明文でしょう。
では、少し長いですが「法人税法」第23条第2項を読んでみましょう:

「法人(公益法人等及び人格のない社団等を除く。以下この条において同じ)の株主等である内国法人が当該法人から
次に掲げる金銭その他の資産の交付を受けた場合において、その金銭の額及び金銭以外の資産の価値の合計額が
その交付の起因となった当該法人の株式(出資等も含む)の帳簿価額を超えるときは、この法律の規定の適用については、
その超える部分の金額のうち、当該法人の資本等の金額から成る部分の金額以外の金額は、利益の配当又は剰余金の分配の額とみなす」

・・・こういう文章がすっと頭に入る人は、頭が良いというより、「少しおかしいのではないか」と思う。 by 野口悠紀雄
確かに、どう見ても良い説明文ではないですよね。今回の件はそれと同じ印象を受けました。

それに、一言言ってくれれば済んだ話じゃないですか?
僕だって今はこうやって理解しているんですし。
回答者に不備があればこれからも一質問者として指摘していくつもりです。
その代わり、正しい回答が得られればきちんと感謝の意を示すつもりです。
05765552009/10/01(木) 23:26:41ID:hYnFYsU3
>>569 & >>574
やはり、その通りでしたか。
実はエラーメッセージに「Exceptionが再度宣言された」とあったので
元のExceptionが既に宣言されているのではないかと察してはいました。
しかし、それならわざわざ例として出す必要もないと思っていましたし、
なんと言っても題名が「例1 例外クラスを構築する」でしたからね(それでMyExceptionにしてみた訳ですが)。
原文のように「例1 既に組み込まれている例外クラス(=Example #1 The Built in Exception class)」であれば理解できたはずです。

僕も将来、あなたのような回答者になれるように努力します。
今回は本当にありがとうございました!
0577nobodyさん2009/10/01(木) 23:36:17ID:???
>>575
タイトルが既に「例外を拡張する」なんだが
0578nobodyさん2009/10/01(木) 23:47:23ID:???
どうでもいいが顔真っ赤だぞ
0579nobodyさん2009/10/01(木) 23:48:49ID:???
>>577
・・・泣いてるのか?
0580nobodyさん2009/10/01(木) 23:53:01ID:???
例外を拡張するのページで例外を宣言する話してどうするのってこと
0581nobodyさん2009/10/02(金) 00:30:18ID:???
流れよく読んでないが
クラスの拡張は継承してやってください
0582nobodyさん2009/10/02(金) 00:40:26ID:4UZHJi/j
IDの表示方法はこれであってますかね?

【OS名】ubuntu 804.3
【PHPのバージョン】php5.24
【連携ソフトウェア】apche2.1mysql5.05
【質問内容】
質問ですがあります。ご指導いただけないでしょうか

現在動画ファイルを
ファイルアップロード時にmymeTypeを判別して条件分岐させる関数を作成しています。
しかし、正確にmymeTypeを判別しません。
fileinfoでも正確に判別できませんでした。

しかたないので、一度mymeTypeを判別してから
正確に判別できない動画ファイルのみ拡張子で条件分岐させています。
しかしこれでは、正確とは程遠いバグがある関数になってしまいます。

なにかphpに動画ファイルmymeTypeを正確に判別するクラスはあるのでしょうか?
もしなければ、なにかポピュラーな判別方法をご教授いただけないでしょうか?

0583nobodyさん2009/10/02(金) 00:43:55ID:4UZHJi/j
ちなみに無理やり作った関数がこれです

/**
* 画像フォーマット判定
*/
function t_check_movie_format($file, $type = 0)
{
// サーバーで判断できない場合使用
if ($file['type']== 'application/octet-stream') {
// fileinfo
$finfo = finfo_open(FILEINFO_MIME, "/usr/share/misc/magic");
$file['type'] = finfo_file($finfo, $file['tmp_name']);
finfo_close($finfo);
// 拡張子
$extens_tmp = strrchr($file['name'], '.');
$extens = strtolower($extens_tmp);
}

下に続きます
0584nobodyさん2009/10/02(金) 00:44:39ID:4UZHJi/j

$format = false;
switch ($file['type']) {
case 'video/mp4':
if (($file['tmp_name'])) $format = 'mp4';
break;
case 'video/avi':
if (($file['tmp_name'])) $format = 'avi';
break;
case 'application/octet-stream':
if (($file['tmp_name'])) ($extens=='.flv') ? $format = 'flv' : '';
break;
case 'video/x-ms-wmv':
if (($file['tmp_name'])) $format = 'wmv';
break;
case 'video/x-msvideo':
if (($file['tmp_name'])) $format = 'avi';
break;

default:
break;
}

return $format;
}
0585nobodyさん2009/10/02(金) 00:49:46ID:???
>>582
http://www.php.net/manual/ja/function.finfo-file.php
finfo-file関数ってのがある
0586nobodyさん2009/10/02(金) 00:59:29ID:4UZHJi/j
ご回答ありがとうございます。

でも現在使用しているphpバージョンは5.24ですので使用できません・・・
それ以外だとなにかありますか?
0587nobodyさん2009/10/02(金) 01:04:44ID:???
PECL入れればいいのでは?
0588nobodyさん2009/10/02(金) 01:05:02ID:4UZHJi/j
すいませんなにか勘違いしてました。

それ現在使用中です。
0589nobodyさん2009/10/02(金) 01:07:13ID:4UZHJi/j
PECL導入をしてfileinfoクラス finfo-fileを使用してもだめなんです。
なんとかならないですかね。
0590nobodyさん2009/10/02(金) 01:21:43ID:???
それってどんな風にバグがあるの?
0591nobodyさん2009/10/02(金) 01:26:27ID:???
それはあれだ
確かUnix系のコマンドでmimetypeを判別するやつがあったから
その外部コマンド使ってやるのがベターだったような気がする
もっと正確に判別可能な外部プログラムがあったらそれを通すのも手
とにかくPHPではやらないほうがいいと思う
昔自分もしょうがないからヘッダを見てmimetypeを決定するライブラリ作ろうとしたけど
車輪の再開発だからやめとけと説得されてやめた
0592nobodyさん2009/10/02(金) 01:30:13ID:4UZHJi/j
エラーは現在出ていません。
しかし、関数でmyme Typeを正確に判別していない点がバグと言った本当の意味なんです。

ですのでなにかご教授いただきたかったのですが。。



0593nobodyさん2009/10/02(金) 01:30:57ID:???
そりゃPECL導入しただけじゃ無理でしょ
条件に
(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)
って書いてるんだから
PHPのバージョンも5.3.0以上じゃないと
0594nobodyさん2009/10/02(金) 01:32:49ID:???
>>592
何をどう誤検出するのか分かると対策もあるかもしれないよ
まぁ591の方法でいいと思うけど
あとmimeな
>>593
できてるじゃないか
0595nobodyさん2009/10/02(金) 01:35:07ID:0fN7wMTr
現在携帯端末対応の掲示板を作成しているのですが、
携帯識別情報を送信しない場合は投稿を否定したいです。
どのように組めば宜しいでしょうか?
refererチェックをうまく改変して作成したいです^^;

#個体識別チェック
if (!isset($_SERVER['HTTP_REFERER']) or !$_SERVER['HTTP_REFERER']){
#refererが無い場合は携帯からの書きこみチェック
if (!strstr($_SERVER['HTTP_USER_AGENT'], 'DoCoMo') and
!strstr($_SERVER['HTTP_USER_AGENT'], 'J-PHONE') and
!strstr($_SERVER['HTTP_USER_AGENT'], 'SoftBank') and
!strstr($_SERVER['HTTP_USER_AGENT'], 'UP.Browser'))
DispError("ERROR!","ERROR:固体番号を送信してください!");
}

ちなみに・・・

$_SERVER[HTTP_USER_AGENT] → 送信必須(SN,ser,ezweb.ne.jp)
$_SERVER[HTTP_X_UP_SUBNO] → au
$_SERVER[HTTP_X_DCMGUID] → ドコモ
$_SERVER[HTTP_X_JPHONE_UID] → ソフトバンク

です^^;
0596nobodyさん2009/10/02(金) 01:37:54ID:???
>>595
個体識別ってリファラでいいの?
HTTP_X_DCMGUIDなどでなく?
0597nobodyさん2009/10/02(金) 01:45:42ID:4UZHJi/j
>>593
ありがとうございます。勉強しなおします。

>>591 >>594
OSの登録myme Typeを確認・追加して
phpでUnixコマンド使うみたいな感じですかね

それならいけそうなきがしますね
ちょっとやってみます。ありがとうございます。

0598nobodyさん2009/10/02(金) 02:07:40ID:???
http://manpages.ubuntu.com/manpages/hardy/ja/man1/file.1.html
アップロードされたファイルをこのコマンドにiオプションつけてexec関数あたりで叩けばいいんじゃね?
実行して返ってきた文字列から使う部分だけ抜き出してみたいな流れで

まぁどのプログラムも結局登録されたヘッダーを元に独自に解析してるので
未知のものも出てくるし100%判別できないこともあるのでどこかしら妥協が必要だよ
0599nobodyさん2009/10/02(金) 02:33:33ID:???
12時超えたあたりから
ゆとり率がぐんと減ったなw
0600nobodyさん2009/10/02(金) 02:34:21ID:???
>>599がいるじゃないか
0601nobodyさん2009/10/02(金) 07:20:30ID:???
>>582
getID3()というライブラリを使うという手も
ttp://getid3.sourceforge.net/
mp3のタグ情報とかzipに入ってるファイルのリストとかも取れる

使い方も簡単。
include('../getid3/getid3.php');
$file = './test.zip';
$getID3 = new getID3;
$ThisFileInfo = $getID3->analyze($file);
getid3_lib::CopyTagsToComments($ThisFileInfo);
print_r($ThisFileInfo);
0602nobodyさん2009/10/02(金) 11:01:05ID:Zilzfd9c
環境:WindowsXP、Apahce2.0系、php5.2.9-2です。

phpでpostgresに接続ができなくて、phpPgAdminだと
-------------------------------------------------------
データベースをサポートするように PHP のコンパイル・インストールがされていません。configure の --with-pgsql オプションを用いて PHP を再コンパイルする必要があります。
-------------------------------------------------------
というエラーがでます。Windowsなんで再コンパイルもくそもないだろうと思って
php.iniを確認。
extension=php_pgsql.dll
とかかれてるのでOKかと思ったら、Apache起動時に以下のエラーがphp.logに
-------------------------------------------------------
PHP Warning: PHP Startup: Unable to load dynamic library 'C:/PHP/ext/php_pgsql.dll' - このオペレーティング システムでは %1 は実行されません。
-------------------------------------------------------
/がだめなのかと\に変えても駄目で、phpinfoをみてみると、php.iniはちゃんと
読み込んでる様子。ひとつわからないのが以下の部分で、
d:\〜とか書いてますが、そもそもDドライブなんて無いのになぜ出てるのか?
-------------------------------------------------------
Configure Command cscript /nologo configure.js
"--enable-snapshot-build"
"--enable-debug-pack"
"--with-snapshot-template=d:\php-sdk\snap_5_2\vc6\x86\template"
"--with-php-build=d:\php-sdk\snap_5_2\vc6\x86\php_build"
"--with-pdo-oci=D:\php-sdk\oracle\instantclient10\sdk,shared"
"--with-oci8=D:\php-sdk\oracle\instantclient10\sdk,shared"
-------------------------------------------------------

いろいろ調べてみたんですが、ぐぐっても解決方法は見つからないので、
何か調べるべきところがあれば教えてください。
ちなみにapache2.2もなぜか入ってたので、それは削除しました。
0603nobodyさん2009/10/02(金) 11:13:18ID:???
最新版でGO
06046022009/10/02(金) 11:30:10ID:Zilzfd9c
事故レス。
過去ログにあった
http://pc11.2ch.net/test/read.cgi/php/1200314111/944-957

windows版php_pgsqlはずっとばぐりっぱなしで5.2.5にしないと駄目らしい。

>603
試してみたけどこれも駄目でした・・・。
0605nobodyさん2009/10/02(金) 16:48:17ID:1rF2YxUP
1<>A<><>
2<>C<>7<>
3<>E<>7<>
4<>F<>1<>
5<>G<>4<>
6<>D<>2<>
7<>B<>1<>

 上記の配列を

1<>A<><>
7<>B<>1<>
2<>C<>7<>
6<>D<>2<>
3<>E<>7<>
4<>F<>1<>
5<>G<>4<>

 というように並び替えたいんですが
 どうにも煮詰まってます。
 何かいい知恵はないでしょうか

 A〜Gは仮の物なので実際は適当な日本語ですので
 アルファベット順でソートはできません。
0606nobodyさん2009/10/02(金) 17:07:16ID:???
>>605
元の配列をvar_dumpしてくれると助かるんだが
array_multisortとかじゃ駄目?

PHP: array_multisort - Manual
http://jp2.php.net/manual/ja/function.array-multisort.php

あとアルファベット順ではなく、何順でソートすればいいの?
0607nobodyさん2009/10/02(金) 17:09:24ID:???
<?php
$a = array("いいい", "めめめ", "さささ", "ぎぎぎ", "ほほほ", "あああ", "こここ", "たたた");
$b = array("伊伊伊", "目目目", "左左左", "義義義", "歩歩歩", "亜亜亜", "子子子", "多多多");
sort($a, SORT_LOCALE_STRING);
sort($b, SORT_LOCALE_STRING);
print_r($a);
print_r($b);
?>

これ実行してみ
これなら漢字もソートできてるように思えるが不確実な要素も多いので
漢字も含む場合はソート用にかな(orカナ)読みの配列を用意したほうがいいかもしれない
06086052009/10/02(金) 17:33:10ID:1rF2YxUP
>606

array(7) {
[0]=>
string(11) "1<>鈴木<><>"
[1]=>
string(12) "2<>佐藤<>7<>"
[2]=>
string(12) "3<>田中<>7<>"
[3]=>
string(12) "4<>小林<>1<>"
[4]=>
string(12) "5<>高橋<>4<>"
[5]=>
string(12) "6<>渡辺<>2<>"
[6]=>
string(12) "7<>加藤<>1<>"
}

先ほどのA〜Gを置き換えました。

結果として

鈴木
├加藤
│├佐藤
││└渡辺
│└田中
└小林
 └高橋

こんな感じの表示をしたいです。
0609nobodyさん2009/10/02(金) 17:39:03ID:???
>>608
その並べ方ををするには要素が足らなすぎる
0610nobodyさん2009/10/02(金) 17:41:33ID:Zilzfd9c
>608
階層はどうやって判断させる気?
0611nobodyさん2009/10/02(金) 17:42:00ID:???
ニ分木か
0612nobodyさん2009/10/02(金) 17:49:15ID:???
一度わかりやすいデータベースで構造をよく考えてから配列で考え直したほうがいいよ
>>609の言う通り
0613nobodyさん2009/10/02(金) 17:50:36ID:???
>609
元々のデータがこんな状態でしたので悩んでいました。
足らない=できない と判断して諦めます。

>610
並び替えさえ上手くできればなんとかなるかなと思ってました。



皆様、ありがとうございました。
0614nobodyさん2009/10/02(金) 18:00:04ID:???
>>608
ワロタw
0615nobodyさん2009/10/02(金) 18:43:28ID:???
最初の要素がルートで、各名前の次の数字が親要素でしょ?
0616nobodyさん2009/10/02(金) 19:01:54ID:???
id , 名前 , parent_id
自己結合・自己参照・ツリー構造
0617nobodyさん2009/10/02(金) 19:06:55ID:???
まず参照IDで並べ替えしないと
0618nobodyさん2009/10/02(金) 19:17:19ID:???
参照はわかるんだが、どうやってその'並び方'になるかの要素がない
0619nobodyさん2009/10/02(金) 20:12:17ID:CFt8Mg+b
鈴木の下につく加藤と小林は初期の並びからは逆になったけど
加藤の下につく佐藤と田中は初期の並び通りなのはなにを基準にしてかな
0620nobodyさん2009/10/02(金) 21:17:08ID:3TAJH0/w
文字列(バイナリデータ)から、画像形式を取得する事って可能でしょうか?

$res = imagecreatefromstring($data);

でデータから画像リソースを生成する事は出来るのですが、生成元の画像形式を判別したいです。
それらしい関数が存在しないのですが・・・自前でバイナリデータを解析するしか無いのでしょうか?
0621nobodyさん2009/10/02(金) 21:46:59ID:???
>>620
>>585
0622nobodyさん2009/10/03(土) 01:35:48ID:uCD1ueGG
CMSっぽいものを作っていまして、
後からプラグインで機能を追加できるようにしています。

プラグインによっては別のプラグインに含まれている関数と
重複してしまうファイルがあるのですが、
その場合もプラグイン用のフォルダには必要なファイルを入れています。

同じファイルが2つ3つと増えていくので無駄だと思うのですが、
プラグインのような後から追加するかも知れないファイルの場合
どのように管理すればいいか悩みます。
同じようなシステムを作った事がある方は、助言をいただければ助かります。
0623nobodyさん2009/10/03(土) 01:42:02ID:???
ネームスペース使うとか?
0624nobodyさん2009/10/03(土) 01:44:51ID:???
ごめん、全然関係ないね
俺が思うに1TBのHDが1万円の時代に数十KBのPHPファイルが重複してどうこうとみみっちいこと気にしなくてもいいんじゃないかと
リッチプログラミングってやつですよ
0625nobodyさん2009/10/03(土) 01:46:40ID:uCD1ueGG
いや、容量の問題じゃなくて
似たようなファイルがプラグイン毎にあるとおかしくないかな?と思いまして。
例えば、メール送信が入るプラグインって結構作ると思うんです。
それようの関数ファイルってプラグインによって微妙に違ったりするし。。
0626nobodyさん2009/10/03(土) 01:56:25ID:???
そこでカプセル化でうよ
0627nobodyさん2009/10/03(土) 01:58:04ID:???
どういうこっちゃ
プラグイン化されてるってことはファイルの相互依存関係なんてないはずだと思うけど
0628nobodyさん2009/10/03(土) 02:14:19ID:uCD1ueGG
プラグインを作った時期によって微妙に違う事がありまして・・・
後から自分が見て改善する事も良くありますから、
メール送信用の関数ファイルが、AのプラグインとBのプラグインで
違う事ってたまにないですか?
0629nobodyさん2009/10/03(土) 02:15:01ID:???
>>625
/plugin001/mail.php
/plugin002/mail.php
/plugin003/mail.php
こんな感じになってるって事?であれば共有出来るコードはプラグインから出して、共通ライブラリにでも配置すればいいんじゃないかね。

>似たようなファイルがプラグイン毎にあるとおかしくないかな?と思いまして。
おかしくは無いよ。
特定のプラグインの関数にだけ修正をいれたい時等に柔軟に対応出来る。
反面、全部の関数に修正をいれたい場合に面倒になるけど・・・

理想としては、共通コードは1つのファイルに纏めておくべきだけど、
プラグイン間の相互依存関係が複雑になるので、事前にしっかりとした設計が必要になるよ。
0630nobodyさん2009/10/03(土) 02:15:28ID:uCD1ueGG
でも、普通は常に最新版のファイルを用意しますよね・・。
Aが古くてBが新しければ、Aの該当箇所もB用に作り替えますよね。
0631nobodyさん2009/10/03(土) 02:15:31ID:???
>>628
class使え
0632nobodyさん2009/10/03(土) 02:17:07ID:???
なんかぶっとんだ回答者がいるなw
0633nobodyさん2009/10/03(土) 02:17:37ID:uCD1ueGG
>>629
そんな感じです。

共通ライブラリ(メインのCMSに元からあるファイル)を
定期的に更新しているのですが、判断に迷う時がありまして。

新しい作り方をしたからと言って該当するファイル全て修正するのは手間だし、
どういう設計・管理方法をすればいいか悩み、質問しました。
0634nobodyさん2009/10/03(土) 02:20:06ID:uCD1ueGG
>>631
メール送信の場合はclassを作っていますが、
作り始めの物は関数使っています。
だんだん規模が大きくなってきたらclassにしてますが
0635nobodyさん2009/10/03(土) 02:21:47ID:???
>>622
SDKのような感覚で
プラグイン作成に必要なものがあるならそれは共通ファイルとして分けておくべき
まぁその辺のCMSのプラグインは単独で動作するようになってるので
もう少しシステムを見直したほうがいいと思うけど
0636nobodyさん2009/10/03(土) 02:24:14ID:???
CMSに汎用性があるAPIつくればいいんでない
0637nobodyさん2009/10/03(土) 02:25:14ID:???
違うと問題があるなら一緒にすればいいじゃん。

具体的に何が問題で何をしたいか言ってくれないと分からん。
0638nobodyさん2009/10/03(土) 02:30:09ID:uCD1ueGG
いや、特に問題はないのですが、
指摘を受けているように効率化の面で設計がおかしいかな?と思いまして。

とりあえず、共通ファイルに分けられるものは分けるようにして、
必要なものは似たような関数(ファイル)でも入れておくようにします。
みなさん、アドバイスありがとうございました。
0639nobodyさん2009/10/03(土) 02:31:57ID:???
>>633
99%各プラグインで普遍的に共通であろう処理は、CMS側に実装すればいいんじゃない?
メールであれば、MIME処理や、mail送信処理とかね。

きっちりOOP設計して、細かいclass群にわけて置けば将来的に拡張し放題だろうけど、面倒だし管理も大変になるからなぁ・・・
今どんなに完璧に書いたとしても、1年後には書き直したい衝動にかられてるだろうしw 
0640nobodyさん2009/10/03(土) 08:46:12ID:???
関数の切り方が悪い。
まず、共通になるように関数(クラス)のインターフェイスを変えろ 。
function hoge(a){
return fuga(a, 10)
}
みたいに処理の委譲を使うとか
$mail = new Mail( new Signature('Masashi Tashiro') );
みたいに、非共通部分を引数化するとか。
0641nobodyさん2009/10/03(土) 09:38:16ID:???
「プラグイン」って言うんなら、CMS本体側に
どんな機能を用意してるんだろう。
そのへん気になる。

ただ特定ディレクトリ以下のファイルを自動で
includeするだけ、っていうオチもあるだろうけど。
0642nobodyさん2009/10/03(土) 10:52:21ID:???
プラグインとかいらないだろ
全て関数にすればいい
0643nobodyさん2009/10/03(土) 11:46:45ID:???
環境:WindowsXP、Apache2.0系、php5.3.0です。

ポストメソッドで大容量のファイル(600MBくらい)を扱いたく、
php.iniの、post_max_sizeを変え見たんですが、(post_max_size=1000M)
型がintegerなのか、512MBを超えるとのエラーが出てしまいます。

エラーは以下です。
Warning: POST Content-Length of 618534863 bytes exceeds the limit of 536870912 bytes in Unknown on line 0

サイズの制限をより大きく、あるいは無制限にする方法を教えてください。
0644nobodyさん2009/10/03(土) 11:47:26ID:pEIS+Jzz
↑すみません。さげてしまいました。
0645nobodyさん2009/10/03(土) 11:48:49ID:???
それはphpというよりOSの制限によるものです。
個人的には、Mac OSをお薦めします。
今の時代、Vistaの後継OSまで発売されている時勢に、XPは時代遅れです。
XPで開発していると、たびたびトラブルが発生しますので、
OSごと乗り換える方が得策ではないでしょうか?
0646nobodyさん2009/10/03(土) 12:37:11ID:???
>>643
upload_max_filesizeも変えてる?
0647nobodyさん2009/10/03(土) 13:07:47ID:pEIS+Jzz
>>645
解決法はないのですか?

>>646
変えてます。


無理なようですので、フォームではファイル名入力してもらうようにして、
ftpでアップロードさせるようにします。

他にいい方法があれば、ご教授いただければ幸いです。
0648nobodyさん2009/10/03(土) 13:15:30ID:???
>>647
Apache再起動してる?
0649nobodyさん2009/10/03(土) 13:18:33ID:???
サーバーのOSの問題だとしたら、なぜMAC-OS薦めるんだろう・・・
0650nobodyさん2009/10/03(土) 13:18:44ID:tYIqChf6
>>647
昼間はレベルの低い初心者回答者がいますので気長に夜まで待ってれば素晴らしい回答者が現れますよ
ぼくも応援するのであげますね
0651nobodyさん2009/10/03(土) 16:04:45ID:???
いや、完全にOSの問題だと思うが。

WindowsXPの場合、32bitだけど、
Mac OSの場合、最大1024bitまでオーバークロックできる。

XPの制約に飽き飽きしているし、
パフォーマンス改善に有効なメモリーも3.2GBしか認識できないなどサーバーとしては致命的。
0652nobodyさん2009/10/03(土) 16:36:06ID:???
>>651
 \                    /            /
   \  丶       i.   |      /     ./       /
    \  ヽ     i.   .|     /    /      /
      \  ヽ    i  |     /   /     /
   \
                                 -‐
   ー          / ̄`Y  ̄ヽ、
. __           / / / / l | | lヽヽ           --
     二      / / // ⌒  ⌒ヽ       = 二
   ̄         | | |/  (●) (●)             ̄
    -‐       (S|| |   ⌒ ・ィ  ヽ       ‐-
             | || |   ト-=-ァ ノ
    /       | || |   |-r 、/ /|       \
             | || | \_`ニ'_/ |
         /                 \
        /                    ヽ
    /  /               丶      \
   /   /    /      |   i,    丶     \
 /    /    /       |    i,     丶     \
0653nobodyさん2009/10/03(土) 16:54:58ID:???
Local ValueとMaster Valueはどうなってる
phpinfoで確認してみて
0654nobodyさん2009/10/03(土) 17:11:39ID:???
http://www.nikkei.co.jp/news/main/im20091003SSXKG018903102009.html
おい、どうでもいいけどこのシャラポワの顔酷くないか???
瞬間的な顔で変な顔に写ったのか、それとも相当顔が崩れたのかどっちなんだ?
0655nobodyさん2009/10/03(土) 17:13:59ID:pEIS+Jzz
>>653
post_max_sizeでしたら、ともに1000Mと表示されています。
0656nobodyさん2009/10/03(土) 17:15:01ID:???
post_max_sizeとupload_max_filesizeの部分のSS上げて
0657nobodyさん2009/10/03(土) 17:21:54ID:???
>>651
典型的なリンゴ信者だなw

サーバOSに通常のXPなんかつかわねーよw
開発機にMac?比較にならんほどの資産があるWindowsを切り捨てるメリットがねぇよw
■ このスレッドは過去ログ倉庫に格納されています