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

【PHP】下らねぇ質問はここに書き込みやがれ 32

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/11/06(月) 22:07:16ID:???
PHPに関するくだらねぇ質問用スレです。ここならお前の下らない質問に回答があるかも知れません。

まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

【前スレ】
 【PHP】下らねぇ質問はここに書き込みやがれ 31
 http://pc8.2ch.net/test/read.cgi/php/1161733546/

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しない)
・ サーバーのOS、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0796nobodyさん2006/11/18(土) 23:42:24ID:???
ホントに初歩的で申し訳ないのですが、
tp://bbslabo.breeze.jp/c001_spam_lib_php_letsphp_ibbs.html
のスパム耐性 PHP-I-BOARDをお借りしてローカルで動かしたのですが、

通常の書き込みはできるものの、返信をしようとするとなぜか関係ないページに飛ばされます。
(YouTubeだったり)

phpのソースをみて youtubeのアドレスを探してもみつからず、なぜそうなるのかがわかりません。

なお、強制移動させられたあと戻るとちゃんと書き込みはできています

すいませんがどこをいじったらこの現象が直るかおしえていただけないでしょうか?
0797nobodyさん2006/11/18(土) 23:54:54ID:???
>>793
板違いです、コチラへどうぞ
【彼女にINSERT権限がありません】
http://pc8.2ch.net/test/read.cgi/db/1057289721/
0798nobodyさん2006/11/19(日) 00:00:36ID:???
>>793
板違い。DB板逝け
07997982006/11/19(日) 00:02:58ID:???
まさかこんなのが被るとは思わんかった...
0800nobodyさん2006/11/19(日) 00:10:23ID:???
>>793,>>797-798
DB板の宣伝乙
0801nobodyさん2006/11/19(日) 00:17:53ID:???
>>795
> Zend社等の製品を使用しない限り、PHPは実行時に毎回コンパイルされ、キャッシュは
> されないそうですが、

zend社以外でもキャッシュは可能。
eacceleratorとか。

残りの質問は実際に作って試してみれば?
PHPでクリティカルだったりリアルタイムな処理はしないだろうし、
性能向上はハードに任せてメンテナンス性を重視して設計するのも
ありでは?

あ、実験したら結果を発表してね。
つ ttp://pear.php.net/package/Benchmark
これ使うと便利だよ。
0802nobodyさん2006/11/19(日) 02:13:59ID:qt8hCJ5U
質問させてください。
PHPでメタ検索のようなものをつくって居るのですが
検索サイト側がPOST形式の場合はどのように組み合わせばいいのでしょうか
get形式では
$data = 2ch
$url="http://www.google.com/search?hl=ja&q=";;
で
$url$dataでhttp://www.google.com/search?hl=ja&q=2chというようにできるのですが
postの場合はどのようにすればよろしいですうか?
0803nobodyさん2006/11/19(日) 02:19:01ID:???
>>802
PEAR::HTTP_Requestとか使うと吉
0804nobodyさん2006/11/19(日) 02:19:29ID:???
>>795
キャッシュならAPCとかもあるね。
関数定義に関しては、1つにまとめるのも分けるのも
どっちも速度低下の可能性があります。
まず無駄な関数定義は速度低下の元です。
それから読み込むファイルの数が増えるのも速度低下になります。
ってことでバランスの問題でしょう。
0805nobodyさん2006/11/19(日) 02:30:16ID:qt8hCJ5U
>>803
なるほど、そんな感じの事になってしまうのですね
ありがとうございました
0806nobodyさん2006/11/19(日) 03:51:16ID:Zd3ixGQK
PDOで
odbc:Driver={Microsoft Access Driver (*.mdb)};
な接続を行う場合、エンコードは指定可能でしょうか?

デフォルトで CP932 (Shift_JIS) のようですが、
Unicode文字 (UTF-8) を扱えずに困っています。

Windows Server 2003 / IIS / PHP 5.2.0
0807nobodyさん2006/11/19(日) 04:38:56ID:???
php-5.2.0のインストールで、makeでエラーが出ています。

make: *** [sapi/apache/sapi_apache.lo] Error 1

