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

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

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん04/05/17 17:14ID:AT+bUkag
・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


抜けているものがあったら補足願います
0002nobodyさん04/05/17 17:16ID:AT+bUkag
・過去ログ

Part1 : http://ebi.2ch.net/php/kako/982/982687820.html
Part2 : http://pc.2ch.net/php/kako/1003/10032/1003283567.html
Part3 : http://pc.2ch.net/php/kako/1013/10139/1013919792.html
Part4 : http://pc.2ch.net/php/kako/1022/10229/1022999539.html
Part5 : http://pc.2ch.net/php/kako/1031/10317/1031721334.html
Part6 : http://pc5.2ch.net/php/kako/1038/10389/1038988518.html
Part7 : http://pc5.2ch.net/php/kako/1044/10444/1044478561.html
Part8 : http://pc5.2ch.net/php/kako/1050/10502/1050249148.html
Part9 : http://pc5.2ch.net/php/kako/1057/10579/1057947512.html
Part10: http://pc5.2ch.net/php/kako/1064/10641/1064104114.html
part11: http://pc5.2ch.net/php/kako/1067/10676/1067635640.html
part12: http://pc5.2ch.net/test/read.cgi/php/1070639208/
part13: http://pc5.2ch.net/test/read.cgi/php/1073291978/
part14: http://pc5.2ch.net/test/read.cgi/php/1076163015/
part15: http://pc5.2ch.net/test/read.cgi/php/1078592587/
part16: http://pc5.2ch.net/test/read.cgi/php/1081267619/

※前スレからの引用修正
0003nobodyさん04/05/17 17:16ID: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/
0004nobodyさん04/05/17 17:17ID: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/


※過去ログに行っている場合がありますので、
見れない方は同じような名前の板を探してください
0005nobodyさん04/05/17 21:56ID:???
PHP5!!
0006nobodyさん04/05/17 22:39ID:???
>>1
0007104/05/17 22:57ID:???
  ☆  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/


見落とした...。
前スレからのコピペだけどアドレスこれで合ってる??
0008nobodyさん04/05/18 00:01ID:???
>>7
PHP5のスレ間違ってる
0009nobodyさん04/05/18 04:30ID:???
最近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ファイルを読み込んで作成とかさせる場合どうしたらいいのでしょうか?
0010nobodyさん04/05/18 06:31ID:jcKTntda
ショッピングカートを設置しようと思い、
ttp://syokunin.no-ip.org/で配布されてるweb_cart 1.02を落としました。
手順に従って設定して、設置はできたんです。
試しに注文してみたら注文者側には確認メールが届いたんですけど、
こっち(発売側)にはメールが届かないんですよね。。。
よくよく設定ファイルを見てみたら、
メールフロムという箇所しか、メールを設定するとこがないんです。
どうやったら、発売側にメールが届くんでしょうか。。。
どなたか解る方、いらっしゃいましたら、ご教授願います。
0011nobodyさん04/05/18 07:07ID:???
>>10
それだけの情報で、ここで解決を求めるのは無理。
然るべき場所にサポート情報を求めるか、誰か雇って解決しる。
0012nobodyさん04/05/18 07:11ID:???
>>9
何を作ってるのか・作りたいのかにもよるけど
一般的にはテーブルはあらかじめ作っておくもの
あなたが何を知りたいのかがよくわからないけど
文章から察するにもうちょっとDBをどうやって扱うか、
どういうものなのかっていうのを調べた方がいいような気がする
0013nobodyさん04/05/18 07:14ID:???
>>10
ttp://syokunin.no-ip.org/setumei/settei_php.htm
注文者が入力したアドレスと同時に、$mail_fromに設定されている
アドレス(店側)にもほぼ同じメールを送信する仕様っぽい。
その辺はちゃんと設定してあり、かつ受信できるようになってる?


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

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

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

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

上だと値がちゃんと表示されます。
下だとArray[1]表示されてしまいます。
""で囲った形で値を表示するにはどうすりゃよいでしょうか?!
0021nobodyさん04/05/18 14:51ID:???
echo "{$hoge[$i][1]}";
00222004/05/18 15:07ID:???
なるほど。できました。
ありがとうございます。
0023nobodyさん04/05/18 15:12ID:???
マニュアル読もう
ttp://jp.php.net/manual/ja/language.types.string.php#language.types.string.parsing.complex
0024nobodyさん04/05/18 21:30ID:???
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 &");
ではうまくいきませんでした。
0025nobodyさん04/05/19 00:02ID:???
htmlがShift-JISに設定してあって
FormからpostでUTF-8の日本語ファイルを選択(ここまでは正常)してsubmitすると$_FILEで取得した日本語ファイル名が空白(NUL)になってしまいます。

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

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

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

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

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

などなど

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

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

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

環境
windows2000pro / PHP 4.3.5 / IIS5.0

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

板違いだボケ
0037nobodyさん04/05/19 16:44ID:7KZLVZlc
>>36
めくらってなんですか?
2ch語?
0038nobodyさん04/05/19 16:45ID:???
>>35
p2/data/p2_auth_user.phpを一度消して見れ。あと板違い。こういう質問はどこ逝っても嫌われるぞ。
0039nobodyさん04/05/19 16:46ID:???
>>37
差別用語ですよ
0040nobodyさん04/05/19 16:53ID:7KZLVZlc
ありがとうございました
以後気をつけます
0041nobodyさん04/05/19 17:30ID:???
>>40
http://www.google.co.jp/search?q=%E3%82%81%E3%81%8F%E3%82%89%E3%81%A8%E3%81%AF&ie=UTF-8&hl=ja
0042nobodyさん04/05/19 17:34ID:???
よろしくお願いします。

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

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

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

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

/usr/lib/pgsrl.so

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

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

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

http://www.teu.ac.jp/chiit/~yuhei/rpms.html
ここから手に入れてrpm -iしてんだけど、入れ替わってくれん...
0054nobodyさん04/05/19 23:47ID:???
# 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 はインストールされていません

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

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

#次スレのテンプレ作成時に指摘ヨロ>>980あたり
0060nobodyさん04/05/20 10:21ID:???
Σ( ̄д ̄;)! #sage忘れ
0061nobodyさん04/05/20 10:30ID:???
>>57
サンクス。できました。
0062nobodyさん04/05/20 10:52ID:WaBVWaFV
PHPは「ペー林家パー子」の逆回転文字列結合で合ってますか?
0063nobodyさん04/05/20 11:33ID:???
>>61
>>58
0064nobodyさん04/05/20 12:13ID: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に乗り遅れまいと必死だが…。(^^;)


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

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

素人ながらオブジェクト指向なコーディングをするように考えていますが、
なるべく単純で、良いお手本となるソースを公開してるところはありますか?
0068nobodyさん04/05/20 15:00ID:???
ない
0069nobodyさん04/05/20 15:01ID:???
javaから入った方がいいと思われる。
0070nobodyさん04/05/20 15:13ID:???
ためになる用語辞典
めくら:目が見えない人
文盲:字が読めない人
明盲(あきめくら):字は読めるが文章が理解できない人
0071nobodyさん04/05/20 16:24ID: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を使うのは不適当なのでしょうか?
00727104/05/20 16:26ID:YWvMGF1q
すいません。日本語変でした。

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

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

例えば"あひゃ"を反転させ、"ゃひあ"にしたいんですが
現時点では"痰ミあ"となってしまいます。
0081nobodyさん04/05/20 21:23ID:???
2バイトごととらないかんわな
0082nobodyさん04/05/20 21:50ID:???
>>80
そういう関数を作る
0083nobodyさん04/05/20 22:22ID:???
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
0084nobodyさん04/05/20 22:23ID:???
最近までPerlでプログラムを組んでいたのですが、今回PHPに乗り換えてみました。
Perlの時に動いていたSuexec機能はPHPでは効いていないようで、PHPから作成したファイル・ディレクトリが全てapacheのデフォルトの権限で作成されてしまいます。
なんとかPHPでもSuexec機能を使うことはできませんでしょうか?
環境は
FreeBSD 4.9
Apache 2.0.49+PHP4.3.6+MySQL4+Suexecです。
宜しくお願いします。
0085nobodyさん04/05/20 22:34ID:???
pearは単なるクラス群だから
いわゆるオブジェクト指向的な
プログラミングの参考には
それほどならないだろう。
0086nobodyさん04/05/20 23:26ID:???
>>83
c:\tmp フォルダを作ってみる。
0087nobodyさん04/05/20 23:33ID:???
>>84
cgi版phpにする。
0088nobodyさん04/05/20 23:36ID:???
>>83
アプリの使い方は、アプリのところ(最も適した場所)で訊きなさい。

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

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

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

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

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


やってること:

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

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

mb_http_output('SJIS');

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

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


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

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

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

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

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

>>104
これは確かに微妙。だけど言いたいことは何となく…
0107nobodyさん04/05/21 17:31ID:???
参照と言わずにアドレスと言え、知ったかが
0108nobodyさん04/05/21 18:31ID:???
>>107
PHPはCとは違うので、渡すのはあくまでも
リファレンスであってアドレスではない。
呼び名が違うということだけではなく、
仕組み上でもリファレンス≠アドレスだ。
0109nobodyさん04/05/21 19:37ID:???
近隣の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
   :
   :
  〜
  〜

続く
0110nobodyさん04/05/21 19:38ID:???
現状はデータベースからの戻り値を配列として格納して
$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と順に表示するにはどうしたらいいでしょう?アドバイスよろしくお願いします。
0111nobodyさん04/05/21 20:49ID:???

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

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

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

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

0114nobodyさん04/05/21 22:17ID:???
>>113
簡単に考えれば、
SELECT * FROM table ORDER BY disk_id,shop_id;
0115nobodyさん04/05/21 22:17ID:???
なるでしょ。SQL勉強してごらんよ。面白いよ。でもってここphpスレ
0116nobodyさん04/05/21 22:19ID:???
なるほど、ありがとうございました。
0117nobodyさん04/05/21 22:25ID:???
最初にAという文字が出てきたときにのみBに置き換えたい(二回目は置き換えない)
のですが、どういう風な記述をすればいいのでしょうか?
ereg_replaceを用いても、うまくできませんでした……。
0118nobodyさん04/05/21 22:32ID:???
>>117
ereg_replace("A(.*)","B\\1",$str);
0119nobodyさん04/05/22 00:16ID:???
最初にA
0120nobodyさん04/05/22 00:22ID:???
なんせ多次元はいれつがそのまんま戻り値で戻ってくるPHPだからな
いろいろ半端だねぇ
0121nobodyさん04/05/22 08:43ID:???
>>120
くわしくきかせてよ(w
0122nobodyさん04/05/22 09:16ID: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の環境で動作させています。
よろしくお願いいたします。
0123nobodyさん04/05/22 09:49ID:???
>>122
pg_num_rowsの引数が有効なリソースじゃないっていうエラー
DBに接続できるてるのは確かなのか?
0124nobodyさん04/05/22 10:26ID:prWBgoDS
ダウンロードカウンタを設置しようと思って
http://www.csmoon.com/prog/dcnt.html ここにあるサンプルCGIを設置したんだけど
なぜかinternal Server Error が出まくって全然動かない

環境はRed Hat Linux + Apache 2.0.48です
パーミッション、転送法などが原因かな?
だれか教えて!
0125nobodyさん04/05/22 11:07ID:???
>>124
たいへん申し訳ありませんが、スレ違いです。
それPerl、ここPHP…。
0126nobodyさん04/05/22 12:15ID:FrQVvRLq
>>122です。
>>123
pg_connectは成功してます。たぶん。。。
>>122であげましたpdfファイルのP134〜P135のスクリプトではpg_num_rowsは動いてます。
多分引数の受け渡しがおかしいような気がするのですが、いろいろやってみてもうまくいかないのです。。。
0127nobodyさん04/05/22 12:31ID:???
>>126
pg_query()を実行している行と、エラーがでている行をよぉく見比べるか、いっそ晒してみ。
0128nobodyさん04/05/22 12:50ID: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>
0129nobodyさん04/05/22 12:51ID:FrQVvRLq
【def.inc】
<?php
define("DBNAME", "foo"); // データベース名
define("HOST", ""); // ホスト名
define("PORT", ""); // ポート番号
define("USER", ""); // ユーザ名
define("PASSWORD", ""); // パスワード
?>
0130nobodyさん04/05/22 12:52ID: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 }
0131nobodyさん04/05/22 12:52ID: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 ?>
0132nobodyさん04/05/22 12:53ID: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
0133nobodyさん04/05/22 12:54ID: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
0134nobodyさん04/05/22 12:55ID: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 ?>
0135nobodyさん04/05/22 12:59ID:???
SQLがダメぽ

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

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

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

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

早とちりスマソ・・・
0143nobodyさん04/05/22 14:28ID:???
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切断

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

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

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

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

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

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

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

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

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

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

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

