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

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

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

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ http://pc10.2ch.net/php/subback.html
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで http://pc10.2ch.net/db/subback.html
0263nobodyさん2007/03/08(木) 03:34:05ID:???
C言語でも勉強すればいいよ
0264nobodyさん2007/03/08(木) 03:41:32ID:???
>>262
おまいスゲーな!!
でもなぜJPGだとそうならないんだ??
0265nobodyさん2007/03/08(木) 04:32:23ID:???
PHPでpngを処理すると、むちゃんこメモリを食いまくる、まで読んだ。
0266nobodyさん2007/03/08(木) 04:39:23ID:???
JPEGは透明度データがないからPNGの3分の4倍(1.33…倍)以上の
画像サイズにする必要があるんじゃないか?
縦だけあるいは横だけ4/3倍とか縦横ともに√(4/3)倍するとか。
0267nobodyさん2007/03/08(木) 04:45:21ID:???
3分の4倍じゃなくて4分の3倍じゃない?

っていうか簡単に言えば、
JPEGは同じ縦横サイズなら、PNGの3/4のファイルサイズになる
ってことでは?
0268nobodyさん2007/03/08(木) 04:55:21ID:???
んだからメモリのリミットに当てるには3分の4倍サイズにして用意してくれと。
0269nobodyさん2007/03/08(木) 08:58:17ID:a3iASN9B
セキュリティについての本を購入予定なんですが、
何かお勧めの本が前に紹介されたしたが
何という本でした?
0270nobodyさん2007/03/08(木) 09:25:21ID:WIAr6em1
PHPとApacheを同じバージョンにし、設定も全く同じにしたのですが、片方の
マシンでは正常にプログラムが動作するのに、もう片方ではエラーがたくさん
出ます。

OSは同じ(Windows XP)ですし、インストールディレクトリも同じにしました。
こういうことってあるものなんでしょうか?



0271nobodyさん2007/03/08(木) 09:46:23ID:???
あるわけない。
iniをWINDOWSにつっこんでないとか
dllをWINDOWS\system32につっこんでないとかそういうのだろ。
02722702007/03/08(木) 09:57:01ID:WIAr6em1
>271
そういうのではありません。
php,Apacheはバージョンとインストールディレクトリを正常に動いている
マシンと同じにすれば、設定ファイルをそのままかぶせても問題ありません
よね?
0273nobodyさん2007/03/08(木) 10:00:33ID:???
>>270
具体的にどういうエラーが出てるんだか。
多分、同じ設定ってのが勘違いしてるだけでしょ。
0274nobodyさん2007/03/08(木) 10:05:45ID:???
設定ファイルをコピーして再起動していない
0275nobodyさん2007/03/08(木) 11:27:27ID:???
>>270
エラーとだけいわれてもね
ApacheのエラーなのかPHPのエラーなのか
肝心のエラーの内容も書いてないし
0276nobodyさん2007/03/08(木) 13:06:56ID:Y9DHbA2v
htmlに直接phpを記述するときにif条件式は
<?if(条件式){?>
出力するhtml
<?}else{?>
出力するhtml
<?}?>
という風に書けますよね.
for文ではこのような表記は存在しないのですか?
0277nobodyさん2007/03/08(木) 13:11:58ID:???
その中にfor文書けば?
0278nobodyさん2007/03/08(木) 13:17:15ID:Y9DHbA2v
<?for(条件式){?>
出力html
<?}?>
ってことですか?
0279nobodyさん2007/03/08(木) 13:20:16ID:???
>>278
回答を待ってるより動かしたほうが早いだろ。1分あればできる。
0280nobodyさん2007/03/08(木) 13:44:08ID:???
>>276
何で存在しないなんて思ったのか
そっちの方がものすごく不思議。
0281nobodyさん2007/03/08(木) 14:03:46ID:ZuqlBOaN
for文の中にif文をさらに入れようとしたらなかなか動かなかったからです.
もうクリアになったのでおkです.回答ありがとうございました.
0282nobodyさん2007/03/08(木) 14:19:05ID:???
require_onceなどでファイルを読み込むとき、ドキュメントルートからのパスで指定することはできないのでしょうか?
以下のようなファイル・ディレクトリで運用しています。
/var/www/hoge/file1.php
/var/www/hoge/fuga/file2.php
(DocumentRootは/var/wwwに設定)
file2.php内にてHTML部分で<A href="/hoge/file1.php">等でリンクを貼ると、
ページを表示した際に問題なくリンクをたどれるのですが、
file2.phpにおいてrequire_once("/hoge/file1.php")とすると
ファイルがないとエラーが出てしまいます。

