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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/07/11(水) 17:50:01ID:fYd+34US
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0067652007/07/12(木) 23:10:33ID:???
>>66
ありがとうございます!早速調べてみます。
0068nobodyさん2007/07/12(木) 23:12:54ID:???
>>64

「w」頭悪そうだね。
ま、悪いんだろうけど。
0069nobodyさん2007/07/12(木) 23:58:27ID:2QVskV9M
バカ皿仕上げ

68 名前:nobodyさん[sage] 投稿日:2007/07/12(木) 23:12:54 ID:???
>>64

「w」頭悪そうだね。
ま、悪いんだろうけど。
0070nobodyさん2007/07/13(金) 00:08:35ID:r6mqeqmj
さらにバカ皿仕上げ

69 :nobodyさん:2007/07/12(木) 23:58:27 ID:2QVskV9M
バカ皿仕上げ

68 名前:nobodyさん[sage] 投稿日:2007/07/12(木) 23:12:54 ID:???
>>64

「w」頭悪そうだね。
ま、悪いんだろうけど。
0071nobodyさん2007/07/13(金) 01:35:56ID:???
forやforeachを使わずに、配列の中身を一気に
出力する方法って無いですかね?print_rやvar_dumpでもなく。
0072nobodyさん2007/07/13(金) 01:48:48ID:???
var_export
0073nobodyさん2007/07/13(金) 05:18:35ID:zCZ7I7UC
2ちゃんねるの投稿規制について教えてください。
書き込むときにクッキーが使えないと書けない仕様ですが、
クッキーを消しても時間規制にひっかかってしまいます。
そこでこのような2ちゃんの使用を勉強したいのですが、
クッキー以外にどこに記録がのこっているのでしょうか?
0074nobodyさん2007/07/13(金) 05:30:10ID:???
2chのサーバー上
0075nobodyさん2007/07/13(金) 06:43:28ID:???
>>73
180秒規制をなんとかしようとしても無理だよ。
0076nobodyさん2007/07/13(金) 06:57:24ID:zCZ7I7UC
ありがとうございます。
ということは、サーバに記録をのこしておけばクッキーが消されても規制できるということですね。
セッションを使えば同じことできますか?
0077nobodyさん2007/07/13(金) 07:03:19ID:???
セッションなんてクライアント側から切れるだろ
2chみたいな大規模な所は知らないけど、最近投稿したipを記録しておけば十分でしょう
0078nobodyさん2007/07/13(金) 08:20:18ID:zCZ7I7UC
ありがとうございます。試行錯誤して造ってみます
0079nobodyさん2007/07/13(金) 08:39:36ID:???
テンプレートエンジン(Smarty)のスレが見つからないんだけど
ここに書いてもいいのかな
0080nobodyさん2007/07/13(金) 08:44:40ID:???
>>78
例えば、以下のようなテーブルを作成すればできる
TBL_POST_IP
POST_DATE TIME_STAMP
IP_ADDRESS VARCHAR(15)

PRIMARY KEY をIP_ADDRESSに付ける

接続されたら
SELECT MAX(POST_DATE) MAX_POST_DATE FROM TBL_POST_IP WHERER IP_ADDRESS = '$_SERVER['REMOTE_HOST']'
MAX_POST_DATEが現在日時よりも一定時間経過していなければ
header("Location: http://www.yahoo.co.jp/";);
exit;
問題がなければ、
INSERT INTO TBL_POST_IP VALUES(NOW(), '$_SERVER['REMOTE_HOST']');
を実行すればよい。
0081802007/07/13(金) 08:51:02ID:???
あと、このテーブルはアクセスごとにデータがたまっていくから、
cronなどで適時消す必要がある。

例えば、一日ごとに、

DELETE FROM TBL_POST_IP WHERE TO_DAYS(POST_DATE) < TO_DAYS(NOW())

を実行すれば、昨日分のデータを全て消えるし、
毎日のデータ量もそれほど行かないと思う。