えと、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\">
などと斬新な事もしてみましたが、やっぱり鯖に ( ´,_ゝ`)プ と言われ・・・

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

>158
ごめんなさい。 素だった・・・
0162nobodyさん04/05/23 02:35ID:???
http://fol.axisz.jp/php/は既出?
0163nobodyさん04/05/23 03:15ID:???
>>162
エディタは別にどうでもいいけどそのサイトのデザインがすごく綺麗だな。
0164nobodyさん04/05/23 03:22ID:XXLnBAc7
チェックの結果は以下のとおりです。
http://fol.axisz.jp/php/ を HTML4.0 Transitional としてチェックしました。
192個のエラーがありました。このHTMLは -161点です。タグが 18種類 257組使われています。文字コードは Shift JIS のようです。
0165nobodyさん04/05/23 03:54ID:???
lint厨現る。
0166nobodyさん04/05/23 04:51ID:???
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
0167nobodyさん04/05/23 04:56ID:???
PHPエディタって、どうよ?
http://pc5.2ch.net/test/read.cgi/php/1079460638/
0168nobodyさん04/05/23 05:29ID:???
ファイルの中身を上から順に読んで条件Aに一致するデータを変数xに格納して表示、
ファイルの中身を上から順に読んで条件Bに一致するデータを変数xに格納して表示、
ファイルの中身を上から順に読んで条件Cに一致するデータを変数xに格納して表示、

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

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

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

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

「emacs php-mode インデント 幅」でググるとなぜか xyzzyの情報ばかり...
017217104/05/23 15:33ID:???
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 に書いてもダメだた。
0173nobodyさん04/05/23 16:56ID:???
>172
PHPに関連してるようでスレ違いじゃねえか?
なぜemacsスレで聞かない?
0174nobodyさん04/05/23 19:03ID:???
>>166
http://validator.w3.org/check?uri=http%3A%2F%2Fyahoo.co.jp&charset=euc-jp+%28Japanese%2C+Unix%29
0175nobodyさん04/05/23 20:13ID:???
データベースから順位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;
}
}
0176nobodyさん04/05/23 21:05ID:???
GDをつかってゼロからスクリプト上で
画像を作り、その画像をデータベースに
保存しようとしているのですが、
スクリプト上で作った画像の
バイナリデータの取得方法がわかりません。
現在は一度ファイルに書き出して、
それを読み込んでいますが
なんかむなしさを感じます。
いい方法が在れば教えてください。
0177nobodyさん04/05/23 21:17ID:???
>>175
順位1〜4と、その順位を取った回数と
"その"というところで関連があるのに
何故2次元配列や順位を添字に使った配列にしないのだ?

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

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

  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;
てかんじです。
0181nobodyさん04/05/23 23:34ID:???
phpでグラフを作成するライブラリってみなさん何使ってますか?
0182nobodyさん04/05/23 23:45ID:???
イメタグでパーセント使えばいいじゃん
0183nobodyさん04/05/23 23:48ID:???
>>176
出力制御関数ってバイナリセーフじゃなかったか?
PHPを使うならやって当然だろうから、既に試しているかも知れんが・・・
ob_start()
(例えば)imagepng($image_res)
ob_get_contents()→DBに登録
ob_end_clean()
とかでできんのかな?

>>179
レス番合ってる?
0184nobodyさん04/05/24 00:05ID:???
>>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
018518404/05/24 00:13ID:???
あ、そうそう。
resultというのがpriceの価格順という意味ならサブクエリで済ますべきと思っているので、
resultが別の意味であるなら、入力(カラム)は必要です。
0186_04/05/24 00:46ID:???
>>182
( ゚Д゚) ポカーン
そういう事聞いてるんじゃないだろう。

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

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

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

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

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

JpGraphは色々あって便利なんだけど、
改造しようとソースに手を出すと嵌るので、
欲しいグラフの種類が少なくて固定できる
(値じゃなくて形がね)のなら、自分で作った方が楽。
HotScriptにもいくつか転がってる。
0195nobodyさん04/05/24 19:04ID: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モードにして再作成してみましたが、
状況は変わりませんでした。
対処法をご存知の方、ご教授願えませんでしょうか?



0196gh04/05/24 20:17ID:???
素朴な質問なんですけど、

file_get_contents 関数と
file_put_contents 関数は

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

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

>>198さん
str_repeatという存在を知りませんでした。
というか、PHP関数の全てを把握し切れていません。
やはり、覚えるしかないのでしょうか?(そんな気がする)
0201nobodyさん04/05/24 23:39ID:???
>>200
別に、str_repeat使わずとも簡単に出来るし、
あれだけ整備されたマニュアルが提供されているのだから、
経験積めば意図する関数があるかどうか雰囲気的にわかる。
0202nobodyさん04/05/24 23:41ID:???
>>201
"経験値は重要"ということですね。
0203カポコン04/05/25 02:21ID:???
>>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らしくないか?
つーか高速だし分かりやすい。
経験よりも才能。いじょ。
0204nobodyさん04/05/25 02:31ID:???
おっ珍しくカポコン神が降臨なされたな。

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

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

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

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

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

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

当方、いつもこんな書き方ばかりしてたんですよ。
whileに較べてforは遅い、とだけ小耳に入れた時に「じゃぁforeachも遅いのかな?」と
勝手に思い込んでいた節が有りまして。
0226nobodyさん04/05/25 12:06ID:???
Cっぽい書き方でもいいんじゃない?
俺はCの標準関数っぽいのが揃ってたからPHPを使い出したという経緯があるから
Cライクな記述をしてる
0227nobodyさん04/05/25 12:16ID:???
俺も以前はPHP3でも動くように>>225みたいに書いてた。
今はforeachでやってます。
0228nobodyさん04/05/25 12:19ID:???
ぶっちゃけどっちでもよいよ
気になるやつはPHPのソース追うなり
ベンチ取るなり気の済むまでやってくれ
重箱の隅穿り返すような論議は他で頼む
0229nobodyさん04/05/25 12:30ID:???
>>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
0230nobodyさん04/05/25 12:35ID:???
>>228
いいじゃねぇかYO
処理速度(効率)やコードの見易さなど、、
十人十色いろいろあって宗教じみた話になるかも知れんが、
他の人のやり方を聞くのも、たまにはあっていい。
0231nobodyさん04/05/25 13:27ID:???
色んな書き方できるのがPHPだし
複数人が関わる開発じゃなければ自分に合った書き方がベスト
0232nobodyさん04/05/25 14:42ID:???
foreach は、配列のコピーを作るので一番遅いんじゃなかった?
公式ページのマニュアルかなにかに書いてあったような気がする。
だから俺は for で回してる。
0233nobodyさん04/05/25 14:56ID:???
foreach文が採用された細かいバージョン(4.3.1みたいな)と
str_repeatが採用された細かいバージョンをキボン。
0234nobodyさん04/05/25 14:56ID:???
早さとか気になるほどは変わらんだろ
好きに書けばいい
0235nobodyさん04/05/25 14:57ID:???
>>233
4.0.0
0236nobodyさん04/05/25 15:11ID:???
>forは処理前に初期化、ループ時に条件判定・前処理
>whileはループ時に条件判定
>foreachはループ時に要素内のポインタ移動
で処理が進むならforeach文の方が速いだろ。
配列扱うのにループのたびに初期化なんてしてたら効率悪すぎ。
0237nobodyさん04/05/25 15:15ID:???
>>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;
}
0238nobodyさん04/05/25 15:15ID:???
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
0239nobodyさん04/05/25 15:19ID:???
結果
--------------------------------------------------------------
ずれてたので
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%
--------------------------------------------------------------
0240nobodyさん04/05/25 15:22ID:???
何度もすまん

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

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

whileやforの条件チェックよりも、foreachの配列チェックの方が早いんだね。
whileはlistかeachのどっちかがボトルネックなのかな
0248nobodyさん04/05/25 15:57ID:???
単純なコードの2000回のループでもこんだけ差が出るんだな
俺もこれからまめにベンチとってみよう
0249nobodyさん04/05/25 16:03ID:???
よくわからんけど、コレ置いときますね。
<?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);
}
?>
0250nobodyさん04/05/25 16:11ID:???
>>240
ウチの結果だと
36.58%
24.29%
39.07%
でforが最速と出たんだがwwww
0251nobodyさん04/05/25 16:18ID:???
>>247
>※関数を使うプログラムより関数を使わないプログラムの方が優秀である。
一部の香具師によって、否定されていたがある意味正解。
whileはループでは条件判定だけだから
ループ処理では最速なんだろうけど、これが配列になると
キーが関係してくるから結果的に色々な関数を扱わざるおえない。
foreachを使った方がいいって事なんだろう。
whileは、私は代入ぐらいに使おうと思います。
やっぱりfor()は初心者向きだよな。分かりやすいけど。
0252nobodyさん04/05/25 16:19ID:???
ウチの環境
foreach  0.07%
for     32.69%
while    25.84%

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


お前らちゃんと試してから語れよ?
0259nobodyさん04/05/25 16:30ID:???
horeta(・∀・)!!
0260nobodyさん04/05/25 16:32ID:???
>>252
総和が100%になってないねー
0261nobodyさん04/05/25 16:35ID:???
>>260
Stopが含まれてないYO!
シッカリ前文を読め!!
0262nobodyさん04/05/25 16:36ID:???
本物ならこう書くだろう。
026324004/05/25 16:38ID:???
>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%
0264nobodyさん04/05/25 16:40ID:???
あんまかわんないね
0265nobodyさん04/05/25 16:41ID:???
                配列    代入  組んでる奴が素人時
PHPユーザー(神レベル) foreach() while()   for()
PHPユーザー(パンピーレベル)while()  while()   while()
でOKでつね。
0266nobodyさん04/05/25 16:50ID:???
結局カポコンのスクリプトは言う程速くなかったってことでFA?
0267nobodyさん04/05/25 17:00ID:???
ベンチとってる方々へ。
count() を使うなら、せめて配列をリファレンスで渡してください。
でないとものすごく遅くなるよ。
0268nobodyさん04/05/25 17:04ID:???
>>267
ループの外なら変わらんだろ
基本がなってないね
0269nobodyさん04/05/25 18:08ID:???
>>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%
0270nobodyさん04/05/25 18:17ID:???
win2000 php4.3.4 anhttpdでPHPを動かしてるんですが
たまにエラーがでてサーバーが落ちてしまいます。
直す方法あるでしょうか。
0271nobodyさん04/05/25 18:25ID:???
テキストファイルから読み込んだデータを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にどんなソースを書けばよいでしょうか?
0272nobodyさん04/05/25 18:29ID:???
log.txt全体を読み込んで一件ずつlog.txtへ書き出す
その際にチェックが入っているレコードを書き出さないようにする
0273nobodyさん04/05/25 18:34ID:???
早速の返信ありがとうございますが、出来れば削除したいんです
0274nobodyさん04/05/25 18:35ID:???
ああ、なるほど。そのやり方で削除できますね。
0275nobodyさん04/05/25 18:37ID:???
>>270
Use the source, Luke!
anhttpdは知らん。バージョンも書いてないし。
027626904/05/25 18:41ID:???
色々コード変えてやってみたけど同条件下ではうちの環境だと
foreach≒whileでやっぱりforが一番速い
あとstr_repeatにしてもほぼ変わらないかむしろ速い
>>239の環境が知りたい

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

>>327
無い。
0337nobodyさん04/05/26 08:15ID:5W/UUmVu
>>324
調べたらphp.iniのほうでデフォルトのエンコーディングがISO-8859-1になってました。
これをEUC-JPに変えて、mb_encode_mimeheaderするまえに文字コードをEUCに変換
させたら、うまくいきましたm(_ _)m
0338nobodyさん04/05/26 09:18ID:s4ZFO6Pq
evalのなかで関数やメソッドの定義をしたいんだけど、PHPでは無理ですか?
0339nobodyさん04/05/26 09:28ID:???
できるよ。テストスクリプト書く手間すら惜しいのか?
0340nobodyさん04/05/26 10:16ID:???
>>336
カポコンは神。
>>337-338
あげるなよ。
0341nobodyさん04/05/26 10:22ID:???
>>1 age進行でお願いします。
034233704/05/26 12:24ID:???
>>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にコンテキスト(バインディング)が指定できないから、こういう
のは無理じゃないんですか?
0343nobodyさん04/05/26 12:29ID:???
なんで最初から詳しく書かないんだろうね
0344nobodyさん04/05/26 12:38ID:???
正しい質問の仕方
情報は小出しにして分かりにくく、そして肝心なことは書かない。
0345nobodyさん04/05/26 12:50ID:???
>>344
どっかでそれの長文ver見かけたな。結構おもしろかった覚えがある。
0346nobodyさん04/05/26 12:55ID:???
function $key()
0347nobodyさん04/05/26 13:11ID:???
>>346
なぜこれが動くとか思ってしまったんだろうね彼は
0348nobodyさん04/05/26 13:18ID:???
$var = "a";
eval("
function ".$var."()
{
echo 'hello!';
}
a();
");
a();
034933804/05/26 13:33ID:???
>>346,347
二重引用符が見えませんか。

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

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

getcwd()

でできた・・・ゴメンナサイ。ほんとにわかんなかったんだよぉ・・・
0356nobodyさん04/05/26 17:13ID:fjwOYoWg
>>354
http://jp2.php.net/manual/ja/ref.dir.php
0357nobodyさん04/05/26 18:48ID:???
釣りするときってカポコンを名乗ればいいの?
0358nobodyさん04/05/26 18:52ID:???
そうだよ
0359nobodyさん04/05/26 19:00ID:???
カポコンが現れるとカポコンを賞賛するやつも現れる。
カポコンがいないときにはそんなやつはいないのに。
そのこころは?
0360nobodyさん04/05/26 19:08ID:???
自作自演といいたいのだろうが、
いないときにわざわざ話題を振って賞賛するスレじゃねえだろ。
0361nobodyさん04/05/26 19:28ID:???
>>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);

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

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

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

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

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



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

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

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

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

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

`chown root.root file.file`;

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

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

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

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

0384nobodyさん04/05/27 17:32ID:???
だーからSJIS使うなってばよ……
0385nobodyさん04/05/27 18:05ID:???
どんなSQL回転だ
0386nobodyさん04/05/27 18:15ID:???
>>382
0387nobodyさん04/05/27 18:41ID:???
>>377=>>386
自演乙
0388nobodyさん04/05/27 18:42ID:3qJOManL
今からPHPを勉強して覚えたいと思うのですが、何からはじめたらいいかサッパリわかりません。
何を用意して何を最初に学べばいいのでしょうか。
おすすめのサイトや参考書を教えていただけると助かります。
0389nobodyさん04/05/27 18:46ID:???
>>388
赤マンモス本でも読め
今ならPDFで公開されているから無料で読める
URLは自分で探せ すぐわかる
0390nobodyさん04/05/27 18:48ID:3qJOManL
>>389
早速検索かけてPDFファイルを見ております。
分かりやすくまとめられており、私でも勉強できそうです。
情報、ありがとうございます。
0391nobodyさん04/05/27 19:53ID:???
マジだーーー
PHP徹底攻略だよな?
マンモス本ってかなり詳しく書いている上級者向けのじゃん!!(違った?ラクダとはレベル違う?)
それが無料って、すげーな
039238304/05/27 20:07ID:???
>>383 自己解決しました。
addslashesを使ってる代わりにmysql_escape_stringを使うと
上手くエスケープしてくれるようです。
やはり仰せの通りSJISで処理させるのは止めたほうがいいですね^ ^;
まあ仕方のないときのケースということで。
0393nobodyさん04/05/27 20:11ID:???
そもそもSJISで書かなきゃならん事情でもあるの?
PHPを使うなら、出力段階でSJISに変換するのが一番楽だと思うけど
0394nobodyさん04/05/27 20:48ID:???
>>393
エディタがメモ帳しかないとき(プ
0395nobodyさん04/05/27 22:13ID:???
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でデコードすることが可能でしょうか?
0396nobodyさん04/05/27 22:22ID:???
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でデコードすることが可能でしょうか?
0397nobodyさん04/05/27 22:15ID:???
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でデコードすることが可能でしょうか?
0398nobodyさん04/05/27 22:17ID:???
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でデコードすることが可能でしょうか?
0399nobodyさん04/05/27 22:28ID:???
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でデコードすることが可能でしょうか?
0400nobodyさん04/05/28 00:04ID:???
質問です。
自作関数内で獲得した
pg_numrows(resource result)や
pg_フェチ_array(resource result , int row)
はグローバルスコープですか?
0401nobodyさん04/05/28 00:35ID:???
質問する前にやってみれば分かりそうなモンだが。
というか、やらなくても分かりそうなモンだが。
0402nobodyさん04/05/28 04:29ID:???
質問です。
wikiを利用しているのですが、ページにアクセスすると、

/?PHPSESSID314df6cb256897323032443

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

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

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

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

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

代わりにマニュアル引いてやったからお駄賃に100円くれ
0407nobodyさん04/05/28 15:57ID:???
phpで、数字を3桁区切りにするにはどうすればよいのでしょうか?
0408nobodyさん04/05/28 16:00ID:???
>>407
>>56-58

040940704/05/28 16:56ID:???
>>408
すまそ。phpってそんな便利だったのか・・・
ありがとうございます。
0410nobodyさん04/05/28 17:13ID:???
>>407
現行スレを検索するくらい、最低限やってくれ
0411nobodyさん04/05/28 17:17ID:???
一応Google検索とスレ内検索はしたつもりなのですが、
数字の先頭に0を付けて桁揃えする関数はありますか?
1を0001とか。
0412nobodyさん04/05/28 17:24ID:???
>>411
あります!
0413nobodyさん04/05/28 17:25ID:???
Google検索とスレ内検索だけぢゃなく、
マニュアル検索もしてくれい
0414nobodyさん04/05/28 17:31ID:???
>>411
str_pad
0415nobodyさん04/05/28 17:43ID:???
>>411
sprintf
0416nobodyさん04/05/28 17:49ID:???
超ウルトライントロドンみたいな状態になってるな
とオッサン丸出しな事を言ってみる
0417nobodyさん04/05/28 18:09ID:???
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で共通して使えるエンコード・デコード関数があれば)
0418nobodyさん04/05/28 18:18ID:???
>>412-416
ありがとうございます。

関数へぼ自作しちまいましたよ。トホホ。
0419nobodyさん04/05/28 18:55ID:???
>>417
自分が貼ったリンク先をよく読め
0420nobodyさん04/05/28 19:32ID:???
答えてください。大変困っています。
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で共通して使えるエンコード・デコード関数があれば)
0421nobodyさん04/05/28 20:07ID:???
>>420
縦読み乙
0422nobodyさん04/05/28 20:08ID:???
http://hk2ch2.hp.infoseek.co.jp/cgi-bin/up/source/up0305.jpg
042341704/05/28 22:46ID:???
あ、
http://www.broadband-xp.com/hidesource/escape.html


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

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


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

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

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

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

0426nobodyさん04/05/29 12:42ID:???
>>425
正規表現
0427nobodyさん04/05/29 15:49ID:???
ここは数ある質問スレの中でも結構ひどい部類に入るな
0428nobodyさん04/05/29 15:59ID:???
PEARのテンプレートを使っているのですが
テンプレート用HTMLの中に書いてある
<? echo "test"; ?>
のようなPHPは実行されないようなのですが
実効するようにはできないのでしょうか?
0429nobodyさん04/05/29 16:06ID:???
結構っつーか、相当酷いよ
0430nobodyさん04/05/29 16:14ID:???
>>428
試しにテンプレートを読み込んでそのままブラウザ出力するスクリプト書いてみ?
それと同じ事だよ。
0431nobodyさん04/05/29 17:45ID:???
> PEARのテンプレート
> PEARのテンプレート
> PEARのテンプレート
> PEARのテンプレート
> PEARのテンプレート
ハァ?
0432nobodyさん04/05/29 18:52ID:???
>>431
むしろハァ?するところが違う。

http://pear.php.net/package/HTML_Template_Flexy
http://pear.php.net/package/HTML_Template_IT
http://pear.php.net/package/HTML_Template_PHPLIB
http://pear.php.net/package/HTML_Template_Xipe

PEARの、どのテンプレートシステムだっつうの。
0433nobodyさん04/05/29 20:22ID:???
別にハァするほどでもないと思うが。
意味は通じるし。
0434nobodyさん04/05/29 22:17ID:???
>>433
じゃあどのテンプレートを使っているか当ててみろよ。
0435nobodyさん04/05/29 23:04ID:???
>434
ウププ ほんとに言っちゃっていいの?!
0436nobodyさん04/05/29 23:23ID:???
>>435
もう判ったから言わなくていいよ。
0437nobodyさん04/05/30 01:09ID:???
テキストファイルの中を配列に読み込んで、文字列を追加するスクリプトを書いているんですが、
テキストファイル中の改行がそのまま文字列として、配列に格納されてしまう為、追加
したい文字列を同じ行に表示させることが出来ません。アドバイスお願いします。

恥ずいですがソースは以下で、環境はエディタが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);
}
0438nobodyさん04/05/30 02:02ID:???
>>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);
かな?最適なコードじゃないけども
0439nobodyさん04/05/30 02:14ID:???
ゴメン、>>438ですがレスアンカー間違い。正しくは>>437ですた。
しかも波括弧の数が違うから場所は変えなくてよかた。
激しくすまそ
0440 ◆AngelH/kMI 04/05/30 02:54ID:???
うう。最近見てなかった・・・。


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

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

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

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

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

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

<?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文の後に入れると
今回の結果が表示されてしまいますので困っています。
どなたか教えてください。
0454nobodyさん04/05/30 22:54ID:???
どうしてエラー文を一緒に書かないのですか
0455nobodyさん04/05/30 22:54ID:???
>>453
どんなエラーが出たのか晒せ。
あと、if文云々っつーならif文も。
0456nobodyさん04/05/30 23:16ID:???
>>453
何をしたいのかいまいち判らんが。
普通に前回の内容(1行)が入っている
$filelineを表示すれば良いのでは?

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

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

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

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

質問者たちへ

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

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

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

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

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

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

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

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

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

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


               何     の     話     だ     ?



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

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

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

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

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

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

>>498
includeとかfopenでhttpストリームを指定して取得する。
0500nobodyさん04/06/01 00:15ID:???
自作サーバで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'
よろしくお願いします。
0501nobodyさん04/06/01 00:43ID:???
<?seesion_start();
これはいいの?
0502nobodyさん04/06/01 00:44ID:???
$ar = stat('test.php');
echo $a['ctime']; //またはmtime?

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

mail($to, $sub, $text, $from)とやると、
$toがパソコンのメールアドレスだと普通に送信できるのですが、
ドコモの携帯電話のアドレスを入れると、
$fromの内容がそのまま本文の先頭に入ってきてしまいます。
mail($to, $sub, $text)とやると普通に送信できます。
ボーダーフォンとかは持ってないので試せません。

PHPからドコモの携帯にメールを送る場合は$fromの指定は使えないのでしょうか。

よろしくお願いします。
0513nobodyさん04/06/01 16:24ID:???
>>512
その$fromはどんな文字列?
051451204/06/01 16:32ID:g7ULO3n5
>>513
さっそくレスありがとうございます。
↓こんな感じです。

$from = "Bcc:xxxxxx@xxxxxx.com\n";
$from.= "From: XXXXXX <xxxxxx@xxxxxx.com>\n";
$from.= "Reply-To: xxxxxx@xxxxxx.com\n";
$from.= "X-Mailer: PHP/" . phpversion();
0515nobodyさん04/06/01 18:41ID:???
>>514
fromにそんなに入れちゃ...
Bccその他は第4引数のadditional_headersに入れるべき。
0516nobodyさん04/06/02 09:07ID:???

 こ こ は 誰 も 質 問 に 答 え な い 質 問 ス レ ッ ド で す ね

0517nobodyさん04/06/02 09:38ID:???
手取り足取り教えるより>>510>>515のような答え方の方が
質問者のためになる
051851504/06/02 10:09ID:???
スマーソ
すんげぇ勘違いしてますた。
051951504/06/02 10:11ID:???
で、マニュアルには、改行は\r\nとすべきってありますね。
0520nobodyさん04/06/02 11:49ID:???
先生気取りキモイ
0521nobodyさん04/06/02 12:43ID:???
もう勝手にすれば!!!!
0522nobodyさん04/06/02 12:59ID:???
>>516
ここは質問するスレだろ
0523nobodyさん04/06/02 13:48ID:???
>>516
質問すれば答えが返ってくるのが当たり前か…?なぜそんな風に考える…バカがっ…!
0524nobodyさん04/06/02 15:03ID:???
>>516
ていうか応えてるジャン

>>520
こなきゃいい。質問もないんだろ?困ってる人はその先生が欲しいんだよ
0525nobodyさん04/06/02 16:50ID:???
PHP+MySQLでBBS作って、書き込みすることできますか?
0526nobodyさん04/06/02 16:55ID:???
>>525
そう動作するように作れば、書き込めるよ
0527nobodyさん04/06/02 16:56ID:???
>>525
そういうスクリプトもあるだろうな。
0528nobodyさん04/06/02 16:57ID:???
>>525
書き込みできるように作れば書き込みできる
0529nobodyさん04/06/02 17:20ID:???
>>524
先生というのは、正しい情報を提供する者で
誤った情報を提供する者のことではありませんよ
0530nobodyさん04/06/02 17:31ID:???
>>529
教えて君の理論だな
0531nobodyさん04/06/02 17:39ID:???
まぁ、教える立場に立った事がある人なら>>529みたいな事は書かないけどな。
0532nobodyさん04/06/02 17:40ID:???
>>529
今まで誤った情報を提供する先生に出会ったことないのか?
幸せだな。
俺は育ちが悪いのか、小学校で既に先生も時には間違ってると悟っていた。
0533nobodyさん04/06/02 17:56ID:???
>>529みたいな発言をするヤツは十代半ばが多いな。
いわゆる反抗期みたいな感じなんだろ、そっとしておいてやれよ。
精々盗んだバイクで走り出してくれw
0534nobodyさん04/06/02 18:12ID:???
近代史を教えている先生はほとんど先生じゃなくなるなw
教科書が間違っているからいいのか。
0535nobodyさん04/06/02 18:20ID:???
永田町の先生に至っては(以下自粛
0536nobodyさん04/06/02 18:37ID:???
>>520>>517へのレスね
0537nobodyさん04/06/02 18:39ID:zu8X23qu
php のデバッグってみなさんどうされていますか?
私は Emacs でコーディングしているので必然的に
print_r などで出力して確認するような古典的な方法しか
使っていないのですが,もっと効率よく開発できないか
といろいろ調べてみたら Eclipse + TruStudio や
Magma Studio など Windows で開発すればそれなりに
効率よくできそうなツールを見つけました.

みなさんはどうされているか,いろいろ意見を聞きたいです.
よろしくお願いします.
0538nobodyさん04/06/02 18:41ID:5rKkpSCd
つい最近PHPという言葉をしったばかりです。
質問します。

PHPで掲示板をつくりたいのですが、
どこのディレクトリにアップロードすればいいのでしょうか?
0539nobodyさん04/06/02 18:43ID:???
>>538
HTMLが置けるディレクトリなら基本的にどこでも
054053804/06/02 18:45ID:5rKkpSCd
cgi-binと、public_htmlがわかれている鯖では
public_htmlの方におけばいいということですか?

すみません。
0541nobodyさん04/06/02 18:49ID:???
エスパーじゃない人はあなたのサーバの設定を読み取れないので分かりません。
0542nobodyさん04/06/02 18:49ID:???
本当に自分で作るのだろうな?
そこらで拾ってきたスクリプトの設置がわからないとかだったらブッ頃すぞ!
0543nobodyさん04/06/02 18:52ID:???
>>542
市ね
0544nobodyさん04/06/02 18:56ID:???
>>540
コラコラ
板違いですよ
054553804/06/02 18:58ID:???
んんん、みなさん、ありがとうございました。
自分で作るとはかいてませんが?

がんばってみます。
すみませんでした。
0546nobodyさん04/06/02 19:03ID:???
>>545
ここは自分で作る人の板です
0547nobodyさん04/06/02 19:05ID:???
>>537
Magma じゃなくて Maguma な。
PHP-users 検索したら腐るほど出てくる。
俺は Eclipse だが使い込んだら Emacs 最強なんじゃないの。
0548nobodyさん04/06/02 19:06ID:???
あと Maguma は 2 バイト文字が化けたと思うが、日本語がまともに扱えるようになっているなら教えて欲しいな。
0549nobodyさん04/06/02 19:06ID:???
どの環境も慣れだろ?
俺は秀丸で十分
0550nobodyさん04/06/02 19:08ID:???
>537
自前のデバッグ用フレームワーク作ってやってる
結局最終的にやってることはvar_dumpだけどね
0551nobodyさん04/06/02 21:35ID:???
■■◎■■
 ↓
♪■◎■■

教えろ
0552nobodyさん04/06/02 21:40ID:???
>>551

echo "■■◎■■<br>\n";
echo " ↓<br>\n";
echo "♪■◎■■<br>\n";
0553nobodyさん04/06/02 21:40ID:???
ごめんなさい嘘です、真面目に質問します。
例えば
■■◎■■
という変数の、「■」を一つだけ置き換えて「♪」にしたいのですが、
どういう風に書けばいいのでしょうか?
for文の中に入れて、
■■◎■■
 ↓
♪■◎■■
 ↓
♪♪◎■■
  :
  :

とういう感じになるといいのですが…(´・ω・`)
0554nobodyさん04/06/02 22:10ID:???
>>553
こういうこと?

