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

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

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え。理解できないならムリに使うな。
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0070nobodyさん2006/09/18(月) 21:48:27ID:???
>>68
レスポンス後、の意味が不明瞭だけど
echoの結果が表示されたのは奇妙だな。
0071nobodyさん2006/09/18(月) 21:52:48ID:???
echoが使えないのは昔のバージョンの話。今は仕様が変更されてる。
ttp://php.plus-server.net/function.register-shutdown-function.html
> PHP 4.0.6 以前のバージョンを Apache で動かしている場合、 登録されたシャットダウン関数は
> リクエストの完了後(結果の 出力を含む)に実行されます。そのため、echo() や print() を用いて
> ブラウザに出力したり ob_get_contents() を用いて出力バッファの内容を 取得したりすることが
> できませんでした。
> PHP 4.1 以降、シャットダウン関数はリクエストの一部として実行される ようになり、そこから結果を
> 出力できるようになりました。
0072nobodyさん2006/09/18(月) 21:54:36ID:???
本当だ!今実行したらCLIでもApacheで動かしても出た!
でも、apacheで動かした場合は何故か「START!」もTEST!!と同時に3秒後に表示されちゃった

<?php
echo "START !";
register_shutdown_function(hoge, 'TEST!!');

function hoge($param) {
sleep(3);
echo $param;
}

?>
0073nobodyさん2006/09/18(月) 21:55:57ID:???
>>72
START!の出力が3秒後に出たのは出力のバッファリングのため。
フラッシュをかけない限り、出力はある程度溜まらないとブラウザに送信されない。
0074nobodyさん2006/09/18(月) 22:07:49ID:???
あれ?じゃあ上までのレスを見てみて結局>>63の問題ってどうなるんだ?
0075nobodyさん2006/09/18(月) 22:12:19ID:???
何の問題もない、でFAだと思うんだが、何か問題が残ってるか?
0076nobodyさん2006/09/18(月) 22:21:45ID:???
結局>>68の求めているのはブラウザに返した後に
スレッドを実行したいみたいだが

FAだとしても現実問題の正解はなんだ?
phpのバグ?
Apacheのバグ?
環境の不備?
0077nobodyさん2006/09/18(月) 22:23:03ID:???
>>76
実際に実行したい処理を提示してもらわん事には
なんとも言えんだろう
0078nobodyさん2006/09/18(月) 22:35:36ID:???
>>76
> phpのバグ?
> Apacheのバグ?
> 環境の不備?
仕様の不理解、じゃないの?どっからバグなんて話が出てるのよ。

リクエスト/レスポンスに影響を与えずバックグラウンドで動作する処理を書きたい場合は
普通はsystem()辺りで標準出力/エラー出力をcloseしたプログラムを&付きで実行させる、
とかの手段を使うと思う。
0079nobodyさん2006/09/18(月) 22:58:33ID:???
>>78
>仕様の不理解、じゃないの?どっからバグなんて話が出てるのよ。
可能性の話だよ。プログラムにはバグは憑き物だから
当然理解不足だって可能性はある。

>register_shutdown_functionはレスポンス後に実行される関数と思っているのですが、
おれもそのように理解していている。

俺の理解も間違ってなかったとしたら
sleepした時間待たされてechoした文字が
レスポンスされるのはおかしいと思わないか?

0080nobodyさん2006/09/18(月) 23:01:56ID:???
>>79
ん?>>71で出てるようにそれは仕様じゃないの?
0081nobodyさん2006/09/18(月) 23:09:48ID:???
>>80
たしかに>>71が紹介した
ttp://php.plus-server.net/function.register-shutdown-function.html
echoに関してはにはそのように書いているが、同時にこのようにも書いている。
>シャットダウン関数はすべての出力バッファを閉じてからコールされます。
矛盾しているようにも思えるが、この仕様はどのように理解すればいいの?
0082nobodyさん2006/09/18(月) 23:11:42ID:???
>>81
コーヒーでも飲んで落ち着いてからマニュアル嫁