今後いろいろなディレクトリからfile1.phpをインクルードする必要があるので、
相対パスではなくドキュメントルートからのパスを指定することにより記述を統一したいのですが、
このようなことは可能でしょうか?
(ちなみにrequire_once("/var/www/hoge/file1.php")とすると問題なく読み込めました。)
Debian Sarge+apache2+php4です。
よろしくお願いします。
0283nobodyさん2007/03/08(木) 14:20:35ID:???
>>282
require_once($_SERVER["DOCUMENT_ROOT"] . "/hoge/file1.php");
でいーんじゃない?
02842822007/03/08(木) 14:22:38ID:???
>>283
どうもありがとうございます。
解決しました。
02852822007/03/08(木) 14:37:42ID:???
解決したと思ったのですが、別の問題が浮上したので再度質問させていただきます。

表示用のhtmlと処理用のphpを分けてサイトを作る場合、一般的にはどのような方法で表示用htmlに反映させて表示させるのでしょうか?

現在のところ、表示用のhtmlに{$contents}等を埋め込んでおき、処理用phpにて最後にincludeしてやっているのですが、
これだと、表示用html内で使用している画像等のパスは処理用phpを基準として設定しなければならないため、
すべてを>>282で質問したようにDocumentRootからのパスを指定してやる必要があります。
修正するのはたいした手間ではないのですが、皆さんこのようにして作成しているものなのでしょうか?
0286282=2852007/03/08(木) 14:39:02ID:???
{$contents}は<?= $contents ?>の間違いでした。
スレ汚し申し訳ありません。
0287nobodyさん2007/03/08(木) 14:57:14ID:???
smarty使えば
0288nobodyさん2007/03/08(木) 15:03:27ID:???
>>285
> これだと、表示用html内で使用している画像等のパスは処理用phpを基準として設定しなければならないため、
ごめん。これの意味が分からない。
「処理用php」ってのは一体どこのディレクトリに置かれてるんだ??
0289285=2822007/03/08(木) 15:31:16ID:???
>>287-288
レスありがとうございます。
Smarty導入には未だ踏み出せずにいました。検討してみます。

処理用phpは複数あり、それぞれ表示用htmlより下のディレクトリに置く予定です。
ご意見ありましたらよろしくお願いします。
0290nobodyさん2007/03/08(木) 15:34:34ID:???
うちは用も無いのにサブディレクトリに分けたりしないからそんな苦労は分からない。

サブディレクトリに分ける必要がある=システム的にカテゴリを定義している=カテゴリ別にディレクトリ設定を持てる、ので
その場合は定義されたディレクトリ設定をリンクに付加するだけだから特に悩むこともない。
0291nobodyさん2007/03/08(木) 15:42:08ID:???
>>289
普通、画像の置き場所なんてドキュメントルート基準かスクリプトからの相対位置基準かどっちかにしかしないから
普通に <img src="/image/画像.jpg"> か <img src="./image/画像.jpg"> かでいいんじゃないの?
それで済まないのは根本的にディレクトリ構成がおかしい気がするんだけど。
0292nobodyさん2007/03/08(木) 16:47:37ID:???
PEARのHTTPパッケージ一覧をざっと見たのですが、ファイルのアップロード
で困ったことがあります。

それは、HTTP_Request::addFile() でアップロードしたファイルを
受け取る側のPHPスクリプトの $_FILES['foobar'] で参照できないのです。

これを解決する方法はあるでしょうか?
0293nobodyさん2007/03/08(木) 17:06:36ID:???
なるべくサブディレクトリに分けたほうがいい
SEO的に有利だからね。
0294nobodyさん2007/03/08(木) 17:14:55ID:???
>>292
$_FILESに入ってないんだったらアップロードに失敗してるんだろ
addFileでちゃんとtrue返って来てる?

>>293
SEO的に有利な根拠は?
0295nobodyさん2007/03/08(木) 17:32:51ID:???
phpmyadminで文字コードをEUCに変更・固定するにはどのようにすればいいのでしょうか?

ログイン画面にてeuc-jpを選択してもログイン後にutf8に変わってしまいます。
また、phpからEUCでMysqlに登録したデータもphpmyadmin上では文字化けして表示されてしまいます。
なんとかして文字コードを変更することは可能でしょうか?

