【PHP】質問スレッドpart17【php】

このエントリーをはてなブックマークに追加
1nobodyさん
・PHP全般の質問スレです。
・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。


■本家
 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-4


抜けているものがあったら補足願います
2nobodyさん:04/05/17 17:16 ID:AT+bUkag
3nobodyさん:04/05/17 17:16 ID:AT+bUkag
・関連サイトなど


2ch Pear Wiki
http://pear.sakura.vg/

PHP Kitchien
http://www.phpkitchen.com/

PHP Developer
http://www.phpdeveloper.org/

phpPatterns
http://phppatterns.com/

Perl/PHP Translation
http://www.cs.wcupa.edu/~rkline/perl2php/
4nobodyさん:04/05/17 17:17 ID:AT+bUkag

・参考スレとか

質問される方は聞く前に調べたほうが良いと思われます。


2ch 総合ガイド
http://www.2ch.net/guide/


CGIに関する質問はこちらで
[CGI: Common Gateway Interface part 11 ]
http://pc5.2ch.net/test/read.cgi/php/1055597189/l50


CGIとPerlの区別がつかない方はこちらも
[△▲ WebProg 初心者の質問 Part8 ▼▽ ]
http://pc5.2ch.net/test/read.cgi/php/1078568723/


※過去ログに行っている場合がありますので、
見れない方は同じような名前の板を探してください
5nobodyさん:04/05/17 21:56 ID:???
PHP5!!
6nobodyさん:04/05/17 22:39 ID:???
>>1
71:04/05/17 22:57 ID:???
  ☆  P  H  P  5  ☆
http://pc2.2ch.net/test/read.cgi/php/1056969979/

Pear
http://pc2.2ch.net/test/read.cgi/php/985665522/

【PHP】Smarty【Template】
http://pc2.2ch.net/test/read.cgi/php/1047225437/

■PHP関連の書籍(但しPHP出版系お断り)
http://pc2.2ch.net/test/read.cgi/php/985315574/


見落とした...。
前スレからのコピペだけどアドレスこれで合ってる??
8nobodyさん:04/05/18 00:01 ID:???
>>7
PHP5のスレ間違ってる
9nobodyさん:04/05/18 04:30 ID:???
最近PHP+MYSQLをはじめたというか、プログラム自体初心者にちかいのですが
require( 'config.php' ); //$db_host user passのデータ
$dname='create'; //データベースname
$dtable = 'test'; // テーブルname
$fname = 'name'; //フィールドname
$data = 'data'; //DATA
$db=mysql_connect($db_host,$db_user,$db_pass)
 or die("error [$db]");
$check=mysql_select_db($dname);
if(! $check){
 print ("{$dname}を作成しました<br>");
 $check=mysql_select_db($dname);
}
$test = mysql_query("SELECT $fname FROM $dtable WHERE name='$data'");
if (!$test){
 mysql_query("CREATE TABLE $dtable ($fname varchar(50) NOT NULL default '')");
 print("テーブル作成<br>");
}else{
 $rows = mysql_num_rows($test);
}
if ($rows <= 0 || !$test){
 mysql_query("INSERT INTO $dtable ($fname) VALUES ('$data');");
 print("レコード作成<br>");
}
mysql_close($db);
てな感じでデータベースが無ければ作成しテーブルやレコードもなければ作成するというのを試しに作ってみたのですが、
望む結果は得られましたがこんな感じでいいのでしょうか?
よい見本などがみあたらず手探りで作ってみたので非常に不安です。
あと、もっと複雑なデータベースを作りたいときに外部のSQLファイルを読み込んで作成とかさせる場合どうしたらいいのでしょうか?
10nobodyさん:04/05/18 06:31 ID:jcKTntda
ショッピングカートを設置しようと思い、
ttp://syokunin.no-ip.org/で配布されてるweb_cart 1.02を落としました。
手順に従って設定して、設置はできたんです。
試しに注文してみたら注文者側には確認メールが届いたんですけど、
こっち(発売側)にはメールが届かないんですよね。。。
よくよく設定ファイルを見てみたら、
メールフロムという箇所しか、メールを設定するとこがないんです。
どうやったら、発売側にメールが届くんでしょうか。。。
どなたか解る方、いらっしゃいましたら、ご教授願います。
11nobodyさん:04/05/18 07:07 ID:???
>>10
それだけの情報で、ここで解決を求めるのは無理。
然るべき場所にサポート情報を求めるか、誰か雇って解決しる。
12nobodyさん:04/05/18 07:11 ID:???
>>9
何を作ってるのか・作りたいのかにもよるけど
一般的にはテーブルはあらかじめ作っておくもの
あなたが何を知りたいのかがよくわからないけど
文章から察するにもうちょっとDBをどうやって扱うか、
どういうものなのかっていうのを調べた方がいいような気がする
13nobodyさん:04/05/18 07:14 ID:???
>>10
ttp://syokunin.no-ip.org/setumei/settei_php.htm
注文者が入力したアドレスと同時に、$mail_fromに設定されている
アドレス(店側)にもほぼ同じメールを送信する仕様っぽい。
その辺はちゃんと設定してあり、かつ受信できるようになってる?


