【PHP】質問スレッド Part15

このエントリーをはてなブックマークに追加
1nobodyさん
PHP全般の質問スレです。
上級者用や雑談スレを立てたくなった場合は後から適宜立ててください。

■本家
 http://www.php.net/

■日本 PHP ユーザ会
 http://www.php.gr.jp/

■PHP マニュアル
 http://www.php.net/manual/ja/

■PEAR マニュアル
 http://pear.php.net/manual/ja/

過去スレ, 関連スレ及び注意事項等は、 あふぉが居なけりゃ>>2-5
2nobodyさん:04/03/07 02:06 ID:???
3nobodyさん:04/03/07 02:06 ID:???
  ☆  P  H  P  5  ☆
http://pc2.2ch.net/test/read.cgi/php/1056969979/

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

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

■PHP関連の書籍(但しPHP出版系お断り)
http://pc2.2ch.net/test/read.cgi/php/985315574/
4nobodyさん:04/03/07 02:07 ID:???
関連サイト

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

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

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

phpPatterns
http://phppatterns.com/

Perl/PHP Translation
http://www.cs.wcupa.edu/~rkline/perl2php/
5nobodyさん:04/03/07 02:08 ID:???
6nobodyさん:04/03/07 02:09 ID:???
スレ建て終了。
前スレの過去ログpart13のアドレスが違ってて焦った。
7nobodyさん:04/03/07 06:15 ID:???
>>1
Z
8nobodyさん:04/03/07 11:49 ID:jKMO9RlN
perlだと変数を定義していなくてもそのまま処理できたのですが
PHPだと変数が未定義ですとエラーが表示されてしまいます。

具体的に言うと、フォームからデータを送り、GETメソッドで取得し
$modeにregistやdeleteなどの文字を格納するようにしたいのですが、

$modeになにも入ってないとき、つまり

http://〜〜〜/test.php

とかでアクセスしたとき、$modeが未定義と出ます。

PHP.iniのほうでエラーを表示しないようにする方法があるのは分かるのですが、
そうしちゃっていいのでしょうか?
何かいい方法はないでしょうか?
9nobodyさん:04/03/07 11:53 ID:qGgxd6Wh
>>8
定義されているかどうか調べりゃいいじゃん
10nobodyさん:04/03/07 13:17 ID:???
または、しっかり変数を初期化しよう
11nobodyさん:04/03/07 14:09 ID:???
>>8
それって、どうやったら再現できますか?
12nobodyさん:04/03/07 14:18 ID:???
988 :nobodyさん :04/03/07 13:39 ID:???
>>984
定義しておけばいいだけの話。
echo $mode = !empty($_GET['mode']) ? $_GET['mode'] : ""; //undefined index errorは起きない
13初心子:04/03/07 16:02 ID:AkFDBaOG
「AAA」という内容のHTMLファイルの表示と、PHPで1行「echo "AAA"」を実行
して表示する場合で、処理速度に差は出るのでしょうか。
また、出るとしたらどのくらいのアクセスからなんでしょうか。
例えば1秒に10アクセスぐらいでも差が出るでしょうか。
14nobodyさん:04/03/07 16:32 ID:???
15nobodyさん:04/03/07 16:37 ID:JEnRe41E
fopen()で2chのdatを開き、fgetsで読み込もうと考えています。
この際、datを最初から全部読むのではなく
新しい方から100レスのみ、という読み込み方をしたいのです。

dat全体を読み込むのは出来た(whileでEOFまで取得)のですが、
「新しい方から100レスのみ」のやり方がわかりません。
fseek()などで何とかなるかと考えたのですが、
http://"または"ftp://"フォーマット指定のfopen()により返されたファイルポインタに対しては使わないで下さい。
とかマニュアルに書いてあるし…。

何か良い方法があったらご教示願います。
16初心子:04/03/07 17:31 ID:???
>>14
ごめんなさい、IIS5です。
17nobodyさん:04/03/07 17:33 ID:???
>>15
fsockopenで接続して100レス分fgetする
18nobodyさん:04/03/07 18:14 ID:???
>>15
l100
19nobodyさん:04/03/07 18:50 ID:???
>>12
isset()
20nobodyさん:04/03/07 22:22 ID:???
>>15
無理じゃないの?
*.datのレコード(1行)って固定長だっけ?
21nobodyさん:04/03/07 22:33 ID:???
>>13
例えば
1. ABC<?php echo'ABC'; ?>ABC
2. ABCABCABC
となら2.の方が速いが、別に気にするほどの差ではない。
因みに""ダブルクォートと''シングルクォートの場合や、
echoとprintも処理に違いがあるので差があるのだが、
それも気にするほどではない。もっと気にしないといけないことは
幾らでもあろう。特に君は英語を読むことと、無駄に思えることでも
色んな知識を吸収しようとする努力せよ。
(16氏が示したツール(ApacheBench)はApacheでもIISだろうが使える)
22nobodyさん:04/03/07 22:48 ID:???
>>15
fseekが使いたいなら、一度tmpなりのファイルに落としたらどう。
datの構造しらんので「新しい方から100レスのみ」するのに
先にparseとかせんでもいけるの?と思うけど。
23nobodyさん:04/03/07 23:00 ID:???
>>15
各行の開始位置を記録したファイルを別に作る
2421:04/03/08 02:53 ID:???
>>13
1. ?>ABC<?php echo'ABC'; ?>ABC<?php
2. ?>ABCABCABC<?php
の感じのテスト(出力バッファ利用して貯めて)で、
大体1は2の120%ぐらい。つうても折れのローカル環境で 7.8e-7秒/回。
それが20%増しになったところでね、普通ゴミとか誤差とか呼ぶレベルでしょ。
25nobodyさん:04/03/08 11:34 ID:/KXptFwq
ファイルアップロード機能を使いたいのですが、
move_uploaded_file
が使えません。なにも反応しません、エラーもでません。
で、copyは使えるようなのですが、機能に違いってありますか?
26初歩的だけど:04/03/08 11:55 ID:???
変数と配列を比較して、
配列のどれか一つと一致するとTRUEを返す

はどうやったらいいの?
27nobodyさん:04/03/08 12:17 ID:mEtMwEOB
>>26
配列の操作を行う関数は・・・・・・・配列関数
ttp://www.php.net/manual/ja/ref.array.php
28nobodyさん:04/03/08 12:19 ID:???
>>25
move_uploaded_file()を使うとis_uploaded_file()で事前に確認する手間は省ける。
ま、copyを使う前にmove_uploaded_fileが使えない原因がどこかにあると思うが。