configureで--with-apxs=/usr/local/apache/bin/apxsを付けています。
何が問題なんでしょう?
Solaris10 x86です。
以下エラーあたりのログです。

In file included from /usr/local/apache/include/buff.h:32,
from /usr/local/apache/include/httpd.h:36,
from /var/spool/pkg/php-5.2.0/sapi/apache/php_apache_http.h:47,
from /var/spool/pkg/php-5.2.0/sapi/apache/sapi_apache.c:24:
/usr/local/include/openssl/ssl.h:747: error: syntax error before "X509_VERIFY_PA
RAM"
/usr/local/include/openssl/ssl.h:755: error: syntax error before '}' token
/usr/local/include/openssl/ssl.h:896: error: syntax error before "X509_VERIFY_PA
RAM"
/usr/local/include/openssl/ssl.h:976: error: syntax error before '}' token
In file included from /usr/local/include/openssl/ssl.h:983,
from /usr/local/apache/include/buff.h:32,
0808nobodyさん2006/11/19(日) 04:41:23ID:???
ログの続きです。

from /usr/local/apache/include/httpd.h:36,
from /var/spool/pkg/php-5.2.0/sapi/apache/php_apache_http.h:47,
from /var/spool/pkg/php-5.2.0/sapi/apache/sapi_apache.c:24:
/usr/local/include/openssl/ssl3.h:414: error: syntax error before "EC_KEY"
/usr/local/include/openssl/ssl3.h:441: error: syntax error before '}' token
/usr/local/include/openssl/ssl3.h:443: error: syntax error before '}' token
In file included from /usr/local/apache/include/buff.h:32,
from /usr/local/apache/include/httpd.h:36,
from /var/spool/pkg/php-5.2.0/sapi/apache/php_apache_http.h:47,
from /var/spool/pkg/php-5.2.0/sapi/apache/sapi_apache.c:24:
/usr/local/include/openssl/ssl.h:1520: error: syntax error before "EC_KEY"
/usr/local/include/openssl/ssl.h:1521: error: syntax error before ')' token
/usr/local/include/openssl/ssl.h:1523: error: syntax error before "EC_KEY"
/usr/local/include/openssl/ssl.h:1524: error: syntax error before ')' token
make: *** [sapi/apache/sapi_apache.lo] Error 1

ご教授お願いします。
0809nobodyさん2006/11/19(日) 05:46:39ID:???
>>807
スレ違いとはいわないが、その手の話題なら、
http://pc8.2ch.net/unix/
こっちにいったほうがいい答えもらえるんじゃないかね。
0810nobodyさん2006/11/19(日) 11:07:15ID:EVuH/Yur
>>736です。
特に質問というわけではないのですが
また少し改良したのでうpします。何か問題があればご指摘お願いします。
http://onegaisiamsu.ojaru.jp/php2.txt
0811nobodyさん2006/11/19(日) 11:07:41ID:???
>>801
> 性能向上はハードに任せてメンテナンス性を重視して設計するのも
> ありでは?
それはひょっとしてメンテナがタコだったりろくに設計能力が無いと永久に救われないという事を言っているのか?
0812nobodyさん2006/11/19(日) 11:15:41ID:???
>>811
いや、そんな深読みせんでもw
0813nobodyさん2006/11/19(日) 12:30:46ID:Zd3ixGQK
>>809
UNIX で適当なスレが見当たらなくて…

あんまし、こんな構成で組んでいる人っていないんですかね。
私自身も、インターネットじゃ絶対にこんな構成では組まないのですが、
イントラ用に検討しているので。
0814nobodyさん2006/11/19(日) 13:06:44ID:???
>>807
opensslのヘッダファイルでエラーが出てるんだから
openssl周りじゃね?--with-opensslはつけてるのか?
0815nobodyさん2006/11/19(日) 13:36:52ID:???
そのログを見てわからないレベルって事は何もわかってないんだろうし
素直に素人でも使えるパッケージ系を使った方が良いと思う
0816nobodyさん2006/11/19(日) 13:39:36ID:???
PHPのinclude文でファイルを読み込む場合、これは実行時に読み込まれる
のでしょうか?例えば、