閉じるのは「出力バッファ」だ、どこが矛盾してるのか俺に教えてくれ
0083nobodyさん2006/09/18(月) 23:15:12ID:???
>>81
PHPの出力バッファ機能とブラウザへの出力コネクションは全然別の話。
出力バッファが閉じることで出力ハンドラを通した加工出力処理は一切使えなくなるが
出力そのものができなくなるわけでは無いのだよ。
0084nobodyさん2006/09/18(月) 23:31:16ID:???
>>82
今、酎杯呑んでるからコーヒーとのちゃんぽんは合わんな。

>>83
なるほどよくわかりました。

>>82もコーヒーでも飲んで落ち着いてから
このように教えてくれればいいのに。
0085nobodyさん2006/09/19(火) 00:13:12ID:???
またおまえか
0086822006/09/19(火) 00:42:29ID:???
>>84
頭が足りない方への配慮が欠けていたようですね。
0087nobodyさん2006/09/19(火) 01:43:35ID:???
頭が足りないやつがいるとこまるな。
0088nobodyさん2006/09/19(火) 01:49:40ID:sfulj2+A
>>63です。

>>78
具体的にはブラウザにレスポンスした後に
外部サーバ上のDBの更新したいとの思いからですが、
その更新は返って来るまで平均10秒くらい掛かって、
しかも外部の範疇の処理のため、チューニングなど手を加えることができず
そのためにはregister_shutdown_functionを使うことで対応できるかと
思って実験的にsleepで試したのですが・・・

そのような場合もsystem()など使うのが妥当なのでしょうか?
シェルを経由すると環境や共通関数など単純に流用できないですね。

ちょっと実機の環境で再度register_shutdown_functionを確認してみます。
0089nobodyさん2006/09/19(火) 02:00:47ID:???
shutdownコールバックはアボート時も含めて
プログラム終了時に必ず実行する処理を書くためのもので、
並列実行のスレッド処理を書くためのものじゃないだろう…

そもそも最大リクエスト数の制約を受けるApacheプロセスを
10秒も起動しっぱなしにさせてたら困ることが多すぎないか?
10秒もかかるDB更新をリクエスト毎に処理なんて無謀だから
俺だったら処理データをファイルなりローカルDBデータなりにセットしといて
cronで数分〜1時間おきくらいに動かしたバッチに処理させるな。
0090nobodyさん2006/09/19(火) 02:09:41ID:???
>>88
クライアントがわでタイムアウト扱いされるとやっぱ問題あり?
タイムアウトとして処理されていいのなら
http://jp.php.net/manual/ja/function.ignore-user-abort.php
こっちのほうが適切だとおもう。

タイムアウト扱いが嫌なら、systemとか使うしかないだろうな。
0091nobodyさん2006/09/19(火) 03:01:36ID:???
>>46
遅レスですが、ありがとう。
その正規表現でバッチリでした。
0092nobodyさん2006/09/19(火) 04:47:25ID:???
>普通はsystem()辺りで標準出力/エラー出力をcloseしたプログラムを&付きで実行させる、 
これについてやり方や実例が詳しく解説してあるページとかないですか?
0093nobodyさん2006/09/19(火) 05:24:15ID:???
>>92
unixシェルに関するページなら大抵あるのでは?

まぁ、あれだ
PHPマニュアルのUser Contributed Notesを読まないのは凄くもったいないと思うんだ。
http://jp.php.net/manual/ja/function.system.php
0094nobodyさん2006/09/19(火) 06:35:21ID:DMPs8Yp+
1.requireでhtmlファイルを読み込み・表示
2.echoでhtmlファイルの内容を出力

どちらのほうが負荷が小さいでしょうか?
0095nobodyさん2006/09/19(火) 06:44:29ID:???
そらまぁ、requireを使わない方が負荷は小さいけど
微々たるものだからメンテナンス性の方が重要よ?
0096nobodyさん2006/09/19(火) 07:38:27ID:???
repuireされる側に<?とかPHPタグがあったらやばくない?
0097nobodyさん2006/09/19(火) 08:04:37ID:???
>>95
メンテナンス性もいいのでrequireを使うことにしました。
ありがとうございます。
0098nobodyさん2006/09/19(火) 09:50:13ID:9qvktJUT
>>89
register_shutdown_functionを実機環境で試した結果。
やっと理解できました。
ブラウザには即時にレスポンスを返しますが、register_shutdown_function
で登録した関数がが完了するまでクライアントは次の操作を行えないようですね。
ということはregister_shutdown_functionでは要件を満たせないということで
この方法は却下します。

