元スレくだすれPHP(超初心者用)5
php覧 / PC版 /みんなの評価 : ○
901 = :
オーバードーズなら一目瞭然なんだけどね。
飯島愛の死体を見せれば。
「これがオーバードーズという状態です」って。
902 = :
分かりました。
仕事でPHPやりながら家でJAVAかじります。
904 = :
趣味でぼっち開発の俺には、簡単お手軽どこでも動いてゆるゆるのPHP君で十分です。
905 = :
>仕様変更に異常に弱い
それは設計モデル次第だ
906 = :
>>904
一人で100人のキャラを演じながら開発しろよ
907 = :
>905
比較の話だろ。
そりゃJavaだってアセンブラよりは変更に強かろうよ。
908 = :
>>1
を読んで思い切って質問してみちゃいまう
tp://hiroqli.blogspot.com/2007/12/keepass.html
にphpと書かれていたのでここで質問するんですが
これを自分のPC上で実行したい場合どうすればいいんでしょう?
IDMというアプリでエクスポートされたCVSをKeepass用に変換できるもののようなんです
よろしくお願いします
909 = :
>>908
http://www.php.net/downloads.php
PHP環境を入れる
914 = :
「質問」の人?
915 = :
HTMLの表示用に同じ雛型を用いて、個別に変わる個所を変数で呼びしたいのですが
変数を入れ子で使うにはどうすれば良いのかご教授ください。
test.php
<?php
$title = "てすとぺーじ";
$hoge = $hensuu1; //変数1の中身を表示させたい
?>
<?php include('html.php'); ?>
<?php echo $html; ?>
html.php
<?php include('hensuu.php'); ?>
<?php
$html = "
<html>
<head><title>$title</title></head> ←$titleは「テストページ」となりますが
<body>
$hoge ←例えばここに「hensuu1」の中身を表示させるためには、どうすればいいですか?
</body>
</html>";
?>
hensuu.php
<?php
$hensuu1 = "実際に表示させたい内容";
?>
916 = :
>>915
なんか色々変・・・
設計を見直したほうがいいよ
917 = :
素直にテンプレートエンジン使いなよ
918 = :
>>916-917
変なのは分かっているのですが
設計を見直そうにもphpを初めて1週間なので
何をどうしたらベストなのか計画を立てることさえできません。
現状はwindowsにApacheとPHPを入れて
表示されるかどうかを確認するのが精いっぱいです。
919 = :
ならまだそんなことやる段階ではないと思われ
921 = :
嘘
922 = :
内部的にfopenするときにw+で
開いてしまっているので、ファイルの内容が空になる。
そんときに第三者から読み込みにこられると
空のファイルを渡す
それからロックをかける
こういう仕様なので、append以外では使えない。
こういう理解にしました。
924 = :
>>922
空のファイルが渡されるっていう現象を検証できるソースある?
試してみたい。
925 = :
(1)w+でオープンする
(2)w+なので、自動的にファイルの中味が空になる
(3)第三者が読み込みにくる
(4)空のファイルを渡す
(5)ここでようやくロック発動
(6)第三者が空のファイルを戻しにくる
(7)カウンタがぶっ壊れる
927 = :
file_put_contentsって
fopen -> fwrite -> fclose
って3つの流れを自動でやってくれるんだけど、
この中の
fopenが、どうもw+でオープンしてるらしい。
だとしたら、ファイルの中味は問答無用で
オープン時に空になるよね。
だからappend以外では使えない。
928 = :
マニュアル見るのめんどくさいからみてないけど
file_put_contentsも第三引数あたりでLOCK_EX使えるでしょ
>>927
該当ファイルを読み込んで修正してファイルを空にして全て書き出すのが基本
追記も便利だけどね
931 = :
検証してみたよ。
コマンドラインで
for($i = 0; $i < 10000; $i++) {
$data = file_get_contents("test.txt");
$data += 1;
$res = file_put_contents("test.txt", $data, LOCK_EX);
if ($res === false) {
error_log("write failed");
}
}
こんな感じのソースをシェルを複数立ち上げて実行したら、
単独なら10000になるけど、同時実行させると少なくなった。
3端末でやったら29767だった。本来なら30000になるべきだが。
しかし、もし>>925の言っている通りなら、どっかで0が戻るとすると、
こんなにきわどい値にはならない。もっと小さくなる。
排他ロックされて、書き込みに失敗していると見るべきだ。
実際、エラーログには書き込みに失敗した分のfailedが記載されたよ。
よって、LOCK_EXは正しい。
932 = :
つまり、まじめにカウンターを実装するなら、file_put_contentsでfalseが返ったら、
リトライするなりなんなり、自分で実装しなきゃいけない。
そこを、ミスったのをPHPの仕様漏れにしたがったってことじゃねぇか。
933 = :
$count = 0;
counter:
try {
カウンター書き込み
} catch(Exception $e) {
while($count <= 試行回数) {
$count++;
goto counter;
}
こんなんか?
934 = :
http://yp.xenophy.com/?p=23
誰も信じて疑っていないのか、PHP5.1.0からサポートされたという、第3引数のLOCK_EXによる排他ロック
file_put_contents( $path, $string, LOCK_EX );
これ・・・・・排他ロック・・・・・・できてません。。。
JMeterの負荷テストにて実証済みです。
具体的にどうなるかというと、書き込み時にロックがかけられないので、
書き込み時に、読み込みが行われた場合は、「空」で取得されます。
うーん。空なのか。。。
935 = :
くだすれだが、くだらないブログのつぶやきを信じるスレじゃないからな。
検証してねぇだろそのブログ主
936 = :
>>933
例外が発生してるわけじゃないからな。
937 = :
<?php
print M_SQRT2;
?>
で、スクエアルートが表示できると聞いて、
さっそくいろいろ試してみたのだが、
これって結局、2と3しか対応してないのな。
939 = :
>>937
http://jp.php.net/manual/ja/math.constants.php
940 = :
アクセスしてきたユーザーのIPアドレスを
crypt、またはMD5,またはsha1等で
暗号化してIDとして表示したいのだが、
安全性はどんな感じか。
941 = :
>>940
何の安全性?
942 = :
>>941
復号されること
943 = :
固定IPアドレス前提?
複号されたところでどうなる?
暗号IPとREMOTE_HOSTで照合するわけだよね? だとしたら生IPとREMOTE_HOSTで照合するのとほとんど変わらないと思うが・・
944 = :
>>943
違う。
アクセスしてきたやつのIPを
暗号化関数にぶちこんで、IDを生成して、
「今、この人達が見にきてます」
って表示するの。
945 = :
表示するためだけに使う程度のIDなら見に来てる人に名前入力させれば?
946 = :
>>945
それをサニタイズして表示するのがめんどくさい
入力させない方がセキュリティは上がる
947 = :
でも見に来てる人たちのIDの中に自分のIDも確認できたほうがちょっとうれしくないか?
文字のランダムな羅列よりも・・
949 = :
簡単に消そうと思えばセッションファイルをunlinkするだけで事足りるだろ
ブラウザ側のクッキーの扱いなんてしょせんサーバ側でコントロールなんてできないし
950 = :
>>939
5.3からceilとかfloorをroundで代替できるようになるんだね
みんなの評価 : ○
類似してるかもしれないスレッド
- くだすれPHP(超初心者用)4 (1001) - [97%] - 2008/11/21 17:19 ○
- くだすれPHP(超初心者用)6 (958) - [97%] - 2009/8/19 4:11 ○
- くだすれPHP(超初心者用)3 (1001) - [97%] - 2008/6/8 6:35 ☆
- さっさとPHP5.0.6出せよ糞Zend (80) - [31%] - 2019/5/9 7:45
トップメニューへ / →のくす牧場書庫について