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

【PHP】くだらねぇ質問はここに書き込みやがれpart4

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん05/03/13 16:08:32ID:???
PHPに関するくだらない質問用すれです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい

・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
0892nobodyさん2005/04/25(月) 09:25:38ID:HSj72Zbp
phpだけでは出来ないのですね
0893nobodyさん2005/04/25(月) 09:49:46ID:IAqctJnu
アプリ側だけで出来る言語ってあるの?
0894軟式PHP2005/04/25(月) 11:15:14ID:???
>>892
不安定でもいいなら、ブラウザ立ち上げっぱなしにしてリフレッシュで対応しとけ。
08958892005/04/25(月) 11:25:24ID:???
>>890は別人です、ビックリした〜。
オススメのスクリプト置き場、ありましたらお願いしますm(__)m
08968952005/04/25(月) 14:14:02ID:???
すみません。自己解決しました。
0897nobodyさん2005/04/25(月) 15:40:21ID:???
>>895
http://kasarfa.com/
0898nobodyさん2005/04/25(月) 16:44:46ID:???
>>892
CLI版があるならデーモンプログラムをPHPで作れるがな。
0899nobodyさん2005/04/25(月) 19:22:11ID:???
http://www.eweb-design.com/link/link.php
リンク集スクリプトを探していて引っかかったんですが
こんなスクリプトはないでしょうか?
0900nobodyさん2005/04/25(月) 19:42:28ID:???
スクリプトがなければ作ればいいじゃない
09018822005/04/25(月) 21:44:07ID:???
レスキボンヌです
0902nobodyさん2005/04/25(月) 22:04:57ID:???
>>901
オイラの環境(php4.3.5@win2k)では問題なく動作した。
yahooの80に対してと、8080でググって適当な8080ポートを使っている鯖に対してテストを実行した。
0903nobodyさん2005/04/26(火) 00:18:14ID:???
rename(tmp.txt, bbs.txt);

↑リネームしようとしたらbbs.txtが存在するから
だめとかいうエラーが出てしまいます。
Warning: rename(tmp.txt,bbs.txt) [function.rename]: File exists in〜

bbs.txtはリネームの前に絶対必要であり、リネームで上書きしたいんですが、
どうにかしてできますか?
0904nobodyさん2005/04/26(火) 01:35:33ID:???
お初なんだけどいきなり質問するとです。
$a = $_SERVER[REMOTE_ADDR];
$b = gethostbyaddr($a);
print "$a<br>\n$b";
このスクリプトに漏れがアクセスすると
$bの出力は自分のPC名が表示されてしまう。
プロバイダのホスト名が表示されるようにしたいんだが。
ちなみに携帯(DoCoMo)からアクセスしたら
ちゃんとDoCoMoのホスト名が表示された。
0905nobodyさん2005/04/26(火) 01:48:56ID:???
>>903
rename 2回

>>904
外に置けば出る
09067992005/04/26(火) 07:50:02ID:???
>>903
上書きする時点では不要のはずだけど
>>904
IPが192.168.(LANの中)?
09079042005/04/26(火) 08:24:24ID:???
>>906
$aに入っているIPはちゃんとプロバイダのIPなんですよ!
それをgethostbyaddrによって変換しているはずなのに
$bではPC名が表示されます。
0908nobodyさん2005/04/26(火) 10:42:32ID:???
>>904
それって窓の仕様ではなかったっけ?
なんか、何年か前に窓を使ってた時に同じ現象があった気がする
09098822005/04/26(火) 14:31:20ID:???
>>901

スクリプトはこれで問題ないでしょうか?

$fp = file_get_contents('http://www.yahoo.co.jp:80/');
echo $fp;

同か宜しくお願いします
0910nobodyさん2005/04/26(火) 14:48:15ID:???
>>909
俺のマシンで実行したらちゃんとYahooのページが表示されたぜ
09119022005/04/26(火) 14:50:40ID:???
>>909
オイラが召還されたのかな?
テストは、それとまったく同じもの(www.yahoo.co.jp:80)と、
ポート番号が無視されているわけではない事を確認するために
80以外のポート番号で公開しているサーバに対して行いました。
結果としてポート番号は適切に扱われました。
>>882にあるような failed to 〜のwarningを出そうとして
試しにFirewallでパケットを叩き落とした所、見事に同じwarningが出ましたが、
そちらでは80を指定しない時はうまく行ってるみたいなんで状況が違うかも知れませんね。
0912nobodyさん2005/04/26(火) 15:16:17ID:???
すみません、どなたかご教授下さい。