又は、このデータは永続的に保存しておきたいのなら、
INSERT INTO BACK_UP_TABLE SELECT * FROM TBL_POST_IP
とすればいい。
0082nobodyさん2007/07/13(金) 08:54:15ID:???
PKつけてるのにMAX(POST_DATE)って。DELETE→INSERTしないとぶつかるよ
しかもIPだと同じ会社で他のやつが書き込みしたら、いきなり書き込み制限されそう
0083802007/07/13(金) 08:55:25ID:???
>>81の補足で、
最後に書いたBACK_UP_TABLEのデータ構造だけど、
TBL_POST_IPと一緒にしておくことを忘れずに。

あとは、一回毎のアクセスの旅にTABLEにアクセスして
パフォーマンス劣化が心配であれば、
TABLEを作る際に、MOMORYテーブルにすればかなり高速で検索できるよ。

MOMORYテーブルは簡単にいうと、メモリ上に情報を格納するテーブルを作成するオプション。
HDDアクセスと比べてかなり高速。

やり方は簡単で、テーブルをCREATEする際に
最後に
ENGINE = MEMORY;
をつければOK。
0084802007/07/13(金) 08:59:49ID:???
>>82
ごめん、確かにそうだ。

INSERT INTO TBL_POST_IP VALUES(NOW(), '$_SERVER['REMOTE_HOST']');

REPLACE INTO TBL_POST_IP VALUES(NOW(), '$_SERVER['REMOTE_HOST']');

にすればOKだ。

あとは、IPがいやなら、IPアドレスの代わりにMACアドレスをキーにすれば、
PCそのものを特定できる。
0085nobodyさん2007/07/13(金) 09:06:16ID:???
PHPでMACアドレスねえ
0086nobodyさん2007/07/13(金) 09:23:47ID:???
>>79
http://pc11.2ch.net/test/read.cgi/php/1122899232/
0087nobodyさん2007/07/13(金) 11:16:34ID:???
高付加価値のレスを頂きましてどうもありがとうございました。
0088nobodyさん2007/07/13(金) 11:42:22ID:HPPLyHwM
フォーム処理などの、よく使う関数を1つのファイルでまとめているのですが、
コンテンツが多くなる毎に、そのファイル無いの桁数も多くなります。

こういう場合、やっぱりコンテンツに応じて使用する関数ファイルを分けた方が
処理も早く、修正しやすいのでしょうか?
それとも、用途(フォーム入力時、確認時 など)によって分けた方がいいのでしょうか?

細かい点ですが、気になったので質問しました。
0089802007/07/13(金) 11:51:59ID:???
フォーム処理というのは入力チェックのことでしょうか?

入力チェックは大きく分けて、
存在チェック、
必須チェック、
型チェック、
文字長さチェック、
範囲チェック、
関連性チェックに分けられる。
それぞれごとに関数を定義したら、あとのフォーム毎に変わる部分は引数として指定して、
汎用的な作りにすればいい。

それでもファイル内の関数が大きくなるのなら、
ファイルを分割して__autoを使って動的に呼び出せば、
パフォーマンスは良くなる。
0090882007/07/13(金) 12:04:44ID:???
>ファイルを分割して__autoを使って動的に呼び出せば、
>パフォーマンスは良くなる。

この部分がよくわからないのですが、

フォームを使う部分は、form_func.phpをincludeし、
表示・確認時は、disolay_func.phpをincludeする

という考え方ではないのでしょうか?
0091nobodyさん2007/07/13(金) 12:11:19ID:???
>>88
パフォーマンスに有意な差は出ないと思うが。

開発・メンテ効率の方を重視して作ればいい。
0092802007/07/13(金) 12:16:46ID:???
>>90
分かりにくくてすみません。
一つずつ説明すると、

存在チェックというのは、
例えば、名前が来るはずなのに$_POST["NAME"]がinnsetがFALSEで帰ってくるかどうかです。
本来フォームで定義しているのに、キーが来ないというのは偽装されている可能性があるため、
即アクセス拒否する必要があります。