if($flag == 1) {
  include("a.php");
} else {
  include("b.php");
}

のようなプログラムの場合$flagが1の場合はb.phpは読み込まれないって
考えでいいでしょうか?それとも、初回のコンパイル時に全てのincludeファイル
は読み込まれて、実行はされないってことでしょうか?
0817nobodyさん2006/11/19(日) 13:41:50ID:???
>>816
前者
実行時に読み込まれる
0818nobodyさん2006/11/19(日) 13:49:07ID:???
>>817
>>816ではないが便乗質問。

ということは、APCやeacceleratorでキャッシュされる場合は条件が
変わるごとに書き換えられるのかな?
0819nobodyさん2006/11/19(日) 13:55:50ID:???
>>818
APCやeacceleratorのキャッシュの仕組みを
ちゃんと把握してるわけじゃないから確信はもてないが
書き換えというか一度includeされた時点でそのスクリプトの
キャッシュが作成されるっていう感じじゃないかな
0820nobodyさん2006/11/19(日) 14:32:29ID:???
とういうことは、たくさんの関数を1つのファイルに定義しておいて、
いろんなところで使いまわすより、関数を細かくファイルに分けておいて、
使う場合のみ、適宜includeした方のが、高速ということになりそうだね。
0821nobodyさん2006/11/19(日) 14:54:22ID:???
確認したわけではないけど確かAPCはインクルードファイルはキャッシュしないとか
何処かの記事で見たけど良くはしらね
0822nobodyさん2006/11/19(日) 15:33:25ID:???
おれの経験からいうと、インクルードではキャッシュ生成されない
0823nobodyさん2006/11/19(日) 15:36:11ID:???
pearのcache_liteだっけ?あれはわざとinclude使ってないとか書いてあったような
0824nobodyさん2006/11/19(日) 15:57:45ID:EVuH/Yur
会員登録制のシステムを作ろうとしています。
自分の考えている流れとしては、

1, 登録ページでIDとメールアドレスとパスワードの3点を入力してもらう
2, 登録されたメールアドレスにsession(?)とIDを後ろにつけた登録URLを送る
   http://example.com/register.php?session=hogehoge&id=piyopiyo見たいな感じで。
3, 上記URLのアクセスがあった時点で会員登録完了
   ただし24時間以内にアクセスがない場合無効。

という感じにしようと思います。(この時点で間違っているようでしたらご指摘ください)

そこで、今2の仮登録の情報をどこに保管するかで困っています。
自分の考えられる方法としては
1, 2の時点でMySQLに挿入してしまう(自分はMySQLを使っています)
2, どこかに一時ファイルとして作成して保管する

この二つです。
1はSQLの操作なのでなんとなくわかるのですが、24時間で消す方法がわかりません(クローン?使えばできる?)。
2はファイル操作をしたことがないので良くわからないです。

このような処理を行う場合どのようにすればいいでしょうか?
1,2のどちらのほうが良いか、また、それ以外に良い方法があるのなら教えていただきたいです。
よろしくお願いします。
0825nobodyさん2006/11/19(日) 16:17:43ID:???
どっちでもいいよ
仮登録した日時を取得しておいて本登録されるタイミングで
24時間過ぎていたら無効、んでその時とかに24時間過ぎてる情報は破棄
08267962006/11/19(日) 17:00:23ID:???
>>796
よろしくお願いします

他のCGIではならないのでどっかソースをいじるのだとは思うのですが
こんな症状になるのは自分だけでしょうか?
0827nobodyさん2006/11/19(日) 17:04:06ID:???
>>826
1、お前のパソコンが犯されている
2、お前の脳味噌が腐っている
3、宣伝
4、配布者が犯人
0828nobodyさん2006/11/19(日) 17:07:50ID:???
>>821-822
するする。設定によるかもしらんが。
うちでAPC使ってて、rsyncのミスでincludeファイルを
タイムスタンプを過去のもので上書きしちゃったら
思いっきり誤動作したもの。
includeファイルはそれぞれ個別にキャッシュを生成してる。
0829nobodyさん2006/11/19(日) 17:09:55ID:???
「戻る」(back)で戻ってる部分を探せよ。
そのせいだろ。
0830nobodyさん2006/11/19(日) 17:12:34ID:???
>>824
うちはDBに記録してる。
で、毎日1回のメンテナンスをcronで動かして
24時間以上経過してるのは削除してる。
08317962006/11/19(日) 17:34:07ID:???
>>827
PCがおかしいのですかね?
IEでやるとページが表示できませんってなって更新すると書き込みできてます。