http://******.co.jp/nandemo/test.php?cmd=view&option=1

というアクセスを、

http://******.co.jp/nandemo/test/cmd=view/option=1

というアドレスで表示させたいのですが(amazonみたいに)
どのようにすれば良いのでしょうか。
0913nobodyさん2005/04/26(火) 15:18:47ID:???
>>909
俺もちゃんと動いたよ。
0914nobodyさん2005/04/26(火) 15:59:21ID:???
>>912
Web制作板の「.htaccess」スレで聞いてごらん
0915nobodyさん2005/04/26(火) 16:02:18ID:???
>>914さん
ご丁寧な誘導ありがとうございます。
そちらで聞いてみたいと思います。スレ違い失礼いたしました。
0916nobodyさん2005/04/26(火) 16:21:46ID:???
utf8なmysqlにデータ入れてるんですが、化けるので
調査してみたところ、マニュアルにも載っている下記コードを
実行すると、latin1になってしまいます。
これは何処を設定すれば、utf8になりますか?

<?php

/* 接続のオープン */
$link = mysqli_connect("localhost", "root", "hoge");

/* カレントの文字コードセットを表示 */
$charset = mysqli_character_set_name($link);
printf ("Current character set is %s\n",$charset);

?>

ちなみに、localhostでmysqlクライアントだと、\sでみればちゃんと

Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8

となっとります。

0917nobodyさん2005/04/26(火) 17:05:46ID:???
本当にくだらない質問なんだが、PEARコマンドでパッケージをインストールするときだが、
いちいちINSTALLでパッケージ指定しないと行けないのか?
upgrade-allだとインストールされてるやつを全部アップグレードしてくれるけど、
インストールしてないパッケージをコマンド1つでインストールする方法ないかな?
0918nobodyさん2005/04/26(火) 17:42:48ID:???
>>916
PHPのmysqli関数で使ってるMySQLクライアントライブラリが
latin1でビルドされてるものなんじゃないの。
接続後に毎回エンコードSETしといたら?
0919nobodyさん2005/04/26(火) 17:46:37ID:???
<?
$dom = domxml_open_file('http://example.com/example.xml'); ←UTF-8

$xsldoc = domxml_xslt_stylesheet_file('http://example.com/example.xsl');

$result = $xsldoc->process($dom);

$xsldoc->result_dump_file($result, 'example.html'); ←EUC-JP

print $xsldoc->result_dump_mem($result); ←EUC-JP
?>