・・・と言うか板違いだ(゚Д゚ )ゴルァ!!
14nobodyさん:04/05/18 07:22 ID:???
早起きしたんで暇つぶしにダウンロードして中を見てみたんだけど、
ぱっと見た感じ $mail_fromに設定すれば動くはずだよ。
同じ場所でTo:違いのメールを2通送信しているので片方が届いていれば鯖のメール設定も問題なさそうだし。
ああ、リロードしたら先に書かれてるよ...鬱だ寝よう...
1510:04/05/18 07:31 ID:jcKTntda
朝から板違いスマソ。。。
サーバーのPHPのバージョンが4みたいなんだけど、
それのせいでしょうか?
$mail_fromの箇所をhotmailに設定してみたんだけど、全然届きません。
ウワァァァァァァヽ(`Д´)ノァァァァァァン!
1610:04/05/18 07:47 ID:???
自己解決しました。
どうやらhotmailのせいでした。。。
プロバイダから割り当てられたメアドで試したところ、
ちゃんとメールが帰ってきました。
板違いすいませんでした。。。
m(_ _)m
>>13 
>>14
ありがとうございました。
17nobodyさん:04/05/18 12:49 ID:???
>>13,14
わざわざ個別アプリケーションの内容まで調べて面倒みてやってるのか、、すげぇな。
189:04/05/18 13:38 ID:???
>>12
何がつくりたかというかというと、遠い道のりですが最終的にはXOOPSとかみたいなかんじで
使う人があまりDB意識せずつかえるものをつくりたいと

まずは初心者らしく
てはじめにカウンターをとおもい、MYSQL使わないものと使ったものを作り
その後ipとusernameとpassword設定しておけば
データベースやテーブル、レコードなどを自動的に作るようなカウンターにしてみたいなと思い
テーブルやレコードなどがあるか?無い場合の作成はどうすればいいのか?
を調べる意味でつくってみましたが
一般的な方法としてはどんな方法があるのかきになりまして。。
19nobodyさん:04/05/18 13:51 ID:???
>18
勉強の一環として試しに作ったのであればいいんだけど
そのソースを発展させて作り上げていくつもりなら
通常のDBアクセスと、DB構築の処理は切り分けておくべき。

一番無難なのはDB周りの処理を1つまたは複数のクラスとしてまとめて、
DB構築部分は、install/install.phpのようなスクリプトにしておく。
あとは初期化時に直接install.phpを手動で開くようにしてもいいし、
index.phpなどからinstall.phpにLocationで飛ばしてもいい。

XOOPS含め大抵の物はこういった手法でやってるよ。
先人が残してくれてるソースコードを参考にしなきゃ損々。
20名無しさん@お腹いっぱい。:04/05/18 14:48 ID:w7i8F8Vx
echo $hoge[$i][1];
echo "$hoge[$i][1]";

上だと値がちゃんと表示されます。
下だとArray[1]表示されてしまいます。
""で囲った形で値を表示するにはどうすりゃよいでしょうか?!
21nobodyさん:04/05/18 14:51 ID:???
echo "{$hoge[$i][1]}";
2220:04/05/18 15:07 ID:???
なるほど。できました。
ありがとうございます。
23nobodyさん:04/05/18 15:12 ID:???
24nobodyさん:04/05/18 21:30 ID:???
PHP(コマンドラインではなくwebアプリとして使用)から
外部コマンドを非同期で呼ぶ方法を教えてください。
時間のかかる夜間バッチを、PHPの画面からボタンをクリックして
起動するようなイメージです。
当然バッチの戻りを待つ必要はありません。

環境
RedHat 9 / PHP 4.3.5 / apache 1.3.29

exec() 等で起動したいコマンドを指定すると、起動したコマンドが終わるまで
PHPが待ってしまいますが、どうやったら待たずに、即座にPHPに処理を戻せますか?

調べたところ、下記のようにコマンドの標準出力を /dev/null にリダイレクト
させるとうまくいきましたが、これしかないのでしょうか?
exec("batch.sh > /dev/null");

下記にも似たようなことが書いてありました。
http://ns1.php.gr.jp/php-jp/archives/msg07476.html
http://www.php.net/manual/ja/function.exec.php

exec("batch.sh &");
ではうまくいきませんでした。
25nobodyさん:04/05/19 00:02 ID:???
htmlがShift-JISに設定してあって
FormからpostでUTF-8の日本語ファイルを選択(ここまでは正常)してsubmitすると$_FILEで取得した日本語ファイル名が空白(NUL)になってしまいます。

なんででしょーか? $_POSTを試してみます。
26nobodyさん:04/05/19 01:42 ID:???
reloadボタンが押されたらインラインフレーム内に$_POST['reload']を渡して再読み込み
させているのですが、再読み込みをするとインラインフレームの中が全画面で表示されてしまいます。
インラインフレームの定義を保持したままでリロードする方法を教えてください。
27nobodyさん:04/05/19 02:01 ID:???
>>25
ファイル名が空白?ちゃんとファイルがPOSTされてるのは確かなの?

>>26
Javascriptでインラインフレーム内のフォームにPOSTさせるとか
28nobodyさん:04/05/19 02:28 ID:???
ファイル名はactionで指定していますが何故でしょう、出来ません。

JavascriptからPHPへの受け渡して経験ないんですが、それにしてみます。

29nobodyさん:04/05/19 09:30 ID:???
target間違えてない?
3025:04/05/19 13:02 ID:???
>>27
ファイル名の最初が日本語だと「日本語」がカットされます。
例 あいうえお.zip

ポストすると
.zip(2000Pro+IE6)
NUL(OSX10.3+IE5.2)
NUL(OSX10.3+サファリ)
あいうえお.zip(OSX10.3+モジラ)
あいうえお.zip(OSX9.2+IE5.1)

などなど

最初はOS9でPHP作ってたから気が付かなかった...
31nobodyさん:04/05/19 14:01 ID:???
すいませんでした。。org

targetてフレーム名でも指定できるんですね。ありがと
32nobodyさん:04/05/19 14:02 ID:OfngxgLc
連想配列から、キーを元に、キーと値を削除するって事は出来るんでしょうか?
33nobodyさん:04/05/19 14:09 ID:???
>>32
unset($array[$key]);
3432:04/05/19 15:49 ID:???
>>33
ありがとうございマス〜
35nobodyさん:04/05/19 16:22 ID:7KZLVZlc
p2をやろうと思いphpを入れました。

入れたパソコンは問題なくp2が動作したのですが
他のパソコンから見ようとするとネットワークパスワードを求められます。
ここが問題なのですが正しいパスワードを入れても認証に失敗します。

環境
windows2000pro / PHP 4.3.5 / IIS5.0

どうすれば他のパソコンから見れるようになるでしょうか?
36nobodyさん:04/05/19 16:36 ID:???
>>35
お ま え は め く ら か

板違いだボケ
37nobodyさん:04/05/19 16:44 ID:7KZLVZlc
>>36
めくらってなんですか?
2ch語?
38nobodyさん:04/05/19 16:45 ID:???
>>35
p2/data/p2_auth_user.phpを一度消して見れ。あと板違い。こういう質問はどこ逝っても嫌われるぞ。
39nobodyさん:04/05/19 16:46 ID:???
>>37
差別用語ですよ
40nobodyさん:04/05/19 16:53 ID:7KZLVZlc
ありがとうございました
以後気をつけます
41nobodyさん:04/05/19 17:30 ID:???
42nobodyさん:04/05/19 17:34 ID:???
よろしくお願いします。

csv形式のテキストから一文字ずつ配列に取ってきているんですが、fgetcsvでエラーが出てしまいます.
print_r ($csv)とすると
2004,記念の,テスト
となり
print "$csv[0]$csv[1]$csv[5]$csv[6]"とすると
20,記
となります。
$data = fgetcsv($csv, 10000, ",");
にするとえらーがでてしまうのですが、どうやったら$dataに","を抜いた形で配列に入れることが
できるんでしょうか?よろしくお願いします。
43nobodyさん:04/05/19 17:50 ID:???
>>42
よし、とりあえずプログラミングよりも日本語を勉強しよう!
44nobodyさん:04/05/19 17:54 ID:???
すいません、わかりづらかったですか・・
45nobodyさん:04/05/19 17:55 ID:???
>>42
そのfgetcsvのときの$csvはファイルポインタなのか?
質問を読む限りそうじゃなさそうだよな...
46nobodyさん:04/05/19 18:23 ID:???
>>45
配列です
47nobodyさん:04/05/19 18:26 ID:???
>>46
恥ずかしげもなくそのレス書く前にマニュアル嫁
48nobodyさん:04/05/19 18:41 ID:???
$data=file(sample.csv);
$lines=count($data)

for($i=0; $i<$lines; $i++){
 mb_ereg_replace(",","",$data[$i]);
}

49nobodyさん:04/05/19 18:41 ID:???
さっぱりわからん
$csvには何が入っているのさ?

質問内容を整理して、マニュアル読んで、ぐぐって、それでもわからんかったら書き込めよ
50nobodyさん:04/05/19 18:43 ID:???
見てきた、正直すまんかた
51nobodyさん:04/05/19 19:32 ID:???
マルチバイト文字列関数が使えないPHPを使用してます。
PHPはApacheのモジュールとして動かしてるのでこのマルチバイト文字列関数を

/usr/lib/pgsrl.so

などのようにコンパイルする事は出来ますか?
PHPをソースコンパイルしろってのはナシで。そうするとApacheのコンパイルもsslやらなんだかんだoption付けないといけんので手間が掛かりすぎるからです。

ぶっちゃけマルチバイト文字列関数が使えるRHL9のrpmさえあればいいんすが...
52nobodyさん:04/05/19 23:14 ID:???
jcode.php使うという手は?
53nobodyさん:04/05/19 23:41 ID:???
jcode.phpは持ってるんだけど、レンタルサーバでPHPを自由に変えられないって環境ならともかく、自鯖なんでPHPをなんとかしたいと思って。

まぁLinux板にも質問してるんだけどw

http://www.teu.ac.jp/chiit/~yuhei/rpms.html
ここから手に入れてrpm -iしてんだけど、入れ替わってくれん...
54nobodyさん:04/05/19 23:47 ID:???
# rpm -Uvh php-4.2.2-17.2.mbsupport.i386.rpm

# rpm -qi php-4.2.2-17.2.mbsupport.i386.rpm
パッケージ php-4.2.2-17.2.mbsupport.i386.rpm はインストールされていません

なんでだ??
55nobodyさん:04/05/20 00:16 ID:???
>>51
PHPをソースから入れるにはApacheもソースから入れなきゃならんと思っているのに、偽造500ウォン
んで、モジュールのみコンパイルしてインストールすることも可能なはずですよ。
56nobodyさん:04/05/20 09:17 ID:???
数字に後ろから3桁おきにに「,」をいれたいのですが
どうすればよいでしょうか?
たとえば「12000」という数字を「12,000」として表示したいです。
57nobodyさん:04/05/20 09:32 ID:???
>>56
number_format()
58nobodyさん:04/05/20 10:19 ID:???
質問する前にマニュアル嫁よ
頼むから
59遅くなって申し訳ない1:04/05/20 10:19 ID:q5E1Ags3
>>8
#亀レススマソ…

  ☆  P  H  P  5  ☆  
http://pc5.2ch.net/test/read.cgi/php/1056969979/

#次スレのテンプレ作成時に指摘ヨロ>>980あたり
60nobodyさん:04/05/20 10:21 ID:???
Σ( ̄д ̄;)! #sage忘れ
61nobodyさん:04/05/20 10:30 ID:???
>>57
サンクス。できました。
62nobodyさん:04/05/20 10:52 ID:WaBVWaFV
PHPは「ペー林家パー子」の逆回転文字列結合で合ってますか?
63nobodyさん:04/05/20 11:33 ID:???
64nobodyさん:04/05/20 12:13 ID:NShBOzWM
PHP普及の原因は、イスラエル・Zend社のマーケティングの成功にある。
@Perlでは別インストールで多くの人が知らないデーターベース利用を標準で使用できるようにし、「データーベースが簡単に取り扱える」というイメージを特に強く植えつけた。
Aウェブサイト作成への特化。例えば、セッション管理がそうだ。
Bソースの隠蔽による著作権保護を可能にした。
データーベースを使いたいが、使い方がわからない。そこに、PHPなら使えるという情報が先に入る。これで、PHPに入った人もかなり多いはず。
PHPの言語仕様はZendに大きく左右される。
二年ほど前、PHPが出始めた頃には、変数のスコープがPerlとまったく同じ仕様だった。
もともと、Perlのソースコードを改編して作成されたPHP。
↓PHPの歴史
http://php.planetmirror.com/manual/ja/history.php
PHPには、Perlコードの退行による高速化の意図が言語のいたるところに見える。
マイクロソフトは、オブジェクト指向への対応というのが大義にVB6.0からVB.NETに言語仕様を大幅に変えた。
今後も大きく言語仕様が変わることはないのか?
オープンソースとは言っても、Zend社の
http://www.zend.com/management.php
の数人のスタップによって大きく左右される。
再帰的定義とされる「PHP:Hypertext Preprocessor」という名前にも理由がある。これは、要するに、正確には、「Perl Hypertext Preprocessor」としたいところだが、GNUの「GNU is Not UNIX」という再帰的な定義をもじったものだ。
要するに、「GPLのフリーソフトのライセンスには違反していませんよ!」と一つには主張し、また、一つには、「PHP is Not Perl」とでも言って、Zendの社としての姿勢を、先人の「Perl開発者たち」から擁護する意図があったのだろう。
Nではなく、Hなのが、そのための味噌だ!Perl開発者たちは、当然、面白くないはずだ。
PHP信奉者は、六芒星(hexagram)マークのユダヤ教にでも、入信せよ!
…といいつつ、かく言う私も、PHPに乗り遅れまいと必死だが…。(^^;)


65nobodyさん:04/05/20 12:23 ID:???
>>51
ぶっちゃけ55氏の指摘に追加で500ラデック

PHPのビルドは、はまると結構掛かるので
ttp://www.softagency.co.jp/mysql/LAMP/download.html#aka9
辺り使っといたら?MySQLサポート外すならSRPMからリビルドね。
66nobodyさん:04/05/20 12:29 ID:???
>>64
まんま信じる馬鹿が多いから、嘘の中に少量の本当を混ぜる技法は止めとけって...
67nobodyさん:04/05/20 14:50 ID:???
PHP4.3.1を使っています。

素人ながらオブジェクト指向なコーディングをするように考えていますが、
なるべく単純で、良いお手本となるソースを公開してるところはありますか?
68nobodyさん:04/05/20 15:00 ID:???
ない
69nobodyさん:04/05/20 15:01 ID:???
javaから入った方がいいと思われる。
70nobodyさん:04/05/20 15:13 ID:???
ためになる用語辞典
めくら:目が見えない人
文盲:字が読めない人
明盲(あきめくら):字は読めるが文章が理解できない人
71nobodyさん:04/05/20 16:24 ID:YWvMGF1q
メールフォームを作っていて、
通常のメール送信はできるのですが
メール送信を行った後、別のページ(例:thanks.html)
へ飛ばしたいのですが、

if (mb_send_mail($To, $MailSubject, $MailMessage, "From:$From")) {
header("Location: thanks.html");
}
else {
echo "$cnf_NgMsg\n";
}

これだと下記のエラーがでます。

Warning: Cannot add header information - headers already sent by (output started at /home/***/***/***/index.php:6) in /home/***/***/***/mail/mail.php on line 140

form/index.php にフォームがあり、form/mail/mail.phpへ引数を渡して、
mail.phpでメールを送信している感じです。

このような場合locationを使うのは不適当なのでしょうか?
7271:04/05/20 16:26 ID:YWvMGF1q
すいません。日本語変でした。

メール自体は送信できるのですが、別ページに飛ばす事ができませんです。。。
7371:04/05/20 16:35 ID:YWvMGF1q
すいません。自己解決しました。

お邪魔しました。。
74nobodyさん:04/05/20 16:44 ID:???
>>67
PEAR
75nobodyさん:04/05/20 18:02 ID:???
( ゚д゚)ぽかーん…>>71-73
76nobodyさん:04/05/20 18:55 ID:???
まぁなんだ、英単語苦手でした、ってことだな。
7767:04/05/20 19:08 ID:???
>>74
いきなりPEARのソースを読めと言われてもちょっと…。
78nobodyさん:04/05/20 19:32 ID:???
>>77
俺、いきなり読んだけど。
79nobodyさん:04/05/20 20:02 ID:???
必要があればいきなりだろうがおいなりだろうが読むわな。
80nobodyさん:04/05/20 21:18 ID:???
strrev関数で2バイト文字を正常に反転させるにはどうすればいいですか?

例えば"あひゃ"を反転させ、"ゃひあ"にしたいんですが
現時点では"痰ミあ"となってしまいます。
81nobodyさん:04/05/20 21:23 ID:???
2バイトごととらないかんわな
82nobodyさん:04/05/20 21:50 ID:???
>>80
そういう関数を作る
83nobodyさん:04/05/20 22:22 ID:???
http://php.s3.to/chat/
ここにある高速チャットを設置すると以下のようなエラーメッセージが出るんですが
どうすればうまく行きますか?

Warning: session_start(): open(/tmp\sess_7bede8e58cf70ade30189aa799a60b24, O_RDWR) failed: No such file or directory (2) in C:\home\chat.php on line 2

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at C:\home\chat.php:2) in C:\home\chat.php on line 2

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at C:\home\chat.php:2) in C:\home\chat.php on line 2

Warning: Unknown(): open(/tmp\sess_7bede8e58cf70ade30189aa799a60b24, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0
84nobodyさん:04/05/20 22:23 ID:???
最近までPerlでプログラムを組んでいたのですが、今回PHPに乗り換えてみました。
Perlの時に動いていたSuexec機能はPHPでは効いていないようで、PHPから作成したファイル・ディレクトリが全てapacheのデフォルトの権限で作成されてしまいます。
なんとかPHPでもSuexec機能を使うことはできませんでしょうか?
環境は
FreeBSD 4.9
Apache 2.0.49+PHP4.3.6+MySQL4+Suexecです。
宜しくお願いします。
85nobodyさん:04/05/20 22:34 ID:???
pearは単なるクラス群だから
いわゆるオブジェクト指向的な
プログラミングの参考には
それほどならないだろう。
86nobodyさん:04/05/20 23:26 ID:???
>>83
c:\tmp フォルダを作ってみる。
87nobodyさん:04/05/20 23:33 ID:???
>>84
cgi版phpにする。
88nobodyさん:04/05/20 23:36 ID:???
>>83
アプリの使い方は、アプリのところ(最も適した場所)で訊きなさい。

>>84
PHPをApacheのDSOとして組み込んじゃなくて、
CGI版のPHPをsuExecと組み合わせる。
今のバージョンのPHPはデフォルトでCLI版はビルドするけど
CGI版はオプションつけてやらないと生成しなくなってた気がする。

ところで"Suexec機能"って何?
その辺で認識違がある気がしないでもない。
89nobodyさん:04/05/20 23:37 ID:???
>>83
アプリの使い方は、アプリのところ(最も適した場所)で訊きなさい。

>>84
PHPをApacheのDSOとして組み込んじゃなくて、
CGI版のPHPをsuExecと組み合わせる。
今のバージョンのPHPはデフォルトでCLI版はビルドするけど
CGI版はオプションつけてやらないと生成しなくなってた気がする。

ところで"Suexec機能"って何?
その辺で認識違がある気がしないでもない。
9089:04/05/20 23:37 ID:???
スマヌ
91vv:04/05/21 02:16 ID:???

レンタル鯖使ってケータイ用サイト作ってます。
が、エンコード方法で困ってます。


やってること:

1 EUCで保存しているテキストファイルを読み込み
2 Shift-Jis変換してEchoで表示させる

ということをしたいのですが

mb_http_output('SJIS');

とかやってもうまくいきません。

なにか別の方法があるのでせうか?
92nobodyさん:04/05/21 04:03 ID:???
>>91
echo mb_convert_encoding($str, "sjis", "euc");
とりあえずこれでやれ
それでなんでうまくいかないかは調べろ
てかマニュアル嫁
9391:04/05/21 05:23 ID:???
>>92
できたよ! 
ムーチャス グラシアス!!


94nobodyさん:04/05/21 13:35 ID:9biQDb7u
お取り込み中のところ申し訳ありません。

サイト閲覧者のブラウザー情報のうち、
表示領域の高さを取得することってできますでしょうか?

わかるかた、おながいします!
95nobodyさん:04/05/21 13:45 ID:???
>>94
PHP関係ないだろ。
JavaScriptスレにでも行けば?
96nobodyさん:04/05/21 13:45 ID:???
まぁ、phpではムリだな。
97nobodyさん:04/05/21 13:50 ID:???
ブラウザの縦の表示領域に依存するサイトなんか見たくないね。
98nobodyさん:04/05/21 13:55 ID:9biQDb7u
やっぱり無理ですか・・・こんなことがわかるくらいだから
分かるのかな。などと、考えていたの私が愚かでした。
java縄で首括ってきます。

ブラウザーの検出方法
ttp://hotwired.goo.ne.jp/webmonkey/review/index82_page2.html
色深度の検出方法
ttp://hotwired.goo.ne.jp/webmonkey/2001/18/index0a.html
99nobodyさん:04/05/21 14:02 ID:???
>>99
PHPで色深度検出ってなんじゃそりゃって思ったら、そういう環境変数を吐くブラウザの話じゃねーか
同じことしたいなら環境変数に「表示領域の高さ」吐くブラウザ作れ
でもってその場合もやっぱり板違い
100nobodyさん:04/05/21 14:04 ID:9YHKUH0F
101nobodyさん:04/05/21 14:12 ID:???
JavaScriptで拾ってPOSTすりゃええやん
板違い
102nobodyさん:04/05/21 14:36 ID:fvdu+npM
初めまして、最近PHPを始めました。参照について教えてください。
「$a = &$b;」と「$a =& $b;」は同じと考えても良いのでしょうか?
また、同じだとすると何故書き方が二通りあるの?
103nobodyさん:04/05/21 14:56 ID:???
>>102

細かいことは気にするな。
構文解析の時点で&$b と& $bは同じ扱いになる。
$a=
&
$b
;
と書いても一緒だ。
104nobodyさん:04/05/21 15:16 ID:???
>>102
動作は同じだけど区別して書いている場合
$a = &$b; は"$bの参照"を渡す
$a =& $b; は"$b"の"参照渡し"
の意味合いを含ませているかも知れん。
105102じゃないけど:04/05/21 15:21 ID:???
>>104
ごめん、意味合いの違いがわかんないw
いやうっすらニュアンスは伝わってくるような気はするんだけど...
微妙だw
106102:04/05/21 15:55 ID:???
>>103-104
回答、ありがとうございます!では気にしないことにします。
書き方が二通りあるからには生成されるコードが違うのかも?
と気になって仕方がありませんでした。
これで心安らかにコーディングできます。

>>104
これは確かに微妙。だけど言いたいことは何となく…
107nobodyさん:04/05/21 17:31 ID:???
参照と言わずにアドレスと言え、知ったかが
108nobodyさん:04/05/21 18:31 ID:???
>>107
PHPはCとは違うので、渡すのはあくまでも
リファレンスであってアドレスではない。
呼び名が違うということだけではなく、
仕組み上でもリファレンス≠アドレスだ。
109nobodyさん:04/05/21 19:37 ID:???
近隣のCDショップ4店舗の価格比較データベースを遊びで作ってます。

disk-idにはCDを見分けるための番号
priceはそのCDの価格。
shopはいずれかのショップ名(A店,B店,C店,D店)
resultは順位

  disk_id | shop_id  |  price | result
--------+---------+-------+--------
D151    | shopC   | 1720  | 4
D151    | shopB   | 1680  | 3
D151    | shopA   | 1620  | 2
D151    | shopD   | 1590  | 1
D152    | shopA   | 2120  | 4
   :
   :
  〜
  〜

続く
110nobodyさん:04/05/21 19:38 ID:???
現状はデータベースからの戻り値を配列として格納して
$disk_id
array([0]=>D151[1]=>D151[2]=>D151[3]=>D151[4]=>D152)

$shop_id
array([0]=>shopC[1]=>shopB[2]=>shopA[3]=>shopD[4]=>shopA)

$result
array([0]=>4[1]=>3[2]=>2[3]=>1[4]=>4)
とこんな感じになっているのですが、これをphpでテーブルに表示する際

+------+------+------+------+------+
| D151 | shopA | shopB | shopC | shopD |
+------+------+------+------+------+
      |   2  |   3  |   1  |   4  |
     +------+------+------+------+
とshopAからDと順に表示するにはどうしたらいいでしょう?アドバイスよろしくお願いします。
111nobodyさん:04/05/21 20:49 ID:???

+------+------+------+------+------+
| D151 | shopA | shopB | shopC | shopD |
+------+------+------+------+------+
      |   2  |   3  |   4  |   1  |
     +------+------+------+------+

こうだ、スンマソ
112nobodyさん:04/05/21 21:15 ID:???
>>110
データベースからの取り出し方が悪いわな。
shop_id順に並べるならそのように取り出すべきでは?

SELECT * FROM table WHERE disk_id='D151' ORDER BY shop_id;
113nobodyさん:04/05/21 21:28 ID:???
おお、なるほど。
もしこれを一覧表示にするとなるとしてもSQL文でなんとかなりますでしょうか?

+------+------+------+------+------+
| D151 | shopA | shopB | shopC | shopD |
+------+------+------+------+------+
      |   2  |   3  |   4  |   1  |
     +------+------+------+------+
| D154 | shopA | shopB | shopC | shopD |
+------+------+------+------+------+

114nobodyさん:04/05/21 22:17 ID:???
>>113
簡単に考えれば、
SELECT * FROM table ORDER BY disk_id,shop_id;
115nobodyさん:04/05/21 22:17 ID:???
なるでしょ。SQL勉強してごらんよ。面白いよ。でもってここphpスレ
116nobodyさん:04/05/21 22:19 ID:???
なるほど、ありがとうございました。
117nobodyさん:04/05/21 22:25 ID:???
最初にAという文字が出てきたときにのみBに置き換えたい(二回目は置き換えない)
のですが、どういう風な記述をすればいいのでしょうか?
ereg_replaceを用いても、うまくできませんでした……。
118nobodyさん:04/05/21 22:32 ID:???
>>117
ereg_replace("A(.*)","B\\1",$str);
119nobodyさん:04/05/22 00:16 ID:???
最初にA
120nobodyさん:04/05/22 00:22 ID:???
なんせ多次元はいれつがそのまんま戻り値で戻ってくるPHPだからな
いろいろ半端だねぇ
121nobodyさん:04/05/22 08:43 ID:???
>>120
くわしくきかせてよ(w
122nobodyさん:04/05/22 09:16 ID:FrQVvRLq
マンモス本改訂版(ttp://www.net-newbie.com/support/pdf2/にpdfファイル有)において、
3.3 クラスライブラリで汎用化のP137〜P143のサンプルプログラムを自環境で実行させたところ、(ソースの含まれるpdf:ttp://www.net-newbie.com/support/pdf2/PHP4_Part-2.pdf)
Warning: pg_num_rows(): supplied argument is not a valid PostgreSQL result resource in /home/hoge/public_html/lib/pgselect.inc on line 33
Warning: pg_num_fields(): supplied argument is not a valid PostgreSQL result resource in /home/hoge/public_html/lib/pgselect.inc on line 34
とエラーがでて動きません。
その前の章(3.2 PHPを使ってテーブル内容を表示する)のライブラリに分けないべたなスクリプトはちゃんと動作したのですが。
だいぶ見直してみましたが、エラーのでる原因が掴めません。
助言頂けませんでしょうか。
debianアンダーでapache2.0.49/PHP4.3.4の環境で動作させています。
よろしくお願いいたします。
123nobodyさん:04/05/22 09:49 ID:???
>>122
pg_num_rowsの引数が有効なリソースじゃないっていうエラー
DBに接続できるてるのは確かなのか?
124nobodyさん:04/05/22 10:26 ID:prWBgoDS
ダウンロードカウンタを設置しようと思って
http://www.csmoon.com/prog/dcnt.html ここにあるサンプルCGIを設置したんだけど
なぜかinternal Server Error が出まくって全然動かない

環境はRed Hat Linux + Apache 2.0.48です
パーミッション、転送法などが原因かな?
だれか教えて!
125nobodyさん:04/05/22 11:07 ID:???
>>124
たいへん申し訳ありませんが、スレ違いです。
それPerl、ここPHP…。
126nobodyさん:04/05/22 12:15 ID:FrQVvRLq
>>122です。
>>123
pg_connectは成功してます。たぶん。。。
>>122であげましたpdfファイルのP134〜P135のスクリプトではpg_num_rowsは動いてます。
多分引数の受け渡しがおかしいような気がするのですが、いろいろやってみてもうまくいかないのです。。。
127nobodyさん:04/05/22 12:31 ID:???
>>126
pg_query()を実行している行と、エラーがでている行をよぉく見比べるか、いっそ晒してみ。
128nobodyさん:04/05/22 12:50 ID:FrQVvRLq
>>122です。
pdfファイルからソースをコピペします。
ちょっと長いですがご容赦ください。

【ex2.php】
1 <html>
2 <head><title>Example 2</title></head>
3 <body>
4 <?php
5 require_once("pgselect.inc");
6
7 $sel = new PgSelect;
8 $sel->doSelect("SELECT day AS 年月日, tenki AS 天気, ondo AS 温度, uryou AS
雨量FROM otenki ORDER BY day");
9 ?>
10 </body>
11 </html>
129nobodyさん:04/05/22 12:51 ID:FrQVvRLq
【def.inc】
<?php
define("DBNAME", "foo"); // データベース名
define("HOST", ""); // ホスト名
define("PORT", ""); // ポート番号
define("USER", ""); // ユーザ名
define("PASSWORD", ""); // パスワード
?>
130nobodyさん:04/05/22 12:52 ID:FrQVvRLq
【pgselect.inc】
1 <?php
2 /*
3 * 検索結果をテーブル形式で表示する
4 */
5 require_once("dbconnect.inc");
6
7 class PgSelect {
8 var $db; // データベース接続ハンドル
9
10 // コンストラクタ
11 function PgSelect() {
12 $this->db = new DbConnect();
13 }
14
15 // テーブル開始タグの印字
16 function printTableHeader() {
17 print("<table border>\n");
18 }
19
20 // 列名の印字
21 function printHeader($i, $str) {
22 print("<th>$str</th>");
23 }
24
25 // データの印字
26 function printData($i, $str) {
27 printf("<td>%s</td>\n",htmlspecialchars($str));
28 }
131nobodyさん:04/05/22 12:52 ID:FrQVvRLq
29
30 // 検索の実行
31 function doSelect($sql) {
32 $result = $this->db->doQuery($sql); // selectを実行
33 $rows = pg_num_rows($result); // 行数を取得
34 $columns = pg_num_fields($result); // 列数を取得
35
36 $this->printTableHeader();
37
38 for ($j = 0;$j < $rows;$j++) {
39 if ($j == 0) {
40 print("<tr>");
41 for ($i = 0;$i < $columns;$i++) {
42 $str = pg_field_name($result,$i); // 列名の取り出し
43 $this->printHeader($i, $str);
44 }
45 print("</tr>\n");
46 }
47 print("<tr>");
48 for ($i = 0;$i < $columns;$i++) {
49 $str = pg_fetch_result($result,$j,$i); // データの取り出し
50 $this->printData($i, $str);
51 }
52 print("</tr>\n");
53 }
54 print("</table>\n");
55 return true;
56 }
57 }
58 ?>
132nobodyさん:04/05/22 12:53 ID:FrQVvRLq
【dbconnect.inc】
1 <?php
2 /*
3 * PostgreSQLデータベースへの接続を行なうクラス
4 */
5 require_once("def.inc");
6
7 class DbConnect {
8 var $dbname = DBNAME; // データベース名
9 var $host = HOST; // ホスト名
10 var $port = PORT; // ポート番号
11 var $user = USER; // ユーザ名
12 var $password = PASSWORD; // パスワード
13 var $con = false; // コネクションハンドル
14
15 function DbConnect() { // コンストラクタ
16 $this->getConnection();
17 }
18
19 // コネクションハンドルを返す
20 function getConnection() {
21 if ($this->con == false) {
22 return($this->doConnect());
23 }
24 return($this->con);
25 }
26
133nobodyさん:04/05/22 12:54 ID:FrQVvRLq
27 function doConnect() {
28 // データベースに接続する
29 $constr = "";
30 if ($this->dbname != "") {
31 $constr .= "dbname={$this->dbname} ";
32 }
33 if ($this->host != "") {
34 $constr .= "host={$this->host} ";
35 }
36 if ($this->port != "") {
37 $constr .= "port={$this->port} ";
38 }
39 if ($this->user != "") {
40 $constr .= "user={$this->user} ";
41 }
42 if ($this->password != "") {
43 $constr .= "password={$this->password} ";
44 }
45
46 @$this->con = pg_connect($constr);
47 if ($this->con == false) {
48 print("データベースに接続できませんでした。理由: $php_errormsg<br>\n");
49 exit;
50 }
51 return($this->con);
52 }
53
134nobodyさん:04/05/22 12:55 ID:FrQVvRLq
54 // データベースとの接続切断
55 function doClose() {
56 if ($this->con != false) {
57 pg_close($this->con);
58 $this->con = false;
59 }
60 }
61
62 // データベースへの問い合わせの実行
63 function doQuery($sql) {
64 if ($this->con == false) {
65 $this->doConnect();
66 }
67 @$result = pg_query($this->$con, $sql); // selectを実行
68 if ($result == false) {
69 printf("SQL($sql)の実行に失敗しました。理由: " . pg_last_error($this->con));
70 return false;
71 }
72 return $result;
73 }
74 }
75 ?>
135nobodyさん:04/05/22 12:59 ID:???
SQLがダメぽ

("SELECT day AS 年月日, tenki AS 天気, ondo AS 温度, uryou AS
雨量FROM otenki ORDER BY day");

雨量とFROMの間にスペースが無い
あとAS 〜でエイリアス名つけるのはいいけど英字にしといた方が無難

136nobodyさん:04/05/22 12:59 ID:???
2レス以上になると、テキストでうpしてくれたほうが遥かに見やすい
これは単なる荒らしにしか見えん
137nobodyさん:04/05/22 13:19 ID:FrQVvRLq
>>122です
>>135
元はそう印刷されてましたが直してます。
そのまま書き込んじゃってすみません。
>>136
すみませんでした。
uk.geocities.com/tdwconvmetwbmxkt/ex2.zip
うpしました。
138nobodyさん:04/05/22 13:35 ID:???
@$result = pg_query($this->$con, $sql);

$this->conでは?
139nobodyさん:04/05/22 13:57 ID:???
キタ━━━━(゚∀゚)━━━━ッ!!
>>138さん、ありがとうございました。
まったく気がつきませんでした。。。
140nobodyさん:04/05/22 14:18 ID:???
>>139
作成中のスクリプトには
error_reporting(E_ALL);
これを最初に入れろ。これだけでエラーはずいぶん探しやすくなる。
上記のならUndefined variable : con とNOTICEエラーが出るし。
141nobodyさん:04/05/22 14:22 ID:???
Noticeエラーoffはよろしくないよ
nullの判定ができなくなる
142141:04/05/22 14:23 ID:???
って、作成中ね
簡単なデバッグ作業として入れろってことか

早とちりスマソ・・・
143nobodyさん:04/05/22 14:28 ID:???
PHPとDBに関しての質問です。DB接続と切断のタイミングですが、

DB接続>処理A>DBからの戻り値をセット>DB切断
 ・
別処理
 ・
DB接続>処理B>DBからの戻り値をセット>DB切断
 ・
別処理
 ・
DB接続>処理C>DBからの戻り値をセット>DB切断

この方法と

DB接続>処理A>DBからの戻り値をセット
 ・
別処理
 ・
DB接続>処理B>DBからの戻り値をセット
 ・
別処理
 ・
DB接続>処理C>DBからの戻り値をセット>DB切断

この場合、どちらがベストなんでしょうか?
144nobodyさん:04/05/22 14:30 ID:???
訂正

上と下の処理の違いで下の処理では

DB接続>処理A>DBからの戻り値をセット
^^^^^^^
これはナシとみなしてください。
145nobodyさん:04/05/22 14:36 ID:???
>144
両方試して時間測ってみろ
何でも人に聞いてばかりだと進歩しねえぞ
146nobodyさん:04/05/22 14:50 ID:???
自分的にはDB接続/切断は出来るだけ控えたいので当然下の処理方法になりますが、

PHPが処理中にユーザがブラウザを閉じて処理を強制的に終了する

これを多用された時、サーバの負担及びDBの安全性はどうなるのか?という疑問が出たから質問したのです。処理速度はダントツに下の方法なのは当たり前です。

ここで質問したかったのは「安全策と処理のバランス」です。
147nobodyさん:04/05/22 14:56 ID:???
phpはスクリプト終了時に自動的にmysqlから切断する

ていうか、スレ違い
148nobodyさん:04/05/22 15:06 ID:???
>>143
一応訊いとくけど、上のパターンも下のパターンも
共にひとつのPHPプロセスに処理がまとまってる前提だよな?

単純にはDBのコネクションにはコスト(PCの何らかの資産を使うということ)
が掛かるから頻繁に接続/切断はしない方が良い。それは接続/切断をしない
作りをするとともに、接続を継続しても支障の無い環境も整備するということ。

PHPでは下のような作りをする必要はまず無いが、システムによっては下の
パターンにならざるを得ないケースもある。145に言うとおり自分の頭で
考えられないときは、自分の手で試すことも重要。他人を余り信用はするな。
149nobodyさん:04/05/22 15:18 ID:???
強制的に終了された時の安全性のためにDBを使うんじゃないのかな
仮に一回の処理毎にPHPレベルで切断しても
処理してる途中に切られる可能性もあるわけで
よっぽどクリティカルなシステムでもない限り
そこまで気にしなくていいんじゃないかと

150nobodyさん:04/05/22 15:21 ID:???
>>146
PHPのプロセスは、HTTPコネクションと連動して動いている訳ではない。
特に切断・終了のタイミングの点で。

データベースのロックの解除処理だけは気をつけろ。
151150:04/05/22 15:25 ID:???
ああ、サーバのHTTPコネクションとは連動してるか。
ユーザがブラウザでアクセスしてる/してないかが
HTTPコネクションとは必ずしも連動してない。
152nobodyさん:04/05/22 15:33 ID:???
>>122です。
>>140さん、>>141さん、ありがとうございます。
勉強になりました。
153茶番 ◆4JCPHWjCgk :04/05/22 22:27 ID:hmZH94bq
PHPを習うのに、わかりやすい、本やWEBサイトを教えてください。
154nobodyさん:04/05/22 22:32 ID:???
155茶番 ◆4JCPHWjCgk :04/05/22 22:38 ID:hmZH94bq
>>154
どうもありがとうございます。
156nobodyさん:04/05/22 23:28 ID:???
>>122で紹介してるの書籍のまるまるpdfでいいですよー
結局買っちゃいましたが。
157Parse error:04/05/22 23:51 ID:???
すいません。該当スレッドとして適切でなければ誘導 オナガイ 致します。

えと、bbsに書き込みした方のサイトを「HP」という字ではなく、
home.gif なんかのアイコンにしようと思い、弄くっております。

// フォーマット
if($url) $url = "<a href=\"http://$url\" target=\"_blank\">".HP."</a>";

となっておりましたので、「HP」の所に
<img src="home.gif" width="11" height="17">
と入れましたら、鯖に解析してやらねぇと言われました・・・ (´Д`;)
ぬーんと思い
<img src=\"cup_ra.gif\" width=\"11\" height=\"17\">
などと斬新な事もしてみましたが、やっぱり鯖に ( ´,_ゝ`)プ と言われ・・・

こんな幼稚園質問で申し訳ありませんが、ご教授頂けないものかとお願いに上がりました。
一々ご面倒とも思いますので、参考場所の手引きでも頂ければ幸いなのですが・・・
宜しくお願いいたします。
158nobodyさん:04/05/22 23:55 ID:???
なんかふざけた聞き方だな。
つまらんネタまじりじゃなくどうやったかズバリ書けばいいだろうが。
159nobodyさん:04/05/22 23:58 ID:???
if($url) $url = "<a href=\"http://$url\" target=\"_blank\"><img src="home.gif" width="11" height="17"></a>";
160nobodyさん:04/05/22 23:58 ID:???
ごめん間違えた。
if($url) $url = "<a href=\"http://$url\" target=\"_blank\"><img src=\"home.gif\" width=\"11\" height=\"17\"></a>";
161Parse error:04/05/23 00:08 ID:???
あ、ありがとうございます!
微妙に惜しい・・・ 座布団半分って感じだったのですね・・・
さっそくやってみます! o(´ω`*) ありがとうございました!