戻る時のアドレスも ibbs.php 本体のままなのです

他の人がならないということがわかっただけでも助かりました。
0832nobodyさん2006/11/19(日) 18:56:56ID:???
2、
0833nobodyさん2006/11/19(日) 20:28:13ID:???
>>824
別にcron使わんでも、register.phpにアクセスされたときに、
ついでにその仮登録情報のチアムスタンプが24時間以内のものかどうか確認して、
期限を過ぎてたらDBから削除、過ぎてなかったら本登録処理、ってやればいいでしょ。
0834nobodyさん2006/11/19(日) 23:12:50ID:afBb4Sje
クラス名とその中のメソッド名は同じ名前が使えないのでしょうか?
0835nobodyさん2006/11/19(日) 23:13:23ID:???
this と selfの違いってなに?
0836nobodyさん2006/11/19(日) 23:13:35ID:???
それコンストラクタ
0837nobodyさん2006/11/19(日) 23:15:54ID:???
>>835
thisは自身のオブジェクト、オブジェクトの中からじゃないと使えない
selfは単なる自分のクラス名、スタティックコール内からでも使える
0838nobodyさん2006/11/19(日) 23:16:19ID:???
>>837
あthx!
08398342006/11/19(日) 23:26:24ID:afBb4Sje
コンストラクタって
newしたときに実行される関数というふうにとらえて間違いないでしょうか?
0840nobodyさん2006/11/19(日) 23:28:28ID:???
間違いないよ
0841nobodyさん2006/11/19(日) 23:55:33ID:QPerEU0+
Javaって最強ですか?
0842nobodyさん2006/11/20(月) 00:03:04ID:???
>>833
仮登録されたまま放置された登録レコードのゴミ掃除の話だと思ってたよ。
0843nobodyさん2006/11/20(月) 00:04:20ID:zRxNwc2j
レス遅くなりましたが>>824です。
答えてくれた方々ありがとうございました。
>>833のチアムスタンプがググってもわからなかったのですが何のことでしょうか?

今のところDBに入れてcronで削除していこうと考えています。
0844nobodyさん2006/11/20(月) 00:04:25ID:???
>>841
C++が最強。
0845nobodyさん2006/11/20(月) 00:05:09ID:???
>>843
833じゃないけどタイムスタンプの打ち間違いかと。
0846nobodyさん2006/11/20(月) 00:07:42ID:???
>>843
で、833+ゴミ掃除ってことで、「誰か」が本登録処理にアクセスしたときに
SQLで「delete from 登録 where 仮登録日付 < 24時間前」流せば一発で全部掃除できない?
最後の1人が放置したまま誰もアクセスしてこなくなったら掃除できないけど
そこまで気にするほどのものじゃあるまい。
0847nobodyさん2006/11/20(月) 00:16:51ID:zRxNwc2j
>>845
なるほど、ありがとうございます。
>>846
これならクローン使わずにもできますね。
こっちの方がよさそうです。
ありがとうございます。
0848nobodyさん2006/11/20(月) 00:26:33ID:???
>>847
この辺はユーザの登録数と登録アクセス頻度次第だよ。
ファイルでもDBでも数が多いところに削除の検索処理を入れると重くなる
(特にSQLのdeleteはロックがかかってその間のselectが停止する)ので、
全体のレスポンスに問題が出るケースもある。
そういう場合はcronでアクセス頻度の低い時間帯にメンテした方がいい。
その辺のTPOは踏まえた上で設計すべし。
0849nobodyさん2006/11/20(月) 00:38:19ID:zRxNwc2j
>>848
将来のことを見据えて(どうなるかわかりませんがw)
cronを使ってみます。
わからないことばかりですいませんでした。
いろいろとありがとうございました。
0850nobodyさん2006/11/20(月) 01:13:15ID:???
最初は逐次でやっといて困ってからcronにすりゃいいじゃん
0851nobodyさん2006/11/20(月) 02:38:25ID:fzLhPh+i
初心者ですが、セッションについて教えてください。
今、例えば、トップページがあって、そこからログイン→mypageでmixiみたいに
自分のページが表示されるような感じで、写真を投稿できるようになってます。
トップページには検索ができて、それは誰でもできるようになってるのですが、
ログインしたユーザー(セッションを持っている)は、その検索結果(写真)を
自分のページに保存できるような感じになってます。
これは、セッションを持つなら登録ボタン表示、持たないならボタンを非表示みたいな
感じにしています。
ここで、質問なんですが、このようにセッションを持つユーザーと持たないユーザーが
同じページを見れるのは危険でしょうか?
セッションを持つユーザーが、セッションが必要なページと必要じゃないページを行ったり来たり
できるのは、危険でしょうか?
どうかアドバイスお願いします。
0852nobodyさん2006/11/20(月) 06:53:32ID:???
PHPアクセラレータで一番高速なのはどれか?
http://gigazine.net/index.php?/news/comments/20061103_php_accelerator/