Mysql4.1.11 phpMyadmin2.6.2を使用しています。
よろしくお願いします。
0296nobodyさん2007/03/08(木) 17:41:41ID:???
PHP5, MySQL5,0で運営しているのですが
MySQLからデータをとりだして表示しているページがAU機では表示されません。
色々調べてみると
1.日本語のみ表示されていない
2.文字化けではなくNULL状態
3.URLに勝手にx-up-destcharset=17がはいる

var_dumpしてみても日本語が入っている変数はNULLになっています。
どなたかお力お貸しください
0297nobodyさん2007/03/08(木) 17:42:09ID:???
>>293
>SEO的に有利
スクリプト本体をドキュメントルート下に置くつもりかよw
0298nobodyさん2007/03/08(木) 18:04:32ID:???
>>296
>var_dumpしてみても日本語が入っている変数はNULLになっています
って、スクリプトミスっているんじゃないのか?
そら、何も入っていないのに表示されるわけない
02991892007/03/08(木) 18:07:24ID:RD7yuDJr
>>189の件、5.2.1 のコンパイル時に --enable-versioning が付いていたので
それを外して再コンパイルしたところ、4.4.2 と同じ結果が返ってくるようになりました。

本当にこれが原因かどうかはもう少し調べてみないとわかりませんが、
とりあえずこれで使ってみようと思います。
お騒がせしました。
0300nobodyさん2007/03/08(木) 18:43:32ID:???
$var = "A,B,C";
があるとして、
以下のようなことをしたいのですが、
explode($array)を介さずに直接$a_cに代入できるような関数ってないでしょうか?
$array に余計なメモリを食いたくない、かつわかり易いように
連想配列を使いたい、という状況です。

$array = explode(",", $var);
$a_c['A'] = $array[0];
$a_c['B'] = $array[1];
$a_c['C'] = $array[2];
0301nobodyさん2007/03/08(木) 19:07:14ID:???
>>300
list($a_c["A"], $a_c["B"], $a_c["C"]) = explode(",", $var);
0302nobodyさん2007/03/08(木) 19:08:16ID:???
>>298
NULLというか
$hoge=''
という形で入っています。
PCやドコモ機で見るときちんと文字が入っています
0303nobodyさん2007/03/08(木) 19:10:11ID:???
>>302
画面に出しても文字コードの関係で表示されないだけ?
画面やvar_dumpの内容をob関数使ってファイルに出力してみると謎が解けそう。
0304nobodyさん2007/03/08(木) 20:36:58ID:???
>スクリプト本体をドキュメントルート下に置くつもりかよw

これの意味がわからない。
だれかおしえてw
0305nobodyさん2007/03/08(木) 22:11:34ID:???
>>304
/hogehoge/
  ├/app/ ここにスクリプト
└/public_html/ 実行ファイル

こういうことじゃね?

まぁ、レンタルサーバでドキュメントルートより上に置けないサーバー結構あるわけだが。
自鯖でやってるやつなんてほんの一部だろうし。
0306nobodyさん2007/03/08(木) 22:51:46ID:???
志村〜
0307nobodyさん2007/03/08(木) 23:06:52ID:???
ドキュメントルート上といいたかったのかね。
それかスクリプト本体をサブディレクトに置くといいたかったのかね。
どっちにせよ謎い。
0308nobodyさん2007/03/08(木) 23:20:03ID:???
ただの煽りなんだからどっちでもいいんじゃね
0309nobodyさん2007/03/08(木) 23:38:41ID:lSyqksIJ
php5.1.6なのですがmb_関係の関数がundefinedだといわれるので
php.iniを見てみたのですがphp_mbstring.dllという記述が見つかりません。
どうすればmb関連の関数を使えるよう設定できますか?
0310nobodyさん2007/03/08(木) 23:39:36ID:???
>>309
Windows?
0311nobodyさん2007/03/09(金) 00:17:00ID:???
インストーラ使ったんじゃね
0312nobodyさん2007/03/09(金) 00:31:15ID:???
>>311
あ、俺インストーラ使ったこと無いな
インストーラでインスコするとどうなるの?
zip解凍して自分で配置したのと同じ?
0313nobodyさん2007/03/09(金) 01:42:30ID:???
mbネタでかぶってスマン
これで一つのメールアドレスを含む文字列は置換できるんだけど、
二つ以上になるとリンク部分がバグる
どこか間違ってるかな?