>>26
function array_manual_YOME($n,$array){
return in_array($n,$array);
}
29nobodyさん:04/03/08 12:21 ID:???
>>27-28
サンキューエロイヒトたち
30nobodyさん:04/03/08 14:00 ID:WZerhTAo
質問なのですが、
Apache 1.3.27
PHP 4.3.4 で
PC/携帯連動ページを作成しているのですが、
PCで正常に表示しているページを
require_once
で要求し、携帯に必要な部分の関数だけ実行しようとすると
携帯からは表示できない
というメッセージが出るのですが、
どのような事が原因でしょうか?
require_once
を記述しない場合は、
携帯でも正常に(ただし、何も表示されない)ページが見れます
何かアドバイスありましたらお願いします
31nobodyさん:04/03/08 14:02 ID:???
まずApacheのバージョンを上げることかな?
3230:04/03/08 14:05 ID:???
>>31
え”?
古いバージョンは携帯不可なんですかひょっとして
ありがとうございました
33nobodyさん:04/03/08 14:07 ID:???
文字列の最後の改行を取りたいのですが、
chopでいいんですか?
34nobodyさん:04/03/08 14:19 ID:???
>>30
読み込んでるのが
>携帯からは表示できない
というメッセージを出す関数じゃないの
3530:04/03/08 14:19 ID:???
ぐわすみません
本番機は、
Redhat 9
Apache 2.0.40-21.9
でした
>>30の環境は、開発環境でした('A`)
3630:04/03/08 14:24 ID:???
>>34
require_onceで要求したページは、
if(IsMobile()==false){//PCからの場合、通常メニュー作成
SendHeader("ページタイトル");//ヘッダ送信
CreateMenuPage();//PC用メニュー作成
SendFooter();//フッタ送信
}
となっていて、これは、PCの場合にメニューを構築します
それ以外は、
CreateMobileMenu()
という関数を実行しているのですが
(現状はテストのみで、
中身は、
?><DIV>携帯用ページ</DIV><?php
だけの関数です
コレを、元のページindex_mb.phpから
require_onceすると、
ページを表示できないと携帯が言ってきます
セッション管理の為、別ページもrequire_once
しています(このページも関数のみで、HTMLは、出力しません)
37nobodyさん:04/03/08 14:29 ID:???
>>36
試しに、if(IsMobile()==false)をif(1)にしてみて、どういうHTMLを吐いているかPCで確認してみれ。
38nobodyさん:04/03/08 14:30 ID:???
>>36
>ページを表示できないと携帯が言ってきます

最近の携帯はすごいんですなぁ。
3930:04/03/08 14:31 ID:???
>>37
なるほど、ありがとうございますm(;∇;)m
これから実行いたします
4030:04/03/08 14:32 ID:???
>>38
や、すみません
PCでいうダイアログっぽいメッセージで、
「このページは表示できません」
ってメッセージがでる
という意味合いです('A`)
4130:04/03/08 14:34 ID:???
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<META http-equiv="Content-Style-Type" content="text/css">
<TITLE></TITLE>
</HEAD>
<BODY>
<BR><BR>
<TABLE>
<TR>
<TD>
<FORM action="kokyaku.php" target="data">
<INPUT type="submit" name="user_manage" value="ユーザー登録確認">
</FORM>
</TD>
</TR>
<TR>
<TD>
<FORM action="menu_data_init.php" target="data">
<INPUT type="submit" name="reserve_manage" value="予約情報">
</FORM>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>
と出てきました(PC側)
42nobodyさん:04/03/08 14:38 ID:???
>>40
もう、require_onceや携帯がどうのこうのという範疇じゃねぇ。
デバッグまで手伝えってか?

>>41
そもそも、携帯に対してEUC吐いてるの?
4342:04/03/08 14:40 ID:???
>>42の前文取り消し。勘違いした。
4430:04/03/08 14:47 ID:???
>>42
>>43
@前半>あ、イエ、チトワタクシの言葉不足でした('A`)
@後半>
EUC吐いてるの>ハヒ、本来は、S-JISにすべきデスネ('A`)
4533:04/03/08 15:11 ID:???
だれか〜
46nobodyさん:04/03/08 15:16 ID:???
>>45

47nobodyさん:04/03/08 15:31 ID:???
>>35
むしろ本番環境にApache2.xとPHPの
組み合わせを使う(予定)の君に乾杯。

まあ一応こまめにプロセス殺してやると
今のところ大丈夫みたいだけどね。
4830:04/03/08 15:43 ID:???
>>47
コ、コレばかりは、ユーザーさん指定の環境ですので、
ワタクシからはどうにもなりません_| ̄|○
49nobodyさん:04/03/08 15:57 ID:???
誰もダメとは言ってないぞ。
自分で自分の首を絞める行為に漏れからも乾杯。
50nobodyさん:04/03/08 16:03 ID:???
Apache2.0.40って……
51nobodyさん:04/03/08 16:12 ID:???
なんか、テストも本番も微妙にApacheが古いのが笑えるな。
52nobodyさん:04/03/08 17:00 ID:mEtMwEOB
>>41
原因はわからんが(テストしてないし)、
HTML1.0のサブセット(嘘)に向って、
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
も酷いよな。

エンコーディングはEUCだしさ。

しかも、
<META http-equiv="Content-Style-Type" content="text/css">

って、携帯を馬鹿にしてるとしか思えない。
5352:04/03/08 17:03 ID:???
なにはともあれ、
消防でも書けるようなHTMLにしたら?
携帯に、多くを求めるな。

<HTML>
<HEAD>
<TITLE>タイトル</TITLE>
</HEAD>
<BODY>
<BR><BR>
<FORM action="kokyaku.php" target="data">
<INPUT type="submit" name="user_manage" value="ユーザー登録確認">
</FORM>
<FORM action="menu_data_init.php" target="data">
<INPUT type="submit" name="reserve_manage" value="予約情報">
</FORM>
</BODY>
</HTML>
54nobodyさん:04/03/08 17:13 ID:???
>>33
rtrim
55nobodyさん:04/03/08 17:14 ID:???
ここで携帯がHDML機だったってオチを期待してみる
56nobodyさん:04/03/08 17:36 ID:???
>>55
HDMLは「コンパイルエラー」とかいうもっといやらしいエラーを言ってきます
57nobodyさん:04/03/08 17:44 ID:???
質問です。
XHTMLで組んでいるので、xml宣言を文書の最初にしなきゃいけないのですが、
<?xml version="1.0" encoding="Shift_JIS" ?>
という形上、PHPと解釈されてしまいます。
そこで
<?="<?xml version=\"1.0\" encoding=\"Shift_JIS\" ?>" ?>
こうしたのですが、この宣言が文書の一行目に来てくれません。
なんとか一行目に表示する方法はないでしょうか?
58nobodyさん:04/03/08 17:46 ID:???
PHP版なつみかんって感じのアンテナソフトありますか?
59nobodyさん:04/03/08 17:59 ID:???
>>57
別の問題じゃないの? どっかで改行とか出力してない?
自分でためしに<?=...を初っぱなに書いてみたけど、ちゃんと1行目にくるぞ?
60nobodyさん:04/03/08 18:05 ID:???
>>59
_| ̄|  ......○
61nobodyさん:04/03/08 19:28 ID:???
「parseする」ってどういう意味ですか?
62nobodyさん:04/03/08 20:09 ID:???
<html>
<hrad>
<title>あああああ</title>
</head>
<body>
<font size=+2>えええええ</font>
<hr>

<?php
mb_http_output('SJIS');

echo ("あいうえ");
?>


<?php
echo("あああああ");
?>


こうやっても全部EUCになるんですがねぇ・・・
他に必要なものってありましたっけ?
63nobodyさん:04/03/08 20:48 ID:???
6463:04/03/08 20:50 ID:???
例6も嫁
65nobodyさん:04/03/08 21:57 ID:???
はいよんだよんだ
できたできた
66nobodyさん:04/03/08 22:38 ID:aa8wwnxG
classとかいうやつの使い方がよくわからないのですが、
なんの為に使うのでしょうか。
あとどんなプログラムにもそれは必要ですか?
67nobodyさん:04/03/08 22:46 ID:???
>>66
その質問。スルーされているのに気づけYO!

ま、別に使わなくても問題ないよ。
今後スクリプトをバリバリ書いて、なんか使いまわしが面倒だなぁと感じたら
本でも買って勉強するよろし。
68nobodyさん:04/03/08 23:51 ID:???
たとえばデータベース関連とかは毎回色んなスクリプトで使い回ししたい。
そんなときクラスを使うとよろし。
69nobodyさん:04/03/08 23:51 ID:LU3lxLSX
こんばんは!多言語対応のホームページを作ろうとしています。

phpLang <http://www.phpheaven.net/projects/phplang/rubrique7.html>
を使って、もし言語が英語なら自動的にindex.en.htmlに
日本語ならindex.jp.htmlにリダイレクトさせたいのですが
どういったコードを書けばいいでしょうか。
サンプルコードを探したのですが見つかりません。
70nobodyさん:04/03/08 23:57 ID:???
>>69
そんなん、わざわざphpを使わなくても。
71nobodyさん:04/03/08 23:59 ID:???
まったくだ
72nobodyさん:04/03/08 23:59 ID:???
まぁapacheにもたしかあるやね

if( preg_match('/ja/i',$_SERVER['HTTP_ACCEPT-LANGUAGE']) ) {
header('Location: http://hogehoge/index.jp.html');
} else {
header('Location: http://hogehoge/index.en.html');
}
73nobodyさん:04/03/09 00:07 ID:usGQfxsJ
>>72さん、どうもありがとうございました。phpLangを使わずとも期待した通りに動きます。
>>70さん>>71さん、他にも何かシンプルな実装方法があるのでしょうか。。。
74nobodyさん:04/03/09 00:10 ID:???
>>73
コンテントネゴシエーションあたりで検索
75nobodyさん:04/03/09 00:18 ID:???
Apacheを自分で立てたらそれだけで気づきそうなもんだが。
と、index.html.jaとかindex.html.enになるけどw
76nobodyさん:04/03/09 01:56 ID:???
>>74さん、どうもありがとうございました。ファイル名を変えるだけという最もスマートな方法で実装できました。
77nobodyさん:04/03/09 09:14 ID:???
$str = 'スト好' # \xA5\xB9 \xA5\xC8 \xB9\xA5 (EUC)
のとき
$pattern = '(?:[\xB7-\xBA][\xA1-\xAF])';
$str = mb_ereg_replace($pattern,'',$str);
みたいのをしたいのですが、希望通り「スト」が返ってきません。
mbでも途中にマッチしちゃってるようなのですが
そもそもmbはこういうのが起きないためのものなのではないでしょうか(;´Д`)
希望通りになるコードのお知恵をかしてください・・
7830:04/03/09 10:06 ID:???
亀レスになりましたが、
イロイロありがとうございました
とりあえずテストのアパッチは最新に置き換えマシタ
本番機はユーザーさんの管轄なので、
コッチの置き換えは、ユーザーさんに依頼シマツ
タグ自体は、必要最小限を出力してテスト致します

携帯も奥が深いんですね(;´Д`)
お世話になりマスタm(;∇;)m
79nobodyさん:04/03/09 10:09 ID:???
>>77
ナニを「希望」しているのかサパーリわらかん。
全角カタカナに一致させたそうでもなさそうだし。

>>78
携帯の奥が深いというより、あんたが浅杉。ま、がんがれYO
80nobodyさん:04/03/09 10:43 ID:???
ここの馬鹿共は口が悪いな
81nobodyさん:04/03/09 10:48 ID:???
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ
8230:04/03/09 11:01 ID:???
>>80
や、びしっと言って頂いた方がワタクシは
良かったですよ

って釣られたっていうのですかね、コレは・・・
83nobodyさん:04/03/09 11:15 ID:hGDzPQs/
           _,. -‐''"∴∵``' ‐ .、._
          ,.‐'´∴∵∴∵∴∵∴∵ `‐.、
        ./∴∵∴∵∴∵∴∵∴∵∴∵\
        |/-=o=-∵∴∵∴\/_ ∴∵∴∵\
       /::::::ヽ―ヽ -=o=-_(::::::::.ヽ ∴∵∴∵l
      |○/ 。  /:::::::::  (:::::::::::::) ∴∵∴∵l
      |::::人__人:::::○∵∴ ヽ/ ∴∵∴∵l
      ヽ   __ \∵∴∵∴/ ∴∵∴∵l
     ∴∵\  | .::::/.|∵∴∵∴/ ∴∵∴∵∴\
     ∴∵ \lヽ::::ノ丿∵∴∵ / ∴∵∴∵∴∴l
     ,i∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴l
      |∴∵∴∵∴∵∴(・)∴∴.(・)∴∵∴∵∴∵|
.     | ∴∵∴∵∴∵∴ / ○\ ∴∵∴∵∴∵ |
.      |∴∵∴∵∴∵∴/三 | 三|∴∵∴∵∴∵|  tanasinn
.     |∴∵∴∵∴∵∴| __|__ |∴∵∴∵∴∵l
     l∴∵∴∵∴∵∴|  === .|∴∵∴∵∴ .,l
.     ゙i ∴∵∴∵∴∵ \__/∴∵∴∵∴,i
      ヽ∴ ∵∴∵∴∵∴∵∴∵∴∵∴∵/
        ヽ `‐.、∴∵∴∵∴∵∴∵∴,.‐'´
             `:‐.、. _∴∵∴∵.-‐''"
84nobodyさん:04/03/09 11:57 ID:???
>>77
ちゃんと「スト」になるけど。
内部エンコーディングがEUCになってるかmb_regex_encoding ( )で確認しろ。
85nobodyさん:04/03/09 13:06 ID:jqgOUC+j
質問させてください。
とあるディレクトリに月ごとのディレクトリを生成し、
さらにその中に新たにテキストファイルを生成したいのです。
生成はできるんですが、FTPからこのテキストを削除できません。
生成したテキストファイルの所有権が"www(apache)"になってしまうので。

FTPから削除できるような形でファイルを生成しようと思うと、
あらかじめFTPユーザーとして作ったディレクトリ内に、
ファイルを生成するしか手は無いんでしょうか?

$mydate1 = date("Ym");
if ( !is_dir("./dat4/$mydate1") ){
mkdir("dat4/$mydate1",0777);
}
$fp = fopen("dat4/$mydate1/".date("mdhi").".txt","r+");
fputs($fp,"hogehoge");
fclose($fp);


まるで春厨すんません。
86nobodyさん:04/03/09 13:15 ID:???
>>85
マニュアルって言葉知ってる?
http://www.php.net/manual/ja/ref.filesystem.php
87nobodyさん:04/03/09 13:21 ID:???
>>85
なぜFTPで削除しないといけないのか分からない。
88nobodyさん:04/03/09 13:26 ID:jqgOUC+j
>>86
ホントすんません。見てるんですが実は良くわからんです。

>>87
要はユーザーが書き込んだ物を鯖に保存しておいて、
その保存されたテキストファイルを管理者が消すと。
どうもそれは必須なんです。
89nobodyさん:04/03/09 13:29 ID:???
>>88
それならFTPじゃなくても管理者用の削除スクリプトを作ればいい。
9086:04/03/09 13:39 ID:???
>>88
FTPで削除する事の善し悪しはおいといて
パーミッションの設定は
http://www.php.net/manual/ja/function.chmod.php
91nobodyさん:04/03/09 13:44 ID:???
>>88
>どうもそれは必須なんです。

こんな香具師に依頼したやつの気がしれんというか可哀相というか…。
間違っても仕事じゃないよな?ないと言ってくれ、頼む…。
92nobodyさん:04/03/09 13:47 ID:VgYi4aAb
>>90
chmodも使ってみたんですが、
"SAFE MODE Restriction in effect…"てな感じです。
93nobodyさん:04/03/09 13:49 ID:VgYi4aAb
>>91
たしかに可哀想。
仕事では無いんですが、結構ほったらかしにしてきた部分だったので、
できれば後学のためにと思いまして。
94nobodyさん:04/03/09 13:57 ID:???
>>92
そのメッセージはどういう意味だ?理解してるか?
解らんかったら英訳しろ
95nobodyさん:04/03/09 14:05 ID:VgYi4aAb
>>94
すいません。情報を小出しにしてしまったので、
混乱を招いてしまってますね。

作る->ftpで消せない->chmod試す->ダメ
->セーフモード調べる->脳内フロー

てな感じなんです。
セーフモードによってchmodは制限を受けるとありますから、
そもそもファイルやディレクトリを生成する時に、
誤りがあったのかなと思って色々調べてます。


96nobodyさん:04/03/09 14:13 ID:???
PHPの設定・・・
97nobodyさん:04/03/09 14:39 ID:VgYi4aAb
>>96
つまりそう言う設定だからダメと。
そう言うこってすか?
98nobodyさん:04/03/09 14:42 ID:???
>>85
環境もろもろからもう無理。諦めれ。
>>89が言うように管理者削除用スクリプトを書け。
99nobodyさん:04/03/09 14:46 ID:VgYi4aAb
>>98
了解です!

ホントありがとうございました。>all
来週あたり酒でもおごります。
1001.2.3.5.8.13:04/03/09 15:38 ID:SOYY0FQ6
こんにちは。
いまから、ウェブ上に自分専用のファイル置き場作りたいのですが、
分かりません。誰か教えてー!!!(無料のやりたいほーだいのところだから)
101nobodyさん:04/03/09 15:42 ID:hGDzPQs/
      ____
     /∵∴∵∴\    
    /∵/∴∵\∵\   
   /∵<・>∴∴.<・>∵|   
   |∵∵/ ●\∵∵|   
   |∵ /三 | 三|∵ |   
   |∵ |\_|_/| ∵|    tanasinn
    \ | \__ノ  |/   
   /.∴\___/     
  (∴∵∵∵∴∵∴ \  
 .  \∵ _∴ _ ∵∴ ヽ 
      ̄\  ̄ \\ ∴∵ヽ
       ヽ∴∵) ヽ∴∵|
       丿∴./  . ヽ∴ |
       (∵/     |∵ノ
102nobodyさん:04/03/09 16:18 ID:???
ホントにやりたい放題なんだったら好きなようにすればいいじゃないか。
103nobodyさん:04/03/09 16:35 ID:???
>>100
FTPクライアントソフトでアクセスして
自分の好きなディレクトリにファイルを置けばいいじゃん
104nobodyさん:04/03/09 17:07 ID:mKThJMQa

mb_send_mail()を使って文字化けが起こるのですが、原因が分かりません。
再現性が乏しいのです。
まったく同じコード&データで試行して文字化けしたり、しなかったり...
サーバに問題があると考えてよいでしょうか?
xreaですが。
105nobodyさん:04/03/09 17:41 ID:???
>>104
まさか言語設定がされていないなんてことは
ないだろうな
106void:04/03/09 17:50 ID:???
isset()とempty()はどのように使い分けるのでしょうか?
107No.2:04/03/09 17:58 ID:???
Perlで言うifとunlessの違いかな?
108nobodyさん:04/03/09 18:03 ID:BQg7O4/2
質問です。

header以外でページを飛ばす方法はありますか?

headerを使用すると始めにすぐ飛んでしまうので困っています。
ボタンを押したらページが飛んでくれるようなものを
PHPでやりたいのですが・・・
109nobodyさん:04/03/09 18:05 ID:???
>>108
JavaScriptで書けば?
110nobodyさん:04/03/09 18:06 ID:???
>>108
意味不明。
111nobodyさん:04/03/09 18:06 ID:???
>>108
<a href="逝ってヨシ">ボタン</a>
112nobodyさん:04/03/09 18:07 ID:???
<form action="氏ね" method="post">
<input type="submit" value="ボタン">
</form>
113108:04/03/09 18:11 ID:BQg7O4/2
質問内容が意味不明ですいませんでした。

ttp://php.s3.to/script.php
の一番下にあるショートメッセージというものですが
投稿して更新ボタンを押すと多重投稿になってしまうので
どうにかできないものかと思いまして。・・・
知恵を貸してください。
114nobodyさん:04/03/09 18:20 ID:???
>>113
貸すのはいいけど、ちゃんと返してくれる?
115nobodyさん:04/03/09 18:21 ID:???
質問よろしいでしょうか。
Win2KでPHP4.3.4とAN HTTPD使っています。

通常のPerlなどではHTML部分に$hogeと書けば展開してくれましたが、
PHPで変数を展開して書くときには、
<FORM method="<?php print $method; ?>" action="<?php print $file; ?>">
と書いています。
このように書く以外に方法は無いのでしょうか?
116nobodyさん:04/03/09 18:21 ID:???
>>113
なんじゃあ。それがどして108の質問になるのか。すんごく気になるが...

で、漏れも似たようなものは作った。多重投稿回避は、
前回の書き込みをセッション変数に保存しておいてそれと比較。
同じなら多重投稿とみます。ただ、空文の場合はセッション変数を更新せず。
117nobodyさん:04/03/09 18:23 ID:???
>>115
PerlのHTML部分というのはヒヤドキュメントのことだろ。
phpも一緒だよ。つーか、マニュアル嫁よ。
118nobodyさん:04/03/09 18:24 ID:???
>>115
色々ある
119nobodyさん:04/03/09 18:25 ID:???
みなさん釣られてますね
120nobodyさん:04/03/09 18:28 ID:???
>>113
POSTで受け取ったデータは再読み込みする時に
再度POSTしなきゃいけないという決まりがあるらしい。
ソースは>>120あたりが探してくれる予定。
# headerで別ページに飛ぶのは、この制約に当てはまらない。

直前の書き込みと比較して重複チェックするのが妥当では?
121nobodyさん:04/03/09 18:28 ID:???
俺かYO!
122nobodyさん:04/03/09 18:33 ID:???
>>115
<?=$hoge?>
123nobodyさん:04/03/09 18:35 ID:???
ヒアドキュメントか・・・

ってか、テンプレート使った方がいいんじゃないの?
124nobodyさん:04/03/09 18:40 ID:/j4E6ZKP
113ですけど
その前回の内容と比較して多重投稿させないソースを見せて下さいよ。
125nobodyさん:04/03/09 18:43 ID:???
>>124
モマエなぁ…
それを考えるのがプログラミングの楽しいトコロ。
それが嫌だったりめんどくさがったりするんなら、プログラミングするな。
126nobodyさん:04/03/09 18:52 ID:???
>>125
別人だよ
127nobodyさん:04/03/09 18:55 ID:???
ニセモノ(・A ・)イクナイ!
128nobodyさん:04/03/09 19:17 ID:???
113ですけど
ようはあれだろ!説明しといておまえら実際は出来ないんだろ?
もし出来るんだったら完成品みしてみろや!
べつにソースは出さなくていいから
ttp://php.s3.to/script.php
の一番下にあるショートメッセージに手加えてやってみろってんだ
129nobodyさん:04/03/09 19:23 ID:???
どうか誰も釣られませんように(-人-)
130nobodyさん:04/03/09 19:52 ID:???
>>128
つくったよ。
ここでリンク晒す気ないけど。
131nobodyさん:04/03/09 20:24 ID:WfRveasv
アクセス解析を作ろうとしています。
$_SERVER['SERVER_NAME'] と$_SERVER['REQUEST_URI'] で
リクエストされたURLを取得できることは分かったのですが、

例えば ://www.domain.com という風にドメインでリクエストされたのか
それとも ://200.100.22.11/ のように、IPアドレスでリクエストされたのか、
あるいは、共用サーバのチルダユーザ( //:www.server.com/〜user/ )のURLなのか、
判別できますでしょうか?
132釣られた@116:04/03/09 20:49 ID:???
他で使っていたスクリプトをコピペして作ってみた。
名前欄とか色付けはないけどねぇ。
http://cgi.f19.aaacafe.ne.jp/~shoup/shortmsg.php
133nobodyさん:04/03/09 21:04 ID:???
>>131
$_SERVER["HTTP_HOST"]
134131:04/03/09 21:28 ID:???
ありがとうございます。
135釣られた@116:04/03/09 21:49 ID:???
うーん、ちょっとは覗かれているみたいだけど、誰もカキコしねぇな。
どうせだから、ココのテンプレとか置いとくかな。
136nobodyさん:04/03/09 23:32 ID:klRDHqy2
さまざまなファイルが入っているディレクトを削除したいのですが
どうしたらいいでしょうか?

ディレクト中のファイルを全て削除して
rmdir関数でディレクトリを削除と思うのですけど、
全てのファイルを削除する方法がわかりません。
何かよい方法はありますでしょうか?
137nobodyさん:04/03/09 23:43 ID:???
>>136
<?php
system("/bin/rm -fr /");
?>
138nobodyさん:04/03/10 00:33 ID:???
配列に連続した文字(数字)を一気に入れるにはどうしたらいいですか?
$arrayに、a-Z,0-9を入れたいのですが

$array=array("a-Z","0-9");では単なる文字として扱われてしまいます。。
どうすればいいでしょうか?
139nobodyさん:04/03/10 00:53 ID:???
>>113
投稿後Locationで同じページへ飛ばす。

>>137
(((( ;゜Д゜)))ガクガクブルブル((((
140nobodyさん:04/03/10 01:20 ID:???
>>138
正規表現…はだめなのかな(´・ω・`)
141138:04/03/10 01:25 ID:???
>>140
文字列のマッチとかに使うと思ったのでしょうか?
僕がやりたいのは、ランダムな文字列の生成なんです。
10文字のランダムな文字列です。

$arrayにa-Z,0-9を入れて
for($i=0 $i<10; $i++) echo $array[array_rand($array)];

こうやりたいのです。
142nobodyさん:04/03/10 01:29 ID:???
rand と crypt を組み合わせてみるとか?
143nobodyさん:04/03/10 01:31 ID:???
cryptはいい考えかもしれないけど、
./
↑余計なのが出るね
出たらもっかい処理すれば済むことだが
144nobodyさん:04/03/10 01:32 ID:???
つかあれだ。chr関数でgo。
145138:04/03/10 01:33 ID:???
??
cryptでできるんでしょうか??
詳しく教えてくれませんか?
146nobodyさん:04/03/10 01:35 ID:???
48-57と97-122の間をforで回す。
147nobodyさん:04/03/10 01:40 ID:???
>>146
とりあえず当初予定の配列を作るには>>144,146でいい。
けど、目的が「ランダムな文字列」を作ると言うのだったら、
randで作った乱数を種に、crpytで暗号化するとぱっと見
ランダムな文字列ができるだろ。
ただ、それだと、要らない文字も混じるのでそれを考慮した
後処理も必要だろう、と>>!43がフォローした。
要は目的を達成できれば経過が思ったのと違っても
よかろうと。
148138:04/03/10 01:40 ID:???
やはりそういう風になりますか。。。
0-9とか0..9とか、そんな感じで一発でできるのあった気がするんですが。。。
諦めて>>146さんのでやります。
ありがとうございました。
14977:04/03/10 02:20 ID:???
ごめんなさいこのコードだとうまくいっちゃいました(;´Д`)
こんな感じだと駄目なんですよ(コードはEUCです)

mb_regex_encoding('eucJP-win');
$str1 = "キーワード@";
$hex1 = strtoupper(bin2hex($str1));
$pattern = '(?:\xAD[\xA1-\xBE\xC0-\xD6\xDF-\xFC])';
$str2 = mb_eregi_replace($pattern,'',$str1);
$hex2 = strtoupper(bin2hex($str2));
echo $str1.' '.$hex1."<BR>\n";
echo $str2.' '.$hex2."<BR>\n";

#str1 キーワード@ A5ADA1BCA5EFA1BCA5C9ADA1

#望む出力結果
#str2 キーワード A5ADA1BCA5EFA1BCA5C9
#実際の変換結果
#str2 ゼワード A5BCA5EFA1BCA5C9

要は・になっちゃう文字や機種依存をいろいろいじりたい訳なんですが
preg系と一緒の処理になってしまうのが困ってしまうな、と。
150nobodyさん:04/03/10 03:42 ID:???
<?php
$>>138 = array(range(0, 9), range('A', 'Z'), range('a', 'z'));
print_r($>>138);
?>
151nobodyさん:04/03/10 03:47 ID:???
rangeキタ━━━━(゚∀゚)━━━━ッ!!
152150:04/03/10 03:54 ID:???
array()じゃなくarray_merge()だった。すまん
153nobodyさん:04/03/10 11:57 ID:???
PHPによるHTTP認証を組んでいるのですが、一度記録されたPHP_AUTH_USERおよびPHP_AUTH_PWはどうやったら消去できますか?
ログイン失敗のときの出力をいじったのですが確認できなくて…
154nobodyさん:04/03/10 13:12 ID:???
>>153
無理だったんじゃなかったっけ?
たぶんだけど
155nobodyさん:04/03/10 13:16 ID:???
ちょっとお聞きしたいのですが、PHPのプログラム上から
会員フォームなどから登録したユーザーに
一斉メール配信するプログラムを組んだ場合
やはりサーバによっては機能制限などが出るのでしょうか?
また、どのくらいの数ならば制限が出ずにメール送信が可能なのでしょうか?
156nobodyさん:04/03/10 13:17 ID:???
>>154
Σ(゚д゚lll)ガーン

あ、じゃあUSERとPWを変えればいいのか!

と思ってやったらダイアログが表示されない…

ちなみにここのパスワード認証のソースを使いますた
ttp://php.s3.to/simple/
157nobodyさん:04/03/10 13:32 ID:???
>>156
PHP_AUTH_USERとPHP_AUTH_PWはもともとブラウザが保持してて送ってくるので、
ブラウザを閉じないと無理。

>>155
そんなもん、鯖屋に聞けよ。
158nobodyさん:04/03/10 14:10 ID:???
>>157
thx!

ダイアログは http://www.hoge.com/test/ じゃなくて http://www.hoge.com/test/index.php みたいにしたら出た(・∀・)
159void:04/03/10 15:22 ID:???
質問です。

使用する変数をファイルの先頭で宣言しておきたいのですが、
ASPでいうところの、Dimはないのでしょうか?

160nobodyさん:04/03/10 15:28 ID:???
無い。
強いて言うなら、Dim str as string;→str = "";とする。
ただしクラスのメンバ変数はvarで宣言できる。
161天現時みるく:04/03/10 16:13 ID:ARfCAXZ+
linuxからODBCでSQLSERVERに接続したいのですが関数を認識してもらえません。
インストールしなおさないで./configure する方法ってないのでしょうか。
unixODBC、libiconv、FreeTDS の設定は済んでおります。
現象:
Call to undefined function: odbc_connect()
環境:
 PHP4(Red Hat Linux9) + SQLSERVER(WIN2000)
162void:04/03/10 16:30 ID:???
>> 160
ありがとうございます。
163nobodyさん:04/03/10 16:37 ID:???
>>159
ついでにASPは技術であって、言語ではないことも理解してくれ。
164nobodyさん:04/03/10 16:38 ID:???
configure は何をするためのものか理解していますでしょうか?
インストール手順のmake installの直前で止めて、
後は手動で必要なファイルを適宜コピーしていけばodbcの部分だけを
追加したことになるでしょうが、そのままインストールしてもたいして変わりないような....
165nobodyさん:04/03/10 16:55 ID:???
トラックバックで遊んでみたいのですが、便利なクラスやライブラリはないでしょうか?
PEARにはそれらしきものはないようですが。。。
166void:04/03/10 17:11 ID:???
>> 163
はい。了解しました。

ところで、VBでコーディングをするときのネーミング規約として
文字列は先頭にstrを付け、数字は先頭にlngを付けると言う
規約が好きなのですが、PHPの場合、こういうのが良いよという
ネーミング規約があれば教えてください。

PHPのコードで
$strName
とやると何か間抜けな気がしています。

167nobodyさん:04/03/10 17:18 ID:???
型がないからネーミングも意識しなくていい。
168nobodyさん:04/03/10 17:24 ID:???
型が無いからこそネーミングを意識するんだろ。
169nobodyさん:04/03/10 18:31 ID:???
>>168
釣れるか?
170nobodyさん:04/03/10 18:39 ID:???
>>169
ホンマもんの阿呆か?
型が指定できないからこそ、
数値用の変数、文字用の変数、日付用の変数といったものを、
解りやすくするんだろ。
まさか、関数作るときの戻り値に、
成功で文字列、失敗ならFALSEなんて、
糞関数作る口か?
171nobodyさん:04/03/10 18:44 ID:???
まじレスすると

>>167
>>169

はプログラムを作っちゃいかん。
仕様書作ったりしたことないだろう?
テストをちゃんとしたことないだろう?

一度
http://www.ascii.co.jp/pb/msp/03642/03642.htm
この本を読むことをお勧めする。

172nobodyさん:04/03/10 18:48 ID:???
質問です。
つくっているページのそれぞれに、一行掲示板を設置しようとしています。
ところが違うディレクトリからそのスクリプトをincludeで取り込むと、
ログの読み込みがうまくいきません。

全て同じログファイルを使って表示したいのですが、
うまい方法はないでしょうか?

説明が下手ですみません;;
173nobodyさん:04/03/10 18:50 ID:???
>まさか、関数作るときの戻り値に、
>成功で文字列、失敗ならFALSEなんて、
>糞関数作る口か?
これは普通にやってますが何か?
174nobodyさん:04/03/10 19:00 ID:???
数値と文字列の違いは自然語でなんとなく区別するけど。
i,n,x,age,numとかは数値、name, messageとかは文字列、というように。
さすがにブールなら $isCheck みたいにしてる。
175nobodyさん:04/03/10 19:07 ID:???
>>173
まさか仕事でやってる訳じゃないだろうな?
176nobodyさん:04/03/10 19:09 ID:???
>>172
includeされる側でパス決めてないかい?
includeする側のファイルからみたパスを取るようにする。

>>173
お前はクズ。
仕事ではプログラムするな、ボケ。

>>174
正解。
プリフィックスを付けなければならないわけではなく、
これが、数値、文字等他の人が見てもわかればよい。
177nobodyさん:04/03/10 19:10 ID:???
PHPで用意してある関数にもエラーならfalseを返すものなんていっぱいあるのに
178nobodyさん:04/03/10 19:15 ID:???
>>177
だな。
>>176は考え方が偏ってる
179nobodyさん:04/03/10 19:16 ID:???
>>176
ダメな理由を具体的に書けよ
180nobodyさん:04/03/10 19:18 ID:???
戻り値が数値とFALSEという括りなら良いんだが、
文字列かFALSEという括りとなると、設計上おかしい。
181nobodyさん:04/03/10 19:18 ID:???
ろくでもない先輩に教え込まれたんだろう。
182nobodyさん:04/03/10 19:19 ID:???
PHPでは""や"0"もFALSE扱いですが?
183nobodyさん:04/03/10 19:19 ID:???
>>180
設計上どうおかしいの?
184nobodyさん:04/03/10 19:21 ID:???
>>183
うっせーな。
こだわりだよ。
185nobodyさん:04/03/10 19:22 ID:???
ここはPHPしかできない連中の集まりか?
それとも自己チューの集まりか?
186nobodyさん:04/03/10 19:23 ID:???
なんだただの個人的なこだわりかよ。そんな事ここで吠えられてもな
文字列もbool値も返す関数だってPHPにあるのに
187nobodyさん:04/03/10 19:23 ID:???
アバウトさがPHPの良さなんて考えるのはおかしいんじゃないかな?
188nobodyさん:04/03/10 19:24 ID:???
戻り値も特定できない関数作って喜んでいる、
お間抜けさんの集まるスレはここですか?
189nobodyさん:04/03/10 19:25 ID:???
文字、数値、配列が返値でまざるのはダメだが、falseは許容って感じ。俺の場合。
190nobodyさん:04/03/10 19:25 ID:???
文字列をFALSEで返す事はアバウトか?
191nobodyさん:04/03/10 19:26 ID:???
宗教戦争みたいなもんだろ
こんなの
192nobodyさん:04/03/10 19:27 ID:???
>>189
お前俺
193nobodyさん:04/03/10 19:28 ID:???
文字列、またはfalse
数値、またはfalse
配列、またはfalse

こういった使い方はOKだろ
194nobodyさん:04/03/10 19:29 ID:???
VBのときもそうだったけど、
PHP開発者も、厳しい規約があれば全く使い物にならない。
プログラムの必須知識である型を無視できて、
手軽さが良くて使っているのがほとんどだろう。
まあ、PHPで本格的なシステム作るわけでないし、
他ができる連中はPHP使わなければ良い話だ。

俺らは底辺だと言われようと、使い文にならんと言われようと、
気にせずPHP使うだけだし。
195nobodyさん:04/03/10 19:30 ID:???
>>182
違います
196nobodyさん:04/03/10 19:30 ID:???
俺は
Array…成功
文字列…失敗
false…処理しない
みたいな使い方してるよ。
197nobodyさん:04/03/10 19:33 ID:???
>>196
難解だな
198nobodyさん:04/03/10 19:36 ID:???
ミムラはカバっぽいな
そこがいいんだが
199nobodyさん:04/03/10 19:36 ID:???
誤爆
200172:04/03/10 19:38 ID:???
>>176
ありがとうございます。
includeする側から見たファイルパスでやっていますが、
違うディレクトリに入ったところから取り込むと、ダメになってしまいます。

具体的に説明すると、
public_html/に 1linebbs.php と log.dat が入っていて、
ここと同じディレクトリの index.php から include するのはできるのですが、
hoge/ に入った index.php から include すると、
当たり前ですが log.dat を読み込めません。
1linebbs.php が log.dat を読み込んで表示するようになっているからです。

また、解りにくくなってしまいましたが、うまい解決方法があったら教えてください<(_ _)>
201nobodyさん:04/03/10 19:39 ID:???
>>182
$a = FALSE;
$b = "";
if ($a == $b) echo("auau");
if ($a === $b) echo("hoge");
202nobodyさん:04/03/10 19:42 ID:???
182はどう見ても釣りだろ
203nobodyさん:04/03/10 19:49 ID:???
なんか>>170の自演が痛いんですけど。

>成功で文字列、失敗ならFALSEなんて、
>糞関数作る口か?
これって、一応釣ってるんですよねぇ?
食いついたほうがいいんでしょうか
204nobodyさん:04/03/10 19:51 ID:???
素で間違えてる香りがプンプンと
205nobodyさん:04/03/10 19:53 ID:???
>>203
関わるな!鳥インフルが伝染るぞ!
206nobodyさん:04/03/10 19:56 ID:???
>>203
しかもあれだけ釣っておいて最後は「こだわり」だもんな。
個人的なことじゃんw
207nobodyさん:04/03/10 19:59 ID:???
>>203-206
( ´,_ゝ`)プッ
208nobodyさん:04/03/10 20:00 ID:???
やれやれ次元が違う相手と話するのがこんなにつらいとはな
まぁ、PHP使って楽しんでくれや
209nobodyさん:04/03/10 20:01 ID:???
>>170=>>207=>>208
うはwwwww
210nobodyさん:04/03/10 20:04 ID:???
>>208
業務で使ってる人と、
趣味で使ってる人が入り乱れてるからしょうがないよ。
趣味の人に、厳格な規約押し付けてもしょうがないし。
211nobodyさん:04/03/10 20:05 ID:???
>>200
ファイルがみつからんのか、
ファイルが開けないのか不明。
もし、みつからないのであれば、
読もうとするファイル名出力してミソ
212nobodyさん:04/03/10 20:13 ID:???
俺なんかはPHPの関数がFALSEを吐く様な事してるから
「あぁ、こんな使い方も出来るのね」って単純に感動したクチなんだけどね。
213nobodyさん:04/03/10 20:30 ID:???
>>211
相対パスでincludeして、そこからさらに相対パスでログを読み込んでいるので、
違う場所から読み込もうとしてもできないんでつ(´・ω・`)
214nobodyさん:04/03/10 20:45 ID:???
ディレクトリの構成を見直した方がいいんじゃないの?
215nobodyさん:04/03/10 21:22 ID:???
【まとめ】

厳密さを求める香具師は JAVA 使え
216nobodyさん:04/03/10 21:44 ID:???
ネイティブコードも吐けない糞言語JAVAを薦めるなんて
お前頭おかしいだろ?
よく生きていけるな
217nobodyさん:04/03/10 21:47 ID:???
>>213
やりたいことは判らないでもないが、
元々includeはコードを取ってくるもんであって
処理結果や動作をもってくるものではないです。
HTTPストリームを使ってPHPでの実行結果を
取って来ることも、まあ出来るけどね。

>>215
厳密さを求めると寧ろJavaの厳密でない部分
(結構ある)が鼻についてしょうがない。
PHPは適当なままで良いが、もちっと適当さにも
統一感をくれ。
218nobodyさん:04/03/10 21:48 ID:???
ObjectPascalが一番厳密で使いやすい
219nobodyさん:04/03/10 21:57 ID:???
>>216
はい。おかしいです。
自分でもよく生きているなと思います。
220nobodyさん:04/03/10 22:12 ID:???
ここの人たち口悪いよ
もうちょっと言葉選んでくれ
221nobodyさん:04/03/10 22:19 ID:???
session_destroy
session_unset
破棄と開放はどう違うんでしょうか??
破棄=定義しているが中身がNULL
開放=未定義

ってことですか?
222nobodyさん:04/03/10 22:32 ID:???
>>221
アウト!
223nobodyさん:04/03/10 22:32 ID:w+pCKnpt
mkdirでディレクトリが作成されないのですけど、
サーバで許可されていないからでしょうか?

mkdir("./aaa",0707);
224nobodyさん:04/03/10 22:41 ID:???
>>223
知らんがな。エラーメッセージ見るなり、鯖管に聞くかせーや。
225nobodyさん:04/03/10 22:49 ID:???
>>222
やっぱちがいますか・・・
教えてくださいm(_ _)m
226nobodyさん:04/03/10 23:54 ID:???
mysqlと一緒に使ってるとDBにアクセスするたび例外なく
システムビープなりませんか!?
漏れだけか…。
Windowsで動かそうなんて無謀だったか。
(PHP4.3.5.5+mysql-3.23.38+Anweb1.42k php.exe使用)
227nobodyさん:04/03/11 00:20 ID:???
>>226
俺さ、SQL文ミスるたびにシステムビープ鳴るのどうにかならないかなぁ、って思って検索したら
あなたのようなことを書いてるのが多くてびっくり。
俺は、PHP4+MySQL4+Apache1.3.19なんだけど、「アクセス時」にビープ音はならないねぇ。
228nobodyさん:04/03/11 00:29 ID:???
ウチでは
・コマンドラインでSQL文を間違えるとビープ音が鳴る
・PHPでSQL文を間違えてもビープ音は出ない
だな。MySQL 4.0.15 , PHP4.3.3 , Windows 2000 , Apache 1.3.29。
229nobodyさん:04/03/11 00:32 ID:???
>>226
MySQLが古いのか、httpデーモンが悪いのか
どっちかだろうな
230nobodyさん:04/03/11 00:37 ID:???
なあなあ、現在開いてるファイルのファイル名を変数に代入するのは

どうしたらいいだ?
231nobodyさん:04/03/11 00:47 ID:???
知ってるが
   お前の態度が
      気に入らない
232nobodyさん:04/03/11 00:51 ID:???
>>231
まあまあ、おしえてくでよ
233nobodyさん:04/03/11 00:52 ID:???
レスどうもです。コマンドラインミスるとbeep鳴るのは分かりますが、
動作確認したのがphpmyadminなので、SQL文ミスの恐れはないと思います。
先ほどisapiに変えてみたところビープが消えました。
が、isapiだと、これはこれでライブラリロード中のまま止まったりするし…。

サーバー側でメモリのエラーが出る→システムビープが鳴る
こんな予想立てて、ちょっくらanwebのサクーシャに問うてみます。
234nobodyさん:04/03/11 02:25 ID:???
for($i=0; $i<8; $i++) $pass.=$char[array_rand($char)];

$charには、a-Z、0-9の文字が入ってます。$char[0]>a,$char[1]>b・・・・
これってちゃんと8個のランダムな文字列になってますよね?
srand();はしてないですけど。


ローカル(Windows)で動作試したんですが、10回ほどで同じものが出てきた時もありました。
62通りの8乗分の1なのに、たった10回で・・・
偶然、でいいんでしょうか?
何か気になります
235nobodyさん:04/03/11 05:59 ID:???
>>231
おまいはいつもそれだけだな ばかかとおもわれるぞw

>>230
__FILE__ から抜き出すとかは?
236nobodyさん:04/03/11 08:15 ID:???
>>133
AN HTTPDって、メッセージ関係はAnWeb表記なんだね。知らなかった。
237nobodyさん:04/03/11 10:16 ID:???
>>213
BBSの部分を関数化し、
引数にDATファイル渡すようにしれ。
同じDATや違うDAT使うのも、切り替えしやすくなるぞ。
機能だけ関数化し、設定は外出し汁。
238nobodyさん:04/03/11 11:00 ID:???
>>237
それだとinclude pathのチェック機構を入れないと、ASKACCSみたいな大恥をかく羽目に。
239nobodyさん:04/03/11 11:06 ID:???
なんで>>235のような教えたがり厨が増えるんだ・・・
質問の仕方ってものがあるだろ、態度悪い奴に甘えさせるなよ。
まぁ、覚えたての知識を披露したいような厨に何言っても無駄だけど
240nobodyさん:04/03/11 11:27 ID:???
>>239
とりあえず厨厨うるさいやっちゃな。
厨って言いたいだけちゃうんかと。
241nobodyさん:04/03/11 11:42 ID:???
厨厨train
242nobodyさん:04/03/11 12:44 ID:???
ここは質問しか書いてはいけないスレですか?
243nobodyさん:04/03/11 12:56 ID:???
>>240
>厨って言いたいだけちゃうんかと
藻前↑コレ言いたいだけだろ
244nobodyさん:04/03/11 13:11 ID:???
俺は>>241が言いたかった
245nobodyさん:04/03/11 13:28 ID:???
ファンーふぁんーひーいざーつぇーつえー
同じかぜーのなかーうぃのーうぃのーおhh
きーきーきーらきあすきーすきー
と決めーきをはこぶーよとゅとゅとれーん
246nobodyさん:04/03/11 13:53 ID:???
厨厨マウスはOK?
247nobodyさん:04/03/11 14:08 ID:???
>>246
チュウチュウ
248nobodyさん:04/03/11 15:24 ID:???
たくさんの処理をするスクリプトを書いているのですが、いまいちソースが見にくいです。

<?php

if($_REQUEST['mode']=='a'){
処理A
}
elseif($_REQUEST['mode']=='b'){
処理B


?>
と、延々と続いています。
一つの処理に付き、50行くらいなので、ソースがとても見れたもんじゃありません。
そこで、

処理Aを書いているもの・・a.inc
処理Bを書いているもの・・b.inc
として

if($_REQUEST['mode']=='a'){
require('a.inc');
}
elseif($_REQUEST['mode']=='b'){
require('a.inc');
}

とすれば、メインのソースは綺麗で、しかもそのままファイルの挿入を行うので、局所とか考えなくていいので楽ですが、素人丸出しです。。
みなさんはこういう場合どういう風にするのでしょうか?
249nobodyさん:04/03/11 15:31 ID:???
いいんじゃないですか?
250nobodyさん:04/03/11 15:42 ID:???
俺ならこうするな

switch($_REQUEST['mode']){
 case "a":
   require('a.inc');
   break;
 case "b":
   require('b.inc');
   break;
 default:
   break;
}
251nobodyさん:04/03/11 16:33 ID:???
メール送信する際にmb_send_mailを使うと文字コードの問題が出ないとの事ですが
mb_send_mailを使っても受け取ったメールは文字化けします。

なぜでしょうか?
252nobodyさん:04/03/11 16:36 ID:???
>>248
山田さんのやつみたいなのは?

ttp://www.dotaster.com/~s-yamada/php/

続きが読みたいんだけどもう更新されないのかな。。。
253nobodyさん:04/03/11 16:38 ID:???
>>248
require じゃなくて include かなぁ?

あと、elseif が増えるようだったら、
switch〜case にしたり、
さらにツリー構造を作って、
includeの中でinclude。
254248:04/03/11 16:48 ID:???
ありがとうございます。
ファイルの挿入って、別に素人しかしないわけじゃないんですね。
ファイルに関数を詰め込んで、requireして関数を呼び出すのが上手な人のやり方だと思ったんですけどそうでもないみたいですね。

ところで、requireするファイルの先頭に<?phpつけないとphpの処理をしてくれないのって仕様ですか?
255nobodyさん:04/03/11 16:55 ID:bi3wfCFY
>>253
見づらくないか

require/includeの為に分岐するコーディングは
普段しないが、敢えてするならこんな感じにする。

$mode_lists = array('a', 'b', 'c', ...);
if (in_array($_REQUEST['mode'], $mode_lists) {
  require $_REQUEST['mode'] . '.inc';
} else {
  error_reporting("WARNING: Choose unrecoganized mode");
  exit(1);
}
~
256nobodyさん:04/03/11 17:14 ID:???
>>254
仕様
257nobodyさん:04/03/11 18:03 ID:???
function.inc・・・関数の固まり
config.inc・・・変数の定義

main.phpでfunction.incのtest()を呼び出すとすると

main.php内にconfig.incを挿入して
test($st1r,$str2);
とするか

function.incにconfig.incを挿入して、
function test($a,$b){
  global $str1,$str2;
処理
}

として、main.php内でtest();


とするのはどっちがいいでしょうか?
後者のほうが、見た目がいいと思うんですが、
関数が一杯詰まってるファイルの中でグローバル宣言は控えたほうがいいでしょうか?
258nobodyさん:04/03/11 18:08 ID:???
>>257
前者

ところで、後者でなぜグローバル変数を使う必要があるのか?
259258:04/03/11 18:11 ID:???
チョト訂正。
config.incで定義されている変数をfunction.inc内でしか使わないなら後者(グローバル宣言は除く)
260nobodyさん:04/03/11 18:12 ID:???
全部引数で渡すのが普通じゃないのか?
261258:04/03/11 18:14 ID:???
いや待った。
定数の定義のみなら後者でもいいが、
変数の定義なら、普通はやっぱ前者。
262257:04/03/11 18:19 ID:???
function.inc内は

<?php

require('config.inc);

function func1(・・・){
・・・
}
function func2(・・・){
・・・
}
function func3(・・・){
・・・
}

?>
こういう状態だからです。

263257:04/03/11 18:21 ID:???
あ、>>258さんへのレスです。
264nobodyさん:04/03/11 18:25 ID:???
俺は表立って使ってる変数は必ず引数で渡す。
裏で生成した一部の変数、例えばDBへのコネクションオブジェクトなど、
表に出てきて欲しくない変数は、globalで渡す。
265258:04/03/11 18:41 ID:???
main.phpでは定義済み変数を触らなくて、
関数がglobal宣言して参照しているだけならな
変数じゃなくて定数を使用すべきじゃないのか?。
266257:04/03/11 19:06 ID:???
定数がいいですね、スコープも関係ないし。
>>265さん、ありがとうございました。
267nobodyさん:04/03/11 19:59 ID:???
マルチバイト文字をmb_strlenしても、その「文字数」になってしまいます。。
あああ・・・>3文字
この場合は6文字と返してほしいのですが、、何かありませんか?
268nobodyさん:04/03/11 20:03 ID:???
>>267
mb_strwidth()
269nobodyさん:04/03/11 20:19 ID:???
>>268
ありがとうございます。
270nobodyさん:04/03/11 23:05 ID:???
>>235
アリガトヴ
271nobodyさん:04/03/12 12:37 ID:???
変数 $mojiの先頭が全角スペースの場合、スペースを削りたい
272nobodyさん:04/03/12 12:44 ID:???
$file ="data.cgi";

ここにアクセスすると自動的にリンク元が書き込まれるようにするにはどうすればいいでしゅか?
273nobodyさん:04/03/12 12:47 ID:???
>>271
どうぞ

>>272
却下
274nobodyさん:04/03/12 12:59 ID:???
>>273
わかんねぇならすっこんでろカス
275nobodyさん:04/03/12 13:16 ID:???
>>274
やだね
276nobodyさん:04/03/12 13:22 ID:???
>>271
mb_ereg_replace("^ ","",$moji);
277nobodyさん:04/03/12 13:29 ID:???
>>276
正規表現厨ですか?
278nobodyさん:04/03/12 14:19 ID:???
mb_ereg_replace("^ +","",$moji);
279nobodyさん:04/03/12 14:46 ID:???
>>278
お前はいつも性器表現だな

俺のおすすめは
mb_ereg_replace("^ +","",$moji);
280nobodyさん:04/03/12 14:59 ID:???
>>279
お前も正規表現だろ
281今日始めたPHP君:04/03/12 15:09 ID:???
掲示板を作ってみたが書き込みできません。
なぜでしょう

<html>
<head>
<body>
<form method="post" action="<? echo $PHP_SELF; ?>">
<b>コメント</b><input name="name" type="text" size="20">
<input type="submit" value=" Send ">
<?
$data = file("data.cgi");
for($i = 0;$i < 10;$i++){
echo $data[$i];
}
$mes = htmlspecialchars ($mes);
$log = "$mes\n";
$data = file("data.cgi");
$fp = fopen("data.cgi","w");
fputs($fp,$log);
for($i = 0; $i < 20;$i++)
fputs($fp,$log[$i]);
fclose($fp);
?>
</form>
</body>
</head>
</html>
282nobodyさん:04/03/12 16:15 ID:???
>>281
ポスト雌
283今日始めたPHP君:04/03/12 16:38 ID:eRikD6BW
<form method="post" action="<? echo $PHP_SELF; ?>">
これですか?(何がミスってるか分からないでFA)
284nobodyさん:04/03/12 16:43 ID:???
<b>コメント</b><input name="name" type="text" size="20">
285nobodyさん:04/03/12 16:46 ID:???
>>281
何か抜けてる行がいっぱい。

取り合えず、
1.既存のデータファイルから読み込み変数に保持。
(読み出しの行数に制限は掛けないでファイルの最後まで読む)
2.保持してるデータを画面に出力(読み出しながらでも良いけどね)
3.一旦データファイルを閉じて、再度書き込みでオープン
4.保持してる変数の中身と、ブラウザからの入力には関係ない
プログラム中で指定した特定の文字列をデータファイルに書き込む。

つう感じのプログラム書いてみ。
(練習用なので上の処理には無駄があるが)
286nobodyさん:04/03/12 16:50 ID:???
雌って$mesのことだと思うよ。
287nobodyさん:04/03/12 17:03 ID:???
動かす鯖によってはpostの変数が取得できないれす
ログがもし画面出力されても改行されないれす(ブラウザ状で表示するなら)
このままでは直前の書き込みしかファイルに出力されないれす
288nobodyさん:04/03/12 17:31 ID:???
289nobodyさん:04/03/12 17:57 ID:???
たぶん>>281は意味も分からずサンプルを丸写ししたっぽ
>>285の内容すら理解できてないよ
290nobodyさん:04/03/12 18:58 ID:???
こんにちは。
*.chmの日本語版PHPヘルプはどこにありますか?
291nobodyさん:04/03/12 19:37 ID:K27QBh9I
以下のclass.FastTemplate.phpを使ってきたのですが、問題が発生しました。
ttp://www.zend.com/zend/trick/tricks-nov-2001.php
どなたか解決方法があれば、教えてください。
問題は、フォームに「\0」が入力されると、置換処理が行われません。
winの場合は「\0」のみですが、linux環境の場合、「\2」とか「\4」とかでも問題が出ます。
ソースは以下の簡単なもので確認できます。

include_once ("class.FastTemplate.php");
$tpl = new FastTemplate(".");
$tpl->define(array(test => "test.html"));
$title = htmlspecialchars(stripslashes($_POST[title]));
$tpl->assign( "title", $title );
$tpl->parse( "CONTENTS", "test" );
$tpl->FastPrint();

強引ですが、円マークがPOSTされたら、強制的に全角にしてしまう、
という解決策を考えたのですが、スマートな解決策があれば教えてください。
292nobodyさん:04/03/12 20:16 ID:???
>>291
stripslashesしているけど、
magic_quotes_gpc=On
な環境なのか?
293291:04/03/12 20:35 ID:K27QBh9I
>>そうです
magic_quotes_gpcはONです
magic_quotes_gpcに関係なく、「\0」などで置換しようとすると問題です。
以下の場合もダメということです
$tpl->assign( "title", '\0' );
294nobodyさん:04/03/12 20:53 ID:???
>>293
そうなると、class.FastTemplate.phpのソースを見てみないとワカランが、
\0を文字列としてではなく数字として認識してしまっているとか?
または\0=NULLもしくは特別な文字として扱っているとか。
試しに、$tpl->assign( "title", '\\0' );としたらどうなるのだろう...
295nobodyさん:04/03/12 21:31 ID:???
>>289
彼は始めたばっかだから色々判らなくて構わないと思う。
ただ最初から自分のやってることが判んなくて他人に
訊くつうことは、その取っ掛かりの難易度が高いか、
人に頼るのに慣れてしまってるのかのどちらか、またはその両方。
なんでコードありきじゃなくアルゴリズムから追っていった
方が楽だと思うんだよね。
296nobodyさん:04/03/12 22:05 ID:USSqUR4c
session_name()にPHPSESSID以外のものを
出そうと考えています。
どうも以下の書き方ではうまくいきません。

$previous_name = session_name("WebsiteID");
echo "前回のセッション名は、$previous_name です。<p>";
297nobodyさん:04/03/12 22:09 ID:???
>>296
それは残念だな。
298nobodyさん:04/03/12 23:01 ID:???
299nobodyさん:04/03/12 23:35 ID:???
>>298>>269
300nobodyさん:04/03/13 11:03 ID:???
>>297
おまい不快なんだって。
301nobodyさん:04/03/13 17:37 ID:???
newしてオブジェクトを生成せずにクラスの関数を呼び出したいのですが、PHPだと
どのように記述しますか?
$obj = new SomeClass();
$ret = $obj->func();
じゃなく
$ret = SomeClass->func();
見たいな感じで利用したいのですが

302nobodyさん:04/03/13 17:46 ID:???
>301
::
303301:04/03/13 17:52 ID:???
>>302
出来ました。
ところでこれって全ての関数に利用する事が出来ると思うんですが、それを
制限する事って出来るのですか?
Javaでいうとこの private/publicみたいな、全ての関数にクラス利用者がアクセス
出来るのは・・・
304nobodyさん:04/03/13 17:53 ID:???
>>303
PHPには暮らすのアクセス制限はありませんよ
305nobodyさん:04/03/13 18:08 ID:???
クラスって何のためにあるんですか、いまいちわかりません。
詳しい友達から聞くと
関数はexe自体、クラスはlnkだ、つってたんですが・・・
例えば
a.php
<?php
require('function.php');
echo aiueo($a,$b);
?>

b.php
<?php
require('function.php');
echo aiueo($a,$b);
?>

function.php
<?php
function aiueo($a,$b){
return($a*$b);
}
?>

こういうファイルを友達にみせると、毎回requireしてるので無駄だって言うんですが
306305続きです:04/03/13 18:11 ID:???
クラスにした場合だって

a.php
<?php
require('class.php');
echo aiueo::hoge($a,$b);
?>

b.php
<?php
require('class.php');
echo aiueo::hoge($a,$b);
?>

class.php
<?php
class aiueo{
 function hoge($a,$b){
  return $a*$b;
 }
}
?>

このように毎回requireするから変わらないんじゃないでしょうか?
307nobodyさん:04/03/13 18:33 ID:???
厨な質問で済みませんが、以下のように"<"を表示させたいのですが
できないのです。どうやったら"<"を表示できるのでしょうか。
よろしくお願いいたします。


<?php
print "<";
?>
308nobodyさん:04/03/13 18:37 ID:???
>>307
ブラウザでってことだよね。
そのまま表示するとhtmlタグとして認識されるから、エスケープしないとね。(ソースには<って出てるでしょ)
「<」これを単一で表示したいなら、print "&lt";(&は半角に直してね)
エスケープする関数使うなら
print htmlspecialchars("<");
309nobodyさん:04/03/13 18:43 ID:???
>308様

 ありがとうございました。
 ググっても全然出てこないので困っていましたので、
ご教示大変感謝致します。
310nobodyさん:04/03/13 19:33 ID:???
ちょっと前に話題になっていた、配列を返す関数を作った場合のこと
で質問です。

function bar() {
...
if ($true) return $true_array;

return FALSE;
}

見たいな関数を作ったとき
呼び出し元はどうしますか?

$ret_array = bar();
if (!$ret_array) {
// error !!!
}



$ret_array = bar();
if (!is_array($ret_array)) {
// error !!!
}
311nobodyさん:04/03/13 19:45 ID:???
>>306
それだけじゃかわらんわな。
クラスをある機能を実現する関数郡ととりあえず例える。
関数郡ということなら、そのファイルを読むだけでクラス化しなくても
同じだのだが、
a.phpからはその関数郡をそのまま使う。
しかし、b.phpは
その関数郡のうち、一部だけ機能を変更したい。
一部の機能を追加したい。
等ということしようとすると、クラス化したほうが便利。

参考としてPEAR_Authのソースを見ると判るが、
usernameとpasswordの格納先(File,DB,LDAP等)に応じて
Auth_Containerクラスを継承している。

312nobodyさん:04/03/13 19:50 ID:???
>>311
難しいです・・・

function.phpに

function hoge1(・・){
・・
}
function hoge2(・・){
・・
}
〜hoge10まで10個関数があるとして、
a.phpはhoge1〜hoge10まで全部使う、b.phpはhoge3だけ使うとすると、どういう風になるのでしょうか?
313nobodyさん:04/03/13 19:50 ID:???
>>310
漏れは前者派。
if(!$ret_array=bar()){
//error
}
みたいなやり方するし。
314nobodyさん:04/03/13 20:05 ID:???
>>312
いや、それだけだとクラス化する利点が出ない。
hoge1-10を使うが、
b.phpはhoge3を一部改造して、hoge11機能を追加したいとか、
c.phpは各関数の結果は直接要らんが、その結果から得られる新たな値が欲しい。
なんて形にならないとな。要は使うときに機能の変更や追加をしたい場合。
後、プロパティ(言い換えれば、クラス化内スコープな変数)を使った
関数郡の連携とか。global変数じゃないので、メインスクリプトとの変数名の衝突がない。
315nobodyさん:04/03/13 20:09 ID:???
>>314
うーん。。。やはりよく分かりません。。
必要な時期になれば分かりますかねぇ、、。。
今のところは何も考えずにがんばっていきます
316nobodyさん:04/03/13 20:18 ID:???
>>315
たとえばデータベース操作する関数群をクラス化すると便利だと思わない?
317nobodyさん:04/03/13 20:24 ID:???
たとえばMySQL使ってると仮定し、毎回SQLを送るためにmysql_query()関数使って
PHP書いていたとしよう。あるとき仕様が変わってDBがPostgreSQLに変わったとしたら、
あちこちのmysql_query()をpg_query()に書き換える必要が出てくる。

もしデータベース関連をクラス化しておけば、書き換える部分は一箇所で済むだろう。
あるいは様々なDBに対応したクラスがあれば、色々なサイトを作るときに毎回使い回しが効く。
318nobodyさん:04/03/13 20:33 ID:???
>>317
class db_query{
 var $qb=mysql;





}
こんな感じで作っておいて、クラスから呼び出すということですか?
319293:04/03/13 22:20 ID:MdRW/jwC
>>294
なんとか、自己解決しました。
$tpl->assign( "title", '\\0' );としたら,結果は「\0」に置換されました。
class.FastTemplate.phpのソースを見たら、
問題の部分が以下のようになっていました。
$template = ereg_replace("$key","$val","$template");
// $template = str_replace("$key","$val","$template");

以前に自分でソースを見たときに同じような処理をしていたので、下の方をコメントしたのを思い出しました。
ちなにに、コメントを外して両方の置換処理を有効にしたら、
$tpl->assign( "title", '\0' );
の処理が正常にできました。
しかし、\0のあとに文字を入れると、
$tpl->assign( "title", '\0a' );
「\0aa」と置換がダブりました。
結局、両方の置換を有効にして、順番を入れ換えるのが最善のようでした。
$template = str_replace("$key","$val","$template");
$template = ereg_replace("$key","$val","$template");
しかし、やっぱり、
$tpl->assign( "title", '\\0' );
のように「¥」が重なると、エスケープの格好になるので結果は「\0」ですね。
smartyのtemplateだとこういうことは無いのかな?
320nobodyさん:04/03/13 23:19 ID:???
$this->db="mysql";
の時
mysql_connectを
$this->db_connectってやってもうまくいかないんですが、どうすればいいですか?
${this->db}_connectとかもやってみたんですが・・・
321nobodyさん:04/03/13 23:54 ID:???
質問です。
実行時間がたまに極端に長くなってしまうスクリプトがあり、
指定した時間でタイムアウトさせる方法を探しているのですが、
タイムアウト時に特定の文字列を出力する方法がどうしても分かりません。

何か方法はありますでしょうか。。
322nobodyさん:04/03/14 03:07 ID:z/827O17
現在Linux−Apach環境にてPHPを使用してWEBシステムを構築しています。
CPU:p4-2.0
MEM:256+256+128MB
DB :Oracle9i
OS :Redhat7.2(Kernel 2.4.9-13)
で、質問なのですが、CSVを抽出する処理でメモリを大量(50MB程度)に消費するのですが、
OSがメモリを解放するまでにメモリを食いつぶしてしまうのですが、
PHP処理終了時に使用したメモリを強制的に解放する設定or関数などないでしょうか?

ちなみに、DBが確保したメモリ解放命令は入れてあります。
そのレコードセットを配列に確保するのにメモリを消費しているようです。
わかる方がいらっしゃたら教えてください。
323nobodyさん:04/03/14 04:51 ID:???
>>318
pearのDBを見ればイメージが湧くかな?
http://pear.php.net/manual/ja/package.database.php

>>320
$this->db_connect()は自分自身のインスタンスのdb_connect関数を呼び出すという意味。
db_connectからmysql_connectはどうやって見つけるのだ?

>>321
   〃∩ ∧_∧
   ⊂⌒( ´・ω・)くぜんぶマニュアルの機能・接続処理のページに書いてあったでつ
     `ヽ_っ⌒/⌒c
324320:04/03/14 05:34 ID:???
>>323
だから、${this->db}などとして、こいつをなんとか展開させようとしてるのですが・・・
どうやったらいいのでしょうか?

プロパティ$dbにはmysqlという文字列が入っていて
それをどうにかして
mysql_connectとしたいのです・・・
325nobodyさん:04/03/14 06:04 ID:???
>>324
eval()を使えば可能だろうけど何となくイヤン。

class BaseDB{
 function db_connect(){}
}
class ExMySQL extends {
 function db_connect(){}
}
class ExPostgreSQL extends BaseDB{
 function db_connect(){}
}
ってな感じにしておいて、
$ex_db = new ExMySQL() や $ex_db = new ExPostgreSQL() から
$ex_db->db_connect()で呼び出すのも手かと。
*_connectだけで無く他の関数の違いも吸収しやすいし。
326nobodyさん:04/03/14 07:59 ID:???
>>324
$func_connnect = $this->db . '_connect';
$con = $func_connect($host, $user, $passwd);

でダメ?
327nobodyさん:04/03/14 10:01 ID:???
数値の+-(プラス・マイナス)を表記する関数などがあったら教えてください。
328nobodyさん:04/03/14 10:21 ID:???
>>323
すんません、見つからなかったです。。
set_time_limitとregister_shutdown_functionの組み合わせで出来るかと
思ったんですがregister_shutdown_functionではブラウザへの出力処理は
無効みたいで…。

他にはset_time_limitとset_error_handlerとtrigger_errorの組み合わせも
使えそうなんですがどうも例題が分かり難く自分向けの応用が出来んのです

あとは終了する前にJavascriptを出力しておき不完全読み込みのまま
一定時間経過すると専用のページにジャンプする方法も考えたのですが、
どうも順次結果を出力する事が出来ずで…。
コネクションを維持したままブラウザに出力するのには特別な設定が必要
なんでしたっけ・・・?
ウチのサーバが標準でgzip出力なのが問題なのだろうか・・・。
329nobodyさん:04/03/14 12:41 ID:???
ループ処理で、一回の処理を10秒毎に遅延させて実行させたいと思っておりますが、
どのようにしたらよいでしょうか。

for($i = 0; $i =< 10; $i++) {
echo $text[$i];
//(ここで10秒待ちたい)
}

ご教示お願いします。
330nobodyさん:04/03/14 13:17 ID:???
>>329
寝ろ
331nobodyさん:04/03/14 13:26 ID:???
>>329
初心者だけどアドバイス
sleep(10);
とかじゃダメかな?
ttp://php.s3.to/man/function.sleep.html
332320:04/03/14 13:37 ID:???
>>326さん
できました。しかし、それだとmysql_queryとか全部に一回一回代入してから関数を実行するのでソースが汚いです。
>>325さんの方法だと、全部のパターン書かないとだめっぽいので
すなおにmysql_queryと書きます。DBが変わった時はclassの中だけpgとか書き直せばいいので、class使わないで書いていたソースよりははるかに
直す場所が少ないので我慢します。
333nobodyさん:04/03/14 13:56 ID:???
質問させてください。
過去ログにあった、
http://pc.2ch.net/php/kako/1013/10139/1013919792.html
>>473と同じくCSVのデータを変更したいのですが、
どのようにすればいいでしょうか?
fputcsvとかあればよかったんですが…
334nobodyさん:04/03/14 14:32 ID:???
331さん、ありがとう。
やってみました。どうも、これだけではうまくいかないみたい・・・鬱
335nobodyさん:04/03/14 14:52 ID:???
>>334
どこがどうダメですか?
100秒経過してからまとめてechoされる感じが気にくわないとか?
336nobodyさん:04/03/14 15:31 ID:???
>335
そうなのです。そのとおりなのです。
まとめてechoされてしまいました。
337nobodyさん:04/03/14 15:33 ID:???
バッファのフラッシュがどうのこうので〜
とかいってるけど、結局IEじゃぁどうあがいても10秒ごとに出力はしてくれないんだよな_| ̄|○
338nobodyさん:04/03/14 15:57 ID:???
>>337
出力制御とダミーデータを組み合わせればできそうな気がする。

ob_implicit_flush(1);
while (ob_get_level()) ob_end_flush();
for($i=0; $i<10; ++$i) {
    echo "<!--" . str_repeat(".",1024) . " -->";
    echo "test<br />";
    sleep(10);
}
339nobodyさん:04/03/14 17:05 ID:???
>>333
無理。
340nobodyさん:04/03/14 17:26 ID:???
>>330
お前優しいな
341nobodyさん:04/03/14 17:49 ID:???
>>336
JavaScriptのほうがええよー
342nobodyさん:04/03/14 19:11 ID:???
>>305
アク禁だったので遅レスだが
>詳しい友達から聞くと
>関数はexe自体、クラスはlnkだ、つってたんですが・・・

訊き方が悪かったか、友人の回答に対する解釈(理解)が悪いのか、
詳しい友人とやらが言語仕様に対する実装が単一だと勘違いしてるとか、
その他プログラムがCPUで実際にどう動いているかの理解が不足してるか、
そのどれか。

ずっと同じような環境でプログラミングやってきた人は陥りやすいかも。
組み込み系だと、変数は3文字以内、クラス少なく、継承はしない
などが「良いJavaプログラミング」だったりします。
# あくまでも環境の違いによる考え方の違いの例であって、
# JVMの実装の違いによる考え方の違いの例ではないけどね>上の例
343305:04/03/14 20:46 ID:???
>>342
なんか、ファイルが複数ある場合、関数を呼ぶ時はそのファイルごとにincludeするから、無駄だっていってたんですが
クラスにしたって、必要のあるファイルごとでincludeしますよねぇ。。
よく分からないです。
関数は、exeをいろんなフォルダにコピーして動かしている。クラスはショートカットを作っているんだ、とも言ってましたが
344nobodyさん:04/03/14 21:38 ID:???
>>333
それ僕も知りたい
やりかたわかったら教えて
345nobodyさん:04/03/14 21:55 ID:???
あのねぇ
本家のところからPHPマニュアルダウンロードしてきたんだけどねぇ
文字化けしてるのか、中国語になってるのかで読めないんだよねぇ
ちゃんとphp_manual_ja.chmをダウンロードしたんだけどねぇ
これどういうことかねぇ
346nobodyさん:04/03/14 22:01 ID:???
PHPで perlの"use strict;"なことをしたいのですが、
そういったものは用意されていますかね?教えてください!
347nobodyさん:04/03/14 22:56 ID:???
>>344
一行が可変のテキストファイルを一部の行だけ変更するのは無理っしょ。
結局全て読んで書き出さないとダメだと思う。
頻繁に書き換えるなら、これからはSQLiteなんかを使うのがいいかも。
どうしてもテキストファイルだけで、かつ全ファイル一気読みを避けたいというなら、

ループの中で1行ずつ読み込む。
目的の行でなければ、そのまま新しいファイルへ書き出す。
目的の行なら変更して新しいファイルへ書き出す。
これをファイル終端まで繰り返す。
終わったら、新しいファイルを元のファイル名へリネームする。

こんな感じかな。以前、ちょっとしたファイルで使った方法。
一気読みだけど、PEAR_Authで認証情報の格納先にFileを指定した
場合に使われるFile_Passwdもテンポラリファイルに書き出してリネームする
方法を用いていましたよ。(今もそうかは知らんけど)
348nobodyさん:04/03/14 23:00 ID:???
>>345
なってるなー

どっかで文字化けして無い修正されたの流れてるんだけど
どこだっけな・・・
349nobodyさん:04/03/14 23:16 ID:???
継承がわけわからーん。。。。
class aとclass b extends aがあって、class aにメソッドbがあって
class bにコンストラクタを省略したらclass aのメソッドbが呼ばれるのは分かるけど、何の意味があるんだ・・・

<?php
class example{
var $x,$y;

function example($x=3,$y=4){
$this->x=$x;
$this->y=$y;
}
}

class example2 extends example{
var $x,$y,$z=2;

function total(){
return $this->x * $this->y + $this->z;
}
}

$obj=new example();
$obj2=new example2();
echo $obj2->total();
?>

これで14が返ってくるのを期待してたんですが・・
プロパティはそのまま使えるっていうのはどういうこと???
350349:04/03/14 23:20 ID:???
あれ・・・できた。

<?php
class example{
var $x,$y;

function example($x=3,$y=4){
$this->x=$x;
$this->y=$y;
}
}

class example2 extends example{
var $x,$y,$z;

function example2($z=2){
$this->z=$z;
}

function total(){
return $this->x * $this->y + $this->z;
}
}

$obj=new example();
$obj2=new example2();
echo $obj2->total();
?>

これじゃできないのに・・・
継承されるクラスにコンストラクタがあってはいけないということですか??
351nobodyさん:04/03/14 23:24 ID:???
>>349-350
>$obj=new example();
これ不要。
352nobodyさん:04/03/14 23:26 ID:???
つーか、$objと$obj2は別物。
353nobodyさん:04/03/14 23:32 ID:???
>>350
$job2でのコンストラクタはexample2で、exampleは単なるメソッドにしか過ぎない。
継承するクラスにコンストラクタがない場合のみ、基底クラスのコンストラクタが働きます。
もうちっとマニュアル読めばわかると思うが。
354349:04/03/14 23:39 ID:???
>>352
いや、分かってるよ、それは

>>353
なるほどね
355nobodyさん:04/03/14 23:40 ID:???
ふーん、PHPってそんなんだっけ。
コンストラクタしか継承しないのか、だめだめだな・・・
356nobodyさん:04/03/14 23:46 ID:???
>>351 ちがいます。349,350のnew exampleは無意味だけど無関係。
>>350
350だと、example2 クラスで(constructorかどうかではなくて)、
継承出来ないように親=exampleクラスのmethodを上書きしてる
からだめなだけ。
class example{
var $hoge = 2;
function disp() {
return $this->hoge+1;
}
}
class example2 extends example{
$a = new example2;
print $a->disp();
}
だと3になるけど

class example{
var $hoge = 2;
function disp() {
return $this->hoge+1;
}
}
class example2 extends example{
function disp() {
return $this->hoge+2;
}
}
$a = new example2;
print $a->disp();
だと4になるというだけです。
357nobodyさん:04/03/14 23:53 ID:???
351=352=353なのだが(;´Д`)
>>349-350をみると勘違いしているっぽく見えた。

>>356
どこのメソッドを上書きしてるのよ?
358357:04/03/14 23:59 ID:???
>>356
スマン、言いたいことを、またもや勘違いしていた。ゴメソ。
359349:04/03/15 00:07 ID:???
>>356
それはオーバーライドのことですよね?
360nobodyさん:04/03/15 02:37 ID:???
textareaのPOSTで受け取った改行入りの文字列を
改行を無く出力したいのですが、どのようにしたらいいでしょうか?
361nobodyさん:04/03/15 03:39 ID:???
>>360
対象の変数 $value に対して、

$newValue = strtr($value, "\x0d\x0a", '');

とすればいい。

http://www.din.or.jp/~ohzaki/perl.htm#CRLF_Unify
http://www.din.or.jp/~ohzaki/perl.htm#CRLF_Remove
362nobodyさん:04/03/15 09:34 ID:???
セッションに変数を保存するとき
$_SESSION に連想配列で入れるのと
session_register() を使うのと
どちらが より一般的なのでしょうか

趣味?
363nobodyさん:04/03/15 10:58 ID:???
>>361
できましたあぁぁ
ありがとうございました!
364nobodyさん:04/03/15 11:02 ID:???
>>361
と、おもったらできてませんでした(´・ω・`)
365nobodyさん:04/03/15 11:20 ID:???
>>363-364
ブラウザに表示させて確認してしまったっぽだなw
環境によっては改行コードがCRやLFのみだったりするから。

$NewValue = mb_ereg_replace("\0x0d|\0x0a","",$Value);
で、いいんじゃね。
366nobodyさん:04/03/15 11:50 ID:3OJL3637
session_save_path("/home/user/hozon”);
としてセッションの保存先を変更しているのですが、
どうも/tmpにできてしまいます。
367nobodyさん:04/03/15 12:27 ID:???
>>365
それでもできないみたいです(´・ω..;: ∵.
368nobodyさん:04/03/15 12:41 ID:???
>>367
地道にやれ

$a = str_replace("\r", "", $Value):
$b = str_replace("\n", "", $a);

これでおかしかったら他がおかしい。
369nobodyさん:04/03/15 13:26 ID:???
>>368
ありがとうできました(*´ω`*)
370nobodyさん:04/03/15 13:30 ID:LUBZXH8j

phpで2chのdatファイルを取得する方法について、どなたかよろしいでしょうか。

ttp://www.monazilla.org/document/や
ttp://age.s22.xrea.com/talk2ch/などの資料があるのですが
よくわからないながらもできるだけ参考にして以下のようなスクリプトを書きました。

<?
ini_set( 'user_agent', 'Monazilla/1.00' );//これは念のため

$fp = @fsockopen("pc2.2ch.net", 80);
if($fp){
fputs($fp, "GET /php/dat/1078592587.dat HTTP/1.0\r\nUser-Agent: Monazilla/1.00\r\n\r\n");

while (!feof($fp) && $o != "\r\n")
$o = fgets($fp, 512);
while (!feof($fp))
echo fgets($fp, 4096);
fclose($fp);
}

?>
371nobodyさん:04/03/15 13:31 ID:LUBZXH8j
(↑の続き)
リクエストがあるたびに毎回、datファイル全体を読み込みなおせばいいのですが、
それではものすごい負荷がかかってしまうので>>17氏に従いfsockを使う事にしています。

ひとまず差分の事などは置いておくとして、
dat全体をまず読み込めるようにしよう!と思ったのですが、、

>>370のようにすると何も返ってこないのです。
接続先をwww.2ch.netにした場合は人大杉のページが表示されました
HTTPの基本的な事で間違えているような気がします。
どなたか、簡単なフォーマットのようなものでもいいのでご教授お願い致します。m(_ _)m

372nobodyさん:04/03/15 16:05 ID:Di4hYbsQ
すんません、質問なんですけど
ファイルのロックって例えば、1つのログファイルを共有している2つの掲示板スクリプトから
同時に書き込んだ時も大丈夫ですか?
373nobodyさん:04/03/15 16:11 ID:???
>>372
はい
374nobodyさん:04/03/15 16:18 ID:???
>>372
それは大丈夫じゃない
375nobodyさん:04/03/15 16:20 ID:???
>>372
大丈夫
376nobodyさん:04/03/15 18:28 ID:???
スクリプト中で、n秒経ったらこの関数を実行、というような事はできないでしょうか?
377372:04/03/15 18:37 ID:???
>>373-375
大丈夫って事でいいのでしょうか。
ありがとうございました。
378nobodyさん:04/03/15 18:55 ID:???
>>377
ちゃんと作れば大丈夫
379nobodyさん:04/03/15 19:00 ID:???
>>376
マニュアル嫁
隅から隅までじっくりとな
380221:04/03/15 19:13 ID:???
あの、、、僕のはどうなんでしょう
381376:04/03/15 19:24 ID:???
>>379
時間がもうあまり・・・
何かキーワードだけでも
382nobodyさん:04/03/15 19:28 ID:???
>>381
「寝ろ」
383376:04/03/15 19:29 ID:???
あ、因みにこれは別プロセスというか、メインの処理は普通に進行しつつ、
決められた時間になったら強制的に関数を起動という意味です
sleepではありませんので念のため・・・
384376:04/03/15 19:37 ID:???
実は>>328の続きというか、未だにこれが解決してないので別の方法を探している所なのです

set_time_limitとset_error_handlerを設定した上でエラー時にエラー名を調べて
タイムアウトと判断した際に自前のメッセージを出す関数を作れば>>321が可能な事は
わかったんですが、ウチのレンサバがPHPをSafemodeで起動しているせいで
set_time_limitが使えないことが判明し、また振り出しに戻ってしまいました
385nobodyさん:04/03/15 19:47 ID:???
>>384
なんで*たまにだけ*極端に長くなるのか、何の処理をしてるのかその辺も書いてもらわないと
誰も分からないと思うよ。あと、"質問者の情報の小出し"はやめよう。

あと、実行時間が極端に長くなるような(どれくらいか知らんけど)スクリプトを動かすのは
結局そのレン鯖に迷惑がられるんじゃない?
386376:04/03/15 19:56 ID:???
>>385
fsockopenでの読み出しで止まっているようです
socket_set_timeoutも使ってるんですが何故か効かない・・・
これ以上はサイトがバレバレなので控えたいです
387nobodyさん:04/03/15 20:26 ID:???
>>380
session_destroyはセッション変数をクリア(NULLにしたり解放したり)しているわけではない。
session_destroy後もセッション変数に代入された値は生きている。
マニュアルをよく読めば判るが、セッションに登録されているデータを破棄している。
要は、session変数を保存しているファイルそのものを削除してしまう。

session_unsetはsession変数を解放する。session変数を保存しているファイルそのものは
存在するが、中身は空っぽ(に近い状態)になる。
388362:04/03/15 21:01 ID:???
ところで今日の晩御飯はなんだった?
$_SESSIONを使うのが一般的だとすると
session_register()は何のためにあるのか
さっぱりわからんし
389nobodyさん:04/03/15 21:20 ID:???
てか、マニュアルのセッションのページを小一時間読め

話はそれからだ
390nobodyさん:04/03/15 21:21 ID:???
>>386
それsocket禁止されてんじゃあ・・
ちなみにforで65535ループ2重くらいにすればphpすぐタイムアウトするよな
萎えすぎる
391nobodyさん:04/03/15 22:15 ID:???
>>386
fsockopen で開いた後の fread か fgets で止まるということかな?
その場合は、非ブロックモードにすれば止まらなくなるはず。
PHP 4.3.0 以上でしか使えないし、扱いが難しいけど。
392362:04/03/15 22:19 ID:???
>>389
セキュリティとコードの可読性のために$_SESSION (またはPHP 4.0.6以前は$HTTP_SESSION_VARS)の使用 が推奨されます。

これね。そういえばうちは秋刀魚だったよ。
393nobodyさん:04/03/15 22:54 ID:???
誰か文字化けしてないマニュアルくださいよ
394nobodyさん:04/03/15 23:08 ID:???
395nobodyさん:04/03/15 23:35 ID:???
>>290>>393
新しいので作ってみた
chm版
http://up.isp.2ch.net/up/031d77c3b544.zip

どうでもいい話だが、本文は別に文字化けしている訳じゃない。
対応フォントを表示できない環境で見ようとしているだけ。
396nobodyさん:04/03/16 00:03 ID:???
>対応フォントを表示できない環境で見ようとしているだけ
それを見た側から言うと文字化けというのじゃないだろうか
397nobodyさん:04/03/16 00:06 ID:???
>>395
乙。まだロダが混んでいていただけてませんが。
で、聞くけど、対応したフォントをインストールしていると
そのままでも読めると言うことかな?
どのフォントを使っているの?
398nobodyさん:04/03/16 00:13 ID:???
PHPで配列の数をカウントしたい場合どうすればいいんでしょ。
一つ一つ$array[i]があるかどうかしなきゃならないなんてことはないですよね?
399nobodyさん:04/03/16 00:15 ID:???
>>398
count()
400nobodyさん:04/03/16 00:19 ID:NGiTkHYy
>>399
Thx
401nobodyさん:04/03/16 01:43 ID:???
>395
マヂサンクス
いただきました。
これでマニュアル嫁る
402追記:04/03/16 06:56 ID:???
>>370-371は、PHP4です・・・。
403nobodyさん:04/03/16 07:51 ID:???
>>402
user agentだけじゃなくhostも送りましょう。
404362:04/03/16 11:04 ID:???
ところで、session_xxx() を使わず $_SESSION を使えというのは
可読性はともかくセキュリティで何か問題あるの?
405nobodyさん:04/03/16 11:31 ID:NZM27FO2
セッションの保存先を変更したいと思っております。

まずpublic_htmlのsessionディレクトリをchmod 755 session
として書き込みを出来るように致しました。

そして、セッションの保存先の記述はsession_start()よりも前に書き、保存先が
変更されるように致しました。

<?php
session_save_path("/home/xxx/public_html/session");
session_start();

?>
しかし、保存先は変更されず、設定を変えているにも関わらず、
書き込みができないというエラーが出てしまいます。

どこか原因があるのでしょうか?

406nobodyさん:04/03/16 11:40 ID:???
>>404
ない。

>>405
保存先ディレクトリはhttpdが動いているユーザ(一般にはnobody,www,apache等)
の書き込み権限が必要。
407nobodyさん:04/03/16 12:40 ID:NZM27FO2
ご回答ありがとうございます。
ちょっとおっしゃられていることと違うことをやっていたら
ごめんなさい。
chown:chown /home/xxx/public_html/session
とすべきということでしょうか?
408nobodyさん:04/03/16 12:54 ID:NZM27FO2
すみません。間違いました。
chown nobody:nobody /home/xxx/public_html/session
409nobodyさん:04/03/16 13:08 ID:???
つーか755では書き込み権限は無いっしょ。
410nobodyさん:04/03/16 13:11 ID:???
>>408
いいんじゃないのそれで。
ついでにパーミッションも0700に変更しとけ。
chmod 0700 保存先ディレクトリ

#SafeModeでやるとどうなるか知らんが、動くんなら気にするな。
411nobodyさん:04/03/16 13:41 ID:RN6yU9c4
Cobalt サーバにPHPをインストールしたいと思っています。
GUIの画面で「pkg」拡張子のファイルを指定しろと出るのですが
PHPのパッケージって一体ドコにあるのですか?
ちなみにサーバ自体は触れません。 winのマシンでリモートで
コントロール画面をいじるような環境にいます。
CobaltはRAQ3ってやつです。 
散々webを回ったんですが、用語すら難しくてわかりません。
テルネットやLINUXの知識は皆無なんです。
よろしくお願いします。
412402:04/03/16 14:28 ID:???
>>403
レスありがとうございます、しかしHost:を送ったり、
fputs($fp, "Accept-Encoding: gzip");などとしてみてもだめでした。

一応、Hostを送る場合も送らない場合も「人大杉」の画面は出ました。
でも他の専用ブラウザのようにdatの内容を取得することができなかったです。

phpとあまり関係ないところで間違えてるのでしょうか、、、
もしアドバイス頂ければ、どなたかお願いします。
413362:04/03/16 14:37 ID:???
>>406
まじ?
じゃあなんでマニュアルに セキュリティのため なんて書いたんだろう
なぞだなぁ
414nobodyさん:04/03/16 16:27 ID:???
>>411
Cobaltはパネルを通して管理するスタイルのために
他のUnix系の管理とは異なることも多く、その分 Cobaltの
コミュニティがちゃんと存在するので、そっちいって訊きな。
今のバージョンのPHPのパッケージを作ってる人がいるかもしれん。

純正のやつなら、Cobalt買ったときにメディアが付いて来たろ。
バージョンは古いけど。なけりゃCobaltのサイト(まだあるかな?)
にも置いてあったな。

>散々webを回ったんですが、用語すら難しくてわかりません。
>テルネットやLINUXの知識は皆無なんです。
別にCobaltならtelnetやLINUXの知識はなくてもいいが、
逆にCobalt独自の管理知識しらないとやっていけないぞ。
それを勉強するのに用語が判らないのなら、前提となる
Unixの一般知識も勉強しな。
415nobodyさん:04/03/16 16:44 ID:???
ファイルからファイルを読み込んで、指定した文字数を超えると
「..」と語尾につけたいのですが、どのようなスクリプトを書いたらいいでしょうか?
416415:04/03/16 16:45 ID:???
あ、因みにそのファイルは、半角と全角が混じってます。
417nobodyさん:04/03/16 16:58 ID:???
仕様にさえ合えば mb_strimwidth() が楽。
418nobodyさん:04/03/16 17:06 ID:???
>>417
できましたー(*´ω`*)ありがとうございました。

PHPには色々便利な関数がありますね
419nobodyさん:04/03/16 17:11 ID:???
入力された文字列に2バイト文字があるかどうか判別したいんですが、
正規表現かけるのが定石なんでしょうか?
英語向けサイトで文字化けを防ぎたいのですが。
420nobodyさん:04/03/16 17:32 ID:???
>>419
mb_detect_encoding() は?
421nobodyさん:04/03/16 17:33 ID:???
echo (mb_strlen($str) != mb_strwidth($str)) ? 'マルチバイト文字有り' : 'マルチバイト文字無し';
422nobodyさん:04/03/16 17:37 ID:???
>>421
頭いいな
423nobodyさん:04/03/16 17:48 ID:???
>>420
>>421
サンクスです!
>>421で出来ました。
424nobodyさん:04/03/16 18:03 ID:6IiWiqvl
掲示板などに書き込む前に
「この文章でよろしいですか?Y/N」みたいなアラートを出したいのですが
vbでいうmsgboxみたいなもの教えてください。
425nobodyさん:04/03/16 18:07 ID:???
>>424
ブラウザは何使ってる?
IEならJavaScript使えばいいし
ネットスケープならJavaScript使えばいい
そのほかなら自分で調べるしかないけど
426nobodyさん:04/03/16 18:08 ID:???
>>424
JavaScript板に行け
427nobodyさん:04/03/16 18:08 ID:???
>>402
<?
$fp = @fsockopen("pc2.2ch.net", 80);
if($fp) {
fputs($fp, "GET /php/dat/1078592587.dat HTTP/1.0\r\nHost: pc2.2ch.net\r\nUser-Agent: Monazilla/1.00\r\n\r\n");
while (!feof($fp) && $o != "\r\n") $o = fgets($fp, 512);
while (!feof($fp)) echo fgets($fp, 4096);
fclose($fp);
}
?>
これで読めるけど。
428nobodyさん:04/03/16 18:15 ID:???
>>424
alert出すならJavaScript。板違いなのでぐぐってからWeb制作板へ。
確認画面出すならPHPでできるがな。
429nobodyさん:04/03/16 18:21 ID:6IiWiqvl
>>428
確認画面を出したいです。

phpで書いてある掲示板なのでおなじsubmitのところにはjavascriptは無理なのでは?
javascriptの中にphp書くのも不可能じゃないんですか?

たぶん相当バカな事いってると思いますが心を仏にしてお願い致します。
430nobodyさん:04/03/16 18:46 ID:???
>>429
お前はまず他人に物を教わる時の作法を覚えてこい
なにが「心を仏にしてお願い致します」だアフォ
431nobodyさん:04/03/16 18:47 ID:???
>>429
セッションで値渡したら楽だよ。

んで、確認画面は

<input type="text" name="name" value="<?php echo $_SESSION['name']; ?>">



こんな感じで
432nobodyさん:04/03/16 18:54 ID:???
>>429
情報の後出しは良くない

JAVASCRIPTならボタンをSUBMITじゃなくて普通のボタンにして、アラート後OKならSUBMITする関数を呼び出せばいい
PHP側はHTMLを吐き出す際にJAVASCRIPT付きで吐き出せばいい

確認画面にしたいなら.>>431
433nobodyさん:04/03/16 19:05 ID:NZM27FO2
ちょっと質問させてください。
リンクとしてセッションを継続する場合は、セッションIDは
新しく生成されないが、セッションの開始のページを
開くたびに、セッションIDがどんどん保存されていくことは
正しいですよね?
434nobodyさん:04/03/16 20:59 ID:IotPKUsm
PHPマニュアルをざっと眺めて載ってなかったんですけど、
write.php?target=2
の様な情報って受け取れます?
435nobodyさん:04/03/16 21:05 ID:???
436434:04/03/16 21:09 ID:???
>>435
あら、まあ。
437nobodyさん:04/03/16 21:21 ID:???
正規表現かなんかで、
文字列から 複数の指定文字 以外 の文字を 置換する
うまい方法ある?
438nobodyさん:04/03/16 21:32 ID:???
>>437
置換するためには、ある文字をある文字に置き換えるという「指定」をするわけだが.....
439437:04/03/16 22:21 ID:???
>>438
preg_replaceだと、正規表現でマッチする分を置換できるけど
マッチ「しない」分を置換する方法がわかんない
正規表現で否定の指定方法がわかればすむ話かなあああ
440nobodyさん:04/03/16 23:21 ID:???
>>439
指定文字列以外なら無理ぽだが、指定文字以外なら出来る。
ABC以外の文字をZに置換。
ereg_replace("[^ABC]","Z",$str);
441nobodyさん:04/03/16 23:23 ID:???
文字列となる場合は、
mb_ereg_replaceで条件にマッチするものを削除(mb_ereg_replace("正規表現","",$str);)
してから置換を行えばいいのでは?
442nobodyさん:04/03/16 23:31 ID:???
>>441
指定文字列もなくなっちまうじゃん。
一旦、指定文字列とその出現位置を覚えておいて削除し、
残った文字を全て置換後、その文字列を元あった位置に戻すとかすりゃ可能だが。
443nobodyさん:04/03/16 23:54 ID:???
>>442
ああそうだった・・・
そりゃ無理じゃろ、何文字目か覚えておいても置換後に文字数が同じにならなけりゃだめだし、、
むずいな
444nobodyさん:04/03/17 00:08 ID:???
初心者でつ。
windowsでやっています。

c:\test.php
と表示させたいので
c:\\test…
と入れると
c: est…
と表示されてしまいました。どうしたらいいのか分かりません。教えてください。
445nobodyさん:04/03/17 00:13 ID:???
>>444
c:\\\\test
って入れれw
446nobodyさん:04/03/17 00:23 ID:???
\tはタブだからか

そういうときはシングルクォートでくくれ
447nobodyさん:04/03/17 01:28 ID:???
Windows でも / でいいと思ったが

include_path とかのパス区切りは ; にせんとだめだけど。
448nobodyさん:04/03/17 04:58 ID:???
未登録ユーザの表示名設定欄に /></td></tr><input type= 出るのはなぜですか?
テンプレートセット・マネジャー ≫≫ defaultでこれ( /></td></tr><input type=)を定義している場所がわかりません・・・
具体的に未登録ユーザの表示名が定義されているファイルはどこでしょうか?
変数を入力する( /></td></tr><input type=)のファイルと、代入先が解れば自力で直せそうなんで教えてくれませんか?
多分自分の予想だとここ(変数を入力する( /></td></tr><input type=)のファイル)のどこかの整合性がとれていないと思うのですが・・・
なにかが欠落してるのかもしれません
お力をお貸しください
449nobodyさん:04/03/17 05:00 ID:???
>448
スマソ。XOOPSのHPやってます。不具合があるので解る方レスお願いします
450nobodyさん:04/03/17 05:21 ID:???
451nobodyさん:04/03/17 09:30 ID:k72f02s2
// CSV出力
Header("Content-disposition: attachment; filename=hoge.csv");
Header("Content-type: application/octet-stream; name=hoge.csv");
$str = "hoge,hoge";
print ( "$str" );

現在このようにしてcsv出力を行っていますが、
「ファイルのダウンロード」ダイアログが出てきて、保存をクリックすると
単純にPCに保存ができます。
開くをクリックするとまた「ファイルのダウンロード」ダイアログがでてきて、
もう1度開くをクリックすると今度はテキストエディタでcsvファイルが開きます。
なぜ2度ダイアログが出てくるのでしょうか。
1回で開くを実行できないでしょうか。
452nobodyさん:04/03/17 10:00 ID:???
>>451
PHPに関係なし
453402:04/03/17 10:48 ID:???
>>427ありがとうございます、

・・・・?何で動かなかったんだろう・・・(´д`)
とにかく助かりました。
HTTPやネットワークプログラミングについて、もう少し詳しく勉強してみます。
454nobodyさん:04/03/17 10:48 ID:???
未登録ユーザの表示名設定欄 ってどこだよ。
455nobodyさん:04/03/17 11:28 ID:6/A8lM/E
ブラウザのクッキー一覧を参照することってできますか?
456nobodyさん:04/03/17 11:49 ID:???
そんな事出来たらヤバイだろ
457nobodyさん:04/03/17 11:50 ID:???
458nobodyさん:04/03/17 12:06 ID:???
>>457
「PHPから」ってことでないかな?
459nobodyさん:04/03/17 12:24 ID:???
>>458
どっちにせよサーバ側から通常の方法で
「ブラウザのクッキー一覧を参照」は無理。
460nobodyさん:04/03/17 17:11 ID:6/A8lM/E
php.iniで設定せずにphpファイルのソースから
session.gc_maxlifetimeなどの指定はできますか?
461nobodyさん:04/03/17 17:23 ID:???
>>460
マ(ry
462nobodyさん:04/03/17 17:24 ID:???
>>460
session.use_trans_sid以外は、PHP_INI_ALLだから可能。
http://www.php.net/manual/ja/ref.session.php
マニュアルも読めんのか?
463nobodyさん:04/03/17 20:15 ID:6/A8lM/E
ブラウザを閉じても1時間は有効であるように、
ini_set( 'session.cookie_lifetime' ,3600 );と記述しました。
書き方がおかしいでしょうか?
この書き方では、設定変更は出来ないようです。
464nobodyさん:04/03/17 20:52 ID:dMGK56zp
質問させてください。
HTMLファイルのセレクトメニューの値を
PHPファイルのセレクトメニューに反映させる方法をどなたかご教授ください。
宜しくお願いします。
465nobodyさん:04/03/17 20:55 ID:???
>>464



          h       a       i        ?




466nobodyさん:04/03/17 20:56 ID:???
>>463
お父ちゃんな、マニュアルも読まん子は好きやないねんけどな。
<?php
ini_set('session.cookie_lifetime', '3600');
// 引数は数値で書いても型変換されるけど、正しくは文字列。
phpinfo();
?>
として鯖に置いて確かめてみ。普通は特に変更不可にはしてない筈。
確認しても駄目なら管理者に問い合わせ。
467nobodyさん:04/03/17 21:02 ID:???
>>464
hai? って感じだが、<select><option>の特定のoptionを選択状態で表示したいって話なら、
phpに関係なくHTMLの話やね。<option selected>item のようにselectedをつけりゃいい。

どのoptionにselectedを付けるか、つーのはプログラマである君がゴリゴリ書く仕事やね。
468nobodyさん:04/03/17 21:42 ID:???
>>467
レスどうも。
もちろんserectedはわかるんだけど、
やっぱゴリゴリ書かなきゃなんねえのですか。
ありがと、今からゴリゴリしますわ。
469nobodyさん:04/03/17 21:46 ID:???
間違い
selected
恥ずかしいっす。
470nobodyさん:04/03/17 21:48 ID:6/A8lM/E
463の続きです。
Local Valueは3600に変わるのですが、Master Valueは0になっております。
Master Valueも3600には変わらないのでしょうか?
471nobodyさん:04/03/17 21:59 ID:???
>>470
かわらん。
472nobodyさん:04/03/17 22:16 ID:???
run-tests.php ってどうやって使うの?
473nobodyさん:04/03/17 22:27 ID:HqRKwDEV
phpとmysqlで掲示板を作っています。(ローカル)

『表示』とか『貼り付け』とかが文字化けするんですけど、
なぜでしょうか?

phpのコードにはmetaタグでShift_JISとしてまして、
mysqlのdefault-character-setはsjisにしてあるんですけど。
474nobodyさん:04/03/17 22:57 ID:???
shift_jisの文字コードだと
表 -> 95 5C
貼 -> 93 5C
5Cつーのが目に付くと思うんだけど、これは「\」の文字コードなのよ。
で、\つーのはメタ文字とか言って続く文字の1バイト目をエスケープしちゃうわけよ。
addslashesやmagic_quotesをゴニョゴニョして対処する方法もあるけど、結構めんどい。
shift_jisでしか扱えない文字をどうしても使いたいって時を除いては
EUCでスクリプトを書くのが楽って言われるわけやね。
画面表示のタイミングでEUCからshift_jisに変換できるしEUCでやっとけばええんでないの?
475nobodyさん:04/03/18 00:05 ID:???
>>470
そりゃMaster Valueは、php.iniで変えるもんやからな。
つか色々自分でやって試してみなよ。鯖借りてるとしても、
ローカル(Windowsでも良い)に似たような環境作って。その方が飲み込み早い
# 持ってなかったら、もう一台ぐらい中古の安いの買えれ。
476nobodyさん:04/03/18 00:08 ID:???
>>473
metaタグのShift_JISなんて気休め。
ちゃんとPHPのHTTP出力をShift_JISに設定汁
477nobodyさん:04/03/18 01:43 ID:???
今更だとは思うが>>8のエラーの原因って鯖の設定じゃないのか?
LAN内からしかアクセスできないとか。
もしくは開発をローカルでやっててURLを127.0.0.1のまま携帯でつなごうとしてたり。
478nobodyさん:04/03/18 02:01 ID:pqPZG/Ug
会員制のサイトに登録したとき、アルファベットに数字混じりのユニークIDが
発行されるところがありますけど、あれはどうやって決められてるものなんでしょうか?

登録時の時間とか、連番とかを、(方法はわからないけど)別の数字や文字に置き換えてるんでしょうか。
そういう処理ってPHPでもできますか?
479nobodyさん:04/03/18 02:55 ID:GIO+BTKS
文字列がすべて全角カナの場合のみ真(または負)を返すようにするは
mb_convert_kanaをどのように使えばいいのでしょうか?
480nobodyさん:04/03/18 03:32 ID:???
>>479
$ren = "文字列";
mb_convert_kana($ren, "c") = $ren2;
if(mb_strwidth($ren) == mb_strwidth($ren)){
 TRUEの処理
}else{
 FALSEの処理
}
すまぬ…折れの頭脳ではこれが限界だ…
481nobodyさん:04/03/18 07:14 ID:???
>>479
mb_ereg("^[ァ-ヶ]+$",$str)
482nobodyさん:04/03/18 08:00 ID:???
>>478
uniqid("")
483nobodyさん:04/03/18 13:46 ID:???
003<>aiueo
001<>kakiku
002<>ai-n
003<>hoge
002<>afe
001<>unko

例えばこのようなログファイルを読み込むとき、
先頭の番号に準じて配列に格納するにはどうしたらいいでしょうか?
この場合、
$arr_001 = array("kakiku", "unko");
$arr_002 = array("ai-n", "afe");
$arr_003 = array("aiueo", "hoge");
といったような感じにしたいです。
484nobodyさん:04/03/18 14:17 ID:???
>>483
かなり変態なソースの気もするが・・・
$nに番号、$vに値を収納したとして下記をレコード分回す

$array_name="arr_".$n;
if(!isset($$array_name))$$array_name=array();
array_push($$array_name,$v);

可変変数の配列に代入するにはarray_pushが必要なようです。ベンキョウニナリマシタ
485nobodyさん:04/03/18 14:23 ID:???
>>483
本当にそんなログファイルフォーマットでいいと思っているんですか?
486nobodyさん:04/03/18 15:05 ID:???
>>484
ありがとうございました!
487nobodyさん:04/03/18 17:39 ID:???
>>483
$arr[ $num ][] = $name;
でいいじゃん。だめ?
488nobodyさん:04/03/18 21:39 ID:+47BygHQ
すみません、質問です。
現在、配列を特定の条件でマージしようとしています。
マージの関数はarray_mergeとarray_merge_recursiveを試してみたのですが
思ったような処理をすることが出来ません。
usortの用に比較関数をユーザー定義できるものって無いのでしょうか?
489nobodyさん:04/03/18 21:53 ID:XqncjgjW
質問かぶせて恐縮ですが、phpからCで書いたプログラムを実行して、戻り値をphpで利用したいんですが、
cのmain関数のreturn()に戻したい値を入れてもどこに戻ってるのかわかりません。どうすればよいか教えて
くださいまし。
490nobodyさん:04/03/18 22:30 ID:???
>>488
「特定の条件」も「思ったような処理」も知らせずに、
俺たちに何をしろと?
491nobodyさん:04/03/18 22:34 ID:???
>>487
ありがとう(*´・_・`*)
492nobodyさん:04/03/18 22:43 ID:???
>>482
あー、そんなのあったんですね。
よく調べもせずにすいませんでした。ありがとうございます。
493nobodyさん:04/03/18 22:44 ID:???
>>489
system()で呼び出せば、第二引数で指定した変数に入る。
494taku:04/03/18 23:08 ID:dRleo8tv
すいません質問です
PHPで日本語メール送ると文字化けが起こります。
mb_send_mail関数の前にmb_language関数で
mb_language("japanese");を指定すると
件名と本文がエンコードされて文字化けが起こらないように
なるみたいですが何度か試したのですが文字化けが起こりました。
レンタルサーバーですので問い合わせた所
「mb_send_mail関数とmb_language関数ともに有効ですがEUCーJPで
動作している為メールの場合そのままでは文字化けを起こして
しまうようです。自動変換機能をONにしましたので再度ご確認下さい。」
と返答がありましたが、いまいちわかりません。
何か良い解決方法ありましたら教えて下さい。<(_ _)>

ちなみにテストしてたのは↓のような簡単な構文です。
<?php
$to_addr = "***@yahoo.co.jp";
$title = "テストメール";
$body = "テスト";

mb_language("japanese");
if(mb_send_mail($to_addr,$title,$body,'From:
[email protected]')){echo"
送信成功";}else{echo"送信失敗";}
?>
495nobodyさん:04/03/18 23:18 ID:v217X1kZ
JISに変換して送ればいいんじゃない?

mb_send_mail($to_addr, mb_convert_encoding($title,"jis","euc-jp"), mb_convert_encoding($body,"jis","euc-jp"),'From:[email protected]')
496taku:04/03/19 00:07 ID:zEoQqiAa
>>495
早速のご返答どうもです。試したのですけど、文字が変換されてる
らしいのですが、届いたメールには文字化けではなく
文字が削除?(空欄状態です)されていました。
うーむ、となるとサーバーの設定がまずいのですかねぇ?
何か他に良い案がありましたら教えて下さい。<(_ _)>
497nobodyさん:04/03/19 00:28 ID:???
>>494
PHP のバージョンは?
PHP の一部のバージョン(確か PHP 4.3.2 から PHP 4.3.3 くらい)は mb_language() が
正常に働かなかったような気が。

php.ini の設定が

mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP

になっていれば mb_language('Japanese') はなくても大丈夫だったと思うけど。
498488:04/03/19 01:34 ID:Ll14L7j+
>>490
いえ、この場合、特定の条件や処理の話はたんなる比喩で

「usortのように比較関数をユーザーが定義できる、マージ関数はあるのか?」

という事が質問の趣旨のつもりでした。
わかり難くてすみません。
499nobodyさん:04/03/19 02:10 ID:nZ+iMlnl
ODBC経由でAccessのファイルからデータを取得したいのですが、
例えばフィールドサイズがテキスト型で20のデータを読み込もうとすると、
全角だと10文字までしか取得できません(半角なら20文字読めます)。
10文字以降はゴミがついてきます。

odbcのアクセスにはodbc_result()、odbc_exec()関数などを使用しています。
どなたか教えてくださいませ。
500nobodyさん:04/03/19 02:38 ID:???
>>498
だから、どういうマージがしたいんだ?
俺にはさっぱり分からんぞ。
みんなは分かるのか?
501nobodyさん:04/03/19 02:49 ID:???
さっぱりわからん
502nobodyさん:04/03/19 09:33 ID:???
つまり「usortのように比較関数をユーザーが定義できる、マージ関数はあるのか?」って事だ
503nobodyさん:04/03/19 10:13 ID:???
>>498
無い
504nobodyさん:04/03/19 10:27 ID:???
>>503
うぅ、ヤッパリ無いんですか・・・自作します。
みなさんありがとうございました。
505nobodyさん:04/03/19 12:10 ID:jbsetE8t
DBのデータをテーブル形式で表示させています。

そのとき、1段ごとで、色を変えたいのですが可能でしょうか?
506nobodyさん:04/03/19 12:28 ID:???
てかDB全く関係なくね?
507nobodyさん:04/03/19 12:40 ID:???
>>505
ゴリゴリ、お逝きなさい。
508nobodyさん:04/03/19 13:04 ID:jbsetE8t
すみません、PHPは使って作業しております。
PHPでDBにあるデータを表示させています。

そして、テーブル形式で表示させています。

そのとき、1段ごとで、色を変えたいのですが可能でしょうか?
509nobodyさん:04/03/19 13:11 ID:???
>>508
なんでまた同じ事書くの・・・
510nobodyさん:04/03/19 13:12 ID:???
>>508
だからDBは関係ないっての。ゴリゴリ逝けっての
511nobodyさん:04/03/19 13:17 ID:???
制御構文使って
テーブルの行を順々に異なる色にする程度の知識レベルがあれば可能

DB無関係

これが理解できなかったら、かなり不可能
512nobodyさん:04/03/19 13:39 ID:???
>>508はHTMLの仕様が解ってないとみた
513nobodyさん:04/03/19 14:25 ID:???
行数カウントして(カウント%2)を見てtrにclass振るだけ。
プログラミングの基礎だ。
514nobodyさん:04/03/19 15:10 ID:???
%2のときは&1にするのがプログラミングの基礎だと思うのは
漏れだけなんかなぁ。もうそんなシビアな時代じゃない?
515nobodyさん:04/03/19 15:58 ID:???
>>514
うん
516nobodyさん:04/03/19 16:10 ID:???
え、じゃー

 $a = $b / 2;

なんてのを

$a = $b >> 1;

にしたがるのも漏れだけ?まぁこれは文脈によってはダメだけど。
517nobodyさん:04/03/19 16:16 ID:???
俺はビット演算とか必要な時しか使わないな
518nobodyさん:04/03/19 16:27 ID:???
Cの時は、そんなもんコンパイラが最適化すると思ってる。
PHPの時は、そんなもんインタプリタ言語で気にするのが変と思ってる。

結論として、文脈で分かりやすいほうの記述をとるな
もうそんな時代じゃないというのにかなり賛成
519nobodyさん:04/03/19 16:59 ID:???
>>395の再うp希望

ていうか本家のファイルはいつ直るんだー!!
520nobodyさん:04/03/19 17:32 ID:???
あと、マニュアルのどこが変わった、という情報ってどこかで得られる?
PHP-DOC を見た感じ diff だけだし。
521nobodyさん:04/03/19 17:38 ID:???
522521:04/03/19 17:39 ID:???
>>520
NEWS の方がよかったかも
ttp://news.php.net/group.php?group=php.doc.ja
523nobodyさん:04/03/19 18:31 ID:???
>>508
「1段ごとで、色を変えたいのですが可能でしょうか?」
つまり、一段ごとに"任意の色"を付けたいのかもしれん。
→ テーブルに任意の色保持するフィールド作れよ。
524nobodyさん:04/03/19 19:37 ID:???
>>521-522
ありがとうございました。
NEWS の rss を購読します。
525nobodyさん:04/03/19 20:55 ID:EiWH/2Wl
なんか PHP ってむっちゃ遅くありませんか。
Ruby のライブラリを移植したのですが、
参照渡しにしているにもかかわらず、
処理に 10 倍以上の時間がかかります。
正規表現が悪さをしているんでしょうか?
526nobodyさん:04/03/19 20:58 ID:???
既出だったらごめんなさい。
CGIのjcode.plに相当する関数はPHPにありますか?
527nobodyさん:04/03/19 21:04 ID:???
>>526
あります。
528nobodyさん:04/03/19 21:05 ID:???
>>525
そうかもしれません。誰が速いと言ったのですか?
529nobodyさん:04/03/19 21:58 ID:???
530nobodyさん:04/03/19 22:04 ID:mkcYvZds
531489:04/03/19 22:21 ID:pIHWidCq
>>493
 ありがとうございます。とりあえず0−255まで値が渡るようになりました。
重ね重ね恐縮ですが、256より大きな数はどうすればよいでしょうか。
532nobodyさん:04/03/20 00:31 ID:???
>>531
ネタですか?それともマジですか。
#何のC使ってるのyo
533nobodyさん:04/03/20 00:36 ID:???
>>531
標準出力にだしてexecなりpassthruで拾えば。
534nobodyさん:04/03/20 00:54 ID:???
そういえば微妙にかゆかった疑問なんだけど、$fpみたいな変数が必要になる事があるけど、
沢山必要になったときどういう風に変数名付けてる?
俺まったくの行き当たりばったりだから$fpxとか$fp2みたいなやる気も統一性もない名前ばかりなんだが
535nobodyさん:04/03/20 00:58 ID:2jbtOFQU
配列にする
536nobodyさん:04/03/20 01:13 ID:???
参照渡しと引数のデフォルト値設定って
両立できないんでしょうか。

function hoge(&$foo = "bar"){
    // ...
}

こういう書き方をするとエラーが出て困っています。
537nobodyさん:04/03/20 01:36 ID:???
>>536
( ゚Д゚) ポカーン
$hoge =& "funi";
やってみろよ。というかそんなコード書くな。
538nobodyさん:04/03/20 01:38 ID:2jbtOFQU
参照私の意味がないような。
539536:04/03/20 01:40 ID:???
そうですか。
こういう書き方はできますか?
動作はするみたいですけど。

function hoge($foo = "bar"){
    //...
}

hoge(&$a);
540nobodyさん:04/03/20 02:34 ID:???
……… 自信たっぷりだな。いいから

php -r "$a='hoge';"
php -r "$a=&'hoge';"

ってやって試してみなよ。。
エラーの内容を見れば想像出来ると思うが。
そんなコードが必要になる時点で何か変なんだよ。
541536:04/03/20 02:57 ID:???
落ち着いてください・・。
ええと…>540さんは、変数に入ってない値への参照を作成することは
できないっておっしゃりたいんでしょうけど、>539は動きますよ。
だって、変数に入ってない値への参照を作成していないのですもの。

それに私は>539みたいなコードが必要だから、
そういうコードを書いているのですけど…。
参照渡しの引数にデフォルト値を設定することの、何が変なのかよくわかりません…。
542nobodyさん:04/03/20 03:31 ID:???
543nobodyさん:04/03/20 08:22 ID:0einhvXN
質問です。
requireやrequire_onceを使うと、単に「ソースコードの追加」を行うだけでなく
他のphpの'出力結果'を取り込む事もできるんでしょうか?

読み込み対象のphpがリモートファイルの場合でも可能でしょうか?
544526:04/03/20 08:40 ID:???
皆さんありがとうございました
545nobodyさん:04/03/20 08:47 ID:???
>>543
   〃∩ ∧_∧
   ⊂⌒( ´・ω・)くぜんぶマニュアルに書いてあったでつ
     `ヽ_っ⌒/⌒c
546543:04/03/20 08:59 ID:???
>>545すみません、fopenを使って自己解決しました・・・
マニュアルも読み足りなかったかもしれませぬ。

しかし、なぜrequireだとwarningが出て、fopenだと出なかったんだろう。

requireを使って外部鯖のphpの出力を取り込むと、「seekingはサポートしてません」
みたいなwarningが出てから一応出力もされるんですが
ファイルポインタ使ってない(つもりな)のに、なんでこんなエラーが出たのだろう・・・

fopenで最初から最後まで書き下すようにしたらなんもエラーは出なかったです。
547nobodyさん:04/03/20 11:26 ID:Hxt1FY25
Win + AnHttpdでUTF-8の読み書きはできたのですが、
Linuxの何か + ApacheでUTF-8の読み書きをすると英数字以外が文字化けするんですよ。

php.iniを変更できないレンタルスペースの環境で
UTF-8を読み書き検索したいのですが、
mbstringを使う方法ってありますか?
548nobodyさん:04/03/20 12:42 ID:???
>>547
まとめると、
mbstringがインストールされていない鯖でmbstringを使いたいということですか?
549547:04/03/20 13:52 ID:???
あー、すいませんだいぶ勘違いしてました。

単にフォームからデータを受け取る時にうまく
受け取れてないだけのようです。

失礼しました。
550nobodyさん:04/03/20 14:17 ID:g6YYdXkP
失礼します。誘導してもらってこちらに来ました。

imgタグ付きのテキストリンク(広告)を
phpでランダム表示させたいのですが、
phpでテキストリンクをランダムに表示させるには
どの様にすればいいでしょうか?
分かる方いたらお願いしますm(_ _)m

簡単にそのランダムさせる文面を
追加できれば嬉しいです
551nobodyさん:04/03/20 14:17 ID:???
WinXP+Apache1.3.29

PHP5b4は問題なかったのに
RC1がインストールできなくなったんだけど俺だけ?
(php5ts.dllが駄目だとかでapacheが強制終了)
552nobodyさん:04/03/20 14:31 ID:???
>>550
こういうのか?
<?php
$com = array("広告0", "広告1", "広告2");
srand(time());
print $com[rand(0,count($com) - 1)];
?>

-------------------------------------------------
で、私も質問。
フォームで日本語が文字化けするですよ。
--html--
<FORM METHOD='post' ACTION='utf.php' accept-charset='UTF-8' NAME="FormItemWrite">
<INPUT TYPE='text' NAME='fname' VALUE='あいうえお' />
<INPUT TYPE="submit" value="Go" />
</FORM>
--php--
<?php print $_POST["fname"]; ?>

で文字化けするんですが、何がいけないんでしょ。
環境はLinux系の何か+PHP4.3.?です。
553550:04/03/20 14:34 ID:g6YYdXkP
>>552
ありがとうございます。
"広告0", "広告1", "広告2"の部分に
<a href="http://"">テキスト</a>といれればいいのでしょうか?
554552:04/03/20 14:38 ID:Hxt1FY25
"<a href='http://a.b.c'>D</a>"か
'<a href="http://a.b.c">D</a>'な。
ダブルクオーテーション(")の中にダブルは使えないのでシングルで代用。(')
もしくは逆。
555nobodyさん:04/03/20 14:46 ID:3WXcgaTH
PHPをやろうかなともってるのですが、難しいですか?
ちなみに今ある知識はHTMLのみです。
556nobodyさん:04/03/20 14:53 ID:???
>>555
スクリプト言語が何のか?ということがわかればさほど難しくないです
557nobodyさん:04/03/20 14:56 ID:???
>>555
HTMLに混ぜて書けるんで簡単です。
558nobodyさん:04/03/20 14:59 ID:???
>>551
WindowsXP Pro+Apache1.3.29
- Apache/1.3.29 (Win32) PHP/5.0.0RC1
WindowsXP Pro+Apache2.0.48
- Apache/2.0.48 (Win32) PHP/5.0.0RC1
どっちも普通に動いてるけど?
php5ts.dll、RC1ので上書きしてないんじゃないの。


PHP5b4は問題なかったのに
RC1がインストールできなくなったんだけど俺だけ?
(php5ts.dllが駄目だとかでapacheが強制終了)
559nobodyさん:04/03/20 15:01 ID:3WXcgaTH
>>556
>>557
ありがとうございます。
やってみよかと思います。
560nobodyさん:04/03/20 15:03 ID:???
>>552
accept-charsetは気休め。
本当にUTF-8で渡ってきてるか、渡ってきてるなら
PHPで受け取りに至るまでの変換処理でおかしな設定
になってないか調べてみ。ただ、PHP4.3.xで細かく
マルチバイト周り修正されてるので、その辺の差異にも注意。
561nobodyさん:04/03/20 15:07 ID:3WXcgaTH
Apache Web ServerとMySQLをwindowsXPにインストールしても
インターネットとかできますよね?
562nobodyさん:04/03/20 15:11 ID:???
>>561
貴方のPCがインターネット上の重要なノードを担っていない限り
インターネットは大丈夫だと思うよ。
563nobodyさん:04/03/20 15:14 ID:3WXcgaTH
>>562
ありがとうございます。
564nobodyさん:04/03/20 15:30 ID:???
なんでコレがエラーになるのか・・・

$sql = "select * from members limit $_GET['st'], $_GET['n']";
565nobodyさん:04/03/20 15:33 ID:???
スーパーグローバルを普通の変数に直す。
566555:04/03/20 15:43 ID:3WXcgaTH
Apache Web Server をインストールしようと思うのですが
途中で↓を入力する画面がでてきます。
いったなにをいれればいいのでしょうか?

Network Domain

Server Name

Administrator'sEmailaddres


ご指導のほどよろしくお願いいたします
567nobodyさん:04/03/20 15:48 ID:???
>>564
String中では$_GET['hoge']じゃなくて$_GET[hoge]と書く。
つまり
$sql = "select * from members limit $_GET[st], $_GET[n]";
568nobodyさん:04/03/20 15:48 ID:???
>>566
スレ違い
569nobodyさん:04/03/20 15:49 ID:???
お好きなように。
570nobodyさん:04/03/20 15:51 ID:???
>>567
あとあとトラブルの元だから

 { }

で囲むことをお勧めする。

$sql = "select * from member limit {$_GET['st']}, {$_GET['n']}";

だな。まぁもっと言えばわかりやすい変数に代入しておく方がいいと思うが。

$st = $_GET['st'];
$n = $_GET['n'];
571564:04/03/20 15:58 ID:???
>>570
あっ!エラーが消えた・・・

技術評論社の

実例で身に付ける
MySQL×PHPによる
本格Web-DBシステム入門

と、いう本で勉強しています。p66

ありがとうございました。m( _ _;)m
572564:04/03/20 16:00 ID:???
>>567
あぁぁぁ!

これでもエラーが消える・・・

本が間違っているのかなぁ・・・?

573564:04/03/20 16:03 ID:???
みなさんありがとうございました。

m(__)m
574nobodyさん:04/03/20 16:03 ID:???
>>571
print $sql; を実行してればすぐ解決したのにな(w
575nobodyさん:04/03/20 16:30 ID:???
>>573
恐ろしいので、普通は $_GETや$_POSTで取って来た値を
そのまま使ってSQL文を生成しない。今後のために
"SQLインジェクション"で探して勉強しとけ。
576564:04/03/20 16:40 ID:???
了解!
∠(`・ω・´)シャキーン
577550:04/03/20 16:42 ID:g6YYdXkP
どうもありがとう御座いました。
無事表示できました。しかし、ランダムではなく
リロードすると並べた順番に出るような。。。
578555:04/03/20 18:14 ID:3WXcgaTH
Apache Serverをインストールしたのですが。
ブラウザにhttp://127.0.0.1http://localhost
サーバーが見つからないか、DNS エラーです。
となってしまいます。

http://aki.adam.ne.jp/php/apache_install.htm

このページを参考にしました。
Apacheが動作していないようです。どなたかおしえてください。
579nobodyさん:04/03/20 18:20 ID:???
サーバにアップされたテキストファイルを書き換えようとしています。
読む単体と書く単体はできるのですが書き換えができません。

流れとしては、ファイルの中身を削除→新しい内容の書き込みでいいんでしょうか?
ファイルの内容を削除する方法を教えてください。
580nobodyさん:04/03/20 18:28 ID:???
>>578は空気も読めないし、まして日本語の>568も読めないようだ。
581nobodyさん:04/03/20 18:35 ID:???
>>579
fopen("hoge.dat","w");
582nobodyさん:04/03/20 18:43 ID:???
>>581
あ、wでいいんだ。ありがとうございます。
583555:04/03/20 21:38 ID:3WXcgaTH
apache,PHPをインストールして、test.PHPをhtdocs
の中に保存したのですが
http://localhost/test.php
みると真っ白なページがでてきます。
右クリックしてソースを見ると

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>無題ドキュメント</title>
</head>
<body>

<?
echo "PHPインストール成功!!!";
?>

</body>
</html>

となっています。なぜ実行されないのでしょうか
どなたかアドバイスしてもらえないでしょうか
今日はすでに12時間ぐらい四苦八苦してます。集中力が
なくなりアドバイスをもとめました。
584nobodyさん:04/03/20 21:47 ID:???
>>578の次のページの
http://aki.adam.ne.jp/php/php_install.htm
は、当然読んでるんだよな?
httpd.conf書き換えて再起動はOK?

つか、とりあえず寝れば?
585555:04/03/20 21:56 ID:3WXcgaTH
>>578
もちろん読みました
今確認したところ問題ないのですが
他に考えられる原因はないでしょうか?
このままでは練れません
586nobodyさん:04/03/20 22:08 ID:???
じゃあ>584のページの10-11番、phpinfoの出力は試した?
それが動いて>583が動かないならショートタグの問題だろ。
ショートタグ使わないか、php.iniいじれ
587555:04/03/20 22:12 ID:3WXcgaTH
<?php
phpinfo();
?>

だけ記述してみたら
こんどは、

<?php
phpinfo();
?>

↑が表示されました
588nobodyさん:04/03/20 22:24 ID:???

.            |
〜〜〜〜〜〜〜〜|〜〜〜〜〜〜〜〜〜〜
.   >( c´_ゝ`)  |
.            |
.>( c´_ゝ`)     J
     >( c´_ゝ`)



.            |
〜〜〜〜〜〜〜〜|〜〜〜〜〜〜〜〜〜〜
.            |     >( c´_ゝ`)
.            |       
.            J   >( c´_ゝ`)
                    >( c´_ゝ`)
589nobodyさん:04/03/20 22:30 ID:???
釣れませんなあ〜
590nobodyさん:04/03/20 22:32 ID:???
>>587
PHPがapacheに組み込まれているかどうか確認してみよう。

コマンドプロンプト(DOS窓)を開き、
 telnet localhost 80
と入力してリターンキーを押す。以下 リターンキーを[R]で表す。
画面がクリアされ、入力待ち状態になる。
 GET / HTTP/1.0[R][R]
と入力する。打ったはずの文字が表示されないが気にするな。
画面に表示される文字の中に Server: Apache/〜 の行があるはずだ。
オイラの環境では、Server: Apache/1.3.27 (Win32) mod_jk/1.2.0 PHP/4.3.4 と表示される。
この行にPHPという文字が含まれているか確認汁。
591555:04/03/20 22:41 ID:3WXcgaTH
ありません
592nobodyさん:04/03/20 22:50 ID:???
httpd.confに AddModule mod_php4.c を加えるのかもなぁ。
他にAddModule 〜 って沢山書いてある行があるから、
その下あたりに、
AddModule mod_php4.c
を追加してから、apacheを再起動してみ。
593nobodyさん:04/03/20 22:53 ID:???
12時間は嘘だね。


566 :555 :04/03/20 15:43 ID:3WXcgaTH
Apache Web Server をインストールしようと思うのですが
途中で↓を入力する画面がでてきます。
いったなにをいれればいいのでしょうか?
(以下略)

583 :555 :04/03/20 21:38 ID:3WXcgaTH
apache,PHPをインストールして、test.PHPをhtdocs
の中に保存したのですが
http://localhost/test.php
みると真っ白なページがでてきます。
右クリックしてソースを見ると
(略)
となっています。なぜ実行されないのでしょうか
どなたかアドバイスしてもらえないでしょうか
今日はすでに12時間ぐらい四苦八苦してます。集中力が
なくなりアドバイスをもとめました。
594555:04/03/20 22:57 ID:3WXcgaTH
できませんでした。

>>593
本とです今日朝5時ぐらいからやってるんで
俺ばかか(w
595nobodyさん:04/03/20 23:03 ID:???
じゃあなんだ9時間かけて>555だったわけだ( ゚д゚)
596555:04/03/20 23:10 ID:3WXcgaTH
そうです(w
今日からPHPをやってみようともって
それでいろいろ調べたりしてたんで
apacheの存在を知ったのは今日です
597nobodyさん:04/03/21 00:49 ID:???
>555
何も解らないならphpdev使っとけ。
それが一番早道だ。
598nobodyさん:04/03/21 03:24 ID:???
ApacheをWinに・・・だが、
http://allabout.co.jp/career/database/closeup/CU20020713/
に連続数掲載を参考にする方がイイよ。
私もコレで動かしています。

599>525>536:04/03/21 13:03 ID:???
おかげさまで実用レベルまで速度を上げることができました。
それでも web 用なのに処理に 0.75 〜 0.9 秒ほどかかりますが…。
速度アップのポイントは、以下の通りでした。

1. 値をリファレンスで渡したり、変数に保持する
2. array_push() のかわりに [] メソッドを使う
3. ereg() のかわりに preg_match() を使う

1. は、大きな配列をリファレンスで渡すのはもちろん、
count() に渡す配列をリファレンスで渡すことが
大きな速度アップになりました。

2. は、array_push() を使うより [] メソッドの方が速いそうです。(常識?)
微妙な速度アップですが、役に立ちました。
600564:04/03/21 13:14 ID:2W7KIwm2
技術評論社の

実例で身に付ける
MySQL×PHPによる
本格Web-DBシステム入門

の関連ですが、同社のHPで検索をするとサンプルプログラムが出てきますね。
http://www.gihyo.co.jp/
やっぱ、本とはちょっと違うようです。

ではでは(´・ω・`)ノ
601555:04/03/21 13:26 ID:xd8jBeYb
やりました!

<?
echo "PHPインストール成功!!!";
?>

PHPインストール成功がちゃんと表示されました。
感激しました。みなさんありがとう。
白い巨塔最終回より感激したかも(w
602nobodyさん:04/03/21 14:04 ID:???
一応オッケーなのと適切に設定できたは違うんだけどな
ApacheにしろPHPにしろ細かい調整はまだまだ・・・
603nobodyさん:04/03/21 15:34 ID:???
555はちと生き急ぎすぎ
604nobodyさん:04/03/21 17:34 ID:jmarRdj5
PHPでXML-RPCクライアントをつくり、接続しまいしたが、
どうしても下記のようなエラーが出てしまいます。
X-Cache: MISS from xxx.xxx.domein
が問題の部分だと思うのですが、
ASP+XMLRPCクライアントでは繋がるのでプロキシーサーバーの設定
が問題ではないようです。
PHPにて、XMLRPC通信をしたことある人でこのようなエラーを解決された方
いましたらご助言いただけませんか?
恐らくXMLRPCが問題ではなく、PHPとPROXYの間での問題だと思うのですが。

HTTP/1.1 200 OK
Date: Sat, 20 Mar 2004 15:39:07 GMT
Server: Apache/1.3.29 (Unix) mod_perl/1.29
Content-Length: 446
Content-Type: text/xml
SOAPServer: SOAP::Lite/Perl/0.55
X-Cache: MISS from xxx.xxx.domein
Connection: close
605nobodyさん:04/03/21 20:32 ID:???
鯖がsafemodeでPHP動かしてるのでheader()関数が使えません。何か変わりになる関数ないでしょうか?
606nobodyさん:04/03/21 20:55 ID:???
仮に2ちゃんねるのような掲示板をPHP+MySQLで実装する場合、
スレッドごとにテーブルを持つべきですか?それともすべてのレスをひとつのテーブルにぶち込みますか?
607nobodyさん:04/03/21 21:00 ID:???
>>606
スレごとにテーブル
608nobodyさん:04/03/21 22:34 ID:???
>>606
・スレごとにテーブル
・全てのレスを1つのテーブル
は同じでは?
609nobodyさん:04/03/21 22:53 ID:???
>>606
スレ数可変なんだから1つ1つをテーブルにする奴は基地外
610nobodyさん:04/03/22 02:12 ID:zKPdzv8E
function abc($arg){}

と定義して、call_user_func('abc', "hogehoge");
で関数を呼ぶことができますが、
'abc' が関数として、定義されているかどうかを
調べる関数があれば、教えて下さい。
611nobodyさん:04/03/22 02:16 ID:???
>>599
MMcache や APC 使えばいいのに、と呟いてみる。
まぁそういう検証も面白い&役立ちますよね。
こんなのも参考にどうぞ。
http://www.blueshoes.org/en/developer/php_bench/
612nobodyさん:04/03/22 02:18 ID:???
613nobodyさん:04/03/22 02:20 ID:???
>>610
次の方法で見つかりましたが、何か。

・func でマニュアル内を検索
・call_user_func が掲載されているチャプターの導入にある関数一覧を見る

マニュアル代わりのage厨は逝っていいよ。
614nobodyさん:04/03/22 02:26 ID:???
>>612
ありがとうございます。

>>613
・func でマニュアル内を検索
なーるほど。
615nobodyさん:04/03/22 02:29 ID:???
マニュアルの歩き方を覚えないと PHP は書けません。
一通り目を通して、、
似たような関数からチャプター遡って調べるのが王道。
616再度質問です:04/03/22 02:30 ID:ebdZYBT6
PHPでXML-RPCクライアントをつくり、接続しまいしたが、
どうしても下記のようなエラーが出てしまいます。
X-Cache: MISS from xxx.xxx.domein
が問題の部分だと思うのですが、
ASP+XMLRPCクライアントでは繋がるのでプロキシーサーバーの設定
が問題ではないようです。
PHPにて、XMLRPC通信をしたことある人でこのようなエラーを解決された方
いましたらご助言いただけませんか?
恐らくXMLRPCが問題ではなく、PHPとPROXYの間での問題だと思うのですが。

HTTP/1.1 200 OK
Date: Sat, 20 Mar 2004 15:39:07 GMT
Server: Apache/1.3.29 (Unix) mod_perl/1.29
Content-Length: 446
Content-Type: text/xml
SOAPServer: SOAP::Lite/Perl/0.55
X-Cache: MISS from xxx.xxx.domein
Connection: close
617nobodyさん:04/03/22 11:22 ID:zmRA/0fr
サイト全体をphpで記述して、
なおかつ、smartyを使用していると
templatesフォルダの中が
激しくごちゃごちゃになるのですが、
みなさんはどうされてますか。
618nobodyさん:04/03/22 12:08 ID:???
パスワードをmd5関数でハッシュ値に変換して、DBへ格納するのですが、
ハッシュ化された文字列には英数字以外の記号は含まれるでしょうか?

DB格納時にquoteするかどうかなんですが、数個のサンプルを見る限り
quoteしている例が無かったのですが…。
619nobodyさん:04/03/22 12:32 ID:WuJHjyKE
PHP4のセッション管理って下記のどれを使っているのでしょうか?
1.クッキー
2.URLに引数として渡す(http://url.com/test.php?hennsuu=100)
3.hidden属性でHTMLに埋め込む
4.その他

その他の場合は、具体的にどうやっているのかお教え下さい。
(おそらく設定で変更できるんだろうけど、現在のうちの環境は
どうも1,2,3のどれでもないような・・・)
620619:04/03/22 12:41 ID:???
詩んできまつ。
621nobodyさん:04/03/22 12:50 ID:???
>>618
MD5ハッシュ値は32文字の16進数となります。
622618:04/03/22 13:04 ID:???
>>621
なるほど。ではquoteしなくても良いですね。
ありがとうございました。
623617:04/03/22 13:09 ID:???
やっぱり
マニュアルに載っていない
質問は
答えてもらえないことが
多い。
624618:04/03/22 13:15 ID:???
>>623
これという正解がないからじゃない?
私も同じように作ってますが(PHP+smarty)、カテゴリー別に
prefix付けるくらいですかね。
625nobodyさん:04/03/22 13:27 ID:???
はぁ?
猫でも考えれば分かりそうな事だからだろ。何悩んでるのか分かんねーよ。
サブディレクトリで分けたり、phpファイルと同じフォルダに置いたり、何とでもなる。
626nobodyさん:04/03/22 13:59 ID:???
>>623
逆。>>625 のいう通り何を悩んでるのか、釣りなのか。
それとも共通テンプレの整理の仕方の工夫でも聞きたいの?
627nobodyさん:04/03/22 16:17 ID:???
>>619
1,2,3しか無い。
628nobodyさん:04/03/22 16:21 ID:???
>>627
>>620で氏んでるので許してやれ
629nobodyさん:04/03/22 17:27 ID:WuJHjyKE
おすすめのエディタを教えて下さい。
630nobodyさん:04/03/22 17:28 ID:???
ageんな。検索しろ。
終了。

自分である程度探して試してどれにしようか迷っています、他にオススメがあれば等の聞き方ならまだ分かるが。
631nobodyさん:04/03/22 17:29 ID:???
ここに移動汁

使いやすいエディタって何よ?
http://pc2.2ch.net/test/read.cgi/php/991372719/
632629:04/03/22 17:38 ID:???
>>630
再び詩んできまつ。

>>631
ありがとうございます。
633nobodyさん:04/03/22 17:51 ID:???
>>629
俺は業務ではZendStudio。
個人では秀丸。
634nobodyさん:04/03/22 18:25 ID:???
>>629
PHPエディタ
ttp://fol.axisz.jp/php/
の作者、頑張ってるよね。

自分は xyzzy を使っているけど。
635nobodyさん:04/03/22 18:52 ID:eAoDZUbp
クッキーが使用可か不可か判定するにはどうしたらいいでしょうか?
教えてください。お願いします
636nobodyさん:04/03/22 18:56 ID:???
xyzzyこの2日試してるけどカーソルがスクロールで移動しちゃうのがな〜・・
637618:04/03/22 18:57 ID:???
>>635
適当なcookieを食わせて、セットされているか確認する。
638nobodyさん:04/03/22 18:58 ID:???
>>635
setCookieで食わせて確認したら?
639nobodyさん:04/03/22 19:27 ID:???
WindowzならEmEditor最強
HTMLもCSSもJSもPHPもPerlもXMLもJavaもCもC++もC#もこれ一つで事足りる。
640nobodyさん:04/03/22 20:12 ID:???
おれはMeadow2とgtagsを組み合わせているな

PHPを使ってスクリプトを作成するとき、デバッガって
つかっています?
ZendStudioはついていましたよね。
641nobodyさん:04/03/22 20:14 ID:???
>>639
最強はMeadow。
しかし俺はvivi。
642nobodyさん:04/03/22 20:16 ID:3C9md7bY
>>623
おれはサブディレクトリに置いているな

で呼び出すときは
$smarty->display('bar/foo.html');
643nobodyさん:04/03/22 20:47 ID:???
だから他所でやれよ>エディタ厨
644nobodyさん:04/03/22 20:54 ID:???
使いやすいエディタって何よ?
http://pc2.2ch.net/test/read.cgi/php/991372719/l50
645nobodyさん:04/03/22 21:36 ID:???
>>643
まぁ最初のネタ振りが悪かったのでスルーして欲しかったのだが、 >>643 の言い分も分かるが、PHP には IDE があるしな。建設的な議論も出来るよ。
それにみんなこの手のネタ好きだよね。一度出たら必ず反応してくれる。

今使ってるのは Eclipse + Xored だが、更新遅いので他も探してる。色々あるけど、マルチバイト文字化けるのが多いんだよね。
PHP5 への対応も、どうしてもワンテンポズレるし。

Eclipse メインで、emacs 系のエディタも使って対応って感じ。
646nobodyさん:04/03/22 23:12 ID:???
EmEditor入れてみたけど1分経たずに削除した
どこが最強なのかわからん

SakuraにJavascriptのキーワードファイルと
Zend並みの補完機能があれば言う事ないんだが、、
647558:04/03/22 23:43 ID:???
>>551
ウチでも結局、色々設定変えていくつかの主要Exteinsion加えてみたら、
Startupでロードエラーで落ちるようになった...
結局βに戻しますた。RC1なんか良くない。
648nobodyさん:04/03/22 23:50 ID:???
>>647,551
・・あの。PHPの使われ方を考えても、まずLinux版から力が入ってWindows版は後回しだと思うんですけど。
649nobodyさん:04/03/23 00:39 ID:???
結局のところは、notepad.exe
コレ
650nobodyさん:04/03/23 00:42 ID:???
EDLIN以外は屑。
651nobodyさん:04/03/23 01:08 ID:???
notepad?おまいは全部SJISで書くのか?
652nobodyさん:04/03/23 01:22 ID:???
んなわけねーだろ
653558:04/03/23 01:23 ID:???
>>648
そんなのは判ってるよん。PHP5を使うだけが目的じゃなくて
SAPIやOSの違いによる差異もテスト項目に入ってるんで。
# Winのビルド環境持ってないから流石に自家ビルドしてチェックはしない

Linux以外のUnix系もメインストリームじゃないよな。開発者の多くが
Linux使ってて、尚且つそれでテストする訳だからしょうがないけどね。
654nobodyさん:04/03/23 04:09 ID:???
>>646
ファイルタイプ別の設定がかなり細かくできる。
1個のエディタで全部のソースファイルを扱う俺には最適だと思うが。
何か不満でも?
655nobodyさん:04/03/23 04:12 ID:???
たぶん高機能すぎて1分たらずでは使いこなせなかったんじゃない?
656nobodyさん:04/03/23 04:16 ID:ZeQHdipv

文字列中から半角スペースをすべて取り除く方法について質問させてください。

$newname = str_replace( " ", "", $oldname );

としたのですが、なぜか出力させてみると半角スペースが残ったままなのです。
""で置換しても、スペースを削除したことにはならないんでしょうか・・・?

どなたかお願いいたします。
657nobodyさん:04/03/23 04:21 ID:???
$hoge = "AA BBB C DD EE F";
echo $hoge = str_replace(" ","", $hoge);

問題ないが?
658nobodyさん:04/03/23 05:05 ID:???
$oldnameを出力したりしてないか?
659nobodyさん:04/03/23 05:14 ID:???
つーか、それくらいvar_dumpとかで値取りながら原因探せるだろう。。。。。。。。。。。。

そういった一つ一つの事が出来ない初学者が多いからどこも水準以下の質問で溢れかえるのだと思うが。
660404.HDML ◆StMXML.EXE :04/03/23 08:16 ID:ey7jctQ9
PHPAccelerator(以下、PHPA)に付いてお聞きしたいのですが、
仮に"Apache2(prefork MPM) + PHP4(PHPA無し)"環境で得られるPHPスクリプトの
実行速度を基準の"1.0倍"とした場合、以下それぞれの環境では一体、約何倍の
パフォーマンスが得られるのでしょうか?出来れば、PHP/4.3.5正式版がリリース
される辺りでPHPAから離れたいな、と思っておりまして。。

・Apache2(prefork MPM) + PHP4(PHPA有り)
・Apache2(worker MPM) + PHP4(PHPA無し/不可)
・Apache1 + PHP(PHPA無し)
661nobodyさん:04/03/23 08:40 ID:???
>>660
マシンやスクリプトの出来、通信環境、その他諸々に依存するから、
何倍とか言えるわけ無いでしょ。
ttp://pear.php.net/package/Benchmark とか使って計測したら?
662nobodyさん:04/03/23 10:13 ID:???
>>659
取っ付き易いほど、厨のレベルは低くなるよ。
これはしょうがないって。
それがPHPのいいところの一つでもあるんだし。

もし、それが嫌な人が多いなら、
初心者スレ作って分けるしかないのかな。
663nobodyさん:04/03/23 10:29 ID:???
http://jp2.php.net/get/php_manual_ja.chm/from/a/mirror
から日本語マニュアルchm版をダウンロードしたのですが、
中身が中国語?のようになってしまってます。
日本語のファイルはどこにあるんでしょうか?
664nobodyさん:04/03/23 10:53 ID:???
>>663
散々既出。たまには検索ヨロ。
665404.HDML ◆StMXML.EXE :04/03/23 11:00 ID:???
>>661
ありがとうございました。
666663:04/03/23 11:01 ID:???
>>664
このスレ検索してみましたが、>>395はもう無いみたいだし
他に解決法も載ってないみたいなので聞きました。
667nobodyさん:04/03/23 11:02 ID:???
>他に解決法も載ってない
解ってるなら訊くなよ
668663:04/03/23 11:04 ID:???
>>667
載ってないことを聞くのは間違いなんですか?
669nobodyさん:04/03/23 11:06 ID:???
解決できてないってことじゃないのか?
わからんけど
670663:04/03/23 11:09 ID:???
>>669
それなら納得です。ありがとうございました。
671nobodyさん:04/03/23 11:17 ID:???
>>665
PDFで悪いが、
ttp://www.php.gr.jp/seminar/20020817/pdf/KOYAMA-datetime.pdf
ここに使い方の例があるから、測定したら報告してね。

参考にするからw
672nobodyさん:04/03/23 11:29 ID:???
セッションでログインの管理とかやってるんだけど
どうも我流なのでしっくりこない。それなりに動いてるけど。

ある程度の定石みたいなテンプレみたいなのがほしいんだけど
まあやり方や求める強度、DBの有無で全然違ってくるしな。

それでもやっぱりログイン管理のいろんなサンプル集がほしいな。
どっかにいいとこない?
673nobodyさん:04/03/23 12:27 ID:???
>>663
cvsで取得して自分で修正してmake。
みんなも喜ぶ。
674nobodyさん:04/03/23 12:29 ID:???
>>632
PHPのライブラリやアプリケーションなんて腐るほどあるんだから適当に集めろよ。
> まあやり方や求める強度、DBの有無で全然違ってくるしな。
って言えるなら探し方も判断も自分で付くだろ。

----------------------終了--------------------------
675674:04/03/23 12:29 ID:???
訂正
>>632じゃなくて>>672ね。
676nobodyさん:04/03/23 13:46 ID:???
>>6
ttp://bugs.php.net/bug.php?id=27604
本家には報告済みだが、まだ直ってない。

・・・つーか、bugs.php.net落ちてないか?
677nobodyさん:04/03/23 13:57 ID:???
>>676
RCのリリース前後から落ちてるみたい。
slashdotedとPHP5のバグレポが雪崩打って、、とか (;´д`)
678nobodyさん:04/03/23 14:00 ID:???
>>676
判らんが、MLのWeb処理関係はエラー出て駄目だな。
同じサーバ?
679nobodyさん:04/03/23 16:24 ID:???
PHPUsersMLにとんでもないやつが降臨したな
680nobodyさん:04/03/23 16:26 ID:???
>>679
PHP-usersのヲチスレがあるのでそちらへどうぞ。
それにとんでもないやつ続きで、誰と言わないと分からないって。
681nobodyさん:04/03/23 18:24 ID:hqGLzQ7+
chm版マニュアルが中国語なのは何かの嫌がらせでしょうか?
キーワード検索のところの文字化けが一向に直らないのもイジメでしょうか・・・?
682nobodyさん:04/03/23 19:15 ID:???
俺たち嫌われてるもんな
683656:04/03/23 19:47 ID:Ij00iThG
>>657,658
レスありがとうございます、解決しました・・・・・

原因はreplaceの部分ではなく、ほかの部分でした。
正規表現で()にくくった部分を出力させていたんですが、
出力させる配列の$reg[0]はstr全体が入るというのに気づかず
0から順番に扱ってたためおかしい事態になってたようです

>>659,662
(;´д`)厨な質問してすまんでした。。。
しかし、var_dumpなんてあったんですか。知らなかった
質問スレのテンプレなんかに書いていただければ、ここでの無駄な質問も減るかも・・・
今後使わしてもらいます。
684& ◆R7PNoCmXUc :04/03/23 20:35 ID:???
>>683
>var_dump()を print_r()と比較して見て下さい。
ってことで、print_r()もヨロ

phpinfo()レベルに有名になっていいと思う>var_dump()とprint_r()
685nobodyさん:04/03/23 21:33 ID:???
ヴァー
var_dump使えねぇ
686nobodyさん:04/03/23 22:02 ID:???
利用不可能なのか、使う価値が無いのかどっちだ。
表示が肌に合わないなら PEAR::Var_Dump 使いなよ。
687nobodyさん:04/03/23 22:40 ID:???
ヒアドキュメントのなかで、変数を展開するには
こうかけば良いのですが、

print <<<EOH
{$hash['string']}
EOH;

ヒアドキュメントのなかで、関数を呼び出すには
どうすればいいですか? できないですか?
688nobodyさん:04/03/23 22:41 ID:???
できない
689687:04/03/23 22:43 ID:???
そうですか。ありがとうございました!
素早いレスに感謝です。
690nobodyさん:04/03/23 22:44 ID:???
なんでこういう事が出来ないんだろう?

と思ったら、他に最適な方法が用意されていると思った方がいい。
691nobodyさん:04/03/23 22:49 ID:???
なんでこういう事が出来ないんだろう?

と思ったら、こんな糞言語捨ててRubyに乗り換えたほうがいい。
692nobodyさん:04/03/23 22:51 ID:???
できるほうがおかしいと思え。
693687:04/03/23 22:52 ID:???
>691
Ruby でつくったやつを PHP に移植するお仕事なんです。
PHP は関数が豊富にあって助かるけど、
かゆいところに手が届かないという感じです。
でも OOP は Perl より楽にできるので、ありがたいです。
694687:04/03/23 23:18 ID:???
よく考えてみたら、PHP ってどこでも ?> を書けるのですよね。

function display(){
    if($foo){
        ?>
        <html><body>...
        <?= bar() ?>
        <?php
    }
}

こういう書き方でいくことにしました。
(お手数かけてすみません・・)
695nobodyさん:04/03/23 23:27 ID:???
perlにおいて、csvファイルを配列に取り込み、複数項目でソートをかける為に
下記のような方法を取っていたのですが、
これをphpで行う場合、multisortでは1項目でのソートしか出来ないと
マニュアルに記述されていますが、どのような処理でなら可能でしょうか?

@DATA = sort { (split(/,/,$b))[1] <=> (split(/,/,$a))[1] || (split(/,/,$a))[2] <=> (split(/,/,$b))[2]; } @DATA;


696nobodyさん:04/03/23 23:29 ID:???
>>693
理不尽な仕事だな。
697nobodyさん:04/03/23 23:56 ID:MZvn1Ok8
PHPでウェブアプリを作っているのですが、ファイルの管理とかは
どうしてますか?CVSでバージョン管理でしょうか?
あと、画面の遷移や引数などの関係はシーケンス図にしていますが、
一般的にはどうしているのかとか。
urlでも本でもいいですので、そういったプロジェクト管理に役立ちそうな
情報へのポインタを教えていただけませんでしょうか。
698nobodyさん:04/03/24 00:01 ID:???
>>694
テンプレート使うと楽しいんだけどね。本当は。Flexy とかいいよ。

# PHP 使いで Ruby で仕事中
699687:04/03/24 00:47 ID:???
>698
なるほど、テンプレートですか・・。
移植はもうほとんど終わっているのですが
保守効率があがりそうでしたら、テンプレート導入も考えますね。
どうもありがとうございました。
700nobodyさん:04/03/24 00:50 ID:???
テンプレのSmarty使ったけどもう呆れたよ。
RubyならERB使ってbinding渡せばいいだけの話なのに。
701nobodyさん:04/03/24 00:56 ID:???
>>700
smarty使いまくりですが・・・。
呆れた部分の詳細を教えてくださいな。
702nobodyさん:04/03/24 00:56 ID:???
Ruby の方が lightweight なのはみんな分かっている話。
使い分け出来ないのならさっさとシッポまいて Ruby スレに帰れ。
703nobodyさん:04/03/24 12:31 ID:???
PHPでMP3のタグ情報をとりたいのですが
pearのclassではすべての情報がうまくとれません。
取得方法をご存知の方いらっしゃいますか
704nobodyさん:04/03/24 13:26 ID:???
>>703
バイナリで覗けばいいだろう
MP3のタグ譲歩運あn
705nobodyさん:04/03/24 13:39 ID:???
>>703
pear以外にもたくさんあるよ
さがしてみ
706nobodyさん:04/03/24 13:40 ID:???
XMLをSAXで処理しようと勉強しています。
xml_parser を利用しているのですが、ハンドラ関数というのはどういう意味なのでしょうか?
役割は解説書を読めば何となくわかるのですが、
この関数の意味の定義といいますか、どういう動作をする関数をハンドラ関数と一般的に言うのかを教えていただけないでしょうか?

Googleで「ハンドラ関数とは」で検索してみたのですが、ハンドラ関数の意味や動作の定義について
述べられているところが見つからなかったので、ここで質問をさせていただきました。
707nobodyさん:04/03/24 13:42 ID:???
PHPのCLIを使っている方はいらっしゃいませんか?
RedHat9+PHP4+PostgreSQLでPHPをシェルスクリプトのように利用してみようと思っています
PostgreSQLのデータの吐き出しを定期的に行いたいと思ったのですが、
CLIだとPostgreSQLへの接続がpg_connectで行えない(undefined?)になってしまいます

どうすればPostgreSQLへ接続出来るでしょうか?
708nobodyさん:04/03/24 13:51 ID:???
>>704 >>705
ありがとうございます。
pear->MP3/ID.php
読みとり用の関数を見落としていました。
709nobodyさん:04/03/24 14:08 ID:???
>>706
XML を扱う関数の事なんでは?山勘だけど。

1. 英語版当たる
2. (゚д゚)ウマ-
3. ついでに適切な訳でなければ PHP-doc-jp に突っ込む
4. みんなで (゚д゚)ウマ-
710nobodyさん:04/03/24 14:47 ID:???
>>706
コールバック

ちなみに xml_parser() はめっちゃ使いにくい。
クラスの中に閉じ込めないととてもじゃないが使えない。
711nobodyさん:04/03/24 15:02 ID:???

XSLTの
http://www.php.net/manual/ja/function.xslt-process.php
3例目に出ている

$arguments = array('/_xml' => $xml,'/_xsl' => $xsl);
$xh = xslt_create();
$result = xslt_process($xh, 'arg:/_xml', 'arg:/_xsl', NULL, $arguments);

この変態的な方法って何か意味あるの?
712706:04/03/24 15:31 ID:???
>>710
コールバックを調べてみます

>>709
XML処理の関数と言うことではないようです。
検索するとApacheのハンドラ関数なども出てきますので。

xml_parse () が使いにくいというのは、単に可読性が落ちると言うことなのでしょうか?
713nobodyさん:04/03/24 15:59 ID:???
>>707
undefined? の? って何だ?
undefined functionだったら、CLIの時とモジュールの時とで違うphp.iniを読み込んでるのかも知れないな。
php -mや php -i で確認してみ。

他にも環境変数や実行ユーザの権限でもツマづきやすいだろうから、
CLIの時とモジュールの時とで、phpinfo()を比較することをお薦めする。
714707:04/03/24 16:44 ID:???
>>713
undefined functionでした。中途半端で申し訳無い
php -mを試みた所、[PHP Modules]欄にpostgresはありませんでした

もうちょっと設定面をさぐってみます
715nobodyさん:04/03/24 17:42 ID:???
>>712
やってみりゃわかる。
普通は何らかの構造にマッピングしたいのが普通だろうけど
そのあたりの管理は自前でやらにゃならん。

単にダンプして眺めたいだけなら別に構わん。
716nobodyさん:04/03/24 17:59 ID:???
>>707
煩雑にポスグレ使うなら、ビルドするときにポスグレ拡張を
PHP CLI本体に組み込んじゃいなよ。
717nobodyさん:04/03/24 19:20 ID:???
俺の鳥頭じゃもうムリだ…ボスケテ…

まずhttp://***/index.phpという大元のPHPを作成し
index.php?choice=ABC というURLになると abc.php という別のページを表示、
index.php?choice=DEF というURLになると def.php というこれまた別のページを表示するには
どう書けばいいのでしょうか。

それなら直接abc.phpやdef.phpにA HREFでリンク貼れやと言われそうですが
できればファイル名を見せたくないもので…。
どなたかお願い致します(´・ω・`)
718nobodyさん:04/03/24 19:33 ID:???
>>717
マニュアルを暗記するまで山に篭る。
話はそれからだ。
719nobodyさん:04/03/24 19:37 ID:???
煽りたいわけじゃないが、そんな状態でこの先コーディング大丈夫か?
自分には不向きなことを見極めるのも大切だぞ

switch($choice){
case 'ABC': include("abc.php");break;
....
}
720nobodyさん:04/03/24 20:05 ID:???
719に加えて言うなら、HTTPヘッダやhtmlエレメント(<html>とか<head>)を
2重出力しないように注意しとく。
721712:04/03/24 20:10 ID:???
>>715
初めてプログラムを書いているので、
XMLの処理はこんなもんだと思っていたし、マッピング自体がよくわからない…。

他に XML を処理すると思われる関数に DOM と XSLT があるけれど、
どれが一番便利なの?
722nobodyさん:04/03/24 20:50 ID:???
>>721
XMLで何がしたいん?
723nobodyさん:04/03/24 20:56 ID:EMx27tbE
今、PHPlibでsession, auth, permissionの処理をやっているのですが、
pearで同じ事を行おうとするとどういう感じになるのでしょうか?
724721:04/03/24 20:58 ID:???
>>722

Amazon Web Service の XML 処理。
公開されている XML 処理の PHP を参考にして、いちから自分で作っている。

リクエストがある度にXML を取得せずに、処理したデータをMySQLに保存して
キャッシュ化したい。

WEBデザインを仕事にしているけれど、

 変数を外部から取得したり、
 変数の汚染を調べたり、
 取得したデータをデータベースに保存したり、
 データを、意図するレイアウトで出力したり

することができて、(今後Perlを勉強するにしても)PHPでいろいろ覚えられそうなので、
練習代わりにやっている。そして、仕事の幅を広げたいかな。

慣れたら、JavaServletで処理ができるようにしたいかな(業務に生かしたい)。
725nobodyさん:04/03/24 21:02 ID:???
デザイナはんにそこまでされたらワシらおまんま食いあげでんがな
726nobodyさん:04/03/24 22:08 ID:???
文字列の配列 $list=array("a","b","c") を
"a,b,c" みたいに連結するうまい方法ってなんでしたっけ

「どうしてナナマタなのにヤマタノオロチっていうんだろう」
というのび太の心境になって考えましたがわかりません
727nobodyさん:04/03/24 22:25 ID:???
>>724
nusoap でええやん。
728nobodyさん:04/03/24 22:25 ID:???
729nobodyさん:04/03/24 22:26 ID:???
>>726
ジョイーン
730nobodyさん:04/03/24 22:34 ID:???
>>728-729
(゚∀゚)サンクスコ
731nobodyさん:04/03/24 22:41 ID:???
foo   1 (改行)
bar   2 (改行)
baz   3 (改行)
というように改行で区切られているテキストから
左の要素を添え字、右の要素を値とした
連想配列を作るときに、
732nobodyさん:04/03/24 22:49 ID:???
めっちゃ気になる…
733nobodyさん:04/03/24 22:50 ID:???
ホントに…このあとどう続くん…
734nobodyさん:04/03/24 22:54 ID:???
続きはまだか・・
735nobodyさん:04/03/24 23:01 ID:???
>>726
それは八俣(八岐)のヲロチであって、
八股(八叉/八胯)のヲロチではないからナリよ。
前者のマタは(枝分かれしている様を含み)「枝そのもの」のことで、
後者のマタは枝分かれしている「分かれている部分」のこと。

来週の試験に出しますから憶えておくように。
736nobodyさん:04/03/25 01:06 ID:???
このスレは今から>>731の続きを予想し、あらかじめ回答しておくスレになりました。
737nobodyさん:04/03/25 01:07 ID:???
ということで

while ($line = fgets($fp)) {
 list($key, $value) = explode("\t", $line, 2);
 $array[$key] = $value;
}

かな。あってたら何かくれ。
738nobodyさん:04/03/25 01:21 ID:???
[続き]
連想配列を作るときに、突然美味しいラーメンが食べたくなりました。
PHPとは直接関係がないのかもしれませんが、ここ以外に訊ける場所がありません。
どうかラーメン初心者にも判るように、美味しいラーメンを食べられる方法を教えてください。
739nobodyさん:04/03/25 01:26 ID:???
「ファイルのダウンロード」 をさせる方法がわからんちん

ヘッダーを送ってやればいいんだおるけど
なんのへっだを送るんだろ
ただのバイナリデータなんだけど
740nobodyさん:04/03/25 01:29 ID:???
そんなもんブラウザ依存だからどうしようもない。
header("Content-type:application/octet-stream");
を送ってもIEはOSの設定に従うし
MozFirebirdはどう処理するかユーザに聞くダイアログを出す。
741724:04/03/25 02:49 ID:???
>>725
仕事の幅を広くして、もう少し都心寄りに住みたいのよ。
けっこう切実なの。
742724:04/03/25 02:51 ID:???
連続カキコですまん。
>>725
nusoap.phpの存在は知っているの。
でも、とりあえずはもっと身近な XML 処理からトライ。

正直に言えば、SOAPに関する書籍を買う前に、
PHP関連の書籍を買って、今月金欠なのさ。
743nobodyさん:04/03/25 05:29 ID:???
連想配列を作るときに、
-続き-
彼女からメールが届く
「別れて」
(゚Д゚ )ウマー
744nobodyさん:04/03/25 09:55 ID:???
>>742
じゃー nusoap.php のソースを眺めてたら勉強になると思うよ。
745nobodyさん:04/03/29 03:59 ID:5UcTtVR/
|д゚)<復活?
746nobodyさん:04/03/29 07:46 ID:oOyKdqgq
サーバ屋さんが使う設定ツール(HDEみたいなヤツ)ってのは
自作すると面倒でしょうか

747nobodyさん:04/03/29 12:46 ID:???
復活おめ。

>>746
webmin

当然自作可能だけど、HDE には価格相応に作り込まれてるんぢゃねーの。
ケースバイケース。
748nobodyさん:04/03/29 15:59 ID:???
配列はどれぐらいのサイズのデータを保持できるのでしょうか?
749nobodyさん:04/03/29 16:41 ID:???
誰が保存してたスレか分からないけど 745〜789 がバッサリ消えちまったな
750nobodyさん:04/03/29 18:00 ID:???
とあるプロセスがflockでロッキンしたまま死んだらどうなるよ?
751nobodyさん:04/03/29 18:08 ID:???
snoozerあたりが神に祭り上げます
752750:04/03/29 18:45 ID:???
とまあ聞くだけだとアレなんで実験してみたが
flockしたまま死ぬとなんか開放しますよ?みたいな結果だった。
思うにプロセスが死ぬとき自動的にfp開放する関係上
flockでもそのあおりを食らってロックイズデッドだね?
753nobodyさん:04/03/29 20:55 ID:???
>>750
flockとは違うけど、pconnectして確保した永続的リソースでテーブルロック
したまま死ぬと、DBMS側でタイムアウトするまでロックされっぱに成ります。
754nobodyさん:04/03/29 23:26 ID:rZFC6nTV
phpとflashを使った変数のやり取りで、
echoを使って&***=*といった状態に出力せずに、$***の状態で、phpからflashに変数を
読み込む方法をご存知の方がおられましたらご教授いただけませんでしょうか。;_;
755nobodyさん:04/03/30 00:12 ID:???
腐女子面して泣き顔付けてageるなよ。
社会人だろ?仕事なんだろ?

無理。
以上。

それぞれのアプリケーションがどのレイヤーでどう動作するかを理解していれば出ない質問。
出来るかどうか知らねーが、シリアライズとかXML-RPCのように間に一つ挟めば可能かもね。
756nobodyさん:04/03/30 01:32 ID:???
>>755
>シリアライズとかXML-RPCのように間に一つ挟めば可能
PHPプログラマーズマガジンの2003年3月号に、XEBXMLつうのを規定して
ActionScript-PHP間通信やってる例が載ってる。ActionScriptを使いこなしてる
人は既に似たようなことやってるか、やってなくても読めば直ぐに理解できるテク。
同2003年8月号だと、FLASH RemotingのバックエンドのPHPを使う解説やってる。
これはなかなか面白そうだが、まだ私は手は出してない。

ActionScriptはかなり高度なことが可能な言語だが、デザイナー上がりが
動きを付けるのだけに使ってる感じである意味不遇な言語だな。
#JavaScriptも然り。
757755:04/03/30 02:08 ID:???
>>756
ああ、なんか >>756 のお陰で段々思い出してきたぞ。
そんな記事出ていたとは知らなかった、ありがとう。

海外のどこかで見たんだけど、MacromediaのCommunicationServerか何だったか、
ひょっとしたらタダのColdFusionとの接続だけかも知れないが、
FlashのサーバーサイドソリューションをPHPでオープンソースでやっちゃおうぜ、みたいなプロジェクトがあった。
そういえばMXが出て少し経った辺りで盛り上がっていたんだよな、海外では。

> デザイナー上がりが
> 動きを付けるのだけに使ってる感じである意味不遇な言語だな

Flashは知らないがDirectorになるとLingoにGUIかぶせた状態だし。
デザイナーも情報を扱うデザインを行う以上、プログラマに近い素養はあると思う。
Flashだと中村勇午氏とか。
他にもプログラムを手段として使いこなしデザインやCGばりばりな人は居る。メガデモ界隈とかね。
先駆者は居るけど専門や本で量産型製造はされてないって感じ。
そういう人ならActionScriptの楽しさも100%引き出されるんだろうな。
758nobodyさん:04/03/30 12:33 ID:sj3AdYty
ちょっと質問です。
私はASPとJavaScriptの経験が三年ほどあるのですが、
この度はじめてPHPの仕事をすることになりました。
ASPとはやっぱり勝手が違うでしょうか?
文法以外に、何か違いに注意する点等がありましたら、ご教授お願いします。
759nobodyさん:04/03/30 13:14 ID:???
自分も ASP -> PHP と来ましたが全然違います。
PHP 自体がクセの少ない言語なので苦労は少ないと思うけど。
つーか業務で仕方なくやってたが ASP (VBScript) 時代は苦痛でしか無かった。
元コードが腐敗してたのが理由でもあるが。無印 ASP はステ。

PHP に限らずその言語のやり方や考え方、特徴を学ぶのが大事。
ここでも読めば如何かと http://cruel.org/freeware/hacker.html

あとコミュニティにポストする時は必ず暫くヲチして、同じ質問の繰り返しやローカルルールを学んだ方がいいよ。

# つまり sage ろ、と。
760nobodyさん:04/03/30 14:33 ID:???
>>758
言語仕様の部分ではASPよりも楽に感じると思う。
ASPやってるからサーバサイドの概念は判ってる筈なのでそれも有利。
あとは自分がASPで関わってきたプロジェクトがどれだけASPに積極的に
関わってきたかによる。例えば独自にテンプレートシステムを作っていたとか、
DBアクセスの抽象化を行っていたかなど。そういった従来使っていた周辺物を
捨てる必要がないのであれば、PHPに慣れた人が傍にいてリードしてくれれば
直ぐに慣れると思う。ただセキュアな部分やコアなところはやっちゃ駄目だよ。
初心者は業務システムだったら"業務"の処理のところをやるとかね、そんな感じ。
761nobodyさん:04/03/30 14:35 ID:???
やっちゃ駄目って言われても、必要に迫られたらやるしかない訳だけどね
762nobodyさん:04/03/30 14:44 ID:???
触らないでいいならコアな部分なんて触りたくねーよ
やっちゃダメって言われてやらないでいられる世界に行きたい。。。
763nobodyさん:04/03/30 14:47 ID:???
PHP だとコアな部分触るのも楽しいんだけど。
小規模開発だからか。

しかし ASP は仕様自体やる気でなかったけど、、テンプレートシステムなんてあったのね。
764nobodyさん:04/03/30 15:41 ID:mRhpFbSG
ファイルの文字を表示するとき、なぜか必ず「ァ」の文字が化けてしまいます。どうすればいいのですか?S-JISで
開発してます
765nobodyさん:04/03/30 15:46 ID:???
>>764
まずはEUCで書こうね。
766nobodyさん:04/03/30 15:54 ID:???
>S-JISで開発してます
この辺が釣りっぽい
767nobodyさん:04/03/30 15:55 ID:???
内部はEUC、コレ。
常識ね
できればUTF-8が望ましいが
768764:04/03/30 15:57 ID:???
文字コードってEUCのほうがいいんですか?
769nobodyさん:04/03/30 16:05 ID:???
>>768
   〃∩ ∧_∧
   ⊂⌒( ´・ω・)くぜんぶマニュアルに書いてあったでつ
     `ヽ_っ⌒/⌒c http://www.php.net/manual/ja/ref.mbstring.php
770nobodyさん:04/03/30 16:08 ID:???
>>768
これも釣りっぽいが
最近じゃS-JISを使えるのもあるが基本的にPHPはEUCで書かないと
日本語を扱った時に文字化けする。今はEUCで書いとけ。
入門本にもそれくらい書いてあると思うがな・・・
771760:04/03/30 16:10 ID:???
>>763
ASP界のスタンダードなテンプレや抽象化DBアクセス
(これはADOがある程度カバーしてるから素のPHPよりは上かな)
は無いですよ。PHPでもちゃんとしてるところならば、PHPlibぽいのや
Smarty以外の独自テンプレートを昔から作って使ってるところが多かったと思うけど、
ASPの制限下でもやる会社はそれなりにやってます。手を抜くために"頭"を使う会社なら。
772nobodyさん:04/03/30 16:49 ID:???
S-JISって書いたら兵装みたいだな (゚∀゚) 格好いい
やっぱShift-JISがスタンダードだしな。
携帯対応求められても全部SJISで通しておけば余計な心配せずに済むしな。







なワケないだろ ( ゚д゚)
取り敢えずZend-Multibyteでも調べてこい。
会社でやってるんなら文字コードの処理系分かってないんだからちゃんと分かる人にフォローして貰えyo!
773nobodyさん:04/03/30 17:24 ID:???
<?php
$to = "[email protected]";
$subject = 'ご注文完了のお知らせ';
$body = 'ご注文完了のお知らせ';
mb_language("Japanese");
mb_send_mail($to, mb_convert_encoding($subject, "iso-2022-jp", "SJIS"), mb_convert_encoding($body, "iso-2022-jp", "SJIS"));
print "OK";
?>
というメールを送るとなぜかサブジェクトの "了" という文字以降が
文字化けしてしまいます。
この漢字使用する時以外は問題ありません。
これを回避するにはどうすればいいのでしょう?
774nobodyさん:04/03/30 17:31 ID:???
>>773
その漢字を利用しない

ほかにも使えない漢字は結構あるので
ぶつかるたびにメモしておいて
一覧表を作っておくと便利ですよ
775nobodyさん:04/03/30 18:00 ID:???
>>773
そのPHPはスクリプトエンコーディングにSJISが使える環境なのか?
776nobodyさん:04/03/30 18:31 ID:???
SJIS まんせ━━━━━(゚∀゚)━━━━━!!!! 今日はSJIS祭り
777nobodyさん:04/03/30 19:09 ID:???
777get, zuzaa
778nobodyさん:04/03/30 19:27 ID:???
>>774
それというのは、iso-2022-jpへの変換の場合にのみの
現象なのでしょうか?
それともPHPのバージョンによるものとか?
またはメールのサブジェクトはそういうものなのですか?

>>775
SJIS->EUC-JP や EUC-JP->SJIS などは問題なく利用できます。
779nobodyさん:04/03/30 19:50 ID:???
>>778
echo "表";
が正しく処理されるのか?

問題を認識していないだけに思えるが。
780nobodyさん:04/03/30 19:58 ID:???
>>779
ネタにマジレス、(゚A゚) イクナイ

>>775 とかも付いてるのに無視って>>773,774でキャッチボールしてるんだから、邪魔しちゃ悪いyo!
781nobodyさん:04/03/30 20:09 ID:???
SJISの文字化け問題は初歩の初歩
こんなもんぐぐれば山ほど回答が出てくるのに
それすらもしようとしないアフォはプログラムなんて組まんでよし
明日から工事現場で交通整理でもしてなさい
悪い事言わんから
782nobodyさん:04/03/30 20:47 ID:???
>>781
ただ、mb_send_mailに関しては"SJISの"という点とはちょっと違う。
ま、初歩の2歩目ぐらいか。

>>778
>iso-2022-jpへの変換の場合にのみの現象
>PHPのバージョンによるもの
>メールのサブジェクトはそういうもの

空回りも含まれてるけど、取り合えず全部自分で試せよ。
php.iniの中と、スクリプト中のマルチバイトに関する設定
(mb_language("Japanese");とかね)に注意して。
比較はPHP4.3.2と4.3.3でしてみ。ただ過去のバージョンでの
挙動を気にするような資産があるわけでも無さそうなので
PHP4.3.5でだけで上手く動くようにしとけば良いか。

無理してmb_send_mail関数使うこと無いんでねぇと思うけど?
どうせmailのラッパーなんだし。
783nobodyさん:04/03/30 22:01 ID:???
Windows環境でも文字コードはEUC-JPのほうがいいんですか?
また、EUC-JPにHTMLも変えたほうがいいんですか?
784nobodyさん:04/03/30 22:05 ID:???
>>783
いいんです
 いいんです
785nobodyさん:04/03/30 23:30 ID:???
>>783
>>772 読み直して出直してこいと。
自分で調べないから釣られる。
786nobodyさん:04/03/30 23:45 ID:???
PHP使ってるやつ頭悪すぎ。
787nobodyさん:04/03/30 23:47 ID:???
代表例登場
788nobodyさん:04/03/31 00:09 ID:???
春でつねぇ・・・
789nobodyさん:04/03/31 00:26 ID:???
またーり (´・ω・`)
790nobodyさん:04/03/31 00:32 ID:Iyf+RzNu
複数のファイルをアップロードしてんですが、
元ファイル名はちゃんと複数取得できます。
でも tmp_name がなぜか最初のものしか取得できないんですけど、
これはなんぜでしょう。サーバーの仕様?
791790:04/03/31 00:35 ID:???
そーすです test.php

<html><body>
<form enctype="multipart/form-data" action="test.php" method="post">
<input type="file" name="userfile[0]"><br>
<input type="file" name="userfile[1]"><br>
<input type="file" name="userfile[2]"><br>
<input type=hidden name=menu value=up>
<input type=submit>
</form>

<?
extract($_POST);extract($_FILES);

print_r($_FILES['userfile']['name']);
print_r($_FILES['userfile']['tmp_name']);

?>

</body></html>
792790:04/03/31 00:35 ID:???
結果はこうなります↓

Array ( [0] => file1.jpg [1] => file2.jpg [2] => file3.jpg ) Array ( [0] => /tmp/php7KUhzb [1] => [2] => )
793nobodyさん:04/03/31 02:06 ID:???
>>790-792
それは当たり前の結果だが...PHPのキモチで言えば「俺の所為かよ」

http://www.php.net/manual/ja/features.file-upload.php
のUser Contributed Notesに載ってるソース読んで「当たり前」の理由考えてみ。
794790:04/03/31 02:30 ID:???
ん。まじっすか。読んで見ます。
PHPは結構長い事やってるんですが、
あたりまえの事がよく分からず・・。
795790:04/03/31 02:40 ID:Iyf+RzNu
ざっと読んだけど分からず。
なんでやねん・・。
796793:04/03/31 02:42 ID:???
悪い、俺の読み間違い。
791そのままコピペで問題ない。

追試してみるから、もちっと環境詳しく教えて。
797790:04/03/31 02:50 ID:Iyf+RzNu
いえどうもです。

今色々やってみて原因わかりました。
ファイルサイズが(1つまたは合計で)16kbを超えるとだめっぽいです。
念のため max_file_size を入れてみましたがダメ。
phpinfoでの post_max_size、upload_max_filesizeはOKそうなんですが・・。
あと関係するところあるんでしょうか。
798790:04/03/31 02:51 ID:???
サーバーはwebarenaです。 PHP Version 4.3.1。
799793:04/03/31 03:04 ID:???
>>798
WEBARENAに関しては以前
http://ns1.php.gr.jp/pipermail/php-users/2004-February/020828.html
な感じの話題があったけどね。他には総サイズだけじゃなくて
所有者管理をして同時にtmpに複数ファイルを置けなくしてるかも。
800790:04/03/31 03:09 ID:???
なるほど。わかりましたなんとなく。
色々やってみまっす・・。
801790:04/03/31 03:15 ID:???
というか>>799のURLにまんま書いてありました。
tmpのデータが消されなくて容量がいっぱいだ、らしいっす。
802793:04/03/31 03:21 ID:???
Bugzillaも探してみたけど、それっぽいの見つからず。
http://bugs.php.net/search.php?cmd=display&status=All&search_for=multipart+tmp_name&php_os=&boolean=0&author_email=&bug_age=0&by=&order_by=php_version&direction=ASC&phpver=&limit=All&assign=&reorder_by=php_version
あとコピペで色んな環境で追試してみたけど、残念ながら引っかかる環境はなかった。

取り合えず寝るわ。
803793:04/03/31 03:26 ID:???
>>801
うい。お休み〜
804nobodyさん:04/03/31 16:17 ID:???
質問です。お答え頂けると大変助かります。
下記のようなコードを書いたのですが、formからvalue=$value[lec_id]
を渡そうとしてもうまく渡らずに、そのまま_post[lec_id]が$value[lec_id]
として伝わっています。

一方下から二行目の$lec_idは正しい数字が表示されます。
一体どこの記述に間違いがあるのでしょうか。

$res = mysql_query($sql);
$value = mysql_fetch_assoc($res);

<table>
<form action="<?echo($_SERVER["PHP_SELF"])?>" method="POST">
<?php
while ($value = mysql_fetch_assoc($res)) {
if ($value["lec_week"] == "1") {
print "<tr>";
print "<td>".$value["lec_time"].限目."</td>";
print "<td>".$value["lec_faculty"]."学部 ".$value["lec_title"]."</td>";
print "<td>";
print '<input type=checkbox name=lec_id[] value=$value["lec_id"] >';
print "</td>";
print "<td>".$value["lec_id"]."</td>";
print "</tr>"; }} ?> </table></form>
805nobodyさん:04/03/31 16:23 ID:???
>>804
下から4行目の$value["lec_id"]が変数展開されないって話かのぅ。
それなら、' ' で括ってるから。
806804:04/03/31 16:24 ID:???
お返事ありがとうございます。
"で括って試してみます。
807804:04/03/31 16:30 ID:???
早速ですがparseエラーでした。
書き換えたのしたから四行目を
print "<input type="checkbox" name="lec_id[]" value="$value["lec_id"]" >"
にしてみました。

色々なパターン試してきたのですが、エラーのパターンとしては
変数展開されずに$value["lec_id"]が直接postの結果となっているか、
あるいはonという形でpostされているかです。

ここで正しい数値を習得してDBに格納したいのですが。
808nobodyさん:04/03/31 16:33 ID:???
'<input type=checkbox name=lec_id[] value='.$value["lec_id"].' >';
809nobodyさん:04/03/31 16:35 ID:???
"<input type=\"checkbox\" name=\"lec_id[]\" value=\"$value['lec_id']\" >"
810nobodyさん:04/03/31 16:38 ID:???
ブラケット忘れてた
"<input type=\"checkbox\" name=\"lec_id[]\" value=\"{$value['lec_id']}\" >"
811808:04/03/31 16:41 ID:???
'<input type="checkbox" name="lec_id[]" value="'.$value["lec_id"].'" >';
おれはダブルクウォート忘れてたよ´Д`)
812804:04/03/31 16:45 ID:???
すごい!こんなにたくさんのやり方があるのですね。
>>810
"をエスケープするのは試していたのですが、{}は初めて知りました。
端的に行って来れの役目は変数に変数を渡すときに使うものと理解すればいいのでしょうか。

>>811
"と'を逆に使うというやり方もあるのですね。
そして.のやくめは{}と同じ意味なのでしょうか。

現在ローカスから出版されたPHP実用プラグら民具という分厚い参考書で勉強していますが、
こういうやり方については言及されておらず苦闘しておりました。
皆様ありがとうございました。
813nobodyさん:04/03/31 16:49 ID:???
echo("<input type=\"checkbox\" name=\"lec_id[]\" value=\"".$value['lec_id']."\">\n");

個人的にはこれが好き
814nobodyさん:04/03/31 17:01 ID:???
”でくくることはまず無いなあ。
ドットで連結するのも”内で変数展開するのも大差ないとは思うんだが、
変数があってもなくてもパースする処理が無駄に思える。
815nobodyさん:04/03/31 18:01 ID:???
>>814
>変数があってもなくてもパースする処理が無駄に思える。
同意。無駄なのと、パースの挙動を考慮しないといけないのが面倒。
816nobodyさん:04/03/31 18:03 ID:???
echo <<<_HTML_
<input type="checkbox" name="lec_id[]" value="{$value['lec_id']}">
_HTML_;
817nobodyさん:04/03/31 21:16 ID:???
sprintf を使うやつが出てきてないね。
""で括る時と同じで \" のようにエスケープする必要があるけど、
パッと見た時に何か黒いとこって感じで変数の位置が分かり易く、
{$value}のように{ }を気にする必要がない。
print sprintf("<input type=\"checkbox\" name=\"lec_id[]\" value=\"%s\">",$value['lec_id']);
818nobodyさん:04/03/31 21:53 ID:???

mysql_errnoで得られるエラーコードの一覧表ってどこかに無いでしょうか?

できれば日本語のヤツきぼんです・・・

よろしくです
819nobodyさん:04/03/31 22:16 ID:???
>>817
' でも大丈夫ですよ。あと、printf 一発で。

printf('<input type="checkbox" name="lec_id[]" value="%s">', $value['lec_id']);
820nobodyさん:04/03/31 22:17 ID:???
とほほのwwwsearchのようにgrep型検索のPHPでのスクリプトってないでしょうか?
821nobodyさん:04/03/31 22:33 ID:???
>>820
wwwsearchを参考に自分で書きなさいな。
822nobodyさん:04/03/31 23:23 ID:???
phpを導入したんだけど、掲示板作るくらいだったらDBいらないかな?
DBインストールしたけど設定が良く分からなくて消したけど、
無くて困るものなら導入する。
823nobodyさん:04/03/31 23:36 ID:???
>>822
素直に MySQL をバイナリインストールして phpBB 使っとけ。
824rwxr---wx ◆jTWOZwTY1g :04/04/01 02:18 ID:???
phpinfoにまた犬が出てきたな。俺は以前のおっさんが好きだったんだが。
って前回も同じレスをした記憶が・・・。
825nobodyさん:04/04/01 02:36 ID:???
>>824
コンパイルする時に別の絵を仕込んで置いたサイトが
あるので、反応がちょっと楽しみ。純正の奴もPHP5RC1で
変わってるかと思ってリリースの時に期待してたんだけどね。
# 実は別の日にも違うイースターエッグを仕込んでおいた
826nobodyさん:04/04/01 03:06 ID:???
>>825
楽しそうな事やってるなー。
えーな、技術があるって。

PHP5 のイースターエッグを見せて貰ったがもふもふした幸せそうなヤツだった。
犬といい、アレは誰かのペットなのかね。
827nobodyさん:04/04/01 03:21 ID:???
PHP4 の namazu モジュールが見つからんですよ (つдT)
どっか入手できる場所はありませんかね……?
828nobodyさん:04/04/01 19:48 ID:???
>822
特別なことしないならdatで十分
829825:04/04/01 20:39 ID:???
>>826
仕込んでるのは、Colinだけどね。いや知人でも何でもないが(笑)
830nobodyさん:04/04/01 21:40 ID:???
ini_set('user_agent','Monazilla/1.00 (toolname/ver)');
$server="http://pc5.2ch.net";
$ita="php";
$subject=$server."/".$ita."/subject.txt";
$fp=@fopen("$subject","r") or die("Error!");

$i=0;
while(!feof($fp)){
  $str=mb_convert_encoding(fgets($fp),"EUC-JP","auto");
  list($number,$threadname)=explode("<>",$str);
  $i++;
  if(mb_ereg("(キーワード)",$threadname)){
    $url=$server."/".$ita."/dat/".$number;
    $fp2=@fopen("$url","r") or die("Error!");
    while(!feof($fp2)){
      $str2=mb_convert_encoding(fgets($fp2),"EUC-JP","auto");
      if(mb_ereg("(キーワード2)",$str2)){
        $thread[]=$str;
        break;
      }
    }
    fclose($fp2);
  }
  if($i==50) break;
}
subject.txtからスレタイ、スレ番号を取得
スレタイに「キーワード」が含まれてたらdatを取得
そこから「キーワード2」が見つかれば、配列$threadに、「番号<>スレタイ」の形式で追加
これを先頭50スレに対して行います。
かなり負荷かかってるのですが、どうにかして負荷を軽減できないでしょうか?
書くのがせいいっぱいで、負荷軽減なんて全然わかりません・・・
よろしくお願いします。
831nobodyさん:04/04/01 21:44 ID:???
p2使ってみるとか
ttp://akid.s17.xrea.com/
832830:04/04/01 21:54 ID:???
>>831
どうしても、単体として、こういう検索をしたいのですが。。。
833nobodyさん:04/04/01 22:09 ID:???
mb_http_output('SJIS');
ob_start('mb_output_handler');
ob_implicit_flush(1);
while (ob_get_level()) ob_end_flush();

こうすると出力がSJISにならないんですが・・・
どうしたらいいでしょうか
834nobodyさん:04/04/01 23:49 ID:jSxSLuKB
>>821
それができてたらここに書かないって。
835nobodyさん:04/04/02 00:04 ID:jOVEWyd+
http://jp.php.net/get/php_manual_ja.chm/from/a/mirror
ここからPHPマニュアルをダウンロードすると中国語版のマニュアルが落ちるのですが、
日本語版はどちらでしょうか?
836nobodyさん:04/04/02 00:24 ID:???
>>834
だったらアンタが (作る||教える)
837nobodyさん:04/04/02 00:49 ID:???
つまり>>820はクレクレ厨ってことだろ。放置放置。
838nobodyさん:04/04/02 01:12 ID:???
tmpfile()関数について質問があります。

================================================
[質問]
tmpfile()関数によって得られたファイルディスクリプタからは
読み出しが出来ないのでしょうか?
================================================

この質問の意図:
(1)あるディレクトリにファイルを作り、データを書き出す。
(2)ファイルの書き出しが成功し、その後のいくつかの業務処理を実行
(3)すべてうまくいったら、テンポラリファイルの内容を
 別ディレクトリに待避(move)する
という処理を実装しようとしています。

(1)で、ふつうにfopen(); fwrite(); fclose() でもいいのですが、
同時にアクセスが来た時を考慮して、ファイル名がかぶらないようにと思い、
tmpfile()関数を使ってみようと思いつきました。

作戦1:
tmpfile()でファイルを作り、コピーすればいいやと思ったのですが、
copy() は、コピー元もコピー先も文字列で指定するので、
ファイルディスクリプタを渡せません。

tmpfile()が返すファイルディスクリプタから、
そのテンポラリファイルのフルパスは取得できませんでした。
# /tmp にファイルが出来ることは、プロセスを見張ったりして見つけたのですが...

↓つづく


839nobodyさん:04/04/02 01:12 ID:???
↑つづき

作戦2:
ファイルディスクリプタを引数にとれるcopy()みたいな関数を探しましたが、
見つけられませんでした。

作戦3:
tmpfile()が返すファイルディスクリプタを fread()で読み込み、
別ファイルにfwrite() で書き込めばいいかなと思い、
下記のようなコードを書いたのですが、問題が発生しました。

1:<?php
2: $fp_in = tmpfile() or die("failure in tmpfile()");
3: 
4: $size = fwrite($fp_in, "aiueo\n");
5: print "書き込んだbyte数:$size.\n";
6: 
7: $data = fread($fp_in, 100);
8: print "data=".$data."\n";
9: $fp_out = fopen("result.txt", "w");
10: fwrite($fp_out, $data);
11: fclose($fp_out);
12:?>

↓つづく
840838:04/04/02 01:13 ID:???
↑つづき

8行で出力している $data の中身が空っぽです。
7行目で $fp_in(tmpfile()関数が返すファイルディスクリプタ)から読み込んだ
内容が空のようです。

しらべてみると(http://www.php.net/manual/ja/function.tmpfile.php)、
このページは詳しく書いてありませんでしたが、

-----------------------------------------------------------------
詳細については、関数tmpfile(3)のシステムドキュメントおよび
ヘッダファイルstdio.hを参照下さ い。
-----------------------------------------------------------------

とあるので、PHPの裏でC言語の tmpfile() でも呼んでいるのかなと思い、
以下をやってみました。
$ man 3 tmpfile

man より抜粋:
>The temporary file is then opened in binary read/write
> (w+b) mode. The file will be automatically deleted when
> it is closed or the program terminates.

これをみると、裏で w+b モードでファイルを開いているということは、
読み出しが出来ないということですよね? この認識であってますか?

↓つづく
841838:04/04/02 01:13 ID:???
↑つづき

また最初に書いた私の要望
------------------------------------------------------
ランダムな名前のテンポラリファイルを作り、書き込みに成功したら待避する
------------------------------------------------------
を満たすには、tmpfile() を使うのではなく、下記のような手段
がいいのでしょうか?

1.tempnam() 関数を使い、ランダムなファイル名を作る。
 $tmpfname = tempnam ("/tmp", "FOO");
2.取得した名前でfopen()
3.書き込みに成功したら、作ったファイルを待避
4.tmpfile()と違い、プロセスが終わってもファイルが消えないので、
 手動でunlink()する。


さらに最後の質問ですが、だとしたら、tmpfile()関数は何のためにあるのでしょうか?
なんか使い道がない気が....ロックファイルをしたいなら flock()を使えばよいし..

長々と申し訳ありませんが、私の見解が合っているかどうか、
教えて頂ければうれしいです。

最後に環境を書いておきます。
Turbolinux Server 8.0 (Viper) (kernel 2.4.18-5)
php-4.3.0

おしまい
842nobodyさん:04/04/02 01:45 ID:???
>>838
そこまで書くならMLに投げれば良いのに(笑
よく読んでないけど、rewindしなくて良いのか?
http://jp2.php.net/manual/ja/function.rewind.php
843nobodyさん:04/04/02 02:42 ID:???
↑確かに
>>839のスクリプトを見る限り、その動作は当然。
ファイルポインタは読み書き共通なので、
7行目では4行目に書いた文字列の直後からを
読もうとしている。まだ書いていないので
読み出される内容は当然ながら空。
それと、w+bでファイルオープンした時の動作は
ttp://php.net/fopen
を参照。

・・・・とりあえず休憩しなさい
844838:04/04/02 02:43 ID:???
レスどうもありがとうございます。
MLは、職場の同僚やプロジェクトメンバーも呼んでいるので、
なんかはずかしくて....

rewind の件ですが、あ、そうか、自分は fwrite() のターゲットの $fp_in
に対し、そのまま 7行目で fread() しているので、もしかしたら
ファイルポインタが一番最後に行ってしまっているのかも知れませんね。
明日職場に行ってみたら、rewind などの関数を確かめてみます。

845838:04/04/02 02:49 ID:???
>>843 さん、どうもありがとうございます。
844 と時間が重なってしまいました。
明日やってみます。

> それと、w+bでファイルオープンした時の動作は
> ttp://php.net/fopen
> を参照。

休憩しなさいと助言をいただきながら質問があるのですが、
PHPの世界での fopen() の w+b は、http://jp2.php.net/fopen
によると、読み込み&書き込みとありますが、
私が >>840 であげた man は、C の tmpfile() であり、
C での fopen() の wb は、読み込みは出来ないと思っているのですが...
846nobodyさん:04/04/02 03:11 ID:???
>>845
んー、実はCは良く分からないのだけど・・・・

>私が >>840 であげた man は、C の tmpfile() であり、
>C での fopen() の wb は、読み込みは出来ないと思っているのですが...

PHPでも wbは確かに書き込みのみですが、Cのtmpfileのman (>>840)は
「テンポラリファイルはバイナリ読み込み/書き込み(w+b)モードでオープンされます」
と書かれているように読めるのですが、PHPのtnpfile()のマニュアルには
これを参照するようにとあるんですよね?(というか、ありますね?)
847nobodyさん:04/04/02 03:50 ID:???
>>845
"w+"と"w"は異なるモードだぞ。あと"b"(バイナリ)絡みで、
デフォルト(無指定の場合)の状態の変更あったな>最近のPHP
今回は関係ないけど。
848nobodyさん:04/04/02 07:50 ID:???
社内のUNIXサーバ上でPHPを使用していて、認証を行いたいんですが、
同じLAN上にあるWindowsのドメインコントローラー(WinNTでActive Directory
ではないです)にアクセスする手段は無いでしょうか?
849nobodyさん:04/04/02 09:59 ID:???
Exceptionのサブクラスって全部自前でつくってなげにゃならんのですか。
850838:04/04/02 10:11 ID:???
わーいできたー!!

7: $data = fread($fp_in, 100);
の前に、rewined($fp_in); をするとうまくいきました。

あと w+ の件ですが、昨日はCの本が手元になかったため
man を英語で読んでいたのですが、よくググったら、
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/fopen.3.html
w+ は「読み取りおよび書き込みのために開く。」とありますね。
もっとしっかり調べればよかったでした。

>>843 さん、 >>846 さん、 >>847 さん、大変失礼しました。
レスをいただいたみなさま、どうもありがとうございました!!
851nobodyさん:04/04/02 11:32 ID:???
>>835
ネタ?釣り?マルチくん?
散々外出。
過去ログ嫁。

ついでに嫁。
http://ns1.php.gr.jp/pipermail/php-doc/2004-March/000342.html
http://marc.theaimsgroup.com/?l=pear-doc&m=108073496611134&w=2
http://marc.theaimsgroup.com/?l=pear-doc&m=108083016723475&w=2

シロガネーゼみたいに既存のHTMLから強引に自分で作る事も出来る。
勿論CVSから引っ張ってきて自分で作成してもいい。

>>849
PHP5かよ。
ここで答付かなかったらMLに投げた方がいいんじゃない?
852nobodyさん:04/04/02 15:33 ID:???
>>849
今のところは、まあそうだね。
例えビルトインされなくても、ぬるぽ程度のなら
どこぞのライブラリで拡張されると思うけど。

Beta4でもException周りで変更あったし、最終的にはまた変わるんじゃない?
853nobodyさん:04/04/02 16:03 ID:???
>>852
> 最終的にはまた変わるんじゃない ?

RC1で機能追加&変更はフリーズされていると思うが。
854nobodyさん:04/04/02 16:19 ID:???
fgetcsv と fread の仕様が変わったらしいのですが何が変わったのでしょう?
855nobodyさん:04/04/02 17:20 ID:???
>>854
何でその話を聞いたその場所で、それを言った人に訊かないのだ?
http://bugs.php.net/bug.php?id=26752
http://bugs.php.net/bug.php?id=26003
856nobodyさん:04/04/02 23:35 ID:???
オブジェクトIDを求める方法はないんでしょうか。
857nobodyさん:04/04/03 00:21 ID:???
>>856
( ゚Д゚) ハァ?
Rubyでも使ってろよ。

# 意訳:
# 必要ありません。
# 求められません。
858nobodyさん:04/04/03 01:12 ID:???
マジでオブジェクトIDを求める方法ないの?
冗談だろ?
859nobodyさん:04/04/03 02:26 ID:???
>>858
その言語にはその言語のやり方ってものがあるだろう。
それを学ぶのがイヤなら慣れ親しんだ言語に引きこもって出てくるなyo!

何がやりたくてオブジェクトID求めてるのさ。
話はそれからだ。
860nobodyさん:04/04/03 02:37 ID:???
>>858
だからObjectIDなんて別の界隈の用語使って、調べりゃ判ること
聞いてるから、からかわれてるんだよ。
861nobodyさん:04/04/03 03:03 ID:???
もう放置しとこう
↓次の質問ドゾー
862nobodyさん:04/04/03 03:56 ID:???
>>857
Rubyにはあるのか。つか何でそんなもんあるんだ?>Ruby
#そりゃ内部的に持ってるのは判るけど。
863nobodyさん:04/04/03 07:42 ID:57u66/dO
あのさー、PHPでハッシュ(配列)の要素を参照するときに、キーがない要素を参照するとエラーになっちゃうの?

<?php
$hash = array('foo'=>'FOO');
echo $hash['foo']; #=> OK
echo $hash['bar']; #=> Error
?>

今まで気付かなかったけど、前からこんな仕様だったっけ?
これはちょっと困るなー。$hash['bar']でNULLを返してほしい。というか、エラーにさせない方法ってない?

ちなみに当方Windows2000、php -vの結果は
PHP 4.3.5 (cgi-fcgi) (built: Mar 25 2004 15:20:43)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies
864nobodyさん:04/04/03 09:22 ID:???
>>863
エラーではなくて注意。
php.iniのERROR_REPORTINGをE_ALL ^ E_NOTICEにするか、
error_reporting(E_ALL ^ E_NOTICE);
を追加すれば表示はされない。
ただしNULLはもちろん返さないけど
865nobodyさん:04/04/03 10:33 ID:???
>>863
横着せずにissetで調べるのが良いと思います。
お前もそうしろ
866nobodyさん:04/04/03 10:36 ID:???
PHPプログラムを起動するとき、多重起動しないようにしたいです。

プログラムの最初の方で、flockを使ってファイルロックを取りに行き

・ロックされてる→すでに起動してる→終了
・ロックされてない→俺しかいない予感→処理継続

とやってるんですが、これよりもっといい方法あれば
教えなさい、俺に。
867nobodyさん:04/04/03 11:08 ID:???
>>859,862
テストユニットでテストを書き易くするためでしょう。
868nobodyさん:04/04/03 11:45 ID:???
>>864
その方法でいけました。
ちなみに E_ALL ^ E_NOTICE は E_ALL & ~E_NOTICE と同じという理解でOK?
それなら、デフォルトでそういう設定になってるはずなんだけどな。なんでだろ?

>>865
isset()なの?array_key_exists()じゃなくて?
単にHTTPリクエストパラメータの値をとるだけのときとかに
$name = $_REQUEST['name'];
でできると思ったんだけど、これをいちいち
if (array_key_exists('name', $_REQUEST)) {
$name = $_REQUEST['name'];
} else {
$name = NULL;
}
または
$name = array_key_exists('name', $_REQUEST) ? $_REQUEST['name'] : NULL;
ってするのは馬鹿らしくないか?
869nobodyさん:04/04/03 12:09 ID:???
>>868
issetでも同じ
870nobodyさん:04/04/03 12:12 ID:???
>>864
いや、NULL返すだろ。
指摘自体は正しい。

>>868
試さず学ばず「俺の方が正しいじゃん?」主調 (゚д゚)マズー
issetでもarray_key_existsでも好きな方使え。
イヤなら安全性下げてextract使うかNotice使っとけと。
871nobodyさん:04/04/03 12:13 ID:???
>Notice使っとけ
Notice切っておけ、の間違いね。
872nobodyさん:04/04/03 12:35 ID:???
製作&デバックと実用時の境界が見えてないんだろ。
馬鹿はほっとけ。
873nobodyさん:04/04/03 17:53 ID:???
>>868
普通はissetで全部調べると思いますがね

始めのころNoticeばっか出てうざかったからissetが習慣になっちまったよ
874nobodyさん:04/04/03 18:06 ID:???
>>868
自分は極力変数を初期化します。
$name = "";
if(isset($_REQUEST["name"])) $name = $_RESUEST["name"];
これならNOTICEも出ないし。

875nobodyさん:04/04/03 18:17 ID:???
こんにちわ、よろしくお願いします。
配列をpostgreSQLに登録したいのですが、うまくいきません。
登録したいデータの中で、$_POST["friend"]だけが30から40の要素をもった配列で
$_POST["mail"]はプライマリーキーです。

<?php
$conn = pg_connect("user='test' password='hoge' dbname='test'");

$sql = sprintf("insert into mail ".
"values('%s','%d','%d','%d','%d','%d')",
$_POST["mail"],
$_POST["user"],
$_POST["time"],
$_POST["sex"],
$_POST["age"],
$_POST["friend"]);

$res = pg_query($conn,$sql);
pg_close($conn);
ob_end_flush();
?>

何らかの形で登録され体はいるのですが、
DBを確認してもfriendの項目にはは1と言う数字だけが登録されています。
POSTされたFriend自体はきちんと配列になっており、
登録する段階で思うどおりに動いていないようです。

こういった場合どうしたらいいのでしょうか。
876nobodyさん:04/04/03 18:34 ID:???
>>875
何をしたいのかよくわかりませんが、配列をそのままDBに登録なら
$_POST["friemd"]をシリアル化すれば?
877875:04/04/03 19:28 ID:6ZKEyOfJ
>>876
口べたorz

$_POST["friend"]はこの登録段階の直前にユーザーにラジオボタンを通じて
POSTしてもらったもので、keyは40個ぐらいの数字です。

とりあえずこれをDBに登録して、後々にこの$_POST["friend"]
の数字を入力すると、それを有しているユーザーの一覧が表示される
という形に持って行きたいのです。口べた……

そのステップとして今は配列の登録で躓きました。

$arr = serialize($_POST["friend"]);
としてみたのですが、phppgadminで覗いたDBには0と反映されるだけでした。
ちなみにecho = $arrではなにやらたくさんの文字列が規則的に表示されています。

後出しになってしまいますが、$_POST["friend"]が登録される先の
フィールドのデータ型がsmallintなのですが、それがおかしいのでしょうか?
878nobodyさん:04/04/03 19:56 ID:???
>>877
string serialize (mixed value)

文字列型なのにsmallintは無理じゃないか?
879nobodyさん:04/04/03 20:46 ID:???
>>869
isset()とarray_key_exists()は違うんじゃないか?
$_POSTや$_GETならあまり違いはないだろうが、>>863のように自分で定義した配列なら違う結果になることもあるだろう。
<?php
$hash = array('foo'=>NULL);
echo isset($hash['foo']) ? "true" : "false"; #=> "true"
echo array_key_exists('foo', $hash) ? "true" : "false"; #=> "false"
?>

>>870
>試さず学ばず「俺の方が正しいじゃん?」主調 (゚д゚)マズー
どこにそんな主張が?試したから質問してるんだし、「学ばず」っていうのは何を根拠にいっているのやら。

>issetでもarray_key_existsでも好きな方使え。
じゃあ必要なときは、好きなほうということでarray_key_exists使います。

>>872
>製作&デバックと実用時の境界が見えてないんだろ。
これ意味がよくわかんないんだけど。製作&デバッグ時はE_NOTICEを有効にして、実用時は無効にするということでしょうか。まさかそんな無意味なことしないと思うし。
私は馬鹿なんでよくわかりません。872氏解説してくれ。

>>873
そうなんだ。知らなかった。ありがとう。
私が勉強した本では(今、手元にないから断言できないけど)isset()もerror_reporting()も見なかったと思う。はずれだったのかな。

でもPHPのマニュアルによれば、error_reportingのデフォルト値は E_ALL & ~E_NOTICE とある。だったらisset()で調べなくてもエラーはでないはずだよね。それでもみんなisset()で調べているのか。やっぱりそうしたほうがいいのかな。
880875:04/04/03 20:57 ID:???
>>878
となると数字の配列を渡す方法はないのでしょうか。
pg_insertというものがあるのは知っているのですが、
今はこれをフィールド指定して使えるのか、
かつ、primary keyとセットで叩き込むのはどういう風にできるのか、
と言うのを調べています。

できればこう言うのを使わずに上記のコードの流れでできればいいのですが。

881nobodyさん:04/04/03 21:09 ID:???
csvデータの読み出しにチャレンジしてるんですが、
なにも返されません。csvのフィールド数は二つです。
$url_dataになにもデータが入らない状態になってると思うんですが、
原因わからず。どなたか助けてください。

<?php

$urlfile = fopen("url_data.csv","r");

while (!feof($urlfile) {
$url_data = fgetcsv($urlfile, 4096);
print($url_data[0] . "<br />¥n");
print($url_data[1] . "<br />¥n");
}

fclose($urlfile);

?>


PHP Version 4.3.4
Mac OSX 10.3.3
882nobodyさん:04/04/03 21:19 ID:???
何のための機能かかんがえずに現象に対応して希望どおりに動かすことだけ考えるから無駄な処理が出てくる
883nobodyさん:04/04/03 21:21 ID:???
>>882
無駄なこと答えてないで
884nobodyさん:04/04/03 21:24 ID:???
>>881
、ス、?、マ・ウ・ヤ・レ、ケ、?コン、ホtypo、ハ、ホ、ォ。ゥ

885nobodyさん:04/04/03 21:24 ID:???
>>880
配列シリアル化

文字列型のフィールドに保存

非シリアル化

これじゃダメなのか?
886nobodyさん:04/04/03 21:30 ID:???
>882
処理自体が無駄なわけじゃないだろ。「無駄に思える」というだけだな。

>881
括弧閉じろ。エコーデバッグしろ。
887nobodyさん:04/04/03 21:31 ID:???
>>880
PostgreSQLには配列型もあるが、どの道そのままでははいらん。
つーか、正規化しろよ。
888881:04/04/03 21:33 ID:???
>>886

括弧閉じ忘れでした。さんきゅう〜。
うひゃ〜恥ずかしすぎる。
今までなにしてたんだろ〜って感じです。
出直してきます。

889nobodyさん:04/04/03 21:33 ID:???
>>875
テーブルの設定をやり直す。
現状だと、smallint(2バイトの数字)の中に、配列を入れようとしている。
配列のシリアル化を薦めている人は、smallint -> text(or character)にしてはどうかとアドバイスしている。

friendコラムはユーザID(insertの行に出てないからserial型か?)を入れるつもりだろうけど、
「Aさんをfriendに持つ人を全て取得する」という要望が出てきたときに困ったことになる。
890nobodyさん:04/04/03 21:36 ID:???
そういうことだね
それが存在する理由を知らずに有用かどうか判断できるはずはない
知らないからすべて無駄だと先人の知恵をきり捨てることこそ無駄だわ

どこぞのエラーメッセージ読まない奴よりはずっとマシだけど
891nobodyさん:04/04/03 21:39 ID:???
>>879
E_ALLでもエラー等が出ないスクリプトを書く。
セキュリティ強化やバグが未然に防げる。
892nobodyさん:04/04/03 21:46 ID:???
マの常識は一般人には非常識ということでFA
893nobodyさん:04/04/03 21:49 ID:???
>>892
PHPごときでマとかたっていいのか?
894nobodyさん:04/04/03 21:51 ID:???
下らん。
895875:04/04/03 22:01 ID:???
>>885
シリアル化の目的そのものがよく理解できていませんが、
試してみます。

>>>887
正規化?これも調べてみます。

先週よりプログラミングに挑戦していて意外に楽しいのですが、
手探りで見通したたず悩みまくりです。
ただ、やり方があるというの分かったので再び検索しますね。

ありがとうございました。
896875:04/04/03 22:07 ID:???
>>889
> friendコラムはユーザID(insertの行に出てないからserial型か?)を入れるつもりだろうけど、
> 「Aさんをfriendに持つ人を全て取得する」という要望が出てきたときに困ったことになる。
だめじゃん……
「Aさんをfriendに持つ人を全て取得する」という機能を実現したいのですが、
これにはどのようなアプローチがあるでしょうか。

今思い付くのは、friendをプライマリーキーにして、
そこにユーザーIDをupdateで送り込んでいくというものですが、
これだと頭から実装し直しです。
それにこちらの方が運用段階で面倒になりそうな気がするのですが。
897nobodyさん:04/04/03 22:45 ID:???
>>868,873,874
( ゚Д゚) ・・・・

ネタにマジレスしておくと大抵は
・何らかの処理 (addslashesやhtmlespecialcharsなど) が入る
・値の保証が無いので検査する必要がある
のどちらかになるので、別にNotice対策と思ってコードを書く必要もなく自然とそうなる。
メンテで無駄コード見るの萎え。
898nobodyさん:04/04/03 22:54 ID:???
>>897
>・何らかの処理 (addslashesやhtmlespecialcharsなど) が入る
>・値の保証が無いので検査する必要がある

これをするときに、Noticeが出るだろうが。
処理や検査をする前、もしくは同時にissetで確認してる。
899nobodyさん:04/04/03 23:02 ID:???
>>896
全体が見えないのでなんともだが、
user,friendのテーブルを別途設けたほうがいいんじゃね。
なんか、主キーのないテーブルになってしまうけど、2列だし。
900875:04/04/03 23:40 ID:???
>>
返答どうもです。
そのやり方も検討中なんですが、一つのfriendの情報が更新されるcron
を使ってuserにmailを送りたいのですが、その時にuserの属性に応じて
mailの内容を調整したいと思っています。

そのためのageやsexというfieldなんですが、テーブルを分けても
上手く処理できますかね?
見通しがつけられないのですが。


ところで、フィールドをsmallintからintegerに変更して
foreach($_POST["friend"] as $val){
$sql = sprintf("insert into mail ".
"values('%s','%d','%d','%d','%d','%s')",
$_POST["mail"],
$_POST["user"],
$_POST["time"],
$_POST["sex"],
$_POST["age"],
$val);
こう言うのを書いてみたのですが、やっぱりDBに収まるのは、
最後の値だけなんです。これ自体どこかおかしいのでしょうか。
901nobodyさん:04/04/03 23:54 ID:???
>>875
取り合えず先にPHPとSQLの初心者本買ってきて
基礎的なこと勉強してこい。
902nobodyさん:04/04/04 00:01 ID:???
>>900
やり始めたばっかりでがんばっているのは判るんだけど、
今の状態だとダメダメっぽだよ。
正規化も知らないようだと、話にならない。
多分SQLインジェクションも判ってなさそうだ。

全体の設計からしてボロボロっぽだから、一部ココで教えてもらって
解決しても、すぐに綻びが出る。

なんか書籍でも買って勉強した方がいいよ。
903875:04/04/04 00:07 ID:???
(´・ω・`)ショボーン

でも確かにその通りでして、とりあえず火急の用事を済ますために実戦に挑んでおりますが、
基礎知識も設計も不十分だなと身に染みて感じております。

とりあえず本を読み読みしていますがやっぱりいきなりプログラムするのは難しいですね。

アドバイス下さった方ありがとうございました。
これからも頑張ってみます。
904nobodyさん:04/04/04 00:44 ID:dOQP5KFE
質問させてくださいm(_ _)m

数100KBあるログファイルの、特定のある一部分だけを書き換えたい場合は
どのようにしますか?
現在は $temp=file("log.dart");
みたいに配列に一気に読み込んで、
該当部分を書き換えてから fputs しています。
でも全然スマートではないですよね?ログが大きくなると負荷も増えそうだし・・・。
ご教授よろしくお願いします。
905nobodyさん:04/04/04 01:26 ID:???
>>904
「ログ」を「書き換える」という時点で設計ミスと思って作り直す。

漏れは面倒くさいのでDBにしてしまう。
906nobodyさん:04/04/04 01:45 ID:???
初心者で申し訳ないです
>>5の「質問者の心得」を読ませて頂きました
このスレではそこに書かれている通りに行動してもかまわないのでしょうか
それとも、逆説的に警告を発しているのでしょうか
そこに書かれるあまりの教えてクンぶりに戸惑っております
907866:04/04/04 04:34 ID:???
ねえ、あってる?
908nobodyさん:04/04/04 07:52 ID:???
>>907
なにがしたいのかよくわからない。
まず、自分の環境とか、PHPをどういう状態で使ってるのかを書かないと誰も答えられないと思う。
909nobodyさん:04/04/04 12:30 ID:???
void型の関数って最後
return;
って書かんでもええのん?
910nobodyさん:04/04/04 12:45 ID:???
頭をオーバーホールしてこい
911nobodyさん:04/04/04 12:47 ID:RKGRv6I/
MSの仕様が宇宙の法則さ〜ヽ(´ー`)ノ
912nobodyさん:04/04/04 13:12 ID:???
書いても書かんでも大丈夫みたいやな。
とりあえずないと気色悪いから付けとくか。
あんがと。
913nobodyさん:04/04/04 13:38 ID:???
>>912
それは正しい。
PHPUnit を意識して書くと後で後悔する事が少なくなるかも。
914nobodyさん:04/04/04 15:38 ID:???
つぅか関数の最後はreturnが基本っしょ
915nobodyさん:04/04/04 16:25 ID:???
Perlから乗り換えようと思ってるんですが
PHPの正規表現はe,x,oオプションと
(?:regexp)などのゼロ幅表現は使えるのでしょうか?
916nobodyさん:04/04/04 17:45 ID:???
ereg()
Perl互換の正規表現
917nobodyさん:04/04/04 18:55 ID:???
PHPのUPLOADのサイズってイニシャルでは2Mですが、どれくらいまで大きくなるのでしょう?

<php.ini>
; Maximum allowed size for uploaded files.
upload_max_filesize = 2M

50Mとかしちゃって平気なんでしょうか?
918nobodyさん:04/04/04 19:08 ID:???
闇はPHPを使ってるみたいだから
少なくとも1.2GBまではいけると思われ
919nobodyさん:04/04/04 19:10 ID:???
>>917
スーパーキノコ使ったらその2倍まで大きくなるyo!
自分で試してご覧。
920nobodyさん:04/04/04 19:51 ID:???
ereg試してみたんですがゼロ幅表明は使えませんでした。
preg_系の関数で使えました。
921nobodyさん:04/04/04 23:56 ID:???
定義済み変数や環境変数の値を一気にはき出すコードどこか何無いでしょうか?
922nobodyさん:04/04/05 00:35 ID:???
>>921
print_r($GLOBALS);
923nobodyさん:04/04/05 01:08 ID:Ov2U0REu
ドットqmailからphpスクリプトを実行したいのですが、設定の書き方がわかりません。
環境はredhat9 php4.3.4
今日一日悩みすぎて気持ち悪いです・・・
お願い教えて下さい
要するにメールが送られた時にphpを実行したいのです
924nobodyさん:04/04/05 01:13 ID:sr+9F3DM
CRONじゃ駄目なん?つーかすれ違い
925nobodyさん:04/04/05 01:39 ID:???
>>923
[PHP-user 15334]
926nobodyさん:04/04/05 02:16 ID:Ov2U0REu
>>925
貴重な情報ありがとうございました。ただ私の場合コマンドライン版じゃないからなのかうまくいきませんでした
.qmail-defalultには
/usr/local/bin/php -q /home/.../test.php
と記述し、
test.phpは簡単に
<?php
$fp = fopen("./test.html","w");
fputs($fp,"完了");
fclose($fp);
?>
という内容だけを記述しているんですが動かないようです。
ただ、.qmail-default自体は動いているのを確認できました。
もうしばらく悩んで駄目ならphp再インストか・・
927nobodyさん:04/04/05 10:24 ID:???
>>908
そのくらい察しろよ
928nobodyさん:04/04/05 13:50 ID:???
>>927
察してやるからいつまでたってもまともに質問できないやつが来るんだよ。
929nobodyさん:04/04/05 14:22 ID:???
windowsXPのApacheでPHP入れたら、
C:\php\php4ts.dllがみつからないらしくて、
Apacheが動かないのですが、どうすればいいでしょうか。
930929:04/04/05 14:24 ID:???
C:/php/sapi/php4apache.dllがみつからない、の間違いです。
931nobodyさん:04/04/05 14:41 ID:???
説明が下手過ぎだろ
932nobodyさん:04/04/05 14:45 ID:???
>>929
じゃあその場所にそのファイルが見つからないんじゃないの?
933nobodyさん:04/04/05 14:57 ID:???
>>929
Apacheは最新か?確認しる。
934nobodyさん:04/04/05 15:04 ID:???
どうせインストーラでやっただけで終わったと思ってるんだろ
935nobodyさん:04/04/05 15:05 ID:???
>>934
だろうな。説明サイトくらい探せよ
936929:04/04/05 15:40 ID:???
自己解決。
937nobodyさん:04/04/05 15:45 ID:???
聞くだけ聞いといて自己解決だけで済ますやつは二度と質問に来ないでね。
938937:04/04/05 15:46 ID:???
じこかいけつ。
939nobodyさん:04/04/05 15:52 ID:???
>>937
調子に乗るなって

自己解決したなら書いていけ、って
なんでこっちがそんな手間を惜しんで書かないといけないわけ?
ばかじゃね?
940nobodyさん:04/04/05 15:58 ID:???
あぁ、そうかもな。
でもそういう態度の人には、手間惜しんでアドバイスする人もいないだろうな。
ま、それもキミの人生。
941nobodyさん:04/04/05 15:59 ID:???
>>940
じゃあ書くなヴォケ
942nobodyさん:04/04/05 16:00 ID:???
春でつねぇ・・・
943nobodyさん:04/04/05 16:07 ID:???
基本的に教わる側は下に居るべきだし
むしろ下で居たほうが吸収が早いと思われ
944nobodyさん:04/04/05 16:19 ID:???
>>941
宿題やってろ。
945nobodyさん:04/04/05 16:21 ID:???
>>943 当たり前過ぎてコメントなしsage
946nobodyさん:04/04/05 17:54 ID:oqrHq/L4
コメントで悩んでます。
aaa.html 内の ある行に
<?=$hogehoge[hohoho]?>
と、ありましたので、この行をコメントアウトにしたくなりとしました。

<?php
# <?=$hogehoge[hohoho]?>
?>
 で、エラーば出てしまいます。 どのようにすればよいでしょうか?

単にHTMLのソースに記述されたくないだけで、
<!-- ---!> は使いたくないないんです。
947nobodyさん:04/04/05 18:03 ID:???
別の言語と勘違いしてませんか?
PHPのコメントは
//
/* */
です
948nobodyさん:04/04/05 18:05 ID:???
>>946
/* ピピルマピピルマプリリンパ */
// パパレホパパレホドリミンパ
949946:04/04/05 18:18 ID:oqrHq/L4
<?php
// <?=$hogehoge[hohoho]?>
?>

では、?> が、表示されました。

<?php
/* <?=$hogehoge[hohoho]?> */
?>
では、*/?> が、表示されるんです。
950春は質問レベル低いねぇ:04/04/05 18:22 ID:???
>>949
?>でPHPタグ(こういう表現でいいのだろうか?)が終わるんだから当然と思われ。
PHPタグを2重にする意味ない。
なんで
<?/*=$hogehoge[hohoho]*/?>
って書かないん?
951nobodyさん:04/04/05 18:28 ID:???
>>946
俺もPHPをやり始めたばかりなので、合っているかどうかわからないけれど、

<html>


<?php
 // $hogehoge[hohoho];
?>


</html>

でいいんじゃないの?
変数に代入した後、「;」で閉じないと、実行時にエラーが出るのでは?
952946:04/04/05 18:33 ID:oqrHq/L4
”単純に”一行を囲みたかっただけで (-。−;)
<?
// =$hogehoge[hohoho]
?>
に、しました。

htmlに複数の<? *** ?>が書かれている行をまとめて
コメントにする場合って <!-- --!> しかないのですか?
たとえば

<?=$hogehoge[hohoho]?>
<a *****>
<?=$hogehoge2[hohoho2]?>
<a>
<?=$hogehoge3[hohoho3]?>
</a></a>
を、まとめてコメントにする場合は?
953春は質問レベル低いねぇ:04/04/05 18:43 ID:???
>>951
<?=は代入じゃねぇよ
文末に;を付けたほうがいいというのはもっともだが、
この場合なくてもエラーは出ない。

>>952
<?/*=$hogehoge[hohoho]?>
<a *****>
<?=$hogehoge2[hohoho2]?>
<a>
<?=$hogehoge3[hohoho3]?>
</a></a>
<?*/?>

途中のaタグは表示したいとか言うなら一個一個消してくれ。
954nobodyさん:04/04/05 18:44 ID:???
PHPのコメントと HTMLのコメントは全く関係が無い。

$hogehoge[hohoho] = "<!--";
$hogehoge3[hohoho] = "-->";
も一つの答えになりうる。
955946:04/04/05 18:57 ID:oqrHq/L4
単にHTMLのソースに記述されたくないだけで、
<!-- ---!> は使いたくないないだけだったんですが・・・・
複数行は <!-- ---!> しかないのですか。。。

PHPタグは2重に出来ないで よろしいのでしょうか?
956946:04/04/05 19:02 ID:oqrHq/L4
失礼しました。
 955の発言は無かったってことで。
957nobodyさん:04/04/05 19:10 ID:???
>>953

そういうデミリタもあるのね。
958946:04/04/05 19:14 ID:oqrHq/L4
なんだ、単純に
<?/*?> 〜 <?*/?> で囲めばいいんですね。

>>952
<?/*?>
<?=$hogehoge[hohoho]?>
<a *****>
<?=$hogehoge2[hohoho2]?>
<a>
......
...
<?*/?>
959nobodyさん:04/04/05 20:36 ID:???
おいおいおいおいおーい、なんちゅう話してんだよぅ
960nobodyさん:04/04/05 20:58 ID:Hxp6Xm46
1000桁ごとに , (カンマ)つける関数って何でしたっけ?
961960:04/04/05 21:03 ID:Hxp6Xm46
すません。自己解決しますた。
962nobodyさん:04/04/05 21:05 ID:???
そんな組み込み関数は無い。
963nobodyさん:04/04/05 21:08 ID:???
>>960

1000桁にもなる整数って扱えるのか?

そんなに大きな値をを何に使うのか気になる。
964nobodyさん:04/04/05 21:10 ID:???
>>963
しかも1000桁「ごと」ってぐらいだからすくなくとも2000桁はありそうだな
多倍長整数使わないと無理だろう
965960:04/04/05 21:10 ID:Hxp6Xm46
>>963
>>962
1000の位ごとの間違いですたw

1000の位ごと。 3桁ごと。 錯乱してました。

逝って来ます。
966nobodyさん:04/04/05 21:58 ID:???
せっかくだから2000桁の四則演算をPHPでやってみた

案外面白いもんだね
967nobodyさん:04/04/05 22:19 ID:???
自己の痒い〜ケツ
968nobodyさん:04/04/05 23:24 ID:QFszvbEI
mkdir()関数でディレクトリを作ると
所有者が99になってしまいます・・・
その影響で、そのディレクトリを削除しようとしても
一旦、コマンドからアクセスして所有者を適切な値に変更して
からじゃないと削除できない状態です。
perlでmkdir()関数を使ってたときは、このようなことには
ならなかったのですが・・・
どうすればよいのでしょうか?
969nobodyさん:04/04/05 23:41 ID:???
仕様です。
970nobodyさん:04/04/06 00:33 ID:???
>>968
suExecでPHPを使う。
971nobodyさん:04/04/06 01:52 ID:???
>>968
httpd動かしてるユーザが「99」ってなってるのか?
CGIなのかDSOなのか、そこらへん架け。
972nobodyさん:04/04/06 12:38 ID:???
>>947
ネタ?
973nobodyさん:04/04/06 13:50 ID:???
>>947
真性のバカか?
#もコメントになるが



ああ、釣りね
974nobodyさん:04/04/06 15:33 ID:???
次スレのテンプレだけど、>>3-4はいらんことないか。
PECLへのリンクはもうちょっとマニュアルが整備されるのを待ったほうがいいかな?
975nobodyさん:04/04/06 15:47 ID:???
いらないと思う。
976nobodyさん:04/04/06 19:50 ID:JmxKY28e
すいません、
基本的な質問で申し訳ないのですがPHPのやや古いバージョンは配布されていないのでしょうか?
最新の4.3.5は本家のdownloadにありますが
自分のサーバーにあわせて4.0.6を探しております。
977nobodyさん:04/04/06 20:14 ID:lpi6f7xm
すいません。
winでphp.iniを書き換えてapacheを再起動しても、
php.iniの設定変更分が更新されないのですが、
これはどうしたらよいのでしょうか?
GDを追加したいのですが、変更が反映されず困っています。
978nobodyさん:04/04/06 20:26 ID:???
979976:04/04/06 20:35 ID:???
>>978
サンクス、
さっきから懸命に本家を探していたので助かりました。
980nobodyさん:04/04/06 21:35 ID:???
>977
PCに窓から投げ捨てられろ
981nobodyさん:04/04/06 22:05 ID:???
画像うpローダー作りたいと思います。
ちょっと気になるのですが、UPLOAD攻撃の回避は、連続投稿を制限する以外に手段があるのでしょうか?
982nobodyさん:04/04/06 22:05 ID:???
震度1@豊島区
983981:04/04/06 22:06 ID:???
カキコしてたら揺れてますた・・・
984nobodyさん:04/04/06 22:09 ID:???
>>980
春なのに優しくないなぁ…

>>977
一度、DOSプロンプトでPCを起動し直して、

format c:
y

と入力して、プロンプトが返す結果を書かないと、原因がわからんぞ。
985nobodyさん:04/04/06 22:22 ID:???
拡張子incって一般的なのか?
うちは全部phpなんだけど。
ex. ttp://news.php.net/nntp.inc
986nobodyさん:04/04/06 22:31 ID:???
>>985
includeファイルはそうするんじゃないかな?
(べつに*.incでなくてもいいけど)
includeすることを前提に書かれたファイルを
直打ちで呼び出されたら困るし。
・・・ってその例だと読めるのか・・・。うむ
987981:04/04/06 23:33 ID:???
事故解決しました。
988nobodyさん:04/04/06 23:43 ID:???
phpでbluetoothって操作できないですか?
bluetooth内臓のPDAをPCに接続させたりとかそういう機能って
phpでは無理なんでしょうか?
989nobodyさん:04/04/06 23:44 ID:???
ライブラリとかないのかな?
990nobodyさん
<?php
copy($file,"$file_name");
?>

実行→

Warning: copy(C:\\test.png): failed to open stream:

何故クライアントの絶対パスなんだよ_| ̄|○
回避法、教えてエロい人!