色々なご意見を参考に別な方法を検討したいと思います。
0099nobodyさん2006/09/19(火) 09:52:01ID:RXMAlMKx
基本画面で入力、確認画面、書込み処理画面
と、三段階にページをわけてます。
入力した情報を加工してから書込みを行いたいのですが、
基本画面で危険なコードを入力されたら確認画面で実行されされてしまうし、
確認画面で情報を加工しても、情報を改ざんされて書き込み処理画面で情報に
不正なコードが潜んでるかもしれません。
確認画面と書き込み処理画面の両方で加工したほうがよろしいのでしょうか?
0100nobodyさん2006/09/19(火) 10:18:04ID:???
[ブラウザ側]
基本画面で<form>に入力。
↓
[サーバ側]
入力されたデータの正当性チェックと、必要ならデータ加工。
データをセッションに保存。
↓
[ブラウザ側]
確認画面に内容表示。
確認ボタン(?)か何かクリック。
↓
[サーバ側]
セッションのデータを復元し、DBなどに書き込み。
↓
[ブラウザ側]
書き込み完了しました。とか表示。
0101nobodyさん2006/09/19(火) 10:36:33ID:???
>>99
お・・・ おいおい・・・・

お前の作ったシステムは恐ろしくて使えないな。
0102nobodyさん2006/09/19(火) 11:48:43ID:???
phpでのhtml出力時にContent-Lengthヘッダーを付加したいのですが
ttp://ns1.php.gr.jp/pipermail/php-users/2004-May/022383.html
をためしてみましたがうまくいかず
Transfer-Encoding: chunkedとなってしまいます。
Content-Length と Transfer-Encoding: chunked が両方送信されて
Transfer-Encoding: chunkedが優先されているように感じます。
どうすればいいでしょうか。
phpinfo
 PHP Version 4.3.2
 output_buffering no value
 output_handler no value
 mbstring.http_input pass
 mbstring.http_output pass
0103nobodyさん2006/09/19(火) 11:56:55ID:???
>>48
この書き込みだけだと、誤解を生みそうなので勝手に補足。

バイナリセーフがどうのこうのより、何が問題か?
↓のサイトに詳しくまとめられている。
ttp://www.asahi-net.or.jp/~wv7y-kmr/memo/php_security.html#NullByteAttack_about

いちいちバイナリセーフかどうか調べるのも鬱陶しいので、問題がないなら
最初から原因となるものを取り除くようにしておけばいいと思う。
0104nobodyさん2006/09/19(火) 12:11:32ID:???
>>102
サーバやOSの情報も書いたほうがいいよ。
まともな挙動としては、Transfer-Encoding: chunkedが設定されている場合でも、
header('Content-Length: '.$length);
を加えれば、サーバはTransfer-Encodingの行を消すべきだから。
0105nobodyさん2006/09/19(火) 12:12:28ID:9qvktJUT
register_shutdown_functionの件でお世話になりました。
結局皆さんの意見を総合して

flush();
ignore_user_abort();
register_shutdown_function();

<body onload='javascript:window.stop()'>
でやることにしました。

ありがとうございました。
0106nobodyさん2006/09/19(火) 13:27:36ID:???
>>103
そのページを見ると、要するに
str_replace( "\0", "", $arr );
でNULLバイトを削除せよ、ということだと思うんだけど、
\0だけでなく\x00も考慮しなくていいのかなぁ??
01071022006/09/19(火) 13:29:24ID:???
>>104
OS
 Linux aaa-bb-ccc 2.4.21-40.ELsmp #1 SMP Thu Feb 2 22:22:39 EST 2006 i686 i686 i386 GNU/Linux
サーバ
 Server version: Apache/2.0.46
 Server built: Dec 15 2005 04:19:10
 Architecture: 32-bit
rpmからインストールしました。

Content-Typeをapplication/octet-streamにするとContent-Lengthが出力されました。
 Content-Length: 190
 Content-Type: application/octet-stream

text/htmlだとTransfer-Encoding: chunkedになってしまいます。
 Content-Type: text/html
 Transfer-Encoding: chunked