このページで、
「ほかにはZend Optimizer、Zend Platform、ionCube PHP Acceleratorなどがありますが、
どれも最初の3つと比べるとあまり「おすすめできない」レベルとのこと。」
って書いてあるけど、その根拠が何も書かれてないのが謎。
要するに「有料のやつは最初から論外」というニート特有の考え方なのかな??
0853nobodyさん2006/11/20(月) 07:43:01ID:???
>>852
根拠は上の方に書いてあるこれ。
> で、この「PHPアクセラレータ」の種類がいろいろあるということはそれぞれ一長一短なワケですが、
> とりあえずあっちこっちのネット上における各種試用レポートなどを総合すると
> 「APC (Alternative PHP Cache)、eAccelerator、XCacheのうちのどれか」が無難なようです。
本人の考えってより、この人が発見できたネット上の試用レポートってのがどれなのか、が問題みたいね。
でもアクセラレータの試用レポートの類で「有料だから無視」とか言ってるのはほとんど無いと思うけど?
0854nobodyさん2006/11/20(月) 08:29:53ID:???
>>853
それじゃ根拠になってない。
「おすすめできない」と判断するに至ったソースも一切書かれてないし。
0855nobodyさん2006/11/20(月) 09:01:52ID:???
GIGAGINEの記事とかアテにすんなよ
自分でちゃんと調べてどれがいいのか決めた方がいい
0856nobodyさん2006/11/20(月) 09:09:50ID:???
>>855
それもそうだな。
じゃあお前の意見もアテにしないことにするわ。
0857nobodyさん2006/11/20(月) 09:26:38ID:???
そうそう。他人の意見なんかに耳傾けず自分で全部調査しなさいね。
0858nobodyさん2006/11/20(月) 09:57:32ID:???
うちは Zend Optimizer + eAccelerator の同居で成功していると思うけどな
>>181 の5000までの素数ベンチプログラムで

平均3.20-3.25 位

環境は
Athlon2800
M PC3200-512 x 2

OS WinXP
Apache 2.0.59
PHP 5.2
Zend Optimizer
eAccelerator

参考までに
0859nobodyさん2006/11/20(月) 10:20:38ID:???
MySQLでsort というフィールドに一意性を持たせて
順番データを保持させようとしています。
指定行の「一個上に上がる」をクリックしたら、
そのデータのsortを-1して、
そのままだと同じ値になってしまう行データのsortを+1したいと考えています。

ところが一意性を持たせてあるので、
「そのsortを-1して、」という時点で、
一意性がないぜゴルァというエラーが出てしまいます。
指定行の-1と
別指定行の+1を同時に処理させる方法はないでしょうか?
0860nobodyさん2006/11/20(月) 10:48:14ID:a1LEez8m
一意性を持たせない
一回削除しといて再度INSORTするとか
0861nobodyさん2006/11/20(月) 11:40:49ID:???
配列1つを引数にとって配列を返す関数 return_array($array) があるとして、
その戻り値の最初の要素の値を取り出したいのですが、
 $result = return_array($array)[0];
