5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

【PHP】初心者コーナー 3 Released【スローモード】

1 :nobodyさん:03/06/11 06:24 ID:???
PHPに関するアホな質問はここで、マターリやろな。
ファイル MySQL PostgreSQL 正規表現でも なんでもいってみ
でもな、アホな質問であっても詳しく質問しろよ。 ネタはおもしろく書けよ。

前スレ http://pc2.2ch.net/test/read.cgi/php/1048442813/l50

■PHPの普通の質問はあっちな、【PHP】質問スレッド Part8
 http://pc2.2ch.net/test/read.cgi/php/1050249148/l50
■PHPへ移行したいPerl信者はあっちな、【待望】PerlユーザのためのPHP入門
 http://pc2.2ch.net/test/read.cgi/php/1046326634/l50
■マニュアル嫁ってうるさいのがいるからちょっとは嫁な、
 http://www.php.net/manual/ja/
■おまえ初心者なら入門本くらいかっとけな、PHP関連の書籍(但しPHP出版系お断り)
 http://pc2.2ch.net/test/read.cgi/php/985315574/l50
■これはなズープスと読むらしいがあっちな、XOOPS
 http://pc2.2ch.net/test/read.cgi/php/1031736248/l50

でもな、ここで書きたかったらここで書き。 あとは関連な、>>2 

2 :nobodyさん:03/06/11 06:24 ID:???
■ 本家
 http://www.php.net/
■ 日本 PHP ユーザ会
 http://www.php.gr.jp/
■ PHP マニュアル
 http://www.php.net/manual/ja/
■ PEAR マニュアル
 http://pear.php.net/manual/ja/

■【待望】PerlユーザのためのPHP入門
 http://pc2.2ch.net/test/read.cgi/php/1046326634/l50
■PHP-users ML ヲチ
 http://pc2.2ch.net/test/read.cgi/php/1031734100/l50
■【PHP】Smarty【Template】
 http://pc2.2ch.net/test/read.cgi/php/1047225437/l50
■ PHP アップグレード報告スレッド
 http://pc2.2ch.net/test/read.cgi/php/987259309/l50
■ PHP + MySQL
 http://pc2.2ch.net/test/read.cgi/php/983250751/l50
■ PHP + PostgreSQL
 http://pc2.2ch.net/test/read.cgi/php/983128806/l50
■ PHP 関連の書籍 (但し PHP 出版系お断り)
 http://pc2.2ch.net/test/read.cgi/php/985315574/l50
■ perlスクリプト⇒phpスクリプト移植要望スレ
 http://pc2.2ch.net/test/read.cgi/php/1035700861/l50
■ YomiサーチPHP化プロジェクト
 http://pc2.2ch.net/test/read.cgi/php/1044371877/l50
■ せっかくだからPHPで掲示板作ってみませんか?
 http://pc2.2ch.net/test/read.cgi/php/1035700861/l50


3 :nobodyさん:03/06/11 06:27 ID:kzWk23HI
よっしゃ、3ゲット


4 :nobodyさん:03/06/11 06:31 ID:???
う・ん・こ♪

5 :nobodyさん:03/06/11 06:32 ID:???
4 げっちゅー

6 :nobodyさん:03/06/11 06:32 ID:???
うんこかぶった

7 :nobodyさん:03/06/11 13:44 ID:lWApjllN
phpでmysqlのテーブルの削除・コピーをおこなう命令を教えてください。

8 :nobodyさん:03/06/11 13:53 ID:???
>>7
PHPに関しては、このあたりのページをブックマークしておくと便利だよ。
http://www.php.net/manual/ja/ref.mysql.php

MySQLに関しては、
http://www.mysql.gr.jp/jpdoc/4.0/manual.ja_toc.html


9 :nobodyさん:03/06/11 13:55 ID:???
MySQLのマニュアルの見にくさは異常

10 :nobodyさん:03/06/11 22:32 ID:???
クラスに詳しいサイトないですかね?
英語でもいいんで・・
どなたかタノム

11 :nobodyさん:03/06/12 00:25 ID:???
>9
確かに(見難さには)同意するが、それはPHPのマニュアルに
慣れすぎてる部分が多分にあるからかと。
あとmysql.comの方は結構使えるで。

12 :nobodyさん:03/06/12 23:40 ID:FX+eijnO
質問です。
ttp://www.komonet.ne.jp/script/f_mail2/komomail.htm
ttp://www.komonet.ne.jp/script/f_mail2/komomail.phps(PHPソース)
上記のメールフォームを改造してチェックボックスを配置したいのですが、
HTML側のソースは、
<input type="checkbox" name="abc[]" value="hoge01">hoge01
<input type="checkbox" name="abc[]" value="hoge02">hoge02
<input type="checkbox" name="abc[]" value="hoge03">hoge03
<input type="checkbox" name="abc[]" value="hoge04">hoge04
を追加し、PHP側のソースに
for( $i=0; $i<count($abc); $i++ ) {
print $abc[$i] . "<br>\n";
}
print "<input type=\"hidden\" name=\"sabc\" value=\"$abc\">\n";
を追加しまして動作させたところ、
確認ページでは正常に表示されたのですが、ソースを見ると
<input type="hidden" name="sabc" value="Array">
とvalueの値がどのチェックボックスを選択しても「Array」になってしまい、
このまま送信してもメールにも「Array」と表示されてしまいました。
この「Array」の部分を「hoge01」「hoge01,hoge04」
のように表示させるにはどうすればよいのでしょうか。
宜しくお願いします。

13 :nobodyさん:03/06/13 00:03 ID:???
PHPソースみじけ
value=\"$abc\"ここはArayだかだ$abc[$i]だとおもうど、


14 :12:03/06/13 00:20 ID:???
>>13
それも試してみたのですが、
value=""
となり、何も表示されなくなってしまいました…

書き忘れましたが、
function SendMessage()内には
globalに $sabc を、それと
$msg .= "選択肢 = $sabc\n";
を追加してあります

15 :nobodyさん:03/06/13 00:37 ID:???
書いたものをみせないのかい?

16 :nobodyさん:03/06/13 00:42 ID:???
for( ) {
}
print "value=\"$abc\">\n";

こうなってるから。

17 :12:03/06/13 01:19 ID:???
>>15
ttp://www.komonet.ne.jp/script/f_mail2/komomail.phps
のソースに>>12>>14を追記しただけなので全文の必要は無いかと
勝手に判断してしまいました…

>>16
それは…
for(){
}
内にprint "value=\"$abc\">\n"; を入れなければならない、
ということでしょうか?

18 :nobodyさん:03/06/13 01:30 ID:???
まず配列を$abcなんて呼び出すのがおかしい
必ずインデックスをつけて呼び出さなければならない。($abe[$i])

あなたのソースの一番下の行を$abc[$i]としても
$iのなかに何も値が入っていないので、
おかしなことになります。
ちゃんと$iのなかに数字を入れましょう

19 :16:03/06/13 01:52 ID:???
読み間違えてた。スマソ。
> この「Array」の部分を「hoge01」「hoge01,hoge04」
ってことなら、
value=\"".implode(",",$abc)."\" みたいにして、
配列を文字列に変換しなきゃいけない。

20 :12:03/06/13 02:19 ID:???
>>18
インデックスというのは
$abc[0] = hoge01
$abc[1] = hoge02
$abc[2] = hoge03
$abc[3] = hoge04
というやつですよね?

>>19
おぉ!出来ました!implode…配列要素を文字列により連結する、
というヤツですね?これで全ての問題が解消されました。
>>13さん、>>15さん、>>16=>>19さん、>>18さん、
どうも有難うございました。
PHP勉強し始めてまだ日が浅いのですがもっと努力します。

21 :nobodyさん:03/06/13 02:21 ID:???
$abc = array("さる","いぬ","ひつじ","うま","じゃこうねこ");
for($i=0;$i<count($abc);$i++){
print "<input type='checkbox' name='sabc' value='".$abc[$i]."'>".$abc[$i]."<br>\n";
}
こういうことなのか? PHP初心者なのか?

22 :nobodyさん:03/06/13 02:22 ID:???
あでで

23 :nobodyさん:03/06/14 00:13 ID:oYY8Bt5l

$hensu が a か b か c か d か
と言うのを書きたいんですけどうまく出来ません。
どうやったらいいんでしょうか。

ちなみに下記のように書きました。

$hensu = a;

if($hensu == (a||b||c||d)){
echo "あってます";
} else {
echo "違います";
}


24 :nobodyさん:03/06/14 00:50 ID:???
>>23
$hoge = array("a","b","c","d");

if (in_array($hoge,$hensu)) {
 echo "あってます";
} else {
 echo "違います";
}

25 :nobodyさん:03/06/14 01:14 ID:???
>23

if ($hensu == 'a' || $hensu == 'b' || ...) {
 yes;
} else {
 no;
}

if (preg_match("/^[a-d]$/", $hensu)) {
 yes;
} else {
 no;
}

26 :nobodyさん:03/06/14 01:33 ID:???
>>24 >>25
ちゃんと動かせました。
ありがとうございます。
勉強になりました。

27 :nobodyさん:03/06/14 08:37 ID:p4ucyWfS
リンクをクリックするたびに違うページへ飛ばしたいんですが

srand((double)microtime()*1000000);
$link=round(rand(1,5));
echo"<a href=\"http://www.*****.com/php?id=$link>リンク</a>\"";

これだとページをリロードしなければリンク先が変わりません
どうやったらいいんでしょうか?

28 :nobodyさん:03/06/14 08:40 ID:???
3行目間違えました・・・
echo"<a href=\"http://www.*****.com/php?id=$link\">リンク</a>";

29 :あぼーん:あぼーん
あぼーん

30 :nobodyさん:03/06/14 08:49 ID:???
>>27
ttp://www.*****.com/php に手を加えられるのなら、
その中でrand()すればいいのでは?
リンクのページ -> .com/php -> リンク先

31 :nobodyさん:03/06/14 09:04 ID:???
>>30
ttp://www.*****.com/phpは自分のページじゃないのでできません

32 :nobodyさん:03/06/14 09:05 ID:???
>>27
リロードせずにリンク先を変える方法があれば俺も知りたい。
JavaScriptでもつかったら?

33 :nobodyさん:03/06/14 09:24 ID:???
>>32
JavaScriptでやってみたんですが携帯からアクセスすると機種によっては表示できない物があったので

34 :nobodyさん:03/06/14 11:32 ID:???
1ページ目 : リンクページ
2ページ目 : rand()でジャンプ先を決めてheader(Location:)で実際にジャンプ

1ページ目のリンク文字(<a>〜</a>の間の文字)は固定になるけど、どう?

35 :nobodyさん:03/06/14 16:45 ID:???
>srand((double)microtime()*1000000);

最近のバージョンだと不要だよ。

36 :nobodyさん:03/06/14 21:31 ID:???
配列、というかimplodeを多用するとブラウザが落ちる、なんてこと無いですよね?
>>12を真似て更にチェックを増やした(チェック項目じゃなくて種類)ら
途中まで表示されて止まっちゃった(応答無し)んですけど

37 :nobodyさん:03/06/14 21:39 ID:???
>>36
エラーじゃないんか?

38 :nobodyさん:03/06/14 21:43 ID:???
なぜ12を真似るのか?

39 :nobodyさん:03/06/15 01:25 ID:???
>>38
非常に重要な疑問だ

40 :nobodyさん:03/06/15 14:32 ID:???
>>37
解決しますた
HTMLの書き方がおかしかったみたいです
>>38
前からメール送信フォームのスクリプトを探してたんですけど
チェックボックス付きのって不思議なくらい少ないんですよ
ラジオボタン付きのは多いのに。
こんなCGI探してますスレで聞こうと思っていた時に
12でそういう話題が出てたんでこりゃ僥倖、というわけです

41 :nobodyさん:03/06/16 19:26 ID:???
ファイル編集で質問なのですが、
ファイルのn行目だけを消去というような処理は
どうすれば良いのでしょうか。

42 :nobodyさん:03/06/16 21:57 ID:???
forとかで回して、
n行目だけ飛ばすとか?

43 :nobodyさん:03/06/16 22:35 ID:???
>>41
edが入ってれば・・・

ed {ファイル名} <<EOT
行数d
wq
EOT

こんな感じのことをやらせると簡単?
# 複数行あるときは、行数は大きい順にdコマンドせいよ!

言ってることがわからないときは無視していいよ・・・

44 :nobodyさん:03/06/16 23:16 ID:???
>>43
行ってることはよくわかるけど,無視

45 :nobodyさん:03/06/16 23:50 ID:ULUKCUBQ
[[ と ]] でかこまれている文字列を抽出する正規表現を教えていただけませんか。
対象文字列が1つだけならば問題はないのですが、
複数ある場合に正しく認識しないのです。

46 :nobodyさん:03/06/17 00:06 ID:???
>>41
オーソドックスに1行ごとファイルを読んで、対象行について処理。
消して詰めるんだったらスキップすれば良いし、
空行にしたいなら空行に入れ替えればよい。
処理用のテンポラリは配列を使ってメモリー上でやってもいいし、
PHPの一時作業ファイルの機能を使っても良い。別ファイルに吐くなら
直接そこに書き込んだ方が二度手間にはならないけど。

つかもちぃと、自分のやりたいことを具体的に書けるように汁。

47 :nobodyさん:03/06/17 00:16 ID:???
>>45
/\[\[[^(\]\])]*\]\]/

48 :nobodyさん:03/06/17 03:07 ID:jU4Lgx5s
>>47

$content=ereg_replace("(\[\[[^(\]\])]*\]\])","<a href=\"index.php?action=view&title=\\1\">\\1</a>",$content);
こうしてみたのですが、うまく動きません。
どうしたらよいのでしょう。
最初は
$content=ereg_replace("(\[\[.+\]\])","<a href=\"index.php?action=view&title=\\1\">\\1</a>",$content);
でした。

49 :nobodyさん:03/06/17 04:08 ID:???
preg_replaceじゃないの?

50 :あぼーん:あぼーん
あぼーん

51 :nobodyさん:03/06/17 11:30 ID:???
>正しく認識しないのです
>うまく動きません。

これだけじゃね。

52 :nobodyさん:03/06/17 15:44 ID:???
PHPってVBみたいなツールないですか?

53 :nobodyさん:03/06/17 17:12 ID:???
>>52
http://www.zend.co.jp/aboutphp/

54 :nobodyさん:03/06/17 17:39 ID:???
>>53
意外と安いですね。20まんくらいするのかと思ってたYO!

55 :nobodyさん:03/06/17 23:07 ID:0jiXtget
ディレクトリのサイズを取得するいい方法はありますか。
ディレクトリの中のファイル一個づつ足していかないとだめなんでしょうか。

56 :nobodyさん:03/06/17 23:33 ID:???
>>55
そうですけど,
duとか使えば?

57 :nobodyさん:03/06/17 23:56 ID:???
45ですが。
>>47さん
>>49さん
ありがとうございました。

58 :nobodyさん:03/06/18 00:59 ID:z2IuQj0n
PHPで画像をUPしたいんですがサーバ側で
画像の大きさを判別できるのでしょうか?
200×300とか
調べたんですけど関数がないような
ということはC言語で関数を作る?
だれかわかりませんか?

59 :nobodyさん:03/06/18 01:04 ID:???
ほんとに調べたのかよこの知障

60 :nobodyさん:03/06/18 01:14 ID:???
まぁまぁ初心者スレなんで生温かく見守れ

http://www.php.net/manual/ja/function.getimagesize.php
マニュアルにまんまあるぞ。このRTFM!


61 :nobodyさん:03/06/18 01:19 ID:???
>>60
やさしいのか、やさしくないのか「RTFM」なんて。。。

62 :nobodyさん:03/06/18 01:40 ID:???
やさすい

63 :nobodyさん:03/06/18 01:57 ID:ozrEi3ht
60>>さん
ありがとうございました
59>>
回線切って首を吊れ

64 :nobodyさん:03/06/18 10:14 ID:???
>>63
逆切れカコワルイ

65 :nobodyさん:03/06/18 11:17 ID:Y4tmU7Uq
>>64氏が釣られている気がしないでもない今日この頃ですが、
皆様におかれましては、いかがお過ごしでしょうか?

と、まぁ〜、んな事はどーでもいいので、質問させて下さい。
配列の中の要素の数を取得する事って出来ますか?
$hoge[0] = hoge0
$hoge[1] = hoge1
$hoge[2] = hoge2
って、配列があるとしたら、全部で3つじゃないですか?
その3ってのを取得したいんです。

66 :nobodyさん:03/06/18 11:18 ID:???
>>65
ネタにしてもつまらない。

67 :あぼーん:あぼーん
あぼーん

68 :65:03/06/18 11:40 ID:???
【自己解決】
count() ってゆー便利な関数があるんですね。
>>66氏の気分を害してしまい、ずびばぜんでじだ(T_T)

69 :nobodyさん:03/06/18 11:40 ID:???
>>65
count()

70 :nobodyさん:03/06/18 16:47 ID:???
国際化されていないphpで日本語扱う方法ってありますか?
JCode.php見つけたんですけどいまいち上手く動作しないのです。

71 :nobodyさん:03/06/18 17:50 ID:???
扱う、と言っても扱い方はいっぱいある

72 :70:03/06/18 18:38 ID:???
送られてきたデータの文字コードをEUCに統一してmySQLに保存するんです。
要は、普通の掲示板などで行われている処理なのですが。

73 :nobodyさん:03/06/18 22:02 ID:???
>>65

scalar()

74 :nobodyさん:03/06/18 22:09 ID:???
>>72
じゃあ、普通にjcode.phpつかえば。
jcode.phpだけど、
>JCode.php見つけたんですけどいまいち上手く動作しないのです。
こういう書き方するとバカかと思われるよ。

75 :65:03/06/19 03:14 ID:2RPLMQCv
>>66氏、>>73氏 レスどうもです。

別の質問なのですが、

title1,value1
title2,value2
title3,value3

というcsvファイルを、file()で読み込んで $lines に格納した後、
列ごとの要素を配列に入れたいのですが、

list($title,$value)=explode(",",$lines[$i]);

と、やったら上手くいきません。

マニュアル読むとlist()は、「配列と同様の形式で、複数の変数への代入を行います」
と、あるので上記だと $title や $value は変数で配列ではないという事ですよね?
列ごとの要素を配列として扱うには、どうすればよいでしょうか?

76 :70:03/06/19 03:27 ID:???
>>74
jcode.phpで文字コードを自動認識させると認識を誤ることがあるのです。
回避する方法はありますか?

77 :nobodyさん:03/06/19 03:59 ID:???
自動だかだ。
なんでeuc指定しないの?

78 :70:03/06/19 04:01 ID:???
変換後はeucにするんです。
ただ、ブラウザが送出する文字列は指定できないこともありますので、
変換前文字列を自動認識にしているんです。
すると、ときどき化けることがあるわけで。

79 :nobodyさん:03/06/19 04:35 ID:???
なるね。 ときどき化けるファイルのエンコードはJIS ?
これを上手い事、条件つけて変換するとか。

80 :70:03/06/19 04:52 ID:???
化けているのはおそらくshift-JISかと。
どういう条件をつけたらよいのでしょう。

81 :nobodyさん:03/06/19 04:57 ID:Xa9Oiy3t
>>75
とりあえず
$lines = file('hoge.csv');
$title = array();
$value = array();
for ($i=0;$i<count($lines);$i++) {
 list($title[$i],$value[$i])=explode(",",$lines[$i]);
}
かなあ?

$lines = array_map('SplitCSV', file('hoge.csv'));
function SplitCSV($line) {
 $a = explode(',', $line);
 return array('title'=>$a[0], 'value'=>$a[1], 'value2'=>$a[2]);
}
みたいに多次元配列に入れたほうがデータを使い回しやすいし、
ファイルを全部読み込む必要がないならfgetcsvを使うのが良いだろうし。
方法はいろいろありますyo。