perlでもためしてみましたが同じ結果となりました。
別サーバのdebian+apache2でもためしてみましたが同じ結果になりました。
Content-Type: text/htmlでContent-Lengthを出力したいです。
どうすればいいでしょうか。
0108nobodyさん2006/09/19(火) 13:29:50ID:9qvktJUT
自分のレスに補足です。
window.stop()はIEではできないので
隠しfreamで対応したいと思います。
0109nobodyさん2006/09/19(火) 13:59:00ID:???
>>105
意見を総合したら、cronかsystemでやれって事では・・?

まぁ・・自分が関わるわけじゃないから、どうやってても別に構わんけど
0110nobodyさん2006/09/19(火) 14:08:43ID:f+iMimQf
$name = $_POST["name"];
と、いう箇所でNotice: Undefined index: name in 〜ソースのアドレス

というふうに怒られてしまいます。
<?phpのすぐ下に書いてあります。それより上にphpのコードは何もありません。
どのように書くのが望ましいのでしょうか?
ご教授お願いいたします。
01111022006/09/19(火) 14:20:16ID:???
>>104
firefoxのLive HTTP headersで確認していて今度は

ie + ieHTTPHeaders
wget -d
で調べたらちゃんとContent-Length値が出力されていました。

firefoxで
Pragma: no-cache
Cache-Control: no-cache
というのがリクエストに含まれていたのが悪かったのかなと思います。
Modify HeadersのFilterで消せなくてあきらめましたが。

どうもすみませんでした。
0112nobodyさん2006/09/19(火) 14:38:44ID:???
>>24

マルチポストは止めてくださいね、ながかわさん^^
0113nobodyさん2006/09/19(火) 14:47:22ID:???
>>113
詩ね
0114nobodyさん2006/09/19(火) 15:11:30ID:???
既存の配列を、
新しい配列にそのまま格納する、
関数はありませんか?
0115nobodyさん2006/09/19(火) 15:14:55ID:???
>>114
どう格納したいのか具体的な希望が無いのでアレなんだが
単に
$new = $old;
でいいんじゃないの?
これで「違う」って言うなら質問の仕方が悪すぎる気がする。
0116nobodyさん2006/09/19(火) 15:15:43ID:???
^^;
0117nobodyさん2006/09/19(火) 15:17:36ID:j2rsOfI9
配列の一番最初の値は[0]で参照出来るのですが、一番最後の値は
どうやって参照するんでしょうか?

最初にカウント取らないと無理?
0118nobodyさん2006/09/19(火) 15:27:51ID:???
>>117
配列の添え字は1とか2とかから始まる場合もあるし
添え字にマイナスも使えるから0が先頭とは限らないよ。

$last = end($arr);
で最後の値は取得できる。
0119nobodyさん2006/09/19(火) 15:29:53ID:???
>>113
自殺イクナイ
0120nobodyさん2006/09/19(火) 15:31:45ID:???
>>110
$name = '';
if(isset($_POST['name'])) $name = $_POST['name'];
が望ましいです。
0121nobodyさん2006/09/19(火) 15:41:30ID:j2rsOfI9
>>118
ありがとうございます。end()なんてあるんですね。

> 添え字にマイナスも使えるから0が先頭とは限らないよ。

つことは、今、[0]で取ってるので、いくないですね。
end()があるなら、ファーストもと思って調べたら、なかったですorz
0122nobodyさん2006/09/19(火) 15:50:14ID:???
>>121
reset()
0123nobodyさん2006/09/19(火) 15:52:26ID:???
>>121
何使って関数探してるの?
公式のオンラインリファレンス(>>1)使えば
関連する関数が説明文の下に参考として書かれてるから
その種の問題はすぐに解決できるよ。
0124nobodyさん2006/09/19(火) 15:56:20ID:???
>>121-122

ありがとうございます。

画面ちっちゃいから、本で調べてるんですけど、PHP(ポケットリファレンス)
オレンジのやつ。対義語が載ってないくさい。
※2ch開く余裕はあるってつっこみはなしで。

>>123 のサイトをチェック致します。