>158
ごめんなさい。 素だった・・・
162nobodyさん:04/05/23 02:35 ID:???
163nobodyさん:04/05/23 03:15 ID:???
>>162
エディタは別にどうでもいいけどそのサイトのデザインがすごく綺麗だな。
164nobodyさん:04/05/23 03:22 ID:XXLnBAc7
チェックの結果は以下のとおりです。
http://fol.axisz.jp/php/ を HTML4.0 Transitional としてチェックしました。
192個のエラーがありました。このHTMLは -161点です。タグが 18種類 257組使われています。文字コードは Shift JIS のようです。
165nobodyさん:04/05/23 03:54 ID:???
lint厨現る。
166nobodyさん:04/05/23 04:51 ID:???
Markup Validation Servicev0.6.6 Skip Navigation
Results
Address: http://fol.axisz.jp/php/
Encoding: shift_jis (detect automatically)
Doctype: HTML 4.0 Transitional (detect automatically)
Errors: 67
http://validator.w3.org/check?uri=http%3A%2F%2Ffol.axisz.jp%2Fphp%2F&charset=shift_jis+%28Japanese%2C+Win%2FMac%29
167nobodyさん:04/05/23 04:56 ID:???
PHPエディタって、どうよ?
http://pc5.2ch.net/test/read.cgi/php/1079460638/
168nobodyさん:04/05/23 05:29 ID:???
ファイルの中身を上から順に読んで条件Aに一致するデータを変数xに格納して表示、
ファイルの中身を上から順に読んで条件Bに一致するデータを変数xに格納して表示、
ファイルの中身を上から順に読んで条件Cに一致するデータを変数xに格納して表示、