$str = $prevstr = '■■◎■■';

while (($str = preg_replace('/■/', '♪', $str, 1)) != $prevstr) {
echo $str, "<br />";
$prevstr = $str;
}
0555nobodyさん04/06/02 22:15ID:???
ここは、PHP全般ですが?
>>546
0556nobodyさん04/06/02 23:11ID:???
連想配列のキーが同じ単語であった場合、値を加算したいです。よろしくお願いします。
055755604/06/02 23:19ID:???
array('apple' =>'2', 'orange'=>'4', 'apple'=>'1');

配列がこんなかんじだった場合
apple=3
orange=4
としたいです、お願いします。
0558nobodyさん04/06/02 23:19ID:???
>>556
ttp://www.athuman.com/hajl/
0559nobodyさん04/06/02 23:22ID:???
>>554
あぅああー、そんな関数しらなかったよ;_;

どうもありがとう。
0560nobodyさん04/06/03 02:11ID:???
誰かZendStudio3.5β2試した香具師いますか?
今なら無料でダウンロードできて、
PHP5とかへの対応ができているらしぃのだが
人柱募集
http://www.zend.com/store/beta.php
0561nobodyさん04/06/03 03:27ID:???
>557
$ar1 = array('apple' =>'2', 'orange'=>'4', 'apple'=>'1');
$ar2 = array();
whle (list($key, $value) = each($ar1)){
 $ar1[$key] += $ar2;
}
0562nobodyさん04/06/03 03:28ID:???
>561
あ、適当に書いてたわ、スマン
× $ar1[$key] += $ar2;
○ $ar2[$key] += $value;
0563nobodyさん04/06/03 08:04ID:???
>>537
最近PEARのPHPUnit使い始めたけど良いですよ。

0564nobodyさん04/06/03 11:44ID:???
著作権関連がうるさい中、個人のウェブ管理者にはムービー関連の制作が
辛い中、PHPでカプエスクイズを作りました。
これなら大丈夫でしょう(ただクイズにゲーム画面を使えないのが
少々ネックですが)、取り合えず、テスター募集中です。

ttp://cgi.f13.aaacafe.ne.jp/~mugen/cvs_quiz/

問題数が多くなればランキング形式を採用しようと思います。
0565nobodyさん04/06/03 12:06ID:???
> PHP Written by "KaPoKoN"

はじめて知った!!
てっきりRasmusやAndi&Zeevだと思ってたんだけど。
これからはKaPoKoN様に感謝して使用するよ!!
0566nobodyさん04/06/03 12:30ID:???
>>564
問題の意味すら若欄買った
0567nobodyさん04/06/03 13:18ID:???
KaPoKoN作のPHPはZend engineじゃ無くてKaPoKoN Engineか
056855604/06/03 14:12ID:???
>>562

返答ありがとうございます。
でもFatal error: Unsupported operand typesというのが

>$ar2[$key] += $value;

ここの部分で出てしまいます。何度も確認したのでタイプミスなどは無いと思うのですが。。
0569nobodyさん04/06/03 14:26ID:???
>>568
562じゃないが562のスクリプト通り(厳密に言えばwhileに修正w)で動いたが。

ってかさ、
$ar1 = array('apple' =>'2', 'orange'=>'4', 'apple'=>'1');
これ、アリなんか?
うちじゃprint_rしたらappleは後ろのしか入ってないぞ。
バージョンによっては通るのかも知れないが、こういう構造自体問題あるだろ?
057056904/06/03 14:32ID:???
あ、ついでに気付いたけど。
Unsupported operand typesなのは文字列になってるからかもしれない。
$ar1 = array('apple' =>2, 'orange'=>4, 'apple'=>1); //値の''を取った
にしてみそ
0571nobodyさん04/06/03 16:02ID:???
うちではUnsupported operand typesは出なかったなぁ
$ar1 = array('apple' =>'2', 'orange'=>'4', 'apple'=>'1');
$ar1_mod = array(
 array('apple'=>'2'),
 array('orange'=>'4'),
 array('apple'=>'1')
);
while (list($key, $value) = each($ar1_mod)){
 while(list($key2,$value2) = each($value)){
  $ar2[$key2] += $value2;
 }
}
print_r($ar1);
print_r($ar1_mod);
print_r($ar2);
057255604/06/03 16:42ID:???
ああ、そっか。
$ar1こう書きましたが
>$ar1 = array('apple' =>'2', 'orange'=>'4', 'apple'=>'1');

実際はテキストファイルから読み込んで配列にしているので、値の部分が文字列に
なってしまったんですね。
分り易いようにと修正して書いてしまいましたけど、分らないうちはありのままを
伝えるべきですたね。
お答えくださった皆さんありがとうございました。
0573nobodyさん04/06/03 18:23ID:???
>>564
で、どういう質問をしたいのかね?
0574nobodyさん04/06/03 18:27ID:???
>>530-533
自演ダサーー
0575vv04/06/03 19:19ID:???
複数行にわたる文字列 (\r\n区切り) を正規表現で1行毎に抜き出し列挙するには
どうしたらよいのでしょうか??

$multiline;

eregi("[^\r]*\r\n",$multiline,$regs);

ってやると1行目しか抜けないんですけど、原因がわからん
おしえてちょ
0576nobodyさん04/06/03 19:23ID:???
>>575
いまいち意味がわからんが、
explode()
だとダメなのか?
0577nobodyさん04/06/03 19:25ID:???
何でわざわざ正規表現使うの?
0578vv04/06/03 19:38ID:/CiHMqdY
>>576,>>577
explode知らんかった
使ったらできたよ
ありがトン
0579nobodyさん04/06/03 22:26ID:???
cronを使って定期的にphpを実行したいのですが、
<?php
//動作確認用でメールを送る関数
?>
とした所、ブラウザーからアクセスした場合には正常に動きますが、
crontabで指定した場合には動作しません。
/ファイルパス/crontab.php: =: command not found
/ファイルパス/crontab.php: =: command not found
/ファイルパス/crontab.php: =: command not found
/ファイルパス/crontab.php: =: command not found
/ファイルパス/crontab.php: line 8: syntax error near unexpected token `mb_send_mail($'
/ファイルパス/crontab.php: line 8: `$rcd = mb_send_mail($mlto, $mlsb, $mlms, $mlfr);'
CGIモードではどうかと思い、
#/usr/local/bin/php
を先頭の行に入れて、<?phpと?>を削除しましたが、それでもなお、上記と同様のエラーが返ってくるばかりです。

どなたか、ヒントを頂けませんでしょうか?
0580nobodyさん04/06/03 22:46ID:???
ここで基本を質問するやからは、まずマニュアルを読んでからにしろ...
本位買って、暇な時に斜め読みにして頭に入るようにしとけよ...

あ、こんな関数知りませんですた

ばっか。
058157904/06/03 22:47ID:???
少なくとも、私の持っているPHP関数本3冊にはありませんでした。
cronというとshell scriptがメインらしいですが、phpも実行出来る。としか書いて無くて
検索しても妥当なのが見つからないのでお伺いしました。教えて頂けませんでしょうか?
0582nobodyさん04/06/03 22:49ID:???
>>579
cronで動かす場合、
まず、ファイルへのPATHはフルパスで書かなきゃならない。
そして、実行権限を与えずにcli版で動かす場合は
/usr/local/bin/php /full/path/to/script.php
のように指定する。
実行権限を与えた場合は
/full/path/to/script.php
だけでいいが、script.phpの先頭行に
#!/usr/local/bin/php
が必要。>>579には ! が抜けている。
2行目以下には<?php ?>で必要部分囲う。
0583nobodyさん04/06/03 23:11ID:???
>>579
>CGIモードではどうかと思い、
>#/usr/local/bin/php
>を先頭の行に入れて、<?phpと?>を削除しましたが、
>それでもなお、上記と同様のエラーが返ってくるばかりです。

辺りから、CLI及びCGIのPHPと、その他(ApahceSAPIなど)のPHPとで
mbsrtringモジュールの使用可能の可否が違うと思われ。
設定で変えるか、CLI及びCGIのPHPをリビルド&インストール。
058458304/06/03 23:15ID:???
エラーの吐いてるのが誰かを考えると、
PHP以前に、582氏の指摘が妥当だな。
0585nobodyさん04/06/03 23:18ID:???
でも579みたいのがcron使ってるって怖いな。
同じ鯖にはいて欲しくない。
0586nobodyさん04/06/03 23:29ID:???
定期実行の質問が出てくるとcronを使え、っていつも言ってたんだけど、
それも考えもんだね。ちょっと怖くなったよ。くわばらくわばら
0587nobodyさん04/06/03 23:55ID:???
phpをコマンドラインで実行したいのですがどうやったらいいですか?

Fedora Core1 をインストールしたままで使っています
php -v は
PHP 4.3.6 (cgi) (built: May 13 2004 05:56:26)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies
です
0588nobodyさん04/06/04 00:03ID:???
 
0589nobodyさん04/06/04 00:23ID:???
>>587
>>580
0590nobodyさん04/06/04 07:54ID:???
質問してる奴やる気あんのか
0591nobodyさん04/06/04 09:19ID:???
やる気マンマンおまんまんですよ
だから皆さんに訊いてるんじゃないですか
0592nobodyさん04/06/04 09:22ID:???
聞く気があるかじゃなくて勉強する気があるのか
0593nobodyさん04/06/04 09:26ID:???
>>592
>>591
0594nobodyさん04/06/04 09:29ID:???
>>591
お前は何を質問したんだ?
0595nobodyさん04/06/04 09:33ID:???
>>594
前スレで質問して叩かれまくった
最近はしてない
0596nobodyさん04/06/04 09:36ID:???
じゃあこのスレの自浄作用は衰えていなかったようだな
0597nobodyさん04/06/04 09:53ID:???
新入社員実務配備時期なんかな?
判らない -> 上司先輩に聞く -> 少しは調べろと言われる -> MLや2chで聞く -> 叩かれる
0598nobodyさん04/06/04 11:01ID:???
>>587
マニュアルにそのまま・・・(´・ω・)
http://jp2.php.net/manual/ja/features.commandline.php
0599nobodyさん04/06/04 13:29ID:wZX1pkeC
始めまして

PHPとPSQLを使ってWEBサイトを構築しているのですが、
こちらで決めておいたメールアドレス宛にメールが送られた場合
そのメールのsubject、内容、添付ファイル等をDBに入れたいのですが
イマイチどうすればよいかよくわかりません

マニュアルを探したのですがimap関数を使えばよいのでしょうか?
サンプルプログラム等ございましたらご教授願えないでしょうか?
0600nobodyさん04/06/04 13:47ID:???
つーかよぉ
プログラムって試行錯誤して成功するのが楽しいんだろ
いきなり投げやりな質問して何がいいんだ?
自分にとって利点あるのか?
0601nobodyさん04/06/04 14:06ID:JHbJHjmL
なんとなく、質問しづらい雰囲気がありますが・・・
教えてください。

PHPからDB(例えばPostgreSQLなど)を利用する場合、
コネクションプーリングの機能とか使えたりするんでしょうか?

もしかして、DB板に行くべきですか?
0602nobodyさん04/06/04 14:37ID:???
>>601
いや、来るな。

PHPそのものにプーリング機能は無い。
パーシスタント接続はあるけどな。

PostgreSQLならpgpoolがあるからググれ。
0603nobodyさん04/06/04 14:42ID:???
>>601
俺は経験無いんだけどね。

http://www.google.co.jp/search?q=PHP+%E3%82%B3%E3%83%8D%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%97%E3%83%BC%E3%83%AA%E3%83%B3%E3%82%B0&ie=UTF-8&hl=ja&lr=
0604nobodyさん04/06/04 14:53ID:???
>>601
PHPにはJavaが持っているような
DBのコネクションプーリング機能はない。
ずっと立ち上がってるAP鯖がないからね。
別個にコネクションプーリング鯖を間に
噛ませて運用する形になる。
#ってことを前スレ辺りにも書いたぞ

"別個のコネクションプーリング鯖"の話題は
DB板の汎用的な質問スレ辺りかな。
0605nobodyさん04/06/04 16:48ID:0a7YDspA
指定したアドレスにユーザがメールを送ると、メールサーバからユーザに
返信のメールを飛ばす仕組みがよくわからないんですが、どうやってるんでしょうか?
更に返信されるメール本文にURL+ユーザ固有のユニークキーを乗せたいんですが。

0606nobodyさん04/06/04 17:31ID:???
キタ━━━━━(゚∀゚)━━━━━!!!!
0607nobodyさん04/06/04 18:03ID:???
>>605
メールサーバはなに?
0608nobodyさん04/06/04 18:15ID:0a7YDspA
>607
postfixです。
0609nobodyさん04/06/04 19:21ID:???
>>602-604
ありがとうございました。しらべてみます。

>>602
DB板の人?
0610nobodyさん04/06/04 21:32ID:???
>>599
>>605
PHPに全く関係ないからな。
メールの受信をトリガーにするならprocmailを使え。続けるなら各OS板のMTAスレにいけ。
PHPでポーリングするならimap関数辺りを使え。
061157904/06/04 23:51ID:???
ありがとうございました。
>>585さん、すみません・・・でも、もうこれからは大丈夫です>
>>586さん、phpを実行する時の方法についての解説サイトが見つからなかったので分からずじまいでした>
cronの設定で直接、/usr/local/bin/php /full/path/to/script.phpは書けない形式だったので、
直接指定でよいと誤解したまま、/full/path/to/script.phpしか書いていなかったのが原因でした。
.sh(shell script)を指定して、間接的に>>582さんに教えて頂いたように
#!/bin/sh
MAILTO="確認メール送信先"
/usr/local/bin/php /filepath/public_html/crontab/test3.php
exit
とし、
先頭に#!/usr/local/bin/phpを書き、その次の行から普段通りの<?php 〜〜 ?>とし、
EUC-JPで改行コードはLF、パーミッションは705で00分に実行するよう指定しました。
すると、何の問題もなく動作しました。
完璧です!!
UNIXのterminalを想像すると、/usr/local/bin/php /filepath/public_html/crontab/test3.php
と来る訳も納得出来ました。普段、ファイルパスだけの指定に慣れていた為ですね。
レポートメールが届かなくなるようにする為には(>>587さんの回答にもなりますが)
コマンドラインでPHPを使う:http://www.spencernetwork.org/memo/tips-6.php
にあるように、/usr/local/bin/php -q /filepath/public_html/crontab/test3.php
とすればよさそうです。
061225704/06/05 00:38ID:wzRU3gnq
ム板のくだしつで聞いたんですが、、こちらで。


質問
$arr["hoge"][0] = "a";
$arr["hoge"][1] = "b";
$arr["fuga"][0] = "1";
$arr["fuga"][1] = "2";
$arr["fuga"][2] = "3";
という2次配列があった場合、

$arr2[0] = "a1";
$arr2[1] = "a2";
$arr2[2] = "a3";
$arr2[3] = "b1";
$arr2[4] = "b2";
$arr2[5] = "b3";
という1次配列を生成したい。2次配列の全ての要素を組み合わせた
1次配列を生成したいんです。
061325704/06/05 00:39ID:wzRU3gnq

