■PHP板 質問専用スレッド■
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
NGNGレスは気長に待つのが良い感じかも。
答えられる方、返答よろしくお願いします。
参考リンク
■本家
http://www.php.net/
■Japan PHP Users Group
http://www.php.gr.jp/
■PHP 日本語ページ
http://www.cityfujisawa.ne.jp/~louis/apps/phpfi/index.html
■PHP日本語マニュアル
http://www.asakawa.ne.jp/doc/php/ja/sjis/
0640電動ナナシ
2001/08/16(木) 20:23ID:byTTeF5oPHP3 までは GPL、PHP4 からは PHP ライセンス + Zend ライセンス
詳しくは以下を参照。
http://www.php.net/license/
>>633
無理そうだなあ。
# Ascent, Descent の意味は以下の通りでいいんだよね?
http://www.aceprocess.com/pro_tips2.html
>>634
なぜファイル名を 2 バイト文字で保存する必要が?
0641さる
2001/08/17(金) 04:31ID:???と同じことをphp3で実現するにはどうすればいいのでしょうか?
0642電動ナナシ
2001/08/17(金) 05:56ID:YqYraPdc0643629
2001/08/17(金) 10:27ID:yJr7QHdU原因は「local.inc」中の「Example_Sesson」クラスの「$fallback_mode」を
「"post"」にしていたから、みたい。
なんで「"post"」にしてたかっていうと、URLにセッションのID(?)みたいなのが
表示されるのがイヤだったからなんだけど。
でも今度は認証かけてある各ページに行く度にログイン画面になるし。
これもi-mode端末のみの現象なんだけど。
なんでだろうなぁ。
0644名無しさん@お腹いっぱい。
2001/08/17(金) 22:58ID:h5Ic9dxwえ?フリーじゃないってこと?よくわかんないや
0645名無しさん@お腹いっぱい。
2001/08/18(土) 00:37ID:???そういう分からない人の為にわざわざURI書いてくれてんのに、
よくそんな発言出来るよな・・・。(;´д`)シンジラレネーヨ
0646名無しさん@お腹いっぱい。
2001/08/18(土) 08:25ID:???英語も読めないしGPLやZendの意味もわからない僕がPHPを
始めようとすること自体間違いだったのかもしれないです
ライセンスに関する日本語ドキュメントどこにも無いんですよね、、、
ということで失せます
0647電動ナナシ
2001/08/18(土) 17:38ID:0Aevniqcまあ基本的にフリーだが、一部制限つきということだ。
FAQ より引用。
Q. なぜ PHP4 は PHP3 がそうであったように GNU Public License (GPL) の
もとで二重ライセンスとしなかったのでしょうか?
A. GPL はライセンスされたコードに対し、何が可能で何が不可能かについて
厳しい制約を強制します。PHP の開発者は、PHP をできるかぎり普及させる
助けとするために、より緩やかなライセンス(Apache スタイルの)のもとで
PHP をリリースすることを決断しました。
Q. 端的に言って、PHP ライセンスは何を意味しているのでしょうか?
A. (注意: この回答はいかなる意味においても PHP ライセンスを変更するもの
ではなく、ライセンスが意味するところについて概要を提供することを
意図しています) 本質的には、PHP ライセンスは、商用・非商用に関わらず、
あなたが望むように利用し配布し修正する権利を与えるものです。あなたは
ユーザーに対してあなたの配布物が PHP を含んでいることを明確にする
必要があります。
0648電動ナナシ
2001/08/18(土) 17:39ID:0Aevniqcしてはいけないと書いています。これは私が構築した PHP スクリプトや
ウェブサイトを販売できないということを意味するのでしょうか。
A, いいえ、まったく違います。この条項は Zend Scripting Engine ライブラリを
用いて作成したソフトウェアのことを言っており、このライブラリを利用した
PHP が実行するスクリプトは該当しません。あなたは、PHP ないし Zend ライセンスを
気にすることなく、自由に、あなたが書いた PHP ソースコードをフリーまたは
商用で配布できます。あなたは望むだけあなたの商用アプリケーションに PHP
全体をパッケージすることができます。Zend Scripting Engine ライブラリを
直接利用する商用アプリケーションを作ることができないということです。
Q. それで、Zend ライセンスのポイントは何ですか?いつそれを考慮すべき
なのでしょうか?
A. あなたは以下の二つの場合に Zend ライセンスを意識するべきです。
まず最初に、Zend Scripting Engine ライブラリにパッチを当てて公表
する場合です。Zend ライセンスは Zend Technologies, Ltd. がこれらの
パッチを使用料を払うことなく(詳しくはライセンス本文を参照)使うことを
許可しています。次に、このライセンスは、商用アプリケーションを構築する
ために Zend scirpting engine を商用で利用することを禁じています。
もし Zend scripting engine を商用で利用したい場合には(例えば、
あなたが書いているワープロのマクロ言語として)、ライセンスの情報を
Zend Technologies, Ltd. に問い合わせなければなりません。
0649名無しさん@お腹いっぱい。
2001/08/19(日) 12:48ID:???0650名無しさん@お腹いっぱい。
2001/08/20(月) 15:37ID:YTYQxxuA文字列(UNICODE)をPHP3でデコードするには、どのよう
にしたらよいでしょうか。
�@IEのJavaScriptのescape()を使用して文字列「ほげ」をエンコード
した結果 →「%u307B%u3052」
�APHP3のi18n_internal_encoding()の結果 → 「EUC-JP」
�B�@をi18n_discover_encoding()で調べた結果 → 「ASCII」
i18n_convert()を使っていろいろ試しましたが、どうもうまく
いきません。解決策をご存知の方教えてください。
0651名無しさん@お腹いっぱい。
2001/08/21(火) 12:12ID:rddG09uEPHPの過去のメーリングリストをあさって解決しました。
解決方法は勝手に転載してよいのか分からなかったので、
知りたい方は、とりあえず知らせてください。
0652みやた
2001/08/21(火) 15:19ID:jSRLzhwMフォームから書籍の出版日の年、月、日を
ユーザに入力してもらい、
($publish_year,$publish_month,$publish_day)
それを登録する以下のphpがあります。
=======================================
//出版日を8ケタ化
$publish_date = sprintf("%04d%02d%02d",
$publish_year,
$publish_month,
$publish_day);
//登録
$SQL = " INSERT INTO BOOK_MASTER(PU_DATE)
" VALUES(TO_DATE(:book_publish_date, 'YYYYMMDD'));\n".
OCIBindByName($rs, ":BOOK_PUBLISH_DATE", &$publish_date, -1);
=======================================
ここで、もし 出版日ナシのフラグ「$no_publish」がTRUEなら、
TO_DATE(:book_publish_date, 'YYYYMMDD')の代わりにNULLを入れたいのですが、
通常、どうするのがスマートなのでしょう?
$publish_date = sprintf のあとに、
unset($publish_date);
として見たのですが、
OCIBindByName bitelength is 0 in ...
の警告がでてしまうもので。(insert自体はうまくいっているようなのですが)
構文を組み替えてもかまいません。
==================
他人が作ったものを、
事情により普段Oracleなどいじらない私がいじっているもので、
かなりお恥ずかしい話で恐縮です。
0653名無しさん@お腹いっぱい。
2001/08/21(火) 17:09ID:Ttfz/Erwどうしたらよいのでしょうか?
rand()だと数字のみなので・・・。
例えば、「7fg47」のような感じです。
0654名無しさん@お腹いっぱい。
2001/08/21(火) 18:03ID:???PHPの質問じゃないな
関数自分で作れば?
0655質問
2001/08/21(火) 18:18ID:R2s3AHtIのようになってしまいます。これを回避するにはどうしたらよいのでしょうか?
0656電動ナナシ
2001/08/21(火) 21:05ID:1TWjFS4w$publish_date が空なら、INSERT 文の実行を行わないか、日付の挿入を
行わない INSERT 文を発行する。どちらにするかは、日付以外に挿入する
値の有無に依存する。
例)
if ($no_publish) {
$SQL = "INSERT INTO bookmaster(hoge, publishdate)
VALUES ($hoge, TO_DATE(:bookpublishdate, 'YYYYMMDD'))";
OCIBindByName(....
} else {
# publishdate が DEFAULT NULL なら hoge だけ INSERT
$SQL = "INSERT INTO bookmaster(hoge, publishdate)
VALUES ($hoge, NULL)";
}
>>655
stripslashes();
0658652
2001/08/21(火) 21:31ID:???ありがとうございます。
感謝いたします。
0659電動ナナシ
2001/08/21(火) 21:35ID:1TWjFS4w<?
function getRandomString($length) {
$result = "";
# Base Strings
$base = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
$baselength = strlen($base) - 1;
for ($i = 0; $i < $length; $i++) {
$pos = rand(0, $baselength);
$result .= substr($base, $pos, 1);
}
return $result;
}
$randomString = getRandomString(5);
echo "\$randstr -> [" . $randomString . "]<br>\r";
?>
0660電動ナナシ
2001/08/21(火) 21:38ID:1TWjFS4w"_" 記号は SQL では 1 文字のワイルドカードを意味するから
(正規表現でいえば "." に相当)、あまり使わないほうがいいと思う。
0661653
2001/08/22(水) 13:09ID:dChLBg7w大変参考になりました。
ありがとうございました。
0662名無しさん@お腹いっぱい
2001/08/22(水) 17:44ID:ym3V.COkPHPにて正規表現でチェックを行いたいのです。
まずは、メールアドレスなどのチェック(半角英数字&記号のチェック)です。
あとは、全角文字のチェック。カタカナチェック。です。
一応半角数字はチェックできるのですが・・・
誰か教えていただければ光栄です。宜しくお願いします。
0663テストさん
2001/08/22(水) 22:14ID:???PHPマヌアルからの引用だけど
$token = md5( uniqid( rand() ) ); // 推測が困難であり、より優れている。
$randval = substr($token, 0, 5);
じゃだめなん?
この例は、極めて予測困難な 32 文字のID(128ビット16進数)を 作成します。
らしいし。短くてきれいだし。
0664電動ナナシ
2001/08/22(水) 22:23ID:???それも考えたんだけど、先頭 5 文字がどのくらいランダムに分布するか
分からなかったので(単なる勉強不足)今回はあえて別解を考えてみた。
0665名無しさん@お腹いっぱい。
2001/08/22(水) 23:11ID:???んぐらい自分で調べろよ。
うざい。
0666教えて君
2001/08/22(水) 23:12ID:???そうじゃな、こちらの方が例えば 0 と O とか I と l が
紛らわしいので使いたくない向きにもよろしそうじゃしな。
ところで最近の若者は mt_rand() なんぞは使わんもんなんじゃろか?
0669名無しさん@お腹いっぱい
2001/08/23(木) 15:47ID:cRebnFX2FとM以外はダメだよって言うソースの書き方って
if(ereg("[^F|M]{1}",$in_Hensu)){
echo "error";
exit;
}
だよね?それとも書き方違う?
0670new
2001/08/23(木) 16:16ID:MmYN4CjYphp3って配列に要素を追加することは出来ないのですか?
perlでいうpushみたいな感じ。
php4ではarray_pushがあるそうですが。
今の環境では3しか使えないので・・・。
0671名無しさん@お腹いっぱい
2001/08/23(木) 16:27ID:cRebnFX2なかったら自分でfuction作れ
作ったソースを俺に教えろ!
0672名無しさん@お腹いっぱい。
2001/08/23(木) 18:56ID:GljfP/6Mある鯖では動いて、もう一つの鯖では
「open_basedir restriction in effect. File is in wrong directory…(省略」
と、文句を言われ、「/tmp/****」からコピーできません。調べてみるとセーフモードというものに引っかかってるみたいなんです。
この鯖でアップロードは無理なのでしょうか?
0673名無しさん@お腹いっぱい
2001/08/23(木) 19:55ID:cRebnFX2正規表現の表し方ってどうやるの?
if (!ereg ("[0-9]{4}", $Hensu)){
echo "error";
}
だと5桁以降は、何を書いてもエラーにならない
だから、
if (!ereg ("[0-9]{4}[^.]", $Hensu)){
echo "error";
}
にしたんだけど 全然ダメ・・・・
だれかマジ教えてよ。正規表現むずかしい
0674672
2001/08/23(木) 20:18ID:GljfP/6Mじゃないのかな?
0675673
2001/08/23(木) 20:29ID:cRebnFX2自分も試しにやったけどダメだったんだよね。
でもアドバイスありがとう
0676674
2001/08/23(木) 21:05ID:GljfP/6M文頭のやつ忘れてた。
これでもダメかな?
0677673
2001/08/23(木) 21:28ID:cRebnFX2で・・・できたよ!!!(喜)
でも、これと同じく
1桁以上5桁以下指定で0〜9以下の数字しか記入できない
正規表現でやったんだけど無理だった・・
if (!ereg ("^[0-9]{1,5}$", $Hensu)){
すげーくやしいっ!!
0678echo"名無しさん";
2001/08/23(木) 23:51ID:???$array[] = $var;
マニアルにあるこれじゃなくて?
>>672
所有者が違うからだね。
copy("a.php","b.php");かrenameするとアップロードできるかも
0679名無しさん@お腹いっぱい。
2001/08/23(木) 23:58ID:cvwLP0MEこんな感じ?
function _array_push($array, $value){
$array[count($array)+1] = $value;
return $array;
}
0680名無しさん@お腹いっぱい。
2001/08/24(金) 00:01ID:FYzqPGzMあ・・そんなのでできたのか。
鬱だ逝ってきます。。。
0681E_ERROR
2001/08/24(金) 01:11ID:???どんな風に無理だったのですか?
『00001』の様に零が付くのが問題?
もしそうだったらその判定前に
$Hensu=sprintf("%d",$Hensu);
として零を削ってあげると良いかも。
ただ『00000』とかは『0』になりますけど。
0682名無しさん@お腹いっぱい。
2001/08/24(金) 01:17ID:???PHPはわかんないけど・・・。
Perlで書くとこんな感じじゃ駄目?
$webprog =~ s/\D//gi;
if($webprog and lengh $webprog <= 5){
#数字で一桁以上五桁以下
}else{
#それ以外
}
0683名無しさん@お腹いっぱい。
2001/08/24(金) 01:20ID:???0684E_ERROR
2001/08/24(金) 02:15ID:???$var2=sprintf("%d",$var1);
だと$var1に数字以外の物が有ると$var2には値が出力されません
(4.0.6(Win32)で確認)。
よって判定をこの後にすることが或る意味、無意味になります。
それさえ踏まえれば使えるかな?後は五桁以下である事を判定すれば
良いのですし。
…あまり誉められたコーディングでは無いとは思いますが。
0685電動ナナシ
2001/08/24(金) 02:40ID:???$var = $var + 0;
でいいと思うけど。
ちなみに文字列に 0 を足すと、先頭から順に数字だけが抽出される。
例えば以下のような感じ。PHP^4.0.6 for Win32 で確認。
$var = "x12345"; $var = $var + 0; // $var は 0
$var = "012345"; $var = $var + 0; // $var は 12345
$var = "12345x"; $var = $var + 0; // $var は 12345
$var = "123x45"; $var = $var + 0; // $var は 123
0686E_ERROR
2001/08/24(金) 05:00ID:???成る程、マニュアルに載ってるこれ
http://www.php.net/manual/ja/language.types.string.php
ですよね?勉強になりました。
しかし奥が深いです、PHPマニュアル…。
// でも更新が頻繁なのは嬉しいけど…面倒(苦笑 <=贅沢者
ところで頭の零を削るなら
$var2 = (int) $var;
って方法もありますね。
結果は電動ナナシさんのとかなり似てますが。
$var = "x12345"; $var2 = (int) $var; // $var2 は NULL
$var = "012345"; $var2 = (int) $var; // $var2 は 12345
$var = "12345x"; $var2 = (int) $var; // $var2 は 12345
$var = "123x45"; $var2 = (int) $var; // $var2 は 123
// int への型キャストのデフォは10進であることを利用
// Codeの展開を考えると利用し辛そうですが
0687名無しさん@お腹いっぱい。
2001/08/24(金) 09:42ID:BsoJVBdw正規表現じゃな〜いじゃん♪
0688672
2001/08/24(金) 10:46ID:zxBSBd8Mあの…、よくわからないのですがもう少し詳しくご説明頂けませんか?
お手数ですがよろしくお願いします。
0689名無しさん@お腹いっぱい。
2001/08/24(金) 11:55ID:daCgTec.0690電動ナナシ
2001/08/24(金) 13:14ID:alNuUBUQああ、そっちの方がいいかな。
>>689
<?php
$now = time();
$today = getdate($now);
// ↓ 週の先頭の日付を計算
$firstDayOfThisWeek = $now - $today["wday"] * 86400;
echo "First Date of this week is \"" .
date("Y-M-d (l)", $firstDayOfThisWeek) . "\"<br>\r";
?>
# 一度月間カレンダーを作ってみた方がいいんじゃないかと思うが。
0691名無しさん@お腹いっぱい。
2001/08/24(金) 17:44ID:fC1LCBVoここってハックされちゃったんですか?
中国って遊ぶ所が少なそうだから、PCやネットなんか覚えると
ハマっちゃうんだろうな
0692名無しさん@お腹いっぱい。
2001/08/24(金) 18:17ID:???日本人の仕業じゃないかな。
あそこの管理人はセキュリティ意識が無さすぎた。
0693名無しさん@お腹いっぱい。
01/08/27 10:51ID:zDtQUNGMフォームからの入力で送信した文字列データを単純にプレーンテキストに落としたんですが
2バイト文字は全て文字化けしてしまってる様なんですが…
0694名無しさん@お腹いっぱい。
01/08/28 00:04ID:igLWKZBA簡単な暗号化の方法を教えてもらえないでしょうか?
指定したキーで簡単に複合化できるものないですか?
0695助けてわかんない
01/08/28 01:48ID:0MY67l12超超初心者なんですけど昨日今日総合のカウンタ
が全然わかんないです。誰かサンプルソース書いて下さい。
検索したけど見つからなかったんで。
0696名無しさん@お腹いっぱい。
01/08/28 04:59ID:18vpKowI文字コードを少しずらしてやるとか。
ルールを指定して並べ替えるとか。
0697E_ERROR
01/08/28 05:06ID:.gNJSO/.Mycrypt関数(http://www.php.net/manual/ja/ref.mcrypt.php)
を使うか、
若しくは出来合いの奴を
http://php.resourceindex.com/Functions_and_Classes/
http://www.hotscripts.com/PHP/Scripts_and_Programs/
この辺で探すと良いかも。
>>695 (助けてわかんないさん)
上の後者2つのURIに有るんで参考にしてみると良いですね。
取り合えず、というのでしたら
http://www.dcl.info.waseda.ac.jp/~hasegawa/php/
で簡単な解説あるので良いかも。
0699名無しさん@お腹いっぱい。
01/08/28 07:36ID:JnQA54xw各大学の学生ポータルたん萌え〜
早稲田 ―http://waseda-links.com
ICU ―http://icunavi.com
立教 ―http://ri-style.com
東邦 ―http://www.h2.dion.ne.jp/~jn1
東洋 ―http://toyowave.com
中央 ―http://chuo.pos.to
↑マターリパラダイース(・∀・)イイ!
0700名無しさん@お腹いっぱい。
01/08/29 04:33ID:zqod.sPs0701名無しさん@お腹いっぱい。
01/08/29 12:34ID:Hz0wel/E自前でファイルロックの仕組みを組んで解決していましたが、
PHPのファイルロックの信頼性はどれほどでしょうか。
0702名無しさん@お腹いっぱい。
01/08/29 12:38ID:r10mk.nk何処でそんなデマ聞いた?
0703名無しさん@お腹いっぱい。
01/08/29 12:42ID:Hz0wel/Eいくつかの書籍にそう書いてあるが
0704703
01/08/29 13:09ID:Hz0wel/Eここにもありました。現在は解決されているようです(たぶん)
http://tohoho.wakusei.ne.jp/lng/199807/98070060.htm
0705名無しさん@お腹いっぱい。
01/08/29 16:37ID:9EJfCa2E> mkdir()でロックすると環境を選ばない感じで好きなんです。
人様のスクリプト&考えにケチつけるつもりじゃありませんが、、
flockが使える環境ならぜったいこちらを使うべきだと思いますが・・・
http://www.wakusei.ne.jp/twn/wwwlng.cgi?print+199903/99030145.txt
とほほさん、びーかすさんの発言、参考になります。。
symlink, mkdir, flockはいずれも、ロックを『かける』ことに関して
は完璧。OSがちゃんと排他制御してくれる。
symlinkとmkdirの違いは、mkdirだと、Windowsでも利用できるという
ことくらいしかない。信頼度は同じ。
ただし、symlink, mkdirはロックを『はずす』時に問題があり、ロッ
ク中にプロセスが異常終了したりすると、ロックファイルが残ったま
まになる。
その点、flockはロックを『はずす』時も完璧で、たとえプロセスが異
常終了しても、OSがストールしても、ロックが残ることは有り得ない。
信頼性ではsymlink, mkdirよりもflockの方が高い。ただしflockは、
UNIXでもサポートしていないOSがある。
# PHPだとマヌアル見るかぎりWindowsもサポートしてるみたい、、わからんけど。
> ファイルをロックするというより、処理全体をロックする感じにできますし。
$lock = fopen('lock.txt', 'w') or error('ロックファイルを作成できませんでした。');
flock($lock, 2) or error('ロックできませんでした。');
〜処理〜
fclose($lock);
じゃだめですか?
0706名無しさん@お腹いっぱい。
01/08/29 16:52ID:9WjD.Pdc0707703
01/08/30 09:29ID:/FKRYfJUhttp://php.ssi.bg/manual/ja/function.flock.php
Win環境のことはよくわからんが、ここの「警告」の部分を読むと
IISのISAPI環境下ではflockは使えないようだ。
0708名無しさん@お腹いっぱい。
01/08/30 10:09ID:3TFNK/cI下の User Contributed Notes にはwin98でflockが効かない
っていうメッセージがありますね。
phpは使ったこと無いけど実際どうなんでしょ?
0709703
01/08/30 12:12ID:/FKRYfJUWin98ということはIISか、Apacheだろうな。
707でも書いたけど、抜粋すると
>ほとんどのオーペレーティングシステムで flock()
>はプロセスレベルで実装されています。 ISAPIのよ
>うなマルチスレッド型のサーバーAPIを使用している
>場合、同 じサーバーインスタンスの並列スレッドで
>実行されている他のPHPスク リプトに対してファイル
>を保護する際に flock() を使用することはできません。
IISでもApacheでもISAPI環境下では使えないということだと
思うけど? スクリプトとして使えばOKということか?
Winのことはあんまりなのでスマソ。
個人的にはLinuxで使っているんで関係ないです。
0710名無しさん@お腹いっぱい。
01/08/30 12:19ID:UyczCLUMWin98ならIISじゃねーだろ
0711名無しさん@お腹いっぱい。
01/08/30 12:37ID:Um1Da8Sw0712[
01/08/30 12:58ID:nQguzC6Q0713名無しさん@お腹いっぱい。
01/08/31 14:05ID:OPUkQPbUどうしたらいいでしょうか?
0714名無しさん@お腹いっぱい。
01/08/31 14:43ID:oeZCoe02マニュアルぐらい見ましょう。
http://www.php.net/manual/ja/function.round.php
0715名無しさん@お腹いっぱい。
01/08/31 19:03ID:OPUkQPbU感謝!!
基本を忘れ、ずっと参考書見てました。
0716超ドキュソ
01/09/01 00:10ID:CoQXeBb6超わかんない。
0717名無しさん@お腹いっぱい。
01/09/01 00:17ID:JGsm/JSsのようなレンタル日記のスクリプト配布されてませんか?
0718名無しさん@お腹いっぱい。
01/09/01 00:23ID:yUhB/70g==
!=
>>717
こういうレンタル系のPHPスクリプトは殆ど配布されていません。
自分で作りましょう。
0719名無しさん@お腹いっぱい。
01/09/01 00:29ID:j2NtyKS.0720超ドキュソ
01/09/01 00:29ID:CoQXeBb6あ、== != でヨカタの?
なんか文字列にしたらうまくいかなかったからさ。
0721名無しさん@お腹いっぱい。
01/09/01 00:41ID:tdXlcdvAというか、マンモス本ってマニュアルに書いてあることと何が違うの? マル写しじゃん!
0722名無しさん@お腹いっぱい。
01/09/01 17:55ID:hQ/Rc1cwマル写しではありません。
マニュアルの一部抜粋です。
0723名無しさん@お腹いっぱい。
01/09/01 21:10ID:tdXlcdvAマニュアル>マンモス本
ってことで sage
0724
01/09/04 00:52ID:v.Yb6HDEこのエラーって何ですか?
0725724
01/09/04 03:15ID:v.Yb6HDEflockの記述がおかしかったみたい
0726ほえほえ ◆fxJvLsyA
01/09/04 10:32ID:y0UKZUiw<?php
$failname="log.txt";
if($sousin){
$hozonfail=$failname.".bak";
if(copy($kakikofail,$hozonfail)){
$fp=fopen($failname,"W");
if(flock($fp,2)){
fputs($fp,$naiyou);
flock($fp,3);
}else{
echo "error";
exit;
}
fclose($fp);
}else{
echo "error";
exit;
} }
?>
<html> <head>
<title><?php echo $failname; ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</head>
<body>
<form action="<? echo $PHP_SELF; ?>" method="post">
<textarea name="naiyou" rows="30" cols"30">
<? require($failname); ?>
</textarea>
<input type="submit" name"sousin" value="更新">
</form> </body> </html>
これなんですが解りますでしょうか。
カキコして送信するとlog.txtの内容が書き換わると言う奴なんですが。。。
0727名無しさん@お腹いっぱい。
01/09/04 11:20ID:h3PWA/egエラー終了なら
copy($kakikofail,$hozonfail) or die("コピーエラー");
としたほうがよい
0728名無しさん@お腹いっぱい。
01/09/04 11:44ID:eE6ftGCA配列を渡したい場合にはどうしたらいいんでしょう?
参照渡しでどうにかできるのかしら。
0729名無しさん@お腹いっぱい。
01/09/04 11:45ID:NMYjZ6nA0730名無しさん@お腹いっぱい。
01/09/04 11:46ID:sfyz3S5.2.変数の定義
3.fopenの引数
以上3箇所の間違いがあります。
あと、failというのは故意にfileとしてないの?
故意じゃないなら、PHPはエラーが英語で返ってくるので、fileをfailと
間違わない程度に英語を勉強した方が良いでしょう。
わざとfailにしているならスマソ。
fail : 失敗する ・・・・・合ってるのかも(w
0731730
01/09/04 11:48ID:sfyz3S5.0732名無しさん@お腹いっぱい。
01/09/04 14:35ID:eE6ftGCAfunction($hoge[]){
}
で良かったんですね。ウトゥだ...。
0733小
01/09/04 23:53ID:v.Yb6HDErandだけではいけないのですか?
0734電動ナナシ
01/09/05 00:41ID:Dl24b5Kwrand() は、シードと呼ばれるある数字をもとに、計算した結果を返す。
計算内容は最初から決まっているので、シードが分かってしまうと結果と
なる乱数が分かってしまう。これでは都合が悪い場合がありうる。特に
暗号化処理などで乱数を使う場合には非常に都合が悪い。
シードは通常現在時刻とされることが多いので(PHP が何を使っているか
は特に調べていない)、時刻がわかると計算結果がわかってしまう可能性も
高い。そこでシードを自由に定義できるようにしたのがこの srand() 関数。
ということで必要に応じて使うのがよい。ポイントは、rand() の結果が
予測されてまずいことがあるか?である。なおシードの与え方が下手糞だと
かえって予測しやすくなる可能性もあるので注意。
<?php
// seed が一定なら、rand() の結果も一定であることを示す
function seedTest($seed) {
srand($seed);
return rand();
}
for ($i = 0; $i <= 10; $i++) {
srand($i);
$rand[$i] = rand();
}
for ($i = 0; $i < 10000; $i++) {
$x = $i % 10;
$currentRandom = seedTest($x);
$diff[$x] += abs($rand[$x] - $currentRandom);
}
for ($i = 0; $i <= 10; $i++) {
echo "total amount of diffrences is " . $diff[$x] . "<br>\r";
}
?>
結果はすべて 0 になる。つまり seed が一緒なら rand() の結果も一緒。
0735電動ナナシ
01/09/05 00:43ID:Dl24b5Kw0736小
01/09/05 03:01ID:BfAYMTkYsrandの意味理解できました。
なんか2ちゃんなのにそこまで丁寧に教えてくれるとは
思ってもみなかったです。
どうもありがとうございました。
0737名無しさん@XEmacs
01/09/05 10:42ID:/1y1O2Rwクラスと通常の関数で呼び出しのコストに差がありますか?
0738名無しさん@お腹いっぱい。
01/09/05 17:48ID:eOOIHzsk(from phpinfo())
すんません,こんなconfigureしたらcgi版としてインストール去れちゃったんですけど・・・
0739電動ナナシ
01/09/05 17:55ID:Dl24b5Kw'--with-pgsql=/usr/local/pgsql--with-apxs=/usr/local/apache/bin/apxs' が
一つの指示子として理解されているからだろ?
--with-apxs の前にスペースがないだけじゃないのか?。
0740電動ナナシ
01/09/05 18:08ID:Dl24b5Kw自分で実験してみりゃいいじゃん。
例えば同じ処理内容の関数とメソッドを 1000 回呼び出して
それにかかった時間を比較するとかさ。
■ このスレッドは過去ログ倉庫に格納されています