と複数回ループさせるのと、

ファイルの中身を上から順に読んで条件Aに一致するデータを変数aに格納、
条件Bに一致するデータを変数bに格納、
条件Cに一致するデータを変数cに格納、
最後に変数を順に表示

と一回のループで一度にやってしまうのとどっちが処理は速いのでしょうか。

ちなみに読み込むファイルは150行程度、条件は10個程度で変数は1条件あたり30個くらい使うのですが・・・
169nobodyさん:04/05/23 06:05 ID:???
>>168
一通りファイルを読む回数が前者だと三回、後者だと一回だから後者の方が速そうだとは思うね。
170nobodyさん:04/05/23 08:52 ID:???
>>168
ベンチ取れば?
microtime()〜1000回くらいループ〜microtime()
171nobodyさん:04/05/23 15:25 ID:???
xemacs で php-mode を使っています。
インデント幅を 2から 4に変更したいんですが、どうすればいいんでしょうか?
pearのコーディング規約とかも 4 にしなさいみたいなこと書いてあったのに
デフォルトはなんで2になってるんだろう。

「emacs php-mode インデント 幅」でググるとなぜか xyzzyの情報ばかり...
172171:04/05/23 15:33 ID:???
http://itbtech.itboost.co.jp/man/php_man/pear.standards.html


(defun php-mode-hook ()
(setq tab-width 4
c-basic-offset 4
c-hanging-comment-ender-p nil
indent-tabs-mode
(not
(and (string-match "/\\(PEAR\\|pear\\)/" (buffer-file-name))
(string-match "\.php$" (buffer-file-name))))))


って書いてあるけど、これって書き方の例だよね?
これをそのまま .xemacs.el に書いてもダメだた。
173nobodyさん:04/05/23 16:56 ID:???
>172
PHPに関連してるようでスレ違いじゃねえか?
なぜemacsスレで聞かない?
174nobodyさん:04/05/23 19:03 ID:???
175nobodyさん:04/05/23 20:13 ID:???
データベースから順位1〜4($res)と、その順位を取った回数($count)を配列として受けています。

1位〜4位まで1回ずつとったモノであれば配列$resにも1,2,3,4と入るのですが
1位を2回他が2位、3位だとすると配列$resの値が1,2,3となってしまいます。

これが嫌なので配列$resの中に、1から4の中で入っていない数値があった場合に
その順位を$resに、$countに0を入れたいのですが中々うまくゆきません。

どなたかアドバイスお願いします。
何の参考にもなりませんが、スクリプトはこんな感じで書いてしまいました。。

for($i = 1; $i < 5; $i++){
if (in_array($i, $res)== false){
$res[] = $i;
$count[] = 0;
}
}
176nobodyさん:04/05/23 21:05 ID:???
GDをつかってゼロからスクリプト上で
画像を作り、その画像をデータベースに
保存しようとしているのですが、
スクリプト上で作った画像の
バイナリデータの取得方法がわかりません。
現在は一度ファイルに書き出して、
それを読み込んでいますが
なんかむなしさを感じます。
いい方法が在れば教えてください。
177nobodyさん:04/05/23 21:17 ID:???
>>175
順位1〜4と、その順位を取った回数と
"その"というところで関連があるのに
何故2次元配列や順位を添字に使った配列にしないのだ?

現状のやり方だと
>1位を2回他が2位、3位だとすると配列$resの値が
期待する$resは{2,1,1,0}か?

データベースから順位の回数を取得するのはどうやっている?
SQLでcountか?
178nobodyさん:04/05/23 21:41 ID:???
>>175
データベースの使い方がまずいんじゃね?
テーブルとSQLを晒すよろし。
179175:04/05/23 22:52 ID:???
不可能だということがわかりました。
一度ファイルに出力しなきゃだめなのね。。。
180nobodyさん:04/05/23 22:58 ID:???
いた違い 失礼して。

  disk_id | shop_id  |  price | result
--------+---------+-------+--------
D151    | shopC   | 1720  | 4
D151    | shopB   | 1680  | 3
D151    | shopA   | 1620  | 2
D151    | shopD   | 1590  | 1
D152    | shopA   | 2120  | 4

SQLは
select result, count(result) from disk_DB where shop id = shopA group by result;
てかんじです。
181nobodyさん:04/05/23 23:34 ID:???
phpでグラフを作成するライブラリってみなさん何使ってますか?
182nobodyさん:04/05/23 23:45 ID:???
イメタグでパーセント使えばいいじゃん
183nobodyさん:04/05/23 23:48 ID:???
>>176
出力制御関数ってバイナリセーフじゃなかったか?
PHPを使うならやって当然だろうから、既に試しているかも知れんが・・・
ob_start()
(例えば)imagepng($image_res)
ob_get_contents()→DBに登録
ob_end_clean()
とかでできんのかな?

>>179
レス番合ってる?
184nobodyさん:04/05/24 00:05 ID:???
>>180
やっぱり先日の分か。
板違いなので付け加えなかったんだが、そもそもresultをDBに入力するのがおかしい。
priceが変わるとresultも変えなきゃならんので、resultは相関サブクエリで済ますべきだろ。

disk_DB(disk_id,shop_id,price)
SELECT *,(SELECT count(*) AS result FROM disk_DB WHERE disk_id=T1.disk_id AND price<= T1.price) FROM disk_DB AS T1;

で、count値を0にしたい件だが、resultが必ず1から4までどこかにはある。というのであれば、
disk_DB(disk_id,shop_id,price,result) ※SQLが長くなるのでとりあえずresult有りで
SELECT DISTINCT result,COALESCE(T1.cnt,0)AS count FROM disk_DB
 LEFT JOIN (SELECT result,count(result)as cnt FROM disk_id WHERE shop_id='shopA' GROUP BY result)AS T1 USING(result);
こんなん浮かびましたw
>>180の例だけだと
result | count
-----+------
  1 |  0
  2 |  1
  3 |  0
  4 |  1
185184:04/05/24 00:13 ID:???
あ、そうそう。
resultというのがpriceの価格順という意味ならサブクエリで済ますべきと思っているので、
resultが別の意味であるなら、入力(カラム)は必要です。
186_:04/05/24 00:46 ID:???
>>182
( ゚Д゚) ポカーン
そういう事聞いてるんじゃないだろう。

まぁ >>182 は質問の作り方が悪かったな。
PHP-users にでも投げてみたら?
187nobodyさん:04/05/24 00:58 ID:???
>>184

ベリーサンクスコ!あと板違いすいません。

作成当初のスタンスはDBに不足点があってもPHPで補えるだろうなと思っていたんですが、実はDBの設計て
とても重要だったんだということを思い知りました。
184さんの意見を参考にDB設計から見直す必要あり、と感じた今日この頃。

てかSQL文なげーw
188nobodyさん:04/05/24 01:49 ID:XP231UgD
質問です。
「0」を文字として認識させることは出来るのでしょうか?

つまり、
-----
if("0"=="000"){} //これをfalse
if("0"=="0"){} //これをTrue
-----
な感じです。
189nobodyさん:04/05/24 01:53 ID:???
>>188
if("0"==="000"){} //false
if("0"==="0"){}   //true
190nobodyさん:04/05/24 01:56 ID:???
>>188
if("0" === "000")
191nobodyさん:04/05/24 02:01 ID:???
>>189
ありがとうございました。
初歩的な質問でした。
懺悔です。悔い改めるです。
192nobodyさん:04/05/24 02:01 ID:???
>>190さんも、ありがとうです。
193nobodyさん:04/05/24 02:23 ID:???
jj
194nobodyさん:04/05/24 02:45 ID:???
>>181
俺も簡易的にイメタグやテーブル使ったりするな。
テーブルはブラウザで見え方が違うので厄介ではあるが。

JpGraphは色々あって便利なんだけど、
改造しようとソースに手を出すと嵌るので、
欲しいグラフの種類が少なくて固定できる
(値じゃなくて形がね)のなら、自分で作った方が楽。
HotScriptにもいくつか転がってる。
195nobodyさん:04/05/24 19:04 ID:nTbKpLsJ
PDFlibに関する質問です(環境はWinXP+PHP4.3.6)。

PHP4.3.6からPDFlibのバージョンが5.03(PDF 1.4)にアップグレードしていますが、
以前は、
$enc = mb_internal_encoding();
$txt = chr(254).chr(255).mb_convert_encoding("日本語のしおり","UTF-16",$enc);
pdf_add_bookmark($pdf, $txt, 0, 0);

というコードで日本語のしおりが表示できたのですが、PDFlibが新しくなってからは、

Fatal error: PDFlib error: [2602] PDF_add_bookmark: Code page '932' not supported

というエラーで落ちてしまうようになりました。
Dosプロンプトで作成しているので、usモードにして再作成してみましたが、
状況は変わりませんでした。
対処法をご存知の方、ご教授願えませんでしょうか?



196gh:04/05/24 20:17 ID:???
素朴な質問なんですけど、

file_get_contents 関数と
file_put_contents 関数は

読み込み・書き出しの時ファイルロックしているのでしょうか?
197nobodyさん:04/05/24 22:44 ID:XP231UgD
質問です。

配列に項目名が入っています。
-----
$array = array("食べ物", "野菜", "ワイルド系", "キャベツ");
-----
で、これを
-----
$array = array(">食べ物", ">>野菜", ">>>ワイルド系", ">>>>キャベツ");
-----
と、項目名の前に、「>」を"配列番号+1"個付加したいのですが、
どのようにすればいいのでしょう。
198nobodyさん:04/05/24 22:54 ID:???
>>197
項目名の前に、「>」を"配列番号+1"個付加するようなスクリプトを書いてください。
制御構造を使っても、配列関数を使っても、好きな方法で構いません。
199nobodyさん:04/05/24 23:04 ID:???
$arr = array("食べ物", "野菜", "ワイルド系", "キャベツ");
for ( $i=0; $i<count($arr); $i++ ) {
$arr[$i] = str_repeat('>', $i+1).$arr[$i];
}
print_r($arr);
200nobodyさん:04/05/24 23:31 ID:???
>>199さん
ありがとうございます。

>>198さん
str_repeatという存在を知りませんでした。
というか、PHP関数の全てを把握し切れていません。
やはり、覚えるしかないのでしょうか?(そんな気がする)
201nobodyさん:04/05/24 23:39 ID:???
>>200
別に、str_repeat使わずとも簡単に出来るし、
あれだけ整備されたマニュアルが提供されているのだから、
経験積めば意図する関数があるかどうか雰囲気的にわかる。
202nobodyさん:04/05/24 23:41 ID:???
>>201
"経験値は重要"ということですね。
203カポコン:04/05/25 02:21 ID:???
>>199、あーC言語っぽい書き方だね、とてもPHPやってますっていう
スクリプトじゃない。本物ならこう書くだろう。
<?php
$slash = "<";
$str = $slash;
$arr = array("食べ物", "野菜", "ワイルド系", "キャベツ");
foreach($arr as $key => $value):
$arr[$key] = $str.$value;
$str .= $slash;
endforeach;
print_r($arr);
?>
この方がPHPらしくないか?
つーか高速だし分かりやすい。
経験よりも才能。いじょ。
204nobodyさん:04/05/25 02:31 ID:???
おっ珍しくカポコン神が降臨なされたな。

PHPで配列を扱う場合はfor < while <foreach の順で速く動作する。
更に関数を使わず文字列結合の演算のみで処理を終わらせている点。

点数付けると100点満点だわ。
しかも最後に大事なのは才能っていってる部分が
カポコンファンの漏れにはたまらない。

これならstr_repeatがサポートされてないPHP3でも動作する罠、
さすがは神。ところで神様とこのHP最近更新滞ってるから
こんなところでパンピー相手せずに速く更新きぼんして下さい!
205nobodyさん:04/05/25 02:32 ID:???
らしいけど冗長で無駄な書き方しかできない才能乏しいやつに見える
206nobodyさん:04/05/25 02:50 ID:???
負け犬の遠吠えに見えるから無視に限るな。
でもカポコンが頭がいいのはPHP理解した人間になら分かる。
※関数を使うプログラムより関数を使わないプログラムの方が優秀である。
これ定説ね。天才かどうかは微妙だけど。早速HP見てきます。
207nobodyさん:04/05/25 02:55 ID:???
$arr = array('食べ物', '野菜', 'ワイルド系', 'キャベツ');
for($i=0;$i<count($arr);$i++){
$leftarrow.='>';
$arr[$i]=$leftarrow.$arr[$i];
}
print_r($arr);
208カポコン:04/05/25 02:57 ID:???
>>205
はいはい才能乏しいですよ。
じゃー僕以上のスクリプト書いてもらえます?
自分には才能以外の要素は無いんで。

199にアドバイス付け加えるんなら、テストに使うなら
print_rよりvar_dumpを使う事をオススメしとこう!
209207:04/05/25 02:57 ID:???
あっ。右向きに変更したんだった。変数名直すの忘れてたYO
210nobodyさん:04/05/25 03:02 ID:???
仕上がったな・・・。
<?php
$leftarrow = '>';
$str = $leftarrow;
$arr = array("食べ物", "野菜", "ワイルド系", "キャベツ");
foreach($arr as $key => $value):
$arr[$key] = $str.$value;
$str .= $leftarrow;
endforeach;
var_dump($arr);
?>
211207:04/05/25 03:04 ID:???
>>210
俺が悪かったorz
212nobodyさん:04/05/25 03:18 ID:???
>>206
>※関数を使うプログラムより関数を使わないプログラムの方が優秀である。
ここで言う関数とはPHPの関数のこと?
213nobodyさん:04/05/25 03:28 ID:???
PHPで高速かどうかが問われる場面など
ないと断言しておく
214nobodyさん:04/05/25 03:34 ID:???
カポコンが自分を絶賛しているスレはここですか?
215nobodyさん:04/05/25 05:45 ID:???
釣られ杉
質問どうぞ
216nobodyさん:04/05/25 08:39 ID:???
どうみても自演でしょ
反論は要らないんでカボコンさんとやらは巣に戻って下さい
217nobodyさん:04/05/25 09:17 ID:???
放置しろよ。また出てくるだろ。
218404.HDML ◆StMXML.EXE :04/05/25 09:19 ID:???
>>204
>PHPで配列を扱う場合はfor < while <foreach の順で速く動作する。

これってマジですか?
219nobodyさん:04/05/25 09:47 ID:???
forは処理前に初期化、ループ時に条件判定・前処理
whileはループ時に条件判定
foreachはループ時に要素内のポインタ移動

下に行く程ループ時の処理が軽いって事じゃねーの?
220404.HDML ◆StMXML.EXE :04/05/25 10:00 ID:???
>>219
成程、そういう事なのですね。今までwhile優先で時々for、という感じでこの2点のみを
使ってて、正味foreachの存在自体を忘れてました。。
221nobodyさん:04/05/25 11:06 ID:???
配列を処理するときはforeachが有用とマニュアルにも書いてあったと思うがな。
つーか、連想配列の場合だとforeachを使わんと何かと面倒じゃね。
222nobodyさん:04/05/25 11:30 ID:???
俺forループばっか使ってたよ
223nobodyさん:04/05/25 11:32 ID:???
誰かc-boardのPHP版作ってる人って居るの
224nobodyさん:04/05/25 11:33 ID:???
自分しか弄らないスクリプトなら自分の見やすい(書きやすい)書き方でいいんじゃね?
俺はCからプログラミング覚えたからfor使ってる。
225404.HDML ◆StMXML.EXE :04/05/25 11:55 ID:???
>>221
while(list($name,$value) = each($array));