次に、型チェックですが、
例えば、名前は全角、郵便番号は数値型、などです。
予め、型が決まっている場合に、入力チェックで弾く場合に使います。
型が違う場合には、通常入浴画面に戻して再入力させます。

次に、文字長さチェックは、
例えば、郵便番号は7桁、年齢は3桁、などのように文字の長さが決まっている場合に使います。
文字長さチェックに引っかかった場合には、型チェックエラーと同じ動作をさせます。

範囲チェックは、
例えば、年齢は0〜120歳とか、生年月日の年が1900年から2007年までというように、
数値の場合に範囲が決まっている場合です。
これも、エラー時の処理は型チェックエラーの場合と同様です。

関連性チェックは、住所で字が入力されいる時に町名が入力されていないなどのように
異なる項目が関連している場合に、その関連性の妥当性をチェックする方法です。
関連性チェックでエラーになった場合には、悪戯で有る可能性があるので、
警告画面を出す必要があります。

長文になりましたが、ざっくり言うとこんなところです。
分かりにくいところがあったら、また投稿して下さい。
0093802007/07/13(金) 12:19:15ID:???
すみません。
必須チェックの説明を忘れていました。

必須チェックというのは、名前や住所など必ず入力しなければいけない項目が
未入力かいなかをチェックする方法です。

存在チェックとちがうのは、必須チェックはクエリーにキーがあるが、値がないかどうかをチェックするのに対して、
存在チェックは、クエリーにキーがあるかどうかをチェックする方法です。
0094882007/07/13(金) 12:28:29ID:???
>>92-93
せっかく書いていただいたのに申し訳ないのですが、
そういう記述を書いている関数のセットがあるわけです。
それを「フォーム処理用」としてまとめています。

それとは別に表示用の関するがありまして、
例えば、$sexが1なら「男」 $sexが2なら「女」という値を返す関数を作っているわけです。

ただそういう処理をひとつのファイル上でまとめていると、
後から確認した時にわかりづらいのではないか?っと思い、
「皆さんはどうしてますか?」っと質問した次第です。
0095nobodyさん2007/07/13(金) 12:46:11ID:???
関数必要ないでしょ

class Constants{
  static $sexArray = array( '1' => '男', '2' => '女' );
}

<td>性別</td><td><?=Constants::sexArray[$_POST['sex']]?></td>
0096nobodyさん2007/07/13(金) 13:04:11ID:???
>>95
おいおい、今時テンプレートエンジン使わずに、
テンプレートファイルにphpの生書きしているってどうよw
0097nobodyさん2007/07/13(金) 14:54:12ID:FLkffxf0
session_regenerate_id()を使って、IDの名前を新しくすると、
以前に使っていたIDはどうなるのでしょうか?
もしサーバーに残るのでしたら、容量を抑えるために消したいのですが可能でしょうか?
0098nobodyさん2007/07/13(金) 15:57:46ID:???
>>96
サバによって生書きするしかない事が山のようにありますが何か?
0099nobodyさん2007/07/13(金) 16:23:41ID:???
age
0100sage2007/07/13(金) 16:28:08ID:???
sage
0101nobodyさん2007/07/13(金) 16:36:25ID:???
age
0102nobodyさん2007/07/13(金) 17:00:23ID:dloI7Add
>>1
↑みたいに、受け取った文章の特定の文字(一定の規則性を持った文字)
を装飾する(タグを付加して表示する)のってどうやるんでしょうか?
「pregなんかの正規表現で切り取って、タグで囲んでもとの位置に戻す」
という作業だと思うんですが、
一番スマートな方法を教えてください。
できれば具体例を示してもらえるとありがたいです。
0103nobodyさん2007/07/13(金) 17:01:32ID:???
preg_replace

