【PHP】質問スレッド Part4
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
02/06/02 15:32ID:f3afNVBG<<参考>>
■本家
http://www.php.net/
■日本 PHP ユーザ会
http://www.php.gr.jp/
■PHP マニュアル
http://www.php.net/manual/ja/
■PEAR マニュアル
http://pear.php.net/manual/ja/
過去スレ, 関連スレは>>2を見よう。
0702nobodyさん
02/08/22 06:24ID:???だから、PerlとPHPとでは、Perlの方がロック処理がしっかりしてるって事なんだよ。
俺はそれが言いたかっただけ。
>>697
日/2万のサイト程度で音を上げるPHPはダメですなぁ、って事。
PerlとPHPでやってるカウント処理は大体一緒なんだけど、PHPはへぼいですなぁ。
>>699
そこまでやらにゃならんのか。めんどいなぁ、PHPは。
Perlなら日/5万のサイトでも飛ぶ確立はPHPよりも格段に低いってのに。
PHPだったら日に10回は飛びそうだね。
アンケート処理でも、Perlの方が飛びにくいし。
DB処理させる程じゃないけどね。
0705nobodyさん
02/08/22 12:18ID:???わかってないなー もう♪ 手マンのほうが、って事。
つまりhotscripts.comもPHPのほうがいっちゃったって事なんだよ。
0706nobodyさん
02/08/22 16:34ID:???0709名無しさん
02/08/22 22:57ID:???なんか変なロック方法してるとしか思えない。
flockが使えない環境なら別だけど。
0710nobodyさん
02/08/22 23:15ID:???0711nobodyさん
02/08/22 23:20ID:???http://www.hotscripts.com みました
スクリプト数 PHPのほが多いですねえ
はー phpかー
perlまだわかってないし・・・ どうしよ
0712nobodyさん
02/08/23 00:09ID:???>PerlとPHPでやってるカウント処理は大体一緒なんだけど、PHPはへぼいですなぁ。
って大体一緒じゃなくて全く一緒にして比べろよ(゚д゚)
702大人気ですな(藁
0713TOPEAK ◆2002ISZo
02/08/23 08:14ID:yUIATWhHfile(thread.at);
とかで読み込むのって
やっぱし負荷大きいですよね・・?
0714TOPEAK ◆2002ISZo
02/08/23 08:34ID:yUIATWhHなるほど・・・
0715662
02/08/23 10:33ID:4aUCdNU7http://pc.2ch.net/php/subject.txt
別ファイル
0716nobodyさん
02/08/23 19:53ID:yUIATWhHスクリプトを書いてるのですが
また質問させてください
指定した行にファイルポインタを移動させようとおもってるのですが
下の関数よりもっと早く,負荷も少なく移動させる方法ってありますでしょうか.
それと下の関数を1つのページで50〜100回ぐらい呼び出すのですが
これってサーバーに対する負荷大きいですか?
//$line_numberで指定した行にファイルポインタを移動させる
function fseek_l($file_pointer,$line_number)
{
rewind($file_pointer);
for($i=0; $i<$line_number-1; $i++) fgets($file_pointer);
}
0718717
02/08/23 23:14ID:???早とちり。スマソ。
0719717
02/08/23 23:22ID:???サイズが大きいファイルをfile関数で全て読み込むのが嫌ならば、
freadで自分の好きな単位ずつ読んで、改行検索すれば
716の関数よりはファイル関連の関数を呼ぶ回数は減らすことができる。
ただし、PHPのファイル関数の内部バッファリングがよく分からないので、
効果があるかどうかは別。気持ちだけの問題なのかもしれない。
0720717
02/08/23 23:28ID:???配列に改行の位置と一行の長さを記憶しておく。
2回目からは、その配列を参照し、fseek→fread
(改行の位置だけ記憶しておき
2回目からは、その配列を参照し、fseek→fgetsでうまくいくかは分かんない)
0721TOPEAK ◆2002ISZo
02/08/23 23:44ID:yUIATWhHううむ
0722TOPEAK ◆2002ISZo
02/08/23 23:50ID:yUIATWhH負荷が高いようなら別の方法でがんばってみよう・・
ありがとうございました.
0723nobodyさん
02/08/24 10:01ID:???別のサーバーにあるjpg画像を取り込みたいんだが、これってどうやるんだい?
0725nobodyさん
02/08/24 14:22ID:???スクリプト内に、print " ";を入れてやるとちゃんとページが表示されるんですが、
それを取るとページが表示できません、となります。
flush();とかやっても意味なかったし、困っています・・・。
0729725
02/08/24 20:19ID:???ぜんぜん知りませんでした。
php.iniの default_mimetype は text/html になってるんですが、
なんでこのような再定義で回避できちゃうんでしょうか?
0730nobodyさん
02/08/25 00:16ID:???これをPHPでやるにはどうすればいいんでしょうか?
実行したいコマンドは e:\utl\ish d:\tmp\hoge.txt /ss です。
0732nobodyさん
02/08/25 09:23ID:KFiWaIrLコマンドラインバージョンも組みこもうとしてmakeしたところ、
/usr/local/src/php-4.2.2/main/main.c:966: undefined reference to `php_startup_sapi_content_types'
/usr/local/src/php-4.2.2/main/main.c:968: undefined reference to `zend_register_stringl_constant'
こういうエラーがズラズラーっと出てインストールできませんでした。
4.0.6と4.2.2の両方のバージョンで試しましたが同じ個所でエラーが出ました。
原因がわかる方いらっしゃいますでしょうか?
configureのオプションはこんな感じです。
--enable-mbstring --enable-mbstr-enc-trans --with-pgsql=/usr/local/pgsql
--enable-track-vars --enable-trans-sid --enable-force-cgi-redirect
いろいろ付け足したり取ったりしてやってるんですが、、、
環境は、RedhatLinux7.1、gcc2.96.81、apache1.3.20 です。
0733732の補足
02/08/25 09:27ID:???ソースレベルの間違いではないと思います。
0735nobodyさん
02/08/25 13:40ID:xbmU3xwwif($flag) { ~~~ }
if(isset($flag)) { ~~~ }
のどっちが正しいの?どっちもちゃんと動くけど、
わざわざissetって書くのも面倒だし。
前者でいいかな?
0736nobodyさん
02/08/25 14:38ID:???$flag=1
で、$flag!=0を知りたいだけなら前者で問題ない。
$flag=0
で、$flag=0を知りたいのなら後者でないと識別がつかない。
0737nobodyさん
02/08/25 14:50ID:???一つのファイル、sort.php(86KB)にいろんな形のスクリプを詰め込むか
分散させてsort1.php(10KB)とかで並び替えをさせるか、どっちがいいんでしょうか。
体感的速度はどっちも変わらない(ような気がする)んですが…。
どなたかご教授下さい。
0738nobodyさん
02/08/25 14:52ID:???>一つのファイル、sort.php(86KB)にいろんな形のスクリプを詰め込むか
一つのファイル、sort.php(86KB)にいろんなパターンに並び替えるスクリプトを詰め込むか
0739nobodyさん
02/08/25 15:04ID:???どちらが正しいかは$flagの扱いによる。
$flagが0または1(0以外)の場合は前者。
$flag自体がある条件の時だけセット(null以外)される場合は後者。
0741nobodyさん
02/08/25 16:49ID:XXk1kvRTはい、make distcleanは行いました。
エラーメッセージに出てくる定義が入っているヘッダファイルは
ソースを見る限りちゃんとインクルードされてるし、
2つのバージョンで同じエラーが出るというのも解せません。
同じ症状に見舞われた方はいらっしゃらないのかな?
もしかして undefined reference 以前に何かエラーが出てるのかな?
makeのエラーってどこかのファイルにまとめて出力されてましたっけ?
linux(unix)はじめてなうえに、cもほとんど使ったこと無いので
そういう基本的な知識もないのが痛いです。
0742nobodyさん
02/08/25 16:49ID:???一気にPOSTの内容をエンコーディングするようなことはできるでしょうか?
0744nobodyさん
02/08/25 23:35ID:???$_POST["title"]=mb_convert_encoding($_POST["title"], "EUC-JP")
とか沢山あるのは何となく嫌なんですよね。仕方がないかなー。
0745nobodyさん
02/08/26 15:23ID:???セッションがPHPSESSID経由なのか
クッキー経由なのか判定したいのですがどうすれば出来るでしょうか?
0748nobodyさん
02/08/26 18:56ID:???0749nobodyさん
02/08/26 19:17ID:ggUoz7FVスレッド毎にテーブルを作成してそこにログを入れることの問題点ってありますか?
スレッドは管理者しか立てられませんが、全部で1000以上あります。
0751nobodyさん
02/08/26 20:14ID:ggUoz7FVどこら辺が問題なんですか?
0752nobodyさん
02/08/26 20:49ID:???問題点は沢山あるけどそれはひとまずおいといて、
実際一つのテーブルに入れてみたら実用に耐えられないほどの
問題が発生したという事なのかな?
まずテーブルを分けようと思うに至った理由を書いてみたら?
0753nobodyさん
02/08/26 21:10ID:???こっちで聞いたら?
PostgreSQL
http://pc.2ch.net/test/read.cgi/php/989375812/l50
0754nobodyさん
02/08/26 21:36ID:???0755nobodyさん
02/08/26 21:37ID:ggUoz7FV1つのカラムに全てログを入れると、ログの追加書き込みがめんどくさいという理由なんですが。
一度全て読み込まなければならないので。
0756750
02/08/26 21:41ID:???テーブルは、できるだけ少ない方がイイに決まってる。
同じ構成のテーブルが千件あるだけで大問題だろう。
と言ってみるテスト
0757nobodyさん
02/08/26 21:43ID:???そのバラバラのテーブルをどうやって管理すんのよ。
テーブル名を管理するテーブルを作るのか?
訳分からんな。
0760nobodyさん
02/08/26 22:01ID:3hDPVfbtProcess java.lang.Runtime.exec (String[] command, String[] envp, File dir)
のように、プログラムを実行する際にプロセスの環境変数を設定する関数があるけど、PHPではそういう関数はないの?
exec ()やproc_open ()を当たってみたけど、それらしい物はないし.
0765nobodyさん
02/08/26 22:52ID:???ってことは、スレッドを管理するテーブルは結局作るわけですね。
757を読むと、スレッドを管理するテーブルすら作らなくてもいいよにと
思えたのでした。作らなくてもいいとはどこにも書いてないけどね。
だから確認したの。煽ってスマソ。
0766757
02/08/26 23:17ID:???スレッドを管理するテーブルを作るとは言ってないよ。
スレッド型掲示板っていっても色々あるから、
制限、表示方式等分からないと何とも言えんな。
0767nobodyさん
02/08/26 23:31ID:???確かに言ってないな。
スレッド毎にテーブルを作るのは論外としても、スレッド管理テーブルと
ログテーブルは別けちゃうよ。
各スレッドのレス数が、多くても数十って程度なら、いっしょにしても
いいか...
0769nobodyさん
02/08/26 23:47ID:???スレッド管理テーブルは、
スレ番号、スレタイ、スレ立て人、timestamp、...
ログテーブルは
スレ番号、本文、timestamp、....
766の言う通り形式によって違うだろうけど、
昔のhypernotes形式なら別でいいかと... ダメっすか?
0770757
02/08/27 00:19ID:???2chのようにスレッド全体に1つのタイトルがあって、
最初に表示されるページがスレッドタイトルの一覧を出すような形式の場合、
>>769
のような形式が考えられるだろう。
しかし、
本文一つ一つにタイトルがあるような場合、
最初に表示されるページをなるべく高速に出したい場合は
工夫が必要になる。
0771nobodyさん
02/08/27 00:36ID:BywL+zC1すごく基本的なことなんですが、1回の処理で複数のテーブルにアクセスすると遅くなったりしないんですか?
0773nobodyさん
02/08/27 09:40ID:29/b2lpR0774nobodyさん
02/08/27 10:52ID:Pwc6QKdg等はsleepしている間、かなりサーバに負荷がかかるんでしょうか?
また、これ以外、何時間後かに動作させるにはどうするいいんでしょうか?
0775nobodyさん
02/08/27 10:52ID:Pwc6QKdgスレ間違えました。。
0776nomony
02/08/27 10:57ID:L02RF0Lh使おうとするとno functionエラー出るし...
0777nobodyさん
02/08/27 11:43ID:/KR5b3gyそんな関数ありません
使えなくて当たり前
0778nobodyさん
02/08/27 13:24ID:ZUROk4Frこれって、法律的にどうなんでしょうね?
単なるリンク張りを自動的に行っている、と見るか
それとも、いわゆる「無断引用」に当たるのか。
//----------------------------------------------------------------
function NewsFromAsahi(){
$URL = "http://www.asahi.com/";
if( ($fp=fopen($URL,"r")) ){
for($phase=0;!feof($fp);){
$str = fgets($fp);
switch( $phase ){
case 0:
if( mb_eregi("<!--\ Start\ of\ Top\ 5\ -->",$str) ){
$HTML = $str; $phase = 1; }
break;
case 1:
$HTML .= $str;
if( mb_eregi("<!--\ End\ of\ Top\ 5\ -->",$str) ) $phase = 2;
case 2: break;
}
}
$HTML = mb_eregi_replace("<img[^>]+>","<li>",$HTML);
$HTML = mb_eregi_replace("<a[ ]+href=\"","<a href=\"".$URL,$HTML);
$HTML = "<dl>\n<dt> News from <a href=\"http://www.asahi.com/\">asahi.com</a>\n<dd>".$HTML."</dl>";
}
return( $HTML );
}
//----------------------------------------------------------------
詳しい人の意見が聞きたいです。
0779778
02/08/27 13:25ID:ZUROk4Fr上の関数は、asahi.comから最新ニュースへのリンクだけを抜き出すものです。
0780nobodyさん
02/08/27 13:40ID:???0781nobodyさん
02/08/27 14:54ID:JlzB8Squこれは動きますか?
0782nomony
02/08/27 16:17ID:L02RF0Lhmb_eregxってmb_ereg()等の事なんですがね...
0784nobodyさん
02/08/27 16:24ID:/KR5b3gyだったら、そう書け ex. mb_ereg(), mb_eregi()等って
4.2.xだったら、php.iniに
extension_dir = (drive letter):\(php_install_dir)\extensions
extension=php_mbstring.dll
を書く
0785nomony
02/08/27 16:29ID:L02RF0Lhそれは書いてある。
mb_ereg()は動かない(未定義関数エラーが出る)が、mb_send_mail()は動く
PHPマニュアルに「実験的なステータス」とある関数がどうやら使えないようなんだよね
0786784
02/08/27 16:48ID:/KR5b3gyスマソ
print_r(get_defined_functions());
に含まれてないね。
--enable-mbregexを省いて作成されているようだ。4.2.2-win版
0787784
02/08/27 16:54ID:/KR5b3gyこっちなら、よさそう
http://www.geocities.jp/rui_hirokawa/php/win/php-4.2.2-Win32-mb-1.0.lzh
0788nobodyさん
02/08/28 00:01ID:???と文字列の コアラ> を取りたいんだけど、どうすればいいの?
stripslashes では取れんのかな? 取り方おしえてください。
0792nobodyさん
02/08/28 01:32ID:rTh+CXwx質問の仕方がオコチャマだって…
0793初心者
02/08/28 03:35ID:ayLaxrUo<? phpinfo ?>
で表示される「Server API」が「CGI」なんですけど、これを
「Apache」と表示させるには(ApacheのモジュールとしてPHP4
を動かすためには)どうすればいいのでしょう?
くだらない質問かもしれませんがどうか教えてください。
よろしくお願いします。
0795nobodyさん
02/08/28 07:59ID:???コアラをパンダに変えるにはどうしたらいいのでしょうか?
0797tekitou ◆NM99TIzo
02/08/28 09:20ID:???0798nobodyさん
02/08/28 09:29ID:???0799nobodyさん
02/08/28 10:12ID:???0800nobodyさん
02/08/28 21:34ID:???Apacheを15分毎に監視し、応答がない等の正常ではない反応があった場合、
Apacheを再起動する。
そういうスクリプトを書くべし。
で、答えは?
■ このスレッドは過去ログ倉庫に格納されています