>>78
jcode.phpsは最新版(1.34)ですよね?
いちおう http://www.spencernetwork.org/ を張っときます。
PHPがセーフモードでないなら、exec()でnkfを使うとか
mbstringのDSOを調達してdl('mbstring.so');するとか? (w


82 :70:03/06/19 05:17 ID:???
>>81
jcode.phpsは最新版です。
で、後の方法ですが、強引ですねえ。。。

文字化けの状況はここと一緒かと。ちょっと内容微妙だけど。
http://www.google.co.jp/search?q=cache:W9edWQoBLUMJ:www.geocities.co.jp/CollegeLife-Labo/9015/discussion/0301-0350/log00000305.html+%E5%8A%B9%E5%8D%A0&hl=ja&ie=UTF-8
なんか、根本的に間違っている気がしてきました。

83 :nobodyさん:03/06/19 05:46 ID:???
sage忘れてた・・・。
>>82
すごく強引です。半分ネタのつもりで書きました。ごめん。
ところで、文字列は保存する直前(処理したあと)変換してませんか?
それならスクリプトの冒頭で
$str = serialize($_POST);
$str = JcodeConvert($str, 0, 1);
$_POST = unserialize($str);
って感じであらかじめ変換してやるといいかも。
個別に変換するんじゃなくて、一つの長い文字列として扱うことで
判定ミス軽減を狙ってます。うまくいくかわかんないけど。

とりあえず、そのリンク先が根本的に間違っているのは疑いの余地が無いですね。

84 :nobodyさん:03/06/19 05:54 ID:???
おっと、たしか大抵の国際化されてないレン鯖のPHPって4.0.6だったような。
上の$_POSTは$HTTP_POST_VARSもしくは$HTTP_GET_VARSと読み替えてくだされ。

85 :nobodyさん:03/06/19 09:25 ID:???
>>78
チェック用にHIDDENで"美乳"とか入れらんないの?
その掲示板の入力フォーム。

86 :nobodyさん:03/06/19 09:37 ID:???
>>85
> チェック用にHIDDENで"美乳"
あ,おれと同じことしてる…


87 :70:03/06/19 13:22 ID:???
>>85
「美乳」。。。
なんか、もうちょっと長いので無難なのありませんでしたっけ?

88 :70:03/06/19 13:24 ID:???
ググッたらすぐに出てきました。
「雀の往来」ですね。
>>83さんのアドバイスとあわせてやってみます。

89 :nobodyさん:03/06/19 14:58 ID:???
うひょー、、こんなのあったのか<美乳・雀の往来
しらんかたよ汗

90 :nobodyさん:03/06/19 16:54 ID:BuZyfKvG
$hash = array('key1'=>'val2','key2'=>'val'2);
$key = 'key';
$line = 'abcd $key{key1} efgh $key{key2} ijkl';
以上のデータを使って$lineを
abc val2 efgh val2 ijkl
と成るように置換したいのですが、以下だとうまく動きません。
$line = preg_replace('/\$'.$key.'\{(.*?)\}/',$hash["\\1"],$line);
どうしたらうまく動かせるのでしょうか。教えてください。

ちなみにperlだと
$line =~ s/\$$key\{(.+?)\}/$hash{$1}/g;

91 :あぼーん:あぼーん
あぼーん

92 :nobodyさん:03/06/19 16:59 ID:3FZVSEpw
>>90
つか、それ以前に''(シングルクォート)じゃあ、変数が
展開されねーべさ。

93 :nobodyさん:03/06/19 17:13 ID:???
>>92
傍目に見たらダブルクォートに見える罠

94 :nobodyさん:03/06/19 17:19 ID:???
"
''

95 :92 :03/06/19 17:20 ID:???
うーっぷす、すまねえ。
「'」(しんぐるくぉ〜と)
と書き直してみるテスト。

96 :nobodyさん:03/06/19 17:22 ID:???
$hash["\\1"] -> $hasn[$1] でどう?
$hash[$1] のかわりに md5($1)とか、オリジナルのハッシュ関数($1)とかでもいいかも。

97 :90:03/06/19 17:24 ID:BuZyfKvG
>>92
ちょっとまぎわらしいコードを書いてしまってすいません。
$lineでしたら、展開されないように''にしています。

$line = 'abcd $CODE{1} efgh $CODE{2} ijkl';
$key = 'CODE';
$hash = array(1=>'111',2=>'222');
$line = preg_replace('/\$'.$key.'\{(.*?)\}/',$hash["\\1"],$line);
で$lineを
abcd 111 efgh 222 ijkl
にしたいのですがpreg_replaceの所で、つまずいています。

98 :nobodyさん:03/06/19 17:44 ID:???
>> 70

実用的なものとしては、“漢字コードはEUC”というのがある。

ttp://www.valhalla.gr.jp/coffin/essay/2001/august.html#12


>> 90

$line = preg_replace_callback('/\$'.$key.'\{(.*?)\}/', create_function('$a', 'return $GLOBALS["hash"][$a[1]];'), $line);

もっといい方法があるかも。

99 :nobodyさん:03/06/19 18:05 ID:j1VyygA0
PHPとTomcatを連携しようと考えています。
可能でしょうか?

100 :あぼーん:あぼーん
あぼーん

101 :nobodyさん:03/06/19 21:54 ID:???
この

102 :nobodyさん:03/06/19 22:14 ID:???
初めての質問です。

まずform.htmlで

<form name="form1" method="post" action="confirm.php">
<p> 名前<br>
<input name="name" type="text" size="100">
</p>

のようなフォームを作り、confirm.phpで

<?php echo $_POST["name"] ?><br>

として表示しようとしているのですが、何故かなにも表示されません。
PHPが動いていることはphpinfo()で確認済みです。
どうもform.htmlからconfirm.phpに変数を渡せていないような気がします。

これはなにか設定の問題なのでしょうか?
ご教示ください。

103 :nobodyさん:03/06/19 22:34 ID:qf8t/Q9i
ereg関数でパターン文字列に「=」を入れたらこのようなエラーが出ました
Parse error: parse error, unexpected '=' in /xxxxx/index.php on line 11
「=」はつかえないんでしょうか?

104 :nobodyさん:03/06/19 22:34 ID:???
$_POST[name] $_POST['name'] $_POST["name"] $POST[qq|name|qq] なあほな。

105 :nobodyさん:03/06/19 22:38 ID:???
preg_matchじゃだめ?
http://jp.php.net/manual/ja/function.preg-match.php

106 :nobodyさん:03/06/19 22:39 ID:???
\= とかは? うひ。

107 :nobodyさん:03/06/19 22:45 ID:???
>>102
GETだよ。
POSTじゃないよ。

108 :nobodyさん:03/06/19 22:50 ID:???
おいPOSTじゃんか。

109 :nobodyさん:03/06/19 23:00 ID:???
URLを入力してそのページのソースを全部取得する関数ってありますか?

110 :nobodyさん:03/06/19 23:23 ID:???
>109
fopenではダメなのですかい?

111 :nobodyさん:03/06/19 23:24 ID:???
>>109
file

112 :nobodyさん:03/06/19 23:30 ID:???
>>110>>111
fopenやfileだとファイルしか開けなくないですか?URL開けないんですが。

113 :nobodyさん:03/06/19 23:39 ID:???
>112
ttp://www.php.net/manual/ja/function.fopen.php


114 :nobodyさん:03/06/20 00:25 ID:???
>>112
allow_url_fopen
http://www.php.net/manual/ja/features.remote-files.php

115 :nobodyさん:03/06/20 14:27 ID:LThxuIrX
shuffle()でランダムに並べ替えた配列を
次のページにその並び順のまま渡すには、
どんな方法が考えられますか?
ファイルに書き出すしかないでしょうか…


116 :nobodyさん:03/06/20 21:08 ID:???
>>115
hidden
session

117 :nobodyさん:03/06/20 23:11 ID:???
>>115
(URLの後ろに続けて)GET渡し

118 :nobodyさん:03/06/21 00:51 ID:???
>>115
>>116-117の補足
shuffle($arr);
$str = rawurlencode(serialize($arr));
GETのとき
echo "<a href=\script.php?shuffled="{$str}\">xxx</a>";
POSTのとき
echo "<input type=\"hidden\" name=\"suffled\" value=\"{$str\}" />";
SESSIONのとき
書くのめんどくさい。rawurlencodeとかserializeとか不要。

119 :nobodyさん:03/06/21 11:11 ID:k+R30mgd
PHPって基本的に多言語をサポートしてるんですよね?
調べてみると、multibyteってのを入れると、日本語化できる
みたいに書いてあるのですが、
逆を言えば、multibyteを入れないと日本語化できないんでしょうか?
またPerlってどうなんでしょうか?

120 :nobodyさん:03/06/21 11:59 ID:???
>>119
Muiltibyteを入れなくても日本語は通ります。
Perlも日本語は通ります

121 :nobodyさん:03/06/21 12:23 ID:HF7plXmg
自分が阿呆な事を言っていると承知済みで、失礼覚悟で質問いたします。
先日、フリーのPHPチャットプログラムをダウンロードしてきました。
製作者様がおっしゃるにはそのチャットプログラムは、
改造は規約さえ守れば好きにしていいとの事です。
しかし、その公式ページ以外でそのPHPに関する質問は絶対にしないように
とのことで、しかしながら質問のお返事が戴けません。
そしてわたしは、今回初めてPHPを弄った筋金入りの素人です。
そのPHP内に特定の言語をはじくというソースがあるらしいのですが、
どこがなんなのかもうさっぱりです。さんざん自力でいじり、探しましたが、
なにせhtmlも満足にいじれないわたくしにとって腐海のようです。
解決策とかそれ以前に、わたしはどうすれば良いでしょうか。
製作者様のお答えを根気よく待つべきでしょうか。ここで質問しても
大丈夫なものなのでしょうか。自力でPHPを1からミッチリやり込むべきでしょうか。

122 :あぼーん:あぼーん
あぼーん

123 :nobodyさん:03/06/21 12:42 ID:iHlRBHxT
>>121
>そのPHP内に特定の言語をはじくというソースがあるらしいのですが、
意味がわからないな。。言語って英語とか?それともPerlはじくとか?(これも意味不明
できればその配布サイト教えてよ。簡単なら同じ機能ついたの作ってやるから。

124 :119:03/06/21 12:50 ID:k+R30mgd
>>120
即レスありがとうございます。
じゃあmultibyteは何の役割をするんでしょうか?

125 :nobodyさん:03/06/21 13:18 ID:HF7plXmg
>123
いえ、まさかそこまでして頂く訳には参りません。
その、これを申すとそのプログラムが特定できてしまいそうなのですが、
いわゆる『人工無能』のついたチャットなんです。
『人工無能』とはAと言えばBと答える、というような法則を覚えさせて
疑似会話が出来るものだと聞きました。
その『人工無能』が、特定の言葉、主に著作権関係の言葉と思われるのですが、
それを全て覚えません。
その機能を外すには、どこのソースを消せばいいのか、という話なのです。
お解りになりましたら、どうぞご助言願います。

126 :nobodyさん:03/06/21 13:20 ID:???
>>124
あとはマニュアル嫁

127 :123:03/06/21 13:35 ID:KU8WU14M
>>125
>その機能を外すには、どこのソースを消せばいいのか、という話なのです。
>お解りになりましたら、どうぞご助言願います

PHPならPHPゆいちゃっとのゆいぼっとかなっとは思うけど…、
とりあえず配布サイトのURL出してくれないとわからないです


128 :nobodyさん:03/06/21 13:40 ID:???
>>125
スクリプトによって違うので
何とも言えません。
アドバイスは
PHP入門(エーアイ出版)
をかってPHPを勉強しましょう

ということです。

129 :123:03/06/21 13:40 ID:KU8WU14M
>>125さんは、「そこに山があるからだ」さんかな?(w

130 :あぼーん:あぼーん
あぼーん

131 :123:03/06/21 13:51 ID:KU8WU14M
確かにビートルズ覚えないね。
原因突き止めてるからちょっと待ってね。

132 :nobodyさん:03/06/21 13:55 ID:???
PHPゆいちゃっとの管理人はサポート下手だな。
あやふやな質問にいくらレスしても疲れるだけだっつーの。

133 :125:03/06/21 14:00 ID:HF7plXmg
>128さん
はい…1から入門するのが一番だとは思っております。
ご推薦の書物を探して読んでみます。ありがとうございます。

>123さん
あああッバレてるッ(泣笑
すみません。結局サイトまで明かす事になってしまいました。
ここであのプログラムの事を質問しても、問題はないのでしょうか?
あのちなみに、『ビートルズ』の実験はどちらでなさったのでしょうか…

わたしが躍起になって調べた結果、経済界要人とスポーツ選手は覚えます。
歌手、有名人、米国のアニメキャラクター、映画のタイトルなんかは総崩れです。

ほんとうに、お手を煩らわせてご免なさい。
ありがとうございます。

134 :125:03/06/21 14:03 ID:HF7plXmg
>132さん
製作者様はわたくしの無理な質問に散々付き合って下さりました方です。
その製作者様が、わたくしの所為でそう言われては申し訳が立ちません。
どうか、その旨ご理解願えませんか。

135 :123:03/06/21 14:04 ID:KU8WU14M
スクリプトをざっと読んでみたけど、著作権のあるものは登録できないようにする
なんて処理は何処にも無かったよ。多分原因は他に有ると思う。

136 :123:03/06/21 14:08 ID:KU8WU14M
>ここであのプログラムの事を質問しても、問題はないのでしょうか?

正式には、利用規約違反にはなっちゃうだろうなぁ…。
でもまぁレイさんも忙しいんだろうし、こっちでバグ見つけて報告するのはダメってわけじゃないから、
とりあえず何処が悪いのか探してみるよ。
ちなみにビートルズの実験は自分のサーバーでやってる

137 :125:03/06/21 14:15 ID:HF7plXmg
>123さん
そうですか!
あの、ズブの素人が素人脳で考えてしたことは、著作権に触れる言葉を
覚えさせた時にも、datファイル内には追加されているのです。
その上で$no_msgが発動していますから、全てのphp内を$no_msgで検索したんです。
$no_msgに関係するソースはどれを外しても動かなくなりますので、
じゃあそういう仕様なのだろうかと……すみませんほんとうに何にも知らなくて……
でも、著作権に関係する言葉だけを覚えないなんていう
器用なバグがあるのでしょうか。

やっぱり規約違反ですね……どうしよう………

138 :123:03/06/21 14:16 ID:KU8WU14M
正確な原因は著作権とかの問題じゃないみたい。
勝手に引用して悪いけど、

ボットが『ジョン・レノン』は覚えますが、『ビートルズ』『ポール・マッカートニー』を覚えません………(?。
禁止用語か何かでしょうか。

覚えない単語に共通しているもの、それは「ー」。
ためしにやってみるとわかるよ。

それから言うと、実際には「覚えている」
つまり、データファイルには書き込まれているが、それが呼び出されないのが原因らしい。
これ以上はまだわからない

139 :123:03/06/21 14:18 ID:KU8WU14M
>やっぱり規約違反ですね……どうしよう………

レイさんがこのスレッドを見てらっしゃるかどうかは知らないけど、
原因見つけてバグ報告する事になっても、とりあえずこの事は黙っておくよ。

140 :132:03/06/21 14:22 ID:???
ゴメンネ。昔プログラミングとは関係のない所でユーザーサポート
やってて酷い目にあった経験があったものでw

原因は正規表現とか置換とか?
(スク読んでないけど)
マルチバイトのやつじゃなければ、mb_で試してみるとか。

141 :125:03/06/21 14:31 ID:???
>123さん
…………解りました………!
びっくりしました。そうだったんですね!なるほど!ほんとだ!
だからミッキーマウスもアーノルド・シュワルツネッガーも
オードリー・ヘプバーンもマリリン・モンローもダメだったんですね!

………アレ?だけどタモリもはじかれます。

すみません本当に。もしレイさんがここをご覧になった暁には、
レイさんの取られます処置に従おうと思います。
こんなに人目に触れる場所なので、遠からず彼もご覧になるかと思いますが……
いろいろ手を尽くして下さって、本当にありがとう。

>132さん
いえ、そもわたくしが全ての元凶ですので………
レイさんに黙ってここに書き込みするのに、後ろ暗いのです。
ほんとうにごめんなさい。

うわあ…だんだん自分がネットの契約違反者になっていく……
ネットの契約書を読むたびにそんな違反は普通に使っててしないだろうと
思っていましたが、初めて解りました。うう。

142 :nobodyさん:03/06/21 14:36 ID:???
>>141
ガンガレ

143 :あぼーん:あぼーん
あぼーん

144 :123:03/06/21 14:59 ID:KU8WU14M
まぁ原因はわかった・・
でも私が修正しようとすると、ややこしいやり方になっちゃう(しか知らない)から、
どう修正するかは、レイさんにおまかせするよ。
とりあえずサポ板に書き込みに逝って来まふ

145 :125:03/06/21 15:04 ID:???
>123さん
何から何までありがとうございました。
ご恩とご好意、忘れません。
これに懲りて、ちっとは自力でプログラムを弄れるようにお勉強いたします。
…とりあえずわたしも理系学生のはしっこですし(泣

123さん、132さん、本当にありがとうございました。

>142さん
心にズキンと響くイイお言葉ですねがんがれ。
ありがとうございます。がんがります。

146 :nobodyさん:03/06/21 15:06 ID:???
やっと雑談終わったか・・・

147 :123:03/06/21 15:40 ID:???
書いてる途中に家事頼まれて遅くなった。
ほいじゃね。

148 :nobodyさん:03/06/21 16:09 ID:3yZp62xo
ID,dat1,dat2,dat3

というデータがPOSTされてくるので、既存のログファイルに、
POSTされたIDがあればエラー、なければデータ追加するには
どうすればいいでしょうか。
IDは固定長、dat1~3は可変長のデータです。



149 :あぼーん:あぼーん
あぼーん

150 :nobodyさん:03/06/21 16:39 ID:???
ログファイルを自力で検索。
どこで悩んでるの?

151 :nobodyさん:03/06/21 16:41 ID:???
>>148
eregつかえば?

152 :nobodyさん:03/06/21 17:08 ID:VyXOk/2c
while ($temp = <STDIN>) {
chomp($temp);
print "$tempが入力されました\n";
}

これだとABCDと入力したら ABCDが入力されました、と出て、

while ($temp = <STDIN>) {
$temp2 = chomp($temp);
print "$temp2が入力されました\n";
}

これだとなぜか、1が入力されました、としか出ないのはなぜですか?(´・ω・`)

153 :あぼーん:あぼーん
あぼーん

154 :nobodyさん:03/06/21 17:09 ID:???
>>152
うあ、誤爆スマン 。・゚・(ノД`)・゚・。

155 :nobodyさん:03/06/21 21:15 ID:???
phpに
Cでいう
do〜while
と同じような働きをする
ものってありますか?

156 :404.HDML ◆StMXML.EXE :03/06/21 21:21 ID:???
>>155
ズバリそのものが有る悪寒。C自体は知らないけど、同名の関数が。

157 :あぼーん:あぼーん
あぼーん

158 :あぼーん:あぼーん
あぼーん

159 :nobodyさん:03/06/21 21:59 ID:???
PHPマヌアル嫁↓

160 :nobodyさん:03/06/21 22:30 ID:???
え?俺?

161 :あぼーん:あぼーん
あぼーん

162 :nobodyさん:03/06/22 02:42 ID:???
PHPマヌアル嫁↑

163 :nobodyさん:03/06/22 02:49 ID:???
PHPマヌアル嫁←

164 ::03/06/22 07:56 ID:???
配列の中身を5列のテーブルで表示するにはどうやったらいいでつか?

$hoge = file ( "test.log" );

echo "<table border=1>";
for ( $a = 0 ; $a < count($hoge) ; $a++ ){
echo "<tr>";
for ( $b = 0 ; $b < 5 ; $b++ ){
echo "<td>";
echo "$hoge[$a]";
echo "</td>";
}
echo "</tr>";
}

echo "</table>";

と、やってみますたが、見事に失敗しますた(ウトゥ

165 :nobodyさん:03/06/22 10:53 ID:???
>>164
どういう内容のtest.logに対して、どう表示したいの?
for( a ){
 for( b ){
  echo hoge( a );
 }
}
になってるから、bの回数分(5回)だけ同じ$hoge[$a]を1行に出力するよ。

166 :nobodyさん:03/06/22 13:16 ID:v4BkkZfH
123
456
789
10

みたいに表示したいので、半日悩んだ末↓でやったらとりあえず、上手くいったんだけど、
なんかしっくりこない。(echo"$k";が2回あるあたり)
もっとスマートなやり方ありますか?

$k=1;
for ($i=1;$i<=4;$i++) {
 if ($k==10) {
  echo"$k";
  break;
 }
 for ($j=1;$j<=3;$j++) {
  echo "$k";
  $k++;
 }?><br><?php echo ("\n");
}


167 :nobodyさん:03/06/22 13:24 ID:???
>>168
あんた・・・
for($i=1;$i<=10;$i++){
echo $i;
if($i%3==0)echo"<br>\n";
}

168 :PHPDQN:03/06/22 13:31 ID:???
define("NUMCOLS",5); // 列の数
reset($hoge);
echo "<table>\n";
foreach ($hoge as $key->$val) {
 if ($key % (NUMCOLS - 1) == 0) {
  echo "<tr>\n";
 }
 echo "<td>".$val."</td>\n";
 if ($key % NUMCOLS == 0) {
  echo "</tr>\n";
 }
}
echo "</table>\n";

169 :nobodyさん:03/06/22 13:45 ID:???
>>168
やさしいね。でもそこはかとなく間違ってる。
×foreach ($hoge as $key->$val) {
○foreach ($hoge as $key=>$val) {
×if ($key % (NUMCOLS - 1) == 0) {
○if ($key % NUMCOLS - 1 == 0) {
◎if ($key % NUMCOLS == 1) {

あとecho "</table>\n";の前に
$n = count($hoge) % NUMCOLS;
if ($n > 0) {
 for ($i = 0; $i < $n; $i++) {
  echo "<td></td>\n";
 }
 echo "</tr>\n";
}
かな。 

170 :PHPDQN:03/06/22 13:59 ID:???
>>169
おお,ケヤレスミスすまそ

空セルもちゃんと作るのは丁寧ですね。
見習います

171 :166:03/06/22 14:04 ID:???
>>167
ありがと
こんな簡単に出来るのか

>>168-169
これはテーブルで表示できるのかな
おれのレベルじゃまだ理解できない・・・
ちょと試してみます



172 :nobodyさん:03/06/22 15:44 ID:TMm6ngKF
チャットに書き込んだ後にリロードすると[再試行]が出てくるんだけど
普通にリロードできるようにするにはどうやるの?

173 :nobodyさん:03/06/22 16:11 ID:???
>>172
オレのところのチャットだと問題なかったよ。
そっちの端末の環境の所為じゃないの?

174 :nobodyさん:03/06/22 16:22 ID:???
POSTだろうから、GETにしてみるよし。

>>172
いや、、なんというか。。ぽんしち?(藁

175 :nobodyさん:03/06/22 16:23 ID:???

172じゃなくて 173だった。

176 :nobodyさん:03/06/22 19:07 ID:???
>>172
書きこんだ後リダイレクトする

177 ::03/06/22 21:01 ID:???
>>168-169
サンクスコ

<table border=1>
<td>ほげ1
</td>
</tr>
<tr>
<td>ほげ2
</td>
<td>ほげ3
</td>
<td>ほげ4
</td>
<td>ほげ5
</td>
<td>ほげ6
</td>
</tr>
<tr>
<td>ほげ7
</td>
<td>ほげ8
</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>

てな具合に、最初の行が上手く動作してくれないんだけど、原因が見当つかない

178 :PHPDQN:03/06/22 22:40 ID:???
>>169
×if ($key % (NUMCOLS - 1) == 0) {
○if ($key % NUMCOLS - 1 == 0) {
◎if ($key % NUMCOLS == 1) {
$key == 0 の時にもTRUEになるためには一番上が必要でした

179 ::03/06/23 04:05 ID:???
>>169
foreach ($hoge as $key=>$val) {
if ($key == 0) {
echo "<tr>"."\n";
}elseif ($key % NUMCOLS == 1) {
echo "<tr>"."\n";
}
とか、やってもダメですた・・・(ウトゥ
<table border=1>
<tr>
<td>ほげ1
</td>
</tr>
<tr>
<td>ほげ2〜
最初の<tr>が出現したのみ。

1行目だけなんで・・・(つД`)

180 : :03/06/23 04:06 ID:vjy3Tk6s
すごいねここ
http://strangeworld-honten.com/cgi-bin/bbs.cgi

181 :nobodyさん:03/06/23 04:12 ID:???
ブラウザークラッシュ!!

182 :あぼーん:あぼーん
あぼーん

183 :PHPDQN:03/06/23 04:23 ID:???
>>179
foreach ($hoge as $key=>$val) {
if ($key % (NUMCOLS - 1) == 0) {
echo "<tr>"."\n";
} elseif ($key % NUMCOLS == 1) {
echo "<tr>"."\n";
}

184 :あぼーん:あぼーん
あぼーん

185 ::03/06/23 08:30 ID:???
あ゛〜(`□´)
背中に手が届きそうで届かない!
漏れにプログラムは向いてないんか!?

>>183
それだと、$key が 8 になった時も
if ($key % (NUMCOLS - 1) == 0) にマッチして<tr>が出てくるべさ。
するとテーブルが崩れてしまうべさ。
昨日>>168見た時は、サパーリだったけど、今は何をどうしたらいいかが
解ってきたような気がする・・・

後は、何とか自力で・・・出来たらいいなぁ〜(´¬`)
ところで、今回は定数に5を代入してるけど、これ変数じゃだめぽ?
あっ、NUMCOLS-1 とかしてるから変数じゃマズイか・・・

yata-でけた〜!!!!!!


186 ::03/06/23 08:32 ID:???
define("NUMCOLS",5); // 列の数
reset($hoge);
echo "<table border=1>"."\n";
foreach ($hoge as $key=>$val) {
if ($key == 0) {
echo "<tr>"."\n";
} elseif ($key % NUMCOLS == 0) {
echo "<tr>"."\n";
}
echo "<td>".$val."</td>"."\n";
if ($key % NUMCOLS == 4) {
echo "</tr>"."\n";
}
}
$n = count($hoge) % NUMCOLS;
if ($n > 0) {
for ($i = 0; $i < NUMCOLS-$n; $i++) {
echo "<td> </td>"."\n";
}
echo "</tr>"."\n";
}
echo "</table>"."\n";


187 :PHPDQN:03/06/23 11:27 ID:???
>>185
そうだね
じゃあ
if ($key == 0 || $key % NUMCOLS == 1) {

188 ::03/06/23 12:41 ID:???
それだ!論理和 || !

$key % NUMCOLS == 1
だと、$key が、1,6,11・・・の時にマッチしてしまい、出したい所に<tr>が出ない。
なのでやっぱりここは
$key % NUMCOLS == 0
if ($key % NUMCOLS == 4)
の部分は、5列って事しか考えていなかった為、ちょい修正して
if ($key % NUMCOLS == NUMCOLS-1)
>>169が書いてくれた空セル追加は
for ($i = 0; $i < $n; $i++)
だと、例えば余剰が4の時は、4つ空セルを作ってしまう。
空セルは列の数から余剰を引いた分だけ欲しいので、
for ($i = 0; $i < NUMCOLS-$n; $i++)

こんな厨な漏れに付き合って下さった PHPDQN 様、ありがとうございました!

189 ::03/06/23 12:43 ID:???
最終的には、こうなりますた。

$filename = "test.log";
$hoge = file ($filename);

define("NUMCOLS",5); // 列の数
reset($hoge);
echo "<table border=1>"."\n";
foreach ($hoge as $key=>$val) {
if ($key == 0 || $key % NUMCOLS == 0) {
echo "<tr>"."\n";
}
echo "<td>".$val."</td>"."\n";
if ($key % NUMCOLS == (NUMCOLS-1)) {
echo "</tr>"."\n";
}
}
$n = count($hoge) % NUMCOLS;
if ($n > 0) {
for ($i = 0; $i < NUMCOLS-$n; $i++) {
echo "<td> </td>"."\n";
}
echo "</tr>"."\n";
}
echo "</table>"."\n";


190 :nobodyさん:03/06/23 16:28 ID:???
$c = count($hoge);
$c += $c % 5
for ($i = 0, $j = 0, $td = '', $tr = ''; $i < $c; $i++, $j++) {
$v = isset($hoge[$i]) ? $hoge[$i] : " ";
$td .= sprintf("<td>%s</td>", $v);
if ($j == 4) {
$tr .= sprintf("<tr>%s</tr>", $td);
$j = -1;$td = '';
}
}
printf("<table>$s</table>", $tr);

191 :nobodyさん:03/06/23 17:00 ID:ghLrcRD3
php 4.2.3 を使っています。
ヒアドキュメントに関して教えて欲しいのですが、
ヒアドキュメント内に、式、というか関数を書き、その結果を
使いたいのですが、うまくいきません。

$buf = <<<EOD;
a = {$db->query($_POST['a'])},
b = ### 以下同じように...
EOD;

のような感じに書き、print $buf; で

a = 値, b = 値 となるようにしたいのですが、

Parse error: parse error, expecting `'}'' in ...

となってしまいます。ヒアドキュメントではなくて、

$buf .= "a = ".$db_con->quote($_POST['a']).",";

と続けていくしかないでしょうか?

192 ::03/06/23 19:16 ID:???
$buf = <<<EOD;
↑この行ってセミコロンいるんですか?

193 :191:03/06/23 19:22 ID:ghLrcRD3
>> 192
すみません。手コピーした時にミスりました。
セミコロンいらないです。

書き写しをミスっただけなので、セミコロンは本質的な
問題じゃありません。すみませんです。

194 ::03/06/23 19:33 ID:???
a = {$db->query($_POST['a'])},
a → $a
, → ;

今の漏れにはこれくらいしかミスがハケーンできず。
あとは、偉い人よろ。

195 :nobodyさん:03/06/23 20:41 ID:???
>>191

$buf = <<<EOD
EOD;
~ このセミコロンはだめだと思うが?
EOD
;
こうだろ。

$buf = <<<EOD;
EOD
でも良いとおもうが

196 :nobodyさん:03/06/23 20:49 ID:???
セミコロンの位置に関しては>>192が正解。
つーかそれ以前にヒアドキュメント内には関数を書けんわけだが。
「以下同じように」なことをしたいんならwhile、for、foreachのどれかでしょ。

197 ::03/06/23 20:58 ID:???
>>191
スマソ、漏れの発言(>>194)は全部忘れて。

198 :191:03/06/23 21:05 ID:???
>>196 ヒアドキュメント内には関数を書けんわけだが。
ども。書けない事がわかったのでヒアドキュメントを使うのを
やめられます(^^;

>>194, 197
いえいえ。アクションを起してもらえた事がうれしいので、
感謝しています。ありがとう。


199 :nobodyさん:03/06/23 23:30 ID:???
>>198
echo やprintの中でもかけないよ
当たり前だけど

200 :nobodyさん:03/06/24 00:57 ID:???
200

201 :nobodyさん:03/06/24 03:00 ID:/ljDW6SS
ゲストブックは作れるけど、
返信機能も付けたい・・・↓
ttp://blue.ribbon.to/~goonet/pppbbs.php
どうしたらいいですか?

202 :nobodyさん:03/06/24 03:21 ID:???
保守
アホな質問であっても詳しく質問しろよ。 ネタはおもしろく書けよ。


203 :nobodyさん:03/06/24 12:56 ID:bE/a8saZ
$before = array('aaa','AAA','bbb','BBB');
$after = array('aaa'=>'AAA','bbb'=>'BBB');
上の配列を下配列に変換するにはどうしたら良いでしょうか。

クラスの中でコールバックする時にクラス内の関数を指定するには
どうしたらよいですか?
class::function,$this->functionともにダメでした。

204 :PHPDQN:03/06/24 19:27 ID:???
>>203
> $before = array('aaa','AAA','bbb','BBB');
> $after = array('aaa'=>'AAA','bbb'=>'BBB');
> 上の配列を下配列に変換するにはどうしたら良いでしょうか。

$i = 1;
foreach ($before as $key=>$val) {
if ($i % 2 == 1) {
$hoge = $val;
} else {
$after[$hoge] = $val;
}
$i ++;
}
> クラスの中でコールバックする時にクラス内の関数を指定するには
> どうしたらよいですか?
> class::function,$this->functionともにダメでした。

class::function()
$this->function()


205 :nobodyさん:03/06/25 11:50 ID:???
>>203
function arrayToHash ($array) {
 if (!is_array($array)) return false;
 $hash = array();
 $m = count($array);
  for ($n=0;$n<$m;$n++) {
   if ($n % 2) {
    $hash[$array[($n-1)]] = $array[$n];
   } else {
    $hash[$array[$n]] = "";
   }
 }
 return $hash;
}
こんなかんじかな?なんとなくだけどもっと良い方法が在るかも

クラス内でのコールバック関数を使うんだったら、create_function()を使うか
array($this,'method_name')でソメッドを指定してやること
ttp://jp.php.net/manual/ja/function.preg-replace-callback.php
を見れば参考になるよ(Notesのところもね)

206 :nobodyさん:03/06/25 12:13 ID:TNz4QTlp
関数内でグローバル変数にリファレンスを代入したときの挙動がよく分からないのですが、
$a=array(1,2,3);
$b;
hoge();
piyo();
function hoge(){
  global $a,$b;
  $b = &$a;
  var_dump($b);
}
function piyo(){
  global $a,$b;
  var_dump($b);
}
でpiyoのdumpがNULLなのはなぜですか?

207 :nobodyさん:03/06/25 15:15 ID:RiMKFAt2
sessionについて学んでおります。
サンプルソースより、多々のサイトを閲覧し意味を求めているのですが、
解釈があっているかどうか・・・

session_name('2ch_session');
セッション名ですよね?

session_cache_limiter('nocache');
ページをキャッシュをさせるかどうかの意味だと思うのですが、
public、nocache、privateの違いがいまいちわかりません。

session_cache_expire(30);
limiterでキャッシュする場合、30分とかという
時間の長さですよね

session_start();
ここからセッションが始まる



何冊か本を購入したのですが、sessionのやり方は書いてあっても、
サンプルスクリプトなどにsession_cache_limiter();
などど唐突に書いてあり、意味の解説がなされてありませんので、
自分ながらに解釈してみました。どこが間違っているでしょうか?

208 :nobodyさん:03/06/25 16:10 ID:???
なんでマニュアル読もうとしないのだろうか?
実はマニュアルは存在しない、私の想像の産物に過ぎないのであろうか・・・
この理不尽な質問にもそう考えるとすべての辻褄が合う。

209 :nobodyさん:03/06/25 16:36 ID:???
>>208
そんな事、たらたら書くんだったら教えてあげ。
http://jp.php.net/manual/ja/ref.session.php

おい、207これでわかるか?分かんなかったらまた質問し。

210 :nobodyさん:03/06/25 16:39 ID:+bFcwMX4
>>208
マニュアルのまんまの参考書って多いよね。
マニュアルのほうが分かりやすいし、最新、タダなのにねぇ。感謝>doc.group

>なんでマニュアル読もうとしないのだろうか?
考えられる理由は、マニュアルのトップページ見ても
1) XCIIIセッション処理関数(session)
に辿り着く前に面倒になる
2) search for [ ] in the [function list]
の英語が分からない
3) 2)の submit ボタン が 分かりづらい

4) manual の 存在に気づいてない
& このスレの最初すら読んでない
& 基礎からやるのはダルイ

ぐらいかな。

211 :ereg質問者:03/06/25 17:12 ID:???
eregについて調べているのですが、
本を見ただけではわからないので質問させて下さい。
現在あるソースを見ながら何をしているのかを調べているのですが、
eregを使っている部分で分からなくなってしまうので
解説してもらえないでしょうか?
具体的には以下のようなコードが書かれています。
------------------------------------------------
ereg( "([0-9]{1,2}) (.+)", $ini_file, $regs ) )
ereg( "\*", $regs[2])
ereg_replace( "\*", "", $regs[2] )
ereg_replace( "\*", "(.*)", $regs[2] )
ereg("\"[EGOPS]{2,3}T ".$ini[$ii][1]."(.*) HTTP", $file, $regs)
ereg( $param[$ss], $log_url )

eregの部分だけなので繋がりがなく分かりずらいと思いますが
よろしくお願いします。

212 :nobodyさん:03/06/25 17:20 ID:???
>206
3行目で $b に値が設定されていないから。アホか。
しかしスコープ間でリファレンスを受け渡しする際の挙動制御は確かにややこしいと思う。

http://www.php.net/manual/ja/language.variables.scope.php
http://www.php.net/manual/ja/language.references.spot.php#references.global
と、01-Aug-2001 05:07 の補足。
( http://www.php.net/manual/ja/migration4.variables.php )
( http://www.php.net/manual/ja/language.references.unset.php )

>208
ある程度phpに習熟しているのにマニュアルを読まない者が何割か残り続けるところからすると、
マニュアルを読むのにはいくつか「慣れ」が必要なポイントがあると思う。
慣れれば利用は易いが、慣れることができなかった場合はその先もずっと読まない。
マニュアルはphpに残った最後の敷居か。

213 :あぼーん:あぼーん
あぼーん

214 :nobodyさん:03/06/25 17:37 ID:???
関数内でのグローバル変数に対する値の変更はその関数内でしか有効にならないのですか?

215 :nobodyさん:03/06/25 17:39 ID:+bFcwMX4
>[EGOPS]{2,3}T
ふいてしまったじゃないか!

216 :212:03/06/25 18:04 ID:???
>214
ユーザ定義関数の内から直接グローバルスコープの変数にはアクセスできないが、
global宣言をしていれば、グローバルスコープでも変更が反映される。
global宣言は分かると思うけど、関数内(ローカルスコープ)の変数に
グローバルスコープの変数へのリファレンスを渡すもの。
( マニュアルいわく、global $a; は $a =& $GLOBALS['a']; と同義 )

同じように、ローカルスコープで作られた変数はグローバルスコープからは変更できない。
この場合はstatic宣言をすると、グローバルスコープへ関数内の変数を持ち出すことが出来る。

ただ、>206の人がはまってるように、ローカルスコープ(関数内)で作られたリファレンスは
static宣言してもグローバルスコープへは持ち出せない。関数処理が終われば消滅。

そのような感じ。


217 :nobodyさん:03/06/25 18:26 ID:???
このスレ212は漏れなんだが
まあ間々あることか、、

218 :あぼーん:あぼーん
あぼーん

219 :あぼーん:あぼーん
あぼーん

220 :nobodyさん:03/06/25 19:40 ID:???
ヒアドキュメントの中で定数の値を出力する方法を
教えて頂けませんか?

221 :nobodyさん:03/06/25 21:09 ID:???
>>220
定数なら直に書けば?

222 :nobodyさん:03/06/26 02:14 ID:ZsWdiO4a
mb_convert_kanaを使うと????となってしまうんだけど、なんで??

223 :nobodyさん:03/06/26 02:21 ID:???
>>221
あんたプログラムで定数を使ったことないのか?

224 :nobodyさん:03/06/27 01:13 ID:???
>>222
変換できなかったから

225 :207:03/06/27 02:26 ID:GX1Z4uke
皆様のおっしゃるとおりです。
マニュアルを熟知しました。
その上で質問です。

セッション変数にデータを追加する際、
session_start();
session_register("user_id");
$user_id = "giko";
をヘッダに使用すると、別のページでも、user_idに格納された
データを使うことができますが、

本に書いてあったのは、
session_start();
$user_id = "giko";
$_SESSION["user_id"] = "user_id";
とあり、
$_SESSIONは4.1.0から追加された配列です。とあります。
                     ~~~~~
$_SESSIONで、PHPマニュアルで探したのですが、ちょっと見つけることができませんでした。

ということは、少量の変数を用いる際は、上の例で、
配列を使いたいときは、下の例でいいということなんでしょうね・・・

なんか、まだ自信がないのですが、
推奨とかありますか?

226 :とも:03/06/27 02:34 ID:8zlvqcC5
みてね〜♪
http://www1.free-city.net/home/s-rf9/page005.html

227 :nobodyさん:03/06/27 02:49 ID:???
ブラウザークラッシュ”

228 :207:03/06/27 02:58 ID:???
>>225
自己レスです。


http://jp.php.net/manual/ja/ref.session.php
に普通に乗っていました。
グローバル変数として扱えるのですね。

検索の仕方が悪かったようで。

すいませんでした。

229 :nobodyさん:03/06/27 05:44 ID:???
いわゆる「パン屑リスト」のうまい処理のしかた求む。

230 :あぼーん:あぼーん
あぼーん

231 :あぼーん:あぼーん
あぼーん

232 :あぼーん:あぼーん
あぼーん

233 :nobodyさん:03/06/27 11:18 ID:oE4Jdn/I
ファイル一覧のソート方法を教えてください。
単純に、ファイル名(日付になっています)に並べたいです。

以下の方法で一覧を表示したときに何順にならんでいるのでしょうか。
当方の確認した環境では、全く順不同でした…

while ( $filename = ReadDir( $handlerDir ) ) {
if ( $filename != '.' && $filename != '..' ) {
print $filename;
}
}

よろしくです。


234 :あぼーん:あぼーん
あぼーん

235 :nobodyさん:03/06/27 11:48 ID:9q2Y1uRy
>>233
#いったん配列に入れて
if ( $filename != '.' && $filename != '..' ) {
$files[] = $filename;
}
#ソートする
sort($files);
#ポインタを先頭に
reset($sort);
#表示
foreach($files as $filename) {
print $filename."<br>\n";
}

236 :nobodyさん:03/06/27 13:37 ID:oE4Jdn/I
>>235
ありがとうございます。
大変参考になりました。


237 :あぼーん:あぼーん
あぼーん

238 :あぼーん:あぼーん
あぼーん

239 :あぼーん:あぼーん
あぼーん

240 :nobodyさん:03/06/27 23:59 ID:???
ブラクラ注意

241 :nobodyさん:03/06/28 08:30 ID:WrETl/ge
mkdirでフォルダを作ってそのフォルダを開きたいんですけど、
Warning: SAFE MODE Restriction in effect. The script whose uid is 〜
というエラーが出てしまいます。
FTPで最初からフォルダを作っておくとちゃんと出来ます。
どうすればよいんでしょうか。

242 :nobodyさん:03/06/28 09:31 ID:???
>>241
safe modeをoffにする。

243 :nobodyさん:03/06/28 10:05 ID:???
define は処理の途中で使ってもOKですか?

244 :nobodyさん:03/06/28 10:58 ID:???
初心者はやってもいないのに「〜はできますか?」って聞いてくる。
まずはやってみれ。もちろんローカルで。

245 :nobodyさん:03/06/28 12:09 ID:???
>>244
知ったか君はは試したこともなくてどうなるか自分も解らないのに「試してみろ」って言ってくる。
お前もまずはやってみれ。後学のために。もちろんローカルで。


246 :!244:03/06/28 12:56 ID:???
自分で試したほうがはやいことをいつレスが付くかわからん掲示板で
訊くって言う発想がよくワカランなぁ。
余計にマンドクサくね?

>>245
>自分も解らないのに
ってのは分かんないじゃん
>>243が何にも試してないんだろうなって臭いはプンプンするが。

そもそもマヌアルにはdefine()の使いどころの注意書きは見当たらないけど、
心配しだす動機は何なんだろ
テスト環境用意してないのかな?
いちいちマヌアルに書いてない事まで心配しだしたらコーディング進まねーYO!

俺は安全な環境で誤動作上等って感じでコード書きまくってからテストしてる。
やっちゃダメな事はローカルで実体験しまくった方が身によく付くYO

#まだPHP弄りだしたばかりで、PHPで定数使ったことねぇんだけど
#適当なソースにdefine()とその定数をechoする行追加してみたけど
#何の問題もなさそうだたーよ

247 :nobodyさん:03/06/28 13:03 ID:Fh1b8anl
>>246
>>224よ、お前が歯を食いしばって釣りを無視しているにもかかわらず、何か豪勢なのが釣れてるんだが・・・

248 :246:03/06/28 13:06 ID:???
俺なりのマジレスしてみたんだがなぁ
何か無粋なやっちゃな
釣りとか釣られたとかくだらねー

249 :243:03/06/28 14:17 ID:???
>>246
ありがとうございます。
define は処理を始める前に羅列するような先入観があり、
文法的に変なような気がしていましたので。

250 :221:03/06/28 16:28 ID:???
>>223
いやー>>220が頓珍漢な事を言ってるから
こちらも頓珍漢な答えで茶化したわけだが
何故無理してまでヒアドキュメント使おうとするのかわからん
まぁたしかにタチ悪かったねスマン

251 :nobodyさん:03/06/28 16:49 ID:???
>>246=>>248=>>250

252 :246:03/06/28 17:47 ID:???
>>251
>>250と結びつける意味がワカラン
ますますくだらねー
ただでさえジメジメしてうっとおしい時期なんだからさ
そういうジメジメしたカキコはやめようや

>>249
定数とかは分かりやすい場所に書いたほうが良いよ
ファイルの前の方とか、定数だけ書いたファイルをインクルードするとか
散在してると後で見つけにくくなるから

後、繰り返しになるけど、コードの落とし穴とかは(テスト環境で)実体験しといた方が楽だよ
ちょっとした疑問程度なら自ら動かしてみてくらはい
見聞きしただけでバグ無しコード書けるくらいに頭の回転がはやい人なら別だろうけど

253 :nobodyさん:03/06/28 18:47 ID:???
>>252
まぁ、ネームスペースとかに興味がない人はそう思うんでしょうな。

254 :nobodyさん:03/06/29 01:35 ID:???
PHPって定数にネームスペースの概念ってあったっけ?
列挙型とか。

255 :nobodyさん:03/06/29 14:32 ID:rZczdmH2
質問!
フォームから入力したテキストに[\](バックスラッシュ)が
入ってしまうんです.
調べて[magic_quotes_gpc]の値を[ini_set]でOFFにすればいいと
いうのがわかったのですがこれでも回避されませんでした.
しかたなしに[stripslashes]で回避しているのですが
もっと根本的に直せないでしょうか?
ちなみに[magic_quotes_runtime][magic_quotes_sybase]の
値も全てOFFです.


256 :PHPDQN:03/06/29 14:39 ID:???
>>255
SJIS?

257 :255:03/06/29 15:52 ID:rZczdmH2
デフォルトでは[Shift-JIS]の出力だったので
ini_set('mbstring.http_output', "EUC-JP");
を実行して[EUC-JP]に変換しています.
この辺が怪しいですか?


258 :nobodyさん:03/06/29 17:08 ID:???
>>257
stripslashes

259 :nobodyさん:03/06/29 17:10 ID:???
>>255
再起動した?

260 :255:03/06/29 17:21 ID:rZczdmH2
[ini_set]でやってるので再起動なしに反映されてます.
[stripslashes]で回避はできますができれば根本から
直したいです.


261 :nobodyさん:03/06/29 17:49 ID:???
おいらのまぬあるが古いのかな?
ini_setでmagic_quote_gpcは設定できないように書いてあるようにみえる。

262 :nobodyさん:03/06/29 20:30 ID:???
>>261
合ってるよ(一応PHP4.3.2のソースでも確認)
http://jp.php.net/manual/ja/ref.info.php#ini.magic-quotes-gpc
で、PHP_INI_PERDIRとPHP_INI_SYSTEMなので
http://jp.php.net/manual/ja/function.ini-set.php
の説明どおり、スクリプトの中のini_set()では変更できない。

263 :nobodyさん:03/06/29 22:53 ID:???
http://jp.php.net/ini_set
261あってるね。

264 :255:03/06/30 00:28 ID:8Khs5mrJ
ありがとうございます.m(_ _)m
書き忘れてましたがPHP4.1.2です.
再起動しないとだめなんですね…
でも
ini_set('magic_quotes_gpc', 0);
phpinfo();
をやるとちぇんとLocal ValueではOFFに
なってるんですがこれはあくまで設定値ということなんですね…
ありがとうございました.


265 :255:03/06/30 00:32 ID:8Khs5mrJ
ついでに利かせてもらうと
レンタルサーバの場合などみなさん
どうしているんでしょうか?
いちいち[stripslashes]の処理をさせてるんでしょうか?


266 :nobodyさん:03/06/30 00:48 ID:???
まぁ、ケースバイケースだけど
俺はこんな感じのことをしてます。
---------
if (get_magic_quotes_gpc() == 1) {
  switch ($_SERVER["REQUEST_METHOD"]) {
    case "POST":
      while (list($key, $val) = each($_POST)) {
        if (! is_array($val)) {
          $_POST[$key] = stripslashes($val);
        }
      }
      break;

    case "GET":
      while (list($key, $val) = each($_GET)) {
        if (! is_array($val)) {
          $_GET[$key] = stripslashes($val);
        }
      }
      break;
  }
}

267 :nobodyさん:03/06/30 01:50 ID:???
$_GET = array_map('stripslashes', $_GET);
$_POST = array_map('stripslashes', $_POST);
$_COOKIE = array_map('stripslashes', $_COOKIE);
これ最強。

268 :nobodyさん:03/06/30 01:56 ID:???
念のため、再帰的に変換するのもあり。
$_GET = array_map('r_stripslashes', $_GET);

function r_stripslashes($value) {
if (is_string($value)) {
$value = stripslashes($value);
} elseif (is_array($value)) {
$value = array_map('r_stripslashes', $value);
}
return $value;
}

269 :266:03/06/30 02:48 ID:???
なるほど・・・勉強になりますた

270 :nobodyさん:03/06/30 04:09 ID:8KMUcild
文字列の中にあるスペース削除ってどうやるの?

271 :あぼーん:あぼーん
あぼーん

272 :nobodyさん:03/06/30 04:36 ID:???
>>270
str_replace

273 :nobodyさん:03/06/30 05:11 ID:OSudLwdS
認証システムを作っているんだけど、
アカウント名に、半角英数小文字のみ
abcdefghijklmnopqrstuvwxyz0123456789_-
だけにしたいのです。

フォームから上記以外の文字を入力された場合、
駄目!って言いたいんだけど、
正規表現は難しそうなので、

if ( mb_convert_kana($account,"akh") != $account ) { echo "駄目!!"; }
で行こうと思ったんだけど、
全角の漢字とか、スペースを入力されてしまいそう・・・
記号もたくさん入力されそう・・・

なんかいい方法ありますか?

274 :nobodyさん:03/06/30 06:52 ID:???
>>273
ちょっと分からなくても正規表現やっておくといいと思うよ。

$a がフォームから受け取った文字
ereg("^[a-z0-9_-]+$", $a)

これで期待通りの結果が得られると思うけど、意味は自分で調べるとよろし。


それよりお前ら、PHP5.0.0 Beta1なんてのが表舞台に出てきましたよ。

275 :nobodyさん:03/06/30 10:12 ID:aQ17FmN/
登録された内容をメールで送信しようとしています。
EUCで書かれたファイルで作成するので

$line = mb_convert_encoding($line,"ISO-2022-JP","EUC-JP");
$subject = mb_convert_encoding($subject,"ISO-2022-JP","EUC-JP");
mail($mail,$subject,$line,"From: hoge@yahoo.co.jp\r\nReply-To: hoge@yahoo.co.jp");
としています。

送られてきたメールを見るとタイトルは文字化けしているのですが、
メッセージの方は問題無く表示されています。
なにが問題なのでしょう。

276 :255:03/06/30 10:31 ID:JZyVHkmB
>> 266-268

ありがとうございます!
m(_ _)m
べんきょうになりますな.


277 :nobodyさん:03/06/30 10:34 ID:???
>>275
subjectをエンコードする
またはmb_send_mail()を使う

278 :275:03/06/30 11:00 ID:???
ありがとうございます。
mail()の個所をmb_send_mail()と変更しただけで、
mb_send_mail()を使用しましたが、
届いたメールは件名はあるがメッセージ自体が無い状態で届いてしまいました。

これもまたなぜなんでしょう。

279 :nobodyさん:03/06/30 11:26 ID:???
>>278
メッセージのないメールを送ったとしか考えられない

280 :275:03/06/30 11:35 ID:???
mailではうまく行くんですよ。
操作自体も同じですし。

281 :273:03/06/30 11:42 ID:???
>>274
正規表現めんどくさそうだけど、今日一日やってみます。
ありがとやんす〜

5.0.0Beta1期待!

282 :nobodyさん:03/06/30 12:26 ID:???
>>275
$subject = mb_convert_encoding($subject,"SJIS","EUC");
$subject = '=?ISO-2022-JP?B?'.base64_encode($subject).'?=';
してから、mail関数で送信してみ

283 :275:03/06/30 13:12 ID:???
>>282
うまく行きました。
今からどういう処理なのか勉強したいと思います。
ありがとうございました。

284 :nobodyさん:03/06/30 16:01 ID:???
数百行あるテキストファイルから指定した行だけ抜き出すにはどうしたらいいでしょうか?
fileで読み込むと全行読み込むから効率が悪いと思うのです。

285 :あぼーん:あぼーん
あぼーん

286 :nobodyさん:03/06/30 17:43 ID:???
ブラクラ注意

287 :PHPDQN:03/06/30 19:17 ID:???
>>270
preg_replace("/\s/","",$hoge);

288 :あぼーん:あぼーん
あぼーん

289 :nobodyさん:03/06/30 22:15 ID:???
ブラクラ注意

290 :nobodyさん:03/07/01 11:51 ID:???
ブラブラチンコ

291 :nobodyさん:03/07/01 19:25 ID:???
>>284
n行目のファイル先頭からのオフセットを一覧にしたインデックスを作ったらどうか。

292 :nobodyさん:03/07/01 21:20 ID:???
すみません
Shift-JISのファイルをEUCに変換できますか?
↓みたいなやつ作ったんですけど、データファイルがShift-JISだったんで読み込めない(汗

<?php
$data = file ("$file");
print $data;
?>

293 :nobodyさん:03/07/01 22:15 ID:???
>>292

mb_convert_encoding(文字列,出力文字コード,入力文字コード)
で文字列ごとに変換しないとだめなのかも

PHPはじめて10日くらいなので詳しくは知りませんが

294 :nobodyさん:03/07/01 22:21 ID:???
>>293
10日にしては上出来だ。

295 :nobodyさん:03/07/01 22:26 ID:???
フォームから文字を入力して結果を表示する単純なものなんですけど、
"送信"を押しても何も表示されません。

どこが悪いのか・・・
<FORM action="<?php echo($_SERVER["PHP_SELF"]) ?>" method="POST">
なまえ:<INPUT type="text" name="yourname"><br>
<input type="submit" name="SUBMIT" value="送信"> <input type="reset" name="reset" value="リセット">
</FORM>
<?php
if ($SUBMIT != "" ) {
   echo ($yourname);
   }
?>

296 :nobodyさん:03/07/01 22:31 ID:???
>>295
>if ($SUBMIT != "" ) {

新しい本を読みましょう。と。

297 :295:03/07/01 22:52 ID:???
>>296
ありがとうございます

>>295はPHP入門という本を参考にしてます
一番やさしそうだったんで買ったんですけど、たしかに内容古いかも

$_REQUESTを使うのかな?
もうちょっと試してみます


298 :nobodyさん:03/07/01 23:12 ID:???
>>297
$HTTP_POST_VARS["SUBMIT"]

299 :nobodyさん:03/07/01 23:26 ID:???
$_POST

300 :nobodyさん:03/07/01 23:37 ID:???
>>297
内容古いのはぜんぜん問題ないよ。とにかく書けよ。

301 :295:03/07/02 00:07 ID:???
if ($_REQUEST["SUBMIT"] != "" ) {
  echo ($_REQUEST["yourname"]);
}
でようやく出来ました
ありがとうございましたー

302 :nobodyさん:03/07/02 00:14 ID:???
>>301
あ〜あ・・・

303 :nobodyさん:03/07/02 01:52 ID:???
>>301
まちがっちゃーいないんだけど
$_REQUESTはGETとPOST、COOKIE、FILESを区別しないから
セキュリティーホールになりやすい。
つーかなんで>>299の優しさをふいにするかなあ。
$_POST['SUBMIT'],$_POST['yourname']にしる!

304 :nobodyさん:03/07/02 06:21 ID:???
>>300
>内容古いのはぜんぜん問題ないよ。とにかく書けよ。

ばっちり問題が出てるんだが。アホか?

305 :nobodyさん:03/07/02 06:21 ID:???
>>303
>>298は無視か。死ね。

306 :あぼーん:あぼーん
あぼーん

307 :nobodyさん:03/07/02 07:06 ID:???
>>305
ごめんごめん。でも...それ...古いし。
4.1以降でも非推奨だしPHP5では使えんでしょ?(憶測
スルーしたのは素直に悪かったと思ふ。

308 :nobodyさん:03/07/02 08:22 ID:???
な、なんだってーー!!!!
PHP5では使えなくなるのか・・・

309 :nobodyさん:03/07/02 15:03 ID:iDV7N0wg
eregでマッチした数を得るにはどうしたらよいんでしょうか?


310 :309:03/07/02 15:14 ID:???
すんません。出来ました。

311 :あぼーん:あぼーん
あぼーん

312 :nobodyさん:03/07/02 15:39 ID:???
ブラクラ注意

313 :K:03/07/02 15:55 ID:+4nJpvGg
CGIを使ったHPとそうでないHPはどこが違うんですか?


314 :あぼーん:あぼーん
あぼーん

315 :あぼーん:あぼーん
あぼーん

316 :nobodyさん:03/07/02 20:54 ID:???
ブラクラ注意

317 :301:03/07/02 21:24 ID:???
>>303
あわわ・・・

ttp://search.net-newbie.com/php/language.variables.predefined.html
↑にもユーザ入力機構によりスクリプトに入力される全ての変数で、 このため、信頼することができません
ってありました。

以後、気をつけます。


318 :404.HDML ◆StMXML.EXE :03/07/03 03:55 ID:???
>>309

if(ereg(一致条件,評価する変数,$hoge)){ # 眠いので勘弁して
die(count($hoge));
}

一致条件にマッチした箇所が配列として$hogeに入るので、
後は$hogeをcount()関数で数える、という事を思いついた。。

319 :nobodyさん:03/07/03 04:03 ID:???
>>309
preg_match_allならそのままできるんだが

320 :nobodyさん:03/07/04 00:29 ID:WD3uwLUp
linux(赤帽7.3)+PHP4.1を使用しています。

PHPから、linuxの認証を使い回すことは可能でしょうか?
また、その際、パスワードの変更なども可能でしょうか?

321 :nobodyさん:03/07/04 06:27 ID:???
>>320
激しくセキュリティホールな予感。

passwdにSUIDとか立てたら・・・・って立ってるのか。可能っぽいよ。

322 :nobodyさん:03/07/04 09:14 ID:DNjraE66
イメージ関数で画像の減色って出来ますか?
リサイズは出来たんですけど、減色の方法がわかりません・・。

323 :nobodyさん:03/07/04 14:36 ID:???
User-Agentを取得してMysqlのデータベースに蓄積しています。
$headers=getallheaders();
$ua = $headers['User-Agent'];
としています。
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"が欲しいのですが
"Mozilla/4.0"
までしかデータベースに入りません。どうすれば良いのでしょうか。
ローカルで試しています。PHP 4.3.2 Apache/1.3.24
ご教授願います。

324 :nobodyさん:03/07/04 16:03 ID:ykyCw+EL
FlashとPHPで変数をやりとりしたいのですが
PHPからFlashに送るためには
どういう風にスクリプトを書けばいいんでしょう?
Flash側はsendAndLoadなどで送られてきた
データを受け取ることはわかっているのですが
PHPからどう出力すれぱいいのかわかりません。
(例えばecho ($hoge)などで出力するわけじゃないですよね…)

あともうひとつFlashからPHPに変数を送る際に
返り値もなにも受け取らず、ターゲットウインドウもなし
ただ単純に変数を送るだけってことはできるんでしょうか?
sendで送信後に送り先の「〜.php」が開いてしまいます。
↑板違いなFlash含んでて申し訳ないです。

325 :nobodyさん:03/07/04 16:22 ID:???
PHP+MySQLで掲示板とか作って配布しようと思ってるんですが、テーブルのLOCKって必要ですか?

326 :nobodyさん:03/07/04 16:27 ID:???
>>323
フィールドのタイプとか文字数とかどんなクエリで取り出してるとか教えてくれないの?

327 :nobodyさん:03/07/04 21:18 ID:???
Perlから移植したいのですが

$in{'FROM'} =~ s/◆/◇/g;
  if ($in{'FROM'} =~ /#(.+)/){
     my $key = $1;
     my $salt = substr($key."H.", 1, 2);
     $salt =~ s/[^\.-z]/\./g;
     $salt =~ tr/:;<=>?@[\\]^_`/ABCDEFGabcdef/;
     $trip = ' ◆</b>' . substr(crypt($key, $salt), -8) . '<b>';


はどうすればよいでしょうか?

$salt =~ tr/:;<=>?@[\\]^_`/ABCDEFGabcdef/;

でつまってしまいました。厨な質問で申し訳ないですがよろしくお願いします


328 :nobodyさん:03/07/04 21:32 ID:???
>>325
読むだけならどうでも良いけど書くなら必須。

329 :nobodyさん:03/07/04 21:33 ID:???
>>327
$salt = strtr($salt,":;<=>?@[\\]^_`","ABCDEFGabcdef");

330 :nobodyさん:03/07/04 22:14 ID:???
ありがとうございます。いい掲示板つくれそうっす

331 :nobodyさん:03/07/04 22:15 ID:2pHtYtXT
ここはphpBBに関する質問は宜しいのでしょうか。
駄目ならすいませんが誘導ください。

phpBBをインストールし、Global Announcement Modというものを新しくインストールしたのですが、なにも項目も追加されてませんし、「重要」トピックなどで投稿しても全てのフォーラムに反映しません。
コレはどうすれば宜しいのでしょうか?
宜しくお願いします

332 :名無し:03/07/04 22:26 ID:P/UD1L9m
ファイルが存在しなければ作成したいだけなのですが、
エラーが出てしまいます。下記の記述で間違っている個所があるのでしょうか?
$file="file.dat";
if(!file_exists($file)){
$fp = @fopen($file,"w") || die("error");
flock($fp,LOCK_EX);
$print="aaa";
fputs($fp,$print);
flock($fp,LOCK_UN);
fclose($fp);
}
ホントに初歩的な質問ですみません。。。
ご回答お願いします。






333 :325:03/07/04 22:31 ID:???
>>328
わかりました。WRITEロックかけます
有難うございました

334 :nobodyさん:03/07/04 23:11 ID:???
>332

>$fp = @fopen($file,"w") || die("error");

var_dump($fp); してみてください。
これだと、たぶん $fp がリソースではなくbool型になってる。
正しくは $fp = @fopen($file,"w") or die("error");
こうすれば = が処理される前に $fp が評価されるはず。
演算子の優先順位の項目を参照のこと。

質問するときはどこでどんなエラーが出てるのかちゃんと書けって
いつも言ってるだろこのバカチンが !!

335 :nobodyさん:03/07/04 23:13 ID:???
訂正。
評価されるのは $fp に入る前の fopen(); の結果ね。

336 :nobodyさん:03/07/04 23:29 ID:???
>>325
MySQLの場合、単行updateなら不要。
マニュアルのlockの項を参照。

337 :nobodyさん:03/07/04 23:31 ID:???
fopenの前に@をつけるとどういう意味になるの?

338 :nobodyさん:03/07/04 23:49 ID:???
@foo();
This will supress the injection of error messages into the data stream output to the web client.

339 :nobodyさん:03/07/05 00:34 ID:???
エラーが出たならそれをコピペ汁↓

340 :336:03/07/05 00:42 ID:???
あ、勿論DB操作するスクリプトが並列に動いてるなら、
対象行がdelete掛けられた場合の処理(逃げ)は必要だよ

341 :nobodyさん:03/07/05 04:20 ID:???
supressってなんだろう・・・

342 :nobodyさん:03/07/05 08:20 ID:???
>正しくは $fp = @fopen($file,"w") or die("error");
>こうすれば = が処理される前に $fp が評価されるはず。

ダメじゃん・・・。

343 :nobodyさん:03/07/05 09:26 ID:???
>>341
×supress
○suppress


344 :nobodyさん:03/07/05 10:06 ID:???
>>332
$fp = @fopen($file,"w");
if ($fp) {
#処理
}else {
die ("error");
}

345 :nobodyさん:03/07/05 10:36 ID:???
>>343
ありがとう。ようやくexciteで翻訳できた。

346 :nobodyさん:03/07/05 22:14 ID:???
>>342 ->-> >>335で。

347 :323:03/07/06 13:15 ID:???
>>326
フィールドのタイプはtext、文字数は設定なし、取り出してるクエリは
SELECT *
FROM `テーブル名`
です。
よろしくお願いいたします。

348 :あぼーん:あぼーん
あぼーん

349 :nobodyさん:03/07/06 18:42 ID:???
>>348
一刻も早く消されることを願う。

350 :あぼーん:あぼーん
あぼーん

351 :nobodyさん:03/07/06 19:48 ID:???
>>347
どうやってテーブルに入れてるの?
「入ってない」んだったら取り出すよりも入れるほうが問題かも


352 :323:03/07/06 20:28 ID:kEFDIfkp
>>351
レスありがとうございます。
print "<input type=\"hidden\" name=\"ip\" value=$ip>\n";
print "<input type=\"hidden\" name=\"ua\" value=$ua>\n";
のような形でフォームから普通に配列に入れてテーブルに追加しているつもりだったのですが
DWMXを使ってしまったのでよく解らなくなりました。下記のあたりはどうすればよいのでしょうか。
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}

353 :あぼーん:あぼーん
あぼーん

354 :nobodyさん:03/07/06 23:11 ID:???
>>352

横レス 失礼

もしかして パワープラント 使ってました?
いや theXXX か゜懐かしかったもので。

355 :名無し:03/07/07 16:56 ID:+XnYDKVb
>>334 失礼いたしました(´∀`ι
ようやく解決しました。「or」に直し、if文をなくすとOKでした。
ありがとうございました。
PS.>>337 @fopen=>の@は、エラー抑止させるという機能です。


356 :あぼーん:あぼーん
あぼーん

357 :nobodyさん:03/07/07 18:33 ID:???
flock関数が環境依存なので、ディレクトリ操作でロックしようかと思うのですが、
調べたところあんまり評判がよくないような気がします。

他にクールなファイルロックの手段ってありますか?

358 :nobodyさん:03/07/07 18:37 ID:???
ちなみにこのスレを参考にしました。
【Perl】ファイルロック(排他処理)について語ろう
http://pc2.2ch.net/test/read.cgi/php/1024795138/

359 :nobodyさん:03/07/07 21:58 ID:???
Apache/PHP さわり初めて3日。
Windows2000Professional sp3
Apache2.0.46
PHP 4.3.2
Firebird 1.5RC3
でPHPソース EUC-JP
データベース EUCJ_0208
magic_quotes_gpc off
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = EUC-JP
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none;
mbstring.func_overload = 0
;mbstring.script_encoding = SJIS
でquery結果を Print するとデータベースから取り出した
漢字の 井(0x88,0xE4) が 遺・(0x88,0xE2,0xE1) に
なるんだが、どこがまずいのかさっぱりわからん…
へるぷみー


360 :nobodyさん:03/07/08 02:21 ID:???
全部;閉じて試してみ。

361 :359:03/07/08 09:14 ID:???
う〜ん、設定全部閉じてもかわらんです。
どうもデータベースの取り出し結果が必ず SJIS になってるような…。
ソース  DB   
EUCJ   EUCJ  文字化け
EUCJ   SJIS   文字化け
SJIS   SJIS   ○
SJIS    EUCJ   ○
出力設定の変更では何も変化なし。

362 :nobodyさん:03/07/08 12:11 ID:jypS6q60
copy関数でファイルのアップロードをしているのですが、
msi形式のファイルをアップロードするとコピーされません。
他の形式のファイルでは問題なくアップロードできるのですが、
何か問題があるのでしょうか?

363 :nobodyさん:03/07/08 12:58 ID:???
拡張子や 実際のファイルの中身で copyの挙動は変わらないと思うから、
他の原因を探ってみては?

・ファイルサイズ
・自分でmsiを拒否ってた。
・ブラウザで存在確認しただけだった。
・そもそもmsiの中の人など居なかった等々

364 :nobodyさん:03/07/08 13:18 ID:jypS6q60
>>363
いや、拡張子でなくバイナリ的にmsiが何か拒否られてるみたいなんです。
ためしにpdfファイルを拡張子msiに変えて試したら正常にコピーされました。
逆にmsiファイルをpdfに変えてもダメ。他のmsiファイルで試してもダメ。

LAN内の端末なので実際にファイルがコピーされてないことも確認してます。

365 :nobodyさん:03/07/08 13:30 ID:syho/6wx
窓を開けばのランキングのリンクってどうやって張るの?

366 :323:03/07/08 14:24 ID:???
なんとなく解決しました。
フォームから入力するのをやめたらできました。

367 :nobodyさん:03/07/08 19:13 ID:???
今、携帯対応版の掲示板をと考えています。
そこで、PHP4.3.2にGD2.0.15のGIFサポート版を
リンクしてコンパイルしようとするのですが、PHPのmakeで
エラーがでてしまいます。どなたか、実践された方居られませんか?

GDの ./configure
./configure \
--with-png=/usr/local --with-freetype=/usr/local --with-jpeg=/usr/local --with-xpm=/usr/X11R6

PHPの ./configure
./configure \
--enable-zend-multibyte --enable-mbstring --enable-zend-multibyte --enable-calendar --with-imap=/usr/local/lib \
--with-mysql=/usr/local/mysql --with-apxs=/usr/local/apache/bin/apxs --enable-exif \
--with-gd=/usr/local --with-zlib-dir=/usr/local/include \
--with-png-dir=/usr/local --with-jpeg-dir=/usr/local --with-freetype-dir=/usr/local --with-xpm-dir=/usr/X11R6 --with-zlib-dir=/usr/local

そのままでは make中
ext/gd/gd.c に undefined reference なエラーが発生するので
展開したGDの gd.* gd_gd.* gd_io.*を ext/gd/ にコピーしてmakeすると
main/internal_functions_cli.c に undefined reference to `gd_module_entry'
なエラーがでてしまいます。どうやら ext/gd/php_gd.h の
extern zend_module_entry gd_module_entry; あたりかなとは思うのですが、
ここで力尽きてしまいました。どなたかご存知の方居られましたら
ご教授ください。なおOSはFreeBSD4.3です。

長文失礼しました。

GIFサポートはこれで、どうやらLZW系のライセンスはクリアしているらしいのですが
ttp://www.rime.com.au/gd/


368 :nobodyさん:03/07/10 09:27 ID:???
GIFライセンスって切れたんじゃなかったの?

369 :nobodyさん:03/07/10 11:44 ID:???
>>368
切れたには切れた。米UNISYSだけね。
日UNISYSでは、来年の6月19日まで。


370 :nobodyさん:03/07/11 01:11 ID:jNV68Tt5


371 :あぼーん:あぼーん
あぼーん

372 :nobodyさん:03/07/11 01:37 ID:jNV68Tt5
shift-jisでかいちゃダメなんですか?
eucで書くと何も表示されません。
エンコード変えて表示させてもF5すると、またエンコード切り替わって、
何も表示されなくなってしまいます。

超初心者です。教えてください。

373 :あぼーん:あぼーん
あぼーん

374 :nobodyさん:03/07/11 04:52 ID:???
>>372
PHPマヌアルには「SJISでは書かない方がいい」みたいな事が書いてある。
それから、文字化けについては吐き出したHTMLのソースを見れ。

375 :372:03/07/11 08:16 ID:???
>>374
僕が持ってる本にはSJISで書いてあるんですよ。
SJISだとちゃんと表示されます。

376 :nobodyさん:03/07/11 09:57 ID:???
HTTPヘッダーやらPHP内で使用してるcodingやらHTMLのMETAでの指定やらサーバにUpする際のエンコード指定やら
考えるべきは沢山あるな。

で、本にはSJISで書いてあるってどういうこと?
つーか書名キボンヌ。

377 :372:03/07/12 03:12 ID:???
すいません。よく見たら、EUCで書いてありました。
付いているCD-ROMがSJISとEUCに分かれていて、
僕がSJISを参照しているだけでした。

一応、本の名前は「そのまま使えるPHPサンプル100選」 技術評論社
です。

申し訳ないついでにもう一つ質問なんですけど、PHPは半角スペース
は意味がないんですか?サーバー系のはあるだなんだ〜ってこと
聞いたことがあるんですけど。あー馬鹿っぽい質問だな〜


378 :nobodyさん:03/07/12 03:40 ID:???
"mona" . "giko" -> "monagiko" のように文字連結する時や、
$mona = "";
$hanyan = "";
の「=」の位置を揃えたいとかなら 半角スペースの個数は関係ないよ。

p r i nt みたいに、PHP本体の解釈を妨げるような半角スペースの挿入は有害。

PHPが出力したHTMLの半角の話ならWeb制作板にカエレ!!

379 :372:03/07/12 05:57 ID:???
ありがとう。

ここにいさせてください。

380 :nobodyさん:03/07/12 07:34 ID:???
初歩的な質問かもしれませんが、
ttp://www....../hoge.php?hoge=1
などするのはかっこ悪いので、
ttp://www....../hoge.php?hoge
というURLで処理を行いたいのですが可能でしょうか。
実際には、この=の先には特に意味は持たしません。

ページが長いので、?hogeの部分で判断できれば、
そのリストだけ表示するようにしようと思っています。
よろしくお願いします。

381 :368:03/07/12 07:38 ID:???
>>369
thanx
そっか来年か・・・またイロイロ復活するんだろうなぁ。

382 :nobodyさん:03/07/12 09:10 ID:tmgiXdLP
>>380
$_SERVER["QUERY_STRING"]

$_SERVER["argv[0]"]
にhogeが入る。
argvは一般にコマンドライン用だからWebで使うならQUERY_STRINGの方かな

383 :nobodyさん:03/07/12 09:13 ID:???
>argvは一般にコマンドライン用だからWebで使うならQUERY_STRINGの方かな

argv:コマンドライン引数
QUERY_STRING:環境変数

そもそも使い道が全然違うと思われ。

384 :nobodyさん:03/07/12 12:49 ID:qK/j+nNB
Wwindows98+Apache1.3.27環境は改行コードがCRLFですが差分取得
をする際に意図する結果が得れません。PHPで\nにしていてもテキス
トに記録するとCRが追加されているみたいで
Range: Bytes=**-
で既得分のバイト数を渡して1文字も返って来ない状態を期待してもCR
の個数分だけゴミが返ってきます。2ch型スクなんで専用ブラウザでエ
ラーになります。テキストに記録する改行コードを\r\nにしてもダメでし
た。何かよい対処法はないでしょうか。お願いします

385 :nobodyさん:03/07/12 12:53 ID:???
>>384
PHPの前に読点について学んでくれ。


386 :nobodyさん:03/07/12 14:35 ID:???
ブラウザがCookieをOnかOffにしているかを
知りたいんですがどういった命令がありますでしょうか?

387 :nobodyさん:03/07/12 15:20 ID:???
1ページ目でcookieをあげる。2ページ目であげたcookieかどうかチェックする。
どの言語でも定型のやりかただと思うよ。

388 :380:03/07/12 20:21 ID:???
>>382-383
ありがとう。

389 :nobodyさん:03/07/12 23:50 ID:???
Windows版では、fopen()のパラメータで
バイナリー指定(rbとかwbとか、そんな感じ)
があるので、それ付けてバイナリーとして
扱って見れ

あと詳しく書くのはよろしいが、折れみたいに
PDAで読み書きしてる椰子もおるんで、
適当に文切ってな

390 :nobodyさん:03/07/13 09:07 ID:???
Wwindows98+Apache1.3.27環境は改行コードがCRLFですが差分取得
をする際に意図する結果が得れません。PHPで\nにしていてもテキス
トに記録するとCRが追加されているみたいで
Range: Bytes=**-
で既得分のバイト数を渡して1文字も返って来ない状態を期待してもCR
の個数分だけゴミが返ってきます。2ch型スクなんで専用ブラウザでエ
ラーになります。テキストに記録する改行コードを\r\nにしてもダメでし
た。何かよい対処法はないでしょうか。お願いします
Wwindows98+Apache1.3.27環境は改行コードがCRLFですが差分取得
をする際に意図する結果が得れません。PHPで\nにしていてもテキス
トに記録するとCRが追加されているみたいで
Range: Bytes=**-
で既得分のバイト数を渡して1文字も返って来ない状態を期待してもCR
の個数分だけゴミが返ってきます。2ch型スクなんで専用ブラウザでエ
ラーになります。テキストに記録する改行コードを\r\nにしてもダメでし
た。何かよい対処法はないでしょうか。お願いします


391 :nobodyさん:03/07/13 18:53 ID:8ZbS77HL
本当に初歩的な質問で申し訳ないのですが
以下のような index.html と test.php があって
index.htmlのリンクをクリックしても何も表示されないのですが
何か宣言が足りないのでしょうか?

[index.html]
<html>
<body>
<a href="./test.php?mode=home">home</a>
</body>
</html>

[test.php]
<?php
print("$mode");
?>

392 :nobodyさん:03/07/13 19:09 ID:???
>>391
参考にした資料が古いと思われ。
print($_GET['mode']);
でいけますよ。

ここの「警告」を読まれることをおすすめする。
http://jp.php.net/manual/ja/language.variables.predefined.php

あとprintは括弧がいらなかったりechoでも同じだったりするけど
そこら辺は好きなように書いてよかです。

393 :391:03/07/13 19:15 ID:???
>>392
ありがとうございました。
まさかバージョン違いだったとは・・・

394 :あぼーん:あぼーん
あぼーん

395 :nobodyさん:03/07/13 22:32 ID:???
install.txtどおりにやったのですが、インストールでいきなりこけてます。
解決のヒントをよろしくお願いします。

OS:
WindowsXPPro(sp1a)

Webサーバ:
Apache1.3.27(Windows版)
インストール先C:\Program Files\Apache Group\Apache

PHP(zip):
PHP 4.3.2(Windows版)
インストール先C:\Program Files\php

症状:
phpファイルを実行しようとすると、ダウンロードダイアログが表示されて、プログラムを実行できない。

関係ありそうなこと:
(1)php4ts.dllはphp4apache.dllと同じフォルダ(C:\Program Files\php\sapi)にいれた。
(2)php.ini-distをphp.iniにリネームし、C:\WINDOWSにいれた。
php.iniのなかで、doc_rootをC:\Program Files\Apache Group\Apache\htdocsに設定。
(3)httpd.confには、
LoadModule php4_module "c:/Program Files/php/sapi/php4apache.dll"
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
を追加しています。

396 :nobodyさん:03/07/13 23:26 ID:???
>>395
php4ts.dllはpathの通ってるところに放り込むこと。
つか、install.txtちゃんと読んでるようなんで、
そこにはNT系の場合のやり方が書いてあったでそ
デフォでWindowsインストールしてるのなら、
c:\windows\system32ディレクトリ



397 :404.HDML ◆StMXML.EXE :03/07/13 23:28 ID:???
>>395
>(1)php4ts.dllはphp4apache.dllと同じフォルダ(C:\Program Files\php\sapi)にいれた。

"php4ts.dll"は、"C:/WINDOWS/system32"フォルダ内に収めて下さい。
後、Apache1なら"AddModule"宣言を忘れていませんか?


398 :372:03/07/14 04:19 ID:???
>>397
"AddModule"宣言ってなんですか?

399 :nobodyさん:03/07/14 04:24 ID:???
>>398
ネタなのか釣りなのか騙りなのか分からないけど、
このあたりをブックマックしておいて悩んだ時や暇な時に見ておくとよい。
http://japache.infoscience.co.jp/

400 :395:03/07/14 10:43 ID:???
お返事ありがとうございます。・・・いまだにハローワールドできません。(苦笑)
>>396
install.txtによると、
So where does php4ts.dll has to be to be properly loaded ?
php4ts.dll is searched in the following order:

1) in the directory where apache.exe is start from
2) in the directory where php4apache.dll is loaded from
3) in your %SYSTEMROOT%\System32, %SYSTEMROOT%\system and
%SYSTEMROOT% directory.
Note: %SYSTEMROOT%\System32 only applies to Windows NT/2000/XP)
4) in your whole %PATH%

で上の設定は2)にしたつもりです。ちなみにc:\WINDOWS\system32にphp4ts.dllをいれても同じ症状でした。
というより、2)の設定で、php4ts.dllの名前をphp4ts.dll.oldなどに変えると、php4apache.dllが読み込めない
とのエラーがでたので、php4ts.dllの読み込みはできていたのではないでしょうか?

>>397
httpd.confにAddModule宣言
AddModule mod_php4.c
を入れると、
[warn] module mod_php4.c is already added,skipping
とでたのでAddModule宣言はコメントアウトしています。

401 :nobodyさん:03/07/14 10:43 ID:???
今までずっと疑問だったんですけど
何故PHPのマニュアルって色んなサイトで掲載されているの?
Googleで検索すると同じ(内容)マニュアルばっかり引っかかって悲しい。

402 :nobodyさん:03/07/14 12:43 ID:???
>>401
そうやってヒットさせて自サイトのアクセスを増やすため。
しかし掲載しているマニュアルが古いと頃したくなる

403 :404.HDML ◆StMXML.EXE :03/07/14 13:48 ID:???
>>400
ぅぃ。試しにアナタとほぼ同環境であろうWindowsXP Pro SP1使って
Apache/1.3.27とPHP/4.3.2をインスコしてみたんだが、、

何の問題無くphpinfo()内容が表示出来たぞ?
php.iniに関しては、php.ini-distをリネームしただけで内容の編集すら
していない。一体、どうなってやがる?

ちなみに、俺が設置したパスは以下の通り。

Apache/1.3.27(msi Package) → C:/
# Cドライブ直下

ActivePerl/5.8.0(msi Package) → C:/usr
# これは必要無いけど

PHP/4.3.2(ZIP Package) → C:/usr/local
# Linuxっぽく(Linuxなら、"/usr/local/lib"だけど)

php.ini → C:/WINDOWS
php4ts.dll → C:/WINDOWS/system32

原則的に、>>397で書いた事以外はしていましぇん。

404 :nobodyさん:03/07/14 15:00 ID:???
PHPでテキストカウンタを作ってHTML内に
<?include(counter.php);?>
で挿入しましたが数字がでません。index.htmlをindex.phpに
書き換えたところ、数字がちゃんと表示されました。
これはなぜなんですか?

検索エンジンに登録することを考えるとindex.htmlをindex.phpに
書きかえると面倒なのであまりそうしたくありません。

405 :nobodyさん:03/07/14 15:52 ID:???
VineLinux2.6でphp4.3.2使ってるんですが、
使いたいオプションが初回インストールで入れていなかったので
後から追加しよう、と思いやっているのですがphpinfo()のほうが全く変化なしっ! 実際にインスコもされていない模様。
./configure clean して、その後下記の./configureしてもアカン。

こういうもんなんでしょうか?
オプションの後入れは無理ですか?(´・ω・`)

参考(下の行が追加したオプション
./configure --with-apxs=/usr/sbin/apxs --enable-mbstring --enable-mbregex
--with-gd --with-jpeg-dir=/usr/lib/ --with-zlib-dir=/usr/lib

>>404
あなたの使っているWebサーバで *.html はphpが動かない仕様になってるからですよ〜
confや.htaccessいじれば*.htmlでphp動かせますよ。

406 :nobodyさん:03/07/14 16:53 ID:???
>>405
make installした?
Apacheのrestartは?

407 :405:03/07/14 17:15 ID:???
>>406
レスありがとうっす。
ええ、もちろん make intall や restart 、これでもダメだったのでOS再起動までしてました。

で、たった今解決してしまいますた。
$ make clean
makeにcleanなんて存在するのを初めて知りました。。(恥
make cleanしたあとはなんてことなく、上手くいきました・・・

408 :395:03/07/14 20:12 ID:???
>>403
うお。わざわざインスコしてくれたんですか?
どうもすみません。

とりあえず、あとで原因追求するためにhttpd.confとphp.iniのバックアップをとった後、
インストールディレクトリを変えて、>>397の要領でPHPとApacheの再インストールしてみます。
ついでにApache2でも試してみます。

Apache+PHP+PostgreSQLで幸せになれると思ったんですが、あふぉには険しい道のりらしい。
ウィンドウズにこだわらんと素直にPC-UNIXしたほうがいいんかな。

お騒がせしました。

409 :よん ◆StMXML.EXE :03/07/14 22:37 ID:???
>>408
つーか何故、WindowsにApache入れてPHP入れる事位に失敗してるのかよく理解
出来ないのだけれども。フォルダに必要ファイルを放り込むだけじゃないの。
httpd.confだって、数箇所書き加えるだけなんだし。

httpd.conf(前略)

#LoadModule headers_module modules/mod_headers.so
#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule unique_id_module modules/mod_unique_id.so
LoadModule php4_module C:/usr/local/php/sapi/php4apache.dll

(中略)

#AddModule mod_unique_id.c
AddModule mod_so.c
AddModule mod_setenvif.c
AddModule mod_php4.c

(中略)

AddType application/x-tar .tgz
AddType image/x-icon .ico
AddType application/x-httpd-php php phtml
AddType application/x-httpd-php-source phps

(後略)

410 :nobodyさん:03/07/15 00:16 ID:???
>>confや.htaccessいじれば*.htmlでphp動かせますよ。

どうすれば良いのか教えていただけませんか。
参考になるページとかでも良いんでお願いします。



411 :nobodyさん:03/07/15 02:13 ID:???
>>408
またApacheの口が変わった関係があるのかと思ったけど、
Apache/1.3.27 ○PHP4.2.3、○PHP4.3.2、○PHP4.3.3RC1
Apache/2.0.47 ×PHP4.2.3、○PHP4.3.2、○PHP4.3.3RC1
#PHP4.2.3が×なのは正常。

条件
・WindowsXP Pro SP1
・php4ts.dllはそれぞれのバージョン同梱のものを、それぞれのsapiディレクトリに
・php.iniは読み込ませない。
・httpd.confはapacheインストール直後のものに以下の2行を加えたのみ
 AddType application/x-httpd-php .php .phtml
 LoadModule php4_module "c:/usr/php4/sapi/php4apache.dll"
上記を、CGIやshtmlのAddHandlerの下あたりに追記。
#実際にはphpのバージョンごとにphp423とかphp432に変えたり、
#Apache2はphp4apache2.dllを指定してます。

AddModule mod_php4.cは指定しないが、同じバージョンの付属のhttpd.confでも
公開時期の違いで記述に差(ClearModuleListの位置だったか、有無だったかな)があって
指定しないと駄目な場合もあった。[warn] module mod_php4.c is already added,skipping
となってるのなら、指定しないでOK。

apacheのインストールディレクトリ化のhtdocsに<? phpinfo(); ?>のスクリプトを
放り込んで、動作するか、正しい値が取れるかで確認。

ところで、httpd.confでは"C:/Program Files/Apache Group"のように
括ればスペース付きのディレクトリもOKだが、php.iniもそうだっけ?
(ディレクティブにもよるかも) あと\と/が必ずしも同義にならない
ディレクティブもあったような気がする。


412 :404.HDML ◆StMXML.EXE :03/07/15 02:16 ID:???
>>405
どこぞのサイトで「一度インスコしたPHPを再設定する為に再インスコする場
合、元有るファイル群を根刮ぎ消しとかないと設定が反映されてない」みたい
な内容のメモを見た事が有る気がするけど。。実際はドウナンダロウ。

って、解決済だったのか。。(・∀・∀・)

>>410
具体的には以下の一文を".htaccess"に書き加えたりします。
以下では、".php",".phtml","html"の拡張子でPHPを動作させます。

AddType application/x-httpd-php php phtml html

但し、アナタが利用しているウェブサーバで".htaccess"による設定変更を
許可していれば、の話でっせ。


413 :404.HDML ◆StMXML.EXE :03/07/15 02:25 ID:???
>>411
>AddModule mod_php4.cは指定しないが、同じバージョンの付属のhttpd.confでも
>公開時期の違いで記述に差(ClearModuleListの位置だったか、有無だったかな)があって
>指定しないと駄目な場合もあった。[warn] module mod_php4.c is already added,skipping
>となってるのなら、指定しないでOK。

これは知らなかった。公開時期の違いって具体的には、いつといつの違い?
俺が試したのは、昨日そのうちにダウソしたもの(Apache/1.3.27)なんだけど。

414 :nobodyさん:03/07/15 03:26 ID:???
>>412
がんばって勉強してみます。

読み方はエイチティーアクセスと読むんでしょうか。

415 :nobodyさん:03/07/15 03:29 ID:???
続けてすみません。
.htaccessはセキュリティ上置かない、と言うサーバがありましたが
セキュリティ弱いんですね。

416 :404.HDML ◆StMXML.EXE :03/07/15 06:23 ID:???
>>414-415
>読み方はエイチティーアクセスと読むんでしょうか。

その通り。

>.htaccessはセキュリティ上置かない、と言うサーバがありましたが
>セキュリティ弱いんですね。

そりゃユーザ任意で好き勝手な設定されたらサーバ管理しづらいからね。
但し、ウェブサーバ管理者の設定によって".htaccess"で変更できる内容を
細かく制限できるので、一概に「セキュリティが云々」というのも、只の
怠け文句の様にしか聞こえんわな。

ああ、そうそう。".htaccess"は、"Apache(アパッチ)"というウェブサーバにて利用できる、
ディレクトリ毎の設定ファイルの事です。
ウェブサーバとしてApacheを採用していない所では使えませんよ。

417 :山崎 渉:03/07/15 11:06 ID:???

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

418 :nobodyさん:03/07/15 11:10 ID:1Nim6t2Z
掲示板を作成しています。htmlspecialcharsでhtmlを無効にしているのですが、
一部のタグを使用できるように独自タグを実装し、
[code][/code]を<pre></pre>タグに置き換えています。改行は<br>に置き換えしています。

問題は<pre>タグ内の改行文字も<br>に置き換えているので、見た目上は問題ないのですが、
コピペすると、改行のない1行としてペーストされてしまうのです。
<pre>タグ内の改行が\nならきちんと改行されてコピーできるのを確認しました。

[code]〜[/code]で囲まれた文字内の改行文字だけを"~"などの
特殊な(使わなそうな)文字に置き換える方法はないでしょうか?
表示時に"~"を\nに置き換えたいと思っています。
情報不足でしたら、ご指摘ください。

windows2k apache 1.3.27 php4.2.3の環境で作業しています。
よろしくお願いします。

419 :nobodyさん:03/07/15 11:12 ID:DBSRX3iv
ローカルでPHPをテストしたいんですが
Apacheをインストールしないとだめですか?

420 :nobodyさん:03/07/15 11:31 ID:???
age

421 :nobodyさん:03/07/15 12:33 ID:VrVVC0RB

function error($msg){
echo $msg;
exit;
}

を入れると

Fatal error: Cannot redeclare error() になる…

因みに別の設定ファイルにおいて require してます

422 :nobodyさん:03/07/15 12:36 ID:dUuUFsTq
メールフォームを作ってそこからメールが送られてくるとリナックスサーバに
メール内容を残したいのですがどうすればいいんでしょうか・・・助けてください。

423 :nobodyさん:03/07/15 12:52 ID:???
誰か>>422の文章の訳を助けてください

424 :nobodyさん:03/07/15 12:57 ID:???
メールフォームからリナックスサーバへメールを送信するんじゃねーの?
で、クライアントがサーバのメールを読んで削除してしまうのを
残したいってことか?

425 :nobodyさん:03/07/15 14:13 ID:VrVVC0RB
>>421
requireでなくしたら治った…なんだったんだ


426 :nobodyさん:03/07/15 14:23 ID:dUuUFsTq
>424
だいたいそんな感じなのですが
htmlでメールフォームを作り、送信を押すとリナックスサーバにメールを
送るということなのですが、やり方がわからなくて・・・
メールアドレスに送るのは簡単にできましたが・・・。
よろしくお願いします。


427 :nobodyさん:03/07/15 14:30 ID:???
自動生成したテキストファイルをある操作でパーミッションを変えて
追記できないようにしました。ですが次回そのファイルにアクセスしよ
うとした時にパーミッションを変えた情報はどこにも残していないので
書き込みモードで開くとpermission deniedのエラーになります。

if(!($fp = fopen(***,**))){ error_trap()}
してもエラー処理は続行されますがエラー文は返ってきます。
これを回避するにはどうすればよいでしょうか?
パーッション情報を得て回避させるか完璧なエラー回避の構文に
するかだとは思うんですが具体的な知識がないので困ってます。
ググっても良い解決策は見当たりませんでした。
よろしくお願いします

428 :427:03/07/15 14:43 ID:???
ちなみにデバッグの度にphp.iniを書きかえるのは避けたいです

429 :nobodyさん:03/07/15 15:12 ID:???
>>427
書き込む前にパーミッションを変更したらええやん。

430 :nobodyさん:03/07/15 15:43 ID:???
>>427
is_writable("file")で書き込み可能か調べればいい

431 :427:03/07/15 17:21 ID:ptJK4UDQ
>>430
おお!そんな手もあるんですね。ありがとうございます。
応急処置でstat(filename)でやってみましたがそちらに切り替えて
みます

432 :nobodyさん:03/07/15 17:51 ID:???
インストールできません

Windows 2000
php 5.0.1b1-win32.zip
apache 2.0.47

手順どおりphpのファイルを展開。
apache起動時にcannnot load c:/php/sapi/php4apache2.dllが
ロードできませんとのエラーメッセージ。
ファイルはあるけど、ロードできないです。

433 :427:03/07/15 17:54 ID:ptJK4UDQ
>>430
成功です。ありがとうございました

434 :nobodyさん:03/07/15 17:56 ID:???
>>432
PHP5を入れたいのにphp4apache2.dllを組み込もうとしてるの?
もしPHP4の間違いならすでに動かしている方のhttp.confの一部を
見せてもらうとか

435 :nobodyさん:03/07/15 17:58 ID:???
>>422
>>426
何がやりたいのか?
そもそもメールフォームからのメールの送信は出来ているのか?
そのメールをサーバに置いて何かしたいという事なのか?

436 :nobodyさん:03/07/15 18:02 ID:???
>>434
Download sectionで一番上にあったから5をとったけど
4のがいいのか。

変えてみます。

437 :395:03/07/15 18:19 ID:???
原因がわかりました。

httpd.confの
LoadModule php4_module C:/usr/local/php/sapi/php4apache.dll
をいれる位置が問題だったみたいです。
最初は176行目あたりに

# Example:
# LoadModule foo_module modules/mod_foo.so
LoadModule php4_module C:/usr/local/php/sapi/php4apache.dll

としていたのですが、>>411を参考にして、CGIやshtmlのAddHandlerの下あたり848行目に追記したところ
うまくいきました。なんか納得いきませんが。

ちなみに、Apache2ではこのような問題は発生せずすんなりでした。謎。

438 :nobodyさん:03/07/15 19:04 ID:???
>>434
バージョンsageたら上手く逝った。
産休

439 :nobodyさん:03/07/15 19:19 ID:???
PHP5は大規模商用サイトに向いているかもしれんが構造化に関する
部分以外はまだ何が変わったか調べる手間がもったいないと思う。
PHP4.3をいじくり回してみてある程度飲み込めてからでいいんじゃない
すか?

440 :nobodyさん:03/07/15 19:21 ID:ptJK4UDQ
PHPコンパイラがホスイ

441 :nobodyさん:03/07/15 23:07 ID:???
$line =~ s/^(..)(...)//;
正規表現してください,お願いします。

442 :nobodyさん:03/07/16 00:27 ID:???
また見にきたらスレ違いでした。
すみませんです・・・

443 :nobodyさん:03/07/16 00:40 ID:4pRAgQGC
少し板違いかもしれませんが、ここぐらいしか思い当たらなかったので・・

あるデータベース(何故か不明)のテーブルを書き出したtxtファイルがあり、
それをPosrgres+PHPのシステムに移してほしいと頼まれました。
(手元にはそのtxtファイルしかなく、元のデータベースは既に無いらしい・・)
が、あるフィールドがtextareaだったらしく、途中で改行が入っているのです。
id   name   abc(textarea)   tel
1  あああ  あああああ  11111
2  いいい  いいいいい  22222
3  ううう  うう   −−−(ここで改行)
\ううう  33333     −−−(改行の続き)
4  えええ  えええええ  44444
といった感じです。

Excelにインポートして少し配置を変えてからエクスポート、それから
COPYコマンドで入れ直すつもりだったのですが、途中の改行が邪魔をして
(上の例だと、「¥ううう」が、あたかもidのように居座っています)
困っています。しかもレコードは5000件ほどあり、手で直すわけにも・・・

どうにか上手くExcelでいじれる形まで持っていけないでしょうか?
お願いします。

444 :415:03/07/16 00:48 ID:???
>>416
どうもありがとう。
少しづつですがわかってきている状態です。
ちなみに僕が使っているとことはファイル設定が出来るそうです。

PHPどころかプログラム初心者なのでめちゃ苦労している状態です。
そもそも、PHPを始めたのはDBを作りたかったからです。
それ以外にもPHPが優れているところはどこなのでしょうか?
皆さんがなぜPHPをやり始めたのか聞かせてもらえませんか。
に比べてそれ以外に

445 :415:03/07/16 00:50 ID:???
ごめんなさい。

>>に比べてそれ以外に
↑これいりませんねw

446 :nobodyさん:03/07/16 00:51 ID:???
>>443
データもってきたアホにやらせれば?


ってのは冗談で
本来の行末のフィールドに絶対改行が入らないなら、
一行ずつ取っていってフィールド数がたらんかったら
次の行を追加するようなスクリプト作れば?

447 :nobodyさん:03/07/16 00:52 ID:???
>>443
改行を取り除くっていうかデータを整形するスクリプト
書けばいいんちがう?PerlでもPHPででも。

448 :447:03/07/16 00:54 ID:???
かぶった。スマソ。

449 :nobodyさん:03/07/16 01:32 ID:APFwOkck
>>443
というよりタブ空文でも改行でもデータを拾うようにして4フィールど
毎に1つ目のフィールドが数字である事をチェックして真なら改行。
これでよいはず。前述でも同じ結果が得れたらなんでもいいだろうけど

450 :nobodyさん:03/07/16 01:38 ID:???
>>449

ほげほげ
1
1

ってデータが入ってたらどうすんだべさ?

451 :404(・∀・∀・)HDML ◆StMXML.EXE :03/07/16 01:42 ID:???
>>444
俺の場合、PerlよりハイカラなイメージがPHPに有ったからというだけの理由。
ちなみに今でもド素人の部類に入ると思います。Perlの勉強すらすっとばして
いきなりPHPから始めちゃった訳ですから。
そもそも、自前でアクセス解析スクリプト程度のものを作れればいいかなー、
程度の目標だったんで上達する事も無く。
今借りてるレンタルサーバがSQLに対応してくれていないせいも有って、データ
ベース系を勉強する機会も興味も沸かないし。


452 :nobodyさん:03/07/16 01:48 ID:APFwOkck
>>450
データ4個周期を基本にチェックしてるわけだし。よほどいいかげんな
DB処理でないかぎりIDとデータが混同される事はないでしょ。

453 :nobodyさん:03/07/16 02:07 ID:???
>>452

id  name  abc  tel
1  あああ  あああ(改行)
1(改行)
1  090-xxxx-xxxx(改行)
2  あああ  あああ  090-xxxx-xxxx(改行)

ってのを
split /\t|\n/

ってやるとややこしくなんね?

違うやり方をいってるならスマソ。

454 :415:03/07/16 02:55 ID:???
>>451
そうなんですかw
僕の方は幸い、なんでも出来そうな環境が整っています。



DBまでの道のりは長そうなので、まず何Pかカウンターを作ってみました。
で、次なんですけど、何をやろうか迷っています。皆さんの参考を教えてください。

まだ、面白いと思える段階ですw

455 :nobodyさん:03/07/16 09:14 ID:APFwOkck
>>453
まず1行分と予測する生データを4つバッファリングして5つ目のデータ
を参照。5つ目がIDデータだと判断できたら1行分を修正済みを格納す
る配列へ代入。もし5つ目がIDデータでないなら4つ目とくっつける。
で、6つ目をチェック。以下同様。
根本的に異常なデータが混じっていない限りきっちり修正出きると思う。
処理はややこしいかもしれないが確実。無条件な状況判断ではどこか
でおかしな処理をしやすいから串だんごみたいにして1本ずつ丁寧に
修正してやるとよいかも。
2ch互換スクの故障データの修正で体験した

456 :nobodyさん:03/07/16 16:45 ID:IyV1t1TM
Cの__LINE__みたいなマクロって存在しますか?(現在のスクリプト内の行No)
自作のエラー用の関数で、何処で起きたか表示させたいのです

457 :418:03/07/16 17:05 ID:???
418です。
力業っぽいですが、解決しましたのでお知らせします。

#<pre class="code">〜</pre>に置き換え後、
$msg = str_replace("\n", "<br />", $msg);
$array = split("pre", $msg);
for($i = 0; $i<count($array); $i++){
if(strstr($array[$i], "class=\"code\"")) $array[$i] = str_replace("<br />","~~", $array[$i]);
}
$msg = join("pre", $array);

表示処理で
$msg = str_replace("~~","\n", $msg);


ありがとうございました。

458 :nobodyさん:03/07/16 21:11 ID:???
変数を明示的に宣言しないと使えないようにする(エラーがでるようにする)ことは出来ないのでしょうか?
(C言語で言うところの int i; のように)
タイプミスで一文字違っただけで数時間も悩むのはもうイヤ!

459 :nobodyさん:03/07/17 01:05 ID:???
>>458
つこてるバージョンによっても違うが、
error-reportのレベルをNOTICEも出力するようにすると出ない?
error_reporting(E_ALL)とか。
http://jp.php.net/manual/ja/function.error-reporting.php

あとは折れは"$文字列"の正規表現で、ファイルあたりの出現回数を
カウントしたりしてる。変数名に固有のプリフィクスつけて管理してるので。

460 :nobodyさん:03/07/17 06:00 ID:???
>>459
get_defined_varsでいいんじゃないの?

461 :nobodyさん:03/07/18 07:11 ID:???
WindowsCE向けのphpはありませんか?
もし存在するならどこにあるか教えてください。

462 :nobodyさん:03/07/18 10:22 ID:???
>>461
Perlなら聞いた事があるが…

463 :nobodyさん:03/07/18 23:43 ID:Uzp0kmuO
PHPの事全く分かりません。
Mac OS ] 10.2.6ですが、
PHPのバージョンてどこをみれば分かるのですか。

464 :あぼーん:あぼーん
あぼーん

465 :nobodyさん:03/07/19 00:27 ID:???
>>464
ナイスタイミング

466 :nobodyさん:03/07/19 01:26 ID:???
>>462
うーん、Perl@CGIなら僕も聞いたことあるのですが、、、残念です。

467 ::03/07/19 07:32 ID:???
>>463
phpinfo見れ

468 :nobodyさん:03/07/19 12:46 ID:???
>>463
CGI/CLIなら、php -v
関数:phpversion()
定義済み定数:PHP_VERSION

469 :nobodyさん:03/07/22 10:50 ID:???
ジャンプさせるために
header("Location: http://hogehoge.com");
をつかってみたのですが、これだとリファラが残ってしまいます。

ソケット関数使わずにリファラを消すにはどうしたらいいですか?

470 :nobodyさん:03/07/22 20:45 ID:???
>>469
困って問題があるのか?

不特定多数を別のサイトに送り込んでカウンタを無駄に上げたりするような用途位のような気がするんだが。困るのは。


471 :nobodyさん:03/07/23 02:19 ID:???
それだったらソケット使ってます。
てか、もう一つページを挟めばいいかな。
適当にがんがって見ます。

472 :PHP初心者:03/07/23 21:32 ID:8eneuWCZ
上でもGETやPOSTについてでてますが、
↓は上のフォームに記述して送信した文字列を下のフォームに表示する、
というものですが、

<body>
<form method="GET" action="form.php">
<p><input type="text" name="text1" size="40"> <input type="submit"
value="送信します" name="b"></p>
<p><input type="text" name="text2" size="40" value="<?php echo $_GET['text1'] ?>"></p>
</form>
</body>

実行すると、

<b>Notice</b>: Undefined index: text1 in <b>C:\Apache Group\Apache\htdocs\samples\form.php</b> on line <b>11</b><br />

というエラーが出ます。どこがおかしいのか、わからなくて困ってます。PHPは4.3.2を使ってます。
よろしくお願いします。

473 :nobodyさん:03/07/23 21:34 ID:???
>>472
取りあえずどこが11行目か解るソース出せやボケ。

474 :あぼーん:あぼーん
あぼーん

475 :nobodyさん:03/07/23 21:37 ID:???
>>473
<p><input type="text" name="text2" size="40" value="<?php echo $_GET['text1'] ?>"></p>

ここが11行目です。

476 :nobodyさん:03/07/23 21:38 ID:???
>>475
セミコロン忘れてるぞ。

477 :nobodyさん:03/07/23 22:13 ID:???
だめだこりゃ

478 :nobodyさん:03/07/24 00:06 ID:???
>>472
そのフォームはtext1を送信するのか受信するのかハッキリしろや

479 :nobodyさん:03/07/24 08:32 ID:???
マニュアルっていつの間にUTF-8になったの ?
namazuで検索したいのでEUC版が欲しいのですが・・・

480 :nobodyさん:03/07/24 09:41 ID:???
PHPを勉強したいんですけど、どの本がいいですかね?

481 :nobodyさん:03/07/24 10:03 ID:???
<?=$a?>の方が短くてすき

482 :nobodyさん:03/07/24 10:37 ID:???
>>472
とりあずNotice出したくないんなら変数を宣言しろ。
if(!isset($_GET[text1])) {$_GET[text1]="";}
if(!isset($_GET[text2])) {$_GET[text2]="";}

483 :482:03/07/24 11:06 ID:???
確認したらだめだった
if(!isset($_GET['text1'])) {$_GET['text1']="";}
if(!isset($_GET['text2'])) {$_GET['text2']="";}
こうだね。

484 :nobodyさん:03/07/24 11:14 ID:???
if(!isset($_GET['text1'])) $_GET['text1'] = "";
if(!isset($_GET['text2'])) $_GET['text2'] = "";

むしろこうじゃ無いのかと。

@$_GET['text1'];
@$_GET['text2'];

でもいいけどね。

485 :472:03/07/24 23:31 ID:???
>>482-484
@$_GET['text1'];
で解決しました。どうもありがとうございました。

486 :nobodyさん:03/07/25 03:55 ID:???
include についての疑問です。
includeは常時、ファイルをincludeして監視状態なのでしょうか?
ということは、大規模になると、遅くなる原因になるのかなと思いまして。

たとえば、config.phpが、
//config.php
$hoge = "2ch";
$moge = "3ch";



-------------------------
この時、

include "config.php";
echo $hoge;

それとも、
if($hituyou){include"config.php";}
echo $hoge;

こんな感じ。
大規模の時に下の方が負担は軽減される。
と妄想してるんですが、本当はどうなんでしょうか?

487 :nobodyさん:03/07/25 04:05 ID:???
>>486
includeはその時点で全て読み込まれるんじゃ・・・
そのincludeファイルが必要になった時点で読み込めばいいと思うけど。

そんなに遅くなる原因にはならないと思うけど。

488 :nobodyさん:03/07/25 09:51 ID:wJ5ItSln
質問させてください。
phpでgzip圧縮通信がしたくて、php.iniファイルの設定で、

output_handler = ob_gzhandler

としたのですが、これで正しく圧縮通信ができるのでしょうか?
もしできているのなら、それをどうやって確認すればいいでしょうか?
環境はRedHat9.0 Apache2 PHP 4.3です。

489 :nobodyさん:03/07/25 10:53 ID:TM9efvfm
質問です、宜しくおねがいします。
phpのバージョンを4.2.3から4.3.2にアップグレードさせようと考えています。マニュアル、FAQ等でその方法を調べてみたのですが、探し方が悪いのでしょうかイマイチ明快な答えが見つかりません。
一応以下に示す方法を実行しよようと考えているのですが何か安易な気がしてなりません。お気付きの点がありましたらご指摘ください。

私的には、3. でmake clean して前のヴァージョンの makeファイルを削除するのがミソかなと思っているのですが…。
これでは前のヴァージョンをアンインストールすることにならないような気もします。そもそも前のヴァージョンを削除する必要があるのかどうかすら分かりません。
勉強不足で申し訳ありませんが、皆様宜しくお願いします。(昨夜一度質問してみたのですが、どこの板に書いたか見失ってしまいました…)

環境:RedHatLinux7.1+apache1.3.27+php4.2.3

1.まずhttpdを停止する。
$ su
# /etc/init.rd/httpd stop

2.php4.2.3のソースファイルが展開されているディレクトリに移動する。
# cd /usr/local/src/php-4.2.3

3. make clean でmakeファイルを削除する。
# make clean

4.php4.3.2のソースファイルが展開されているディレクトリに移動する。
# cd /usr/local/src/php-4.3.2

5. ./configure を実行する。
# './configure' '--enable-mbstring' '--enable-mbregex' '--enable-zend-multibyte' '--with-pgsql' '--with-apxs=/usr/sbin/apxs' '--without-gd' '--with-zlib' '--with-openssl' '--enable-versioning'

6.make 、make install を実行する。
# make
# make install

7.httpd を起動する。
# /etc/ini.rd/httpd start

490 :あぼーん:あぼーん
あぼーん

491 :nobodyさん:03/07/25 11:16 ID:???
>>489
俺、make cleanやってねーよ。でも動いてるけど。
どうなんだろうね? 試してみたら?

492 :あぼーん:あぼーん
あぼーん

493 :nobodyさん:03/07/25 11:31 ID:???
make clean 必要無いよ
make clean が何をやっているのか考えてみましょう

494 :nobodyさん:03/07/25 20:46 ID:???
index.phpから、count/count.phpを呼び出してカウンタとして使おうとしているのですがうまくいきません。
index.phpからinclude_onceで読むのはうまくいくのですが、
count.phpからこれと同じ場所にあるデータファイルのcount.datを開こうとして

$fp =@fopen( "count.dat", "r") ;

とすると、

Warning: fopen("count.dat", "r") - No such file or directory in *********/count/count.php on line 42

となってしまいます。includeされたファイルの中で別のファイルを開く場合、パスの表記はどのようにすれば良いんでしょうか? 
読み込み元のファイルのディレクトリを基準にするのか、読み込まれたファイルのディレクトリを基準にするのかが分かりません。

と言うより後者ならこれでうまくいくと思うのですが、これだと一つのカウンタで複数ページをカウントさせるのに
面倒な気がするので、もっと良い方法が無いかと探しているのですが…

495 :482:03/07/25 21:19 ID:???
>>494
count.datを絶対パスで読み込め

496 : :03/07/25 23:54 ID:???
↑非常にいい子とイった!

497 :nobodyさん:03/07/25 23:55 ID:OQ729f+c
ズブの初心者なんですが
ネット上によくある、フリーCGIの配布サイトでは時々
「セキュリティホールが見つかったのでバージョンアップしてください」
というようなことが書かれてたりしてますが、
PHPでもセキュリティホールはあるんですか?
あるとしたら、どんなのがまずいんでしょうか

とりあえず、どこかのPHPスレではPHPが「index.php」を吐くのはマズイ、
と書いてありました
フォーム入力を受け付ける、掲示板みたいなものを作る場合、タグを
除去すれば大丈夫ですか?

498 :nobodyさん:03/07/25 23:57 ID:???
>>497
あんめろ

499 :494:03/07/26 00:00 ID:???
>>495
分かりました。その方法でやってみます。
ただ思い付きでいろいろ足して分かんなくなってきたので、
一から書直そうと思いますが。ありがとうございました。


500 :nobodyさん:03/07/26 00:00 ID:???
>>498
すいません
おっしゃる意味がわかりません

501 :nobodyさん:03/07/26 00:00 ID:???
>>500
喧嘩売ってんのか?

502 :nobodyさん:03/07/26 00:02 ID:???
>>501
違います
あんめろってなんですか?

503 :nobodyさん:03/07/26 00:08 ID:???
なんとなく気が向いたのでマジレスしてみるテスト。
>>502
PHP自体のセキュリティーホールとヘタレなコーディングによる
セキュリティーホールを混同してない?
「あんめろ」は「あんたには向いてない、やめろ」の意。
(民明書房刊「よくわかるセキュリティホール」より)

504 :nobodyさん:03/07/26 00:16 ID:???
>>503
回答ありがとうです
自分が知りたかったのは、へたれなコーディングによる…の方でした
どんなコーディングがマズイのかな、と思って

「あんめろ」身に沁みました

505 :nobodyさん:03/07/26 01:21 ID:???
>>497
>とりあえず、どこかのPHPスレではPHPが「index.php」を吐くのはマズイ、

なんでマズイの? 俺、吐き出してる。吐き出してる。 

506 :あぼーん:あぼーん
あぼーん

507 :あぼーん:あぼーん
あぼーん

508 :nobodyさん:03/07/26 03:13 ID:83bOjRPY
PHPにファイルのアクセス時間と更新時間を変更するPerlのutimeに
相当するものはない?
てっきりfileutimeみたいな関数があるだろうと思ってマニュアルを
見てみたがどこを探してもない。
どうやって変えるのだ??

509 :nobodyさん:03/07/26 03:37 ID:VZ1x6qD8
>>508
んなこたーない。
"ファイルシステム関数"という章をよく見る。


510 :nobodyさん:03/07/26 21:05 ID:92eVqrLv
2chの掲示板URLみたいに
http://www.hogehoge.com/~hoge/test.php/20030724/2310
↑こんな感じにPHPへデータを渡す方法知りませんか?

511 : ◆AngelH/kMI :03/07/26 21:11 ID:???
>>510
test.phpの内容を
<?php
phpinfo(32);
?>
にして結果見てみればわかる。

512 :あぼーん:あぼーん
あぼーん

513 :nobodyさん:03/07/27 04:37 ID:C5x2VQP+
>>509
更新変更はtouch()でやるのは分かったんだが、
最終アクセス変更をするのがやっぱり見当たらない。

514 :nobodyさん:03/07/27 09:42 ID:???
>>513
Windowsなら単にreadしたりファイルサイズ取得関数とか使えば良し。
ファイルのプロパティ見てみ?いつも現在時刻だ。

515 :nobodyさん:03/07/27 22:48 ID:0kmBdvtl
>>514
ファイルの中身を修正する前に、ファイルの時間情報を取得しておいて
処理が終わった後にファイルの時間情報は修正前のままにしておきたい
って場合にどうすればいいのかと。

つまり最終アクセス時間と最終更新時間を過去の時間に設定したい訳ですな。
Perlだとutimeで両方、任意の時間を入れてファイルの時間情報を修正できるけど、
PHPだとtouchで最終更新しか変更できないみたい(見つけられなかった)。

ちなみにPerlからPHPへの移植をやってる過程で出てきて???になった。
やってる移植では更新時間を見て処理に使ってるから、最終アクセスは
なくてもいいけど、なんらかの理由で最終アクセス時間の変更が必要に
なった場合はどうするんだろ?

516 :nobodyさん:03/07/27 23:33 ID:???
touch()の3つ目の引数として最終アクセス時間
(UNIXタイムスタンプ)を指定できます。
しかしなんで公式のマニュアルには載ってないんだろ?

517 :nobodyさん:03/07/27 23:41 ID:???
探した?あるよ。

518 :nobodyさん:03/07/27 23:53 ID:???
あ、ほんとだ。いつもはmanual/ja見てるけどmanual/enにはばっちり載ってますね。
翻訳の遅れがあるみたいなのでこれからは英語版を見るようにします。

519 :515:03/07/28 00:11 ID:???
私も確認。Thanks. 本家php netからマニュアルにアクセスすると
自動で日本語版に切り替わるんだな。
touch (PHP 3, PHP 4 )
touch -- Sets access and modification time of file
bool touch ( string filename [, int time [, int atime]])
http://www.zend.com/manual/function.touch.php

日本語訳マニュアルをローカルに置いてそれを参照してたから
見つけられなかったよ。
英語版も随時参照すべしと自分に言い聞かせた次第。

520 :nobodyさん:03/07/28 00:13 ID:???
ぅええ?あるよ。日本語も。

521 :515:03/07/28 00:19 ID:???
>>520
今ボチボチ本家見ててあるのに気が付いた。
普段、本家なんぞ見ちゃいないって事がバレバレな私。

522 :nobodyさん:03/07/28 00:26 ID:???
あったでしょ。つっても
最近はけん日本語で検索できて便利よ。
ttp://www.phpoo.net


523 :510:03/07/28 00:38 ID:???
>>511
ありがとうございました。

524 :nobodyさん:03/07/28 15:06 ID:???
phpで掲示板を作っているのですが、書き込みで「ソアラ」などとすると
ソ\アラというようにdataファイルに記録されています。
perlでつくった掲示板では普通にソアラと書き込めたんですが。
ローカルでshift-jisで書いております、eucでも試してみたんですがeucで保存すると
表示されないようです。php4.3.2を入れております。
ご助言願えませんか、ソースは下記のような感じでやってみました。
$carname = $_POST['carname'];
$newdata = implode(",", array($bango,$carname,$rap));
$kakikomi = fopen($datfile, "w");
rewind($kakikomi);
fputs($kakikomi, "$newdata\n");


525 :nobodyさん:03/07/28 15:22 ID:???
>>524
国際化非対応だと文字が化けたりするもよん。
PHPはEUCで書く方が安心かと。
S-JISで受けたデータはjcode.phpでEUCにしてから内部で扱う。
んで、書出すときにまたEUC→S-JISに変換、と。

と言う事をどこぞで見たのだが。

526 :524:03/07/28 17:36 ID:???
>>525
ありがとうございます。EUCがいいんですね、調べてみます。
素人にとって文字コードは第一関門なんですかね。


527 :nobodyさん:03/07/28 17:36 ID:???
質問です。

HTMLに値を埋め込む時に

<?= hoge ?>

という書き方の出来るサーバーと出来ないサーバーがあります。

www.php.net のマニュアルを見ると asp_tags という設定ディ
レクティブで設定可能なようなのですが、双方のサーバーで
phpinfo() で設定を確認すると両方offになっているのです。

出来るサーバーの方は Apache 1.x 系にPHP4.2.0 で、
出来ない方は Apache 2.x 系にPHP4.2.2です。
php.ini は特に置いてません。

上記の記法の出来る出来ないは asp_tags 以外に何か設定が
あるのでしょうか?

528 :nobodyさん:03/07/28 18:09 ID:???
エエエェェ!!

529 :525:03/07/28 18:30 ID:???
>>526
俺も初心者なんで、あまり詳しい事は書けませんけど、色々とチュートリアルを公開しているサイトを見る限りでは
初めからEUCで扱う(無論出力されるHTMLなんかも)か、せめて内部ではEUCとして扱う方がトラブルが少ない様です。
元々UNIX系はEUCだったと思うし、jcode.phpは見た感じそれほど使い方は難しくなさそうなんで、間に噛ませても良いんではないかと。

このスレの前半の方にもそんな話があったので、探してみると役に立つやも。


530 : :03/07/28 18:39 ID:???
mb関数は使えんのか?

>>527
short_open_tag

531 :nobodyさん:03/07/28 19:24 ID:???
>>524
$carname = strip_slashes($_POST['carname']);

532 :nobodyさん:03/07/28 19:27 ID:hpj2UE6D
PEARとかPHPLIBとかよく聞きますが、PHPのクラスファイルを
ライブラリにする方法を知っていたら、誰か教えてくだすぁい。

533 :あぼーん:あぼーん
あぼーん

534 :nobodyさん:03/07/28 23:51 ID:???
2ch型というかほとんど2chと同じphpの掲示板ってないでしょうか。
自分でつくってるんですが行き詰まりを感じてしまって

535 : :03/07/29 00:03 ID:???
>>534
http://pc2.2ch.net/test/read.php/php/1055280252/

536 :nobodyさん:03/07/29 08:38 ID:???
>530
THX

short_open_tag でビンゴでした。
マニュアルでも asp_tags のすぐ上に書いてあったし(ウトゥ

537 :nobodyさん:03/07/29 23:27 ID:???
http://techside.net/i_shot_p/vi.cgi
ここの画像投稿BBS、どうやって画像に文字を埋め込んでいるんだろう?

538 : :03/07/29 23:52 ID:???
>>537
設置者に聞けよ。
GDかなんかじゃないんか?

539 :nobodyさん:03/07/30 00:48 ID:???
文字列中の空白、カッコ、ハイフンを削除したいのですが、もっと上手い方法ありませんでしょうか?

$str="ほ げ(ほ げ)-ほ げ";
$char1=" ";
$char2="(";
$char3=")";
$char4="-";
$char5="";
$str1=str_replace($char1,$char5,$str);
$str2=str_replace($char2,$char5,$str1);
$str3=str_replace($char3,$char5,$str2);
$str4=str_replace($char4,$char5,$str3);
echo "$str4";

540 : :03/07/30 01:33 ID:???
>>539
preg_replace

541 :nobodyさん:03/07/30 02:30 ID:2CHAOdfR
>>539
マニュアルより
>PHP 4.0.5 以降では、str_replace() への全てのパラメータは
>配列とすることが可能です。



542 :あぼーん:あぼーん
あぼーん

543 :nobodyさん:03/07/30 03:43 ID:+xTBPNpJ
PHP で perl の様な配列のスライスへの代入って出来なかったっけ?
昔、phpのメーリングリストで見たような気がしたんだけど、
googleで調べたら出来ないって書かれたサイトが出てた。


544 :nobodyさん:03/07/30 11:15 ID:???
>perl の様な配列のスライスへの代入
ここを説明しないと。(w

545 :nobodyさん:03/07/30 12:12 ID:???
@hoge{ 'a', 'b' }
こういうことあじぇ?

546 :nobodyさん:03/07/30 13:50 ID:WV3lkWy5
PHP4.3をWinにインストールしてANHTTPD使ってCGIモードで
動かしてます。とりあえず
<?php phpinfo() ?>
は正常に表示されるので動作自体はしてると思うんですが
<? echo "てすと"; ?>
とかやると思いっきり文字化けしてしまいます。
winnt/php.ini へも日本語が使えるように設定はしたんですが
(default_charset = "Shift_JIS"とか)
なんか他に設定すべきところとかありますでしょうか?


547 :nobodyさん:03/07/30 16:24 ID:L2kAsoKq
>>546
mbstringsでググレ

548 :nobodyさん:03/07/30 17:09 ID:???
@hoge{ 'a', 'b' }
ここを説明しないと。(w

549 :nobodyさん:03/07/30 19:01 ID:QNOIDVkY
PHP初心者です。
レッツPHPのちゅーとりあるで紹介されている
一行掲示板をいろいろとこねくりまわしているのですが、
オート・リンクの機能を付けることに躓いています。
ご指導の程、よろしくお願いします。

550 :あぼーん:あぼーん
あぼーん

551 :あぼーん:あぼーん
あぼーん

552 :nobodyさん:03/07/30 20:55 ID:???
>>549
正規表現で文字列を調べて、URI(URL)があれば
それを抜き出して、アンカータグと組み合わせて
置換する。

マニュアルで置換をする正規表現関数を調べて、
それが実際どのように使われているか、レッツPHPさんの
他の配布スクリプトを見て研究してみては?

553 :539:03/07/30 21:11 ID:???
>>540-541
ありがとう
やってみます。

554 :nobodyさん:03/07/30 22:02 ID:???
>>552
ご指摘を受けて、
マニュアルを読みましたら、つぎのような部分がありました。

例 3URLをリンクで置換する

$text = ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",
"<a href=\"\\0\">\\0</a>", $text);

これでうまくいきました。
ありがとうございます。

555 :sage:03/07/30 23:32 ID:EqJM85qg
>>543
できない。
あればあったで便利だし、perlからの移行が楽だが
phpは配列操作の関数が比較的豊富なので
なければないで何とかなる。


556 :nobodyさん:03/07/31 02:11 ID:DkZYq6f/
送られてきた変数を全部表示したいんですけど、
どうやったらよいでしょうか。

557 :nobodyさん:03/07/31 02:23 ID:???
>>556
phpinfo() や foreach($_REQUEST as $value)

558 :nobodyさん:03/07/31 02:30 ID:???
ここはひとつ豪快に var_dump(get_defined_vars());

559 :nobodyさん:03/07/31 04:20 ID:???
phpで2進数の表記はどうすればいいのでしょうか?


560 :nobodyさん:03/07/31 05:08 ID:???
echo '01010101';

561 :nobodyさん:03/07/31 09:57 ID:???
>>559
$num = bindec("10101010");

562 :nobodyさん:03/07/31 14:45 ID:UI9TuZ6S
初心者です。
特定の文字列から特定の文字列までを置換したいんだけど、どうすればいいでしょうか?
hogehoge<REPLACE>2ちゃんねら</REPLACE>hogehoge
       ↓
hogehogeDQNhogehoge
こんな感じで。


563 :あぼーん:あぼーん
あぼーん

564 :nobodyさん:03/07/31 15:09 ID:UI9TuZ6S
562です。
追加質問していいですか?
置換した回数をカウントしたいのですが、str_replaceやereg_replaceでは
全置換されてしまうじゃないですか。
ひとつずつ置換をする関数ってないのでしょうか?

よろしくおねがいします。


565 :nobodyさん:03/07/31 17:33 ID:???
>562
preg_match
preg_match_all
あたりを見てみては?

566 :565:03/07/31 17:42 ID:???
補足

正規表現が良くわからず調べてもう〜んと唸るようであれば、泥臭くやるしかないかな。

strpos 等で開始タグの位置を見つけて前後の文字列で置換する文字列をサンドイッチ
して元の変数に格納という一連の処理を開始タグが見つかる限り繰り返せば結果は得
られると思うけど。

ただメモリーへのアクセスが頻繁になるからWebなんかで不特定多数のアクセスがある
ような処理につかうのはおすすめできない・・・。

567 ::03/07/31 17:52 ID:Vgd/NQeb
fsockopenでHTTP/1.1接続を試みた場合に、レスポンスボディに、
数KB(?)に一度、 \nXXX\n のようなゴミ文字列が挿入されてしまいます。
(\nは改行で、XXXの部分は [0-9a-f]{2,3} のような文字列)

環境はWindows 2000で、
PHP 4.3.2 (cli) (built: May 28 2003 15:10:38)です。

再現は(他人様の物で恐縮ですが)以下のソースでも可能です。
tp://www.spencernetwork.org/memo/tips-3.php

ただし、HTTP/1.0接続をおこなった場合にはゴミは発生せず正常動作します。

phpのバグを疑った所、fsockopenがメモリを破壊する問題は、
4.3.0で発覚して4.3.2では解消されているとの事でした。


わかる方いましたら教えてください。
わからなかったらとりあえず再現を試してくれる方募集っす。


568 :nobodyさん:03/07/31 18:12 ID:???
>567
とりあえずリクエストするサンプルサイトのURLをキボンヌ

569 :nobodyさん:03/07/31 18:23 ID:???
よくよく考えてみたら PHP4.3.x 系の入ってるマシンが無いわ(爆)

FreeBSD4.4
Apache たぶん 1.2
PHP 4.2.0
で2chの1000までいったスレをそのスクリプトで表示してみたがゴミは無いようだった

考察はちょっとまってな。

570 :nobodyさん:03/07/31 18:26 ID:???
あーよく見たら上のソースは HTTP/1.0 で接続してるのな。
これを HTTP/1.1 に変えてやってみればいいのか・・・

571 :あぼーん:あぼーん
あぼーん

572 :あぼーん:あぼーん
あぼーん

573 :nobodyさん:03/07/31 18:32 ID:???
>567

とりあえず
>570 の変更をした上で >569 のように2chのスレを取得してみたらたしかにゴミが検出されたよ。
まぁ正確にはゴミじゃあないんだろうけどね。
ちょっと調べてみるよ。

574 ::03/07/31 18:39 ID:???
>>573
スンマソ。お手数かけます。

yahooが大丈夫だけど、php使ってるサイトはだめだった。関係ないか?
ちょっと、アクセス先については根拠のある事が言えない。

>>569の環境で出るという事であれば、バグでは無いっぽいのかな。
あとで他の言語でも試してみます。


575 :nobodyさん:03/07/31 18:41 ID:???
まぁ、fsockopen+HTTP/1.1を使うヤシでchunkを知らないわけは無いと思うから
chunkの線は無いと思うが、がんがってphp4.3.2のバグを探してくれ。

576 :573:03/07/31 18:44 ID:???
>575

漏れ的には chunk っぽい気がしてるんだけどね(爆
HTTP/1.1 なんて生で触ったこと無いからプロトコルから調べてるよ

577 :573:03/07/31 18:52 ID:???
とりあえずこちらで出てる症状としては4096バイトごとに
\r\n1000\r\n
という文字列が挿入されてるってことかな。
fgets の読み取りバイト数かと思って 512 と 1000 で試したけど変化なし。
マニュアルの fsockopen では fread を使ってたので試しにこれに変えてみても変化なし。
ちなみにレスポンスヘッダは

HTTP/1.1 200 OK
Date: Thu, 31 Jul 2003 09:41:49 GMT
Server: Apache/1.3.26 (Unix) AuthMySQL/2.20 PHP/4.1.2 mod_gzip/1.3.19.1a mod_ssl/2.8.9 OpenSSL/0.9.6g
Last-Modified: Wed, 30 Jul 2003 12:53:28 GMT
Transfer-Encoding: chunked
Content-Type: text/html
X-Pad: avoid browser bug

こんな感じで返って来てる。

578 ::03/07/31 19:01 ID:???
漏れが悪かった。

ともあれ、ありがd>>573, >>575

RFC2068にも書いてある(RFC2616を読んでね)けど、

CRLF受信バイト数の16進CRLF

が来てるって事よね。
ちょいとクライアント側の正しい実装がどんなのになるのか調べ中。


579 :nobodyさん:03/07/31 22:01 ID:CgHqCW+i
フォームフィールドに"ソ"を入力して送信すると
"ソ\"になってしまいます。Mysqlにも"ソ\"そのまま入ります。
php.iniのmagic_quote行をoffにしてやると直ったんですが
そのままMysqlに登録すると化けてしまっています。

stripslashes()をつけてやるとこれも直るんですが
フィールドごとにいちいちつけるのは面倒くさいので
他に何かいい方法はないでしょうか?

580 :あぼーん:あぼーん
あぼーん

581 :あぼーん:あぼーん
あぼーん

582 ::03/07/31 22:23 ID:???
使い捨てツールだったので、さぼってHTTP/1.0で実装しますた。スンマソ

>>579
mysqlのcharset設定をsjisにするとか。


583 ::03/07/31 22:23 ID:???
ごめ。

「つーかeucにしろよ」と言いなおす。

584 :Re: 配列のスライスに代入:03/08/01 02:01 ID:S9mJFNQO
返事ありがとぉ。
出来るかどうか知りたかっただけでした。
一応、マニュアルとMailing-listのアーカイブ検索したけど、それらしい記述がなかったので。
ここが最後の頼みだったんだけど、やっぱ出来ないのかぁ。残念。

585 :あぼーん:あぼーん
あぼーん

586 :あぼーん:あぼーん
あぼーん

587 :nobodyさん:03/08/01 09:04 ID:???
>584

遅レスすまそ。
array_splice() でどう?

ttp://www.php.net/manual/ja/function.array-splice.php

588 :nobodyさん:03/08/01 18:21 ID:???
>579

現象的には確か「ソ」の2バイト目が「¥」のコードと
同じなんでエスケープ処理されるってことだな。

だから stripslashes すれば消えるのはあたりまえで、
もし鯖の設定を変えられないのであればいちいちかか
なきゃならんのはしょうがない。

まぁめんどくさかったら $_REQUEST をループ回して
格納し直したらどうよ。いろんなソースに書かないと
いけないとしてもコピペで済む(あるいはクラスを書くかだな)。

589 :山崎 渉:03/08/02 02:21 ID:???
   ∧_∧
  (  ^^ )< ぬるぽ(^^)

590 :ぼるじょあ ◆ySd1dMH5Gk :03/08/02 04:50 ID:???
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
  = ◎――――――◎                      山崎渉&ぼるじょあ

591 :nobodyさん:03/08/03 01:26 ID:???
>>588
>>266-268

592 :nobodyさん:03/08/03 02:11 ID:???
保守
【PHP】初心者コーナー 3 Released【スローモード】
アホな質問であっても詳しく質問しろよ。 ネタはおもしろく書けよ。

593 :nobodyさん:03/08/03 02:16 ID:???
>>592
え?この板って1時間でスレ落ちするほど保守せなあかんの?

594 :nobodyさん:03/08/03 02:20 ID:XIyh3dEf
Parse error: parse error, unexpected T_CONCAT_EQUAL in …
といわれたんですがどういう意味でしょう?
バージョンは4.3.3RC2です。

595 : :03/08/03 06:33 ID:???
>>594
文法エラーです。
…で予期しないT_CONCAT_EQUALが

596 :nobodyさん:03/08/03 21:48 ID:fj+ph+5s
上でも2回ほど出てる話題なんだけど、自分で調べたことと
ちょっと食い違いがあるんで質問させてください。

phpで掲示板作った場合、書き込んだ文字列に¥が勝手に
入ってしまう現象って、レンタル鯖での解決方法はstripslashes()関数を
つけることのほかに.htaccessで

php_flag register_globals on
php_flag magic_quotes_gpc off

と書いてアップすれば防げるって
ttp://www.komonet.ne.jp/report.htm
とか
ttp://www.e-provider.jp/server/php.html

に書いてあるんだけど、public_htmlフォルダ内に.htaccess置いても
防げません。.htaccessはメモ帳で「.htaccess.txt」として作成して、
アスキーモードで鯖にアプ後「.htaccess」にリネームしました。
テスト用のbbstest.phpは同じディレクトリにあります。
書くのはあの2行だけでいいんでしょうか?とりあえず2行だけに
しときましたが。

ちなみに鯖はaaa!cafeで、鯖HPのFAQには.htaccessは使えますって
書いてありました。

初心者な質問ですみませんが識者の方、どなたかお答え願えませんでしょーか。

597 :nobodyさん:03/08/03 21:57 ID:???
>>596
aaaの.htaccessは当てにしない方がいい。

598 :nobodyさん:03/08/03 21:57 ID:fj+ph+5s
…なんかディレクトリ指定とかしなくちゃいけないっぽいですか?
中途半端な質問ですんまそん。
調べてもどこもかしこも「php_flag〜の行を“含む”.htaccessファイルを」
と言ってるんで他にも書くことありそうだとは思って調べてるんですが…

.htaccessの正確な書き方が書かれたサイトが全然みつからん…
ミケネコのなんとかは分かりづらすぎ…

599 :nobodyさん:03/08/03 21:59 ID:fj+ph+5s
>>597

アア、俺書き込み多すぎ。痛い。

そうですか、なんかあそこFAQの答え方がなげやりですもんね。
自作bbs置く香具師はめんどくてもコード書けってことか。ちくしょう。

600 :nobodyさん:03/08/03 23:44 ID:???
>>596
書き方自体はそれでok
あとはユーザディレクトリの.htaccessが有効によまれるのか、
設定の上書きを許可しているのかとか
その辺

601 :nobodyさん:03/08/04 00:00 ID:???
>>579
遅いレス。mysqlの「ソ」は私も悩んだ。
文末が「スマソ」とか「日本代表」だとエラーが出るんですよね。
phpinfoでmysqlの"Client API version"を4.*にすると症状は治まります。
どうも3.*のバグ(?)のようです。
mysql4.0+php4.3.2だとconfigureで--with-mysql=/usr/local/mysqlとかするといいみたいです。

602 :nobodyさん:03/08/04 01:07 ID:QF7utWcH
>>600
サンクスコ
結局stripslashes関数で回避しました…

603 :579:03/08/04 10:05 ID:s0qIBXCy
>>601
ありがとうございます。
バグだったんですか^^;
どおりでおかしいと思いました。
では一度4に変えてみます^^

604 :nobodyさん:03/08/04 18:00 ID:8zL9M6pT
スクリプトでgdライブラリがインストールされてるかどうかを
判断するにはどうした良いですか?

605 : :03/08/04 18:24 ID:???
>>604
適当なイメージ関数が定義されているか調べれ

606 :nobodyさん:03/08/05 01:16 ID:???
>>604
http://www.php.net/manual/ja/function.extension-loaded.php

607 :nobodyさん:03/08/05 01:36 ID:???
PHP5でregister_globals=On に変えても パラメータを渡せない
んだけど、もしかして無くなったのかな、どうよ。

608 :nobodyさん:03/08/05 08:57 ID:V6DdtSg7
PHP初心者です。メール送信フォームの確認画面を設けているのですが、

$html="
<pre>
<br>
<form method=post action=$file>
<table width=480 border=0 align=center>
TEXT1: $r[0]
</table>
</form>
</pre>
";

と記述するとTEXT1の文が長すぎると途中できれてしまうのです。自動で改行する良い方法
はありませんでしょうか?よろしくおねがいします。

609 :nobodyさん:03/08/05 10:22 ID:???
>>608
<table>使わなけりゃいいんじゃないの

610 :nobodyさん:03/08/05 11:45 ID:BUuQIqrM
文字コード変換にこのようなことをしようとしているのですが、

function convert_code (&$val,&$key,$code,$oldcode){
  $val = mb_convert_encoding($val,$code,$oldcode);
}
array_walk ($array, 'convert_code','EUC-JP','SJIS');

array_walk ( array arr, string func [, mixed userdata])
という仕様ですが、この場合、userdataは配列や複数の値を
渡せないのでしょうか?

611 :608:03/08/05 11:53 ID:V6DdtSg7
>>609
<table>使わないと全体的に左に寄ってしまいますよね。
バランスが悪いので何か対処法はありませんでしょうか?

612 :nobodyさん:03/08/05 12:27 ID:???
>>608
HTMLの書き方が無茶苦茶。
PHPの勉強もいいですが、まずHTMLから始められてはどうでしょうか?

613 :nobodyさん:03/08/05 12:38 ID:???
確かに。
よく見りゃつっこみどころ満載の「HTML」だ。

614 :あぼーん:あぼーん
あぼーん

615 :あぼーん:あぼーん
あぼーん

616 :nobodyさん:03/08/05 13:16 ID:???
>>610
function convert_code (&$val,&$key,$opts){
  $val = mb_convert_encoding($val,$opts[0], $opts[1]);
}
array_walk ($array, 'convert_code', array('EUC-JP', 'SJIS'));

可変引数は渡せないから第3引数にmixed型を渡すように
なっている。
だから配列もしくはオブジェクトなら渡せる。

617 :nobodyさん:03/08/05 16:11 ID:???
>608
CSSを使用すれば余白の制御など細かく出来る。
CSSが大変そうなら <blockquote> タグあたりでどうかね?

618 :nobodyさん:03/08/05 17:37 ID:woPpy0rJ
php+MySQLでデータベースの入力フォームを作っております。

 前略
 mysql_query(insert into T1(f1,f2,...) values('$1','$2'...));
mysql_query(insert into T2(fA,fB,...) values('$A','$B'...));
mysql_query(insert into T3(fa,fb,...) values('$a','$b'...));

といったように、一つのphpファイルに連続して複数のテーブルに入力
しようとしても、最初のクエリのみしか受け入れてもらえません。
フォームからの変数は問題なく受け取っており、エラーになるわけでも
ありません。
どなたか、原因と対処を御教示下さい。 m(_ _)m

619 :618:03/08/05 17:42 ID:woPpy0rJ
ちなみにphpのバージョンは4.0.6です。(プロバイダがアップデートしてくれない (-_-;))

620 :nobodyさん:03/08/05 18:21 ID:???
>>618
mysql_query("insert into ・・・");
にしないとエラーになるんですが。

621 :618:03/08/05 20:07 ID:HahDoJ1D
>>620さま

$result1 = mysql_query("insert into T1(f1,f2,...) values('$1','$2'...)");
$result2 = mysql_query("insert into T2(fA,fB,...) values('$A','$B'...)");
$result3 = mysql_query("insert into T3(fa,fb,...) values('$a','$b'...)");

こんな感じで記述してあります。618は筆足らずでした。。

622 :あぼーん:あぼーん
あぼーん

623 :あぼーん:あぼーん
あぼーん

624 :あぼーん:あぼーん
あぼーん

625 :nobodyさん:03/08/05 21:38 ID:???
>>618
mysql_query()を呼んだ後は、返り値がTRUE(非ゼロ)またはFALSEのどちらかを確認して、
もし返り値がFALSEならmysql_errno()とmysql_error()を確認しよう。
さもなくば「エラーが出てない」とは言えない。

626 :618:03/08/05 22:25 ID:HahDoJ1D
>>625
感謝!!
早速確認してみます。  ・・・でも、localhostで動作確認したときは
問題なく全入力出来たのに、、、
どういう可能性が考えられるのでしょう?

627 :nobodyさん:03/08/05 23:04 ID:???
>616
ありがとうございました。マニュアル眺めてるだけでは、なかなかわからんもんです。

628 :nobodyさん:03/08/06 09:32 ID:TaNZWYB4
$_POSTなどでフォームのデータ受け取ると、"や'とか\が勝手にエスケープされてるのはなぜ?
仕様?

629 :nobodyさん:03/08/06 10:06 ID:???
>>628
magic_quotes_gpc
で検索

630 :あぼーん:あぼーん
あぼーん

631 :あぼーん:あぼーん
あぼーん

632 :nobodyさん:03/08/06 12:52 ID:9CpMMik0
ブラウザ上からquota見たいんですがのう。
popenでquota呼んだら
>Disk quotas for user xxxx (uid xxxx): none
しか来ないんだけど。
telnetだとusageとかgraceとか出るのにー

何か手ないすか?

633 :あぼーん:あぼーん
あぼーん

634 :nobodyさん:03/08/06 13:31 ID:???
> xxxx (uid xxxx):
伏字にしているのはエスパー募集だからですか?

635 :nobodyさん:03/08/06 15:15 ID:???
>632
とりあえずシェルから quota 呼ぶのと PHP(HTTPデーモン経由)から quota 呼ぶのとで
ユーザーが違ってると言ってみる

636 :nobodyさん:03/08/06 15:24 ID:???
>>632
xxxxを見ればわかりそうなものだ
wwwとかnobodyとか

637 :nobodyさん:03/08/06 18:46 ID:wRB10Bh6
文字列をある程度の長さで省略したいんですけど、
日本語と英数が混じってると最後が・になったりして
おかしくなる場合があります。どうすれば上手くできるんでしょうか。
使ってるサーバーがmb関数使えないサーバーなんですけどできますかね。

638 :nobodyさん:03/08/06 20:10 ID:+64gfyUC
te

639 :nobodyさん:03/08/06 20:21 ID:???
>>637
漢字コード変換
http://www.spencernetwork.org/

640 :nobodyさん:03/08/06 20:52 ID:???
>>637
文字コードが一定なら正規表現で1字ずつ数えれば良かろう。
([\x00-\x7F]|[\x8E\xA1-\xFE][\xA1-\xFE]|\x8F[\xA1-\xFE]{2})
とかね。似たような関数をperlから移植する手もある↓
ttp://www2u.biglobe.ne.jp/~MAS/perl/waza/strcut.html

641 :nobodyさん:03/08/07 15:46 ID:oxPy+Rmw
PHP+MySQL環境でディレクトリー式メニューを実現しようとしていて、
「ID:ジャンル名:所属ID」
という再帰テーブルを作りました。
この場合、直下にあるデータ一覧は所属IDをIDで検索すればすぐ出ますが、
トップからのパスはジャンル>所属しているジャンルID>さらに上のID…>
トップと検索して配列にセット、それを反転してトップ>ジャンル>その下の
ジャンルと整形しています。
この場合何度もSELECT文を出さなければなりませんが、もう少し効率的に
やる方法はないですか?

642 :nobodyさん:03/08/07 21:33 ID:???
>>641
ツリーにIDを1つ追加するときに、そのIDのフルパスを別のテーブルに登録しておけばよい。

643 :404.HDML ◆StMXML.EXE :03/08/08 01:59 ID:???
fsockopen関数から開いた、リモートファイルのポインタからファイルサイズを
取得する方法は有りますか?

それとも、リモートファイルの内容を一時ファイルとして保存したものをfilesize
関数で読み出すべきでしょうか?

644 :nobodyさん:03/08/08 02:17 ID:???
>>643
相手がHTTPで、且つそのヘッダでContent-Lengthが出力されてれば、
そこから取得することは可能。他のプロトコルは、やはり一度ナメるしかないんじゃないかな。


645 :404.HDML ◆StMXML.EXE :03/08/08 02:30 ID:???
>>644
リモートからContent-Lengthが返って来ない場合は取得不可なのですね。
有難うございます。

後、うっかり「HTTPでオープン」って書くの忘れてました。すみません。


646 :404.HDML ◆StMXML.EXE :03/08/08 03:15 ID:???
んと。fsockopen関数からHTTPとして開いたポインタから、予め上限を決めて
fread関数からデータを読みこみ、それをstrlen関数を使ってサイズを測る、、

という方法を試したら、何故か8192バイト以上が読みこめなかったので、
fgets関数をEOFを検出するまで回し、その過程で取得したデータを一本に
繋げてstrlen関数で読むという方法で何とかなりました。

647 : :03/08/08 03:27 ID:0z0bK8pF
freadって4.3.2から仕様変わった?

648 :nobodyさん:03/08/08 03:33 ID:???
リモートファイルをincludeで呼び出しています・・・
サーバーが停止している場合はローカル上のファイルを
includeするようにしたいのですが、
どうすればいいのでしょうか?

649 : :03/08/08 03:38 ID:???
>>648
fopenか何かでリモートに繋ぎ、ダメだったらローカルを読む、と。

650 :nobodyさん:03/08/08 07:01 ID:???
>>645
HEADメソッドでContent-Lengthだけ貰えば本体は貰わなくて済むよ。
ただしfopen()は使えないけど。

651 :nobodyさん:03/08/08 09:56 ID:LraV0Dku
>642
ありがとうございました。

別の質問です。
MYSQLでAutoIncrementのフィールドがあるとき、INSERTしたあと
現在のその数を取得するには再びSELECTするしかないのでしょうか?

登録IDを作りたいと思っていて、PHP側でキーを生成してPrimary設定の
フィールドにINSERTするよりは綺麗な連番になるかと思ったんですが、
保存後にIDが何番になったか再取得しないと表示できないのです、、、

652 :nobodyさん:03/08/08 11:16 ID:???
>>651
selectで再取得した方が確実。
さもないとチャットのように同時に10人とか発言されたら目も当てられない。

653 :nobodyさん:03/08/08 12:28 ID:???
>>637
substr()/mb_substr()でなくてmb_strcut()というのがある。
便利です。

654 :nobodyさん:03/08/08 13:18 ID:LraV0Dku
>652
ではどうやって再取得したらよいでしょうか。
今回の場合はそこまでクリティカルではないので問題ではないですが。

mysql_affected_rowsを利用するか、mysql_insert_idでしょうか。
前者の場合は再取得前に次の値がセットされればダメですし、
後者はいまいち使い方が分からない。。。

655 :nobodyさん:03/08/08 13:28 ID:LraV0Dku
ちなみに、
$info = mysql_fetch_array(mysql_query("show table status from DB_USER like 'TABLE_NAME'",$MyLink));
$inserted_id=$info[Auto_increment] - 1;
という方法もありますが、これでもチャットレベルではダメかも。

656 :nobodyさん:03/08/08 14:17 ID:???
>652

http://www.php.net/manual/ja/function.mysql-insert-id.php
マニュアルのとおり、単純に mysql_query した次の行で $foo = mysql_insert_id;
と書けば $foo にIDが取れる寸法のはず。

link識別子を使い分ける場合は明示的に指定する必要がある

657 :656:03/08/08 14:17 ID:???
>652 じゃなくて >654 だねゴメン

658 :nobodyさん:03/08/08 18:42 ID:???
いやー magic_quotes_gpc on にはまいりましたよ。

コードがSJISになってるファイルアップロードページで処理したら
ファイル名に上に出てきたみたいに「ソ」とか「構」とか入ってる時
$_FILES に格納されるファイル名がその文字以降になっちまったよ。

とりあえずアップロードページのコードをEUCに強制的に変換して
逃げたけどSJIS逝ってよしだな。

659 :nobodyさん:03/08/08 19:01 ID:???
>656
別のマニュアルでは分かりにくかったですけど、これで何となく分かりました。

>AUTO_INCREMENTEDカラム用に生成されたIDを返します。

これを見ると、モロに求めていた機能のようですね。よかった。

660 :404.HDML ◆StMXML.EXE :03/08/08 19:05 ID:???
>>650
目的は、リモートファイルの内容&サイズを取得する事なので、
本体も一緒に貰わないとイカンのです。

661 :nobodyさん:03/08/09 10:16 ID:i34+tz6Y
あるフォームの送信ボタンを押して別のページに飛ばしたときに
その飛んできた送信ボタンの名前を取得することって可能なんでしょうか?
またどのようにするのでしょうか?




662 :nobodyさん:03/08/09 10:24 ID:???
>>661
他スレで回答もらってるだろボケ

663 :nobodyさん:03/08/09 10:40 ID:???
>>661
<form method=post>
<input type=submit name=hogehoge value=booboo>
<input type=submit name=aaaaaaaa value=booboo>
<input type=submit name=bbbbbbbb value=booboo>
</form>
<?phpinfo(32);?>

664 :nobodyさん:03/08/09 10:54 ID:i34+tz6Y
>>662
その通りなんですが
回答の意味が分からなかったのでこっちで教えていただこうと
思ったんです。すみませんでした。

>>663
ありがとうございます。
しかし質問が悪かったみたいで知りたいことはちょっと違いまして
例えば商品が複数ならんであるページで
それぞれ商品のカゴに入れるというボタンを押したとき
そのボタンの名前を取得してそのボタン名+price みたいな名前の
パラメータの値と個数をかけた値を足していく というような感じに
したいのです。
長くなって申し訳有りません。

665 :nobodyさん:03/08/09 12:44 ID:???
フォームに日付がたくさんあるのでfunctionで関数化したいんですけど、
$_POST['xx']の表記がいまいちわかりません。
やりたいのはこんな感じです↓

function check($yyyy,$mm,$dd){
$yyyy=trim(mb_convert_kana($_POST['$yyyy']),"sn");
$mm =trim(mb_convert_kana($_POST['$mm']),"sn");
$dd =trim(mb_convert_kana($_POST['$dd']),"sn");
if (!checkdate($mm,$dd,$yyyy)){
(以下略)

666 :nobodyさん:03/08/09 12:49 ID:???
>>644
あなたの脳内では、ボタン名というのはnameの事?それともvalueの事?
「ボタン名+price」というのはどこに表示したいの?それともhiddenにしてfromに忍ばせたいの?
どうしてボタンの名前の取得が必要なの?
fromを商品毎に用意してそれぞれにsubmitとhiddenで値を定めれば良いんじゃないの?
どうしても全体を1つのfromにまとめたいの?

667 :nobodyさん:03/08/09 12:53 ID:???
>>665
$_POST["$yyyy"]

668 :nobodyさん:03/08/09 17:42 ID:???
PHPでCSVが表示できると聞いたんですがどうやればいいんですか?

test.csv
a,b,123
c,d,456



<table><tbody><tr>
<td>a</td><td>b</td><td>123</tr>
<td>c</td><td>d</td><td>456</tr>
</tr></tbody></table>

のように表示することは可能でしょうか?
よろしくお願いします。

669 :nobodyさん:03/08/09 17:55 ID:???
>>668
可能です。
ごくごく基本的なテキスト処理の問題で
どんな参考書にも必ず載っています。

670 :nobodyさん:03/08/09 18:57 ID:???
668です。
買った本に載ってなかったんで(正直ショックだった

何か参考になるサイト等がありましたらお願いします。

671 :nobodyさん:03/08/09 19:22 ID:???
>>670
$a=file("test.csv");
echo "<table><tbody>\n";
foreach($a as $b){
$b=rtrim($b);
echo "<tr>";
$c=explode(",",$b);
foreach($c as $d){
echo "<td>$d</td>";
}
echo "</tr>\n";
}
echo "</tbody></table>";


672 :nobodyさん:03/08/09 19:39 ID:???
関数に fgetcsv() てのもある

673 :nobodyさん:03/08/09 20:31 ID:i34+tz6Y
$HTTP_SESSION_VARS["a"][1]
なんてある配列の数を1つ減らしたりしたいのですが
どのようにしたらよいのでしょうか?

674 :nobodyさん:03/08/09 20:42 ID:stysPTCZ
ブルマ姿の可愛らしいロリ少女が体育倉庫でなにやら怪しい動き!
物凄くでかいオッパイをぷるんぷるんに揺らしながらハゲオヤジにバックから突かれます。
最後のオナシーンではなんととうもろこし挿入!
ブツブツで気持ちいいんでしょうね。
無料ムービー観てね。
http://www.pinkfriend.com/


675 :nobodyさん:03/08/09 21:09 ID:???
>>673
$HTTP_SESSION_VARS["a"][1]--;


676 :nobodyさん:03/08/09 21:10 ID:4ZC+Pkma
★おまんこナビ登場!!★日本の美しきオマンコ検索はココ!!
http://endou.kir.jp/marimo/link.html

677 :直リン:03/08/09 21:13 ID:V17SBkWV
http://homepage.mac.com/maki170001/

678 :nobodyさん:03/08/10 00:16 ID:9fsvpXwn
もし変数$xに値が入ってなかった場合っていう条件を作るときに
if(isset($x)) と if(!$x) はどっちがいいんでしょうか?何か違いがあるんですか?

679 :nobodyさん:03/08/10 00:18 ID:???
>>678
$x=0; if(!$x)

680 ::03/08/10 00:19 ID:iKMsAznc
>>678
error_reporting(E_ALL);
とかして動かしてみな。

681 :670:03/08/10 02:42 ID:???
>>671
>>672
ありがとうございました。

682 :nobodyさん:03/08/10 07:14 ID:fzrQOeyO
MySQLに格納されているデータを元に作るページを
何度も行き来させる場合、
セッション変数にデータを入れて持たせるのと、
ページごとにMySQLから読ませるのと、
どっちが負荷が軽いですか?


683 :nobodyさん:03/08/10 08:11 ID:???
セッション変数に200KBぐらいのデータを持たせるのって
あんまりイクナイですか?
ページごとにあるwebサイトからそのぐらいのデータをダウンロード
するのをさけたいのです

684 :nobodyさん:03/08/10 23:48 ID:???
PHPでパスワード付きzipファイルの解凍って出来ないのでしょうか?
パスワード有無の判別だけでも出来れば解凍時にパスワード入力を
施すようにして、あとはunzipを呼び出すなんて事も出来そうなんですが。
さーぱーりわかりません。

685 :nobodyさん:03/08/11 00:23 ID:???
システム時間を人間が見てわかる時間に変更する方法を教えてください。
1060417366 -> yyyy/mm/dd hh:mm:ss
みたいな。

686 :nobodyさん:03/08/11 00:38 ID:???
>>684
菅さんとこのあぷろだが暗号zipを判別した筈。perlだけどロジックをぱくればよろしい。
http://sugachan.dip.jp/download/uploader.php

>>685
http://jp.php.net/manual/ja/function.date.php


687 :nobodyさん:03/08/11 00:52 ID:???
>>685
マニュアルの日付の項をちょっとでも読んだのならいくらでも出てくるのだが?
http://jp.php.net/manual/ja/ref.datetime.php

688 :nobodyさん:03/08/11 02:56 ID:MrZa7J+S
しょぼい質問でスマソ。
正規表現に関することで悩みが…。

<?php
if (preg_match ("/[ぁ-ん]{5}/", "あいうえお")) {
print "A match was found.";
} else {
print "A match was not found.";
}
?>

っていうソースのファイルを開いたんですわ。
そしたら
Warning: Compilation failed: range out of order in character class at offset 4 in d:\public\root\c.php on line 2
A match was not found.
って表示が出てくるんですよ。

これなら 大丈夫なんですけどね…。
<?php
if (preg_match ("/[a-z]{5}/", "abcde")) {
print "A match was found.";
} else {
print "A match was not found.";
}
?>

日本語だとうまくいかないようなんですが、なんでなんでしょうか?

689 : :03/08/11 04:19 ID:???
>>688
pregは非対応だから。mb_eregでやれ。

690 :684:03/08/11 06:29 ID:???
>>686
ありがと。できますた。

691 :nobodyさん:03/08/11 06:45 ID:ugZ5Rko0
☆Hな女の子はおスキですか?☆(※入場無料)
http://endou.kir.jp/yuminet/link.html
http://endou.kir.jp/marimo/link.html

692 :nobodyさん:03/08/11 07:45 ID:vd5Ibrol
以下のスクリプトが動きません。なんでですか?
#!/usr/bin/perl

# CGIヘッダの出力
print "Content-type: text/html\n\n";

while($HP1 > 0) and ($HP2 > 0){
srand1;
srand2;
}

# Player1
$HP1 = 400 - $kougeki1;
$KIK1 = 60;
$PAN1 = 20;
$DF1 = 10;

# Player2
$HP2 = 300 - $kougeki2;
$KIK2 = 100;
$PAN2 = 40;
$DF2 = 0;

# Player1
$kougeki1 = srand;

# Player2
$kougeki2 = srand2;

693 :nobodyさん:03/08/11 07:46 ID:vd5Ibrol
srand;
if($mode == 1){
$offense = \%you;
$defense = \%my;
}elsif($mode == 2){
$offense = \%my;
$defense = \%you;
}
if( int(rand(2)) ){
#punch
$damage =
$offense->{'$PAN1'} - $defense->{'$DF2'};
if(!$rand = int(rand(5))){
#half
$damage = int($damage / 999);
}elsif($rand < 3){
#miss
$damage = "";
}
}else{
#kick
$damage =
$offense->{'$KIK1'} - $defense->{'$DF2'};
}

694 :nobodyさん:03/08/11 07:46 ID:vd5Ibrol
srand2;
if($mode == 1){
$offense = \%you;
$defense = \%my;
}elsif($mode == 2){
$offense = \%my;
$defense = \%you;
}
if( int(rand(2)) ){
#punch
$damage =
$offense->{'$PAN2'} - $defense->{'$DF1'};
if(!$rand = int(rand(5))){
#half
$damage = int($damage / 999);
}elsif($rand < 3){
#miss
$damage = "";
}
}else{
#kick
$damage =
$offense->{'$KIK2'} - $defense->{'$DF1'};
}

($damage < 0) and ($damage = 0);
$defense->{'HP1'} -= $damage;

($damage < 0) and ($damage = 0);
$defense->{'HP2'} -= $damage;

695 :nobodyさん:03/08/11 07:47 ID:vd5Ibrol
# HTMLの出力
print "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">\n";
print "<html>\n";
print "<head><title>対戦バトル</title></head>\n";
print "<body>
<p>Player1:体力は$HP1です</p>
<p>Player2:体力は$HP2です</p>
<p>Player1は<big>$kougeki1</big>のダメージを与えた。</p>
<p>Player1は<big>$kougeki1</big>のダメージを受けて混乱した。
<p>Player1は<big>$kougeki1</big>のダメージで野原でクソをし始めた。
<p>Player2は<big>>$kougeki2</big>のダメージを与えた。</p>
<p>Player2は<big>>$kougeki2</big>のダメージを受けて裸踊りを始めた。
<p>Player2は<big>>$kougeki2</big>のダメージで光浦なみの女にレイプし始めた。</p></p></body>\n";
print "</html>";

696 :nobodyさん:03/08/11 07:50 ID:vd5Ibrol
プレイヤー1とプレイヤー2の対戦ゲーム
パンチとキックが出る

パンチは5分の3で命中
5分の2はミス
命中すると5分の1のは攻撃力が半減
さらに相手がキックをすると、パンチ力が半減

キックはふつうに当たる

HP0になった方が死亡

697 :_:03/08/11 08:08 ID:???
http://homepage.mac.com/hiroyuki45/hankaku05.html

698 :_:03/08/11 08:16 ID:???
http://homepage.mac.com/hiroyuki45/

699 :nobodyさん:03/08/11 09:40 ID:???
>>692
perlはスレ違いです

700 :nobodyさん:03/08/11 11:58 ID:vd5Ibrol
PHPとPerlは別なんですか!早とちりしてしもうた。

701 :673:03/08/11 12:26 ID:UQrY/a3d
>>675
ありがとうございます。
しかし、$HTTP_SESSION_VARS["a"]--としても
count($HTTP_SESSION_VARS["a"])の数は減っていないみたいなんですが
何かおかしいのでしょうか?


702 :nobodyさん:03/08/11 13:11 ID:???
>673

>675 のは配列の要素が持っている数値を減らす方法。
>673 は配列の要素を削りたいんだろ?なら↓の関数でどう?

http://www.php.net/manual/ja/function.array-splice.php

703 :あぼーん:03/08/11 13:12 ID:???
http://homepage.mac.com/hiroyuki45/jaz01.html

704 :あぼーん:03/08/11 13:13 ID:???
http://homepage.mac.com/hiroyuki45/

705 :688:03/08/11 15:31 ID:bEOLhIPG
指摘の通り、mb_eregにかえたんですが・・・

<?php
if (mb_ereg("/[ぁ-ん]{5}/", "あいうえお")) {
print "A match was found.";
} else {
print "A match was not found.";
}
?>

結果が A match was not found.
なんですけど、まだ何かおかしいところあるんでしょうか?

706 :nobodyさん:03/08/11 16:38 ID:???
>>705
前後のスラッシュは不要。
if (mb_ereg("[ぁ-ん]{5}", "あいうえお")) {

707 :nobodyさん:03/08/11 17:48 ID:+bwnIYmo
ど素人ですいません。
一応サーバーはKTplanを使っています。
Linuxサーバーのようです。PHP Version 4.2.2
サンプルの本を使いながらメールフォームを試してるのですが、
「PHPでWebアプリケーションを作ろう」という1年ほど前に買った本では
文字コードEUC、改行LFで保存しています。
これは、formmail.html,formmail.php,formmail_lib.php
という、入力ページ、プログラム本体、ライブラリの3つのファイルと
jcode.php,jcode_mini.php
という、日本語処理のファイルをあげています。
これは問題なく動作しましたし、届いたメールも文字化けはしていませんでした。
ただ、メールの内容を確認するというページが無いので違うのを試しました。

「PHPによるWebアプリケーションサンプル」という本で
サンプルを試したところ、サンプルCDには、
Winユーザー向けの script_sjis用と
Linuxユーザー向けの script_eucという
2つがありました。
で、KTplanのサーバーはLinuxだし、上に書いたメールフォームは
EUCで保存して問題なかったので、Linux用のを使いました。
すると、届いたメールの内容が文字化けしていました。

試してみようと思い、Win用のsjis保存のを使ってみたら
問題なく文字化けしていませんでした。

この違いはどう考えればいいのでしょうか?

先に試した本のやつは、日本語変換用のファイルを使うので
そうなのかなと思いますが、次の本のやつは
メールを受け取る環境に合わせてsjisとEUC保存を使い分けるのでしょうか?


708 :nobodyさん:03/08/11 17:53 ID:0RwRz5Km
★オナニー共和国です★ ★貴方の見たい娘がイッパイ(^0^)★無修正★
http://endou.kir.jp/akira/linkvp.html

709 :_:03/08/11 18:09 ID:???
http://homepage.mac.com/hiroyuki45/hankaku09.html

710 :_:03/08/11 18:21 ID:???
http://homepage.mac.com/hiroyuki45/

711 :nobodyさん:03/08/11 18:23 ID:ZEkRELaD
★☆ 夏休みは GETDVD で満喫・満喫!! ★☆★
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★
☆★ 送料激安!  スピード発送!  商品豊富!   
★☆      http://www.get-dvd.com        
☆★ 激安DVDショップ 「GETDVDドットコム」 
★☆      http://www.get-dvd.com        
☆★ 今すぐアクセス Let’s Go・Go!!   
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★


712 :nobodyさん:03/08/11 18:44 ID:???
だれか683に答えてあげて・・

713 :nobodyさん:03/08/11 18:50 ID:???
>>683=712
素直に答えてくださいと…

>セッション変数に200KBぐらいのデータを持たせるのって
>あんまりイクナイですか?

イクナイですよ。

714 :nobodyさん:03/08/11 18:55 ID:???
>>683
セッション変数に持たせること自体は問題無いよ。
後半部分は、hiddenで渡したり受け取ったりしたくない、って意味なのかな?
「あるWebサイト」って何のこっちゃと思って、流してた。

715 :nobodyさん:03/08/11 19:15 ID:???
Zend Studio 2.6 日本語版が出るそうです
2.5が一年前かぁ.....
    ,-ー─‐‐-、
   ,! ||     |
   !‐-------‐
  .|:::i ./ ̄ ̄ヽi
  ,|:::i | (,,゚д゚)||  < ttp://www.zend.co.jp/press/2003/press0807.php
  |::::(ノ 中濃 ||)
  |::::i |..ソ ー ス||
  \i `-----'/
     ̄U"U

716 :nobodyさん:03/08/11 19:23 ID:???
>>714
2ちゃんねるのdatファイルを読み込みたいのです。

717 :nobodyさん:03/08/11 19:25 ID:???
ページが変わるたびに
何回もdatファイルをダウンロードしにいくのもアレなので
セッション変数にdatファイルのデータを全部詰め込んで
おけばいいのかなぁと・・

718 :705:03/08/11 19:50 ID:Av1x7+ub
スラッシュとってもまだだめだ……

なんでだ・・・・なんでだめなんだ・・・・・・・・
ソースはおかしくないですよね?

ちなみに ttp://www.xrea.com/ のサーバーに置こうとしてるんですけど。


719 :nobodyさん:03/08/11 19:51 ID:0RwRz5Km
★おまんこナビ登場!!★日本の美しきオマンコ検索はココ!!
http://endou.kir.jp/marimo/link.html

720 :nobodyさん:03/08/11 19:55 ID:???
[5]

721 :nobodyさん:03/08/11 21:58 ID:2ChtRC4J
悪霊に取り付かれているという千穂ちゃん。
除霊をしてあげるという男に乳もまれるはオマンコ触られるは挿入されるは・・・
本当に悪霊は退散したのでしょうか?こんな気持ちのいい除霊だったらいつでもOK!
制服好きならここ!
無料ムービーをどうぞ
http://www.pinkschool.com/


722 :nobodyさん:03/08/11 22:15 ID:S089as81
お盆だよー!
▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
アダルトDVD激安価格1枚 500円より〜
 http://www.dvd-exp.com 
最短でご注文いただいた即日発送!→→→http://www.dvd-exp.com 
セルビデオ店の人気商品が24時間お買い物が出来ます。
          http://www.dvd-exp.com←へGO!


723 :_:03/08/11 22:16 ID:???
http://homepage.mac.com/hiroyuki45/

724 :nobodyさん:03/08/11 22:19 ID:???
>>718
仮にスクリプトをSJISで書いていたとしたら、mb_ereg()の前に
mb_regex_encoding("SJIS");
と書くと動くかもよ。

725 :705:03/08/11 23:24 ID:Av1x7+ub
>>724 動きますた。感動しますた。サンクス!!

726 :nobodyさん:03/08/12 09:37 ID:PFVgJDlR
有料会員管理や課金システムが組み込まれたPHPスクリプトで
参考になるフリーのスクリプトないですか?
自分でスクリプトを書いてるんだけどうまくいかなくて
気が狂いそう。



727 :nobodyさん:03/08/12 10:03 ID:???
そういうの、初心者がつくっちゃいけないと思うぞ。
あきらめて業者に頼め。

728 :707:03/08/12 12:03 ID:Cs4RKLp1
作者のミスだったようです。
製作HPに載ってました。


729 :nobodyさん:03/08/12 14:28 ID:???


730 :nobodyさん:03/08/12 15:45 ID:???
ちょと納得いかないんですが
受け取ったクエリのなかの "' を htmlspecialchars で
置き換えるとバックスラッシュ付きになっちまうんですがナゼでしょ?
" -> \"(¥&quot;)
バックスラッシュ要らないんですがどうすればイイのでしょう?

731 :nobodyさん:03/08/12 20:20 ID:???
>>730
if (get_magic_quotes_gpc()) {
$hoge = stripslashes($hoge);
}
$hoge = htmlspecialchars($hoge);

732 :nobodyさん:03/08/12 21:15 ID:P8GdC1tU
写真集だよん☆☆☆☆☆☆
http://www.sexpixbox.com/pleasant/sexy/index.html


733 :nobodyさん:03/08/12 23:39 ID:kb077f1K

こいつバカ?・・ってくらいエロイ女がいるね・・・ここ
こんな可愛い顔してなー・・・・・・変態
http://vs2.f-t-s.com/~moemoe/dxlive.html

734 :nobodyさん:03/08/13 00:57 ID:pM9W3pWP
質問です。
page.htmというファイルがあってその内容をinclude()やrequire()等をつかって読み込んで表示させたいのですが、
page.htmというファイルの中に記述されてある$PHP_SELFがそのまま出力されて困ってます。
つまり、page.htmの中に記述されてる変数が変数として認識されずに出力されてるってことなんですが、
page.htm内の変数を認識させて出力するにはどうすればいいでしょうか?

・・・・・説明下手でスマソ。

735 :nobodyさん:03/08/13 01:46 ID:???
>>731
サンクス

736 :nobodyさん:03/08/13 02:17 ID:???
>>734
その$PHP_SELFは、<?php echo $PHP_SELF; ?>のような形にしてる?
そんな必要あるの?って思ったらincludeの説明を見てくだちぃ

737 :nobodyさん:03/08/13 02:31 ID:pM9W3pWP
>>736
なるほど。助かりました!

738 :nobodyさん:03/08/13 02:59 ID:9iljZfn8
book-i.net

739 :nobodyさん:03/08/13 03:00 ID:???
だれか717に答えてあげてください

740 :nobodyさん:03/08/13 09:18 ID:???
>>739
お前キモイよ。

「答えてあげてください」じゃなく「答えてください」だろが。

741 :nobodyさん:03/08/13 09:51 ID:???
まぁまぁ
そんなムキにならずに
楽に生きましょうよ。
眉間にしわがよってますよ。

742 :nobodyさん:03/08/13 10:11 ID:???
あっほんとだ。

743 :nobodyさん:03/08/13 10:59 ID:???
>>683=712=717=739=741

なんでそんなに必死に第三者を装おうとするんだ?
キモ過ぎ。

744 :nobodyさん:03/08/13 11:22 ID:???

オモシロイから。
ですよ。
君馬鹿?
ユーモアの精神もってよ。
みけんにしわよせていないでさ♪

745 :nobodyさん:03/08/13 11:23 ID:???
>>744 sine

746 :nobodyさん:03/08/13 11:28 ID:???
はー
つれたつれた

んじゃ、また。

747 :nobodyさん:03/08/13 11:35 ID:???
つれたと書き逃げ。ステロタイプな厨の常套手段だな(ワラ

748 :nobodyさん:03/08/13 11:53 ID:???
>>746
第三者を装うのは反感買うだけだよ。

749 :nobodyさん:03/08/13 12:36 ID:???
元質の内容を考えると、「好きにしていいよ」だね。
(セッションの仕組み上)クライアントごとにデータを保存するわけだから、
無駄が多いような気がするけど。

750 :nobodyさん:03/08/13 12:59 ID:???
>>749
無駄が多すぎるし「止めとけ」だと思うけど。

751 :nobodyさん:03/08/13 13:40 ID:???
>>750
改善策がないし、好きにしていいよ
だろう。

752 :nobodyさん:03/08/13 22:01 ID:3p1HFmGf
phpで作ったタブブラウザとか無いですかね

753 :nobodyさん:03/08/13 22:09 ID:???
恐ろしく初心者な質問してもいいのでしょうか。
readfileで殆どのページを表示させるのと、
PHPファイルに情報を入れておいて、 ?> でPHPを出て表示させるのとどちらがサーバー負担が小さいでしょうか。
前者はもう一つファイルを開くという作業があって、
後者はPHPとしてのチェック作業がありますよね。
もちろんサイズが小さければ後者だと思うのですが、
ある程度大きくなる前者の方が良い気がします。
どの辺りのサイズで切り替えを考えるべきでしょうか。

簡単な例
前者 <?php readfile("htm.txt"); ?>
後者: <?php TEST ?>このあとに全ページが続く

754 :nobodyさん:03/08/13 22:11 ID:???
まちがえ。

後者: <?php ?>このあとに全ページが続く


755 :nobodyさん:03/08/14 01:51 ID:???
>>753
巨大なファイルで試したらどうか。
使う環境によっても違うだろうし。

756 : :03/08/14 04:38 ID:???
>>752
PHP-GTKとかいうのがあったな。デスクトップアプリ作るやつ。
ブラウザをPHPで作るアフォはあまりいないと思うが。

757 :nobodyさん:03/08/14 13:29 ID:GZQg1swI
bBlog http://www.bblog.com/
を使用しているのですが、これをの投書を表示するindex.phpに、
最新1項目だけ表示させるにはどうすればいいのでしょうか?

<-------- index.php -------->
<?php
include "bblog/config.php";

if(is_numeric(@$_GET['postid'])) {
$bBlog->assign('postid',$_GET['postid']);
$bBlog->show_post = $_GET['postid'];
$bBlog->display('post.html');
exit;
}

if(is_numeric(@$_GET['sectionid'])) {
$bBlog->assign('sectionid',$_GET['sectionid']);
$bBlog->assign('sectionname',$bBlog->sect_by_name[$_GET['sectionid']]);
$bBlog->show_section = $_GET['sectionid'];
}


$bBlog->display('index.html');
?>
<-------- ここまで -------->

758 :nobodyさん:03/08/14 14:02 ID:???
>>757
勉強したら?

759 :757:03/08/14 14:03 ID:???
>>758 えぇ。今しております。

760 :nobodyさん:03/08/14 14:19 ID:JF8X1a1v
教えてください。
upload_max_filesize = 2M
となっているレンタルサーバ(WebARENA)なんですが
どうにかして2M以上のファイルをアップロードできるように
する手段はないでしょうか?


761 :nobodyさん:03/08/14 14:35 ID:???
>>760
分割upして結合したらどうか。
クライアント側に分割upさせるようなプログラムを送りつける必要があるけど。


762 :nobodyさん:03/08/14 15:58 ID:???
>757
ちょっと落としてソースを眺めてるのだが bblog のソースはなんか
TURBO PASCAL 系のようなインデントがされてるな。
つーか TAB インデントと SPACE インデントが混ざってるところが
痛い。

まぁそれはおいといて、bBlog.class.php ってファイルの中の get_posts
あたりを見てみたらどう?このメソッドで出来そうだけど。

763 :nobodyさん:03/08/14 16:34 ID:3awXqGFx
ダウンロードできない・・・
なぜ?
ttp://www.php.net/downloads.php

サーバーがない・・・
なぜ?
ttp://www.php.gr.jp/

764 :nobodyさん:03/08/14 16:41 ID:???
>>763
ほんとだ

765 : :03/08/14 16:45 ID:???
質問です。

下記のバージョンを使っているのですが、ユーザディレクトリで
fopenを使うと、ファイルが無い言われます。(requireなどはオッケー)
フルパスで指定すると平気なのですが、相対パスだとアウトです。
ちょっと調べたのですが、「バグ?」という曖昧な情報だけで、
バグかどうかに関する物が見つかりませんでした。
これって結局バグなのでしょうか?

PHP 4.3.0 (cli) (built: Jan 17 2003 16:22:27)
Copyright (c) 1997-2002 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2002 Zend Technologies


766 :nobodyさん:03/08/14 17:10 ID:???
>765

file_exists() は true 返すの?

767 :nobodyさん:03/08/14 17:15 ID:SyUXGdwy
街行くセーラー服の少女を見て『ムラムラ』っとしたことはありませんか?                
パンティーが見えそうな位に短いスカート、ムチムチした足にルーズソックス。         
私自身も大のセーラーフェチなんです。    
そんな欲望を満たしてくれる動画だけを徹底的に集めました。
無料ムービーを観てください。
http://www.pinkschool.com/             

768 :765 :03/08/14 17:24 ID:???
>>766
true返しました。
さっぱりでつ…。

769 :nobodyさん:03/08/14 17:50 ID:???
どんな文でfopenか書いて

770 :765 :03/08/14 18:23 ID:???
どんなもなにも、って感じですが…(苦笑

<?php
$test = fopen("./test.conf",'r');
?>

で、こけます。
当然、test.confは同じところにおいてありまつ。
さっぱり(;´Д`)

771 :nobodyさん:03/08/14 18:56 ID:???
パーミッションは?

772 :nobodyさん:03/08/14 19:00 ID:???
open_basedirはどうなってる?

773 :763:03/08/14 19:02 ID:???
ミラーサーバーへのリンクがおかしくなっているみたい
ttp:///get/php-4.3.2-Win32.zip/from/jp.php.net/mirror
ってなってる。
ttp://www.php.net/get/php-4.3.2-Win32.zip/from/jp.php.net/mirror
にしたら、保存できた。

ttp://www.php.gr.jp/
は、復活していた


774 :765:03/08/14 19:16 ID:???
>>771
パ一ミッションは問題無しです。

>>772
む、そんなのあるんですか。
今電車の中なので、帰ったら調べてみます。

775 :nobodyさん:03/08/14 20:14 ID:???
>>774
http://jp.php.net/manual/ja/function.file-exists.php#26757

file_exists (getcwd()."/somedir/somefile.php");とか
file_exists (realpath("./somedir/somefile.php"));で動く

776 :nobodyさん:03/08/14 20:48 ID:gUgtxMRF
(A,001,B,002・・・)
という配列を
$RENSOU[A] = 001
$RENSOU[b] = 002
とする場合、perlではそのまま代入すれば出来ましたが、
PHPの場合はどうやって変更すればよいでしょうか?

777 : ◆AngelH/kMI :03/08/14 20:54 ID:???
>>773
しまった。
ここに張っておけばよかったか。


--- PHP users MLから転載 ---

日時  :8月14日(木) 終日
影響範囲:www.php.gr.jp のみ (注)
理由  :回線拡張工事の為
その他 :14日中には完了する予定ですが、予期しない問題の為
     15日もアクセスできない可能性もあります。
     また、何らかの理由により15日以降回線に一時的に
     障害が発生することもあります。

以上、ご不便をおかけ致しますが、皆様のご協力をお願い致します。

注:メーリングリストは使用できます。

778 :nobodyさん:03/08/14 21:14 ID:???
>>776
$hoge=array("A","001","B","002","C","003");
reset($hoge);
while(list(,$key)=each($hoge)){
list(,$value)=each($hoge);
$RENSOU["$key"]=$value;
}


779 :nobodyさん:03/08/14 21:50 ID:gUgtxMRF
>778
ありがとうございます。listの使い方が分かりました。
しかしperlに比べて少々めんどい、、、

780 :nobodyさん:03/08/14 22:04 ID:???
>>779
perlのやりかたをphpで実現しようとすれば当然めんどい。
phpはphpのやりかたで便利なようにできている。
どの言語でも同じ事だが。

781 :nobodyさん:03/08/15 07:29 ID:???
>>778-779
each()は連想配列用だからトリッキーになっちゃう。
素直に書くとこうじゃない?
$hoge=array("A","001","B","002","C","003");
reset($hoge);
while (($key = current($hoge)) !== FALSE) {
$RENSOU[$key] = next($hoge);
next($hoge);
}

元の配列を破壊するならこっち。
$hoge=array("A","001","B","002","C","003");
while (($key = array_shift($hoge)) !== NULL) {
$RENSOU[$key] = array_shift($hoge);
}

782 :nobodyさん:03/08/15 11:04 ID:???
>>781
こんなのでも大丈夫みたい。

$hoge=array("A","001","B","002","C","003");
foreach ( $hoge as $key ) {
    $RENSOU[$key] = next( $hoge );
}

783 :782:03/08/15 11:14 ID:???
782 は勘違い。
結果に不要な値が含まれるので失敗。

784 :nobodyさん:03/08/15 11:25 ID:???
nextを使っている人がいるけども、空の要素や値が0の時は
falseが帰ってくるから場合によっては危険。

785 :nobodyさん:03/08/15 11:28 ID:mChPmz42
phpで掲示板を作ってみたんですが
「表示」「機能」などの文字を書き込むと文字化けしてしまいます。
化けないようにするには書き込むときに何か特別な処理が必要なんでしょうか?

786 :nobodyさん:03/08/15 11:41 ID:???
SJISの場合、表・能などの2バイト目が0x5cになり、
これは \ と同じなので次の文字の1バイト目がエスケープされてしまう。

1. SJISで書くのをやめる
2. PHPの設定でmagic_quotes_gpcをonにする
3. 危なそうな変数はaddslashesを通過させる

1.がお薦め。

787 :新宿歌舞伎町裏DVD本舗:03/08/15 11:50 ID:2mbTnFQt
▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼
 ☆★ 無修正DVD★☆なら 新宿歌舞伎町直送 ☆★

人気爆発新作ベスト9入荷
 
堤さやか引退特集 憂木瞳 プロジェクトX No8 ベイビーフェイスをやっちまえ
 白石ひより・愛葉るび SNAPSHOT 地下映像陵辱援交 すぎはら美里痴女教師
 店頭販売の売れ筋のみ厳選してみました 安心の後払い
     http://book-i.net/moromoro/
   白石ひとみ 小森詩 山田まり 長瀬愛
@@ 及川奈央 レジェンド @@ 堤さやか 東京バーチャル 依然大好評
    
  サンプル画像充実  見る価値あり  最高画質
▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ ▼ 

788 :nobodyさん:03/08/15 12:07 ID:mChPmz42
>>786
1と3はやってみたんですが何故かダメでした。
動かしてるのは自分のサーバじゃないんですが、2は調べてみたらoffになってました。
こうゆう場合はどうすればいいんでしょうか?

789 :nobodyさん:03/08/15 12:10 ID:???
>>788
ちゃんとアップしたファイルがSJIS以外の文字コードになっているか調べる

790 :nobodyさん:03/08/15 12:22 ID:mChPmz42
>>789
SJISになってましたが、なんか色々やってるうちに
文字化けせずに書けるようになりました。
$msg = stripslashes($msg);
この行をのけたらいけました。
どうもありがとうございます。

791 :Name_Not_Found:03/08/15 12:28 ID:???
アイコン選択のしかたがわかりません。apeboardを使っているのですが…
皆さんどうやって指定しているのですか?

792 :nobodyさん:03/08/15 12:34 ID:???
>>791

ネタか?
どっちにしても、氏んでくれ。

793 :nobodyさん:03/08/15 13:39 ID:ZJsoX+AA
PHP-users に、電波キタ*・゜゚・*:.。..。.:*・゜(゚∀゚)゚・*:.。..。.:*・゜゚・* ね。
MLに書こうかと思ったけど、粘着されるとやだからこっちに書いてみるテスト。


794 :nobodyさん:03/08/15 14:58 ID:???
>>793
ここでやれ。夏厨

PHP-users ML ヲチ
http://pc2.2ch.net/test/read.cgi/php/1031734100/

795 :793:03/08/15 15:41 ID:???
スマソ。逝ってきます。

796 :757:03/08/15 16:14 ID:???
自己解決しました。

/* \bblog\templates\default\index.html */
    {getrecentposts num=1 assign=posts}

上記の行の数字部分を変えることで、表示ポスト数を変えることができました。

797 :nobodyさん:03/08/15 17:10 ID:???
画像ファイルをそのままPOSTし、それを取得して処理しようとしているのですが、
正常に取得することができません($strはから文字でした)
どのようにすれば取得できるのでしょうか?間違っている点の指摘などありましたら
よろしくお願い致します

$fp = fopen( "php://stdin", "rb" ) or die( "error" );
$str = fread( $fp, 3 );//ファイルタイプチェックのため

以下続く

798 :nobodyさん:03/08/15 18:18 ID:???
続きマダー?(チンチン AA(ry

799 :nobodyさん:03/08/15 21:36 ID:???
>>797
stdinはだめ。.htaccessで
php_flag always_populate_raw_post_data On
と設定して、postを受け取ると$HTTP_RAW_POST_DATAに生の中身が入ってるよ。

サンプル↓
<?php echo $HTTP_RAW_POST_DATA;?>
<form method=post><input type=text name=booboo><input type=submit value=post></from>

800 :nobodyさん:03/08/15 22:05 ID:???
>>798
以下処理が続くという意味で書いたのですが、ものすごく紛らわしくて
申し訳ありませんでしたm(__)m

>>799
stdinだとダメだったんですか。ずっとこれで頑張っていました__| ̄|○
早速、教えていただいたものでやってみようと思います。

801 :山崎 渉:03/08/15 22:28 ID:???
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン

802 :nobodyさん:03/08/15 22:52 ID:bGL7o/n7
保守。

803 :nobodyさん:03/08/16 00:09 ID:yCKhoHep
あげとく。

804 :nobodyさん:03/08/16 00:41 ID:bJ8kSIAe
アニメ好き、女子校生好きの方にオススメ!
すべて無修正でみせます。
アニメの中の美少女のオマンコ、女子校生のオマンコ
はっきり見えます。
無料画像をここでゲッツ!!
http://www.pinkfriend.com/

805 :nobodyさん:03/08/16 01:35 ID:kg29KKNX
Anhttpd 1.4.2iとphp4.3.2(installer)を使ってローカルで掲示板の実験をしようとしているのですが、
どの掲示板を使っても、必ずエラーメッセージが表示されるのですが、どうしましょう。

例えば
$mode = $_POST["mode"]; に対して
Notice: Undefined index: mode in 〜 というメッセージを出すのですが、
無視してもよろしいんでしょうか。

こうした方がより良いという方法があったら、教えて頂きたい次第です。

806 :nobodyさん:03/08/16 01:50 ID:???
modeをGETで渡してる予感がする。

807 :nobodyさん:03/08/16 02:25 ID:???
>>806
上のスクリプトはこんな感じでした。
echo "<form action=\"$setting[script]\" method=\"POST\">\n";

aaacafeの方に上げて試すと、特にエラーメッセージは出ませんでした。
エラー出っ放しでも投稿は反映されるので、
htmllint並みの潔癖さんなのかしらん。と、心のどこかで疑っている次第です。
できればエラーメッセージを止める以外の方法で、解決できませんでしょうか。

808 :807:03/08/16 03:06 ID:???
自己解決しました。
インストーラー版をアンインストールして、
zipでまとめられていた方を入れてみたところ、
エラーメッセージが綺麗さっぱり消えました。

ヒントはhttp://pc2.2ch.net/test/read.cgi/php/1046326634/7でした。
8時過ぎからずっと悩んで、検索しまくってたのにー。

809 :nobodyさん:03/08/16 03:20 ID:???
>807
php.ini の error_reporting はどうなってますか?
消えたように見えただけでエラー出力が抑止されてるだけ?
(aaacafeの設定がそうなっているとか)

$mode = (isset($_POST['mode']) ? $_POST['mode'] : ''); とか

810 :807:03/08/16 03:54 ID:???
>>809
error_reporting = E_ALL & ~E_NOTICE

でした。以前がどうだったか分かりませんが、デフォルトのはずです。
英語もあんまり読めないしー。

>$mode = (isset($_POST['mode']) ? $_POST['mode'] : '');
なるほど、とか言えるほどの知識はないので、
リファレンス見ながら理解してみようと思います。
ありがとうございます。


808のスレ見てたら、もう酷い時間ですよ!

811 :nobodyさん:03/08/16 04:46 ID:0jlc9p4o
正規表現を教えて下さい。

812 :nobodyさん:03/08/16 06:32 ID:???
>正規表現を教えて下さい。
せいきひょうげんと読みます。
文字列の操作に使います。以上。

813 :nobodyさん:03/08/16 11:35 ID:???
質問します〜助力お願いします。

$a = 0;
$b = 0;
$heikin = $a/$b;
echo $heikin;

のように、"0"がセットされた$aと$bを使い割り算をし、ある数値を求めたいのですが
どうも0/0の計算の場合に

Warning: Division by zero in 〜

と上の四行ソースで言うと、三行目で警告が出てしまうッス。 これを回避する方法を教えてください。
お願いします。

814 :nobodyさん:03/08/16 12:09 ID:???
$a = 0;
$b = 0;
#$heikin = $a/$b;
echo $heikin;

815 :nobodyさん:03/08/16 12:29 ID:???
>813

b=0 の時だけ処理を分ける
算数の問題のような

816 :nobodyさん:03/08/16 12:40 ID:???
>>814
ありがとうございますっ!
お、そんな方法が・・・と思ったら$aと$bが0の場合は$heikinに0がセットされないんですな・・とほほ。

>>815
そうそう、二時間近くいじくって先ほどそれに気が付きました汗
ありがとうございましたー!

817 :nobodyさん:03/08/16 13:20 ID:???
>>816
当たり前だ、$heikinに0がセットされたらヤバいだろーが。

818 :nobodyさん:03/08/16 17:03 ID:???
>>813
$heikin = $b > 0 ? $a/$b : NULL;

819 :nobodyさん:03/08/17 00:22 ID:/KfDx3SX
safemodeがonの場合のサーバーで
フォルダの中にフォルダを作るにはどうしたらよいですか。
↓やるとhogeフォルダが作成できません。(uidが違うから?)

mkdir("aaa");
chmod ("aaa", 0707);
mkdir("aaa/hoge");


820 :nobodyさん:03/08/17 14:57 ID:???
ほんまやxreaやとできんがな。

821 :nobodyさん:03/08/17 18:07 ID:w938zl0m
現在アメリカサーバーを使ってますが、
現在使用しているPHPスクリプトが時差設定が出来なくて困ってます。

$abctime= (date ("H:i:s"));

この部分をgmtimeとか使って変える気がするんですが、
どうすればいいんでしょうか?

誰かおながいします



822 :nobodyさん:03/08/17 20:42 ID:???
>>821
putenv('TZ=JST-9');

823 :nobodyさん:03/08/18 00:09 ID:pnFIbaKU
>>822
$abctime=putenv('TZ=JST-9');
ってことでしょうか?
すんません知識がしょぼくて汗

824 :821:03/08/18 00:19 ID:pnFIbaKU
すいません、ちょっと違ってました。
正しくは以下です。

$abcdate = (date ("Y-m-d"));
$abctime= (date ("H:i:s"));

これを何とか日本の時間に直したいんでつ。
よろしくお願いしまつ

825 :nobodyさん:03/08/18 00:30 ID:???
>>823
せっかく教えてもらったのに、調べもせずに質問返しか。

826 :nobodyさん:03/08/18 00:31 ID:???
>>824
>>822で答えもらってるだろうが
あとは自分でググれ

827 :nobodyさん:03/08/18 06:12 ID:BwATsvIe
fopenを使って読み込みモードでファイルをオープンするときってflockは必要ないんですか?

828 :nobodyさん:03/08/18 07:21 ID:???
>>827
作成するシステム全体で読み込みしかしないんだったら不要。
もしどこかで書き込みと競合する可能性があって、それがまずいなら何らかのロックは必要。
あとflock()はadvisory lockなので、みんなで守らないと意味ないので注意。

829 :nobodyさん:03/08/18 08:06 ID:BwATsvIe
>>828
じゃあどこかでファイルに書き込みする所が1箇所でもあれば
fopenで開く処理のときは全部lockかけないといけないって事ですか?

830 :nobodyさん:03/08/18 09:16 ID:???
開いた時、
読み込むだけなら無くても良いと思うが・・・。

831 :nobodyさん:03/08/18 17:54 ID:???
>>829
まー厳密にはそうなりますね。

>>830
そうね。
ほとんどのプログラムでは、そう問題になることもないしね。

832 :nobodyさん:03/08/19 03:47 ID:OzwjKvy8
定数の場合defineで宣言すれば自分で作った関数内でglobalで指定しなくても使えるんですよね?
だったらやっぱり使う定数が多い場合は全部defineで宣言した方がいいんですか?
global宣言しないといけないものがあまりに多くなってしまったので。
定数として宣言した方が処理が早くなるとかあるんでしょうか。

833 :nobodyさん:03/08/19 08:22 ID:???
PHP4.2.2を使っています。

あるファイル(txtやdat)ファイルに
文章あ-1 文章あ-2 文章あ-3
文章い-1 文章い-2 文章い-3
が書いてあって
別のphpファイルから 文章あのなかからランダムでひとつ、文章いの中からランダムでひとつ取り出すのはどうしたらできるでしょうか?
どなたか 教えてください。


834 :nobodyさん:03/08/19 11:48 ID:???
>>832
複雑化してるなら定数で済むものは定数でいいのでは?たぶん処理も早いし

>>833
文章あ-ランダム数 文章い-ランダム数 でいいかと?

835 :nobodyさん:03/08/19 20:37 ID:HWSDVW6B
女の子も勉強になるよ!
http://homepage3.nifty.com/manko/

836 :nobodyさん:03/08/20 02:26 ID:DmnhIRDP
cryptで暗号化したパスワードって簡単に複合化できるんでしょうか?

837 :nobodyさん:03/08/20 03:16 ID:???
>>836
できません

838 :nobodyさん:03/08/20 04:12 ID:???
掲示板などのログファイルを1行目だけ書き換えたいんですが。
file関数で一度全部配列に入れて1行目だけ書き換えて保存する以外に効率が良い方法はどんなやり方がありますか?

839 :nobodyさん:03/08/20 04:31 ID:???
ImageCreateFromPNGみたいな感じにBMP画像を読み込むのは
どうしたらいいんですか?


840 :nobodyさん:03/08/20 06:18 ID:5bGlwbl+
str_replace ( mixed search, mixed replace, mixed subject)
でmixed searchが半角1文字のときは探してくれないんでしょうか。

841 :_:03/08/20 06:30 ID:???
http://homepage.mac.com/yamazaki8

842 :nobodyさん:03/08/20 21:17 ID:UjFXAgnt
お気に入り集 ☆
http://beauty.h.fc2.com/


843 : :03/08/20 23:57 ID:???
>838
fopen

>839
ImageCreateFromWBMP

844 :nobodyさん:03/08/21 02:26 ID:???
>>838
>>843
行が固定長でなければぜんぶ読むしかないんとちがう?
file()で正解だと思う。ネイティブ処理だし。

いっそログファイルをdbmにするのはどう?

845 :nobodyさん:03/08/21 06:02 ID:???
>>844
開業があれば止まるよ。

846 :838:03/08/21 06:13 ID:???
fopenで開いてそのあとどうすればいいんでしょうか?fputsでやってみたんですが追加で書き込みされてしまいます。
最初ある1行目を消して違うものに書き換え、2行目以降は元のままって意味だったんですが、やっぱりfopenでできますか?

847 :nobodyさん:03/08/21 15:36 ID:pPohBqhp
初めての書き込みで緊張していますが
PHPの質問で数値の表示方法についての質問なんですが、数値の計算で
例えば
10×1.05 をやると 10.5
になるのですがこれの小数点以下を切り捨てたいのですが、どうすれ
ば良 いのでしょう。number_format関数を使えば小数点以下の修正が
行なえるというのは知っているのですが、number_format関数を使うと
1000などの数値の時、1,000となり","(カンマ)が表示されてしまい、数
値として認識しなくなってしまいます。
この計算の後にもさらに計算をしたいので、数値として認識させなけれ
ばならないので、こまっています。
どうぞご指導をよろしくおねがいします。


848 :nobodyさん:03/08/21 16:33 ID:???
切捨てならキャスト演算子で十分だろ。
(int)

849 :nobodyさん:03/08/21 16:53 ID:pPohBqhp
わかりました!ありがとうございます。この掲示板て凄く
たすかりますね。今後もどんどん活用しようと思います!!

850 :nobodyさん:03/08/21 16:56 ID:???
>>836
>>846
いや、だから普通にやるなら無理なんだってば。
ファイルを開くモードによって書き換えた残りの部分が
中途半端に残ったり、ファイルサイズが0になったりする訳
だから、いずれにせよ、書き換えた部分以外の残りを
書き足さなきゃだめな訳。
file()で読み込んだ配列をforでまわして残りを書き込むとか。



851 :nobodyさん:03/08/21 17:00 ID:???
>>849
この掲示板は人手不足なんでな。
悪いが一回回答をもらったら、お礼に十回ぐらい
質問に答えてくれ。

852 :nobodyさん:04/03/26 19:42 ID:???
記念カキコ

853 :nobodyさん:04/03/26 19:46 ID:???
初心者スレが無くなったお陰で、
PHP-users MLはそりゃもう、大流行だよ

220 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)