今DOMXMLの練習をしてまして
UTF-8のXML文書をEUC-JPに変換して表示&保存したいのですが
どこでmb_convert_encodingをかければいいんでしょうか?
09208012005/04/26(火) 18:52:44ID:???
>>801ですが、自己解決しました。というよりPHP 5.0.4のバグでした。
http://bugs.php.net/bug.php?id=32553
0921nobodyさん2005/04/26(火) 23:46:06ID:???
すれ違いかもしれませんが、
phpMyadminを別のポートで立ち上げたいんですけど
どうやってやるんでしょうか。
0922nobodyさん2005/04/26(火) 23:54:33ID:???
>>921 スレ違いぢゃなくて、板違いだな。
phpMyAdminではなく、phpMyAdminを呼び出してるWEBサーバーを
設定しなくちゃいけない。
phpMyAdminを呼び出してるWEBサーバーが何か判らないと
答えようがない。
0923nobodyさん2005/04/27(水) 01:05:42ID:???
apache2何ですけど
2個起動するんでしょうか
0924nobodyさん2005/04/27(水) 01:35:59ID:???
>>922
apacheの場合、単体でポート番号を複数使うことができるよ。
Listen VirtualHostディレクティブを組み合わせると希望する動きになるんじゃないかなぁ。
PHPとは全然関係ない話になるので、続くようなら適切なOSの板か自宅鯖あたりで。
09259242005/04/27(水) 01:37:10ID:???
あー。レス番間違った。。
>>921,923宛です。
0926nobodyさん2005/04/27(水) 02:14:13ID:???
>>923
2個起動しても良いけど、Apache2ならSSLと同じようにバーチャルドメインの
機能を使うのが良いだろう。どっちにせよ明らかにPHPの話じゃないので、
別の適切なドキュメントあたれ。
09279192005/04/27(水) 02:32:29ID:???
xslのoutput encodingで指定したら思い通りの結果が出ました・・・_| ̄|○
スレ汚しすいませんでした
09283012005/04/27(水) 05:57:01ID:???
『 hoge1、hoge2、hoge3、hoge4 』
という4つのテキストデータがありまして
読み込む度にランダムで違う配列にしたいです。
phpを使って並び替える方法を教えてください。
『 hoge3、hoge1、hoge2、hoge4 』とか
『 hoge1、hoge4、hoge3、hoge2 』とか
こんな感じにランダムで並び替える方法を教えてください。
0929nobodyさん2005/04/27(水) 06:06:14ID:???
>>928
shuffle()かarray_rand()
09303012005/04/27(水) 11:38:24ID:ZOjS30sy
すいません自己解決しました
0931nobodyさん2005/04/27(水) 11:52:21ID:ZDoIiicS
あるディレクトリにある複数のdatファイルのうちで、最も新しい
ファイルの日付けを検索して、その日付けをトップページに表示
したいのですがどのようにすればよいですか?
0932nobodyさん2005/04/27(水) 12:01:27ID:???
opendir, readir, closedir, statまたはfilemtime
0933nobodyさん2005/04/27(水) 12:33:55ID:???
>>931
if, echo または print
0934nobodyさん2005/04/27(水) 16:29:28ID:???
クライアントのローカルの時間を取得する方法ってある?
0935nobodyさん2005/04/27(水) 16:57:01ID:???
>>934
電話
0936nobodyさん2005/04/27(水) 17:02:45ID:???
夜中に電話したら迷惑じゃんっ
0937nobodyさん2005/04/27(水) 17:12:23ID:???
PHPとデータベースとの関係について質問させて下さい。

PHPと各種DBのバージョンの対応表など、どこかに情報は無いでしょうか?
MySQLやPostgreSQLだけでなくOracleなどを含めて、
細かいリビジョン毎に対応表があるといいのですが。

正直、自分の使ってるPHPのバージョンで
どのデータベースどのバージョンまで使うことが出来るのか、
こういった情報って少ない気がするのですが、
皆さんはどうやって調べてるのでしょうか?
0938nobodyさん2005/04/27(水) 20:58:23ID:???
>>937
クライアントの接続下位互換性を持ってないDBMSというのは珍しいと思うけど?
例えDBサーバ側の設定が必要だとしても。
---
組み込む接続ライブラリに依存するから、
個々のDB接続性がPHPでどうなってるかは環境による。
0939nobodyさん2005/04/27(水) 22:08:47ID:FF8E+B0x
EUCページにて<a href=mailto タグのSubjectに日本語を使いたいのですが
そのままでは化けてしまいます。
どうしたらいいのでしょうか?
0940nobodyさん2005/04/27(水) 22:12:35ID:???
>>939
どの辺にPHPが絡むのかな?・・・
あっURLエンコードの処理だな。そうだろ。
0941nobodyさん2005/04/27(水) 22:43:03ID:???
>>939
ページと同じにsubjectをEUCで書けばいいだけ。