当方、いつもこんな書き方ばかりしてたんですよ。
whileに較べてforは遅い、とだけ小耳に入れた時に「じゃぁforeachも遅いのかな?」と
勝手に思い込んでいた節が有りまして。
226nobodyさん:04/05/25 12:06 ID:???
Cっぽい書き方でもいいんじゃない?
俺はCの標準関数っぽいのが揃ってたからPHPを使い出したという経緯があるから
Cライクな記述をしてる
227nobodyさん:04/05/25 12:16 ID:???
俺も以前はPHP3でも動くように>>225みたいに書いてた。
今はforeachでやってます。
228nobodyさん:04/05/25 12:19 ID:???
ぶっちゃけどっちでもよいよ
気になるやつはPHPのソース追うなり
ベンチ取るなり気の済むまでやってくれ
重箱の隅穿り返すような論議は他で頼む
229nobodyさん:04/05/25 12:30 ID:???
>>204を読んだとき、一瞬納得しかけたが・・・
ttp://jp.php.net/manual/ja/function.str-repeat.php
確かにstr_repeat()はPHP3では動作せんから、>>203はPHP3でも動くかと思ったけど
ttp://jp.php.net/manual/ja/control-structures.foreach.php


・・・・これ釣(ry
230nobodyさん:04/05/25 12:35 ID:???
>>228
いいじゃねぇかYO
処理速度(効率)やコードの見易さなど、、
十人十色いろいろあって宗教じみた話になるかも知れんが、
他の人のやり方を聞くのも、たまにはあっていい。
231nobodyさん:04/05/25 13:27 ID:???
色んな書き方できるのがPHPだし
複数人が関わる開発じゃなければ自分に合った書き方がベスト
232nobodyさん:04/05/25 14:42 ID:???
foreach は、配列のコピーを作るので一番遅いんじゃなかった?
公式ページのマニュアルかなにかに書いてあったような気がする。
だから俺は for で回してる。
233nobodyさん:04/05/25 14:56 ID:???
foreach文が採用された細かいバージョン(4.3.1みたいな)と
str_repeatが採用された細かいバージョンをキボン。
234nobodyさん:04/05/25 14:56 ID:???
早さとか気になるほどは変わらんだろ
好きに書けばいい
235nobodyさん:04/05/25 14:57 ID:???
>>233
4.0.0
236nobodyさん:04/05/25 15:11 ID:???
>forは処理前に初期化、ループ時に条件判定・前処理
>whileはループ時に条件判定
>foreachはループ時に要素内のポインタ移動
で処理が進むならforeach文の方が速いだろ。
配列扱うのにループのたびに初期化なんてしてたら効率悪すぎ。
237nobodyさん:04/05/25 15:15 ID:???
>>234
試してみると大分違う。

require_once 'Benchmark/Timer.php';
$leftarrow = '>';
$str1 = $str2 = $str3 = $leftarrow;
$arr1 = $arr2 = $arr3 = array();

for ($i = 0; $i < 2000; ++$i) {
  $arr1[] = 'a' . str_pad($i, 5, '0', STR_PAD_LEFT);
  $arr2[] = 'a' . str_pad($i, 5, '0', STR_PAD_LEFT);
  $arr3[] = 'a' . str_pad($i, 5, '0', STR_PAD_LEFT);
}

$timer =& new Benchmark_Timer();
$timer->start();

$timer->setMarker("Benchmark for 'foreach'");
foreach ($arr1 as $key => $value) {
  $arr1[$key] = $str1.$value;
  $str1 .= $leftarrow;
}
$timer->setMarker("Benchmark for 'for'");
$max = count($arr2);
for ($i = 0; $i < $max; ++$i) {
  $arr2[$i] = $str2.$arr2[$i];
  $str2 .= $leftarrow;
}
238nobodyさん:04/05/25 15:15 ID:???
reset($arr3);
$timer->setMarker("Benchmark for 'while--list-each'");
while (list($key, $value) = each($arr3)) {
  $arr3[$key] = $str3.$value;
  $str3 .= $leftarrow;
}
$timer->stop();
echo $timer->getOutput();
結果
--------------------------------------------------------------
marker time index    ex time      perct
--------------------------------------------------------------
Start 1085465264.67439000 -      0.00%
--------------------------------------------------------------
'foreach' 1085465264.67453300 0.00014281272888184 0.01%
--------------------------------------------------------------
'for' 1085465264.70273000 0.028197050094604 2.24%
--------------------------------------------------------------
'while--list-each' 1085465265.05475400 0.35202407836914 27.93%
--------------------------------------------------------------
Stop 1085465265.93488100 0.880126953125 69.82%
--------------------------------------------------------------
total - 1.2604908943176
239nobodyさん:04/05/25 15:19 ID:???
結果
--------------------------------------------------------------
ずれてたので
marker       time index     ex time       perct
--------------------------------------------------------------
Start       1085465264.67439000 -          0.00%
--------------------------------------------------------------
'foreach'     1085465264.67453300 0.00014281272888184 0.01%
--------------------------------------------------------------
'for'       1085465264.70273000 0.028197050094604  2.24%
--------------------------------------------------------------
'while--list-each' 1085465265.05475400 0.35202407836914  27.93%
--------------------------------------------------------------
Stop        1085465265.93488100 0.880126953125   69.82%
--------------------------------------------------------------
total       -          1.2604908943176   100.00%
--------------------------------------------------------------
240nobodyさん:04/05/25 15:22 ID:???
何度もすまん

02.24% foreach
27.93% for
69.82% while(list() = each())

ってことで、10倍以上の差が出る。
241nobodyさん:04/05/25 15:26 ID:???
思ってたよりも明確に差が出てて驚き
242nobodyさん:04/05/25 15:28 ID:???
>>237-239
どっちが速いの?
243nobodyさん:04/05/25 15:28 ID:???
勉強になった
ありがとう
244nobodyさん:04/05/25 15:36 ID:???
$max = count($arr2);
for ($i = 0; $i < $max; ++$i) {
  $arr2[$i] = $str2.$arr2[$i];
  $str2 .= $leftarrow;
}
の部分だけど、>>199はfor文内でcountを使ってたから
もっと遅くなっていただろうな。
245nobodyさん:04/05/25 15:39 ID:???
逆にforを使ったほうが早くなるようなケースってあるだろうか
246nobodyさん:04/05/25 15:45 ID:???
ごめん、数値の見方わかんないんだけどforeachが一番早かったってことだよね
247nobodyさん:04/05/25 15:47 ID:???
perctの%は掛かった時間なのかな

whileやforの条件チェックよりも、foreachの配列チェックの方が早いんだね。
whileはlistかeachのどっちかがボトルネックなのかな
248nobodyさん:04/05/25 15:57 ID:???
単純なコードの2000回のループでもこんだけ差が出るんだな
俺もこれからまめにベンチとってみよう
249nobodyさん:04/05/25 16:03 ID:???
よくわからんけど、コレ置いときますね。
<?php
require_once 'Benchmark/Timer.php';
$timer =& new Benchmark_Timer();
$timer->start();
$timer->setMarker("Benchmark for 'for'");
for ($i=0; $i<10000; $i++)
loop_for();
$timer->setMarker("Benchmark for 'forearch'");
for ($i=0; $i<10000; $i++)
loop_foreach();
$timer->stop();
echo $timer->getOutput();
function loop_for()
{
$arr = array('食べ物', '野菜', 'ワイルド系', 'キャベツ');
for ($i=0; $i<count($arr); $i++)
$arr[$i] = str_repeat('>', $i+1).$arr[$i];
unset($arr);
}
function loop_foreach()
{
$slash = "<";
$str = $slash;
$arr = array("食べ物", "野菜", "ワイルド系", "キャベツ");
foreach($arr as $key => $value):
$arr[$key] = $str.$value;
$str .= $slash;
endforeach;
unset($arr);
}
?>
250nobodyさん:04/05/25 16:11 ID:???
>>240
ウチの結果だと
36.58%
24.29%
39.07%
でforが最速と出たんだがwwww
251nobodyさん:04/05/25 16:18 ID:???
>>247
>※関数を使うプログラムより関数を使わないプログラムの方が優秀である。
一部の香具師によって、否定されていたがある意味正解。
whileはループでは条件判定だけだから
ループ処理では最速なんだろうけど、これが配列になると
キーが関係してくるから結果的に色々な関数を扱わざるおえない。
foreachを使った方がいいって事なんだろう。
whileは、私は代入ぐらいに使おうと思います。
やっぱりfor()は初心者向きだよな。分かりやすいけど。
252nobodyさん:04/05/25 16:19 ID:???
ウチの環境
foreach  0.07%
for     32.69%
while    25.84%

違うねー
253nobodyさん:04/05/25 16:21 ID:???
カポコンファンに転職
254nobodyさん:04/05/25 16:24 ID:???
つーかさ、あれだよ、速さが気になるならPHP選ぶな、と
255nobodyさん:04/05/25 16:27 ID:???
あーC言語っぽい書き方だね、とてもPHPやってますっていう
スクリプトじゃない。本物ならこう書くだろう。
256nobodyさん:04/05/25 16:28 ID:???
経験よりも才能。いじょ。
257nobodyさん:04/05/25 16:28 ID:???
じゃー僕以上のスクリプト書いてもらえます?
自分には才能以外の要素は無いんで。
258nobodyさん:04/05/25 16:30 ID:???
>>252
それ読み方違うっての
32.69% foreach
25.84% for


お前らちゃんと試してから語れよ?
259nobodyさん:04/05/25 16:30 ID:???
horeta(・∀・)!!
260nobodyさん:04/05/25 16:32 ID:???
>>252
総和が100%になってないねー
261nobodyさん:04/05/25 16:35 ID:???
>>260
Stopが含まれてないYO!
シッカリ前文を読め!!
262nobodyさん:04/05/25 16:36 ID:???
本物ならこう書くだろう。
263240:04/05/25 16:38 ID:???
>250

ん、こっちは、
PHP 5.0.0RC3-dev (cli)
で試したんでそのせいだった。

改めて
PHP 4.3.6 (cli)での結果

Benchmark for 'foreach'
33.01%
Benchmark for 'for'
35.14%
Benchmark for 'while--list-each'
31.75%
264nobodyさん:04/05/25 16:40 ID:???
あんまかわんないね
265nobodyさん:04/05/25 16:41 ID:???
                配列    代入  組んでる奴が素人時
PHPユーザー(神レベル) foreach() while()   for()
PHPユーザー(パンピーレベル)while()  while()   while()
でOKでつね。
266nobodyさん:04/05/25 16:50 ID:???
結局カポコンのスクリプトは言う程速くなかったってことでFA?
267nobodyさん:04/05/25 17:00 ID:???
ベンチとってる方々へ。
count() を使うなら、せめて配列をリファレンスで渡してください。
でないとものすごく遅くなるよ。
268nobodyさん:04/05/25 17:04 ID:???
>>267
ループの外なら変わらんだろ
基本がなってないね
269nobodyさん:04/05/25 18:08 ID:???
>>237-238と同じソースにて
Win 2000・PHP 4.3.4・apache 2.0.48 環境で

Benchmark for 'foreach'
38.63%
Benchmark for 'for'
25.19%
Benchmark for 'while--list-each'
36.09%
270nobodyさん:04/05/25 18:17 ID:???
win2000 php4.3.4 anhttpdでPHPを動かしてるんですが
たまにエラーがでてサーバーが落ちてしまいます。
直す方法あるでしょうか。
271nobodyさん:04/05/25 18:25 ID:???
テキストファイルから読み込んだデータをphpで一覧表示しているのですが、
チェックボックスにチェックが入ったもの全てを削除というのがなかなか出来ません。
log.txtの中身
118,ベッカム
119,シェフチェンコ
120,ロナウド

del_info.phpの中
print "<form method=\"POST\" action=\"delete.php\" target=\"index\">";
print "<table border=\"0\">\n";
for ($i = 0; $i < count($id); $i++)
{
print "<tr><td>\n";
print "<input type=\"checkbox\" name=\"check[]\" value=\"$id[$i]\"></input>";
print "</td><td>$id[$i]\n";
print "</td><td>$name[$i]\n";
print "</td></tr>";
}
print "<tr><td><input type=\"submit\" name=\"line_del\" value=\"削除\"></td>";
print "</table></form>\n";

delete.phpにどんなソースを書けばよいでしょうか?
272nobodyさん:04/05/25 18:29 ID:???
log.txt全体を読み込んで一件ずつlog.txtへ書き出す
その際にチェックが入っているレコードを書き出さないようにする
273nobodyさん:04/05/25 18:34 ID:???
早速の返信ありがとうございますが、出来れば削除したいんです
274nobodyさん:04/05/25 18:35 ID:???
ああ、なるほど。そのやり方で削除できますね。
275nobodyさん:04/05/25 18:37 ID:???
>>270
Use the source, Luke!
anhttpdは知らん。バージョンも書いてないし。
276269:04/05/25 18:41 ID:???
色々コード変えてやってみたけど同条件下ではうちの環境だと
foreach≒whileでやっぱりforが一番速い
あとstr_repeatにしてもほぼ変わらないかむしろ速い
>>239の環境が知りたい

>>270
apacheにしようぜ
277nobodyさん:04/05/25 18:46 ID:???
>>275
hello worldとか簡単なやつでもエラー出ます。
エラーメッセージは↓これ。anhttpdのバージョンは1.42kです。

zend timeout window httpd.exe -アプリケーションエラー

"0x001554f4"の命令が"0x001554f4"のメモリを参照しました。
メモリが"read"になることはできませんでした。

>>276
やっぱapacheですかねぇ・・・
278240:04/05/25 18:49 ID:???
>276
>240 みてよ

loop数を5000にして幾度か試すと
for > foreach ≒whileになったよ。こっちでも。
最初のは、php5なんで無視してくれ。

でだ、カポコンの言うことは当てにならんということでFA
279240:04/05/25 18:50 ID:???
違った
>269 みてよ

でした。すまん。
280240:04/05/25 18:51 ID:???
だめだ、
> 263 見てよ

だった。吊ってくる
281nobodyさん:04/05/25 18:57 ID:???
class hoge{
function hoge(){
$this->aa = array("(´д`)");
}
}
$hoge = new hoge();
echo $hoge->aa[0]; <-と言う呼び方は邪道なんでしょうか?
呼び出しようのメソッドを作るか、$aa = $hoge->aa;とやってから呼ぶべきなのでしょうか?
282269:04/05/25 18:57 ID:???
気悪くしないでね
そうするとPHP5はforeachが劇的に変わったのか
それ以外で何らかが変わってそういう結果が出たわけだ
そこが気になったので
283nobodyさん:04/05/25 18:59 ID:???
ワロタ
イキロ
284277:04/05/25 19:27 ID:???
apacheいれたらサクサク動きました
感謝
285nobodyさん:04/05/25 19:32 ID:???
>>281
クラス内の変数にアクセスする場合は、呼び出し用のメソッドを作って参照するのが基本だよ。
286nobodyさん:04/05/25 19:46 ID:???
PHP4は完全にカプセル化できないけど
後々の事考えたらそう覚えた方がいいね
287nobodyさん:04/05/25 19:49 ID:???
クラス使う側からしたら取得したい要素気にしないといけないわけだからな
設計を見直してみるとか
288nobodyさん:04/05/25 19:55 ID:???
MVCで作るのが基本だよ
289nobodyさん:04/05/25 20:07 ID:???
ボケるんだったら振り幅を大きくしろ
中途半端なんだよ
290nobodyさん:04/05/25 20:24 ID:???
レスが多いと思ってたらカポコンの自演とベンチ厨か
C言語って書いてるあたり素人だろ>カポコン

それと、定期的に現れるベンチ厨ウザイから、ベンチスレでも立ててくれ
291nobodyさん:04/05/25 20:50 ID:???
>>290
おまえが立てろ
292267:04/05/25 21:01 ID:???
>268
ループの外でも、計測範囲に入っているなら影響するべ。
もしあなたがでっかい配列を count() に渡しているなら、
今度リファレンスで渡してみ。すごく速くなるから。
293nobodyさん:04/05/25 21:04 ID:???
>>291
ベンチ厨乙
294nobodyさん:04/05/25 21:04 ID:???
>>292
標準語で話してくれませんか?
掲示板に方言使うとかキモ過ぎですよ
恥と思わないのか
295nobodyさん:04/05/25 21:05 ID:RFog7Rov
php使っているサイトで、書き込んでも自分の書き込みがサイトにのこりません。
そこで、自分の書き込みが自分のPCに保存されるようにするにはどうしたらよいでしょうか?
PHPかPerlを使ってプログラムを書かないといけないでしょうか?
P3, 733MHz, 256MB, win 2k pro, IE6です。何方かよろしくお願いします。
296nobodyさん:04/05/25 21:08 ID:???
>>295
(´ω`)??
297267:04/05/25 21:08 ID:???
>268
ループの外でも、計測範囲に入っているなら影響するでしょ。
もしあなたがでっかい配列を count() に渡しているなら、
今度リファレンスで渡してごらん。すごく速くなるから。
298nobodyさん:04/05/25 21:15 ID:???
>>295
( ゚Д゚)??
299nobodyさん:04/05/25 21:18 ID:???
益々盛り上がってまいりました。
300295:04/05/25 21:20 ID:RFog7Rov
はっきりかけば、出会い系サイトで自分の書き込みは相手にいくけど、
自分の書き込みが鯖にのこらないんです。
それで、鯖に残らないなら、自分のPCに保存するということをしたいな、
という意味で書きました。これでお分かりになりました?
301nobodyさん:04/05/25 21:22 ID:???
>>300
メモ帳に書く→Ctrl+Sキーを押す。
やったね、できたね。ヒャッホウ!
302295:04/05/25 21:29 ID:RFog7Rov
>>300
温泉?って表示されるかな?
303nobodyさん:04/05/25 21:30 ID:???
>>302
( ゚Д゚)ポカーン
304295:04/05/25 21:31 ID:RFog7Rov
>>301
さっきは間違えました。ありがdこのサイト教えてあげる。
ttp://www.france.co.jp/bunko/yougo/yougo_y.html
305nobodyさん:04/05/25 21:32 ID:???
>>295
こんなところにいないで出会い系に行ったほうがいいんじゃないかなぁ?

はっきり言えばもう消えろ!
306295:04/05/25 21:34 ID:RFog7Rov
喪前が消えろよ
307nobodyさん:04/05/25 21:37 ID:???
>>300
貴方がそのサイトのスクリプトを弄れるなら、
そういう機能(鯖にログ保存)を実装する、
または実装されたアプリを使う。サイトの作りに
手が出せないのなら、自前でProxyっぽいのを実装する
手もあるが、現実として貴方の取れる方法は、301の示した方法かな。
つまり「書き込む内容を事前にどこかに手動で残しておく」

書き込みの内容がどうも的を射てないように思えるので、自分で何とか
するんじゃなくて、既にできているものを探して利用するという方向で。
308nobodyさん:04/05/25 21:38 ID:ulnj232e
自己IPを表示するphpを教えてください
ホームページに入れたいんです
309nobodyさん:04/05/25 21:40 ID:???
そろそろバカをかまうのやめようぜ。
居付いてしまったらウゼェし。
310nobodyさん:04/05/25 21:43 ID:ulnj232e
いや、リアルで探している訳で
どのphpも付加機能ばっかいらん
311nobodyさん:04/05/25 21:45 ID:???
スルーしろよ
312nobodyさん:04/05/25 21:47 ID:ulnj232e
ここはなんで人が悪いの。。
近所の人としゃべって事も無いのでは…
それよりphp教えて
313nobodyさん:04/05/25 21:52 ID:???
>>312
本買えば?
314nobodyさん:04/05/25 21:53 ID:???
count()にリファレンスを渡す話を初めて聞いたのでちょっと調べてみたんだけど、
マニュアルにもUserContributedNotesにも載ってなくて、ほんとの所はどうなんだろう?
試せばすぐ分かるんだろうけどマンドくせ。

ソースだと関係する所はこれくらいかな。
ext/standart/array.c
 PHP_FUNCTION(count) -> php_count_recursive(zval *array, long mode TSRMLS_DC)
中ではポインタで渡してるだけの気がするんだが。
315nobodyさん:04/05/25 21:54 ID:GONN/rJf
ぐぐってみたんですが、わからなかったので....
mb_encode_mimeheader
ですが、日本語が10文字くらいになると末尾が文字化けしてしまいます。
「こんにちはこんにち(B」
みたいな感じです。
それよりも短い文字列だと文字化けしません。

phpのバージョンは4.3.6です。

よろしくおながいします
316nobodyさん:04/05/25 21:58 ID:???
echo <<< EOM
TEST←定数
EOM;

EOM内で定数を使うことはできるのでしょうか?
317nobodyさん:04/05/25 22:06 ID:???
>>316
できません。
318nobodyさん:04/05/25 22:22 ID:???
>>315
mb_internal_encodingは?
319nobodyさん:04/05/25 22:29 ID:GONN/rJf
>>318
315です。
デフォルトのままです。

コードはSJISで書いているんですが、mb_encode_mimeheaderするまえに
mb_convert_encodingでJISに変換しています。
320カポコン:04/05/25 22:48 ID:???
なかなか面白かったよ。
つーかwin2000でphp語るなよw。
321nobodyさん:04/05/25 23:05 ID:???
>>320
「C言語」なんていってる素人が何言ってるんだか
322nobodyさん:04/05/25 23:13 ID:???
>>321
「D言語」なんて言ってる素人が何言ってるんだか
323カポコン:04/05/25 23:15 ID:???
C語って言えってか?俺はそういうのは嫌なんだよ。
いくら2chでも貴様の数倍偉い人が決めた言葉よ?
好みでいいだろ。それとオツムの良さはまた別物。
あとベンチマークすんのはいいけど、
>>237-239みたいにちゃんとした結果出せないと説得力ねーよ。
なんだよ%,%ってTimerクラス使ってるのにそりゃーねーだろ。
所詮2chのウンコ厨だな、そんなんだからいつまで経っても
3流の領域抜け出せねんだよ。あと試すんならunix系入れて試せ。
 素 人 は お ま え 。
324nobodyさん:04/05/25 23:26 ID:???
>>319
mb_encode_mimeheader使うのにmb_convert_encodingで変換なんかするからだろ。
325nobodyさん:04/05/25 23:37 ID:???
カポコン神襲来
326nobodyさん:04/05/26 00:19 ID:???
カポコンって誰?
327nobodyさん:04/05/26 00:21 ID:VdU4NQov
皆さんにお聞きしたいのですが、PHPの書籍のなかで
GDを詳しく扱った本はありませんでしょうか?
本の中の1つのコンテンツとして扱っていても結構ですので教えて下さい。
あと、GDを説明しているサイトもできればお願いします…。
328nobodyさん:04/05/26 00:28 ID:???
>>326
誰もかまってくれないものだからジサクジエーンで自分を誉め称えるイタいやつ
329nobodyさん:04/05/26 02:01 ID:???
>>328
それはお前の見方だろーが。
330nobodyさん:04/05/26 02:12 ID:???
結局、神叩きして終わりかよ。
331nobodyさん:04/05/26 02:30 ID:???
>>329-330
やあ、カポコン。今夜も来たの? ( ̄ー ̄ )ノ
332nobodyさん:04/05/26 03:31 ID:???
>>327
PHPの書籍でGDの詳しいのねぇ。心当たりはないね。
GDは、今は独自パッチがあたったのがPHPに添付されてるけど
ImageMagickと同様、元々外部のグラフィックライブラリだから
PHP以外での使用方法にも探す範囲を広げた方が良いよ。
333nobodyさん:04/05/26 03:33 ID:???
カポコンって頭叩いた時の音?
334nobodyさん:04/05/26 03:48 ID:???
空っぽだからいい音出すのね。
335nobodyさん:04/05/26 04:08 ID:???
>>334
(σ^Д^)σ うまい!座布団2枚!
336nobodyさん:04/05/26 04:16 ID:???
>>323
プログラミング言語C 或いは C が妥当か。
あとbenchmarkだが他人様のはアテにせず自分でとろうな。

>>326
アホ共がこぞって使う共用のコテハンってところじゃないの?

>>327
無い。
337nobodyさん:04/05/26 08:15 ID:5W/UUmVu
>>324
調べたらphp.iniのほうでデフォルトのエンコーディングがISO-8859-1になってました。
これをEUC-JPに変えて、mb_encode_mimeheaderするまえに文字コードをEUCに変換
させたら、うまくいきましたm(_ _)m
338nobodyさん:04/05/26 09:18 ID:s4ZFO6Pq
evalのなかで関数やメソッドの定義をしたいんだけど、PHPでは無理ですか?
339nobodyさん:04/05/26 09:28 ID:???
できるよ。テストスクリプト書く手間すら惜しいのか?
340nobodyさん:04/05/26 10:16 ID:???
>>336
カポコンは神。
>>337-338
あげるなよ。
341nobodyさん:04/05/26 10:22 ID:???
>>1 age進行でお願いします。
342337:04/05/26 12:24 ID:???
>>338
えっほんとに?

たとえばこういうことがしたいんですが。

class Foo
{
var $_row;
function Foo(&$row) {
$this->row =& $_row;
foreach (array_keys($row) as $key) {
eval("function $key() { return \$this->_row['$key']; }");
}
}
}
$data = array('a' => 1, 'b' => 2);
$foo = new Foo($data);
echo $foo->a();

結果
Fatal error: Call to undefined function: a()

evalにコンテキスト(バインディング)が指定できないから、こういう
のは無理じゃないんですか?
343nobodyさん:04/05/26 12:29 ID:???
なんで最初から詳しく書かないんだろうね
344nobodyさん:04/05/26 12:38 ID:???
正しい質問の仕方
情報は小出しにして分かりにくく、そして肝心なことは書かない。
345nobodyさん:04/05/26 12:50 ID:???
>>344
どっかでそれの長文ver見かけたな。結構おもしろかった覚えがある。
346nobodyさん:04/05/26 12:55 ID:???
function $key()
347nobodyさん:04/05/26 13:11 ID:???
>>346
なぜこれが動くとか思ってしまったんだろうね彼は
348nobodyさん:04/05/26 13:18 ID:???
$var = "a";
eval("
function ".$var."()
{
echo 'hello!';
}
a();
");
a();
349338:04/05/26 13:33 ID:???
>>346,347
二重引用符が見えませんか。

>>348
グローバルなコンテキストの関数ならできるんですね。
知りませんでした。
350338:04/05/26 13:35 ID:???
クラス定義をまるごとevalの中に入れればできるような気がして
きました。でもコードが読みにくいですね。ありがとうございました。
351nobodyさん:04/05/26 15:46 ID:???
>>337
だからmb_encode_mimeheaderそのものが変換を行えるのだから
前もって変換なんていらんって
352nobodyさん:04/05/26 16:59 ID:???
>>323
>C語って言えってか?
C語って何か新しいものか?
普通に考えてC。
まぁ、エンエヌと言うような素人なんだろうなぁ
353nobodyさん:04/05/26 17:05 ID:???
カポコンって、googleで仕入れた情報(大半は間違ってる)を自慢気に語って
さらに自演で自分を持ち上げる糞コテでFA?
354nobodyさん:04/05/26 17:05 ID:???
現在のディレクトリを取得できないですか。

pwdみたいな。
355nobodyさん:04/05/26 17:13 ID:???
自己レス

getcwd()

でできた・・・ゴメンナサイ。ほんとにわかんなかったんだよぉ・・・
356nobodyさん:04/05/26 17:13 ID:fjwOYoWg
357nobodyさん:04/05/26 18:48 ID:???
釣りするときってカポコンを名乗ればいいの?
358nobodyさん:04/05/26 18:52 ID:???
そうだよ
359nobodyさん:04/05/26 19:00 ID:???
カポコンが現れるとカポコンを賞賛するやつも現れる。
カポコンがいないときにはそんなやつはいないのに。
そのこころは?
360nobodyさん:04/05/26 19:08 ID:???
自作自演といいたいのだろうが、
いないときにわざわざ話題を振って賞賛するスレじゃねえだろ。
361nobodyさん:04/05/26 19:28 ID:???
>>237-239
count(&$arr2) にしたら for が一番速くなった。
ついでにこんなの

$arr4 = array_map(create_function('&$item', 'static $str4 = \'\'; $str4 .= \'>\'; return $str4.$item;'), $arr4);

もやってみたが、これがforに次いで速かった。

しかし、

$arr4 = array_map(create_function('&$item', 'global $leftarrow; static $str4 = \'\'; $str4 .= $leftarrow; return $str4.$item;'), $arr4);

にしたら一番遅くなった。うーん、微妙。
362nobodyさん:04/05/26 20:11 ID:???
いいかげんベンチはやめてくれないか
363nobodyさん:04/05/26 20:24 ID:???
俺はベンチネタも参考になるし別に構わんと思うが。

>362
やめろというだけじゃなく、かわりのネタを提供汁
364nobodyさん:04/05/26 20:27 ID:???
>>363
バカか?お前
ここは雑談スレじゃなくて、質問スレ。
常時ネタが必要なスレではない。
スレ違いをわきまえてほしい
365nobodyさん:04/05/26 20:31 ID:???
禿同。なんかラウンジと勘違いしてる香ばしいのが居るな
366カポコン:04/05/26 20:40 ID:???
僕に何か質問はあるかな?
367nobodyさん:04/05/26 20:44 ID:???
('A` )
368カポコン:04/05/26 21:04 ID:???
369nobodyさん:04/05/26 22:05 ID:???
mkdir($dir,0777)

と作っているのに 755 でできてしまいます。
なんででしょうか・・・非常に困っています。
またオーナーも変えたいのですが変えられません。
370nobodyさん:04/05/26 22:18 ID:???
>>369
umask()
371nobodyさん:04/05/26 22:23 ID:???
>364
このfor/while/foreach云々って、
元は質問から始まった話じゃねえのか?
それだったら、あながちスレ違いとは言えねえと思うがな
なんで狭量なやつばっかなんだろね
372nobodyさん:04/05/26 23:00 ID:???
>>370

umask(0);
をしてから実行したらできました!
心より御礼申し上げます。
373nobodyさん:04/05/26 23:07 ID:???
連続誠に申し訳ありません。

chownについてなのですが、当方Apacheの実行ユーザとグループを
apache/apache にしています。
これでapacheユーザが作成したファイルのオーナーをrootにしたいの
ですが、これは不可能でしょうか。



374nobodyさん:04/05/27 00:06 ID:???
>>371
気に入らないなら出て行けや
375nobodyさん:04/05/27 00:07 ID:???
あるディレクトリにphpソース群を配置し、様々なディレクトリにそれらphpのシンボリックリンクを
はって、あたかもそのディレクトリにあるphpソースのように使いたいと思っています。

で、シンボリックリンクを作成するsymlink関数で無事作れたのですが、そのシンボリックリンクに
ブラウザからアクセスしても実行できません。
パーミションは777になっているのにです。

それでsshでサーバに入り、ln -s /templ/hoge.php /aaa/hoge.php とリンクを張ると
ブラウザからも実行できます。
なんででしょう・・・

ちなみに(環境により違うのでしょうが)sshで ls -la すると symlinkで作成したリンクは赤色
ln -s で作成したリンクは青色です。

お願いします。ヒントをください
376カポコン:04/05/27 00:14 ID:???
イエーイ!!僕、カポコンどぇ〜〜〜〜〜す!!!
mp(・∀・)qmチェキッラー!!。
377nobodyさん:04/05/27 00:31 ID:???
>374
自治厨キモッ
378nobodyさん:04/05/27 07:23 ID:XDC/x9QB
使用してるCPUやメモリで変動するってことでいいじゃん。
マターリ憩うぜ
379nobodyさん:04/05/27 08:42 ID:???
まぁ PHP の雑談スレなんて存在しないワケだが。
380nobodyさん:04/05/27 09:54 ID:???
>>373

`chown root.root file.file`;

とかじゃダメなの?
381nobodyさん:04/05/27 15:58 ID:???
>>375
ls -la の結果を自分でよーく見てみるか、
as is で書いてくれると解決しそうなのだが。
382nobodyさん:04/05/27 17:10 ID:???
>>377
誤爆か
383nobodyさん:04/05/27 17:28 ID:fevNX4WH
PHP4.3.4+MySQL4.0.14でサイトを作っているのですが、
ソースコードをSJISで書いていて、DBもSJIS設定で、

SQLを実行するときに
カタカナの「ソ」などの文字が勝手にエスケープされてしまいます。
(エスケープというか「ソ」の後に「ソ\」バックスラッシュが付く)
これが原因で文末に「ソ」が来たりするとSQLが失敗します。
stripslashesは本来エスケープすべき文字も消してしまうので使えません。

Webで調べてみたところphp.iniのmagic_quotes_gqc=OFFに
すると解決するらしいのですが、実際OFFにしてもまだ解決しません。
(phpinfoでOFFになっていることは確認済み)

他に勝手にエスケープされる要因は考えられるでしょうか
よろしくお願いします。

384nobodyさん:04/05/27 17:32 ID:???
だーからSJIS使うなってばよ……
385nobodyさん:04/05/27 18:05 ID:???
どんなSQL回転だ
386nobodyさん:04/05/27 18:15 ID:???
387nobodyさん:04/05/27 18:41 ID:???
>>377=>>386
自演乙
388nobodyさん:04/05/27 18:42 ID:3qJOManL
今からPHPを勉強して覚えたいと思うのですが、何からはじめたらいいかサッパリわかりません。
何を用意して何を最初に学べばいいのでしょうか。
おすすめのサイトや参考書を教えていただけると助かります。
389nobodyさん:04/05/27 18:46 ID:???
>>388
赤マンモス本でも読め
今ならPDFで公開されているから無料で読める
URLは自分で探せ すぐわかる
390nobodyさん:04/05/27 18:48 ID:3qJOManL
>>389
早速検索かけてPDFファイルを見ております。
分かりやすくまとめられており、私でも勉強できそうです。
情報、ありがとうございます。
391nobodyさん:04/05/27 19:53 ID:???
マジだーーー
PHP徹底攻略だよな?
マンモス本ってかなり詳しく書いている上級者向けのじゃん!!(違った?ラクダとはレベル違う?)
それが無料って、すげーな
392383:04/05/27 20:07 ID:???
>>383 自己解決しました。
addslashesを使ってる代わりにmysql_escape_stringを使うと
上手くエスケープしてくれるようです。
やはり仰せの通りSJISで処理させるのは止めたほうがいいですね^ ^;
まあ仕方のないときのケースということで。
393nobodyさん:04/05/27 20:11 ID:???
そもそもSJISで書かなきゃならん事情でもあるの?
PHPを使うなら、出力段階でSJISに変換するのが一番楽だと思うけど
394nobodyさん:04/05/27 20:48 ID:???
>>393
エディタがメモ帳しかないとき(プ
395nobodyさん:04/05/27 22:13 ID:???
http://www.google.com/search?q=javascript%20php%20escape%20urlencode
で検索して、
http://ns1.php.gr.jp/pipermail/php-users/2002-June/008315.html

http://www.broadband-xp.com/hidesource/escape.html
が見つかったのですが、
> urlencode に相当する JavaScriptの escape を使うと、IE 5.5 などでは、
> % で始まる UNICODEに変換してくれるので、PHP の urldecode で処理できない
とありますが、この逆、つまり、
php内部でurlencode()又はrawurlencode()して、その出力結果をWindowsのIEのJavaScript上で
デコードして表示したいのですが、decodeURI()やunescape()を使用しても英字以外は文字化けしてしまいます。
UTF-8にしてphpでurlencode()した後に、JavaScriptへ渡しても、依然、おもったようにいきません。
エンコード後の文字列が%uとuから始まるようにできないのです。
どのようにすればPHP内部でURL EncodeしたものをJavaScriptでデコードすることが可能でしょうか?
396nobodyさん:04/05/27 22:22 ID:???
http://www.google.com/search?q=javascript%20php%20escape%20urlencode
で検索して、
http://ns1.php.gr.jp/pipermail/php-users/2002-June/008315.html

http://www.broadband-xp.com/hidesource/escape.html
が見つかったのですが、
> urlencode に相当する JavaScriptの escape を使うと、IE 5.5 などでは、
> % で始まる UNICODEに変換してくれるので、PHP の urldecode で処理できない
とありますが、この逆、つまり、
php内部でurlencode()又はrawurlencode()して、その出力結果をWindowsのIEのJavaScript上で
デコードして表示したいのですが、decodeURI()やunescape()を使用しても英字以外は文字化けしてしまいます。
UTF-8にしてphpでurlencode()した後に、JavaScriptへ渡しても、依然、おもったようにいきません。
エンコード後の文字列が%uとuから始まるようにできないのです。
どのようにすればPHP内部でURL EncodeしたものをJavaScriptでデコードすることが可能でしょうか?
397nobodyさん:04/05/27 22:15 ID:???
http://www.google.com/search?q=javascript%20php%20escape%20urlencode
で検索して、
http://ns1.php.gr.jp/pipermail/php-users/2002-June/008315.html

http://www.broadband-xp.com/hidesource/escape.html
が見つかったのですが、
> urlencode に相当する JavaScriptの escape を使うと、IE 5.5 などでは、
> % で始まる UNICODEに変換してくれるので、PHP の urldecode で処理できない
とありますが、この逆、つまり、
php内部でurlencode()又はrawurlencode()して、その出力結果をWindowsのIEのJavaScript上で
デコードして表示したいのですが、decodeURI()やunescape()を使用しても英字以外は文字化けしてしまいます。
UTF-8にしてphpでurlencode()した後に、JavaScriptへ渡しても、依然、おもったようにいきません。
エンコード後の文字列が%uとuから始まるようにできないのです。
どのようにすればPHP内部でURL EncodeしたものをJavaScriptでデコードすることが可能でしょうか?
398nobodyさん:04/05/27 22:17 ID:???
http://www.google.com/search?q=javascript%20php%20escape%20urlencode
で検索して、
http://ns1.php.gr.jp/pipermail/php-users/2002-June/008315.html

http://www.broadband-xp.com/hidesource/escape.html
が見つかったのですが、
> urlencode に相当する JavaScriptの escape を使うと、IE 5.5 などでは、
> % で始まる UNICODEに変換してくれるので、PHP の urldecode で処理できない
とありますが、この逆、つまり、
php内部でurlencode()又はrawurlencode()して、その出力結果をWindowsのIEのJavaScript上で
デコードして表示したいのですが、decodeURI()やunescape()を使用しても英字以外は文字化けしてしまいます。
UTF-8にしてphpでurlencode()した後に、JavaScriptへ渡しても、依然、おもったようにいきません。
エンコード後の文字列が%uとuから始まるようにできないのです。
どのようにすればPHP内部でURL EncodeしたものをJavaScriptでデコードすることが可能でしょうか?
399nobodyさん:04/05/27 22:28 ID:???
http://www.google.com/search?q=javascript%20php%20escape%20urlencode
で検索して、
http://ns1.php.gr.jp/pipermail/php-users/2002-June/008315.html

http://www.broadband-xp.com/hidesource/escape.html
が見つかったのですが、
> urlencode に相当する JavaScriptの escape を使うと、IE 5.5 などでは、
> % で始まる UNICODEに変換してくれるので、PHP の urldecode で処理できない
とありますが、この逆、つまり、
php内部でurlencode()又はrawurlencode()して、その出力結果をWindowsのIEのJavaScript上で
デコードして表示したいのですが、decodeURI()やunescape()を使用しても英字以外は文字化けしてしまいます。
UTF-8にしてphpでurlencode()した後に、JavaScriptへ渡しても、依然、おもったようにいきません。
エンコード後の文字列が%uとuから始まるようにできないのです。
どのようにすればPHP内部でURL EncodeしたものをJavaScriptでデコードすることが可能でしょうか?
400nobodyさん:04/05/28 00:04 ID:???
質問です。
自作関数内で獲得した
pg_numrows(resource result)や
pg_フェチ_array(resource result , int row)
はグローバルスコープですか?
401nobodyさん:04/05/28 00:35 ID:???
質問する前にやってみれば分かりそうなモンだが。
というか、やらなくても分かりそうなモンだが。
402nobodyさん:04/05/28 04:29 ID:???
質問です。
wikiを利用しているのですが、ページにアクセスすると、

/?PHPSESSID314df6cb256897323032443

みたいのがつっついて思ったページにいけない時があります。
これをはずす設定をgoogle調べたのですが、

session.use_trans_sid を 0 にすればよいのでしょうか?
global_register をoffにするのでしょうか?

ページを読んでもよく理解できませんでした。
どうすればいいのでしょうか?

サーバは、レンタルサーバです。
403nobodyさん:04/05/28 09:15 ID:???
>>402
トライ&エラーの精神で頑張りましょう。
404nobodyさん:04/05/28 09:21 ID:???
'x'=>'80'

PHP触り始めたばかりなんですが、上のようなものをPHPスクリプトでよく見かけます。
「=>」って矢印の意で使ってるんでしょうか??
405nobodyさん:04/05/28 09:31 ID:???
>>404
配列でね。たぶんそうだね。
406nobodyさん:04/05/28 09:32 ID:???
>>404
http://www.php.net/manual/ja/language.types.array.php

代わりにマニュアル引いてやったからお駄賃に100円くれ
407nobodyさん:04/05/28 15:57 ID:???
phpで、数字を3桁区切りにするにはどうすればよいのでしょうか?
408nobodyさん:04/05/28 16:00 ID:???
409407:04/05/28 16:56 ID:???
>>408
すまそ。phpってそんな便利だったのか・・・
ありがとうございます。
410nobodyさん:04/05/28 17:13 ID:???
>>407
現行スレを検索するくらい、最低限やってくれ
411nobodyさん:04/05/28 17:17 ID:???
一応Google検索とスレ内検索はしたつもりなのですが、
数字の先頭に0を付けて桁揃えする関数はありますか?
1を0001とか。
412nobodyさん:04/05/28 17:24 ID:???
>>411
あります!
413nobodyさん:04/05/28 17:25 ID:???
Google検索とスレ内検索だけぢゃなく、
マニュアル検索もしてくれい
414nobodyさん:04/05/28 17:31 ID:???
>>411
str_pad
415nobodyさん:04/05/28 17:43 ID:???
>>411
sprintf
416nobodyさん:04/05/28 17:49 ID:???
超ウルトライントロドンみたいな状態になってるな
とオッサン丸出しな事を言ってみる
417nobodyさん:04/05/28 18:09 ID:???
http://www.google.com/search?q=javascript%20php%20escape%20urlencode
で検索して、
http://ns1.php.gr.jp/pipermail/php-users/2002-June/008315.html

http://www.broadband-xp.com/hidesource/escape.html
が見つかったのですが、
> urlencode に相当する JavaScriptの escape を使うと、IE 5.5 などでは、
> % で始まる UNICODEに変換してくれるので、PHP の urldecode で処理できない
とありますが、この逆、つまり、
php内部でurlencode()又はrawurlencode()して、その出力結果をWindowsのIEのJavaScript上で
デコードして表示したいのですが、decodeURI()やunescape()を使用しても英字以外は文字化けしてしまいます。
UTF-8にしてphpでurlencode()した後に、JavaScriptへ渡しても、依然、おもったようにいきません。
エンコード後の文字列が%uとuから始まるようにできないのです。
どのようにすればPHP内部でURL EncodeしたものをJavaScriptでデコードすることが可能でしょうか?
(または、互換の形式でもかまいません。phpとJavaScriptで共通して使えるエンコード・デコード関数があれば)
418nobodyさん:04/05/28 18:18 ID:???
>>412-416
ありがとうございます。

関数へぼ自作しちまいましたよ。トホホ。
419nobodyさん:04/05/28 18:55 ID:???
>>417
自分が貼ったリンク先をよく読め
420nobodyさん:04/05/28 19:32 ID:???
答えてください。大変困っています。
http://www.google.com/search?q=javascript%20php%20escape%20urlencode
で検索して、
http://ns1.php.gr.jp/pipermail/php-users/2002-June/008315.html

http://www.broadband-xp.com/hidesource/escape.html
が見つかったのですが、
> urlencode に相当する JavaScriptの escape を使うと、IE 5.5 などでは、
> % で始まる UNICODEに変換してくれるので、PHP の urldecode で処理できない
つとありますが、この逆、つま
り、php内部でurlencode()又はrawurlencode()して、その出力結果をWindowsのIEのJavaScript上
だとデコードして表示したいのですが、decodeURI()やunescape()を使用しても英字以外は文字化けしてしまいます。
よくUTF-8にしてphpでurlencode()した後に、JavaScriptへ渡しても、依然、おもったようにいきません。
つまりエンコード後の文字列が%uとuから始まるようにできないのです。
りどのようにすればPHP内部でURL EncodeしたものをJavaScriptでデコードすることが可能でしょうか?
(または、互換の形式でもかまいません。phpとJavaScriptで共通して使えるエンコード・デコード関数があれば)
421nobodyさん:04/05/28 20:07 ID:???
>>420
縦読み乙
422nobodyさん:04/05/28 20:08 ID:???
423417:04/05/28 22:46 ID:???
あ、
http://www.broadband-xp.com/hidesource/escape.html


//ネットスケープでもIEのescape関数と同じようにunicodeに変換する関数

を再現すればいいじゃん。というわけで、すみませんでした・・・解決です。
をphpで再現すればよいのかw
424417:04/05/28 22:48 ID:???
あ、
http://www.broadband-xp.com/hidesource/escape.html


//ネットスケープでもIEのescape関数と同じようにunicodeに変換する関数

を再現すればいいじゃん。というわけで、すみませんでした・・・解決です。
をphpで再現すればよいのかw
425nobodyさん:04/05/29 09:13 ID:DJKvEK/M
すいません。質問です。

xmlヘッダ(<?xml version="1.0" encoding="UTF-8" ?>)の
version、encoding を取り出したいんだけど、よい方法ありますか?

どなたかご教授お願いします。

426nobodyさん:04/05/29 12:42 ID:???
>>425
正規表現
427nobodyさん:04/05/29 15:49 ID:???
ここは数ある質問スレの中でも結構ひどい部類に入るな
428nobodyさん:04/05/29 15:59 ID:???
PEARのテンプレートを使っているのですが
テンプレート用HTMLの中に書いてある
<? echo "test"; ?>
のようなPHPは実行されないようなのですが
実効するようにはできないのでしょうか?
429nobodyさん:04/05/29 16:06 ID:???
結構っつーか、相当酷いよ
430nobodyさん:04/05/29 16:14 ID:???
>>428
試しにテンプレートを読み込んでそのままブラウザ出力するスクリプト書いてみ?
それと同じ事だよ。
431nobodyさん:04/05/29 17:45 ID:???
> PEARのテンプレート
> PEARのテンプレート
> PEARのテンプレート
> PEARのテンプレート
> PEARのテンプレート
ハァ?
432nobodyさん:04/05/29 18:52 ID:???
433nobodyさん:04/05/29 20:22 ID:???
別にハァするほどでもないと思うが。
意味は通じるし。
434nobodyさん:04/05/29 22:17 ID:???
>>433
じゃあどのテンプレートを使っているか当ててみろよ。
435nobodyさん:04/05/29 23:04 ID:???
>434
ウププ ほんとに言っちゃっていいの?!
436nobodyさん:04/05/29 23:23 ID:???
>>435
もう判ったから言わなくていいよ。
437nobodyさん:04/05/30 01:09 ID:???
テキストファイルの中を配列に読み込んで、文字列を追加するスクリプトを書いているんですが、
テキストファイル中の改行がそのまま文字列として、配列に格納されてしまう為、追加
したい文字列を同じ行に表示させることが出来ません。アドバイスお願いします。

恥ずいですがソースは以下で、環境はエディタがjvimでOSがFreeBSDでPHPは4.2です。

$log = file('log.txt');
for ($i = 0; $i < count($log); $i++)
{
$ex = explode(",", $log[$i]);
if ($ex[0] == $_POST[hoge])
{

ereg_replace ("/(\r\n)|\r|\n/","",$ex[$i]);
$add = ("$log[$i]" . "$a" . "," . "$b" . ",");
}
}
$fp = fopen('log.txt', 'w');
fputs($fp,$add);
fclose($fp);
}
438nobodyさん:04/05/30 02:02 ID:???
>>436 何をしたいのかよくわからないけど
やりたい事がいくつかできてないんじゃない?
ereg_replace ("/(\r\n)|\r|\n/","",$ex[$i]);
$add = ("$log[$i]" . "$a" . "," . "$b" . ",");
}
}
$fp = fopen('log.txt', 'w');
fputs($fp,$add);
fclose($fp);
}

