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

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

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

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0478nobodyさん2007/05/05(土) 00:18:42ID:???
phpを勉強しようとローカルサーバでインストールしました。
phpのバージョンは 4.4.7 です。

オブジェクトのメンバへのアクセスが
$dbTbl = new clsDB();
$dbTbl->db2table("hogehoge");
だとNGで
$dbTbl = new clsDB();
$dbTbl.db2table("hogehoge");
だとうまくいきます。

どの資料でも -> でアクセスしているので -> にしたいのですが、
原因は何でしょうか?
0479nobodyさん2007/05/05(土) 00:25:48ID:???
1.NGじゃ分からん。何がどうなる。
2.うまくいくじゃ分からん。何がどうなる。
ちなみにPHPでメンバにドットではアクセスできません。
04804782007/05/05(土) 00:34:58ID:???
>>478
メンバにドットでアクセスできて、アロー演算子でできなくて困ってます。

$dbTbl = new clsDB();
$dbTbl->db2table("hogehoge");

class clsDB{
function clsDB(){
}
}

function db2table($str){
print($str);
}

アロー演算子でメンバにアクセスすると、
Fatal error: Call to undefined method: clsdb->db2table()
となり
Javaのようにピリオドでメンバにアクセすると、
hogehoge
が表示できます。
なぜだろう…
0481nobodyさん2007/05/05(土) 00:37:22ID:???
>>434
日本語でおk
0482nobodyさん2007/05/05(土) 00:38:17ID:???
文字列連結になってるだけだし
db2tableってメソッドになってないし
0483nobodyさん2007/05/05(土) 00:38:30ID:???
>>446の人気に嫉妬
0484nobodyさん2007/05/05(土) 00:48:35ID:???
>>480
1.そもそもclsDBクラスでdb2tableメソッドを宣言していない
2.だからドットでアクセスしているというのは勘違い
3.つーかドットでアクセスできないっつってんだろ勝手にPHPコア書き換えんな
4.アクセスの仕方も分からないなら該当部分のマニュアルくらい読もうよ → http://jp.php.net/manual/ja/language.oop.php
5.>>1のルールすら守れないやつは引っ込んでろ
0485nobodyさん2007/05/05(土) 00:51:00ID:eLQmnQPO
str_replaceだと、ヒットしたすべての語が変換されてしまいますが
最初にヒットした箇所だけを変換したい場合はどうすればいいですか?
04864842007/05/05(土) 00:59:36ID:???
つか経験者が「ドットじゃ無理」って言ってるのに
「いいやこっちの方が正しい。アクセス可能。」と言い張る神経が理解できない。
もしかして間違ってるのは自分のほうかな?と省みることは無いんだろうか。
自分のやってることは全て正しくて、間違ってるのは周りに決まってると思ってるんだろうか。

>>485
preg_replace
0487nobodyさん2007/05/05(土) 01:08:53ID:wIBq1T/y
PHPバージョンアップ記念あげ
0488nobodyさん2007/05/05(土) 01:58:52ID:???
おまえらコンパイル画面でも見て悟りを開け
行く文字のながれは絶えずして、しかも本のソースにあらずってな
0489nobodyさん2007/05/05(土) 02:45:33ID:???
日本語でおk
0490nobodyさん2007/05/05(土) 03:07:58ID:1dXIFJS6
>>477
レスありがとうございます。
var_dump($_GET);を書いてやってみました。
.htaccessの内容は
RewriteRule ^([0-9A-Za-z_)]+)/([0-9A-Za-z_)]+)/([0-9A-Za-z_)]+)$
の部分を
RewriteRule ^([0-9A-Za-z_)]+)/([0-9A-Za-z_)]+)/([0-9A-Za-z_)]+)/?$
とした以外変わりないです。

/xxx/yyy/zzz.html だとページは問題なく表示され
array(3) { ["category"]=> string(11) "xxx" ["contents"]=> string(8) "yyy" ["page"]=> string(5) "zzz" }
と表示されています。しかし
/xxx/yyy/zzz だとやはり白紙です。
また/xxx/yyy/z と少しアドレスをきると、404が帰ってて、その上部にarray(3)・・・と同じものが表示されます。