$msg = mb_eregi_replace("([a-z0-9\._-]+)@(.+)\.([a-z]{2,4})",
'<a href="mailto:\\1@\\2.\\3">\\1@\\2.\\3</a>', $msg);


mb_internal_encoding('SJIS');
mb_regex_encoding('SJIS');
にはしてある
PHP5.1
0314nobodyさん2007/03/09(金) 01:45:43ID:???
>二つ以上になるとリンク部分がバグる
0315nobodyさん2007/03/09(金) 01:48:10ID:???
>>313
とりあえずそれじゃco.jpとかのドメインは変換できないんじゃね。
と突っ込んでみる。
0316nobodyさん2007/03/09(金) 01:52:30ID:???
>>314
いやホントに
まるでHTML覚えたてのように余計なとこまでリンク化されてるみたいな

>>315
全然おkですが?
0317nobodyさん2007/03/09(金) 01:53:45ID:???
バグるとか言ってる奴にWebプログラミングは無理だよ
0318nobodyさん2007/03/09(金) 02:23:37ID:???
Call to undefined function mb_eregi_replace()
0319nobodyさん2007/03/09(金) 02:26:35ID:???
>>313
バグるって最初から内容ぐらい書けよお前。

今回は半角英数字だから問題ないだろうけど
あとMS系の言語以外でSJISは出来るだけ使うな
しかも>>314のいうとおりco.jpは無理だろそれ?

どこまでもリンクが続くって事は</a>が上手く付いて
ないんだろ?
そこを何とか調べてみろ
03203192007/03/09(金) 02:27:48ID:???
>>314じゃなくて>>315だ




orz=3
03213132007/03/09(金) 02:34:53ID:???
スマソ
二番目のカッコがダメダメっぽい
普段単体のメールアドレスチェックに(.+)@(.+)\.(.+)で済ませてる身に
正規表現はキツイわw
0322nobodyさん2007/03/09(金) 02:40:03ID:???
>>313
メールの正規表現はなにげにむずいぞ。
ついでにいうと大文字も可能。
それと、その正規表現じゃ例えば、
.com.com.com.comなんかもメールアドレスとして扱われる。
もうちょっとましな書き方したほうがいいと思う。
03233132007/03/09(金) 02:49:28ID:???
>>322
自分ではシンプルかつエレガントに構文を作ったつもりだったんだけど
検索しても長ったらしいのばかりで

まあ弱い頭ひねって、もうちょい考えてみますわ
0324nobodyさん2007/03/09(金) 02:49:42ID:???
ttp://www.din.or.jp/~ohzaki/perl.htm#Mail
0325nobodyさん2007/03/09(金) 02:53:23ID:czcTDFU5
WEBサーバのアクセスログ集計をしようと思っています。
アクセスされたファイルごとのアクセス数をカウントするだけです。
なので、ログを一行ずつ読んで、アクセスされたファイル名をキーにしたハッシュをカウンタとして使用しようとしました。

$counter=Array();
while(!logeof()) { // ログファイルの最後までループ
 $filename = getlog(); // ログを一行読んで、アクセスされたファイルを返す
 $counter[$filename]++;
}
foreach($counter as $filename=>$count) { // 結果表示
 print "$filename = $count\n";
}