ああ、リンクをメールで開いたときに"化ける"なんて言うなよ。
そこに日本語は使えないんだから。"化けない"のは偶々。
0942mizinko2005/04/28(木) 10:11:48ID:???
PHP5でファイルおーぷそ、読み込み、書き込みって変わりました?
fopenとかfeofなんかが使えない…(´・ω・`)
09439312005/04/28(木) 11:45:14ID:???
>>932 >>933
レスありがとうございます

どのファイルが最新の日付けかを探し出すには
どういう構文を書けばいいのですか?
0944nobodyさん2005/04/28(木) 12:15:29ID:???
>>943
比較用に最新の日付とそのファイルの組み合わせを持っておいて、
すべてのファイルと逐次比較して、比較したものの方が最新だったら
手持ちの組み合わせをそれと入れ替えて、さらに逐次比較を継続する。
これが一番単純なやりかた。

構文は自分で考えろ。
0945nobodyさん2005/04/28(木) 20:47:43ID:BVIDeapO
http://www.hogehoge.com/index.php?mode=normal&price=500&number=1

というアドレスにアクセスがあったときに、index.phpで、
"mode=normal&price=500&number=1"
という文字列を取得するにはどのようにすれば良いでしょうか。
0946nobodyさん2005/04/28(木) 20:50:29ID:???
>>945
var_dump($_SERVER); してみろ
09479452005/04/28(木) 20:57:13ID:???
>946様ありがとうございました。
無事解決いたしました。
0948nobodyさん2005/04/28(木) 21:34:43ID:???
>944
アフォか
>944
全ファイル舐めまわしながらファイル名をキーに更新日時を配列に格納
後はソート…
0949nobodyさん2005/04/28(木) 22:00:21ID:???
>>948
なんで配列に格納(という無駄なこと)してから、ソートすんの?
09509442005/04/28(木) 22:02:19ID:???
>>948
全ファイル舐めるなら、配列にいれてソートするなんて2度手間する必要あるのか?
変数1つ用意して、最初、変数は空だから最初に見つかったファイルの更新日時を入れて、
ファイルを舐める段階で順次ファイルの更新日付と比較して、
最新の日付だったら変数に入れるだけじゃないか。

ファイル全部舐めたときには最新の更新日付が取れてるよ。
なんで、わざわざ、全部舐めた後にソートなんてするんだよ、馬鹿らしい。
09519432005/04/28(木) 23:40:13ID:???
>>944
全然分からないので勉強してきまつ・・・
ありがとうございました
0952nobodyさん2005/04/29(金) 01:16:58ID:???
文字列からアルファベット(全角半角)だけを抜き出す関数ってありませんか?
0953nobodyさん2005/04/29(金) 01:53:46ID:???
>>952
無いので正規表現で処理しましょう。
というと、正規表現分からんと返ってきそうですが、この機会に身に付けておきましょう。
0954nobodyさん2005/04/29(金) 07:55:13ID:???
>>950
>948ではありませんが、二度手間ではないですよ。
if文は負荷が大きい(当然ファイル数が多いほど高負荷になる)から
繰り返し処理の中ではif文で比較しないで配列に要素を追加するだけ。
繰り返しが終わったら配列をソートで比較終了。
つまり、10000ファイルあった場合、9999回if分岐するか
10000要素の配列をつくって1回ソートするか、ですね。
CPU負荷とメモリ消費と処理速度等の兼ね合いで、
メモリをちょっとだけ使ってCPU負荷を少なく抑えて
その結果速いであろう>948の方法を良しとするのが一般的です。
一概には言えないしアフォかとは思わないけどね。
アフォほどファイルをつくって両方の処理速度でも測ってみて
何がどう違うか観察するとよくわかるかも
0955nobodyさん2005/04/29(金) 08:47:22ID:???
>>954
PHPの構文としてのif文は負荷が大きいのだろうか?
配列のソートの場合でも結局はZEの中でクイックソートしてるので
比較は発生してるよね。配列への値の挿入よりも、if文で内部的に
発生する挿入等のハンドシェイクの方が効率が悪いということか。

まあ、下層を追うよりもテストして結果として現れる上層を
見てみれば結論が出るんだろうけど。
0956nobodyさん2005/04/29(金) 09:12:40ID:???
>>955
そもそも、PHPのifとCのifとの効率の差異は
「最大値を持つ要素1つだけ先頭に持ってくるソート」と
「すべての要素を順に並べないといけないソート」
の差異よりも、差があると思えるのか?
0957nobodyさん2005/04/29(金) 10:46:00ID:???
PHPでのカウンタについて疑問があるので質問させて下さい。

色々なサイトなどでカウンタのスクリプトのソースを見たのですが、
どうしても腑に落ちない所がありました。

DATファイルなどにカウンタの値を記録しておいて、
アクセス時にその内容を読み込み、カウントをアップし、
そして、書き込み時にファイルをロックしてカウンタを増やしているという
サンプルが殆どなのですが、この場合って不具合起きませんか?

AとBがほぼ同じタイミングでアクセスした場合、
AもBも同じ内容のカウンタを取得し、お互いにカウントアップし、
どちらかが先に書き込んだあと、同じ値で上書きされるような気がします。

やはり、カウントアップして書き込み終わるまでファイルが読み込めないようにした方がいいのでしょうか?
0958nobodyさん2005/04/29(金) 10:53:20ID:???
>>955
>954です。すみません、ウソつきました。
アフォほどファイルをつくって試してみましたが
処理時間はほとんど変わらず両者の負荷は変わらないぽいですね。
一般的ですとか逝っちゃって恥ずかしいんですけど。。。
if文じゃなくて配列を駆使するのが効率的という頭で
負荷も少なくなると勝手に思い込んでました。orz
>948は、古いファイルとか新しい複数ファイルの情報も取り出せたり
何かと応用がきくからプログラム的にスマートって事ですね。
さて、吊ってきます。
0959nobodyさん2005/04/29(金) 11:07:45ID:???
>>958
おい、もっとよく確かめrよ。
どう考えたってsortよりifのほうが負荷が大きいに決まってるだろ。
俺なんかあまりの違いにifやめてsort使うことにしtんだぞ。
これで俺のプログラムも爆速だぜぃ。がはは。
0960nobodyさん2005/04/29(金) 12:11:00ID:B3CgdDo1
OracleにPHPという組み合わせでやってます。

if ($con = oci_connect("user", "pass", "db")) {
$open = true;
} else {
$open = false;
}

if (oci_close($con)) {
$close = true;
} else {
$close = false;
}

echo "open : " . $open . "<br>";
echo "close : " . $close . "<br>";

これだけなんだけど、なんでoci_close()でfalseが返ってくるのか
分からないっす。なんかPHPとデータベースについて根本的な勘違いを
しているのかな?
0961nobodyさん2005/04/29(金) 12:35:46ID:???
>>957
そうです。レッツPHPのは間違っているので気を付けましょう。
09629572005/04/29(金) 13:03:41ID:???
>>961
実際に名前を出すのはどうかと思ったのですが、
レッツ以外にも、ググッて出てくるようなPHPスクリプトを配布しているサイトで、
読み込み時から書き込み終了までロックをしているサンプルって見た事無いんですが・・・

疑問に思ったのは、どのサンプルも書き込みの時だけロックを行っている。
また、読み込み時にロックしても、読み込んだ後にはロックを解除していて、
書き込み時に再度ロックして書き込み後にロックを解除しているというものが殆どで、
後者の方法でも、読み込み時のロック解除から書き込みのロックまでの間に
誰かのアクセスがあれば、結果的に同じカウンタ数を読み込むので無意味だと。

此処からは私の勝手な想像なのですが、
1つ目はこの方法でも、処理時間的にはそう簡単には懸念している不具合が起きないために
手を抜いている。
2つ目は単順にスクリプトを公開してる人間に、こういった問題意識が無い
又は問題は認識しているが技術力が足りない。
と考えているのですが、どうなのでしょう?

それとも、根本的に、公開されているスクリプトでは
私が懸念している不具合が起こる可能性は0%なのでしょうか?
0963nobodyさん2005/04/29(金) 14:15:49ID:???
単なる手抜きだと思うよ
それに同一ホストからでもリロードするたびにカウントがあがる
駄目カウンタも結構あるし
09649572005/04/29(金) 14:22:17ID:???
>>963
その辺は、俗に言う仕様じゃないでしょうか?
あとは、目的の違いかと。

単純にアクセス数だけをカウントする場合は、同一ホストとか関係無いでしょうし、
ものによっては、直前との同一ホストしか比較してないものもある。
これだと、同じホストで間隔明けて誰かがアクセスした後に
再度アクセスすればカウントアップされるし。

ただ、私が気にしているのは、更新されるべき値が他のアクセスで読み込まれ、
データベースで言う所のダーティーリードに相当するものが
何故放置されているのかが単純に疑問な訳で。
0965nobodyさん2005/04/29(金) 15:41:39ID:???
何故って所詮その程度のものだって事でそ
まねする必要なんか無いので好きなように書けばいいだぎゃ
0966nobodyさん2005/04/29(金) 16:10:04ID:???
>>964
それはレッツの劣化コピーが巷に溢れてる所為では。
タイミングもちゃんとしてあって、ロックが掛かってたら
ランダムに待ちして数回リトライしてるようなカウンターも見たことあるよ。

それよかカウンターのような恥ずかしいものを最近サイトに置いたことがないな。
09679572005/04/29(金) 16:51:46ID:???
>>965
自分はファイルにデータは一切記録させず、
全てDBで制御してるので、今まで全く気にしていなかったのですが、
他人のサイトを見たときに、気になっただけです。

>>966
なるほど、確かにレッツの劣化コピーという可能性はありますね。
標準のロックを使わずに独自にロックの仕組みを作ってる所とかはしっかりしてますね。

>それよかカウンターのような恥ずかしいものを最近サイトに置いたことがないな
カウンターのように、基礎が出来てないサイトって、
カウンター以外のスクリプトにも同様にロックの仕組みが不味いので気になってました。
0968nobodyさん2005/04/29(金) 17:38:15ID:???
>>967
オマイ、厨のくせに、なんだか偉そうだね。
0969nobodyさん2005/04/29(金) 18:05:13ID:???
完璧なカウンタを公開してくれるんでしょう。
0970nobodyさん2005/04/29(金) 18:36:06ID:???
おまえら、PHP書くときどんな書体使ってる?
読みやすいフォントがなかなか見つからない orz
0971nobodyさん2005/04/29(金) 18:55:51ID:djMTOoa/
MySQLを使わずにinet_atonする方法はないでしょうか?
0972nobodyさん2005/04/29(金) 18:57:33ID:???
>>970
Osaka
0973nobodyさん2005/04/29(金) 19:01:12ID:???
>>970
プログラム板にフォントスレあり。
09749712005/04/29(金) 19:04:16ID:???
ip2longでした
0975nobodyさん2005/04/29(金) 19:49:33ID:???
>>962,967
実際に起こりにくいのと起こってもそれが判明しにくいから
問題を認識(重要視か?)してない人は確かに多そうだよね。
敷居の低いPHPの特性上 とりあえず動けばいいや的な感じで
あまり追及しない人が多いというのもある気がする。

しかし"r+"で開いてflock()してる間に読み書きすれば済む話だから
独自ロックする意味がわからない。独自ロックって例えばどんなの?
0976nobodyさん2005/04/29(金) 20:10:58ID:???
>>975
お前さんが、そもそも問題を認識(重要視)してないんじゃないか?
flockだってロックの種類は読み込み・書き込み・解除しかなく、
それぞれを重複して掛けられない訳だ。
書き込み時だけロックしたって、他人は読む事は出来る。(ここで問題が発生)

読み込み時に、読み込みロックで開いて、カウントアップし、
書き込む前に、読み込みロックを解除したあと書き込みロックをすれば、
更にタイミング的にはシビアになるから問題が発生する頻度は減るが0%じゃない。

独自ロックの仕組み(大抵はファイルのリネームやロックしてるかのダミーファイル)を使うことにより、
読み込みや書き込みすら出来ないように(プログラム)で出来る。
実際にはflockしてないから読み書きできるが、この独自ロックのダミーファイルなどを見て、
ロックされてるかの判断が出来る。
さらに、ロックが何時まで経っても解除されないような自体でも、
タイムアウトを設けることで、強制的にロックも解除できる。
0977nobodyさん2005/04/29(金) 20:46:55ID:???
>>976
975だけどよくわからん
$txt="count.txt";
$fh=fopen($txt,"r+");
flock($fh,2);
$count=(int)fgets($fh);//読
rewind($fh);
ftruncate($fh,0);
fputs($fh,++$count);//書
flock($fh,3);
fclose($fh);
どこがまずいですか?
0978nobodyさん2005/04/29(金) 21:04:41ID:???
>>977
976じゃないけど、flockが全ての鯖で使えると思ってるのが馬鹿過ぎ。
つまり、そのコードのflock($fh,2);からflock($fh,3);までヤバ過ぎ。
0979ave2005/04/29(金) 21:08:01ID:???
このページにアクセスしようとすると、mysqlがどうたらこうたらとでて
ページにアクセスできないです。 助けてください
OS:windowsXP proffesional
0980ave2005/04/29(金) 21:10:20ID:???
このページにアクセスしようとすると、mysqlがどうたらこうたらとでて
ページにアクセスできないです。 助けてください
ttp://www.aqua-soft.org/
OS:windowsXP proffesional


0981nobodyさん2005/04/29(金) 21:13:12ID:TDd2BQoi
デヂエのようにユーザがSQLを意識せずに使えるようなwebデータベースはありますか?
phpで書かれたオープンソース版を探しています。phpMyadminを、管理でなく運用向けにしたようなイメージです。
デジエ買えばいいんですけど、貧乏なんで...
0982nobodyさん2005/04/29(金) 21:13:54ID:???
ロック処理なら俺はこんな感じで書いてるけど、何か気が付いたとこあったら教えて

if ($fp_lock = fopen($lock_file,"w")) {
  if(flock($fp_lock,LOCK_EX)){

    if($fp = fopen($txt,"r")){
      if(flock($fp, LOCK_SH)){
        $data=fgets($fp);
        flock($fp, LOCK_UN);
      }
      fclose($fp);
    }

    if($fp = fopen($txt,"w")){
      if(flock($fp, LOCK_EX)){
         rewind($fp);
         fputs($fp, $data);
         flock($fp, LOCK_UN);
      }
      fclose($fp);
    }

    flock($fp_lock,LOCK_UN);
  }
  fclose($fp_lock);
}
0983nobodyさん2005/04/29(金) 21:19:56ID:???
>>978
flock使える鯖で運用するなら、
flock使えない鯖のことなんて全く気にする必要ない。
具体的にどこがやばいか言ってみなよ。
0984nobodyさん2005/04/29(金) 22:26:18ID:???
>>978
馬鹿共は放っておけよ。
何が問題かわからない教えて君なんだから。
0985nobodyさん2005/04/29(金) 23:02:39ID:???
>>975,977です。
>>978
実用時はfopen(),flock()でfalseが返ってきたら
処理を止めるようにしてるし、使えないサーバでは使いません
977ではできるだけ単純でわかりやすいコードにしたつもり
>>984
おれが教えて君ですかね。むしろ978が説得力ないんだけど。
何が問題かわからない人のために簡単に説明すると
977は、排他ロックを1回でその間に読み書き、です。
(976はそれを理解していなかったからコードを書いた)
これと比べてダミーファイル等の自作ロック処理がどう有用なのか疑問でした。
PearlのCGIでダミーファイルでのロックを見た事あるけど
関数が豊富なPHPでは必要だと思わなかったんだよね。その確認でした。
(今のところまともな反論はないから「必要ない」かな?)

そもそも読み・書きを別のfopen(),flock()で行うのが無駄な処理なのに
そうする人が多いのが不思議。
0986nobodyさん2005/04/29(金) 23:38:02ID:???
>>953
正規表現分からん
かったので調べてバッチリ英字だけ取ってくることに成功しました。
ありがとう。
0987nobodyさんNGNG
PHP+MySQLで
データベースから抽出したデータ
\\5,600を (バックスラッシュは実際は半角

stripslashes(\\5,600) として出力してますが

本当は \5,600 と出力したいとです・・
文字コードはeucです
0988nobodyさん2005/04/30(土) 00:12:29ID:???
>>987
何を言いたいのか分からん。
円マークは、eucなどのマルチバイトの領域では無く、asciiコード(0x20-0x7e)の領域に含まれる。
(正確には、ISO646規格による日本独自の記号。)
eucだろうがjisだろうがsjisだろうが、\を出力するには(相手がうまく表示する事を期待して)0x5cを使うしか選択肢が無い。
0989nobodyさん2005/04/30(土) 00:15:59ID:???
実体参照で ¥ という選択肢はなかったことにしたいのですね。
0990nobodyさん2005/04/30(土) 00:50:31ID:???
>>982
if文で囲ってるけど、@演算子使わんの?
0991nobodyさんNGNG
>>988
よくわからなくてすいません・・

要は、 /(バックスラッシュのつもり)を \ か¥で出力したいんです
レス数が950を超えています。1000を超えると書き込みができなくなります。