>>(\d{1,4})
<a href="">\1</a>
0104nobodyさん2007/07/13(金) 17:05:51ID:7syhWac6
php+mysqlではじめてサイトを作ってるんですが
現状ログインユーザーがページを読み込む毎に
クエリが5本走るようになってます。
まだ追加したい機能があるので将来的には7〜8本は
クエリが走るようになると思うのですが
これって公開した暁にはどの程度の負荷になるのでしょうか?

仮に負荷が大きすぎて実用でないとしたら
どうすればよいでしょうか?
ストアドプロシージャの使用で負荷軽減になりますか?
javascriptのonloadで別に呼ぶのはページ表示を速くする効果がありますか?
0105nobodyさん2007/07/13(金) 17:10:07ID:???
やってみて負荷かかるようなら纏めればいいんじゃね?
0106nobodyさん2007/07/13(金) 17:21:08ID:???
数百万件のデータのテーブルに対して20本位のSQLを発行している
ページがあるけど、0.2秒から0.3秒程度で返却しているよ。
indexをうまく張れば、1000万件超えても余裕だよ。テストデータでのテスト済み。
0107nobodyさん2007/07/13(金) 17:21:38ID:NLrIBmGt
>>104

>>105に同意

あとで組み替えられるように粗な作りにしておけばOK、一発目で納得いくものはつくれんよ。

webサービスにやたらβが多いのも、あちこち試行錯誤、段階リリースやってるからだ。
あとは、本当にクエリが5本必要なのか?ってとこか。
01081042007/07/13(金) 17:26:34ID:7syhWac6
>>105-107
レスありがとうございます。
とりあえず完成させて、テスト公開してみたいと思います。
0109nobodyさん2007/07/13(金) 17:36:59ID:???
俺はいっつもクエリを1,2本で抑えようとするから
余計時間かかって、苦労するな・・・

テーブルなんて細部に分けた方が扱いやすいんだけどな。
1画面1フォームの場合は、すべて1つのテーブルで済ませようと思ってしまう。
0110nobodyさん2007/07/13(金) 17:38:56ID:???
それはそれでいいんじゃないの?その程度の規模のシステムなら。
0111nobodyさん2007/07/13(金) 17:40:37ID:???
良いけど悩む。

テーブルを増やすとソースが増える。確認がしづらい。
しかし、テーブルを減らすと汎用性に欠く。

どちらも一長一短だろうけど。
0112nobodyさん2007/07/13(金) 17:41:27ID:???
>テーブルを増やすとソースが増える

じゃあクエリ送信するときに一度テーブルくっつけちゃえばいいんじゃね?
0113nobodyさん2007/07/13(金) 17:50:35ID:???
DBのパフォーマンス気にしているようだけど、
そんなに気にするほどでもないと思うけど。

アクセス数が異常に多いとか、レコード件数が億を超えるような膨大な
金融機関系のシステムなら別だけど。
0114nobodyさん2007/07/13(金) 18:03:19ID:???
レコード件数が億超えたら、phpMyAdminで確認するのは無理だなw

てか、phpMyAdminの場合、1000件程度でも重いが・・・
0115nobodyさん2007/07/13(金) 18:07:41ID:3J3Mm2ci
phpspot.netアクセスできなくね?
0116nobodyさん2007/07/13(金) 18:16:12ID:???
ページの半分が広告のムカツクあのサイトか
開いた途端に広告しか見えない状態になってから巡回先から外したよ
0117nobodyさん2007/07/13(金) 18:26:09ID:???
広告代が儲からなくなったので、閉じたということも考えられる。
見ず知らずの相手に手間と労力掛けて作っても儲からなかったら意味ないしな。
0118nobodyさん2007/07/13(金) 18:26:22ID:???
広告なんで気にしません
PHPエディタが使えれば
0119nobodyさん2007/07/13(金) 18:38:36ID:???
ま、億とか千万単位のレコードをがんがん扱う段階になったら優秀な人引っ張ってくりゃいいんだよ。
mysqlとかpostgresqlつかうよりOracleだろうし、むしろCacheとか使ってみたい気もする。