ありがとうございました!
0125nobodyさん2006/09/19(火) 16:09:49ID:???
>>121
変なことしてなければ0からだから問題ないけど
0126nobodyさん2006/09/19(火) 16:17:08ID:???
>>125
変なことしてないなら最終要素も
$last = $arr[count($arr) - 1];
で取れるけどな。
0127nobodyさん2006/09/19(火) 16:17:38ID:???
>>106
表記方法が16進数になっても null の意味は変わらないから一緒だと思う。
実際に確かめてみると、ちゃんとNULL バイトが取り除かれているのがわかる。
0128nobodyさん2006/09/19(火) 16:28:33ID:???
おまいらsafety firstだぞ。
無防備なのはイクナイ!!
0129nobodyさん2006/09/19(火) 16:38:10ID:Uo5rUHBV
FORMから受け取ったデータを削除するにはどうしたらいいのでしょうか?
たとえば、
A.php入力フォームから受け取ったデータを
B.phpへ持っていき、書込み処理を終えたらデータ削除
が行いたいと思っております。

何かヒントがあればご教授願います。
0130nobodyさん2006/09/19(火) 16:54:30ID:???
>>129
意味がわからない
0131nobodyさん2006/09/19(火) 16:57:49ID:???
>>129
FORMで送信されたデータなんて、どこにも保存しなければ勝手に消えると思う。
0132nobodyさん2006/09/19(火) 17:02:24ID:???
>>129
消すのなら unset ($_POST['hoge']); でいけるけど・・何故データを消す必要があるんだ?

それにB.phpに持って行くと言っても、
FORMから送られたデータはスーパーグローバルだから、
特別な事をやらなくてもA・B双方から参照できるしねぇ