$log[$i] = trim($log[$i]).$a.",".$b.",\n";
}
}
}
$fp = fopen('log.txt', 'w');
fputs($fp,implode("\n", $log));
fclose($fp);
かな?最適なコードじゃないけども
439nobodyさん:04/05/30 02:14 ID:???
ゴメン、>>438ですがレスアンカー間違い。正しくは>>437ですた。
しかも波括弧の数が違うから場所は変えなくてよかた。
激しくすまそ
440 ◆AngelH/kMI :04/05/30 02:54 ID:???
うう。最近見てなかった・・・。


超遅レスで申し訳ないけどPHPでベンチマークなら
http://www.blueshoes.org/en/developer/php_bench/
こういう検証サイトがあります。

参考になるかと。
441nobodyさん:04/05/30 04:31 ID:???
カポコンとこにもあったよ!PHPじゃーないけど重要と思う。

ttp://cgi.f13.aaacafe.ne.jp/~mugen/perlvsphp/page8.htm
442nobodyさん:04/05/30 07:05 ID:???
>>441
いつもの自演乙
443nobodyさん:04/05/30 09:26 ID:wDkFum9g
.htaccessでのphp_flagの設定が許可されていないのですが、
register_globalsをoffにする方法はないでしょうか?
変数の扱いに気をつけているつもりですが不安なので、
できればoffにしたいのですが。
444425:04/05/30 10:08 ID:???
>>426
やはり自分で正規表現書くしかないですか・・・。
Parserで version、encoding を取れるのがあれば、
と思ったのですが。
もし、取れるParserがあったら教えてください。
445nobodyさん:04/05/30 11:14 ID:???
xml_get_option()でとれそう!
とか書いてみる。
446nobodyさん:04/05/30 13:01 ID:???
>>444
versionとencodingだねかんだろ。
正規表現でやればかんたんじゃん。
そんなにたいそうなことか。
447nobodyさん:04/05/30 13:40 ID:???
質問よろしいでしょうか。
phpadminを設置したのですが、
「The configuration file now needs a secret passphrase (blowfish_secret).