続き。。
下記関数で$arrの要素が固定の場合はできますが、しょっぱいですよね。
動的に$arr["guha-"][n]とかが増えた場合にも適切に処理したいんです。
--
function foo($arr)
{
$k=0;
for ($i = 0; $i < count($arr["hoge"]; $i++)
 for ($j = 0; $j < count($arr["fuga"]; $j++ )
  $arr2[$k++] = $arr["hoge"][$i] . $arr["fuga"][$j];
return $arr2;
}

再起を使ってやってみたんですが、うまくいきませんでした。
教えて、モロイ人!
0614nobodyさん04/06/05 01:46ID:???
611はいい仕事をした。もつかれ。
これからもガンガレ。
0615nobodyさん04/06/05 06:56ID:???
>>612
才能で書けよ
0616nobodyさん04/06/05 10:00ID:???
ループ入れ子にすればすぐ出来そうな…
061725704/06/05 11:26ID:cLiOxb8T
>>615
勘違いされると思ったんですが、他スレの名前をそのまま使ってました。
0618nobodyさん04/06/05 12:34ID:???
>612
foreach使えば何も問題ないのでは?
0619nobodyさん04/06/05 13:05ID:???
array_keysかforeach使え。それでできないなら諦めろ。
つーか配列の要素決め打ちって、関数になってねぇじゃんw
062025704/06/05 13:18ID:cLiOxb8T
>>619
> つーか配列の要素決め打ちって、関数になってねぇじゃんw
現状、hoge,fugaだけで、この要素は確定なんです。
が、将来拡張が無いわけではないでしょうし、どうもかっこわるいもので。。。
0621nobodyさん04/06/05 13:22ID:???
>>612
hogeが先でfugaが後ってのはどこで決まってるの?
順不同で全部の組み合わせということなら、こんな感じだと思うが。
function foo($arr) {
$ret = array();
foreach (array_keys($arr) as $key1) {
foreach (array_keys($arr) as $key2) {
if ($key1 == $key2) {
continue;
}
foreach ($arr[$key1] as $val1) {
foreach ($arr[$key2] as $val2) {
$ret[] = $val1 . $val2;
}
}
}
}
return $ret;
}
062262104/06/05 13:23ID:???
げっ、タブが消えた
0623nobodyさん04/06/05 13:36ID:???
いや、13:23に再登場
062425704/06/05 13:52ID:cLiOxb8T
>>621
> >>612
> hogeが先でfugaが後ってのはどこで決まってるの?
> 順不同で全部の組み合わせということなら、こんな感じだと思うが。
説明不足ですいません。順不同でかまいません。
早速試してみますね。
ありがとうございました。
062525704/06/05 13:59ID:cLiOxb8T
ソースを追えば、ああ、なるほど。と思うんですが、
SQLでいうところの同じテーブルを別名でjoinみたいな。

Warning: Invalid argument supplied for foreach()
がでてますが、結果としては正しそうです。
もうちょっとテストしてみます。
062625704/06/05 14:03ID:cLiOxb8T
すいません。

ちゃんとみたらエラーで動いていませんでした。
コレをヒントに調べてみます。
062725704/06/05 14:18ID:cLiOxb8T
あわてて書くといけないな。。

再度すいません。

エラーがでたのは引数が間違えてました。

正しく動いてます。ありがとうございました。
062825704/06/05 15:30ID:cLiOxb8T
たびたびすいません。

621さんのは仕様を満たしていないことに気付きました。
全ての組み合わせではない(a+1, 1+aは等価)。事が必要でした。
で、下記関数でくみなしたんですが、大丈夫なようです。

こうすれば。。というのがあればご意見ください。

--
function bar($arr)
{
$keys = array_keys($arr);

$allcnt = 1;
for ($i = 0; $i < count($keys); $i++ )
{
$allcnt *= count($arr[$keys[$i]]);
}
echo $allcnt,"\n";

for ($_i = 0; $_i < count($keys); $_i++ )
{
for ($j = 0, $s=0; $j < $allcnt / count($arr[$keys[$_i]]); $j++)
{
for ($i = 0; $i < count($arr[$keys[$_i]]); $i++, $s++ )
{
$ret[$s] .= $arr[$keys[$_i]][$i];
}
}
}
return $ret;
}
0629nobodyさん04/06/05 18:53ID:kZEpDfR9
レッツPHPのチュートリアルでちょこっと紹介されていた、
ユーザエージェントによって振り分けるやつなんですが、
switch($user_agent[0]){
case "DoCoMo": $file = "〜";

}
header("Location: $file");
http://〜/だとエラーも何も表示されず、http://〜/index.phpにしないとうまく機能しません。
どのようにすれば改善されるのでしょうか?

同じディレクトリにindexファイルはphp以外置いてません。
0630nobodyさん04/06/05 18:55ID:???
最初から最後までソース書いてやらないとできないやつ大杉
>>618-619の助言だけで十分だろ
0631nobodyさん04/06/05 19:13ID:???
>>629
そういう時は原因の追求ですよ。
1. index.phpを付けない時にindex.phpが呼び出されるかどうか確認する。
 print "hello"; てな簡単なスクリプトで試す。
 helloが表示されない時は、webサーバがindex.phpを補完してくれていないということで
 webサーバの設定を確認する。
2. index.phpを付けない時にuser_agent[0]に期待する値が入っているかどうか確認する。
 print $user_agent[0] てな簡単なスクリプトで試す。
063262904/06/05 19:27ID:???
>>631
どうもです。
1.helloと表示されました。→ファイル名を省略してもindex.phpがうまく表示されているようです。
2.Mozillaと表示されました。→とくに問題はないようです。

っと、「header index.php Location」で検索してみたら、同様の質問が出てきました。
ttp://216.239.53.104/search?q=cache:Fsd3QTFduvIJ:www.ybi.co.jp/koike/qa2500/qa2601.htm+header+index.php+Location&hl=ja&lr=lang_ja
ttp://216.239.53.104/search?q=cache:WmaR0tRbb8EJ:wring.xrea.jp/modules/xoopsfaq/index.php%3Fcat_id%3D2+header+index.php+Location&hl=ja&lr=lang_ja
じつは、xreaでダメだったんです。aaacafeでは問題ありませんでした。
063362904/06/05 19:36ID:???
すみません、xreaのサポート掲示板に同様のものがありました…。
ttp://216.239.53.104/search?q=cache:6Ddn8YneUqoJ:sb.xrea.com/showthread.php%3Fs%3D%26threadid%3D7011+header+index.php+Location+xrea&hl=ja&lr=lang_ja

xreaの自動挿入される広告が問題だったようです。
解決したわけではありませんが、原因がわかりました。
ありがとうございます。
いろいろな原因の追求の方法を教えていただき、感謝です。
0634nobodyさん04/06/05 21:30ID:???
>>628>>612,613,617,620,624-628)
> こうすれば。。というのがあればご意見ください。
>>616,618,619でとっくに解決済みだけど、意見してやる。
制御構造ぐらい勉強しる。それとレスする前にまとめれ。

$arr2 = array();
if (is_array($arr)) {
foreach ($arr as $val) {
if (is_array($val)) {
foreach ($val as $key2 => $val2) {
$arr2[$key2] .= $val2;
}
}
}
}
0635nobodyさん04/06/05 21:59ID:???
$arr["hoge"][0] = "a";
$arr["hoge"][1] = "b";
$arr["fuga"][0] = "1";
$arr["fuga"][1] = "2";
$arr["fuga"][2] = "3";

$arr2 = array();
if (is_array($arr)) {
foreach ($arr as $val) {
if (is_array($val)) {
foreach ($val as $key2 => $val2) {
$arr2[$key2] .= $val2;
}
}
}
}
print_r($arr2);
// 結果
Array ( [0] => a1 [1] => b2 [2] => 3 )

違うじゃん。
063663404/06/05 22:15ID:???
こうしたいっていう結果を読み違えてた。
規則性がようわからんからもうやらね
0637nobodyさん04/06/05 22:20ID:???
>>636
「やらね」じゃなくて「できない」だろ。
>>616,618も理解していないだろうなと思ってたけど、
>>634は重症だな。
063863404/06/05 22:29ID:YJIptq+u
>>637
しゃあねーな、やってやるよ
おまえもできるんなら見せてみな
できた時間とコードを皆に判断してもらうぞ
ほら開始だ、早くやれよ
063963404/06/05 22:58ID:???
とは言ったもののムツカスィね・・
0640nobodyさん04/06/05 23:06ID:???
>>621 を少し変えただけだが、

function foo($arr) {
$ret = array();
$keys = array_keys($arr);
$indices = array_flip($keys);
foreach ($keys as $key1) {
foreach ($keys as $key2) {
if ($indices[$key2] >= $indices[$key1]) {
break;
}
foreach ($arr[$key1] as $val1) {
foreach ($arr[$key2] as $val2) {
$ret[] = $val1 . $val2;
}
}
}
}
return $ret;
}
0641nobodyさん04/06/05 23:14ID:???
$arr["hoge"][0] = "a";
$arr["hoge"][1] = "b";
$arr["fuga"][0] = "1";
$arr["fuga"][1] = "2";
$arr["fuga"][2] = "3";
$arr["geha"][0] = "い";
$arr["geha"][1] = "ろ";
$arr["geha"][2] = "は";
$arr["geha"][3] = "に";
だった場合とか考慮しなくていいの?
064267304/06/05 23:15ID:???
>>638
だれも出来るとは言って無いんだが、
あれだけ煽っといて、質問者だけのせいにして逃げるのはどうかと。
>>639
正直むずい。

$c=1;
foreach($arr as $val){
$c *=count($val);
}
foreach($arr as $val){
$c2=count($val);
for($i=0;$i<$c;$i++){
$arr2[$i] .= $val[$i%$c2];
}
}
print_r($arr2);
これでいいとは思うが。
064363704/06/05 23:16ID:???
>>642
自レス番間違えた。orz
064463704/06/05 23:23ID:???
ゴメソ。やっぱダメだった。(泣
064563704/06/05 23:30ID:???
こんどこそ。
$c=1;
foreach($arr as $val){
$c *=count($val);
}
foreach($arr as $val){
$c2=count($val);
for($i=0;$i<$c;$i++){
$k=(int)($i/($c/$c2));
$arr2[$i] .= $val[$k];
}
}
print_r($arr2);
064663704/06/05 23:32ID:???
連投スマソ。
3種類以上になるとダメでした。
064764004/06/05 23:37ID:???
>>641
Array ( [0] => 1a [1] => 1b [2] => 2a [3] => 2b [4] => 3a [5] => 3b
[6] => いa [7] => いb [8] => ろa [9] => ろb [10] => はa [11] => はb
[12] => にa [13] => にb [14] => い1 [15] => い2 [16] => い3 [17] => ろ1
[18] => ろ2 [19] => ろ3 [20] => は1 [21] => は2 [22] => は3 [23] => に1
[24] => に2 [25] => に3 )
こうなるけど、>>612 の意図どおりかどうかはわかりません。
あと、
$indices = array_flip($keys);
は不要で、
if ($indices[$key2] >= $indices[$key1]) {
break;
}

if ($key2 == $key1) {
break;
}
で十分でした。
0648nobodyさん04/06/05 23:42ID:I8nBdH8Q
PHPで
掲示板でよくある書き込み後に「書き込みました」って別ページに飛ぶのあるじゃないですか
それってどうやってやるんですか?
元のページで自動で戻るのはMETAで<meta http-equiv="refresh" content="5; url=元のページ">でできるんですが・・
064963704/06/05 23:42ID:???
640氏とは解釈が違うようですが。

>>637に戻ってソートを加えてみた。
$c=1;
foreach($arr as $val){
$c *=count($val);
}
foreach($arr as $val){
$c2=count($val);
for($i=0;$i<$c;$i++){
$k=(int)($i/($c/$c2));
$arr2[$i] .= $val[$i%$c2];
}
sort($arr2);
}
print_r($arr2);

もうねるぽ。
065064804/06/05 23:43ID:???
訂正

元のページへ自動で戻るのはMETAで<meta http-equiv="refresh" content="5; url=元のページ">でできるんですが・・
065163704/06/05 23:47ID:???
>>649
> $k=(int)($i/($c/$c2));
この行イラネ。
何度もスマソ。
0652nobodyさん04/06/05 23:48ID:???
>>648
「書き込みました」という別ページを表示させればいいだろ。
PHP以前の問題だからもっと勉強してからこい。
0653nobodyさん04/06/05 23:49ID:???
>>652
だからそのジャンプをPHPではどうやるのですかと。
0654カポコン04/06/05 23:52ID:???
なんかよく分からないけど、
閃(ヒラメ)いたので書いておきますね。

<?php
$ary = array(3,4,2,1,0,2,3,4);
$ary2 = array("砂糖","塩","胡椒","唐辛子","小麦粉");
foreach($ary2 as $num => $spice):
foreach($ary as $key => $val):
$ary2[$key] = $ary2[$ary[$val]];
endforeach;
endforeach;
print_r($ary2);
?>

あっ、私のホムペはココ。
ttp://f13.aaacafe.ne.jp/~mugen

趣味でやってるのであまり更新しませんがよろしこ。
0655nobodyさん04/06/05 23:53ID:???
>>653
javascriptならやり方知ってるぜ
065625704/06/05 23:53ID:???
みなさんいろいろ試されてるようで恐縮です。

>>639
そうなんですよ。以外に難しくて正直参りました。

でもこういうクイズ的なプログラミングは楽しいですね。
0657nobodyさん04/06/05 23:55ID:???
>>653
ttp://board.aaacafe.ne.jp/read.php/zatsudan/1086332333/index.html
0658nobodyさん04/06/05 23:55ID:???
>>653
だからPHP以前の問題だからもっと勉強してからこいと。
0659nobodyさん04/06/05 23:56ID:???
〜書き込み処理〜

echo "書き込みました。";
exit();
066025704/06/05 23:56ID:???
>>647
Array
(
[0] => a1い
[1] => b2ろ
[2] => a3は
[3] => b1に
[4] => a2い
[5] => b3ろ
[6] => a1は
[7] => b2に
[8] => a3い
[9] => b1ろ
[10] => a2は
[11] => b3に
[12] => a1い
[13] => b2ろ
[14] => a3は
[15] => b1に
[16] => a2い
[17] => b3ろ
[18] => a1は
[19] => b2に
[20] => a3い
[21] => b1ろ
[22] => a2は
[23] => b3に
)
こうなってほしいです。
066165704/06/05 23:58ID:???
まちがえたコッチの48の記事に書いてた。
ttp://board.aaacafe.ne.jp/read.php/zatsudan/1079490157/index.html
0662nobodyさん04/06/06 00:04ID:???
>>660
>>649での結果と並びが違うけどダメなのか?
0663nobodyさん04/06/06 00:05ID:???
>>661
参考にならんそんな糞サイトを教えるとは性質が悪いなw
0664nobodyさん04/06/06 00:07ID:???
header(Location: );
でエラー起るんですよ〜
0665nobodyさん04/06/06 00:09ID:???
( -д-)ツマラン
0666nobodyさん04/06/06 00:10ID:???
十分なりました。
066725704/06/06 00:15ID:???
>>662
ソート順は意識してません。(すべて等価です。)

ソートが入ると結果がみやすいですね。
動作はOKです。すばらしい。

0668nobodyさん04/06/06 00:21ID:???
>>664
header()の前に空行とか何か出力してるんじゃねぇの?
0669nobodyさん04/06/06 00:24ID:???
>>667
よくスクリプトを見たほうがいい。
ソートは見た目じゃなくて必然だ。
0670カポコン04/06/06 00:30ID:???
>>660
こういうのでよければどうぞ、何も複雑な事はしてませんが。
<?php
$alpha = array("a","b");
$num = array(1,2,3);
$kana = array("い","ろ","は","に");
$i = 0;
$ans = array();
while($i < 24):
$a = $i % 2;
$b = $i % 3;
$c = $i % 4;
$ans[$i] = ($a == 0)?$alpha[0]:$alpha[1];
if($b == 0):$ans[$i] .= $num[0];
elseif($b == 1):$ans[$i] .= $num[1];
else:$ans[$i] .= $num[2];
endif;
if($c == 0):$ans[$i].=$kana[0];
elseif($c == 1):$ans[$i] .= $kana[1];
elseif($c == 2):$ans[$i] .= $kana[2];
else:$ans[$i] .= $kana[3];
endif;
$i++;
endwhile;
print_r($ans);
?>
0671カポコン04/06/06 00:36ID:???
つまんね〜から寝ます。おやすみ〜。
0672nobodyさん04/06/06 00:39ID:???
ファンが出来るわけだ・・・。
067325704/06/06 00:47ID:???
>>669
すいません。酒ノンでてあまり集中してみれませんが。

この部分、難解ですね。
> $k=(int)($i/($c/$c2));
> $arr2[$i] .= $val[$i%$c2];

>>670
動的に配列が増えた場合に対応できますでしょうか。
そこが今回のポイントでもあるんですが。。。。
0674nobodyさん04/06/06 00:52ID:???
>>673
>>651
0675カポコン04/06/06 00:53ID:???
あっ電源切る瞬間にまた閃いたから書いておきますね。
>>660さん。これでOKと思います。
<?php
$alpha = array("a","b");
$num = array(1,2,3);
$kana = array("い","ろ","は","に");
$i = 0;
$ans = array();
while($i < 24):
$x = $i % count($alpha);
$y = $i % count($num);
$z = $i % count($kana);
$ans[$i] = $alpha[$x].$num[$y].$kana[$z];
$i++;
endwhile;
print_r($ans);
?>
0676nobodyさん04/06/06 01:22ID:???
動的つってんのに24で決め打ちするバカ
0677nobodyさん04/06/06 01:31ID:???
だからカポコンなのさ。
0678nobodyさん04/06/06 01:53ID:???
カポコンは応用の利くソフト設計ができない。
静的なんてねぇ
067925704/06/06 02:53ID:???
>>669
わかた!
$arr[hoge][0]=a
$arr[hoge][1]=b
$arr[fuga][0]=1
$arr[fuga][1]=2
のとき、
a1
b2
a1
b2
となるのを防ぐために、いちいちsortしてるのか。つーか、俺のはバグって真下。
同じようにsortを入れると正常になりました!

勉強になります。
0680nobodyさん04/06/06 03:09ID:???
つか、重複する値は、最後に array_unique で削除すればいいと思うんやけど。
068125704/06/06 03:14ID:???
>>680
重複しないロジックとしてくんでいます。
仮にuniqueで重複が削除されるなら、それはロジックにバグがあるということです。
0682nobodyさん04/06/06 03:38ID:???
function 再帰関数(&$1次元のりふぁれんす, $2次元の値, $文字 = '') {
if (is_array($ちょっとだけ = array_shift($2次元の値))) {
foreach ($ちょっとだけ as $2次元の値の値) {
$一番大切 = 再帰関数($1次元のりふぁれんす, $2次元の値, "$文字$2次元の値の値");
if (!count($2次元の値)) array_push($1次元のりふぁれんす, $一番大切);
}
}
return $文字;
}

$2次元 = array(
'PHP' => array(1, 2, 3, 4),
'Hypertext' => array('a', 'b'),
'Preprocessor' => array('x', 'y', 'z'),
'カポコン神' => array('カ', 'ポ', 'コ', 'ン', 'は', '糞')
);
$1次元 = array();
再帰関数($1次元, array_values($2次元));
print_r($1次元);
0683nobodyさん04/06/06 04:08ID:???
>>682
お見事
0684nobodyさん04/06/06 05:26ID:???
Cobalt Qube(mips)上でApache2+MySQL+PHPの環境を作りたいと
思ってます.
ところがインストール(MySQLのみrpm)を全て済まし,httpd.confをPHPを
使えるように設定しなおしてApacheを再起動すると,
Syntax error on line 232 of /usr/local/apache2/conf/httpd.conf:
Cannot load /usr/local/apache2/modules/libphp4.so into server:
/usr/local/apache2/modules/libphp4.so: undefined symbol: mysql_character_set_name
というエラーが出て,起動に失敗してしまいます.
ApacheのスレでMySQLは3.23以前はサポートしていないということを教えて
もらい,3.23.58をソースからインストールし直しました(それまでは3.22.30).
その後,PHPを下記のオプションでインストールしようとすると,
./configure --with-apxs2=/usr/local/apache2/bin/apxs
--enable-mbstring
--enable-mbregex
--enable-track-vars
--enable-mbstr-enc-trans
--with-zlib
--with-jpeg-dir=/usr/local/
--with-mysql=/usr/local/mysql
configでエラーは出ないのですが,makeをすると下のように
collect2: ld terminated with signal 6 [Aborted], core dumped
make: *** [libphp4.la] Error 1
エラーが出るようになってしまいました.
探しても似たような症状の人が見当たりません.config.logを見ても
どこがダメなのかわからないのですが,どこか注意すべき点などあるでしょうか?
環境
Apache2.0.49,MySQL3.23.58,PHP4.3.6
参考にしたページ
ttp://www.brtnet.org/linux/raq2mysql.htm
ttp://www.mypress.jp/php/install.php
ttp://www.jpring.net/jitaku/redhat9-no.html
068564004/06/06 07:32ID:???
>>660
なるほど。
そうなるように >>640 を直してみますた。

function foo($arr) {
$keys = array_keys($arr);
$arr2 = array();

foreach ($keys as $key) {
if (!count($arr2)) {
foreach ($arr[$key] as $val) {
$arr2[] = $val;
}
}
else {
$arr3 = array();
foreach ($arr2 as $oldval) {
foreach ($arr[$key] as $addval) {
$arr3[] = $oldval . $addval;
}
}
$arr2 = $arr3;
}
}
return $arr2;
}
0686nobodyさん04/06/06 15:31ID:yuO83M+4
$a = array("test","test2","test3");
$b = "a[0]";
$c = ${$b};
print($c);

$bを取り出して、結果的に$a[0]のtestという値を取り出したくて、
$c = ${$b}としたのですが、うまく行きません。
($aが変数の場合は出来ました)
どうしたらこれを配列として評価して出力できるでしょうか?
教えてください。お願いします。
0687nobodyさん04/06/06 15:44ID:???
(0⌒ v.⌒0)です。ごく簡単な質問をさせてください。
フォルダ内に空のファイルを生成し、
書き込んだり、消したりするためにはどうすればいいんでしょうか。
0688nobodyさん04/06/06 17:31ID:aWFHtiOk
fopen
0689nobodyさん04/06/06 17:34ID:???
>>686
$bを正規表現で変数名と配列の要素に分けて使うか
eval()文で(できんかも…試してないからわからん)
069068604/06/06 19:30ID:yuO83M+4
>>689さん
変数名と配列に分ける方はうまく行きませんでしたが、
eval()はうまく行きました。ありがとうございます。
0691nobodyさん04/06/06 20:04ID:???
PEARでAuthを使おうと思ったんですけど、PEARディレクトリの直下にはAuth.phpが無く、
require("Auth/Auth.php")、require("Auth.php")では当然エラーが出ます。
PEAR/CommandにAuth.php見つけたんですけど、
require("PEAR/Command/Auth.php")で使えるようになるでしょうか?
いろいろサイト調べながらやってるんですけど、Authディレクトリすらないんですけど…

なんかやり方間違ってるんでしょうか?
当方WinXP+PHP4.3.7です。
069269104/06/06 20:05ID:6zj2k96f
すみません、ageさせてもらいます
0693nobodyさん04/06/06 20:23ID:yuO83M+4
関数の中でグローバル変数を呼ぶのではなく、
"グローバル配列"を呼びたいんですが、呼ぶ方法ありますか?
(global $var; ←変数の場合)
ネットで調べても、スーパーグローバル変数のことしか
出てこないのでわかりませんでした。ご存知の方教えてください。
0694nobodyさん04/06/06 20:52ID:???
>>693
たしか配列名だけでグローバル宣言できたはずだが
0695nobodyさん04/06/06 21:06ID:???
>>691
pearに限らずincludeやrequireはPHPの設定のinclude_pathを参照して
「ファイルの実際の場所」を特定する。
で、なんでPEAR/Command/Auth.phpを試してみないの?
0696nobodyさん04/06/06 21:36ID:???
>>695
いや、もちろん試してみて動いたんですけど、
Auth扱ったサイトには必ずrequire_once("Auth/Auth.php")とあったもので。
置く場所が変わると相対パスとかの関係でおかしくなったりしないかなーと。

include_pathらへん設定してきます。
ありがとうございました。
0697nobodyさん04/06/06 22:21ID:???
PEARのディレクトリ構造変わったのかな?
普通にPEAR/Auth.phpもあるし、PEAR/Auth/Auth.phpもあるがな。

0698nobodyさん04/06/06 22:33ID:???
最新版はAuth.phpは>>691のようになってるっぽい。
0699nobodyさん04/06/06 22:37ID:???
>>691

$ pear install Auth
0700nobodyさん04/06/07 00:57ID:pAlrsUVH
Perl の die $!みたいに直近のエラーを吐いて終了させることはできますか?
0701nobodyさん04/06/07 01:09ID:???
>>699
感謝
0702カポコン04/06/07 03:32ID:???
遅くなってスイマソン。
>>678
XMLファイルから値を取るのが俺の通常のやり方。
現場と遊びは違うんで。

>>682
すげー効率悪いプログラム書きますね、
しかもarray_valuesで配列の再生成か、ショボネタ連発
の受け狙いプログラム、十分吹かしてもらいました。
でも再帰使うならstaticぐれー使ってほしかった。
自分の経歴が組んだプログラムに出てますよ自演ちゃん。
まーそのプログラム、俺だったら関数名の前に&を付けて
PHPらしい書き方をするだろうな。
0703nobodyさん04/06/07 03:35ID:???
やっぱりカポコンはキレが違いますね(藁
0704nobodyさん04/06/07 03:59ID:???
>>682って変数や関数を日本語に変えてるだけでの糞(ry、幼稚園児確定ですな。
0705nobodyさん04/06/07 05:29ID:???
>>700
↓これじゃないの?
ttp://jp.php.net/manual/ja/reserved.variables.php#reserved.variables.phperrormsg
0706nobodyさん04/06/07 06:59ID:ddmA6C2j
現在走らせているPHPスクリプトの負荷状況を把握したいと思い、↓
http://216.239.53.104/search?q=cache:82liKHMca1QJ:jamesthornton.com/php/japanese/function.posix-times.html+php%E3%80%80%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E6%99%82%E9%96%93%E3%80%80%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E6%99%82%E9%96%93&hl=ja
を参考にして posix_times() 関数からプロセスタイムを取得し表示させています。

この場合走らせているスクリプトの負荷として適切な値はどれに該当するのでしょうか?
・utime - 現在のプロセスにより使用されているユーザー時間。
・stime - 現在のプロセスにより使用されているシステム時間。
・cutime - 現在のプロセスおよび子プロセスにより使用されているユーザー時間
・cstime - 現在のプロセスおよび子プロセスにより使用されているシステム時間

また現在の値は
・utime - 20〜30秒
・stime - 2〜3秒
・cutime - 2〜3秒
・cstime - 2〜3秒

となっていますが、これは一般的にみてかなり負荷が高いのでしょうか?

System Linux
Server API Apache 2.0 Handler
PHP/4.3.6
0707nobodyさん04/06/07 07:22ID:???
>現場と遊びは違うんで。
脳内現場乙
0708nobodyさん04/06/07 08:26ID:???
カポコンで書いた後に名無しで何度も書くのはどうしてぇ〜?w
カポコンが現れると名無しがほめるのはどうしてぇ〜?w
0709nobodyさん04/06/07 09:06ID:???
このスレで名前をカポコンにするってのはだな、
メル欄に釣りですって書いてるのと同義なんだよ!
0710nobodyさん04/06/07 09:41ID:???
誰かカポコンの友達になってやれよ

>>708-709
そんな事書くとまた俺が自演扱いされるからやめれ
0711nobodyさん04/06/07 09:46ID:???
恐ろしい自演の現場を見た
これが真の現場という物か
0712nobodyさん04/06/07 10:51ID:???
こんなのが同じ職場にいることを想像するとゾッとするな。
0713nobodyさん04/06/07 11:38ID:???
>現場と遊びは違うんで
>現場と遊びは違うんで
>現場と遊びは違うんで
>現場と遊びは違うんで
>現場と遊びは違うんで
>現場と遊びは違うんで
>現場と遊びは違うんで
>現場と遊びは違うんで
>現場と遊びは違うんで
>現場と遊びは違うんで
0714nobodyさん04/06/07 11:40ID:???
迷言誕生
0715nobodyさん04/06/07 11:48ID:???
さすがこの板で本7と双璧と言われるカポコンだなw
痛さメガトン級w
0716nobodyさん04/06/07 12:11ID:???
やって!TRYな噂の現場
0717nobodyさん04/06/07 14:41ID:p6jQDvKG
PHPのみで tail を実現したいんだけどどうしたらいいかな
$fp=popen("tail -fname -n 0 unko.log","r");
とやってるんだけど、こんど tail無しの環境に行くモンで。
0718nobodyさん04/06/07 19:04ID:HnbrGX79
readfileでバイナリファイルを読み込んで、ユーザにダウンロードさせるのは
サーバにとって、かなりの負担になるのでしょうか?それとも気にするほどの事ではないのでしょうか?
大体10〜50MBのファイルなのですが。
0719nobodyさん04/06/07 19:05ID:???
リダイレクター作るのって難しいですかねぇ
0720nobodyさん04/06/07 19:33ID:???
>>717
普通にできるだろ。ファイルの最後までseekして一行ずつ読む関数作れ。

>>718
絶対やめて

>>719
難しくない
0721nobodyさん04/06/07 19:34ID:???
さすがカポコン。
コークスでもなかなか出せない香ばしさだな。
072271804/06/07 19:35ID:???
>>720
絶対やめて、ということはかなりの負担になるのですね。
了解しました。
うーん、ダウンロードさせるファイルのURLを教えずにダウンロードするには
readfile以外になにか方法ないかなぁ。
0723nobodyさん04/06/07 19:39ID:???
>>722
locationヘッダで飛ばせば初心者にはわからんと思うが…・
どうしてもというならバイナリモードで開いてちょっとずつ読み込んで出力するしかない。
10Mも一気に読み込むのだけはマジでやめてくれ。
0724nobodyさん04/06/07 19:47ID:???
>>720
解説ページとか知りませんか?
ググってもでてきません。
リダイレクターという用語が間違ってるのですかね。
0725nobodyさん04/06/07 19:53ID:???
>>724
webのPHPファイルにアクセスした時に他のページへリダイレクト、って意味だよね?
ならheader()でlocation出すだけ。
HTMLやJavaScriptでクライアントに処理させる方法もある。
0726nobodyさん04/06/07 19:56ID:???
>>725
どうもです。
ID割り振って管理画面とかで管理するの難しいですか?
0727nobodyさん04/06/07 20:01ID:???
普通にスキルありゃ簡単だが、ヒント聞いても設計を想像できない>>726には
難しいのかもな
072871804/06/07 20:05ID:???
>>723
確かにlocationヘッダで飛ばせば初心者には分かり難いとは思うのですが…。
ありがとでした。
0729nobodyさん04/06/07 20:07ID:???
>>727
すいません勉強し始めたばかりなんです。
では消えます。
0730nobodyさん04/06/08 09:07ID:???
現場と遊びは違うんで
0731nobodyさん04/06/08 09:29ID:???
迷言だな
0732nobodyさん04/06/08 12:12ID:???
 ;mbstring.internal_encoding   EUC-JP
現在テスト段階なので、下記の様なソースでやってます。
文字コードはSJISです。

ソースはEUCなんか?
0733nobodyさん04/06/08 12:28ID:???
>>732
スレ間違えてるぞ
0734nobodyさん04/06/08 13:23ID:mGDxJx8J
PHPで初めてサーバーサイドに触れた初心者です。
最近やっと簡単な掲示板をつくるトコまで来ました。
そこから掲示板に色々オプションを付けていこうと思い、
cookieの設置で行き詰ってます。
現状の記述は以下の通りです。

<ヘッダというかhtmlより上の部分>
setcookie("name",$name,time()+60*60*24*30);

<formの名前記入欄>
【名前】
<input type="text" name="name" size="16" value="<?php echo $_COOKIE['name'] ?>">

この記述だと
1番始めに名前を「A」と入力してサブミットする→ページを閉じる
2回目に書き込みに来たと仮定しページを開く。名前欄には「A」を記入されている
今度は名前を「B」に変更してサブミット→ページを閉じる
ページを開きなおすと名前欄には「A」と入ってしまっている

これを名前欄を変更する度にcookieを上書きするような仕様にしたいのですが、
どうすればいいのでしょうか?
0735nobodyさん04/06/08 13:42ID:FspqORY3
FedoraCore1の「アプリケーションの追加/削除」からPHPをインストールしたら
Apacheのhttpd.confとか何も修正しなくても<?php info.php?>のテストファイル
がちゃんと作動したんだけど、すごいな〜とおもった。このまま大丈夫なのかな??

ちなみにhttpd.confの内容はなんか修正すべきところ修正してないような感じだったけど、
ちゃんと動く。。

すごいなとおもった。
0736nobodyさん04/06/08 13:44ID:???
>>735
板違い
0737nobodyさん04/06/08 14:10ID:???
>>734
$nameが入力されている場合はvalue=""に$nameを使う
073873704/06/08 14:20ID:???
あれ?ちょっと待て。開き直してるのにAが表示されてるのっておかしくないか。
サブミットした時点でnameはBの書き換えられてるんだから。
その時点でクッキー読み込むとAなのはわかるんだが。
0739nobodyさん04/06/08 14:59ID:???
echoしながら変数の中身確認しよう
0740nobodyさん04/06/08 16:29ID:5lOZ1tpU
初歩的な質問ですがつまってしまったのであげさせてください。

ページの一部分にそれぞれのファイルを読み込むような感じで
http://aaa.jp/xxx.php?a
http://aaa.jp/xxx.php?b
でリンクされると、それぞれa.phpやb.phpを読み込ませるようにしたいんですが、

f(eregi("a",$_SERVER['QUERY_STRING'])){
readfile("a.php");
include("monthly.php");
}
else{
include("monthly.php");
};
このあたりでつまっています。
というのもこのif文を延々と書いていかなければならないので……。

どういうふうに改変すできか、よろしければアドバイスお願いします。

0741nobodyさん04/06/08 16:32ID:???
>>740
http://php.s3.to/man/function.preg-match.html
0742nobodyさん04/06/08 16:32ID:???
>>740
何で困ってるのかいまいちわからんが、もしかしてswitch文で幸せになれるとか?
0743nobodyさん04/06/08 16:45ID:???
>740
$file = './hoge/' . $_SERVER['QUERY_STRING'] . '.php';
if (!is_file($file)){
 echo '氏ねカス';
}
else {
 include($file);
}
0744nobodyさん04/06/08 16:57ID:osVeuITe
早く!早く!PHPマンセーな理由を教えてくれよ!
お前がPHPを評価するに至ったプログラム言語遍歴を教えてくれよ!

WebProg板のPHP質問スレで、
PHPの良さを一つも語らずに逃れようなんて、
恥ずかしい事はやめてくれよ(ゲラプップ


0745nobodyさん04/06/08 17:20ID:???
カポコン、出番だぞ!
0746nobodyさん04/06/08 17:36ID:???
>>740
安全性が疑問だけど、

if (ereg('^([ab])$', $_SERVER['QUERY_STRING'], $matched)) {
readfile($matched[0] . '.php');
}
include('monthly.php');

でいいんじゃないの。
0747nobodyさん04/06/08 17:41ID:???
>>744
get up,up!なんてラッパーみたいですねw
0748nobodyさん04/06/08 18:07ID:???
たまたま。
俺の覚えちまったPHPがダメ、使い物にならないというなら、
覚える手間かけてまで他の言語を習得するメリットを教えてくれ。
0749nobodyさん04/06/08 18:10ID:???
マジレス乙
075074004/06/08 18:31ID:???
741-746さん

ありがとうございます。
とりあえずうまくできました……!

そうか、eregi使わなくても良かったのか……どうもです。
0751nobodyさん04/06/08 18:33ID:???
配列使えばいいじゃない・・
0752nobodyさん04/06/08 19:09ID:???
php4.3.3 -> 4.3.4にアップデートしてから
mb_convert_encoding()等のmbstring系を使うと
エラーが起きるようになってしまったのですが
これは仕様が変わったということなんでしょうか?

autoを抜くとエラーはでないんですがかわりに
何でもかんでも「UTF-8だ」と言い張るようになりますた。。_| ̄|○
0753nobodyさん04/06/08 19:21ID:???
どうゆうエラーよ。コンパイルするときに組み込んでないんじゃない?
0754nobodyさん04/06/08 19:46ID:???
fedoraデフォルトの4.3.3をyumコマンドで4.3.4にアップデートした状態です。
4.3.3の時には問題なく動いてたのですが・・。
0755nobodyさん04/06/08 20:12ID:???
>>754
エラーの内容を書けって言ってんだよ
0756nobodyさん04/06/08 20:51ID:???
>>748
プログラマとして生き延びられる
0757nobodyさん04/06/08 21:21ID:???
>>756
web限定な
075875404/06/08 21:30ID:???
ス・・スマセン
吐き出されるエラーは
$body=mb_convert_encoding($body,"EUC-JP","auto");
に対して
-----
Warning: mb_convert_encoding():
Unable to detect character encoding in 〜〜.php
-----
mb_convert_encoding($body,"EUC-JP","ISO-2022JP"):
とか指定してやれば変換はできますが
エンコードが何かを取得できない状態なのでなんとも・・。
0759nobodyさん04/06/08 23:01ID:???
「Zend Studio」という物を見つけたのですが、これは自宅鯖がなくても
PHPの勉強(動作テスト)が出来るということでしょうか?
0760nobodyさん04/06/08 23:04ID:???
>>758
根本的な解決にはならんかも知れんけど、

$enc = mb_detect_encoding($body);
$body=mb_convert_encoding($body,"EUC-JP",$enc);

なんてどう?
ちょっとダサいけど、$bodyのエンコードが不確定のときは
一考の余地ありかと。


076176004/06/08 23:11ID:???
スマソ。エラーの内容から察するに、これもだめかもね。
ところで、$bodyにはどういう内容が入ってるの?
0762nobodyさん04/06/08 23:20ID:LWtWiDp3
mail関数でJ-PHONE ユーザーにメールが送れない
$email_to = 'xxx@docomo.ne.jp';

にすると正常にドコモの携帯で受信出来ます。

J-PHONEの機能である、ドメイン指定受信・拒否などの設定は一切してません。

どなたか、J-PHONE用のサイトを構築された方で、
上記の現象の回避策が分かる方、アドバイス頂けないでしょうか?
0763nobodyさん04/06/09 00:02ID:???
俺ぶっちゃけPHPとPerlとJavascriptとしかわかんないんだが
プログラマーって名乗っていいのか悩んでる
0764nobodyさん04/06/09 00:51ID:???
>>759
「Zend Studio」自体が自宅鯖。
インターネットに繋がってる=自宅鯖ではない。
# 自宅鯖=自宅にある(自前の管理下にある)サーバ という意味でもないか。
0765nobodyさん04/06/09 01:29ID:???
>>758
根本的な原因は無知ですが、とりあえず下のような長ったらしいコードかいてしのいでます
$newphrase = mb_convert_encoding($newphrase, "EUC-JP", "UTF-8, UTF-7, ASCII, EUC-JP,SJIS, eucJP-win, SJIS-win, JIS, ISO-2022-JP");
0766カポコン04/06/09 02:58ID:???
まーぶっちあけちゃったんでしょうが、
2chで本音トークをしてくれたあなたにむしろ感謝します。

正解は・・・
自分がプログラマーと思えばプログラマーです。

プログラマーっぽい人の例↓
ttp://www.sun-inet.or.jp/~yaneurao/rsp/
ttp://www2.biglobe.ne.jp/~oni_page/other/etc/pr03.html
こういう人を目指しなさい。
076775404/06/09 03:05ID:???
>>761
$bodyの中はメールの本文が入ってます。
php始めたばかりであまり経験がないのでわからないのですが
やはり一応エンコーディングを調べてEUC-JPに変換した方が
いいかと思ったんですが・・。

>>765

何度試してもダメだったので新規ファイルにその方法で
encoding -> detect -> encoding -> detect
を繰り返すだけのphpを書いてみたところそれでいけました。
メールの本文のエンコだけは取得できなかったみたいで・・何故だ

調べてるとそれと似たような感じのでphpの頭に
mb_detect_order("UTF-8, UTF-7, ASCII, EUC-JP,SJIS, eucJP-win, SJIS-win, JIS, ISO-2022-JP");
を入れると
$newphrase = mb_convert_encoding($newphrase, "EUC-JP")
で、同じように判別できました。

でもメール本文のエンコはとれないのか・・○| ̄|_=3
076833004/06/09 03:14ID:???
>>762
Eメールの文字エンコードは”ISO-2022-JP”がデフォだと思われ
0769nobodyさん04/06/09 04:59ID:???
>>765
おー、同じ人がいた。
0770nobodyさん04/06/09 05:55ID:???
>>766
やねうって面白い人なんだけど何も作ってないんだよねー
077175904/06/09 06:04ID:???
>>764
なるほど。ネットに繋がってる必要は無いんですね。ちょっと違った解釈をしてました。
しかし実際自サイトでソースを稼動させるためにはphpが使える環境じゃないといけないわけですよね。
biglobeに加入しているのですが、使えるかどうか調べてみます。

自鯖持たないと駄目ってなったら、ちょっと敷居が高いかも・・。
もう一台PCあるんですがCDドライブがないんですよね。むー困った
0772nobodyさん04/06/09 08:47ID:???
さすがカポコン氏。
開発者同士のネットワークもちゃんと出来てますね。
やはり上級スキルを持つ者同士の切磋琢磨が
さらにその上のレベルへステップアップする原動力となっている訳ですね。
頭が下がる思いです。
0773nobodyさん04/06/09 08:50ID:???
>>771
まだ少し勘違いしていると思われ。
回線を通じてWWWに繋がってはいなくても、PCの中ではネットワークに繋がっていますよ。
んで、phpはPCにインストールすればよいだけで、プロバイダは一切関係ないです。

余っているPCにCDドライブが無くてもLANを組むとか、外部のネットに接続できる環境
ならオンラインストレージを使ってファイルを転送するとか可能ですよ。
まぁ普通はLANでするほうが手っ取り早いと思いますが。
0774nobodyさん04/06/09 08:51ID:???
>>772
ジサクジエンはお腹いっぱいです。
077575904/06/09 09:00ID:???
>>773
Apache、PHP、PostgreSQLを使ってDBとWebの連動を夢見てたんですが
これはZendStudioをインストールすれば解決することで使えるのでしょうか?

>回線を通じてWWWに繋がってはいなくても、PCの中ではネットワークに繋がっていますよ
例えば第三者に私のサイトを閲覧してもらうとして、そのソースの中にPHPを使うことも可能ですか?
077676404/06/09 09:03ID:???
一部自分が勘違いしてたところがあったのでフォローしときます。

http://www.zend.co.jp/products/studio/
を見てもらうと判るんだけど、C/S構成でもClientのみの構成でも
PHPの開発は行えることは判ると思う。しかし自宅"鯖"かどうかを
考えた時にClient構成のみの場合、一般のブラウザで結果を
表示出来るわけではないので、"(Web)鯖"とは呼べないです。
鯖となるのはC/S構成で、その際もWeb鯖はZendStudioが担うのでは
ではなくて普通のhttpdが担う。

で、図のC/S構成だけどClientとServerと別にしてServerマシンを
用意しないといけないかというと、そんなことはないです。
実際自分が同じマシンにぶち込んでますが大丈夫。あとC/Sというのは
インストールするソフトウェアの違いであって、ZendStudioを買うと
C/Sの両方のソフトウェアが入っています。対応するOSについても同様。
所謂製品パッケージとしてみた場合、1種類だけです。
# PEとか日本語ローカライズ版とか、SOHOパッケージに同梱の奴とかありますが。

ただZendStudioは富豪的な環境が必要だと感じる。
CPUが1GMHz以下のクラスだと結構苦しい。
0777nobodyさん04/06/09 09:04ID:tQM0yX6Y
>772
ハライテーw
0778nobodyさん04/06/09 09:22ID:???
なんか最近は微笑ましくなってきたよ…俺疲れてるのかな。
077975904/06/09 09:28ID:???
「C/S構成」という言葉がわからないのですが、とりあえずBiglobeのスペースに
サイトを置いて私のPCにZendStudioをインストールすると
PHP部分の処理は私のPCを参照して行われるということですね。
つまりBiglobeとは関係なく、しかも別途PCを用意しなくても済むと。

ちなみに私の環境は
WinXP IE6
AthlonXP 1700+
PC2700 512M
Bフレッツ
という感じです。

現在の主流のPCと比べると見劣りするので、少し不安はありますがphpが動くだけでも夢のようです。
夢はPHP、Apache、PostgerSQLとWebの連動と書きましたがまだ全然理解できてないので
遠い未来になりそうです。検索かけてデータを表示したり、日記などに使おうと思ってます。

それにしてもZSは高いですね。Ver2.5が安売りで近所にあるので買ってみます。
簡単な仕組みでもDBを使ったものに憧れていたので、凄く楽しみです。どうもありがとうございました!

0780nobodyさん04/06/09 09:29ID:???
>>775
自宅の鯖(PC)を回線を通じて第三者に公開することはもちろん可能。
レンタル鯖やISPのスペースを用いる場合と違い、あなたのPCにPHPやDB
が入っていればそれだけでよいです。

>そのソースの中にPHPを使うことも可能ですか?
やや意味不明ですが、PHP自体ソースではないかと。
ソースを見てもらう=X
実行した結果を見てもらう=O
という意味なら通じます。
078176404/06/09 10:50ID:???
>>779
そんなに急かなくて、買う前にちゃんと検討した方が...
http://www.zend.com/store/evaluation.php?pid=77&download=1
http://www.zend.com/store/products/zend-studio-personal.php
PE版はVer.3の目玉機能(それも有用な)が殆ど
スポイルされてるので、まあ本当に個人ユース。

個人的には"日本語版"のZendStudioを、企業ユーザ以外で買うっつうのは
VisualなんちゃらProを買うを個人で買うよりも限定されたケースだと思うよ。
使ってる自分がいうのも何だが。
0782nobodyさん04/06/09 12:20ID:???
>>779
イマイチ何がしたいのかはっきりしませんが、お使いのパソコンに
Apache/PHP/PostgreSQLの環境を整えるのだけが目的なら
ZendStudioなんぞ買わんでも無料でできますぜ?

ただ、Windowsのままっていうなら、よく知らないがPostgreが少しネック?
最近はまともなWindows版ってあんのかな?
078375904/06/09 13:55ID:???
>>780
おぉ〜安心しました。
「そのソースの中にPHPを使うことも可能ですか?」というのは「実行した結果を見てもらう」という意味でした。

>>781
そんなに稀なケースなんですか・・。うーん個人でPHPの開発が出来ると書いてあったことに
惹かれたのですが、もしかしたら私には当てはまらないのかもしれませんね。

>>782
Apache/PHP/PostgreSQLの3つは無料で導入できるというのは
有名なので知っていたのですが、Winだと難しいらしいので敬遠していました。
あと1台あるにはあるのですが、例えばLinuxを入れようにもCDドライブがついてないので
OSをインストールが出来ません。>>773が言われているようなオンラインストレージの利用で
空のPCに新規でOSをインストール手段があれば、少し楽なのかもしれませんが。


ここで1つ疑問なのですが、例えば「Apache/PHP/PostgreSQLを使ってみたい。
でも自宅鯖なんて無理なので環境を整えられない」という場合、個人で楽しむことは出来ないのでしょうか?
自宅で勉強して最終的にはWeb上にアップし、不特定多数の人が閲覧可能にしたいです。

078478204/06/09 14:21ID:???
>>783
「自宅鯖なんて無理なので」ってどういう意味なん?
サーバたてるような勉強はできないっていうなら、ムリだろうね。

ハード的なもの言ってるなら、サーバってものを勘違いしてそうだけど、
サーバソフトが動いてりゃその使ってるXPパソコンだってサーバだぞ?
一台でサーバもクライアントも兼ねさせればいい。

PostgreSQLがネックと言ったのはApacheやPHPよりは敷居が高いかもしれんってことで
不可能なわけじゃない。必要なら勉強しれ。
WinでPostgresがしたいならどのみちZendStudio買っても回避できない道だ。
0785nobodyさん04/06/09 14:35ID:???
ローカルでのテスト環境というのはようするに、自分のPC内で動いてるサーバソフトに
自分のPC内で動いてるブラウザでアクセスするだけの話なので、とりあえずphpとapacheと
ポスグレをインスコすれば完成。winでならMysqlのほうが手間無くていいと思うけど。
個人ユースのZendStudioはPHPスクリプトを書いたりデバッグしたりするツールなので、
当面とって必要なし。
0786nobodyさん04/06/09 14:37ID:???
>>766
>ttp://www2.biglobe.ne.jp/~oni_page/other/etc/pr03.html
僕もカポコン殿のようなスーパープログラマーになりたいな
078778604/06/09 14:41ID:???
あー、間違えた(;´Д`)
ttp://www.sun-inet.or.jp/~yaneurao/rsp/
078875904/06/09 14:55ID:???
>>784
自宅鯖が無理と書いた理由は
・もう一台のPCにCDドライブが付いていない
・現在同居人が常に使っているPCが別にあるので、3台になると電気代がかかる
・場所的に熱気がある所なので、常時起動だと火事が怖い
ということでした。決して勉強嫌いではありません。

かといって今私が使用しているPCだとWinXPなので、困ったときの情報量が少ないと
書いてありました。まずはいろいろ試行錯誤してみます。

>>785
そうですね。どちらにせよZendStudioは必要ないみたいなので選択肢からはずすことにします。


そんな折http://www.a-zia.net/PHP/を見つけました。
無料なソフトでWinにApache, PHP, Perl, MySQL, phpMyAdminを一括簡単にインストール
してくれるソフトらしいです。まずはこれで試すのもありかもしれませんね。
0789nobodyさん04/06/09 15:07ID:???
Postgreはどうする?PowerGresは有償だよな?やっぱCygwinか
0790nobodyさん04/06/09 15:07ID:Mrfvz21B
すまぬが、教えてくんなまそ。

JavaDocみたいな仕組みってPHPにありませぬか?
コード内に決められたフォーマットでコメント記述して、後でHTMLかなんかに
出力するような。

よろしくお願いします。
079179004/06/09 15:09ID:Mrfvz21B
ありゃ。もしかして・・・
PHPDocでOk?
0792nobodyさん04/06/09 15:09ID:???
>790
PHPDocとかPHPDocumentorがある
0793nobodyさん04/06/09 15:09ID:???
>>789
とりあえずMySQLを入れて、PEAR::DBを使う。
サブクエリやストアド、トリガーが使えないけど…。
0794nobodyさん04/06/09 15:12ID:???
>788
どうでもいいけど、自鯖つったって公開するわけでなしApacheが押し込めるPCならエニシングウィルドゥ

>790
phpdocumentor
0795nobodyさん04/06/09 15:17ID:???
>>793
そのうちなんとかなるんじゃね。
079675904/06/09 15:55ID:???
>>794
>自鯖つったって公開するわけでなし
物凄くモヤモヤした疑問があるんですが、質問良いでしょうか?

さきほどphpdevを使って無事Apache, PHP, Perl, MySQL, phpMyAdminのインストールが完了しました。
この環境で趣味のサイトを作って、Biglobeのサーバにアップしたとします(例:index.php)
これはきちんと動くのでしょうか?どうも引っかかっている点がphpの動作は私のPCに依存するのか
Biglobeのサーバに依存するのかというところです。

私の方のローカルではindex.php(簡単な時間表示)が動くのは確認したのですが
これはWWW上にアップしたとしても、私のPCが落ちているときは他の方は閲覧できないような気がします。
考えが間違ってたらスミマセン。それともBiglobeのようなウェブスペースではphpやMySQLは使えないのでしょうか?



0797nobodyさん04/06/09 15:57ID:???
( ゚Д゚)ポカーン
0798nobodyさん04/06/09 15:58ID:???
>これはWWW上にアップしたとしても、私のPCが落ちているときは他の方は閲覧できないような気がします。
そんなんなら、レンタルサーバの存在意味がないと思うけどね
少しは考えたら?
0799nobodyさん04/06/09 16:04ID:???
>>796
PHPの勉強の前にWEB全般について、何か一冊読んだほうが良いと思われ。
あとBiglobeのサーバでできることは、Biglobeに聞くのが一番ですよ。
0800nobodyさん04/06/09 16:16ID:???
なんかスゲーのが来てるんだな。
PHPスレのみなさん、ご愁傷様。
0801nobodyさん04/06/09 16:31ID:???
>>793
PEAR DBを使うと、PosgreSQLでもMySQLでも同じコードで処理できるという認識でよい?
080275904/06/09 16:36ID:???
>>798
ということはBiglobeでApache、PHP、PostgerSQLが使えるかというところがポイントになるわけですね。
いろいろありがとうございました。
0803nobodyさん04/06/09 16:41ID:???
ちゃんとわかって>802の発言してるのかすごく不安だよママン
0804nobodyさん04/06/09 16:43ID:???
>>801
PostgreSQLとMySQLに実装されている機能しか利用しないという前提ならな。
さすがにDSNは書き換えんと遺憾が。
0805nobodyさん04/06/09 16:52ID:???
(ローカルにつくる環境はテストするためだけに鯖側の構成に似せてつくる擬似的なもの。
実際に訪問者が利用することになるのはアップロードされた鯖側のシステム。)
080675904/06/09 17:04ID:???
>>803
BiglobeのサーバにApache、PostgreSQL、PHPがインストールされている状態で
よほどVerが違わなければ、ローカル側(私の環境)で動くものと同じ動作をする。

なのでBiglobeに「PHPを使ってPostgreSQLのDBと連動させたいんですが可能でしょうか?」と質問する。
これで合ってると思うのですが、どうでしょうか?
もし間違っていたら突っ込みお願いいたします。



0807nobodyさん04/06/09 17:11ID:???
お前らもあんま馬鹿いじくって遊ぶなよw
流れ見ててワロタよw

いじるのも程ほどに、適当なとこで引導渡してやりなよ
0808nobodyさん04/06/09 17:20ID:???
確かに勉強不足ではあるとは思うが真剣に悩んでる奴を笑うお前の方が馬鹿みたいだぞ

>>806
その考えで概ね合ってる。biglobeに電話なりメールなりして聞いてみるといい。
が、これからwebprogやっていくのならもう少し勉強汁。書籍なりサイトなり漁ってみれ。
0809nobodyさん04/06/09 17:25ID:???
>>806
ん、まあ本当はその質問の意味がわかってから質問するのがベストなんだがな。
でないと、相手が何か聞いてきたり、相手が説明してくれてもわからないかも
しれないしな。
恐らくその質問でおまいさんが聞きたいと思ってる事に間違いは無いと思われ。

ぶっちゃけ、ここで質問するよりちゃんとした本を読んだ方が良いと思う。
081075904/06/09 17:31ID:???
>>808-809
はい。あまりにもわからないことだらけで反省してます。
基本から勉強した後でもう一度チャレンジしてみようと思います。
スレ汚し申し訳有りませんでした。
0811nobodyさん04/06/09 17:40ID:???
>>808
最低限の知識というものがある
何も知らずにノコノコこられても困るだけ
それほど善人ぶりたいのか?
0812nobodyさん04/06/09 17:48ID:???
わかったわかった。俺が悪かったよ(w

いつの間にか初歩的な質問へシフトしていったんだから、途中で切るのもかわいそうだろ。
結果的に反省して勉強するって言ってるじゃん。そんなに、いちいち怒るほどのことか?
困るなら君はスルーすればいいだけだ。もう少しカルシウム取れ。
0813nobodyさん04/06/09 18:00ID:???
>>811
あんさんにもその「最低限の知識」の存在すら知らず、
何を調べればいいかすら解からなかった時期はあったはず。

勿論自助努力は必要だが、その前段の基礎知識のない人間に
何を調べるべきかのヒントぐらい与えるのはいいだろ?
0814nobodyさん04/06/09 18:02ID:???
とりあえずカポコン出てこい
0815カコポソ04/06/09 18:07ID:???
呼んだ?
0816nobodyさん04/06/09 18:08ID:???
>>815
( ´∀`)σ)Д`)
0817nobodyさん04/06/09 19:19ID:???
>>813
調べることもしてない奴に教えるのか
0818カポンコ04/06/09 19:49ID:???
俺を騙るとはいい度胸だ
0819nobodyさん04/06/09 19:53ID:???
>>817
その話はもういいじゃん。失礼だけど、友達少ないだろ?
正直言って、ネチネチ気持ち悪いよ・・
0820nobodyさん04/06/09 20:00ID:IFu+860b
友達0、彼女居ない歴=年齢のブサメンキモヲタ童貞の俺が来ましたよ
0821nobodyさん04/06/09 20:29ID:???
>>820
そこまで言う必要もないだろ。>>817がかわいそうだ(w
0822nobodyさん04/06/09 20:49ID:???
>正直言って、ネチネチ気持ち悪いよ・・

( ゚Д゚)ポカーン・・・
どっちが粘着か分かってない。。
ストーカーもそうだよね、自分ではストーカー行為してると”認識”できてない
0823nobodyさん04/06/09 20:50ID:???
レスに、”友達”の話をわざわざ持ってくるのって、自分が居ない場合が多いんだよなw
ワロタぞ>>819
0824nobodyさん04/06/09 21:17ID:???
こういうときに颯爽と某固定が出てきて話題変えてくれりゃいいんだが、
ツカエネーヤツなんだなカポコンって
0825ロボコン04/06/09 21:25ID:???
呼んだ?
0826nobodyさん04/06/09 21:37ID:???
ディレクトリを作成して、そのディレクトリにファイルをアップロードする
PHPプログラムを作成しようとしているのですが、
下記のようなプログラムでは首尾よく動作しないようです。

$old_mask = umask(0);

if (!mkdir( $dir_path, 0777 )) ;//error
elseif (! chown( $dir_path, 'lysk' )) ;//error
elseif (! move_uploaded_file( $tmp_path , $dir_path.'/'.$file_name )) ;//error
else // success

umask($old_mask);

エラーではuidが異なる、との事なのですが、
何か解決策はないでしょうか?
082782604/06/09 21:37ID:+yhnwBMA
すみません、ageます。
0828nobodyさん04/06/09 22:49ID:???
きもオタとヒッキーの醜い争いには辟易しますね。
ここらでカコポンさんのウィットにとんだプログラム談義でも聞きたいなぁ。
0829nobodyさん04/06/09 22:55ID:???
>>483
ここに逝けば会えますよw
http://board.aaacafe.ne.jp/
0830nobodyさん04/06/09 22:56ID:???
>>483=X
>>828=O
0831nobodyさん04/06/09 23:06ID:???
カポコン氏がいなくなるととたんにスレのレベルが下がりますね。
2chだからしょうがないとは言え、あまりカポコン氏の足を引っ張るような
発言は控えるべきではないでしょうか?>皆さん
0832nobodyさん04/06/09 23:29ID:???
>>831
スレ違いな「雑談の」レベルの話しならそうなりますね。
0833カンポコ04/06/10 04:04ID:nLvlGUQO
お前ら全員学習ルーム行き。
0834オチンコ04/06/10 07:25ID:???
オマエモナー
0835nobodyさん04/06/10 08:31ID:???
>>822
はぁ?俺がずっとレスしてると思ってるのか?

っつーか>>822 = >>823丸分かりだし
0836nobodyさん04/06/10 09:19ID:24VeZA6J
>>835
もう終わった話題掘り起こすなハゲ
キモスギ( ´;゚;ё;゚;)
0837nobodyさん04/06/10 10:07ID:???
>>826
safe mode をoffにする。
0838nobodyさん04/06/10 11:07ID:???
>>836
顔真っ赤にしてまで上げるな馬鹿
0839nobodyさん04/06/10 13:09ID:???
>>835
アイタタタ・・・
粘着厨の上に認定厨か
0840nobodyさん04/06/10 14:15ID:???
>>839
オマエモナー
0841nobodyさん04/06/10 14:57ID:???
>>838
プッ
モニターに映ってる顔見てみろwwwwwwww
0842nobodyさん04/06/10 15:08ID:???
>>841
キムタクにそっくりの男が写ってる。
0843nobodyさん04/06/10 15:23ID:???
>>842
うp
0844nobodyさん04/06/10 15:38ID:???
キムタクが居るスレはここですか?
0845nobodyさん04/06/10 15:45ID:???
托タク
0846nobodyさん04/06/10 15:58ID:???
>>841
自分のこと言ってどうするw
0847nobodyさん04/06/10 15:58ID:???
オマエモナーって死語じゃなかったんだ
0848nobodyさん04/06/10 16:02ID:???
金托
0849nobodyさん04/06/10 16:12ID:???
>>842
やーいブサイク
0850nobodyさん04/06/10 16:40ID:???
>>849
キター
0851nobodyさん04/06/10 17:07ID:???
カスばっかになったなwwwwwwwww
0852nobodyさん04/06/10 18:01ID:???
漏れは今日からPHPはじめまつ
よろすく
0853nobodyさん04/06/10 19:01ID:???
ただいま在庫処分のため即レス大サービス中!
良質な質問には今回限りの特典が!

>>852
はじめる前にまず質問
0854nobodyさん04/06/10 19:04ID:???
即レス期待してます!
ZeevとAndiはそれぞれどこの国の人(生まれ)ですか?
0855nobodyさん04/06/10 19:25ID:???
イスラエル?だっけ?しらない
0856nobodyさん04/06/10 20:10ID:???
>>851
オマエモナー
0857nobodyさん04/06/10 20:41ID:???
>>855
イスラエルで合ってると思う
http://www.itmedia.co.jp/news/0101/24/e_zend.html
085885404/06/10 20:48ID:???
>>855,857
あんまり"即"じゃなかったけどありがとう
Zeevってかっこいい名前だと思ってたんだよ
085985304/06/10 21:12ID:???
飯食ってジョギングして風呂入っている間に解決しちまったか
0860nobodyさん04/06/10 21:16ID:O23c+QRz
質問でございます。
クラスの継承とコンストラクタに関してなんですが、
例:
class A {
function A(){
echo "A";
}

class B extends A {
function B(){
parent::A(); // 親コンストラクタ
echo "B";
}
}
で、
$b = new B();

としたときに、Aのコンストラクタも呼ばれるようにするには、
parent::親クラス名()

なんでせうか?
なんかせっかくparentってあるのに、親のクラス名の
メソッドを呼び出すのに違和感があるんですが。ほかに方法があったら教えてくだちゃい。

0861nobodyさん04/06/10 21:32ID:???
$this->A();
でもいい

というか
parent::A();
のAは親クラス名と考えるからしっくりこないんじゃない?
parent::親クラスのメソッド名
と考えればしっくりくるんでないかい
0862nobodyさん04/06/10 21:45ID:???
>860
意味が分からんが、parentで呼び出すのはコンストラクタだけじゃない以上どうしようもないんじゃないか。
サブクラスにコンストラクタがないと親クラスのコンストラクタが自動で呼ばれるから嫌なら書かなくてもいいけど。
0863nobodyさん04/06/10 21:50ID:???
>>862
>parent::親クラス名()
861が書いてるが、これはメソッド名であって「親クラス名」じゃない、というだけの話。
つーかそんな仕様あったのか。マニュアルに書いてあったっけ。
086486004/06/10 22:31ID:O23c+QRz
>>861-863
ありがとさんです。

PHPのマニュアルの「親クラス」ってとこには↓のように書いてあるんですね。
>コードの基底クラスのリテラル名を使用する代わりに、
>特別な名前 parentを使用する必要があります。
>この名前は、 クラスのextends宣言で指定された基底クラスの名前
>を指しています。これにより、基底クラスの名前を複数の場所で
>使用する ことを避けることが可能です。実装の際に継承ツリーを変更した場合でも、
>変更は簡単で、クラスのextends宣言を変更するだけ ですみます。

ついでに、「コンストラクタ」のとこには
>PHP 3 および PHP 4のどちらでも派生クラスのコンストラクタから基底
>クラスのコンストラクタを自動的にコールすることはできません。
>上流のコンストラクタを適切にコールするように伝播させることは
>あなたの責任でやるべきことです。

とあるんで、parent::親クラス名に行き着いたわけなんです。
別に継承ツリーを変更するのを簡単にしたいというわけではないんだけど、
(っていうかそんな状況は考えたくもないですが)
Javaの「super()」みたいに「parent()」とかできんもんかと思ったわけです。

と、いうわけで、納得しました。
ありがとうございました。
0865nobodyさん04/06/10 22:31ID:B73mvqde
コーディングの質問じゃないんですが、よいでしょうか?
データベースを活用したウェブプログラミングがしてみたくて、今度phpをはじめようと思います。
それまで、プログラムはほとんど書いた事がないんですが、最初の一歩としては、やはりマンモス本のようなものを買ってきて、
環境をそろえて、試しながら勉強するのがいいでしょうか。
自分の使ってるウェブホスティングサーバーには、PHP3/4が使用可能と書いてあるんですが、この場合、3を勉強してから4うを勉強したほうがいいのかな。
それとも、4の入門書とかも充実してますか?

もしよろしかったらアドバイスお願いします。
0866nobodyさん04/06/10 23:12ID:???
>864

parentが親クラス名を指してるんじゃないの?
parent = 親クラス
なんで、
prent::メソッドは
親クラス::メソッドと同意かと。
0867nobodyさん04/06/10 23:18ID:0Ch08L+0
phpのmail関数を使ってEZに送信して
ある端末では受信できるのに
ある端末では受信できません。

各地方毎のEZメールサーバで受信設定が違っていたりするのでしょうか?

0868nobodyさん04/06/10 23:31ID:0Ch08L+0

すみません、有る端末とはEZ端末のことです。
086986304/06/10 23:40ID:???
そんな仕様ってのは親コンストラクタが自動で呼ばれるやつのことね。
0870nobodyさん04/06/10 23:54ID:???
>>867-868
EZ端末のことをここで聞いてどうする?
EZメールサーバのことをここで聞いてどうする?
0871nobodyさん04/06/10 23:56ID:???
>>865
5が出ようかって時に3の勉強しなくてもいいでしょ。
0872nobodyさん04/06/10 23:57ID:???
>>865
バージョンてそういうもんじゃないだろw
php4から始めればいいよ。
これからやろうというなら3を気にするよりは5のほうを横目で見ておいたほうが。
phpは仕様変更が激しい。参考資料が古くて「サンプルどおりやってるのに動きません」的な
ハマリがこのスレでも度々出るので、テキストは古いものより新しいものを。
いずれにしても互換性を失うような差異はマニュアルに注がある(はず)ので、
php3についてはそこでフォローする程度でいいと思う。
(phpの歴史について知りたいというなら勉強したほうがいい?)
0873nobodyさん04/06/11 00:01ID:???
>>870
答えられないなら書くな
0874nobodyさん04/06/11 00:06ID:???
>>873
いや、でも、その通りだろ。スレ違い。
0875nobodyさん04/06/11 00:11ID:knpGp2r3
ヘ ッ ダ 情 報 (WEBプログラミングなら当然?)

などについて答えられるかと思ったんですけど
答えられる方がいないので、違うスレで質問しようと思うんですけど
どのスレが良いでしょうか?

それとも、ちゃんとしたMLに聞いたほうがいいのでしょうか?
0876nobodyさん04/06/11 00:14ID:???
>>875
お前は誰?
>>867か?
0877nobodyさん04/06/11 00:18ID:???


むづかしい質問はMLであながいします。


0878nobodyさん04/06/11 00:20ID:???
>>875
まともに質問も出来ないくせに答えられる方がいないとか言ってる人はMLへどうぞ。
0879nobodyさん04/06/11 00:24ID:???
釣りと便乗騙りだろ。ほっとけよ
0880nobodyさん04/06/11 00:35ID:???
経験上

簡単な質問=>誰でも答えることが出来てレスが速いのでこのスレを利用しる
むづい質問=>答えられる人が限られてくるので時間がかかってもMLを(以下略

てかこのスレは質問に答えるというより雑談スレに近いけどな。
0881nobodyさん04/06/11 00:47ID:???
どうした。スレの流れから激しく外れてるが・・・。
つーか今はどこの技術系mlもホント大変なんだからホイホイ誘導かけるのはやめたれよ。
http://pc5.2ch.net/test/read.cgi/php/1085576406/
0882nobodyさん04/06/11 00:57ID:???
php.gifのロゴってダサいよな。
0883nobodyさん04/06/11 01:57ID:???
>>882
喪前が作って提供汁。
0884nobodyさん04/06/11 05:44ID:???
>>883
んじゃこんなのはDo?
ttp://matsuya.dyndns.tv/2ch/img-box/img20040611054229.gif
0885nobodyさん04/06/11 07:38ID:???
>>884
いまいち
0886nobodyさん04/06/11 09:05ID:???
俺は好きだけど。BBSのロゴとしてファンシーな
感じ好まれるが、言語ととしてのロゴには向かんと思う。
かといってデジタルっぽいのは駄目だしねぇ。


0887nobodyさん04/06/11 11:50ID:???
アナログでファンシーではないロゴ
0888nobodyさん04/06/11 11:55ID:???
同案多数だろうけど。
http://www.php.co.jp/images/logo.gif
0889nobodyさん04/06/11 13:32ID:???
>>864
遅レスですが、PHP5からは、コンストラクタ名に _construct が
使えるようになるので、parent::_construct のように使用することを
想定しているのだと思います。
0890nobodyさん04/06/11 14:43ID:K5FDKUKd
explode関数で半角スペースと改行で文字列を区切りたいんですが、どう指定すればよいでしょうか?
0891nobodyさん04/06/11 14:44ID:???
preg_split
0892nobodyさん04/06/11 15:13ID:nBugQ+Dj
>>890
print_r(split("\n| ", "a\nb c\nd\ne f g\nh"));
0893駆出しPHP04/06/11 17:11ID:???
$file = "./file.csv";

function Open_File(){
global $file;
$data = file($file);

}



Open_File($file);
function Open_File($file){
$data = file($file);

}

って、どっちがスマート?関数の中に持ち込みたい変数がいっぱいあるときとか、困っちゃうんだけど。
0894nobodyさん04/06/11 17:13ID:???
後者
0895nobodyさん04/06/11 18:05ID:???
phpとか言語に関係なく後者だろ。
たとえ引数が一杯あっても、必要なら渡せばいい。いや渡すべき。
089689304/06/11 18:34ID:???
なるほど、ありがとです。これからも精進していきます。
0897nobodyさん04/06/12 13:47ID:cU3nmCOb
ファイルの1行目だけを書き換えるとき
$fp = fopen("$filename","r+");
fseek($fp, 0);
fputs($fp, "hoge");
fclose($fp);
だと、1行目の文字数が増えたときに2行目が削られてしまいます。
どうすれば、そうならないようにできるでしょうか?
0898nobodyさん04/06/12 13:52ID:???
全部を書き出しなおす
0899nobodyさん04/06/12 13:57ID:???
PHP5インストールしてみたらDOMが使えなくなったんだが関数名変わった?
PHP5への移行手順見ても変更点に書いてないんだよね。
ビルトイン関数になったことはチェンジログに書いてあったんだけど。
SimpleXMLは既にマニュアルに載ってるのになぁ。
090089704/06/12 13:58ID:???
>>898
そうすることにします。
ありがとうございました。
0901nobodyさん04/06/12 14:50ID:???
ちなみに>>897のfseekまったく意味ないぞ
0902nobodyさん04/06/12 14:51ID:7kZvk3xj
質問させてください。
現在表示しているページ(PHPのページ)のソースコード(HTML)を、
ページのボタンを押したらクリップボードに貼り付けるにはどうしたらいいか教えてください。
0903nobodyさん04/06/12 14:57ID:???
Q.ページのボタンとは?
A. >>904
0904nobodyさん04/06/12 15:01ID:???
>>902
PHPじゃなくてJavaScriptです。web制作へ行ってらっしゃい
0905nobodyさん04/06/12 21:49ID:???
ついにJSの質問まで
0906nobodyさん04/06/12 22:28ID:rmxeznmT
ありがち。
0907nobodyさん04/06/13 01:21ID:aBgu1BW2
プログラム初心者(VBA程度)ですが
LAMPで簡単なシステムの鯖を立てたいと思います。
PHP学ぶのにお勧めの本がございましたらお教えください。
0908nobodyさん04/06/13 01:37ID:???
>>907
本屋に行って見て来い。
自分で理解できると思うのを買えばいいだろ。
0909nobodyさん04/06/13 02:14ID:+VXh+rkJ
phpで、テキストファイルに書き込みをしたいのですが、
その際にテキストファイル内で「改行」をさせるには何を書き込めばいいんでしょうか。
0910nobodyさん04/06/13 03:16ID:JLZr3UnG
\r とか \n とか
0911nobodyさん04/06/13 03:21ID:???
質問です。
このようにクエリーを拾うように設定して、
$PIX1 = aaa.jpg;  //画像1
$PIX2 = bbb.jpg;  //画像2

if( !empty($_REQUEST["pix"]) ) {
$PIX = $_REQUEST["pix"];
}
<body>
<a href="#top?pix=$PIX1">ここをクリックして画像1を表示</a>
<a href="#top?pix=$PIX2">ここをクリックして画像2を表示</a>
<img src="$PIX" >

</body>

同じHTML内でこのようにリンクさせて送られたクエリーを元に
変数を入れる事は出来ないでしょうか?
問題はスクリプトがおいてあるファイル自信が送信している事で、
やっぱりsubmitとformを使うしかないんでしょうか?
091290904/06/13 03:42ID:+VXh+rkJ
>>910
ありがとうございます。
最初\nを使っていたのですが、改行できませんでした。
おかしいなと思いいろいろやってみたら
fputsするときにダブルクオーテーションで囲んだらできました。
ありがとうございました。
0913nobodyさん04/06/13 03:50ID:+VXh+rkJ
もう一つ質問させてください。


phpで掲示板のようなものを作っているんですが、
掲示板の「投稿」ボタンを押すと別窓でphpの投稿フォームが開くようになっているんです。(javascriptで別窓開)

投稿フォームでは、フォームに入力されたものをテキストファイルに書き込むのですが、
投稿されたものをすぐ掲示板の表示に反映したいのです。

掲示板の表示もphpによるもので、
テキストファイルで用意されたlogを読み込んで表示しているのですが、
フォームにより投稿されたら、その窓を自動で更新するようにしたいのです。

何かいい方法はありますでしょうか。
0914nobodyさん04/06/13 06:42ID:Kyi4KU36
PHPの掲示板なんですが、クッキーをチェックするようになって
いるので、そのままでは携帯から書き込めないので、
if(!isset($_COOKIE[PON])&&($HOST!=="^proxy.+\.docomo\.ne\.jp$")){
DispError("■ 書き込み確認 ■");
}
のようにしたのですが、相変わらず書き込めません。
文法的に間違っているのでしょうか?教えてください。
0915nobodyさん04/06/13 11:00ID:???
>>914
if(!isset($_COOKIE[PON])&&(!ereg('^proxy.+\.docomo\.ne\.jp$',$HOST))
だろ。
0916nobodyさん04/06/13 11:07ID:wH9a3wAG
PHP初心者です。宜しくお願いします。
私は現在、HTMLでサイトを作っているのですが、
サイト運営の簡略化と、動的コンテンツを作りたい為にPHPで
作ろうかと考えています。

さて、現在、SEOが大流行で、私のページもSEOが
功を奏してか GOOGLEやYSTからのアクセスが多少あります。
しかし、現在のHTMLをPHPにした場合、インデックス(クロール)されにくいと
聞きました。その改善策として

通常、ファイル指定せずにディレクトリで終わるURLを指定すると

例: http://pc.2ch.net/php/ など

index.htmlを表示しますが、 http://../php/ を指定した時に
http://../php/sample.phpを表示し、phpファイルでありながら
URL は ../php/ なので検索エンジンにクロールされる方法が
あるらしいです。

そこで、質問です。ディレクトリで終わるURL http://www.2ch.net/php/など
を指定した時にindex.html以外のソースを返す方法を教えて下さい。

お忙しい中、恐縮ですが、宜しくお願いします。
0917nobodyさん04/06/13 11:13ID:???
それはPHPの質問ではありません
.htaccessやhttpd.conf で設定してください
0918nobodyさん04/06/13 11:29ID:???
>>916
最近のロボットは賢いから静/動的コンテンツで
どうこうは余り考えなくていいよ。ちゃんと取ってくれる。
そんな考えてることよりコンテンツ自体を充実させるのが本質。
0919nobodyさん04/06/13 11:36ID:???
>>916
君が思うような PHPじゃない♪ もはや PHPじゃない♪
単にindex.phpで吐け♪ それがPHPじゃない?
0920nobodyさん04/06/13 12:06ID:???
>>911
#topが邪魔してるだけでないのん?
確か#以降はREQUESTとしては無視されたような。

>>913
投稿フォームのsubmit後のページで
javascriptを使って掲示板をリロードすればよいのでは?
どんな方法を使ったとしてもPHPは関係ない部分だよ。
0921nobodyさん04/06/13 14:14ID:JLZr3UnG
どうでもいい質問が多いな。
PHPの敷居が低いせいか。
0922nobodyさん04/06/13 14:24ID:???
WinXP(pro) +PhpDev(php4.3.5)環境です。
SyntaxCheckなんぞやってみたくてDOS画面から
c:\phpdev\php\php.exe -l c:\phpdev\www\test.php
と、やっても何も表示されません。test.phpには、
<?php
   for($i=1; $i<=10; $i++){
      echo "test$i"

?>
という感じで間違えて書いてあるのを試しています。(;や}が抜けてる)
調べたら-fオプションもあったので-lを-fにしたら、Parse errorが出ました。

test.phpのような内容の場合、-lオプションでは何もチェックをされないのでしょうか?
もしチェックされるとしたら、どのような場合なのでしょうか。。
それとも、当方の環境がおかしくて-lが効いていなかったりするのでしょうか。。。
ちょっと気になったので、教えてください、エロイひと!
0923nobodyさん04/06/13 14:55ID:???
>>922
本家のバイナリで試してみたけど普通に出力されたけどな。
使ってるPHP-CLIのコンフィグにエラーの出力抑制(ログファイルオンリー)とか
「普通でない」設定をしてるんでは?
092491404/06/13 17:35ID:nrs902LB
>>915
有難うございました。
0925nobodyさん04/06/13 18:52ID:???
920さんありがとうございました。
sabumitであらかた組んでしまったのですが、
いずれクエリーに再挑戦しようかと思います。

また別の質問なのですが、
<td width="800" Height="700"><?php include("link.php") ?></td>
このようにテーブルのセル内に、
任意のhtmlファイルなどを表示させるのは無理でしょうか?

あるいはこの中にインナーフレームをつくって表示させる方法を取るべきでしょうか?
0926nobodyさん04/06/13 19:25ID:???
>>925
当然やってみたんだよね?
092792504/06/13 19:28ID:???
インラインフレームは、うまくいきました。
インラインフレームのタグごと出力する方法です。
0928nobodyさん04/06/13 19:38ID:???
includeの方もうまくいくはずだからやってごらん
0929nobodyさん04/06/13 21:01ID:???
あの、@の多用って良くないですか?
mysql_connectとかに使ってるんですが・・・
失敗した時にWarningでフルパスばれるのが嫌だなぁ、と。
それともエラーレポートを変えるべきですか?
0930カポコン04/06/13 21:38ID:???
>>929
mysql_connect($host.$port,$usr,$pass) or die("つながりません");
とかで対処汁。

PHP5なら試して捕まえろ。
093192904/06/13 21:43ID:???
カポコン以外でお願い
0932本704/06/13 21:49ID:???
>>929
mysql_connect($host.$port,$usr,$pass) or exit;
とかで対処汁。
093392904/06/13 21:51ID:???
ポンシチも勘弁して
0934ゑゑゑ ◆WEWEWEE85s 04/06/13 22:01ID:???
    |┃三            ______________
    |┃    ハァハァ・・・  /
    |┃ ≡   ∧ハ∧ < mysql_connect($host.$port,$usr,$pass) or die();
____.|ミ\___(´Д` ;)  \
    |┃=___    \   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    |┃ ≡   )ゑ 人 \ ガラッ
0935nobodyさん04/06/13 22:07ID:Wabebz7Z
PHP4からMovable Type2.6に投稿しようとしていますが、タイトルと本文がどうしても反映されません。
ソース晒します。

require_once("XML/RPC.php");
$c = new XML_RPC_client( URL, ホスト, 80 );
$appkey = new XML_RPC_Value( 'MT', 'string' );
$blogid = new XML_RPC_Value( ブログID, 'string' );
$username = new XML_RPC_Value( ユーザ名, 'string' );
$passwd = new XML_RPC_Value( パスワード, 'string' );
$content = new XML_RPC_Value(
array( "title" => new XML_RPC_Value(タイトル, "string"),
"description" => new XML_RPC_Value(本文, "string")), "struct");
$publish = new XML_RPC_Value( '1', 'boolean' );
$message = new XML_RPC_Message(
'blogger.newPost',
array($appkey, $blogid, $username, $passwd, $content , $publish) );
$result = $c->send($message);

マニュアルを見てる限り、どうも$contentでcontent構造体を送るらしいのですが
色んなパターンで試して見ましたが、送信されないか、空のブログがエントリされるか
どちらかの動作になってしまって困ってます。

どうか、偉い人教えて下さい。
093691604/06/13 22:12ID:1Or61ijU
有難う御座いました。
.httacces で設定できるとわかりました。
又、わざわざそれをいじらなくても
私のサーバーでは index.php でアップすれば
これが表示されるようです。
有りがとうございました。
0937nobodyさん04/06/14 00:30ID:???
>>929
# 930や932ぐらいは信じてやれよ。

私用アプリ"以外"としては悪くない。但し予期できるエラーはきちんと
処理してやった上での話。臭いものに蓋をする用途に使ってはいけない。
0938nobodyさん04/06/14 01:24ID:L5EG25O4
質問します。

php4しか使えないのでphp4でいろいろ遊んでいるのですが、
まだclassというものの必要性を感じていません。
classの有用性はどんなときに発揮されるんでしょうか?
php4とphp5限定でお伺いできればと思います。
0939nobodyさん04/06/14 01:41ID:???
>>938
大規模な開発をするときに必要性を感じるでしょう。
君がオブジェクト指向を理解していないのなら全く無視していい。
0940nobodyさん04/06/14 01:52ID:zlornJbc
>>938
俺はデータベース接続とかで汎用性を持たせるためにクラス化してるよ。
MySQLでもPostgreSQLでも対応できるようなクラスを作っておけば、
色んなサイト作りに利用できて良い。
0941nobodyさん04/06/14 04:11ID:Cuv9zBB3
質問します。

私のサイトはFAQ(質問集)をhtmlで作っているのですが
利便性を考えて、これをPHPで作成しようと思っています。

欲しい機能は
1.ブラウザ上でユーザーが質問を投げかける事ができる。
2.ブラウザ上にそれに私が答える事ができる。
3.その内容が動的にFAQの中に組み込まれる。
4.私が返答していない質問はユーザーからは見えない。反映されない。

以上4つです。一見、PHPスクリプトによくある、掲示板で
作れそうなのですが、4.の返答がない、質問は見えない。
というのを実現できるスクリプトがありません。

このようなスクリプトをご存知の方、ちょっと改造すればできる
よ。というのをご存知の方、ご教授下さいませ。
0942nobodyさん04/06/14 05:43ID:syzY4Jkx
質問です
php4.3.7 と an httpd でローカルでPHP環境を作ろうと思ったのですが、うまくいきません

phpをインストールし、an httpdを実行、
httpdの設定を、phpおよびphp3を c:/php/php.exe で実行にしました。
ドキュメントルートフォルダに、index.phpをおき、
中身を
<?php
print "hello";
?>
にしました。
ブラウザでlocalhost または 127.0.0.1でこれを開くと、この三行がブラウザに表示されてしまいます。
また、同内容の test.phpをつくりブラウザで開くと、今度は
ファイルの保存or開く、のウィザードが出てしまいます。

これはphpのインストールがうまくいっていないのか、an httpdの設定が悪いのかどちらでしょうか。
なお、XP環境で、インストール手順はいくつものサイトを見たつもりです。

なにかアドバイスがございましたらお願いします
094394104/06/14 05:53ID:Cuv9zBB3
apacheで設定してるので、あってるかわかりませんが、
c:/php/php.exeのhttpdの設定を
c:\php\sapi\php4isapi.dll
に変えてみてはどうでしょうか。私はそれでうまくいきました。

誰か私の質問に答えていただけませんか(´・ω・`)
0944nobodyさん04/06/14 07:53ID:???
>>941
自分で組んだ方が早いと思うが、ソースの流用にこだわるなら、
モデーレータの承認無しでは投稿できないタイプの掲示板ソフトを
使えばどう?たとえばXOOPSのフォーラムとか。
0945nobodyさん04/06/14 10:00ID:???
>>940
pearって知ってる?
0946nobodyさん04/06/14 10:48ID:???
>>945
林家だっけ?
0947nobodyさん04/06/14 11:09ID:???
>>941
とりあえず板違い
↓スクリプト探しならこちら
【CGI】こんなCGI探してますver.13
http://pc5.2ch.net/test/read.cgi/hp/1081608108/

↓見つかって改造したいならこちら
★三 【 スクリプト改造工房 PART 8 】 ★三
http://pc5.2ch.net/test/read.cgi/php/1077525387/

↓改造の仕方すらわからず、人に頼むならこちら
【 スクリプト改造依頼スレ 】(丸投げ)
http://pc5.2ch.net/test/read.cgi/php/1076831972/

094893504/06/14 11:25ID:el9Ntkd+
>935
解る人いませんかー?
書き込み後も散々調べましたが、やっぱり解りません

教えてくださいエロイ人
0949nobodyさん04/06/14 11:30ID:???
>>941
掲示板をちょっと改造汁。
基本的に無表示で質問に答えが付いたら表示する汁。
これで分からないなら>>947改造スレへ。
0950nobodyさん04/06/14 11:38ID:???
>>948

$content = new XML_RPC_Value(
array( "title" => new XML_RPC_Value(タイトル, "string"),
"description" => new XML_RPC_Value(本文, "string")), "struct");

array($appkey, $blogid, $username, $passwd, $content , $publish) );

$contentの配列あたりを間違ってるとか?
0951nobodyさん04/06/14 12:01ID:???
PHPスクリプト内にCGIを表示させたいんだけどどうすればいいですか?
0952nobodyさん04/06/14 12:25ID:???
$hoge = file("foo.cgi");
echo $hoge;
0953nobodyさん04/06/14 12:35ID:???
include "hoge.cgi";
0954nobodyさん04/06/14 12:37ID:???
$hoge = readfile("foo.cgi");
echo $hoge;
0955nobodyさん04/06/14 12:45ID:8oZmCiNz
レンタルサーバーに「phpはセキュリティ上の問題から、CGIとして動作させてください。拡張子は.cgiとなります」って
書いてあったんですが、これはhtmlの中にphpを埋め込んだりする技が使えないってことですか?
perlみたいに、1から書いてhtmlで代用できるところもわざわざphpを介した記述で書かなくてはならないってことですか?
エロいひと教えてください
0956nobodyさん04/06/14 12:48ID:???
普通にhtml書いて拡張子だけcgiにしてサーバにおいて表示させてみろ。
0957nobodyさん04/06/14 12:53ID:???
>>955
自分で拡張子を.cgiにしろと書いてあるではないか?
htmlの中にはphpを埋め込めないです。
で、どこのサーバ?
0958nobodyさん04/06/14 12:58ID:???
>>957
いや、拡張子htmlの中に埋め込みって意味じゃなく、
「HTML文書の中にPHPタグを埋め込み」って意味だと思うぞ^^;
理解してやれよ
で、できないわけがないので安心するよろし>955

サーバはXREAじゃないかと予想してみる
0959nobodyさん04/06/14 12:58ID:8oZmCiNz
>>956
すいません、エラーが出てできませんでした。
>>957
ええ、それはサーバーに書いてあったのです。
ということは、perlのように、一行目に宣言して、って書かなくてはいけないってことですね。
サーバーはxrea.comというところです。

これでは、あまりphpの意味がないかもしれないですね…
0960nobodyさん04/06/14 13:00ID:8oZmCiNz
>>958
そうです。
ごく簡単なサンプルを書くと、

<html>
<body>
<?php
 echo "test";
?>
</html>
</body>
こういった形式です。

使えないのですか…残念です。
0961nobodyさん04/06/14 13:01ID:8oZmCiNz
</body>
</html>
でした、すいません。
0962スペランカー04/06/14 13:07ID:???
>>960
HTML文をそのまま .cgi というファイル名にすればいいんじゃないかな
と助言して死ぬ
096395804/06/14 13:14ID:???
>>959
サーバ予想オオアタリ

読み間違えさせたみたいだが、できる・使えるんだってば。
他はそのまま1行目に
#!/usr/local/bin/php
って書いてみ

それとも1行目にコレを入れるのがイヤだという話?
0964nobodyさん04/06/14 13:15ID:8oZmCiNz
答えてくれた方、どうもありがとうございました。お礼をいうのを忘れていました。
>>962
それだと動かないです…。
多分、cgiとして動作させると、htmlはそのままだと読んでくれないですよね。perlなんかと同じで。

なんだかphpを勉強してみる気になったのに、サーバーサイドスクリプトとして動作させられないので
phpを使う意味はあまりないかもしれないですね…。
0965nobodyさん04/06/14 13:20ID:???
xreaなら普通に.phpで使えるべ。試してみ。
0966nobodyさん04/06/14 13:21ID:???
つか、なんかネタっぽい。
0967nobodyさん04/06/14 13:21ID:8oZmCiNz
>>963
ええ、あたりです。
無料レンタルでphpが使えて、かつcgiでのみ動作となると、xreaしかないのかな。

で、#!/usr/local/bin/phpで試してみたのですが、表示はされました。
各ファイルごとに手直しが必要ですが、一応使えるとわかってよかったです。

ただ、cgiなので負荷に気をつけなくてはならないですね。
いろいろ、どうもありがとうございました。
0968nobodyさん04/06/14 13:25ID:8oZmCiNz
>>965
試してみたら、使えました。
それでは、屁理屈を言うようですが、

PHPはセキュリティ上CGIとして利用可能ですっていうのは、どういうことなんでしょう?
096995804/06/14 13:29ID:???
>>968
タテマエ

ってかXREAが普通に.php使えると僕もはじめて知りました。
教えてくれてありがとう>965
0970nobodyさん04/06/14 14:00ID:???
でも規約違反で消されるかもよ。
0971nobodyさん04/06/14 14:15ID:syzY4Jkx
941にはさまれスルーされかけたので、再度質問です
php4.3.7 と an httpd でローカルでPHP環境を作ろうと思ったのですが、うまくいきません

phpをインストールし、an httpdを実行、
httpdの設定を、phpおよびphp3を c:/php/php.exe で実行にしました。
ドキュメントルートフォルダに、index.phpをおき、
中身を
<?php
print "hello";
?>
にしました。
ブラウザでlocalhost または 127.0.0.1でこれを開くと、この三行がブラウザに表示されてしまいます。
また、同内容の test.phpをつくりブラウザで開くと、今度は
ファイルの保存or開く、のウィザードが出てしまいます。

これはphpのインストールがうまくいっていないのか、an httpdの設定が悪いのかどちらでしょうか。
なお、XP環境で、インストール手順はいくつものサイトを見たつもりです。

なにかアドバイスがございましたらお願いします
0972nobodyさん04/06/14 14:15ID:???
もうネタはやめとき
0973nobodyさん04/06/14 14:16ID:???
もうネタはやめとき  >>971じゃないよ
0974nobodyさん04/06/14 14:23ID:???
>>971
お前がどこぞのサイトを見てやったつもりのことを推測しろってのか?
なぜやったこと・設定した内容をすべて書かない?
まあ、またスレーでもいいんだけどね。
0975nobodyさん04/06/14 14:32ID:???
>>971
始めからやり
0976nobodyさん04/06/14 14:38ID:???
>>971
つーか、設定方法の検索もできないんじゃ先が思いやられるなw
0977nobodyさん04/06/14 14:38ID:???
次スレたちました。
適当なところで移行してください。
これから新規質問する方は、次スレのほうがいいかも。

【PHP】質問スレッドpart18【php】
http://pc5.2ch.net/test/read.cgi/php/1087191395/
0978nobodyさん04/06/14 14:40ID:???
>>971
まずはhtml勉強しよう。
0979nobodyさん04/06/14 15:00ID:syzY4Jkx
>>978
htmは知ってますよ
ていうか、これで helloと表示できるの知りません?
もういいいや
0980nobodyさん04/06/14 15:04ID:???
君にプログラミングは合わない気がする。
あおりじゃなくてマジレス。
0981nobodyさん04/06/14 15:05ID:syzY4Jkx
釣れた
スルーしなきゃだめですよ
0982nobodyさん04/06/14 15:08ID:???
ついでにあと18レス釣りで消費してくれ。
0983nobodyさん04/06/14 15:09ID:???
釣れたとか書いてる暇があったら勉強しろ。
0984nobodyさん04/06/14 15:11ID:???
埋め
0985nobodyさん04/06/14 15:12ID:???
本人がスルー希望なんだからスルーしたれよ
0986nobodyさん04/06/14 15:14ID:???
埋め
0987nobodyさん04/06/14 15:14ID:???
埋め
0988nobodyさん04/06/14 15:14ID:???
埋め
0989nobodyさん04/06/14 15:14ID:???
埋め
0990nobodyさん04/06/14 15:25ID:syzY4Jkx
埋めてください
0991nobodyさん04/06/14 15:38ID:???
http://enema.x51.org/x/i/cute_birds1.jpg
http://enema.x51.org/x/i/cute_birds2.jpg
http://enema.x51.org/x/i/cute_birds3.jpg
0992nobodyさん04/06/14 15:38ID:???
1000
0993nobodyさん04/06/14 15:39ID:???
1000
0994nobodyさん04/06/14 15:40ID:???
1000
0995nobodyさん04/06/14 15:41ID:???
1000
0996nobodyさん04/06/14 15:42ID:???
1000
0997nobodyさん04/06/14 15:42ID:???
1000
0998nobodyさん04/06/14 15:42ID:???
1000
0999nobodyさん04/06/14 15:43ID:8oZmCiNz
1000
1000nobodyさん04/06/14 15:43ID:8oZmCiNz
1000qqqqqqqqqq
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。