0120nobodyさん2007/07/13(金) 18:43:22ID:???
googleは億単位でmysql使ってますが、それが何か?
○件超えたらoracleって意味不明ですが、それが何か?
0121nobodyさん2007/07/13(金) 18:47:13ID:???
>>120
知ってるよ、あくまでも、ソースいじくって独自拡張できるような専門家がいないレベルでの中小企業での話。

ポイントはココにいるレベルなら今は気に病む段間じゃないということ(当然俺も含めて)。
0122nobodyさん2007/07/13(金) 20:51:11ID:LyxSzMMa
聞きたいんですけど、会員管理サイトをプロの現場で運用する場合、
ID、Passwordはもちろん、名前、住所などもMD5で暗号化するなどして
DBに保存するんでしょうか?
また、DB専用サーバをwebサーバとは別に?作ったりするものなんですか?
0123nobodyさん2007/07/13(金) 20:57:21ID:???
暗号化は必ずするけどMD5とは限らない。
DB別サーバーにするかは、規模に応じて。
あと、Web公開用とは別の用途でDBを使うかどうかも関わってくる。
0124nobodyさん2007/07/13(金) 21:00:31ID:???
名前や住所にmd5かけんなよ・・・
0125nobodyさん2007/07/13(金) 21:09:23ID:???
md5で暗号  ってただそう言いたかっただけと見た。
0126nobodyさん2007/07/13(金) 21:38:57ID:???
MD5ってもう信頼性は無いんじゃないの?
0127nobodyさん2007/07/13(金) 21:55:09ID:???
globで返ってくるパスはabc順だけど、
これをファイルの種類順にソートさせたい。

どうすればいいんすかえろいひと。
0128nobodyさん2007/07/13(金) 22:09:50ID:???
>>127
拡張子順って事なら
$index = glob('*');
usort($index,create_function('$a,$b','return strcasecmp(pathinfo($a,PATHINFO_EXTENSION),pathinfo($b,PATHINFO_EXTENSION));'));
print_r($index);
こんな感じで。
0129nobodyさん2007/07/13(金) 22:17:15ID:/IV1BAzj
define("SRC_DIR",'../thread/');
(中略)
$SRC=file(SRC_DIR.$delno.".log","r+b");

のソースで以下のようなWarningが出てまともに動作しなくなりました。
Warning: file() expects parameter 2 to be long, string given in

PHP4の時は問題なかったのですがPHP5になってエラーが出るように
なりました。何か内部変更があったのでしょうか?
01301292007/07/13(金) 22:22:57ID:/IV1BAzj
すみません。自己解決しました。
0131nobodyさん2007/07/13(金) 22:33:28ID:???
>>128
なんか強いなそれ。
ありがとうえろいひと
0132nobodyさん2007/07/13(金) 23:47:33ID:zCZ7I7UC
すみません、「あ」をそれぞれ2進数、10進数、16進数にしたいのですが
いきなり「あ」からそれぞれの進数に変換することはできませんよね?
そもそも「あ」というのは何進数なんでしょうか?
0133nobodyさん2007/07/14(土) 00:48:20ID:TLdn55kS
久々に公式見たら気づいたんだけど
Support for PHP 4 will be discontinued at 2007-12-31. Please consider upgrading to PHP 5.2.
なんて書いてあるじゃない!!

バンザーイ!バンザーイ!
0134nobodyさん2007/07/14(土) 01:52:33ID:YEDQCt26
METAタグのdescriptionで指定している文字列を取得したいと思っています。

preg_match("/<meta name=\"description\" content=\"(.*)<\">/",$meta_desc,$desc);
echo $desc[1];