というエラーが出ます。
パスやサーバーの設定は何度も確認しましたが、間違いがあったのでしょうか。
どうぞ宜しくお願い致します。
448nobodyさん:04/05/30 13:45 ID:???
スレ違いならすみません。質問なのでageます。
449nobodyさん:04/05/30 13:52 ID:???
>>447
エラーメッセージをお読みになりましたか?
450nobodyさん:04/05/30 13:58 ID:???
>>438

trimで出来ますた。ありがとう
あと確かにやりたいことがいくつも出来てませんですた。
451nobodyさん:04/05/30 18:37 ID:???
>>443
register_globals:PHP_INI_PERDIR/PHP_INI_SYSTEM
方法はない。

自分で小手先でどうにかしようとする前に
管理者になんとかしてもらう/させるべき事項。
452444:04/05/30 21:47 ID:???
>>445,446
分かりました。正規表現でやってみます。
助言ありがとうございました。
453nobodyさん:04/05/30 22:38 ID:???
前回の結果を書き込んだテキストファイルを読み込む場合どうしたら前回の結果を
表示出来る様になりますか?

<?php
$pointer = fopen("rireki.txt","r");
$fileline = fgets($pointer);
fclose($pointer);

if文
$rireki="格納する文字"

$pointer = fopen("rireki.txt","w");
flock($pointer,LOCK_EX);
fputs($pointer,$rireki);
flock($pointer,LOCK_UN);
fclose($pointer);
?>