と書くとParseErrorになります。
どう書けばよいのでしょうか?
0862nobodyさん2006/11/20(月) 11:47:33ID:???
>>861
$tmp = return_array($array);
$rsr = $tmp[0];
って書けば?
08638612006/11/20(月) 12:04:17ID:???
なるほど、やはり一度変数に入れるしかないのですね。
ありがとうございます。
0864nobodyさん2006/11/20(月) 12:04:47ID:???
>>858
実際のWebシステムでは、スクリプト本体よりもむしろ
サーバやDB入出力の部分がボトルネックになるので、
素数ベンチなんてほとんど意味がないけどな。
0865nobodyさん2006/11/20(月) 12:05:42ID:???
>>861
素直に$result[0]を使えば?
0866nobodyさん2006/11/20(月) 12:30:30ID:???
>>863
じゃあ
list($result, ) = return_array($array);
0867nobodyさん2006/11/20(月) 13:31:12ID:???
ありがとう。
08688592006/11/20(月) 13:40:57ID:???
>>860 さんの方法以外に良か方法なかとでしょうか
0869nobodyさん2006/11/20(月) 13:50:01ID:???
>>868
0をスワップ用にしといて片方を0にupdateしてから後2回updateするとか
08708592006/11/20(月) 15:13:58ID:???
>>869
天才を発見しますた
シンプルで楽層ですね、
ありがとうございます、その方法で行きます
0871nobodyさん2006/11/20(月) 15:33:46ID:???
いや最大で全件変えなきゃだめじゃん。
そういう関数作ったけど俺は。
0872nobodyさん2006/11/20(月) 15:53:05ID:???
>>859
一意性はスクリプト側で担保しろ。
別に難しいことじゃない。
任意のsortの値をINSERTかUPDATEする前に、
事前にSELECTしてみて存在するか否かを確認すればいいだけだ。
0873nobodyさん2006/11/20(月) 16:08:58ID:???
複数のレコードを一斉に変更してかつ一意を保とうとするなら
前後でのテーブルのLOCKを忘れるなよ。
0874nobodyさん2006/11/20(月) 16:34:42ID:???
オブジェクト指向PHPを意識しはじめたんですが、
肝心のオブジェクト指向がよくわからない・・・
従来のプログラムを、適当に部分部分でパーツ化して、
それをメソッドにすればいいんでしょうか?
オブジェクトにするメリットがわからない状態なので、
とりあえず適当にやってればそのうちわかるだろう程度に
考えているのですが、やっぱちゃんとした本買って勉強するべきですか?
0875nobodyさん2006/11/20(月) 16:59:23ID:???
>>874
とりあえず、この辺読んどけ
ttp://itpro.nikkeibp.co.jp/article/Watcher/20061117/254159/
0876nobodyさん2006/11/20(月) 17:25:55ID:???
焦らなくても、マニュアルを眺めていたらそのうち書けるようになる
0877nobodyさん2006/11/20(月) 20:11:41ID:???
書くのは慣れだけでいくらでもできるようになるが
設計はそれじゃいつまでもできるようにならんよ。
せめて他人が書いた(腐ってない)ソースを読むくらいしないと。
0878nobodyさん2006/11/20(月) 20:35:36ID:???
腐ってないソースを見つけるのが難しいんだけど・・・
0879nobodyさん2006/11/20(月) 20:38:05ID:???
さらに言えば、ソースが腐っているか否かを見極めるのがまた難しく、
それが出来るくらいの能力がある人なら既に設計能力も高いと思う。
0880nobodyさん2006/11/20(月) 20:47:59ID:???
結局、OOPの良書と言われている本を読まなきゃ駄目、でFA?
0881nobodyさん2006/11/20(月) 20:50:02ID:???
PEARなりフレームワークなりのソース読めばいいじゃん
0882nobodyさん2006/11/20(月) 20:57:28ID:zRxNwc2j
>>824です。
1,の部分を今作っています。
入力が正しいか確認するだけのプログラムですが作りました。