何が言いたいかって言うと、意味がわからn(ry
0133nobodyさん2006/09/19(火) 17:06:28ID:Uo5rUHBV
formからのデータを拾うのと書込みを同一ページで処理しているのですが、
リロードするとformから受け取ったデータが残ってまして、
同じ内容が書き込まれてしまうんです。
0134nobodyさん2006/09/19(火) 17:17:14ID:???
>>133
それは変数の$_POSTの中身を消した所でどうにもならない。
クッキーなりセッションなり使ってリロード対策するしかない。
0135nobodyさん2006/09/19(火) 17:25:09ID:???
>>124
お前バカか? どういう本の読み方してんだ。
『PHPポケットリファレンス』のendのページの下の部分に
関連関数としてresetがしっかり載ってるじゃないか。

これで「対義語が載ってないくさい」などとよく言えるな、この能無しチンカスが。
0136nobodyさん2006/09/19(火) 17:26:37ID:???
>>133
>リロードするとformから受け取ったデータが残ってまして
受け取ったデータが残っているのではなく、
送る側が同じデータを送信している
消したいなら、クライアント側を工夫する+処理後に表示するページを別ページにする
0137nobodyさん2006/09/19(火) 17:51:03ID:???
>>133
書き込み完了後にLocationで別ページに飛ばしちゃうのが簡単な対策。
0138nobodyさん2006/09/19(火) 18:20:55ID:4NYt81r/
構成について質問です。
登録したファイルの拡張子を記録したいのですが、
例えば
$upfile="test.jpeg" //JPEGファイルをアップしたと過程

if(ereg(".jpeg",$upfile)){
echo"これはJPEGファイルです";
}

っと識別出来るかと思うのですが、必ずしも特定のファイルじゃないと思うし
さまざまな拡張子があると思います。
その場合も事前に「これは○○ファイルです」というようにIFを用意しておくのでしょうか?
それとも、もっと便利な方法・構造があるのでしょうか?
0139nobodyさん2006/09/19(火) 18:34:38ID:???
>>138
まず第一に拡張子はいくらでも変更出来るので実際のファイルが何かは分からない。
これは多分理解してると思うから・・。

あとは正規表現なり、 . でsplitするなりである程度出来るんじゃん。
0140nobodyさん2006/09/19(火) 18:49:58ID:???
>>138
目的と頻度次第でお好きなように、ってのが正直なとこ。

システムの目的として拡張子登録が重要な機能で
可能な限り全ての拡張子を網羅しなければいけなくて
必要時にすぐ新規の拡張子が登録できなければ…
みたいな話ならメンテナンス性が重要になると思うんで、
「拡張子文字列」→「ファイル種別文字列」
みたいな対応ファイルを別途用意してそれを読み込んで
処理するような仕組みを採用した方がいいかもしれないし、
判別が画像ファイルだけとか数が少ないならif並べた方が早いし、
追加が緊急では無いが数は多いとかなら配列データとして
includeファイルにリストアップしとくのがベストかもしれない。

配列データからの判定は例えば
$ext_list = array(
"jpeg" => "JPEGファイル",
"jpg" => "JPEGファイル",
"gif" => "GIFファイル",
);
$pathinfo = pathinfo($upfile);
$ext = $pathinfo['extension'];
if(isset($ext_list[$ext])) {
echo "これは{$ext_list[$ext]}です";
}
みたいな感じで処理する。
01411382006/09/19(火) 19:01:03ID:???
>>139-140
アドバイスありがとうございます。
目的としては登録リストを拡張子で並べ替え出来る程度で良いのですが、
140さんが書かれているソースの方法だと汎用性も高いと思うし、
私自身も意味が理解出来るので、良いですね。勉強になりました。
0142nobodyさん2006/09/19(火) 19:03:04ID:Uo5rUHBV
同時に複数のファイルをロックして書き込み、ロック解除を
処理する記述は大丈夫でしょうか?
0143nobodyさん2006/09/19(火) 19:09:55ID:???
>>142
別に問題はないよ。それでロックという目的が果たされてるかは知らんけど。

複数ファイルを一斉にロックする場合、ロック状態を示すロック専用ファイルを
1個だけ用意しておいてロックはそれだけで行うという「プロセスロック」という
考えの方が適切な場合もある。
0144nobodyさん2006/09/19(火) 19:32:46ID:???
>>115
返事が送れてごめんなさい。
その方法でうまくいきました。
ありがとうございます。
0145nobodyさん2006/09/19(火) 19:35:11ID:???
なんですとー
0146nobodyさん2006/09/19(火) 20:16:12ID:???
mysqlで
INSERT INTO `tbl` (`key1`, `key2`, `key3`) VALUES ($val1, $val2, $val3)
って書き方っていつも面倒くさいと思ってたけど
INSERT INTO `tbl` SET `key1` = '$val1', `key2` = '$val2', `key3` = '$val3'
って書き方もあるんだね?いままで知らなかった。
この書き方ってなにか問題ありますかね?
0147nobodyさん2006/09/19(火) 20:25:52ID:???
`←これどうやって入力するの?どこおせばでるの?
0148nobodyさん2006/09/19(火) 20:26:17ID:???
preg_match_allの正規表現が長くなり、
みづらくてしょうがありません。

しかし改行を入れると正規表現が変わってしまい
見やすく整理できません。

どういうふうに整形していけば良いのでしょうか?
現在こんな感じです。

preg_match_all("(<\/TABLE>[^a-z]{15,15}(.+)[^a-z]{15,15}<TABLE border=\"1\"><TR><TD>|<font color=.+>...(.*)...<\/font>.*(http.*)\">(.*)</a>)U",$content,$content);

0149nobodyさん2006/09/19(火) 20:36:13ID:???
$reg = "/toooooooooooooo " .
 "loooooooooooooooong " .
 "regular expression/";
preg_match($reg, $str);
01501422006/09/19(火) 20:37:03ID:???
>>143さんのおかげで安心しました。ところが、
日付時間を二つのファイルに書く場合、時間がずれてしまうことはありますか?
0151nobodyさん2006/09/19(火) 20:37:38ID:???
>>147
おれは左上端
0152nobodyさん2006/09/19(火) 20:48:26ID:???
おれは左官大臣Zx
0153nobodyさん2006/09/19(火) 20:57:21ID:???
>>150
あると思う
0154nobodyさん2006/09/19(火) 21:10:53ID:???
>>146
無いよ。ふつーだろ。
0155nobodyさん2006/09/19(火) 21:43:09ID:???
>>147
日本語キーボードならSHIFT+@
0156nobodyさん2006/09/19(火) 22:18:35ID:???
>>155
インドウズが再起動しました(><)
0157nobodyさん2006/09/19(火) 22:21:08ID:sKqysrv5
あるページにパスワードをかける場合、IDとpassの埋め込み型のphpファイルは
安全といえるのでしょうか?

また、htaccessを使わずにディレクトリごとロックすることは可能でしょうか?
たとえば・・・
public_html-----[abc]←このディレクトリ中のファイルへのアクセスを拒否するのは可能ですか?
0158nobodyさん2006/09/19(火) 22:27:11ID:???
>>149
ありがとうございます
0159nobodyさん2006/09/19(火) 22:59:26ID:???
>>157
>IDとpassの埋め込み型のphpファイルは安全といえるのでしょうか?
心配なら生Pass記述ではなく、cryptした値で比較すれば?

>htaccessを使わずにディレクトリごとロックすることは可能でしょうか?
httpd.confが弄れるなら可能。
0160nobodyさん2006/09/19(火) 23:25:08ID:???
>>157
まあ普通に使ってる限り、拡張子がphpのファイルはソースが見えることはありえないが、
設定ミスなどが怖いのなら、パスワードを書いたファイルはDocumentRoot外に置いて
includeすれば良い。
0161nobodyさん2006/09/19(火) 23:35:24ID:???
>>154
あんまり後者の書き方は見かけないんですが・・・
mysql書き始めて2年にもなろうというのに初めてみましたよ>後者の書き方
01621572006/09/19(火) 23:36:21ID:???
ありがとうございます。夕方からいろいろ調べてコード書いてみたんですが、
<<159さんや<<160さんみたいのは新しい発見です。

cryptで暗号化も考えたのですが、結局生のパスワードを書きますから
先輩方のアドバイスを参考にさせていただきまして、もうすこし調べてみます。
ありがとうございます。
0163nobodyさん2006/09/19(火) 23:43:31ID:???
>>161
お前がへたれなだけだから心配すんな
0164nobodyさん2006/09/19(火) 23:51:04ID:???
気づかないうちにxmlに書き出されたモロ三重コードたまに見るけどな〜
0165nobodyさん2006/09/20(水) 00:11:51ID:???
質問です。UML(クラス図)を描いたら、PHPのソースに落としてくれるエディタってありますか?
0166nobodyさん2006/09/20(水) 00:12:23ID:???
>>162
>cryptで暗号化も考えたのですが、結局生のパスワードを書きますから

なんで、暗号化するのに生のパスワードを書く必要があるの?
PHP内にはcryptで暗号化した文字列だけ書いておいて、
入力されたパスを同じcrypt化して比較すればいいじゃん。
0167nobodyさん2006/09/20(水) 00:15:56ID:???
PHPというか数学的な質問かもしれませんが、、
アクセス数に対し、可変する横棒グラフを作成しています。
例えば、1日(30)、2日(15)、3日(40) ※()内はアクセス数です。
とした場合、どういう風に構築するのが良いのでしょうか?
単純に<img src="bar.gif" width="<?=$access?>">とすると、横に伸びきるし。。

質問内容がまとまっていないかもしれませんが、ご教授いただければと思います。
0168nobodyさん2006/09/20(水) 00:27:02ID:???
>>167
アクセス1個分の長さの画像を用意してアクセス数分並べれば?
0169nobodyさん2006/09/20(水) 00:34:33ID:???
>>167
とりあえずメール欄は空白も何も無しが正解。努力は買うが。

仕様として、横バーの最大を固定にするか可変にするかでも変わる。
1日(30)、2日(15)、3日(40)のときで40のグラフが横幅いっぱいになるようにするなら
$acc = array(1 => 30, 2 => 15, 3=> 40); //アクセス数のリスト
$maxwidth = 400; //バーの横幅最大
$max = max($acc);
$rat = $maxwidth / $max;
?>
1日<img src="bar.gif" width="<?=$acc[1] * $rat?>"><br>
2日<img src="bar.gif" width="<?=$acc[2] * $rat?>"><br>
3日<img src="bar.gif" width="<?=$acc[3] * $rat?>"><br>
という感じだろう。

それに対して、アクセス数100のときに横幅いっぱいになるようにするなら
$acc = array(1 => 30, 2 => 15, 3=> 40); //アクセス数のリスト
$maxwidth = 400; //バーの横幅最大
$rat = $maxwidth / 100;
?>
1日<img src="bar.gif" width="<?=$acc[1] * $rat?>"><br>
2日<img src="bar.gif" width="<?=$acc[2] * $rat?>"><br>
3日<img src="bar.gif" width="<?=$acc[3] * $rat?>"><br>
になるかと。
■ このスレッドは過去ログ倉庫に格納されています