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

【PHP】質問スレッドpart32【php】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/01/03(火) 17:18:20ID:???
PHP全般の質問スレです。
【基本ルール】
・新規質問の方は上げてください。age進行でお願いします。
・質問者は2回目以降、最初のレス番号を名前欄に入れてください。
・回答者は質問者に対して>>(アンカー)をつけてください。
・煽り・荒らしは放置。荒らしに反応した香具師も荒(ry
・解決しなくてもこたえてもらったら礼を。
【質問テンプレ】
・マニュアルを調べたか、google検索したか(調べたキーワード)
・タイトル(禁:教えてください!etc) 例:requireとinclude
・内容 例:requireとincludeはどう違うのですか?
・質問する際には環境も明記。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
【PHP マニュアル】
http://www.php.net/manual/ja/
※マニュアル上部の「search for」から検索を活用すべし(便利)。

過去スレ、関連リンク、FAQ等>>2-10辺り
0685nobodyさん2006/02/06(月) 20:29:46ID:???
>>680
全数字を入れたテーブルをnums、除外したい数字を入れたテーブルをextとして
select num, random() as idx from nums where num not in ( select num from ext ) order by idx limit 1;
みたいな感じでいけるんじゃないの。試してないけど。
06866822006/02/06(月) 20:32:38ID:???
>>683
自分が仕様を理解してないのかも知れんが、
最初にどのブロックで処理をするかランダムに決定して
後はその対象となるブロックの範囲で処理するだけだよ。
当然「除外数字リスト」とやらもブロック毎に分ける。
0687nobodyさん2006/02/06(月) 21:44:29ID:???
>>684
除外値が動的に実行時に決まる、とは書いていない。
674で、DB使ったらどうなるかなと聞いてるから答えてるんでしょ。

ていうか654に選ばれたくない数字はDBに入ってるって書いてるし。
0688nobodyさん2006/02/06(月) 21:50:12ID:???
>>687
仮に動的に実行時に決まるのだとしてもDBのワークテーブルに一時的に格納すれば済む話。
オーバーヘッドの多い処理方法だが件数が極めて多いときにはそういった手法も有効。
0689nobodyさん2006/02/06(月) 22:19:50ID:???
1
2
3
4
5
略

とデータがあるのを一個ランダムで消して保存

1
2
3
5
略

となる。次はまた一個ランダムで消す。それを繰り返すだけのことでは?
0690nobodyさん2006/02/06(月) 22:50:29ID:???
>>689
そういった単純な繰り返し手法は件数が少ないときじゃないと厳しいでしょ
0691nobodyさん2006/02/06(月) 23:33:22ID:+hyQlmQi
funciton について教えて欲しいのですが、
例えば、Aというファイルにfunctionを100個定義します。
そしてBのファイルにAファイルをincludeします。
でも、BのファイルではAのファイルのfunctionのうち、1つしか呼び出しませんでした。

このとき、�@BファイルはAファイルのファンクションを全て読み込むのでしょうか?
�ABファイルはAファイルで使用したファンクションのみを読み込むのでしょうか?
(�@でしたら便利だと思うのですが�Aの状態だと重くなってしまいますよね。)

宜しくお願いします。
0692nobodyさん2006/02/06(月) 23:49:13ID:???
はい、全て読み込みます。
0693nobodyさん2006/02/07(火) 00:10:46ID:9eIIutOU
レスありがとうございます。
どれ位の数のファンクション読み込んでもストレスを与えない程度に大丈夫なんでしょうかね。
0694nobodyさん2006/02/07(火) 00:20:26ID:???
>>693
APCとかのコードキャッシュを行うアクセラレータを組み込んでればさほど問題ないけど
何も入れてないノーマルの環境だと体感できるほど遅くなってくる場合がある。
程度は関数の数よりコードの分量と複雑さによってくると思う。
200〜300行/20KB程度のclass定義ファイルを10個くらい読み込ませると
サーバー環境にもよるだろうけど0.3秒ほどの遅延が確認できた。
「ストレスを与えない程度」は状況や規模によりけりなので自分で判断しる。
0695nobodyさん2006/02/07(火) 00:24:53ID:9eIIutOU
>>694
ご親切にありがとうございます。具体的な数字を教えて頂いて助かりました。
300行を2つくらい読み込ませようと思ってたところなんで、ガンガンFUNCを作って
プログラムやってきたいと思います^^
0696nobodyさん2006/02/07(火) 00:25:10ID:VahS1T1X
>>694
その遅延はアクセレータなしの時?
0697nobodyさん2006/02/07(火) 01:03:37ID:???
>>696
そそ
0698nobodyさん2006/02/07(火) 01:35:51ID:???
200〜300行を たった10ファイルで 0.3秒も遅くなるの!!!
えぇぇぇぇ
0699nobodyさん2006/02/07(火) 01:38:21ID:vK7c16Ac
関西弁変換プログラムをつくろうと摸索中です。
<?
function kansai($text){
$text=str_replace("ありがとうございました","おおきに",$text);
}
?>

上記の内容のosaka.incというファイルを作成し
外部ファイルからosaka.incをrequire_once print(kansai($text)) とやると 中に入っていたはずの文字列が全て消えてしまいます。
どこがおかしいのでしょうか?使う関数が間違っているのでしょうか?
0700nobodyさん2006/02/07(火) 01:41:09ID:???
>>698
PHPは同種のスクリプト言語の中じゃ特に遅い部類なんだから
速度を気にする香具師はアクセラレータ入れて動かしな
0701nobodyさん2006/02/07(火) 01:41:58ID:???
>>699
くだらん質問をくだ質スレから持ってくんな
0702nobodyさん2006/02/07(火) 01:49:18ID:???
>>700
同種のスクリプトが何を指すかわからないけど、
そこそこ早いと思うぞ。
少なくともrubyよりは早い気がする(検証はしてない)
0703nobodyさん2006/02/07(火) 01:56:01ID:???
return $text
0704nobodyさん2006/02/07(火) 02:49:30ID:???
>>703
thx
07056542006/02/07(火) 03:42:33ID:???
>>654です。
皆さんありがとうございます。とても参考になります。
>>687さん、私の言葉が足りませんでしたが、除外数字は動的に決まります。
具体的に言うと、ランダム関数で出た数字を一つ一つ「除外リスト」に追加していき、それをDBに保存します。
つまり、0〜10000までの範囲でそのスクリプトを1万回実行すると、最終的には除外リストに1万個の数字が入り、
もう選べる数字がなくなる・・・という風にしたいのです、
(逆に言えば、1万回のランダム計算で、常に一意の数字を選び出したい、ということなんです)
07066542006/02/07(火) 03:48:13ID:???
補足レスです。
「常に一意の数字を」ではちょっと言葉が足りないかもしれません。
「常に一意かつ未だ一度も選ばれてない数字を」です。
0707nobodyさん2006/02/07(火) 03:56:10ID:???
それって uniqid('',true) じゃ問題になるぐらいのユニーク性を確保しないといかんのか?
用途が分からんから「こうしろ!」って一つに絞るのは不可能だし、それを使って何がしたいのかもワケワカメ。

まさか糞重い処理をアクセス毎にやるとは言わんだろうけど、最初に作ってDBにでも放り込んでおけば?
07086542006/02/07(火) 04:02:26ID:???
>>707
はい、自分の意図した数字(あるいは文字)の範囲内でランダムな値を得たいので、
uniqidでは無理なんです・・・。

用途はいろいろ応用できるかと思いますが、たとえば「宝くじ番号」みたいなのを
ランダムな順番で発行したりとかにも使えますよね。
07096542006/02/07(火) 04:09:45ID:???
ちなみに私が最初考えた方法は、ランダム計算を実行するたびに出た数字を
DB内の「除外リスト(最初は空)」に問い合わせて、該当するものが含まれてなければ
それをリストに追加保存し、該当するものが既にあったら、再度ランダム計算をやり直す…というものでした。

この方式だと、リスト内の数字の数が少ないうちはいいのですが、
だんだん増えてくると数字がカブってランダム計算を何度もやり直してしまう確率が
どんどん上がってしまいまして・・・。
これを解決するのに、数字の範囲が〜10000程度なら>>656さん方式でいいのですが、
100万などとなるとやはり区分けが必要で、その区分けの仕方がうまいこと考えつかなくて・・・
0710nobodyさん2006/02/07(火) 04:34:05ID:???
アホほどメモリ食うけど100万ぐらいならこれでいけるべ。
リクエストごとにリストを作り直すような使い方には極めて不向きだけど、
結果をDBなりファイルなりに保存しとくなら許容できるっしょ。
<?php
$a = range(0, 999999);
var_dump(number_format(memory_get_usage()));
shuffle($a);
$b = array_slice($a, 0, 100);
unset($a);
var_dump(number_format(memory_get_usage()));
$c = array_map(create_function('$n', 'return sprintf("%06d", $n);'), $b);
print_r($c);
?>
string(10) "60,238,624"
string(6) "64,848"
Array
(
 [0] => 354393
 [1] => 080271
 (中略)
 [98] => 030508
 [99] => 717038
)
0711nobodyさん2006/02/07(火) 04:46:21ID:???
>>708
宝くじ番号をランダムに発行する必要性がないからな・・やっぱり何を作ってるのか分からない・・・。

上位桁(0〜1000)と下位桁(0〜999)に分けて、
・上位桁の既出リストをDBから取得
・それを元にランダムに一つ選ぶ
・結果から下位桁の既出リストを取得
・それを元に(ry
上位桁*1000+下位桁=ランダムな値

(もしやるなら上・中・下位桁の3段ぐらい欲しいな。)
0712nobodyさん2006/02/07(火) 04:47:40ID:???
もうちょいきれいに書いてみた
$min = 0;
$max = 999999;
$num = 100;
$fmt = sprintf("%%0%ds\n", strlen(strval($max))); // パディングは好みで
$list = array_rand(range($min, $max), $num);
shuffle($list);
foreach ($list as $n) {
printf($fmt, $n);
}
0713nobodyさん2006/02/07(火) 12:56:49ID:???
そういう案件なら、まず事前に00000〜10000までの数字の配列を作ってそれをランダムに並べ替えてDBに登録しておき、
リクエストごとに頭から順に返していって「ここまで使用済み」というカウントだけ保持しときゃいいと思う。
これが1番お手軽かつ高速。
07147132006/02/07(火) 13:00:06ID:???
もう1つの案としては同じく00000〜10000までの配列をどんな順番でもいいのでDBに登録しておき、
リクエストごとに1個削除してそれを返していく方式とか。これならカウンタの保持も要らない。

なんにせよ、そんな案件をリアルタイムにデータ生成してるのはただのバカかと。
0715nobodyさん2006/02/07(火) 13:09:10ID:???
このネタまだ続いてたのか
0716nobodyさん2006/02/07(火) 13:48:49ID:???
>>713
たしかにそれはいいね。
でも数字だけならそれでいけるけど、これがさらに「a5fw8g」みたいに、
任意の英数字で構成される文字列が対象だと、その手法も使えないよな。
こういう予測が不可能(または無限に近い)な文字列だったら、どうする?
やっぱリアルタイム生成でうまい方法を考えるしかないっしょ・・・
0717nobodyさん2006/02/07(火) 14:05:22ID:???
>>716
それならsubstr+md5+uniqidする
かぶる可能性はかなり低くなるのでDBへの問い合わせもそんなにループしないと思う
0718nobodyさん2006/02/07(火) 14:14:03ID:???
>>717
ん? それでも「使用候補リスト」をあらかじめ作っておく方式にするの!?
いったい何百万個用意しておく気だい・・・??

しかしこのスレ、みんなのいろんなアルゴリズムが見れて楽しいなw
0719nobodyさん2006/02/07(火) 14:17:35ID:???
教えてください。
バイナリファイルを読み込んで内容を16進で出力したいんですが、
どのように出力すればいいのでしょうか?
fget()で読み込んでそのままprintしただけでは
当然文字として出力されてしまいます..。
そもそも読み込み方が違うのでしょうか?
宜しくお願いします。
0720nobodyさん2006/02/07(火) 14:23:56ID:???
>>719
echo bin2hex(fgetc($fp))
桁もそろえたいなら
printf("%02X", ord(fgetc($fp)))
あたりでドゾ
0721nobodyさん2006/02/07(火) 14:25:10ID:???
>>716
自分で何を言っているのか判ってないんだろうから解説するとね。

●数学的に完全にランダム。(過去の記憶を持たない:重要)
●過去に出た文字列は出さない(過去の記憶が必要:重要)
つまりね、命題として、”リアルタイム生成”ってのは既に不可能なんだな。
なんらかの形で過去を記憶しなきゃならん。

でだ実際に君が欲しがっているものは、実は真にランダムな文字列の列じゃなくてね
n文字の組み合わせからm個とる順列のうちの一つだがね。

結論としてね、n文字の組み合わせを生成するのと、m個の順列を生成する際の
オーダーによってアルゴリズム変えなきゃならないわけ。

下らない質問か、アルゴリズムスレ(そんなの有るのか?)向けの話だと思うけどね。
0722nobodyさん2006/02/07(火) 14:26:21ID:???
>>716
それ、可能なパターンをあらかじめ全種類作る必要無いでしょ。
その文字列リストを何の目的で使うのかによるんだけど、
宝くじとかで最終的なユーザ数(リクエスト数)が想定できるなら、
使う可能性のある分だけランダムに生成した文字列をあらかじめ入れとけばいいだけでしょ。

また、これを何十年も運用し続けるというのであれば、初回に100万種類用意しといて動かし、
そのプールが尽きたら、過去の100万と被らない次の100万種類を新しいテーブルに生成。
その繰り返しで文字列生成の限界まで運用すればいいと思う。
これでもデータ生成は継続時にバックグラウンドで1回だけ行うだけだから、
それ以外の通常運用時の負荷は非常に低い。

何の問題も無いと思うが?
0723nobodyさん2006/02/07(火) 14:28:30ID:???
>>720
サーンクス!
0724nobodyさん2006/02/07(火) 14:30:27ID:???
>>718
最終的には「使用候補リスト」→「使用済みリスト」に
置き換わって行くわけだから別に最初からリストアップしてても問題はないんじゃない?
だって運用していけば、その何百万個が入った「使用済みリスト」が出来ることは
仕様に盛り込まれてるんでしょ。
0725nobodyさん2006/02/07(火) 14:39:40ID:???
漏れも考えたのは>>713の方法だな。
使っていない数字数百万をどっかに保存するのと
使った数字数百万をどっかに保存するのとなら、
最大に使う容量は最終的には変わらん。
宝くじは適当な番号を生成してるんじゃなくて、
連番で作ったくじをバラバラに配っただけ。

そもそも8桁(一億程度)の数字の中で数万しか使わないのなら
適当に数字を選んで、使っていたら選びなおすというアルゴリズムでも
発生に要する時間を気にする必要も無いかと。この場合、
すでに使った数字にぶち当たる確率は最も高くて1000分の1だから、
数値を3回選ぶ必要がある事すら数回あるか無いか、な訳で・・・。

0000〜9999の数値が全くかぶらずに適当に1万種(つまり全部)出てくるのなら前者、
00000000〜99999999の数値が全くかぶらずに適当に10万種出てくるのなら後者
0726nobodyさん2006/02/07(火) 15:07:45ID:???
>>721
>命題として、”リアルタイム生成”ってのは既に不可能

言っている意味が分からないなぁ。
既出の数字を避けつつリアルタイム生成・・・って可能でしょ。

>>724
「使用候補リスト」と「使用済みリスト」はお互いにカブらないものだから、
どちらか一つあれば十分だよね。
当初は「使用済みリスト」しか考えつかなかったから、それが仕様になってたんじゃない?

>>725
宝くじってのはあくまでも一例でしょう。
俺もこの系統でいろいろ用途は思いつくぞ。
0727nobodyさん2006/02/07(火) 15:17:16ID:???
>>726
わからない?

これ”ランダム”な文字列の生成だと思ってるみたいだけど、実際には”シャッフル”の問題だと言う事。

リアルタイム生成(いまいち実体は掴めないが)に必要な条件は”過去を無視”できると言う事。

だから”ほぼ”過去を無視できるなら(つまりm個)が小さいなら、擬似的に”リアルタイム生成”
も可能だが、そうではないなら厳しいと言う話。

どこで区切るかは、それこそオーダーの話になってくるよ。

という事なんだけど、判ってもらえるかな?
0728nobodyさん2006/02/07(火) 15:18:41ID:???
>>726
>>721は「リアルタイム生成」=「一切の元情報なしでその場で算出」と勘違いしてるだけかと。
>>725の話は一例だとして、事前に必要数をプール→足りなくなったら補充方式でダメなケースって何?
いずれにせよ、アルゴリズムは用途に応じて最適なものを選択するものなんだから、宝くじって言われたら
それに適した解を出すべきであって、そこに無理に抽象化されたアルゴリズムを持ち出すのは無意味かと。
この方法では問題のあるケースに適したアルゴリズムを出せというなら、まずその用途を出しましょう。
0729nobodyさん2006/02/07(火) 15:24:18ID:???
>>728
>「リアルタイム生成」=「一切の元情報なしでその場で算出」と勘違いしてるだけ
違うけど…
0730nobodyさん2006/02/07(火) 15:45:38ID:???
Cか何かで既出(or未出)を保持するの作って、そいつと通信するのが一番じゃないか?

まぁ、やっぱり何に使うのか分からんわけで
>>726
それって絶対この重い処理が必要なのか、無理に使うなら山ほど浮かぶけど絶対に必要ってのは余程条件に縛りを入れないと・・
0731nobodyさん2006/02/07(火) 15:48:55ID:???
>>730
> Cか何かで既出(or未出)を保持するの作って、そいつと通信
それで1番手っ取り早くて確実なのがRDBなんじゃないの?
既出分はどんどん追加登録されていくわけで、それに対するロックとかも考えると中身はまるっきりDBだし。
0732nobodyさん2006/02/07(火) 15:57:10ID:???
俺も>>721はなんか「リアルタイム生成」を勘違いしてる気がする。。。

>>728
まあとりあえず想定できるケースとしては、数字の範囲が0から1万までの場合(少ない)と、
0から100万までの場合(多い)と、英字も混じるケース(多い上にランダム性が増す)の
3パターンに分けて考えるといいのでは。。。
0733nobodyさん2006/02/07(火) 15:59:08ID:???
>>727
細かいなぁ。
じゃあ、「ランダムにシャッフルする方法」って言えば納得する??
0734nobodyさん2006/02/07(火) 16:37:32ID:???
昨日から全角スペースでageてるのは>>654さんでござるね。
今日は半角スペースでござるか。
0735nobodyさん2006/02/07(火) 16:38:59ID:???
>>732
それと、その全部のデータを必要とするのか、一部しか使われないのかでも最適解は異なる。
0736nobodyさん2006/02/07(火) 16:44:35ID:???
おまえら釣られ過ぎ、>>654が来るまで待つか下質でやれ
0737nobodyさん2006/02/07(火) 16:51:47ID:???
>>735
一部だったら簡単だよね??
0738nobodyさん2006/02/07(火) 17:10:44ID:???
>>732
基本的に抽出元リストと除外リストがオンメモリで扱える分量かどうかの2パターンしか無い。
全部数字なのか文字を含むのかはまったくどうでもいい話。
0739nobodyさん2006/02/07(火) 17:15:24ID:???
>>726
宝くじの例をわざわざ引っ張り出してきたのは、使い道の一例というより
アルゴリズムの思案方法が間違っている(逆)ことを指摘したかっただけ。
「すでにある数字を避けつつ選んだ適当な数値」を「宝くじに使う」と
言い出したので、その説明を出したまでのこと。
0740 ◆2ch..Ybe0Q NGNG
ちなみにー、宝くじ、やりようによっては
警視庁生活安全課から電話がかかるよ。。
0741nobodyさん2006/02/07(火) 17:58:46ID:???
>>736
どっちかというとくだ質は、一問一答で
軽やかに流れる質問のやりとりが身上だから。
くだらないというよりも、なさけない質問も多いが。
0742nobodyさん2006/02/07(火) 18:02:06ID:???
dnsのsoaを引いて表示したいのですが、どのような方法があるでしょうか?
0743nobodyさん2006/02/07(火) 18:48:21ID:???
>>724
digの結果を取り込むか、PEARのNet_DNSクラスと使うとか
自前で全部やるとか、色々。
0744nobodyさん2006/02/07(火) 18:50:02ID:???
>>740
だからあくまでも「例」だっつーの。
つまんないマジレスすんな。
0745nobodyさん2006/02/07(火) 19:32:54ID:???
マジレスじゃないだろそれwww
0746nobodyさん2006/02/08(水) 09:10:00ID:???
んじゃ何レス?
0747nobodyさん2006/02/08(水) 12:35:12ID:???
とある書籍で

$hoge =& new xxxx();

としてあるのですが
この 「=&」 はどんな意味があるのでしょうか?

単に「=」とするのとは違うのでしょうか?
0748nobodyさん2006/02/08(水) 12:37:10ID:???
>>747
マニュアル嫁
http://www.php.net/manual/ja/
0749nobodyさん2006/02/08(水) 12:40:09ID:???
>>747
貴様には下らん質問スレすら生ぬるい!
0750nobodyさん2006/02/08(水) 13:50:07ID:???
>>747
ここに答えがそのまま書いてあるのだー
http://www.php.net/references.whatdo
0751nobodyさん2006/02/08(水) 19:14:53ID:???
defineって
クラス内では宣言できないですか?
0752nobodyさん2006/02/08(水) 19:17:16ID:???
>>751
宣言できるが、まずやらない方が身の為だ。
0753nobodyさん2006/02/08(水) 19:18:20ID:???
定数はクラスの外で定義したやつでもクラス内で読めるよ。

クラス内で定義したいのならやってみたら?
0754nobodyさん2006/02/08(水) 19:51:00ID:???
メンバ変数の初期値で var a = DEFINE . "文字列"; とかできないの不便だよね。
コンストラクタでいちいちメンバ変数の初期化するの面倒&継承時に忘れそうで怖い。
0755nobodyさん2006/02/08(水) 23:28:48ID:???
function head(&$dat)
の&ってなんですか?無くても大丈夫?
0756nobodyさん2006/02/08(水) 23:47:56ID:???
引数は渡された変数の参照(別名)である。

function a( & $foo ){
$foo = "A";
}

function b( $foo ){
$foo = "B";
}

$goo = null;
a( $goo );
print $goo; // A
b( $goo );
print $goo; // A のまま
0757nobodyさん2006/02/09(木) 00:23:49ID:???
なるほどわかりますたありがとうございまっす
0758nobodyさん2006/02/09(木) 05:34:09ID:???
HTML_QuickFormのaddRuleでhiddenの値(one-time token)をvalidateしたいのですが、なぜか全くできません。
仕様ですか?
0759nobodyさん2006/02/09(木) 10:29:22ID:???
>>752-753
PHP5のconstのこと?
defineはエラーにならない?
0760nobodyさん2006/02/09(木) 10:43:15ID:???
>>759
defineはメソッドの中でやれば文法上できなくはないってことじゃね?
やめてほしいけどそんなこと。
0761nobodyさん2006/02/09(木) 11:07:43ID:MpGK/5Xn
SHIFT-JISで
test.php
------------
<form method="post" action="test.php">
<input type="submit" value="チャーシュー" name="ラーメン">
</form>
<pre>
<?
print_r($_POST);
?>
</pre>
-------------
のボタンを押すとラーメンがラ\メンになってしまいますがこれは文字コードを変えるほかは無いのですか?
0762nobodyさん2006/02/09(木) 11:32:53ID:???
>>761
name="A[ラーメン"か name="ラ-メン"で我慢する
0763nobodyさん2006/02/09(木) 11:37:09ID:???
>>761
蕎麦にしろ
0764nobodyさん2006/02/09(木) 11:43:20ID:MpGK/5Xn
(´;ω;`)ラーメン売るの諦めて蕎麦に変えまつ
0765nobodyさん2006/02/09(木) 12:35:49ID:sFweg2zo
ブログスクリプトを書いてるのですが、
コメントの投稿数をcomment(●)
の●の部分に挿入したいなぁという構想があります。

投稿されるとHtmlを吐き出すような形で作っているんですが、
どのようなアルゴリズムというか方法で実現できますでしょうか?
0766nobodyさん2006/02/09(木) 12:40:02ID:???
2006/2/3 は 2006年2月の第1週です
という変換をしたいんだけど、うまい方法ある?

地道に計算するしかない?
0767nobodyさん2006/02/09(木) 12:55:33ID:???
地道な計算といわれそうだが・・・週番号使って求めるのはNG?
2月1日の週番号と2月3日の週番号比べればすぐ出るよ。
0768nobodyさん2006/02/09(木) 13:27:25ID:???
>>767
その月の1日の週番 − 指定日の週番 +1 か!
あんた賢いな! ありがとう!
0769nobodyさん2006/02/09(木) 14:04:24ID:???
>>765
echo "comment($num)"
ってこと?
何に悩んでるのかよくわからん質問だな
0770nobodyさん2006/02/09(木) 14:09:30ID:???
コメントの保存方法にもよるとおもうけど、
コメント数を数えて>>769じゃないかな。
07717652006/02/09(木) 14:43:10ID:sFweg2zo
phpファイルを
・ blog投稿+記事Html+コメント用Html吐き出し用php
・ コメントHtmlを読み込んでコメントを書き加えていくPhp

と複数に分けてるのですが、この間で値や変数を代入したり
共有したりするのってどうしたらよいのかと悩んでいます
0772nobodyさん2006/02/09(木) 15:02:23ID:???
>>771
記事とかコメントはDB(or ファイル)に保存ってとこまではOK?
それ以前の問題?
0773nobodyさん2006/02/09(木) 15:42:22ID:WmFPFh7w
Javaの instanceof演算子みたいな機能ってある?

生成されたObjectが、特定のinterfaceの実装か確認したいんだけど。
reflectionでメソッドを逐一確認するしかない?
0774nobodyさん2006/02/09(木) 15:49:40ID:???
PHPにもそのままinstanceofがあるけど
07757732006/02/09(木) 15:56:46ID:???
ttp://www.doyouphp.jp/php5/php5_instanceof.shtml

うわー。
まさか全く同じとは思わなかった…。
トンクス>>774
07767652006/02/09(木) 15:57:23ID:sFweg2zo
>>772
記事はHtmlで保存する仕様です
0777nobodyさん2006/02/09(木) 15:58:00ID:???
>>776
だったら、そのHTMLファイルの数を数えれば?
07787652006/02/09(木) 16:05:29ID:sFweg2zo
やっぱりコメント分だけHTML作らなきゃ今の実力じゃ実現できませんかね・・・・

HTMLのソースの中からある文字を探し出して
その数を数えてHTMLに組みこみ・・・・

javascriptとの連携になっちゃいそうですね
0779nobodyさん2006/02/09(木) 16:09:05ID:???
>>778
JavaScript?使わないだろそんなの。
基礎も分からんやつがblog作ろうなんて思わない方がいい。
07807652006/02/09(木) 16:17:36ID:sFweg2zo
innerHTMLを使って日記記事のhtmlにコメントの数を送ろうかなんて考えてました
コメント数カウントできれば完成だと思ってきましたが、仕組みの意思疎通って難しいですね
どうもありがとうございました
0781nobodyさん2006/02/09(木) 16:18:09ID:???
>>778
当面はblognでもハックすれば良いと思われ。
0782nobodyさん2006/02/09(木) 16:19:27ID:???
>>778
たとえば、ファイルの中で1コメントが必ず<tr>〜</tr>で囲まれているとしたら、
str_word_count()とかでコメント数は一発で取得できるけどね。
0783nobodyさん2006/02/09(木) 16:22:56ID:???
そんなデザインとロジックが一心同体みたいなシステムは最低だけどな
07847652006/02/09(木) 16:23:35ID:sFweg2zo
>>782
ありがとうございます
その関数使ってみます
■ このスレッドは過去ログ倉庫に格納されています