このように書いたのですが、文字列を抽出出来ません。
どうしたらいいのでしょうか?
01351342007/07/14(土) 02:52:15ID:???
さっさと質問にこたえろ!
0136nobodyさん2007/07/14(土) 03:09:34ID:UxZqEuHT
>>134
preg_match("/<meta name=\"description\" content=\"([^\"]*)\">/",$meta_desc,$desc);
0137nobodyさん2007/07/14(土) 03:09:57ID:???
<
0138nobodyさん2007/07/14(土) 08:22:14ID:???
どうでもいいけど
そういうときはシングルクォートで囲めば? と思うわけだが
0139nobodyさん2007/07/14(土) 08:33:44ID:???
>>138
そんなに熱くならずに、自分のおならの臭いを嗅いでエクスタシー感じようよ。
0140nobodyさん2007/07/14(土) 09:30:58ID:???
>>139
最近、その言葉よく聴くけどどこかで流行っているの?
0141nobodyさん2007/07/14(土) 09:47:41ID:???
若槻千夏が深夜番組で口走ったw
0142nobodyさん2007/07/14(土) 10:11:10ID:???
意図しないリクエスト(クエリ)を排除する簡単な方法はないでしょうか
ホワイトリストでチェックするには変数が多すぎて面倒なのです
01431422007/07/14(土) 10:26:17ID:???
スレ間違いました・・・誤爆です。
0144nobodyさん2007/07/14(土) 10:48:52ID:vAbjevhB
フォームでデータを x[〜] の中に組み込みようにしました
x[1]
x[2]



x[15]
とx[〜]の中データが入るようにしました

それを変数に組み込むために↓のようにしたのですが

for($a = 1; $a <= 15; $a++)
{
$XXX[$a] = "".$_POST["x[$a]"]."";
}

$XXX[1]などの中にデータが入ってくれません
どのように記述したらうまく動くのでしょうか
何卒ご教授よろしくお願いします
0145nobodyさん2007/07/14(土) 11:06:12ID:???
>>144
普通に
$XXX = $_POST['x'];
でいいだろう…。
個別に入れる場合は
$XXX[1] = $_POST['x'][1];
0146nobodyさん2007/07/14(土) 11:27:32ID:???
>>145
ありがとうございます、それを参考に頑張ります
0147nobodyさん2007/07/14(土) 11:51:58ID:o7OpzzBd
// ここから
aaa

bbb
// ここまで

↑の改行を含むaaaからbbbまでの変数$stringsを、ファイルの中に一行で書き込みたいのですが
そのまま書き込むと、3行でファイルに保存されてしまいます。
そこで改行を<br />に変換するために
$strings = nl2br($strings)をして、ファイル書き込むようにしました。
今度は改行の前に<br />が追加されただけで、↓のようになりました
aaa
<br />
bbb
どうしたら$stringsの中身を一行分で書き込めるのでしょうか?
0148nobodyさん2007/07/14(土) 12:05:31ID:???
>>147
nl2br()は改行を<br>に変換じゃなくて改行の前に<br>を挿入。
$strings = str_replace(array("\r\n","\r","\n"),'<br>',$strings);
0149nobodyさん2007/07/14(土) 12:29:17ID:o7OpzzBd
ありがとうございます。解決できました。
ただ、疑問がわくのですが、この書き込んだ文字をhtmlに出力するとき
htmlspecialcharsを使って無害化しようと考えているのですが、そうすると<br>もタグの効力が失いますよね。
無害化は書き込む前に行うのがいいのでしょうか?

