【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を見よう。
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を再起動する。
そういうスクリプトを書くべし。
で、答えは?
0803nobodyさん
02/08/29 06:27ID:???いや、Win版で頼む。
UNIX版だとそーいうスクリプト(Perl)が多いな。
Win版Apacheでそういうのは見かけないのう。
0804nobodyさん
02/08/29 06:30ID:???んで、予定されたタスクでこれを15分間隔で実行。
fopenした時、unkoと言う文字列があればなにもしない。
unkoと言う文字列が取得出来ない場合、execでアパッチを停止、起動させる。
これで解決じゃん。
0805nobodyさん
02/08/29 14:49ID:???0806nobodyさん
02/08/29 17:39ID:???こんな使い方は(;´Д`)
Apache 落ちてても PHP は使えるだろ。
モジュールとしては使えないが・・・
/sapi/cliをコンパイルして
cronで15分毎に実行。
$sock = fsockopen("localhost",80, $errno, $errstr);
でsockがfalseだったら/usr/local/apache/bin/apachectl restartを実行
もしもっと確実に監視したいならHEAD / HTTP/1.0でも送信すればよろし
0810nobodyさん
02/08/30 06:14ID:???fsockopenならWin版PHPでも使えるね。
>もしもっと確実に監視したいならHEAD / HTTP/1.0でも送信すればよろし
それはどのようにして送信?
http://jp2.php.net/manual/ja/function.fputs.php
ちなみにWinなら再起動は
C:\Program Files\Apache Group\Apache\Apache.exe -w -n Apache -k restart
0812nobodyさん
02/08/30 13:44ID:IarIlbJG一旦認証して、色々なサービスに認証を引き継ぎたいです。
(シングルサインオンのようなイメージ)
よろしくお願いいたします。
0813nobodyさん
02/08/30 16:03ID:???http://pc.2ch.net/test/read.cgi/php/1030630239/l50
は削除依頼しましたか?
http://qb.2ch.net/saku/index2.html
0814nobodyさん
02/08/30 16:13ID:okP1fGcQの環境でGETは平気なんですがPOSTでデータが受け取れないです。
ようするに↓がちゃんと表示されないです。
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</head>
<body>
<form name="form1" method="post" action="<?print $PHP_SELF;?>" enctype="multipart/form-data">
<input type="text" name="file1"><br>
<input type="submit" name="submit" value="送信"><br>
</form>
<?
if($submit){
print $file1;
}
?>
</body></html>
PHP Version 3.0.9のほかのサーバでは大丈夫だったんですが・・・。
どなたかわかる人がいればお願いします!!!
過去ログを読みましょう。
$submit=$_POST['submit'];
$file1=$_POST['file1'];
0816nobodyさん
02/08/30 18:43ID:okP1fGcQregister_globalsはonで、$_POST["submit"]でやっても動かないって前提っす。
そもそもGETはうけとれます。
もしかしてファイルを受け取ろうとしてる?
0818山師さん
02/08/30 21:20ID:FsiYdmKt0819nobodyさん
02/08/30 22:08ID:???0821nobodyさん
02/08/30 23:47ID:???submitはボタンを押さないとpostされないんじゃないか。
テキストエリアでEnterキーを押して送信したら$submitにはなにも入りませんよ。
たしか...
0822nobodyさん
02/08/31 09:50ID:MUbldWggした方は神と呼ばせていただきますので。
0823nobodyさん
02/08/31 09:58ID:???0824814
02/08/31 11:09ID:McY4kGnjFile送信以前にPOSTがうけとれないんで
まずそれをどうにかしたくて・・・。
>819
ONです。
>821
submitボタン押して送信してます。
0825744
02/08/31 12:30ID:727MmemG遅レスすまそ。一応作ってみたけど、こんな感じでいいかな?
こっちの方がいいとかあったら、アドバイスプリーズ。
while(current($_POST)) {
$key=key($_POST);
$_GET[$POST] = mb_convert_encoding($_POST[$key],"EUC-JP");
next($_POST);
}
0826825
02/08/31 12:31ID:???while(current($_POST)) {
$key=key($_POST);
$_POST[$key] = mb_convert_encoding($_POST[$key],"EUC-JP");
next($_POST);
}
0827746
02/08/31 13:02ID:???ちゃんと処理されるんならそれでええやないの。
以下は未検証だけど、
foreach($_POST as $key => $value){
$_POST[$key] = mb_convert_encoding($_POST[$key],"EUC-JP");
}
で、どぉよ。
少しずつレパートリーを増やしていくしかないわなぁ。
0828746
02/08/31 13:07ID:???$_POST[$key] = mb_convert_encoding($value,"EUC-JP");
の方がいいかも。
0829nobodyさん
02/08/31 15:30ID:???「\」が2バイト目に来る文字列の時におかしくなんねー?
===== cut here =====
<FORM action="<?= $PHP_SELF ?>" method="POST" enctype="multipart/form-data">
<INPUT type="text" name="test" value="機能表示ソフトウェア">
<INPUT type="submit">
</FORM>
<HR>
<PRE>
<?= $_POST['test'] ?>
↓
mb_convert_encoding()
↓
<?= mb_convert_encoding($_POST['test'], 'EUC', 'SJIS') ?>
<HR>
php_version: <?= phpversion() ?>
magic_quotes_gpc: <?= get_magic_quotes_gpc() ?>
</PRE>
===== cut here =====
0830nobodyさん
02/08/31 15:55ID:???> magic_quotes_gpc: <?= get_magic_quotes_gpc() ?>
なんでおかしくなるのか、わかってんじゃねぁかよ。
■ このスレッドは過去ログ倉庫に格納されています