ところがファイルが多く、オンメモリでの処理が厳しくなってきました。
そこで質問なのですが、PHP で簡単に使えるファイルベースのデータベースのようなものは無いでしょうか?
とりあえずハッシュが使えればいいです。
Microsoft Access の MDB みたいな、SQL が使えるやつにも興味があります。
ご存知でしたら教えてください。
0326nobodyさん2007/03/09(金) 03:00:53ID:???
>>325
しってるがタバコすって腹が痛くなったので答えてやる気になれない。
03273252007/03/09(金) 03:04:08ID:???
>>326
(´・ω・`)ショボーン・・・
0328nobodyさん2007/03/09(金) 03:04:15ID:???
>>325
車輪の再発明せずに公開されてるスクリプト使ったほうが256倍楽だよ
0329nobodyさん2007/03/09(金) 03:06:14ID:???
>>325
XML
0330nobodyさん2007/03/09(金) 03:08:26ID:???
>>325
なんかね、あのね、おらくるみらくるっていうね、でーたべーすがね、いいみたいだよ☆
03313302007/03/09(金) 03:09:57ID:???
くそっ!最後は「よ☆」じゃなくて「ょっ☆」の方がもっと良かったな
0332nobodyさん2007/03/09(金) 03:23:30ID:???
mysql liteは?
0333nobodyさん2007/03/09(金) 03:28:31ID:???
男は黙ってCSV
0334nobodyさん2007/03/09(金) 03:36:12ID:???
俺なら全部印刷して電卓で集計する
03353252007/03/09(金) 03:38:59ID:???
あの、ネタスレ化してますか・・・?

でも、>>332 の mysql lite というのと同じかわかりませんが、SQLite というのが使えそうな気がしますので、
これを検討します。
ありがとうございました。
0336nobodyさん2007/03/09(金) 03:45:05ID:???
>>335
まぁ待て。
確かにファイルベースのSQLiteっちゅうのはある。
MySQLぐらい高速らしい。

だがちょっと待ってほしい。
お前はどこでDBを使うつもりだ?
03373252007/03/09(金) 03:52:27ID:???
>>336
Linux な WEBサーバ上で使おうと思います。
モジュールの追加は比較的自由にできますので、多分導入も問題無いんじゃないかと思います。
ただ、MySQL みたいにサーバを起動するのは面倒なので、避けたいと思いました。

ついでに、やりたかったこと自体は >>325 のようにファイル毎のアクセス数を数えるということだけだったのですが、
SQL も使えるようなのでもうちょっと高級な集計にも手を出してみようかと思います(ファイル毎のリファラの集計など)。

というつもりなのですが、何か問題になりそうでしょうか?
0338nobodyさん2007/03/09(金) 03:58:35ID:???
>>337
あれ?処理速度を早くしたかったわけじゃないのか?
0339nobodyさん2007/03/09(金) 03:59:03ID:???
べつにデータベース使うことのほどでもないじゃん。
03403252007/03/09(金) 04:04:47ID:???
>>338
はい。ハッシュでファイル毎のカウントを求めようと思ったら、配列のサイズが大きくなりすぎてエラーになるケースが出てきたのです。
ファイルの数だけはとても多いので、ハッシュでやると要素数が多くなるのです。
PHP にメモリリミットを設定していまして、16MB くらいでエラーになります。

>>339
その通りなのですが、DBを使いたいという動機ではなく、オンメモリで処理するのをやめたい、というのが目的です。
0341nobodyさん2007/03/09(金) 04:35:46ID:???
メモリに入れないで処理すればいいじゃん
0342nobodyさん2007/03/09(金) 05:05:42ID:???
DB云々よりも前に、その糞アルゴリズムをどうにかしろ。

そんなに重い処理でもないしメモリを食う処理でもない。
ひとえにお前の実装が糞過ぎるだけ。
0343nobodyさん2007/03/09(金) 05:09:51ID:???
質問ですー。
index.phpにアクセスしたときに_blankで新しいページ(例えばindex2.html)を開くようにすることはできるでしょうか?
index.phpがjavascriptを書き出してウィンドウをオープンさせる手は思いつくのですが
phpの関数だけで新しいページを開かせたいと思っています。
もしかしたら超初心者な質問かもしれないですけれどお願いいたします。
0344nobodyさん2007/03/09(金) 05:13:05ID:???
>>343
HTML(XHTML)の勉強で事足りる。Strictではtarget属性廃止されてるからTransitionalでね。
ツールバーなしorサイズ指定のウィンドウ出したいならjavascriptで。
0345nobodyさん2007/03/09(金) 05:22:52ID:IclYPYCt
質問です。
PHPで
http://pc11.2ch.net/test/read.cgi/php/1173163186
この末尾の1173163186を1づつ増やして、
そのページにアクセスし、そのページに特定の文字列があった場合のみ、
そのアドレスをテキストファイルに書き込んでいく
なんて、スクリプトを書く事は出来ますか?
0346nobodyさん2007/03/09(金) 05:24:18ID:???
yes it could be
0347nobodyさん2007/03/09(金) 05:26:10ID:IclYPYCt
>>346
どうもです。
0348nobodyさん2007/03/09(金) 05:36:02ID:gCb65kda
<?php
mysql_connect("localhost","root","") or die("Error MySQL First Test");
echo "Success MySQL First Test";
?>
↑を表示させようとするとCall to undefined function mysql_connect()がでます。

phpのフォルダにはlibmysql.dllが入っており、パスも通ってます。
また、php_mysql.dllも入っており、php.ini内のextension=php_mysql.dllのコメントもはずしました。
初歩的すぎるところですが、お願いします。
0349nobodyさん2007/03/09(金) 05:56:39ID:???
phpinfo()してチェック
03503482007/03/09(金) 06:27:57ID:gCb65kda
>>349
レスありがとうございます。
phpinfo()にはmysqlが表示されてないです。

extension_dir も PHPIniDir も正しく、
Configuration File (php.ini) Path も正しくiniが表示されています。

環境を書き忘れてました、申し訳ありません。以下の通りです。
Apache 2.2.4、PHP 5.2.1、MySQL 5.0.27
0351nobodyさん2007/03/09(金) 06:37:21ID:???
あぱっちさいきどうしてない
03523482007/03/09(金) 06:52:09ID:gCb65kda
>>351
再起動はしまくってます。

と、申し訳ないです、libmysql.dllをC:WINDOWSに入れたらなんか出来ました…
phpインストールフォルダじゃだめなんですね、これ。お騒がせしました。
0353nobodyさん2007/03/09(金) 07:06:55ID:???
>>325
どんだけファイルが多いのか
それともメモリがしょぼいのか
ファイルが100万個あっても余裕だろ

まさかログファイルをいっぺんに読み込んでるとか
0354nobodyさん2007/03/09(金) 07:17:25ID:???
>>352
環境変数パスちゃんと通したのか?
0355nobodyさん2007/03/09(金) 07:24:53ID:lsaQKE2M
質問:変数$hoge1〜$hoge5の値があるものだけ、HTMLのtype="hidden"で出力する処理がうまくいきません。

$hoge1=$_POST['hoge1'];
$hoge2=$_POST['hoge2'];
$hoge3=$_POST['hoge3'];
$hoge4=$_POST['hoge4'];
$hoge5=$_POST['hoge5'];

for($i=1 ; $i<=5 ; $i++){
if(${a."$i"} != ""){
   print<<<EOT
      <INPUT type="hidden" name="hoge$i" value="${hoge"."$i}">
   EOT;
   }
}

name=""の部分をどうすればhoge1からhoge5までで出力できるのでしょうか?
0356nobodyさん2007/03/09(金) 07:25:07ID:???
C:\WINDOWSはデフォルトで通ってるだろ
0357nobodyさん2007/03/09(金) 07:27:45ID:???
まず送信側でname="hoge[]"にすべし
0358nobodyさん2007/03/09(金) 07:56:51ID:yU3jvLcG
URLにhtmlspecialcharsをとおしているのですが、
&ってURLに含まれていますよね?
<a href="$url">htmlspecialchars($url)</a>
だとXSSの危険性があるので、
htmlspecialcharsから&をとりのぞいた関数を作ればいいでしょうか?
それとも他に何かベストな方法がありますでしょうか?
0359nobodyさん2007/03/09(金) 08:01:26ID:???
>>358
htmlspecialcharsではなくurlencodeを使うケースでは。
0360nobodyさん2007/03/09(金) 08:14:37ID:yU3jvLcG
>>359
おー。こんな関数があったのですね。
これを使いたいと思います。
どうもありがとうございました。
0361nobodyさん2007/03/09(金) 08:15:44ID:???
関数云々の前にHTMLの仕様を知ろうよ・・・
03623252007/03/09(金) 10:25:45ID:???
>>342
単にファイル名ごとのカウントを数えるだけなのですが、それをシンプルに実現するために使えそうなアルゴリズムって
どんなのがあるでしょうか?
>>325 のカウンタは見ての通り、$counter['/index.html'] とか $counter['/images/top.gif'] みたいな配列です。

>>353
集計したいファイル数は10万弱程度なのですが、とりあえずファイル名長が平均約 80文字と仮定して、
要素数100万のハッシュ配列を作成できるか実験してみました。

for($i=0; $i<1000000; $i++) { $counter[sprintf("%080x",$i)]++; print "$i\n"; }

18万個弱で
Fatal error: Allowed memory size of 25165824 bytes exhausted (tried to allocate 12 bytes) in - on line 1
となりました。
ちなみにログファイル自体は 100万行以上 x 日数分 ありまして、もちろん全部まとめて読むなんてことはしてません。
あ、メモリリミットは 16MB じゃなくて 24MB にしてました。
25165824 ってのは 24MB のことだと思います。
■ このスレッドは過去ログ倉庫に格納されています