【PHP】下らねぇ質問はここに書き込みやがれpart20
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
2006/04/28(金) 04:12:33ID:???ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
本スレ【PHP】質問スレッドpart34【php】
http://pc8.2ch.net/test/read.cgi/php/1142903954/
【PHP】下らねぇ質問はここに書き込みやがれ Part19
http://pc8.2ch.net/test/read.cgi/php/1144513878/
過去スレは>>2-3あたり
0885nobodyさん
2006/05/22(月) 08:50:14ID:???foreach( scandir(INCLUDE_DIR) as $filename){
if(!is_dir($filename)){
require_once(INCLUDE_DIR.$filename);
}
}
みたいにやってるんですが、こんな感じの関数とかってありませんか?
0886nobodyさん
2006/05/22(月) 09:12:27ID:QKaBTlkn上書きまたは削除というのはできませんか?
そういう関数はありませんか?
0888nobodyさん
2006/05/22(月) 09:20:46ID:QKaBTlknやっぱり、ループで一行ずつ読み込まないといけないですよね。
DBを使わずに作成したいのですが、データが大量になるとつらいです?
0889nobodyさん
2006/05/22(月) 10:13:56ID:???大した技術も持ってないので全然自信ないけど、もし自分がやるとしたらこんな感じにすると思う…というのを書いてみた↓
間違いのご指摘とか大歓迎。
$buf_ary = array();
$fp = @fopen($path, 'r+');
flock($fp, LOCK_EX);
while ($line = fgets($fp)) {
該当行に来たら$lineの中身を変更する処理
$buf_ary[] = $line;
}
ftruncate($fp, 0);
rewind($fp);
fputs($fp, implode('', $buf_ary));
fclose($fp);
例えばこれが掲示板なら、データファイルはある程度の大きさで分割する。
また、単なる表示処理とかにはキャッシュを使い、データファイルを読みに行くような処理にはしない。
0890889
2006/05/22(月) 10:18:41ID:???$buf_ary = array();
$fp = @fopen($path, 'r+');
flock($fp, LOCK_EX);
while ($line = fgets($fp)) {
該当行に来たら$lineの中身を変更/削除する処理
if ($line != '') { $buf_ary[] = $line; }
}
ftruncate($fp, 0);
rewind($fp);
fputs($fp, implode('', $buf_ary));
fclose($fp);
全然自信ないけどどうでしょう?
0891nobodyさん
2006/05/22(月) 11:13:30ID:???俺ならデータがかなり大きいと予想される場合は
固定長のレコードを使って、小さいならvar_export()とかのシリアライズ系
の関数をつかってすませてしまうかな。
まぁ、PHPで固定長のレコードを持つファイルを扱ったことなんて
ないんだけどね。
0893nobodyさん
2006/05/22(月) 12:07:12ID:???1行の長さが固定のファイルならfseek使って
ダイレクトに行単位の読み込みや上書きができるからそういうことじゃ?
0895890
2006/05/22(月) 12:15:08ID:???「KENT WEB」とか見てperlから独学で入ったクチで、Cとかの経験は全く無しなんで自信ないのよね。
要するに基礎がおろそかっていうか。
今はperlなんて忘れちゃったけど、「KENT WEB」見て勉強してた当時のソースは、
なんか配列にデータ全部読む→配列を処理する→ファイルに書き込む
みたいな事をしてた気がする。アレは駄目だよね?
0896nobodyさん
2006/05/22(月) 12:20:34ID:???$data_ary = @file($path);
foreach ($data_ary as $key => $value) {
なんか処理をごじょごじょ
}
$fp = @fopen…以下書き込み処理
↑これはやっぱりマズイだろと思い>>890を考えてみた。
MySQLばっかやってるので、ファイルベースの管理に疎い俺に勉強させて下さい。
0897nobodyさん
2006/05/22(月) 12:24:46ID:???ftruncate($fp, 0);
rewind($fp);
fputs();
よりも
rewind($fp);
fputs();
ftruncate($fp, ftell($fp));
の方が早いらしい
自分で確認したことはないので本当かどうかは知らないが
0898890
2006/05/22(月) 12:41:12ID:???どもです。
早いか遅いかというよりもむしろ、
ftruncate($fp, 0); って要するにファイルの中身を一度空っぽにしてしまうっていう事ですので、
もし何らかの原因でファイルロックに失敗してた場合、中身が全部消えてしまう可能性がありますよね。
書かれている
rewind($fp);
fputs();
ftruncate($fp, ftell($fp));
の場合、データの長さが変になる可能性はあっても、中身が全部消えてしまう事は無いのではないかと思います。
こんな書き方もあるんですね。勉強になりました。有難う御座いました。
0899nobodyさん
2006/05/22(月) 13:10:19ID:???ネ申KENT巨匠云々はどーだっていいが、perlとphpは脳内で確実に切り離して考えろ
phpはperlよりJavaScript寄りで脊髄反射で書ける代物から勉強するが良い
と、->のアローを使わないし今一存在意義の分からない俺が言うのだから
説得力なんて丸っきし無いのだけどな
0900nobodyさん
2006/05/22(月) 13:36:22ID:???ロックに間違いはないし、この1つのファイルだけでやりくりするならこれでいいと思う。
問題点としては、
ファイルの内容を全てメモリ上にロードしていることに対するシステムへの負荷
これはまあ、よほどでなければ無視できる。
それから、インデックスや、別のログファイルなど、
他のファイルを読み書きすることになった場合の整合性かな。
>>895
メモリ上に全て読み込んでいるからKENTとやってることは実質同じだよ。
KENTのは読み込みと書き込みで別々になってるけど
処理全体をロックして堅牢性を確保してる。
ロック時間が長すぎない分にはあの書き方の方がわかりやすいと思う。
0901nobodyさん
2006/05/22(月) 13:40:51ID:???Perlのロックはサーバによっては意味なかったり、
アンロックとファイルクローズの間隙に処理されるからアンロックせずにファイルクローズしたりと
あんまり信用できなかったけど・・・
0902nobodyさん
2006/05/22(月) 14:01:52ID:???追いかけやすいし、改変もしやすいかもしれない、
という利点もある。リッチプログラミングってやつだな。
スクリプト言語なんてリッチ以外の何者でもないし〜、
ってことで俺は人間の理解しやすさ重視で組むように昔方針変更した。
それでもソースコードレベルでの最適化を頑張るのも無駄じゃないし、
その人の方針しだいだよな。
0903890
2006/05/22(月) 14:01:53ID:???切り離すっていうか、perlとphpしかやった事ないしもうperl自体忘れちゃってるので何とも。
perlならゴチャゴチャ関数書いてたのが初めから何でもかんでも用意されてて、
その関数通せば1行で終わり…php始めた頃はそういうところに感動しましたね。
>>900
>ファイルの内容を全てメモリ上にロードしていることに対するシステムへの負荷
>それから、インデックスや、別のログファイルなど、
>他のファイルを読み書きすることになった場合の整合性かな。
ここら辺を考えるのが面倒で、mysqlに逃げちゃうんですよね。。。
>>896に書いたソースでは、A・B別々の人がほぼ同時に書き込み処理を行った場合、先に書いた人の内容が
消えてしまう可能性がありますよね?>>900に書いたソースならそれは無いと思うですが、認識として間違ってます?
>>901
その点自分も結構疑問なのですが、
例えば1日300万以上回るカウンタ(データの長さは固定長になるようにしてる)で1年以上一度も壊れた事ないです。
0904nobodyさん
2006/05/22(月) 14:07:33ID:P0gT7hBy$text = htmlspecialchars($_POST["text"]);
を入れました。
それで、確認画面ではタグが無効化しているのですが、そのまま登録すると
表示の画面ではタグが有効になっています。
そこで改めて確認の画面で
<?= htmlspecialchars($text);?>
としたのですが、今度はテキストエリアで入力した改行(<br>)が表示されてしまいました。
2chのフォームもそうですが、改行(<br>)は画面に表示させずに
その他のコードは完全に無効にするにはどうしたらいいのでしょうか?
0905nobodyさん
2006/05/22(月) 14:16:04ID:???>A・B別々の人がほぼ同時に書き込み処理を行った場合
合ってる。
だから、読み書きを分ける場合は処理全体をロックしていれば大丈夫。
俺なら、ロック用ファイルを別に用意してそこにflockするか
rename方式でやるかな。
0906890
2006/05/22(月) 14:19:04ID:???共有ロック処理(flock($fp, LOCK_SH)と同等の処理)されてるんでしょうか?
0907890
2006/05/22(月) 14:23:10ID:???どもです。
つまり、ロック用ファイル=今処理中ですよと認識する為のフラグ みたいなもので、
書き込み中でそのファイルが存在する時は、読み取り処理を行えないようにする。
読み込み中でそのファイルが存在する時は、書き込み処理を行えないようにする。
という具合にすればOKって事ですよね?
0909890
2006/05/22(月) 14:39:20ID:???自分のせいで埋もれてしまうと申し訳ないので回答しようと思ったのだけど、
いまいち質問の意味が掴みきれないので↓で勘弁して下さい。
仮に改行コードが"\n"で統一できてると仮定します(その方が説明しやすいので。実際には環境により異なります)
$text = $_POST['text'];
$text_escape = htmlspecialchars($text); //※1
$text_disp = str_replace("\n", '<br>', $text_escape); //※2
※$text_escapeとか$text_dispを用意する必要はないけど、分かりやすいかと思い敢えてそうしています。
という順番で処理すれば、改行(=\n)は<br>となり、その他のHTMLタグはエスケープ処理されます。
※1と※2の処理が逆になると、どうなるか分かりますよね?問題が起こってるのはそういう理由だと思います。
連投すみませんでした。
しばらく時間をおきます。
0910nobodyさん
2006/05/22(月) 14:41:54ID:???最後2行に対し答えるとすると、
$text = htmlspecialchars($_POST['text']);
$text = str_replace("<br>","<br>",$text);
ってか、処理の流れがヘンなのが一番の問題かも。
0911910
2006/05/22(月) 14:43:11ID:???おお、やっちまったorz
$text = htmlspecialchars($_POST['text']);
$text = str_replace("<br>","<br>",$text);
0912nobodyさん
2006/05/22(月) 14:48:26ID:???合ってるような合ってないような。
flockでのやり方は、コードにするとこんな感じ。
$lock = fopen('lockfile', 'w');
flock($lock, LOCK_EX);
//読み書き処理いろいろ
fclose($lock);
これだけ。
ポイントは処理中1ファイルを開きっぱなしにすることだけかな。
lockfileはサイズ0でも問題ないし、別に消す必要もない。
PHPはスクリプトが終わると勝手に閉じてくれるから
fcloseを忘れてもロックは残らないし、簡単なわりに結構いいよ。
0913904
2006/05/22(月) 15:03:16ID:???ありがとうございました
0914nobodyさん
2006/05/22(月) 16:01:04ID:???$fp = fopen($file, 'ab+');
flock($fp, LOCK_EX);
stream_set_write_buffer($fp, 0);
rewind($fp);
ftruncate($fp, 0);
// 書き込み
// ...
ftruncate($fp, ftell($fp));
flock($fp, LOCK_UN);
fclose($fp);
たしか、こんな感じにしないとまずいかったと思う
ab+モードのときは rewind() はいらないんだっけな
0915nobodyさん
2006/05/22(月) 16:14:51ID:???フォームに入れた値を、phpからmySQLのDBに送るっていうのを作ったのですが
送信後にF5、つまり更新すると空の内容がDBに送られてしまいます。
sql_closeを入れても同じです。
どうやったら、解決するでしょうか?
0916915
2006/05/22(月) 16:17:16ID:???sql_closeじゃなくてmysql_closeです。
ついでにソース
$con = mysql_connect("","","") or die(mysql_error());
$con_tbl = mysql_select_db("");
$query = mysql_query("INSERT INTO result_tbl () VALUES(");
mysql_close($con);
0918nobodyさん
2006/05/22(月) 16:34:36ID:???やっぱ、それしか無いんですかね・・・
もっと簡単に出来るかなと思ったのですが。
ありがとうございました。
0919nobodyさん
2006/05/22(月) 16:36:05ID:???だから、2重送信をブロックするロジックを自分で考えなきゃいけないんだよ。
Submitボタン連打だともっと酷いデータが送られてくるときもあるからな。
こっちも忘れんな。
0920nobodyさん
2006/05/22(月) 16:43:09ID:???フォームのアクションを別ファイルにして、1.php → 2.php へPOST
<form method=post action=2.php>
そこから元ファイルに飛ばせばフォームデータ消えるから、F5更新しても大丈夫
header("Location: http://example.com/1.php");
0921915
2006/05/22(月) 17:32:49ID:???ありがとうございます。
一度917さんのソリューションでやってみたんですが、解決しなかったっす
同じ内容を2度送る場合にエラー出すように設定しても、やはり普通に送られてしまいました。
フォーム側の$_POST['']をクリアするようにしてもうまく動かなかったので
920さんのでやったら、解決しました。一番簡単で確実かもしれないっすね。
ただ、別問題でなぜかフォームの一つが動作しなくなったのは萎えてきましたが。
とりあえず、みなさんありがとうございました。
0922nobodyさん
2006/05/22(月) 17:49:31ID:???<?php
function htmlheader($title){
echo <<<HOGE
<html>
<head>
<title>{$title}</title>
</head>
<body>
HOGE;
}
function htmlfooter(){
echo <<<HOGE
</body>
</html>
HOGE;
}
?>
test.php
<?php
include("inc.php");
htmlheader($title);
//ここが中身
htmlfooter();
?>
こんな風にするのはよくあると思いますが、inc.phpではhtmlheader(),htmlfooter()って関数で定義せずに例えば、$htmlheader,$htmlfooterって変数を定義。
それをincludeしてtest.phpのなかで、そのときに応じて$titleを与えて(上書き)やるみたいなことは出来ないでしょうか?
参照渡しとか可変変数とかを使えばなんとなく出来そうな気がするんですが。
0923nobodyさん
2006/05/22(月) 17:53:43ID:???0924nobodyさん
2006/05/22(月) 17:54:40ID:???mysql&phpなんですが、特定のレコードのフィールド(数値int(11))を一番効率よくカウントアップするにはどんな方法をとるのが良いでしょう?
最初にselectして値をとって、それを変数に入れて++したものをupdateするしかないんでしょうか?
update文一発で出来る方法を以前見かけたような気がするんですが。
0925nobodyさん
2006/05/22(月) 17:57:54ID:???なるほど。関数の実行結果を変数に入れちゃう訳ですね。
自分はけっこう大きな固まりでヒアドキュメントを使いたいので変数にしちゃいたかった訳です。
ヒアドキュメントの直前で
$htmlheader = htmlheader($title);
とやるわけですね。
0928nobodyさん
2006/05/22(月) 18:16:23ID:???AUTO_INCREMENTは承知しておりました。
いろいろためしたとこ、事前のselectでの取得は不要、これで逝けそうです。
UPDATE `tablename` SET `count` = `count` + 1 WHERE `id` = 1;
ありがとうございました
0929nobodyさん
2006/05/22(月) 19:09:56ID:???ログイン後に操作をしない(サーバと通信をしない)時間が数分〜十数分続くと、
勝手にログアウトしてしまいます。 厳密に計ったわけではありませんが、20分ももたないようです。
ブラウザを閉じたわけでもないですし、session.gc_maxlifetimeは1440あります。
明示的にログアウト処理をしない限りログイン状態が続くようにしたい(mixiのように)のですが、
どこの設定をいじれば良いのでしょうか・・・。
0930nobodyさん
2006/05/22(月) 19:13:25ID:ZjR2V7y0あるテーブルから普通にデータ取得して、HTMLでテーブル作って表示してます。
データの件数が多くなってしまい、表示に時間がかかるようになりました。
よくある「次のページ」リンクをつけて、数回に分けて表示したいと思います。
やり方でセオリーとかありますか?
自分で考えたのは普通に、start_numみたいな変数をhiddenに持たせて、
データを取得する時、ループさせる中でstart_numから30回分を表示してあとはスルーみたいな感じです。
0932nobodyさん
2006/05/22(月) 20:02:16ID:80zZuoVH* H1要素
段落段落段落...
** H2要素
段落...
という値が代入されているとします。
先頭が「*」で始まる文字列を見出しタグで括りたいのですが、これを実現するための関数はありますでしょうか?
0933nobodyさん
2006/05/22(月) 20:41:29ID:???$int = count($line);
for($i=0;$i<$int;$i++){
if(strpos($line[$i], '**') === 0){
$line[$i] = '<h2>'.substr($line[$i], 2).'</h2>'
}elseif(strpos($line[$i], '*') === 0){
$line[$i] = '<h1>'.substr($line[$i], 1).'</h1>'
}
//↓ならh1〜h*まで
//if(preg_match("/^([\*]+)(.+)$/", $line[$i], $ast)){
//$line[$i] = '<'.strlen($ast[1]).'>'.$ast[2].</'.strlen($ast[1]).'>';
//}
}
0934nobodyさん
2006/05/22(月) 20:43:10ID:???'<'.strlen($ast[1]).'>'.$ast[2].'</'.strlen($ast[1]).'>';
0935932
2006/05/22(月) 20:46:40ID:80zZuoVHありがとうです。
preg_match()を用いるのだとは思っていたのですが、応用することができませんでした。
まだまだ私は勉強が足りないみたいです。
0936nobodyさん
2006/05/22(月) 20:47:27ID:???0938nobodyさん
2006/05/22(月) 20:53:27ID:???最後に$test = implode("\n", $line);
今気づいた・・
$test = preg_replace("/([\*]+)([^\n]+)\n/", "<h".strlen("\\1").">\\2"."</h".strlen("\\1").">\n", $test);
0939nobodyさん
2006/05/22(月) 20:58:08ID:???echo $hoge;
上記のようにしたときに$hogeが空の状態で表示されてしまうのですが
どのようにしたら0と表示するのでしょうか?
おそらくiniの設定かなと思うのですがどこを変更すればいいのかが分かりません
使用しているバージョンはphp4.4.1です
0940nobodyさん
2006/05/22(月) 20:58:47ID:???面白いから読んどけ
ttp://www.kt.rim.or.jp/~kbk/regex/regex.html
ttp://www.din.or.jp/~ohzaki/regex.htm
スレ違いごめん
0942nobodyさん
2006/05/22(月) 21:24:44ID:???ありがとうございます
とりあえず表示は出来ました
しかし以下のような使い方をする時にはどのようにしたらいいのでしょうか?
$array = array("0","1","2");
for($i=0;$i<count($array);$i++){
printf("%d",$array[$i]);
}
$iが0の時の値が表示できません
よろしくお願いします
0943nobodyさん
2006/05/22(月) 21:46:29ID:HMN8IoOb0944nobodyさん
2006/05/22(月) 21:52:44ID:???PHPとMySQLでファイルアップロード機能つきの掲示板作ってるんですけど
ファイルをpublic_html内にPHPでアップロードしたら誰でも直接アクセスできますよね?
ログインした人だけアクセスできるようにって可能ですか?
DBに入れようかと思ったんですがMySQLではサポートされてないみたいなので
どうしようか悩んでます。
よろしくお願いします。
0945nobodyさん
2006/05/22(月) 21:56:43ID:???その前に、
$a=0;
echo $a;
で何も出ないってのは、ちょっと変じゃないか?
なんか勘違いしてないか?
var_dump($a);
はどうなる?
0946sage
2006/05/22(月) 22:00:52ID:ie3bIX/1勝手に直リンされてるんだけど、これ拒否る方法ないかねぇー。
WMPで直リンクされてんだけど、リファラー吐かないから、.htaccess
でも拒否れないし。。。クッキーも使いたくない。
なんかいい方法ある?
0948nobodyさん
2006/05/22(月) 22:07:09ID:???目から鱗です。
ダウンロードする時も外のディレクトリから持ってくればできそうですね。
試してみます。ありがとうございました。
0949nobodyさん
2006/05/22(月) 22:24:46ID:???俺の認識だと無理だと思うんだけど、実際どうなんですか?教えて下さいな
0950nobodyさん
2006/05/22(月) 22:24:57ID:RlV2K8v8色・サイズなどを変更は、どうすれば良いんでしょうか?
0951nobodyさん
2006/05/22(月) 22:36:09ID:???0953nobodyさん
2006/05/22(月) 22:39:58ID:???0956932
2006/05/22(月) 22:48:35ID:???すみません、こんなのでいいのでしょうか?
$file = file ("./text.inc");
$line = explode ("\n", $file);
$file = explode ("\n", $line);
$int = count ($line);
$file = preg_replace ("/([\*]+)([^\n]+)\n/", "<h" . strlen("\\1") . ">\\2" . "</h" . strlen("\\1") . ">\n", $file);
for ($i=0;$i<$int;$i++) {
if (strpos($line[$i], "**") === 0) {
$line[$i] = "<h2>" . substr ($line[$i], 2) . "</h2>";
} elseif (strpos($line[$i], "*") === 0) {
$line[$i] = "<h1>" . substr ($line[$i], 1) . "</h1>";
}
}
echo $line[$i];
0958nobodyさん
2006/05/22(月) 23:00:02ID:???safe_mode = PHP_INI_SYSTEM
PHP_INI_SYSTEM = php.ini または httpd.confで設定可能なエントリ
どこのサーバか知らんが、言われたとおりにやってphpinfo()してみたら?
0959nobodyさん
2006/05/22(月) 23:53:56ID:???オーケー兄弟。ありがとう
指示通りやってもphpinfoの結果はOnのままだった。
サポートに(*゜Д゜)ゴルァ!してくる
0960nobodyさん
2006/05/23(火) 00:27:30ID:???え? file()はファイル内容を一行ずつ配列に格納する関数なので
explodeで分割する必要は無いんじゃないの?
0961932
2006/05/23(火) 00:34:51ID:???<?php
$lines = file ("./text.inc");
$int = count ($lines);
$lines = preg_replace ("/([\*]+)([^\n]+)\n/", "<h" . strlen("\\1") . ">\\2" . "</h" . strlen("\\1") . ">\n", $lines);
for ($i=0;$i<$int;$i++) {
if (strpos($lines[$i], "**") === 0) {
$lines[$i] = "<h2>" . substr ($lines[$i], 2) . "</h2>";
} elseif (strpos($lines[$i], "*") === 0) {
$lines[$i] = "<h1>" . substr ($lines[$i], 1) . "</h1>";
}
echo $lines[$i];
}
?>
出来たです。
あとは見出し要素以外の文書構成節「段落」をpタグで括るようにすればいいのですね。
ありがとうございました(^^
0962nobodyさん
2006/05/23(火) 01:59:05ID:???このほうがシンプルじゃないか?
まあ、解決したみたいだから、どうでもいいけどw
$fp = fopen("test.txt","r");
while ($buf = fgets($fp,1024)) {
$buf = trim($buf);
if (substr($buf,0,1) == '*') {
$buf = preg_replace("/^(\*)*(.+)$/e", "'<h'.strlen('\\1').'>\\2</h'.strlen('\\1').'>'", $buf);
} else {
$buf = "<p>{$buf}</p>";
}
echo $buf."\n";
}
fclose($fp);
0964938
2006/05/23(火) 07:57:36ID:???はじめ行で分割してやったけど
正規表現で一発で置き換えすればいいかと思った
その方法だとpreg_replaceはいらないよ
配列にreplaceは意味ない希ガス
0966942
2006/05/23(火) 11:08:53ID:5evz5UIt遅くなって申し訳ないです。
教えていただいた方法で書き出した所
int(0)と出ました。
0967nobodyさん
2006/05/23(火) 11:47:33ID:???<?php
is_resource($fop = @fopen($log = "./test.txt","r")) or exit("Error: ".$log." を開けませんでした。");
$dat = "";
while(is_string($buf = fgets($fop,1024))){
$dat.= ($len = strspn($buf,"*")) > 0 ? "<h".$len.">".trim(substr($buf,$len))."</h".$len.">\n" : "<p>".trim($buf)."</p>\n";
continue;
}
fclose($fop);
exit($dat);
?>
0968nobodyさん
2006/05/23(火) 12:02:16ID:???0969nobodyさん
2006/05/23(火) 13:27:20ID:???PHPでメールとメールの添付ファイルを受信する為には
どのような方法をとれば良いのでしょうか…
0970nobodyさん
2006/05/23(火) 13:32:45ID:???0971nobodyさん
2006/05/23(火) 13:37:39ID:???MTA(みたいなやつ)からのパイプ起動の三択。
で、次にそのメールのMIME構造を解釈するとメール本文と添付ファイルが得られる。
0972軟式PHP
2006/05/23(火) 13:47:20ID:???0973nobodyさん
2006/05/23(火) 14:02:32ID:???0974nobodyさん
2006/05/23(火) 14:23:04ID:???0975nobodyさん
2006/05/23(火) 14:32:39ID:z6MA0Zs/0976nobodyさん
2006/05/23(火) 15:09:10ID:???0977nobodyさん
2006/05/23(火) 15:41:54ID:???0979nobodyさん
2006/05/23(火) 18:09:44ID:???$lockfp = fopen($lockfile,"w");
flock($lockfp, LOCK_EX);
$fp = @fopen($file,"a");
@fputs($fp,$date);
@fclose($fp);
flock($lockfp, LOCK_UN);
fclose($lockfp);
このようにしたが、logファイルに書き込みが出来なくなった。なぜ?
0980nobodyさん
2006/05/23(火) 18:30:36ID:???0983nobodyさん
2006/05/23(火) 18:34:44ID:???の,助詞,連体化,*,*,*,*,の,ノ,ノ
つぼみ,名詞,一般,*,*,*,*,つぼみ,ツボミ,ツボミ
みたいなCSVデータが多量にある場合、プログラム的にはどんな処理が軽いんでしょうか?
上記の場合「バラ」って言葉が複数回出る可能性があるので、何回出たかカウントしたかったりします。
配列全部入れて配列を検索が楽そうなんですが、多量になると処理的に厳しいですよね・・。
0984nobodyさん
2006/05/23(火) 18:47:45ID:???一番軽いのはexit()かunset()かなあ・・・
そもそも何をしたいのか判らんのだけど。
カウント?検索?データはどこにある?(変数?ファイル?DB?)
情報が小出しすぎて(不足で)どうとでも答えられそうな
レス数が950を超えています。1000を超えると書き込みができなくなります。