出力するときに無害化する措置のほうが安全だとは思っているのですが・・・
0150nobodyさん2007/07/14(土) 12:31:54ID:???
>>149
> 出力するときに無害化する措置のほうが安全だとは思っているのですが・・・
つ SQLインジェクション
0151nobodyさん2007/07/14(土) 12:39:45ID:???
>>149
<br>に変換する前にやることになるね。
出力の時だと出力の度にオーバーヘッドが生じる事にもなるし。
0152nobodyさん2007/07/14(土) 13:26:43ID:42mprax5
「このスレを見ている人はこんなスレも見ています」
のシステムはPHPでどうやって作るのでしょうか?
考えたけどさっぱりわかりません。
どなたか親切な方おしえてください。
0153nobodyさん2007/07/14(土) 13:32:03ID:???
>>152
多分、このスレの中の文字列を形態素解析して、
このスレのテーマと距離的に近いスレを表示しているのではないかと。
自然言語学と統計学的処理をしているので、phpの知識ではどうにもならないと思うけど。
0154nobodyさん2007/07/14(土) 13:38:28ID:???
         \   ∩─ー、    ====
           \/ ● 、_ `ヽ   ======
           / \( ●  ● |つ
           |   X_入__ノ   ミ   そんなエサで俺様がクマ――!!
            、 (_/   ノ /⌒l
            /\___ノ゙_/  /  =====
            〈         __ノ  ====
            \ \_    \
             \___)     \   ======   (´⌒
                \   ___ \__  (´⌒;;(´⌒;;
                  \___)___)(´;;⌒  (´⌒;;  ズザザザ
                               (´⌒; (´⌒;;;
0155nobodyさん2007/07/14(土) 13:50:04ID:???
Googleのキャッシュ機能みたいなのを作りたいんですけど、
考え方としては、fopenなどで読み込んだ先のサイト(HTMLソース)を
保存するだけで良いんですかね?
0156nobodyさん2007/07/14(土) 13:50:23ID:vP7abusR
>>146
改行は改行コードでしまっておいて無害化した後に改行を<br>に置換じゃだめ?
0157nobodyさん2007/07/14(土) 13:52:50ID:???
>>152
テレビの視聴率調査と同じ。
調査用の機器にあたるソフトを配って
それを介して2chにアクセスしたデータを統計的に処理してる。
ただ2chの場合テレビと違ってチャンネル数(=スレ)が異常に多くて
サンプル数まだまだなので、現状では余り精度は良くないらしい。
0158nobodyさん2007/07/14(土) 13:53:05ID:???
>>155
実装方式としては問題ないけど、日本でそれをやると著作権法違反になる。
合法的にやるなら、googleのキャッシュに表示されているHTMLを
キャッシュする必要がある。
01591522007/07/14(土) 13:56:50ID:42mprax5
>>153>>157
すいません。ちょっとわかりにくいかも。
cookieを使ってやってると聞いたことがあるのですが。
具体的にgookieを使ってどうやってるのか、わかりますか?
0160nobodyさん2007/07/14(土) 13:57:28ID:???
>gookie
>gookie
>gookie
>gookie
>gookie
0161nobodyさん2007/07/14(土) 14:00:28ID:???
>>159
だから視聴率調査機がフリーソフトであるからそれをインストールして
サーバに視聴情報を送るんだよ。そのソフトの名前がgookie。
0162nobodyさん2007/07/14(土) 14:07:02ID:???
>>159
cookieを使おうが使うまいが、それは情報を収集する一手段に過ぎないわけでしょ。
その情報をどう解析しどう集計するかは、自然言語学や統計学(多変量解析など)の知識が必要。
その知識がなけらば誤解析だらけの使い物にならないものが出来上がる。
例えば、phpという言葉だけではphp研究所のphpと言語としてphpの区別が付かない。
どういう文脈でphpが使われているかを調べるのが自然言語処理学であり、
それらの言葉の集合がどのスレの言葉のスレと近いのかを意味的距離を数量的に測るのが統計学。
だから、サーバー側のPG知識だけではどうにもならないよ。
01631522007/07/14(土) 14:37:22ID:42mprax5
>>162
いや、cookieとPHPだけでできると思うんですけど?
0164nobodyさん2007/07/14(土) 14:49:26ID:???
>>163
もしそれだけで本当にできるなら画期的な発明だ。
ぜひやり方を教えてほしい。
0165nobodyさん2007/07/14(土) 14:50:41ID:???
いやPHPだけでできると思いますけど…
0166nobodyさん2007/07/14(土) 15:06:19ID:???
多分、相当安易に考えていると思うなぁ。
最後までイメージしてから作り始めないと、
ある時点で壁にぶちあたるよ。

まぁ、とりあえず、作ってみて、
壁にぶつかったら、またこのスレにおいで。
■ このスレッドは過去ログ倉庫に格納されています