上のイメージで作りましたがどうもエラーが起きてしまいます。
どこにprint($rireki)をつくればいいのでしょうか?
様々な個所に入れて試してみましたがエラーになりました。しかしif文の後に入れると
今回の結果が表示されてしまいますので困っています。
どなたか教えてください。
454nobodyさん:04/05/30 22:54 ID:???
どうしてエラー文を一緒に書かないのですか
455nobodyさん:04/05/30 22:54 ID:???
>>453
どんなエラーが出たのか晒せ。
あと、if文云々っつーならif文も。
456nobodyさん:04/05/30 23:16 ID:???
>>453
何をしたいのかいまいち判らんが。
普通に前回の内容(1行)が入っている
$filelineを表示すれば良いのでは?

print($fileline);
$rireki="格納する文字"; //終端の;が抜けてたけど?
457453:04/05/30 23:24 ID:???
すいません自己解決できました。よく文を見直してみたらfilelineで表示できる
事に気づきましたwすいませんでした。
あとついでといってはなんですが今アクセスカウンタを作っているのですがセション
をつかってアクセスカウンタの数値を前にアクセスした人がリロードしても増えない
ようにするにはどうしたらいいのですか?
質問君みたいですいません。
458nobodyさん:04/05/30 23:32 ID:???
>>457
質問君つうよりそれ以前の問題。
リロードで増やさないというのは、何をリロードとみなすかによる。
カウンターなんて、腐るほど転がっているから、そのソースを
参考にした方がいいんでね。
459443:04/05/31 00:10 ID:???
>451
やはり無理なのですね。
管理者に相談してみることにします。
ありがとうございました。
460nobodyさん:04/05/31 14:07 ID:2SJTqa7f
新規質問なのであげます

phpが動きません
状況は下記のURLの通りで、<?phpスクリプト?>を解釈してくれません
ttp://www.php.net/manual/ja/faq.installation.php#faq.installation.blankscreen

Linux+Apache1.3 httpd.confには
マッピング、モジュールのロードは記述してあります
おしえてエロイ人
461nobodyさん:04/05/31 14:26 ID:???
その通りの症状ならそこに書いてある通りに対処しろよ
462nobodyさん:04/05/31 14:31 ID:???
字が読めないならテキスト読み上げソフト入れればいいじゃん
463nobodyさん:04/05/31 14:31 ID:???
日本語が分からないなら翻訳ソフト使え
464nobodyさん:04/05/31 15:30 ID:???
>>461
リンクさきにはインストール時の設定とかを
見直せって書いてあるんだけど、変なところが
見つけられないですよ
465nobodyさん:04/05/31 15:49 ID:???
>>464
で、どうしろと?

インストール時の設定(若しくは手順)や環境くらいは説明したら?
このスレのエロイ人はエスパーじゃないんだから。
466nobodyさん:04/05/31 15:50 ID:???
>>464
みんなが言ってることを理解してるのか?
なんべんでも見直せ。
おまいの設定がまずいにきまっとる。
せっていすらできんやつが鯖たてるな
467nobodyさん:04/05/31 15:59 ID:???
Apache再起動しろ。
468nobodyさん:04/05/31 17:11 ID:???
/**********

質問者たちへ

ここで聞いてまともな返事が返ってくると思うな

**********/
469nobodyさん:04/05/31 17:26 ID:???
<br />って

なんで<br>じゃないのさ?
470nobodyさん:04/05/31 17:36 ID:???
nl2brの話かい?
HTMLで<br />と書いて困ることはないが、XHTMLで<br>だと困るからだろ。
471nobodyさん:04/05/31 17:37 ID:???
自サイトからのOUTは簡単にわかるのですがINはどうやってわかるのですか?
index.php?id=aaa みたいにやらない方法ってありますか?
472nobodyさん:04/05/31 17:42 ID:???
おーい、誰か翻訳してくれ
473471:04/05/31 17:49 ID:???
解決しますたw
474nobodyさん:04/05/31 18:19 ID:???
既出だったかもしれないけど、
$str = "ABCDE";

$arr = array('A','B','C','D','E');
に分解する最適な方法を教えてください。
475nobodyさん:04/05/31 18:32 ID:???
$str = "ABCDE";
$arr = array($str{0},$str{1},$str{2},$str{3},$str{4});

はい、次!
476474:04/05/31 18:39 ID:???
dクス。けど、その{}ってどういう仕組みなの?
477464:04/05/31 19:21 ID:???
>>465
漏れが建てた鯖じゃないのよ
色々いじられててよく分からんし
再インスコはできないし。

でもまあ、テキスト読み上げソフトで何とかなったよw
dクス
478nobodyさん:04/05/31 19:40 ID:a1bq18t+
>>474
$arr = explode("",$str);

これでできたら、楽だと思ったことある
479nobodyさん:04/05/31 19:55 ID:???
preg_splitの何が不満?
480nobodyさん:04/05/31 19:56 ID:???
>>478
$arr = preg_split('//', $str);
とか。
問題は、前と後ろに余分な配列が入ることだけど。
array_pop() と array_shift() で外すようにすれば使えるかも。

まあ、今回の場合はこれで十分だと思うけど。

$arr = array();
$len = strlen($str);
for ($i=0; $i<$len; $i++) {
    $arr[] = $str[$i];
}
481nobodyさん:04/05/31 19:58 ID:???
<br>〜</br>でこっからここまで改行って意味わからんから。
482nobodyさん:04/05/31 20:00 ID:???
$str='ABCDEFGHl';
preg_match_all('/./',$str,$match);
print_r($match[0]);

ダメか・・・・
483nobodyさん:04/05/31 20:01 ID:???
>>480
まぬある読めば、PREG_SPLIT_NO_EMPTYと、例まで出して説明してありますが
それでもそんなややこしいことしますか?
484nobodyさん:04/05/31 20:13 ID:???
$str = 'string';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
485nobodyさん:04/05/31 20:40 ID:???
>>481


               何     の     話     だ     ?



486nobodyさん:04/05/31 21:36 ID:LIfE6g2z
$str = "111 222 333"
などスペースで区切られた数字をそれぞれ配列として変数にぶち込みたいのですが
どうすればいいでしょうか
487nobodyさん:04/05/31 21:38 ID:???
>>486
ちょっと上のスレくらい読んでよ
explode()
488nobodyさん:04/05/31 21:40 ID:???
>>487
わざとなんじゃないの?
489nobodyさん:04/05/31 21:44 ID:???
そんなやつにはきついパンチをぶち込んでやれ
490nobodyさん:04/05/31 21:46 ID:Mjcj/gqf
phpで書かれた、
カスタマイズ容易な
ウェブメールプログラムがあれば教えて下さい。
「php ウェブメール」で検索しても
結果が山ほど出てきて絞り込めません。
よろしくお願いします。
491nobodyさん:04/05/31 21:54 ID:???
>>490
板違い

【CGI】こんなCGI探してますver.13
http://pc5.2ch.net/test/read.cgi/hp/1081608108/
492490:04/05/31 21:56 ID:???
>>491
ありがとうございます
そちらで聞いてみます
493nobodyさん:04/05/31 22:48 ID:???
$start = date("Y/m/d H:i");
$end = date("Y/m/d H:i");

$startから$endまでの経過時間を知りたいです。アドバイスよろしくお願いします。
494nobodyさん:04/05/31 22:50 ID:???
それは計算式を教えてくれと言うことか?
なら板違いだぞ。
495nobodyさん:04/05/31 22:51 ID:???
>>493
よほど遅いマシンでなければ間違いなく0秒。
496nobodyさん:04/05/31 22:54 ID:???
>>494

どこにいけばいいっすか?
497nobodyさん:04/05/31 23:25 ID:???
>>470
ありがたう
タグで検索しても引っかからないから助かりました。
498nobodyさん:04/05/31 23:57 ID:???
スクリプトから他スクリプトの結果を取得するにはどのようにすれば良いでしょうか?

http://hoge.hoge/a.php
の内部で
http://hoge.hoge/b.php
の結果を取得して表示したい。
499nobodyさん:04/06/01 00:06 ID:???
>>496
マジレスすると。
http://science3.2ch.net/test/read.cgi/sky/1039275406/1-

マニュアルが読めてない(date関数の意味を理解していない)節
があるので、再度読み直してもわからない場合は語学板。
勘違いだとわかった場合は数学板。未読だった場合は社会学/哲学板など。

>>498
includeとかfopenでhttpストリームを指定して取得する。
500nobodyさん:04/06/01 00:15 ID:???
自作サーバでdebian+PHP4.3.6+Apache2の環境で動かしています。
sessionを使ってみようと思ったのですが、

<?session_start();
if (!session_is_registered('count')) {
session_register("count");
$count = 0;
}
else { $count++; } ?>
<html><body>
<a href='<?php echo $PHP_SELF ."?PHPSESSID=" . $PHPSESSID ?>'>
<?php echo $count ?>
</a>
</body></html>

これだけなのですが、動きません。
エラーは一切でず、$PHPSESSIDは空っぽです。
何が原因だと考えられるでしょうか?

phpinfoでは
Session Support enabled となっており、
コンパイルオプションは以下のみです。
'./configure' '--enable-mbstring' '--enable-mbregex'
'--with-apxs2=/usr/apache2/bin/apxs' '--with-mysql'
よろしくお願いします。
501nobodyさん:04/06/01 00:43 ID:???
<?seesion_start();
これはいいの?
502nobodyさん:04/06/01 00:44 ID:???
$ar = stat('test.php');
echo $a['ctime']; //またはmtime?

Windows上でためしたところ、上記でtest.phpファイルそのものの最終更新時刻がわかりますが、
Unix上では上記スクリプト実行のたびに更新時刻もどんどん変わってしまいます。
これはOSのし様ですか?
503500:04/06/01 00:57 ID:???
>>501さん
<?php
session_start();
とちゃんと書いてます。ごめんなさい。
基本的に文法ミスは無いはずです。
違うサーバではきちんと表示されることがわかりました。
なんででしょう?
# ここに張るのに適当に短くしたつもりが・・・
504nobodyさん:04/06/01 02:02 ID:???
・PHP全般の質問スレです。
・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。
505nobodyさん:04/06/01 03:03 ID:???
>>502
時刻だけならfilemtimeでよくない?
鯖で見てないからどうなるかしらんけど。
506nobodyさん:04/06/01 03:05 ID:???
>>493
文字日付→UNIXタイムに変換する関数がある。
507nobodyさん:04/06/01 04:26 ID:???
>>505
いや、どちらにしてもctime/mtimeの取得方法が
内部で変わるわけではないので、
>Unix上では上記スクリプト実行のたびに更新時刻もどんどん変わってしまいます。
>これはOSの仕様ですか
が、そもそも変な感じ。
508502:04/06/01 04:45 ID:MqX7wJyb
ありがとう。
実行のたびに更新時刻が変わったのは何かの勘違いでした。
509sakky
テンプレート形式にしたくて
$a = "abc<-#email#->cba";
$email = "[email protected]";
$b = ereg_replace("(<\-#)([a-z]+)(#\->)","$\\2",$a);
print($b);
という形式でテストしてみたのですが、置換したところが、$emailと出て、
変数として扱ってくれません。どうしたら変数として扱ってくれる置換が
できるでしょうか?教えてください。お願いします。