それと、RewriteRule ^(.*)/(.*)/(.*)/?$ read.php?category=$1&contents=$2&page=$3 [L]
に変えてみらところ、/xxx/yyy/zzz では、白紙ではなく、404が戻ります。
404は、rade.phpで if (@is_file ・・・ していて該当ファイルがない場合
header("HTTP/1.0 404 Not Found", true, 404);でエラードキュメントを表示するようにしてるためだと思うのですが、
上記の時に、/image/rrr/sss.jpg などが直リンできなくなります。
いったいどこがどうなっているのかさっぱりです・・・
0491nobodyさん2007/05/05(土) 03:08:07ID:1lZd7YEC
<HTML>
TEST 1
TEST 2
TEST 3
</HTML>

上から 1,2,3という数を正規表現で抜き出したいです。
preg_match_all()を使用して、
"/<HTML>(TEST ([0-9])\n)+<\/HTML>/s"
のようにしていますが、
3しか取得できません。

「TEST [0-9]」の数が定まっていれば簡単ですが、
変化する場合、()の使い方がイマイチわかりません。
どのようにすればよいでしょうか?
0492nobodyさん2007/05/05(土) 03:17:45ID:???
>>491
素直にソース出したほうが早い
なんとなくpreg_match_allのマニュアル読み直すと解決しそうな匂いはする
0493nobodyさん2007/05/05(土) 04:04:49ID:???
正規表現自体間違ってるよ
0494nobodyさん2007/05/05(土) 04:09:10ID:???
>>491
単に改行コードが\r\nなだけじゃ?
初めから終わりまで指定してまうと
その間の全ての文字を考慮しないといけなくなるから
(もちろんそれが必要になる場合もあるけど)
'/TEST ([[:digit:]]+)/'
その場合単にこうしてしまった方がいいと思うけど。
04954942007/05/05(土) 04:13:01ID:???
ああ違った正規表現の所為でループしてないのね…
0496nobodyさん2007/05/05(土) 05:32:40ID:???
ユーザーからの入力値を正規表現で変換する場合、
入力値に正規表現の特殊文字が含まれているかもしれないですよね?
そんな特殊文字を一括してエスケープする方法はありますか?
0497nobodyさん2007/05/05(土) 05:40:53ID:???
あります。
0498nobodyさん2007/05/05(土) 05:47:39ID:2h7OPxMf
>>1嫁
0499nobodyさん2007/05/05(土) 06:49:12ID:???
>>496
正規表現に変換?
正規表現で置換?
0500nobodyさん2007/05/05(土) 08:05:14ID:???
>>499
正規表現で置換です
preg_quoteってのがあるみたいですね
0501nobodyさん2007/05/05(土) 10:29:56ID:???
ランダムな文字列から全角・半角数字を取り除く方法を教えてください。

例、

こども人口、26年連続減少の1738万人
 ↓
こども人口、年連続減少の万人
0502nobodyさん2007/05/05(土) 11:17:37ID:???
>>498嫁
0503nobodyさん2007/05/05(土) 11:20:07ID:???
>>501
UTF-8ならpreg_replaceでuオプションを付けて、
他のエンコードならmb_ereg_replaceで、
[0-90-9]を指定。
0504nobodyさん2007/05/05(土) 11:24:53ID:???
session.gc_maxlifetimeで設定した時間以下で
セッションが勝手に破棄されることってありますか?
maxのlifetimeという表現が気になります
05055012007/05/05(土) 11:28:20ID:???
>>503
ありがとう御座います

>>502
分からないなら黙ってれば?
05065012007/05/05(土) 11:50:38ID:???
なんかレベルひくいよねここ
0507nobodyさん2007/05/05(土) 12:13:54ID:???
ワロタ
0508nobodyさん2007/05/05(土) 12:29:09ID:???
>>500
置換される側なら別にエスケープする必要ないべ
0509nobodyさん2007/05/05(土) 13:13:52ID:???
今日からphp始めました。
さっきphp5.2.2ダウンロードして、今httpd.confを編集中のあたりでもうすでにでっかい壁が出来ました。
AddDefaultCharset none
LoadModule php5_module C:/php/php5apache2.dll
AddType application/x-httpd-php .php
をちゃんと置いてるはずなのにphpinfo.phpがちゃんと表示されない(ソースが出る)。

これってやっぱhttpd.confの設定が駄目なんすかね?あと、php.ini編集した後にapache再起動するの忘れた。
もしかしてそれのせい?
0510nobodyさん2007/05/05(土) 13:21:14ID:???
>>509
俺がPHPを伝授するスレの前半をよめ
0511nobodyさん2007/05/05(土) 13:22:14ID:???
じゃしろよ
0512nobodyさん2007/05/05(土) 14:51:25ID:???
だから質問者はID出せと何度言ったら。
面白半分に騙る奴が出て来るんだよ馬鹿。
0513nobodyさん2007/05/05(土) 15:35:13ID:KTSUFz5D
include, require, readfile などでファイルを読み込んで出力する際に
ファイルロックはしておく必要があるのでしょうか?

flock は使えないみたいですし…
読み込むだけなら別にロックしなくてもいいんですかね?
0514nobodyさん2007/05/05(土) 15:42:13ID:???
>読み込むだけなら別にロックしなくてもいいんですかね?

そりゃそうだ
05155132007/05/05(土) 15:46:33ID:???
すいません自己解決しました。
http://nyx.pu1.net/practice/file_ope/file_ope9.html
0516nobodyさん2007/05/05(土) 15:54:47ID:???
「ファイルロックしなきゃ!!」と思う前に
「ファイルロックって何?」って思わないもんなん?
0517nobodyさん2007/05/05(土) 16:02:16ID:???
いや、ファイルロック位知ってます。
読み込むだけなら〜 の部分は readfile などがロックしてるのかと思って書いたものです
急いで書いたため全然違う日本語になってしまいましたが…
0518nobodyさん2007/05/05(土) 16:28:34ID:???
いや明らかに分かってないだろ
日本語も分かってないんじゃねw
まずマニュアル読めよ
0519nobodyさん2007/05/05(土) 18:17:10ID:H+RxaHTQ
すいません

<a href="../test/read.cgi/php/1177635762/500" target="_blank">
↓
<a href="#500">


<a href="../test/read.cgi/php/1177635762/249-250" target="_blank">
↓
<a href="#249">

こんな感じに変換したいんですが、うまくいきません。
お力添え御願いします。
0520nobodyさん2007/05/05(土) 18:34:55ID:???
何をやったらうまくいかなかったの?
05215192007/05/05(土) 18:50:54ID:H+RxaHTQ
>>520
$a = ' target="_blank"';
$b = '../test/read.cgi/'.$u1.'/'.$u2.'/';
$text = str_replace($a, '', $text);
$text = str_replace($b, '#', $text);

これで上のパターンはうまくいくのですが
下のパターンがダメです。
正規表現を使えばいいのでしょうが書き方がわかりません。
0522nobodyさん2007/05/05(土) 19:06:13ID:???
>>519
$pattern = '!<a.+href=".+/(\d+).+".+>!';
$replace = '<a href="#\1">';

$str = '<a href="../test/read.cgi/php/1177635762/500" target="_blank">';
$replaced = preg_replace($pattern, $replace, $str);
var_dump($replaced);

$str = '<a href="../test/read.cgi/php/1177635762/249-250" target="_blank">';
$replaced = preg_replace($pattern, $replace, $str);
var_dump($replaced);

こんな感じか
パターンかなり適当だからマッチしない場合には修正してくれ
正規表現はマニュアル見て勉強するしかない
05235192007/05/05(土) 19:57:17ID:H+RxaHTQ
>>522
$pattern = '!<a.+href=".+/(\d+).+".+>!';
$replace = '<a href="#\1">';
これだと</a>まで巻き込んでしまったので

$pattern = '!<a.+href=".+/(\d+).+".+>(.+)</a>!';
$replace = '<a href="#\1">\2</a>';
これでうまくいきました。有難うございました。
0524nobodyさん2007/05/05(土) 20:10:21ID:???
>>523
お前の元発言が</a>とか書いてなかったからだろ
0525nobodyさん2007/05/05(土) 23:33:15ID:cnfZ7N5Y
gzencodeって関数あるじゃないですか。
で、その逆のgzdecodeが何故かなかったんで
ググったらhttp://www.php.net/manual/ja/function.gzencode.php#44470に
それらしいのを発見したんで使ってみたんですが、
今度は上のgzdecode内で使われているgzinflateがbuffer errorってのを返すんですね。
ちなみにgzdecodeしようとしたデータは、Googleに対してContent-Encoding: gzipで
アクセスして返ってきたデータなんですが、これをデコードするには
一旦ファイル作成して、gzopen使うしかないんでしょうか。
0526nobodyさん2007/05/05(土) 23:43:34ID:cnfZ7N5Y
すいません。
×Googleに対してContent-Encoding: gzip
↓
○Googleに対してAccept-Encoding: gzip
でした。
0527nobodyさん2007/05/06(日) 00:14:57ID:???
>>525
あるじゃん
ttp://jp.php.net/manual/ja/function.gzdecode.php
目的に合うかわしらんが
0528nobodyさん2007/05/06(日) 01:12:42ID:???
527はレスの日本語も読めない人
0529nobodyさん2007/05/06(日) 01:59:55ID:mYMYvtVv
複数のウェブアプリを一つのサーバーに入れていて、
各々のウェブアプリのセッションの寿命設定が違う場合、
他のウェブアプリが走らせたガベージコレクションによって
別のウェブアプリのセッションファイルが
目論見より早い段階で掃除されてしまう、
ということはありえるでしょうか?
ありえるとしたら、
アプリごとに、セッションパスを必ず分けなくてはいけない…
ということでしょうか?
0530nobodyさん2007/05/06(日) 02:31:53ID:???
>>529
IDだしてて偉い!
ということで不肖ながら答えさせていただきます。

どうせだからちょっとセッションの軽いまとめをしてみよう。

まずガーベジコレクタが起動するタイミングはsession_start()が
呼び出されたとき。
で、session_start()が呼び出されても必ずガーベジコレクタが起動
するとは限らない。

ガーベジコレクタはsession_start()が呼び出された際に、php.iniの
session.gc_divisor / session.gc_probabilityの確率で起動する。
当然これは全てのsession_start()で等しい確率となる。

で、ガーベジコレクタが起動して掃除を始めると、これまたphp.iniの
session.gc_maxlifetimeを超えているセッションのみを削除する仕組
になっている。

つまり、>>529の心配していることが半分的中してしまう訳だな。
確かにあるWebアプリ用のガーベジコレクタが別のWebアプリ用の
セッション情報を削除してしまうのは間違いないけど、それは既に
寿命の切れたセッション情報だから問題ないはずだ。

どう?
0531nobodyさん2007/05/06(日) 02:58:14ID:???
>>529
セッションパスとセッション接頭子が全く一緒なら
そりゃ混ぜこぜにされちゃって掃除対象になっちゃうのでは。
session.save_pathかsession.nameのどっちかは
変えとかないといかんのじゃないかな。
うちはセッションルールが異なるアプリの場合、
session.save_pathは一緒だけどsession.nameをそれぞれ変えてる。
0532nobodyさん2007/05/06(日) 02:59:20ID:???
>>529
http://jp.php.net/manual/ja/ref.session.php
> 注意: 異なる値を session.gc_maxlifetime に指定している 別々のスクリプトがセッションデータの保存場所を共有している場合、 一番小さい設定値に達した時点でデータが消去されます。このような場合には、 お互いに session.save_path を使用します。

他のノイズは無視して下さい。
0533nobodyさん2007/05/06(日) 03:00:50ID:???
>>530
その「寿命」の設定が全く異なる場合に、
長命設定のものが短命設定のものに巻き込まれて
削除されてしまうのを心配してるんじゃ?
何を持って
> それは既に寿命の切れたセッション情報だから問題ない
と言ってるんだろう。
0534nobodyさん2007/05/06(日) 03:05:01ID:???
>>531
session.nameってURLのパラメータ識別子であって接頭子なんかじゃないぞ。
セッション情報は session.save_path/sess_* で保存されてるんだから
session.save_pathが一緒である限り他と区別する方法なんてない。
0535nobodyさん2007/05/06(日) 03:10:41ID:WP5rGYZn
setcookie("i_id" , "hoge" , time() + 60 * 60 * 24 * 7);
とクッキーをセットした場合、セットしたディレクトリのみ有効?
上のディレクトリも有効にする事って出来ない?
0536nobodyさん2007/05/06(日) 03:20:24ID:???
>>533
ガーベジコレクタは寿命の切れたものしか削除
しないだろ?
だったら>>530の言うように寿命がそれぞれ違っ
ても問題ないんじゃない?
05375292007/05/06(日) 03:22:18ID:???
ご回答ありがとうございました
最低の設定で掃除されてしまうとは・・・
セッションセーブパスを必ず設定することを習慣にした方が
いいかもしれないですね
0538nobodyさん2007/05/06(日) 03:27:27ID:???
>>536
寿命は生成時には決められない、ということでは?
gc_maxlifetimeは文字通りGCに対してだけの設定で、
セッションファイルに「このファイルの寿命はここまで」という属性を
与えるわけではないと。
0539nobodyさん2007/05/06(日) 03:39:48ID:???
>>538
なるほど。いや勉強になった

しかし俺が言うのもあれだがセッション関連の話題は毎スレ出てくるな
まとめをテンプレに入れたほうがいいのかな?
0540nobodyさん2007/05/06(日) 03:48:36ID:???
【PHP】セッションについて語ろう!【PHP】
http://pc11.2ch.net/test/read.cgi/php/1064399467/
0541nobodyさん2007/05/06(日) 03:57:09ID:???
>>535
マニュアル読めよー
引数4番目がディレクトリの設定。
0542nobodyさん2007/05/06(日) 04:50:39ID:mYMYvtVv
session.bug_compat_42
session.bug_compat_warn
こんなディレクティブの存在をはじめて知りました
説明を読むと、
本来はsession.bug_compat_42は0にしておくのがベターだと思うのですが
何故か1になっていました。
で、session.bug_compat_warnも1になっているのですが、警告されません。
エラーリポートはE_ALLです。
バージョンは5.1.6です。
PHP5ではsession.bug_compat_42は無視されているのでしょうか?
05435252007/05/06(日) 05:36:49ID:7LnaFZ8P
gzdecodeが悪かったわけではなく自分が、とちっていたようです。すいません。
レスポンスされたデータを適切に処理していなかったため
gzdecodeでエラーを返していたみたいで、その壊れたデータをgzopenを使って処理した場合には
なぜかうまく処理できていたというだけのようです。
具体的にはTransfer-Encoding: chunkedの時に
40
hogehogehogehogehogehogehogehogehogehogehogehogehogehogehogehoge
3a
hogehogehogehogehogehogehogehogehogehogehogehogehogehogeho
0
のように返ってくるデータを
全部つなげてからgzdecodeしなければならないところを
切れたままのデータにgzdecode処理してしまっていたのが原因でした。
レスくれた人ありがとうございました。
05445422007/05/06(日) 08:20:18ID:???
http://hamoblo.com/simple-eye/index.php?type=1&entryId=6
ここのブログによると
実際に代入する段階で警告が出るようです
いずれにしろ検索して出てくる記事の少なさからも
かなりマニアックな機能のようで…。
session.bug_compat_42がデフォルトで1なのがちょっと疑問です
まあ互換性の問題なのでしょうが
PHP5なら0にしておいた方がいい気がします
0545nobodyさん2007/05/06(日) 12:39:42ID:???
おまえは質問しにきたのかお知らせにきたのかハッキリしないやつだな
0546nobodyさん2007/05/06(日) 12:51:11ID:???
まあ下質スレだしな
0547nobodyさん2007/05/06(日) 13:41:07ID:???
質問がらみでわかったことを情報提供するのが何が悪い
0548nobodyさん2007/05/06(日) 13:46:15ID:???
そして無駄なログが増えて続けて2ちゃんでるはデブになってゆく
0549nobodyさん2007/05/06(日) 16:09:13ID:???
だがそれがいい
0550nobodyさん2007/05/06(日) 16:16:08ID:???
うんこ
0551nobodyさん2007/05/06(日) 16:52:18ID:???
>>542
昔、グローバル変数とSESSIONがカチ会うとSESSIONが上書きされる現象に悩まされたが
原因はそれかあああ
session変数にses_を付ける方法でしのいだがとんでもないバグだな。
PHPのクオリティーの低さは異常。
0552nobodyさん2007/05/06(日) 17:30:45ID:bSP5KVqH
winXP
Apache2.2.4 + MySQL5.0.37 + PHP5.2.2 + phpmyadmin2.10.1で
phpmyadminがエラーになります
動くようにするにはどうすればいいでしょうか
表示されるメッセージは「phpMyAdmin - エラー」のみです
設定はttp://www.yamada-lab.org/doc/win/mysql5/index.html
などを参考にしました
phpinfoではmysqlの欄も表示されます
行ったのは
文字コードをUTF8に統一
http.confにLoadModule php5_module(ry
php.iniのmbstringとmysqlのコメントを外す
config.inc.phpのpmaのURL記述と認証のhttpへの変更
libmysqlのsystem32へのコピー
です
文字コードはsjisに統一した状態でも同じでした
0553nobodyさん2007/05/06(日) 17:34:47ID:bSP5KVqH
エラーlogでは
select_lang.lib.php on line 405
session.inc.php on line 117
session.inc.php on line 100
が何度か出てきます
0554nobodyさん2007/05/06(日) 18:30:30ID:zIFA24Jt
handan(-53) >no
handan(aaa32) >no
handan(4223) >yes
handan(0) >yes
handan(ads8ds) >no
handan(000333) >no
というふうに
正の整数+0ならYESと返す関数が見つかりません
あれば教えてください。
0555nobodyさん2007/05/06(日) 18:31:03ID:zIFA24Jt
別にYESでなくてもいいので判断する関数をお願いします。
0556nobodyさん2007/05/06(日) 18:43:18ID:???
$hoge===0
0557nobodyさん2007/05/06(日) 19:10:25ID:???
>>554
ctype_digit()
0558nobodyさん2007/05/06(日) 19:11:21ID:???
って000333はnoなのか。なんでだ。
05595522007/05/06(日) 19:17:43ID:bSP5KVqH
Webprog板のphp関係下質スレで聞けと誘導されてきたのですが
ここもスレ違いでしょうか
0560nobodyさん2007/05/06(日) 19:20:07ID:???
ならこれくらいしか思いつかない。
preg_match("/^(0|[1-9][0-9]*)$/", "値")
0561nobodyさん2007/05/06(日) 19:22:07ID:gRJO/G6J
設計について相談です。

会員毎のアクセス解析を作る場合、アクセスがあった度にログに追加していては
例えDBを使ったとしても、尋常じゃないほどログが増えすぎると思います。
かといって、1会員毎にログファイルを生成するやり方も、古い気がします。

そこで、指定件数(例えば30日以降のログは消去する)を決めて
1回目のアクセスは新規登録、2回目以降は上書き(カウントアップ)だけに
しようとも思います。これだと会員が1000人いたら、1000×30=3万件ですが。

ただ、この考え方で良いのかどうか不安です。良い知恵をお借り出来ないでしょうか。
0562nobodyさん2007/05/06(日) 19:27:13ID:???
>>560
「0.00333のtypoでした」かもしれない。本人待ちがいいんでない?
0563nobodyさん2007/05/06(日) 19:32:08ID:???
>>561
俺ならアクセス毎に1件登録して
1日1回バッチ処理でユーザ毎の
カウントを集計してログを削除、にする。

アクセス毎にupdateは処理が重いのと、
不具合が出たときに誤集計になりやすい。
0564nobodyさん2007/05/06(日) 19:38:24ID:NIpCxqfr
ちょっと質問

最近URLに(タグと言うべきか)文字が挿入されているサイトをよく見かけますが
これってどのようにURLからデータを取得しているんでしょう?

(ウィキペディア)http://ja.wikipedia.org/wiki/PHP:_Hypertext_Preprocessor
(はてな)http://d.hatena.ne.jp/keyword/PHP
(amazon)http://www.amazon.co.jp/○○
(ニコニコ)http://www.nicovideo.jp/tag/○○

日本語はエンコード・デコードしているのはわかります。

URLに ?test=hogehoge みたいな風になっていれば
$_GETで取得できるのはわかるのですが、どなたか仕組みを知りませんか?
05655612007/05/06(日) 19:38:27ID:???
>>563
ありがとうございます。なんとなく糸口が見えてきたので、
もう少しお願いします。

>1日1回バッチ処理でユーザ毎の カウントを集計してログを削除、にする。

との事ですが、これはログファイルを生成して日が終わった後に
修正したデータをDBに登録する。

と言う事でしょうか?それとも日のアクセスも一時保存用テーブルに保存して、
集計時に集計したデータを履歴用テーブルに保存し、一時保存のテーブルは
空にする と言う事でしょうか?
0566nobodyさん2007/05/06(日) 19:38:54ID:zIFA24Jt
>>560
おお、これです。
感謝します。

解答してくれた方もありがとうございました

誤入力を避けるために000333は禁止する方向でやってます
0567nobodyさん2007/05/06(日) 19:41:09ID:???
>>552
manual読んでもわからないならXAMPPでも入れておけば良いんじゃないかしら。
0568nobodyさん2007/05/06(日) 19:45:23ID:???
>>564
mod_rewite + router
0569nobodyさん2007/05/06(日) 19:56:41ID:bSP5KVqH
>>567
XAMPPの最新版を入れても同じエラーになります
0570nobodyさん2007/05/06(日) 19:57:07ID:CCThxWoF
あるサイトからフィルター的に部分部分で表示しようと思っているんだが、
もしサイトが更新されても安定して取得・表示する方法でいいアイデアってないかな?
今はサイトを取得してからeregで特定タグなりを目印にして出力しているんだが…
0571nobodyさん2007/05/06(日) 20:13:39ID:OoDHPbxz
$a = ($b) ? $c : $d;

これってどういう意味?
一応調べたんだけど記号だからうまく調べられなかった
0572nobodyさん2007/05/06(日) 20:17:03ID:jInvdC5H
三項演算子 マニュアルの演算子のとこ
0573nobodyさん2007/05/06(日) 20:19:18ID:OoDHPbxz
>>572
サンクス!
0574nobodyさん2007/05/06(日) 20:31:12ID:???
>>564
$_SERVER['QUERY_STRING']
0575nobodyさん2007/05/06(日) 20:31:58ID:???
>>570
>更新されても安定して取得・表示する方法
ない。相手側の勝手だから。RSSとかやってるなら別だけど。
0576nobodyさん2007/05/06(日) 20:33:11ID:???
>>565
その辺の選択はアクセス量などに応じて
好きな方でいいと思う。
0577nobodyさん2007/05/06(日) 20:35:17ID:???
>>570
そもそも部分部分に表示って
どういう基準で選り分けてんだ
■ このスレッドは過去ログ倉庫に格納されています