腐ったソースの話題の中で公開するのもあれですが
添削してほしいです。
よろしくお願いします。
http://onegaisiamsu.ojaru.jp/php3.txt
0883nobodyさん2006/11/20(月) 21:00:31ID:???
もう時代はAOPらしいけどね。
アスペクト指向だっけか?
アスペクトPHPとかそのうちくるんだろうか・・・
0884nobodyさん2006/11/20(月) 21:19:15ID:???
そしてコンポーネント指向、次にエージェント指向
0885nobodyさん2006/11/20(月) 21:20:30ID:???
念のため、AOPはOOPを補助するものであってサヨナラOOPってわけじゃない。
0886nobodyさん2006/11/20(月) 21:28:37ID:???
言わばただのフィルタじゃん、AOPって
0887nobodyさん2006/11/20(月) 21:30:15ID:BPin2pz1
mb_ereg系はデフォルトで^が改行直後、$が改行直前にもマッチするってあちこちで書かれてるけど、
実際やってみたらマッチしませんでした。
で、オプションでmを指定したらマッチするようになりました。

サンプルコード:
    echo mb_ereg_replace("^.", "", "123\n123") . "\n\n";
    echo mb_ereg_replace(".$", "", "123\n123") . "\n\n";
    echo mb_ereg_replace("^.", "", "123\n123", "m") . "\n\n";
    echo mb_ereg_replace(".$", "", "123\n123", "m") . "\n\n";
結果:
    23
    123
    
    123
    12
    
    23
    23
    
    12
    12
バージョン: 5.0.5

でもマニュアルには

> m を指定した場合、マルチラインモードとなり、 改行文字も "." に含まれるようになります。
(http://www.php.net/manual/ja/function.mb-ereg-replace.php)

としか書かれてません。

結局、デフォルトで^$が改行直後直前にマッチせず、mを指定するとマッチするようになるのが正しい挙動なんでしょうか。
それともこれはバグなのでしょうか。
0888nobodyさん2006/11/20(月) 21:48:35ID:???
あちこちってどこ?
0889nobodyさん2006/11/20(月) 22:30:16ID:efSEaAzM
PHPのモジュールをコンパイルしてインストールするに際に、phpizeコマンドが必要
ですよね?
それで、PHPマニュアルに「もし phpize コマンドが見つからない場合は、
適切な devel 版の PHP パッケージをインストールしましょう。 PHP や拡張
モジュールをビルドするために必要なヘッダファイルや phpize コマンドは、この
パッケージに含まれます。」
と書かれていたので、PHP-5.2.1-devをインストールしたのですが、phpizeコマンド
が認識されません。phpizeコマンドを使うためには他に何が必要なのでしょうか?
0890nobodyさん2006/11/20(月) 22:42:20ID:???
>>889
パスが通ってないだけでしょ多分
08918892006/11/20(月) 22:55:01ID:efSEaAzM
>>890
確かに、パスを通す必要があったようです。
しかし、WindowsでPHPを使っているのですが、パスを通すといっても
phpizeを使うためにはどこを指定すれば良いのか分かりません。
よろしければ、教えていただきたいのですが。
0892nobodyさん2006/11/20(月) 22:57:30ID:???
ぐぐったほうが早い
0893nobodyさん2006/11/20(月) 22:59:03ID:???
phpizeってwinなら関係ないかと
具体的に何を入れたいんだよ
08948892006/11/20(月) 23:04:45ID:efSEaAzM
>>893
PHPでNamazuを呼び出すためのモジュールです。
phpizeコマンドを使えるようにして、configure,makeはcygwinでやろうと
思ったんですが。
>phpizeってwinなら関係ないかと・・・windowsでは必要ないんですか?
0895nobodyさん2006/11/20(月) 23:09:42ID:???
またおまえか
ソースに付いてるREADME.WIN32-BUILD-SYSTEMは読んだのか?
0896nobodyさん2006/11/20(月) 23:11:56ID:???
ああwin用のPHPじゃなくてcygwinか、、、
でもcygwinでphp入れたならbinにphpize入ってないか?
■ このスレッドは過去ログ倉庫に格納されています