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

このエントリーをはてなブックマークに追加
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/04/07 01:08 ID:???
3nobodyさん:04/04/07 01:09 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/04/07 01:12 ID:bZ8I9cSk
5nobodyさん:04/04/07 01:13 ID:???
>>1
乙。しかし前スレの流れは無視か・・・
6nobodyさん:04/04/07 01:15 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/
7nobodyさん:04/04/07 01:16 ID:???
8nobodyさん:04/04/07 01:17 ID:???
bluetoothどうやってphpで使えるのか教えてください。
どうかどうかお願いします!
9nobodyさん:04/04/07 01:19 ID:???
pearでサポートしてないですよね?よね?
10nobodyさん:04/04/07 01:37 ID:???
>>1
乙。

>>8,9
釣り、しつこい。
11nobodyさん:04/04/07 01:40 ID:???
釣りじゃないです〜〜
できないんですか??
12nobodyさん:04/04/07 01:51 ID:???
それぐらいの判断も付かない/調べられないヤツには ( ゚Д゚) ムリ
だから釣りって言ってる訳なんだが。
13nobodyさん:04/04/07 02:00 ID:???
つーかム板かマ板逝け(と釣られてみる。
14nobodyさん:04/04/07 02:10 ID:???
>>12
いやそれ日本語おかしいやん

>だから釣りって言ってる
hai?
15nobodyさん:04/04/07 02:11 ID:???
それぐらいの判断も付かない/調べられないヤツには ( ゚Д゚) ムリ

釣り

等価だそうです。
便利な日本語ですね〜
16nobodyさん:04/04/07 02:24 ID:???
>>13
マはしらんがムでPHPの話をすると追い出される。
17nobodyさん:04/04/07 02:57 ID:???
ライブラリでできそうな気もするんだけど・・
18nobodyさん:04/04/07 03:01 ID:???
>>8
いや、だから適当なライブラリをラップして
PECL作れよと言ってるのだが?
俺はbluetoothは知らんけど、そういう周辺技術を
知ってて使うと言ってるのではないのかよ
(そもそもbluetoothって無料なの?そのくらい知らない)

#PECLじゃなくて新しくストリーム作ってやるのが面白いかも。
19nobodyさん:04/04/07 04:11 ID:???
何をどうしたらいいのかさえわからずに教えてクレクレしてるようじゃ無理だろうな。
って言うか、PHPでやろうと考えるあたりが・・・
20nobodyさん:04/04/07 07:58 ID:???
>>8
この厨さかげん…さてはMONだな m9(`・ω・´)
21nobodyさん:04/04/07 11:51 ID:???
>>8
bluetooth⇔php
釣りだよな?な?つかなんでPHPでやるのかがわからん
22nobodyさん:04/04/07 12:25 ID:???
この手の文体を放置しない奴の人格は潜在的に荒らしの素養を示してるんじゃないだろうか。
23nobodyさん:04/04/07 12:30 ID:???
に->な
24nobodyさん:04/04/07 13:50 ID:???
>>18
bluetooth・・・近距離無線データ通信の規格。
携帯電話やら、PDA等に内蔵され、物理的なケーブルの代わりに使える。
利用はタダといえばタダだけど、導入は有料(ハードウェアだから)。

なんにしろ、環境やドライバに依存するだろうから、phpで出来るか以前の問題だろ
それすら判断つかない荒らしは(・∀・)カエレ!!
25nobodyさん:04/04/07 15:28 ID:oWoartyg
あるメールアドレスに来たメールを参照したいんですがどうやればいいんでしょうか。
セッション関数使えばいいのは解るんですがいまいちよく解らなくて。。
レッツさんにあるのはちょっと難しいんでセッションの簡単な解説ページがあれば教えて頂きたいのですが。。
26nobodyさん:04/04/07 15:34 ID:???
メール参照にセッション関数ですか
面白そうなので私にも教えて下さい
27nobodyさん:04/04/07 15:34 ID:???
>>25
もう少し技術的な知識を身に付けてから挑戦なさることをお勧めします。
とりあえずメールとセッションは全然関係ありません。
2818:04/04/07 16:11 ID:???
無料?有料?は、USBがUSBとなる前にロイアリティ関係で色々あったように、
Bluetoothの場合はどうかなと気になったため。
特許なんてgifの問題でもそうだけど、ソフトウェアの上位の層にも
関わる場合があるから、押さえられてるとデバドラとかも有償でしか
手に入らないことが多いので。

ていうかよ。
Bluetooth機材持ってないし全然興味なかったけど
http://www.bluez.org/
で、もうお膳立て充分出来てるじゃねん。
あとはsocketでもCOMでも使って、PHPで好きなようにやれ>元質問者
相手がRFCOMMで話せる機材だとラッキーだけどな。
2918:04/04/07 16:13 ID:???
>>22
かもしれん。これから放置するように努力しまつ
30nobodyさん:04/04/07 16:14 ID:???
メールを扱うのはIMAP関数。セッションとは別物。メール見たいのならレッツPHPのでも使えばいい。
まあ作るのは今の>>25-26には無理なこった。メールとか扱うのはセキュリティの問題もあるから必ずローカルで実験しろよ。
31nobodyさん:04/04/07 16:17 ID:???
>>30
俺を含めるなよ糞が
32nobodyさん:04/04/07 16:25 ID:???
>>31
必死だな
33nobodyさん:04/04/07 16:29 ID:???
>>31
何事にも必死
それが俺の信条だ
3433:04/04/07 16:29 ID:???
間違えた
>>32

とにかく必死だ
35nobodyさん:04/04/07 16:30 ID:y6546FsQ
パーソンズは本田が抜けてから全然良くなくなった
36nobodyさん:04/04/07 16:30 ID:y6546FsQ
誤爆失礼
37nobodyさん:04/04/07 16:34 ID:???
>>34
なこといったって同類項。IMAP関数知らんのか?
38nobodyさん:04/04/07 16:36 ID:???
セッション関数でできるとか思ってる当たり素人
39nobodyさん:04/04/07 16:39 ID:???
>>26はどうみても>>25をからかってるとしか思えないんだが。
40nobodyさん:04/04/07 16:47 ID:???
atya-

zien desuka

itatatata
41nobodyさん:04/04/07 16:48 ID:???
フォローしたからって自演扱いされるのはたまらんですね。先輩。
42nobodyさん:04/04/07 16:48 ID:???
atya-
これが痛いと思うのだが。
43nobodyさん:04/04/07 16:49 ID:???
>>42
・・・
>>26よ、もういい。お前の気持ちは分かった。からかってるんだよな、うん
44nobodyさん:04/04/07 16:51 ID:???
nanka
docchimo
docchi
dana

pgr
45nobodyさん:04/04/07 16:52 ID:???
>>26-43
くだらんやりとりでスレ消耗するなよ春房ども
46nobodyさん:04/04/07 16:57 ID:???
>>45
また自演か。お前は本当にウザい奴だな。
4726=33:04/04/07 16:59 ID:???
俺のいない間にこんなに荒れているとは・・・
きっかけを作った様で申し訳ない
48nobodyさん:04/04/07 17:04 ID:???
sira jira sii na

zutto ita kuseni yo-

zien gokurou!

ahyahyahyahya----
49nobodyさん:04/04/07 17:17 ID:???
>>47
春だから仕方ないよ
50nobodyさん:04/04/07 17:35 ID:???
ふと思ったんだが自演って「jien」って書かない?
5125です。:04/04/07 17:45 ID:oWoartyg
すいません。。
なんかアホ言ってたみたいで。。
出なおしてきます。。
5225:04/04/07 17:49 ID:oWoartyg
あと、26さんにもご迷惑おかけしました。。
53nobodyさん:04/04/07 18:13 ID:???
bluetoothは統一規格だから、phpでもできるよね
文体がどうのこうのって、お前ら高尚なバカだね
54nobodyさん:04/04/07 18:18 ID:???
Cの

while( fscanf(fp,"%s<>%s",str1,str2) !=EOF )
ってのはどうすればいいですか?

while(!feof($fp){
 $temp=chomp(fgets($fp));
 list($str1,$str2) = explode("<>",$temp);
}
だと、行が「aa<>aa」でないときも読み込んでしまいますし・・・

while( fscanf($fp,"%s<>%s",$str1,$str2)){
でもうまくいきません。。。

ご教授お願いします
55nobodyさん:04/04/07 18:21 ID:???
釣りだから相手するなっていう言葉は合理化してると思わない?
逃避だな。せいぜいがんばれやプログラムおたくたちよ。
臭いジーンズはいた能無し野郎どもが
56nobodyさん:04/04/07 18:39 ID:???
すみません、正規表現で(^|>)(>[^<]*)、これにマッチする文字列ってどんなんですか?
^もしくは> + >もしくは^か<が0回以上の文字列、と解釈したんですけどそれで間違ってませんか?
てか間違ってますよね?
57nobodyさん:04/04/07 19:06 ID:???
>>56
行頭から > で始まっているか、行中なら >> があるところから < が出現する直前までってことだ。
58nobodyさん:04/04/07 19:06 ID:???
>>56
 (^|>)    (>[^<]*)
^または> + > + <以外が0個以上
59nobodyさん:04/04/07 19:08 ID:???
AAは飽きたよ
60nobodyさん:04/04/07 19:18 ID:???
>>58
最初の ^ は、行頭もしくは文字列の先頭だろ。
6156:04/04/07 19:43 ID:???
ちょいコピペミスありました
$com = eregi_replace("(^|>)(&gt;[^<]*)", "\\1<font color=\"#FFFFFF\">\\2</font>", $com);

1つめのパターングループは行頭または>ってのはわかりました。ありがとうございます。
2つめのパターングループの中が&gt;に変わることでの違いはありますか?
62nobodyさん:04/04/07 19:48 ID:???
文字通り>に代わり&gt;にマッチする。
63nobodyさん:04/04/07 19:52 ID:???
[]のなかの^はただの文字として評価されるよ
64nobodyさん:04/04/07 20:28 ID:???
釣り?
ネタ?
65nobodyさん:04/04/07 20:36 ID:???
>>63
そんなえさで・・・
66nobodyさん:04/04/07 22:52 ID:???
(・∀・)ニヤニヤ
67nobodyさん:04/04/07 23:52 ID:???
なんか質問スレなのに教えてクンに煽りいれる馬鹿ばかりになってきたな
68nobodyさん:04/04/08 01:07 ID:???
ようこそ新人さん。
69nobodyさん:04/04/08 02:05 ID:dl+O+lnW
A B
A 1 32
B 2 33
C 1 28
といった配列がある場合
A(降順)→B(昇順)にソートして
C 1 28
A 1 32
B 2 33
にしたいのですが可能でしょうか?
70nobodyさん:04/04/08 02:14 ID:???
>>69
可能です
71nobodyさん:04/04/08 03:04 ID:dl+O+lnW
>>70
教えてください
ちなみに
B 2 33
C 1 28
A 1 32
の間違いです
72nobodyさん:04/04/08 03:16 ID:???
>>71
前スレで回答あったべ。ここは質問スレなので丸投げは他所で。
73nobodyさん:04/04/08 05:43 ID:???
気を取り直してまともな質問。

連続する文字を一つにまとめるのって正規表現使わないと無理でしょうか?

ABBBBBA → ABA

みたいな感じで処理したいんですけど。
74nobodyさん:04/04/08 06:44 ID:???
>>73
一文字づつ転がし。
75nobodyさん:04/04/08 11:31 ID:???
普通にループさせて一文字づつチェックしていくのは
駄目なの?

あ、日本語交じりの場合は文字コードとかいろいろ
考えないと駄目か。
まあ、それでも何とかあるとは思うけど。
76nobodyさん:04/04/08 12:49 ID:???
>>71
やっぱりBカップがイイYO
77nobodyさん:04/04/08 13:09 ID:???
>>73
無理じゃないが、74, 75氏の方法と比べると
どちらが速いかおしえてけれ。

$src = 'aabbbcccddddeffghhhhaaaaa';
preg_match_all('/(\w)\1{0,}/', $src, $matches);
$dest = join($matches[1]);
var_dump($dest);
78nobodyさん:04/04/08 13:17 ID:???
>>77
echo preg_replace("/(.)\\1+/","\\1",$src);
で、いいじゃん。
7977:04/04/08 13:37 ID:???
ががん、_| ̄|◯
preg_replaceは、デフォルトで
s/src/dest/g
と同じ働きですか。てっきり、最初に見つかった
ものだけしか置換しないと思ってますた。
ありがと、勉強になった > 78
80nobodyさん:04/04/08 14:44 ID:???
PHPでは

$str = 'gunnosuke';
for ($i=0; $i<strlen($str); $i++)
  echo $str[$i];

とstringの各文字に[]でアクセスできるようなんだが、
これは演算子をオーバーライドしてインデクサを自動生成しているのか、
配列にコンバートしているのか、どうなってるんだい。
81nobodyさん:04/04/08 15:02 ID:???
>>80
>配列にコンバート

は、していない。
char c, str[] = "2ch";
int i = 1;
c = *(str+i);
と同じ扱いで文字を取り出してる。

文法的には、"[","]"も過去の互換性で使えるが
配列と間違うので、"{","}"が推奨される。
と、Manualに書いてある。
82nobodyさん:04/04/08 17:09 ID:???
そうなのか。
文字列が可変長だしマルチバイトも保護されるからインデクサ作れるのかと思った。
String型だけの例外的な機能という感じかな。

弄り始めたばかりだけどPHPのマニュアルは今までで一番分かりやすい。邦訳も早いし。
# ちなみに最悪だったのはMacromediaの某変態言語、、
83nobodyさん:04/04/08 19:13 ID:3a2aIHWR
ActionScript?
84nobodyさん:04/04/08 19:21 ID:???
LINGOのヘルプもわけわかめ
MX2004でJavaScriptサポートして、さらにわけわかめ

俺の性にあってないんだろうなぁ・・・
85nobodyさん:04/04/08 20:09 ID:???
flock()のファイルのロックっていう意味がよく分からないんですが
解放するまでファイルポインタの変更を禁止するってことですよね?
86nobodyさん:04/04/08 20:59 ID:???
>>85
違う。ファイルポインタはハンドル。
ロックする対象はファイルポインタ自身ではない。
8785:04/04/08 21:00 ID:???
>>86
了解。
88nobodyさん:04/04/08 21:33 ID:fQnxqVh8
PHP4を使っています。
EUCエンコードのWebページから件名と本文を入力し
ボタンを押すとメールを送る処理をやっているのですが
メールのエンコードはISO-2022-JP mail関数にて
本文中に そ という文字を入力すると そ の後ろの1文字が消えてしまうのです。
本文のエンコードはmb_convert_encoding($mes,"JIS","auto");
としているのですが何が原因なのでしょうか・・?
Webで調べたのですがいまいちわかりませんのでよろしくお願いします。
89nobodyさん:04/04/09 09:23 ID:???
>>88
問題の切り分けが必要だな。

$a="さしすてそたちつてと";
$jis=mb_convert_encoding($a,"JIS","auto");
mb_send_mail("[email protected]","test",$jis);//mail()でもいいけど。

見たいな簡単なコードで"そ"の後ろが消えるかどうか検証汁。
90nobodyさん:04/04/09 15:19 ID:letoosyE
>>89
しかし、そんな感じ(mail)ですると結果は さしすせそちつてと と表示されてしまうのです。
、でいろいろといじくっていると
mb_convert_encoding($a,"SJIS","auto");
とJISのところをSJISに変えると正常に送れました^^ すみません。
がちょっと気になるところがありまして
この状態で受信したメールのソースを見てみると
本文の表示がそのまま日本語となっているのです。
普通ならiso-2022-jpのエンコード?で表示されてると思うのですが
Macとかでも文字化けしないで受け取れるのでしょうか・・
Mac環境があれば試せるのですがないもので^^;
PHPから質問がずれたならすみませんです。。

91nobodyさん:04/04/09 15:33 ID:???
92nobodyさん:04/04/09 16:24 ID:owjki1He
PHPプログラムからCGIを実行することはできるのでしょうか?
PHP初心者です。どうすればよいか教えて下さい。お願いします。
93nobodyさん:04/04/09 16:28 ID:???
>>90
メーラー(MUA)がShift-JISに対応していれば大丈夫だと思うが。
ヘッダもそれに合わせなけりゃならんだろうけど。

ところで、JISに変換した時点で抜けてしまうのか、
メールを送信した時点で抜けてしまうのか確認は?
94nobodyさん:04/04/09 16:29 ID:???
95nobodyさん:04/04/09 16:33 ID:owjki1He
>> 94
あっありがとうございます。
96nobodyさん:04/04/09 16:35 ID:???
>>92
CGIとは
ttp://e-words.jp/w/CGI.html

#しっかしまぁ、"CGIとは"でググるとほとんどがCGI=サーバーサイドプログラムになってますな。
97nobodyさん:04/04/09 16:42 ID:???
PHP4 です.

------------------------------------
{ボタン_a} {ボタン_b} {ボタン_c}
------------------------------------
<明細部 表示される数は可変です>
checkbox[] text[] {ボタン_d}
checkbox[] text[] {ボタン_d}

checkbox[] text[] {ボタン_d}
checkbox[] text[] {ボタン_d}

上記のような画面において,ボタン_a, _b, _c が押された時は checkbox に
チェックされた明細を処理したい.

ボタン_d が押された時は,同一行の text に記入されている内容を元に処理をしたい.

FORM の中に FORM を入れ子にできないので,上記は全て同一の Action で処
理しなければならないと思います.どの checkbox にチェックされているかを
調べる事はできたのですが,どの ボタン_d を押されたか,をどのように調べ
たらいいのかがわかりません.ボタン_d に表示させる Value の値はそれぞれ
で変える事はできません.どのような方法で行なえますでしょうか?
アドバイス頂けたら幸いです.よろしくお願いします.
98nobodyさん:04/04/09 16:58 ID:???
>>97
ボタンてsubmitのことか
valueが変えられないならnameを変えろ
99nobodyさん:04/04/09 17:04 ID:???
>>97
それかJavaScriptかませるとかな
どっちにしても板違い。PHPは関係ない。
100nobodyさん:04/04/09 17:11 ID:???
>>96
「Perlで作った」が抜けてますよ
10197 :04/04/09 17:26 ID:???
すみません.php は関係なかったですか.考えてみればそうですね.
ところで Javascript で,という話がありましたが,
ボタン -> Javascript 呼び出しで,Javascript に 任意のパラメータを渡し,
Javascript が受け取ったパラメータを POST して別のページを
呼ぶ事はできるのですが? この件でここに書き込むのは最後にしますので
アドバイス頂けるとうれしいです.
102nobodyさん:04/04/09 17:32 ID:???
あまりそっち方面明るくないけど、
submit()とかで出来たんじゃなかったかな?
いずれにしろ板違い
Web製作板のJavaScript質問スレで訊いたほうがいい
10399:04/04/09 17:34 ID:???
>101
なんか難しく考えてるようだが・・・

<form name=fm action=xxx.php>
<input type=hidden name=v1>
....
とかあったとして、
fm.v1.valueでパラメータ与えて、fm.submit()でフォーム飛ばすでいいんじゃにゃいの?

つかホント、スレ違い板違いだよな・・・
相手している俺も同罪か。すまん。
104nobodyさん:04/04/09 20:23 ID:???
>>96
お前はCGIの勉強をしたほうがいいと思う
105nobodyさん:04/04/09 22:11 ID:k++yB20L
ところで、PHP5.00って
いつ正式リリースされますか?
今年中には無理ですかね。
106nobodyさん:04/04/10 01:45 ID:???
ここで聞いてわかる質問だと思って質問しているのだろうか。
107nobodyさん:04/04/10 14:18 ID:???
printf ("hoge%s%s", $foo, $bar);
print "hoge" . $foo . $bar;
echo "hoge" . $foo . $bar;

どれが理想か教えれ。
108nobodyさん:04/04/10 14:20 ID:???
echo
109nobodyさん:04/04/10 14:24 ID:5lA8cxSI
エチョ。
110nobodyさん:04/04/10 15:16 ID:???
>108-109
言われて考えて理解した。
printf ("hoge%d%4d", $foo, $bar);
のように型が違うときに使うほうがいいんだな。

で、いちいちreturn値を参照する必要もなくechoがいいと。
111nobodyさん:04/04/10 16:02 ID:???
エチョの方が動作が速い
112nobodyさん:04/04/10 16:23 ID:???
ついでにシングルクォートにしておくと
11390:04/04/10 17:15 ID:hLFtBAQr
>>93
確認しましたところなんとソースの本文も
正常にでるものと同じでした。
そば とうってみたものですが $B$=$P(B と共に表示されています。
ヘッダーは
Content-Type: text/plain; charset="iso-2022-jp"
Content-Transfer-Encoding: 7bit
ってな感じなんですがどこが悪いのだろうか・・(;;)
114nobodyさん:04/04/11 10:06 ID:???
>112
改行コードとかどうするの。
echo 'hogehoge' . "\n";
こう?
115nobodyさん:04/04/11 13:37 ID:lCC6ooQt
phpでデータを読み込んでバイナリファイルとして表示させるのはどうしたら良いでしょうか?
(´-`)
116nobodyさん:04/04/11 14:05 ID:???
>>114
自分は変数混じるものはそうしてるけど、
己のスタイルと合わないなら
普通に echo "hogehoge\n"; で良いと思う。
(上の例の場合は流石に"で括る)
要は若干のスピードとパース処理のわかり易さだけだから、
自分が逆に判りにくくなるならやらない方が良い。
117nobodyさん:04/04/11 14:09 ID:???
CLIは普通にバイナリで出力されると思うが?

HTTP通すんだったら、自分でバイナリタイプの
hedaer出力して、後はデータ出力するだけ。
PHPのバージョンによってはバッファリングでの
処理が影響する場合もあるので気をつけること。
118nobodyさん:04/04/11 14:45 ID:???
>116
ありがとう。
Cの畑の人だから、こういった言語の定石とか知らないもので助かります。

<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" />
例えばこういうのを出力したいとき、運用を考えると「EUC-JP」は定数として
切り出したいのでdefine関数でinclude用ファイルにHOGEHOGEしておいて・・・
皆さんならどうやって出力しますか?

echo '<meta http-equiv="Content-Type" content="text/html; charset='
. HOGEHOGE . '" />' . "\n";
こんなのでいいのかな。
119nobodyさん:04/04/11 17:03 ID:lCC6ooQt
>>117
ずっとgoogle等で調べてましたが、ピンとくる解説が無く
バイナリタイプのheaderの意味がいまいちわからないんです(´-`;)


uta.amcをバイナリエディタで開いたように画面に表示させるのは何を追加したら
良いでしょうか?
<?php
$filename = "uta.amc";
$fp = fopen($filename,"ab+");
$buf =fread($fp,filesize($filename));
print("$buf");
fclose($fp);
?>
今はnotpadで開いた時と同じのしかでません(´-`;)
120nobodyさん:04/04/11 17:10 ID:???
>>118
METAタグならheader関数。
121nobodyさん:04/04/11 17:43 ID:KEOuC9YI
本当に基本的な質問ですけど、PHPで外部プログラム(Linuxコマンド)の実行する方法
教えてください。

ソースは以下の通りです。
01┃<?
02┃$cmd=exec("date > date.txt");
03┃echo "$cmd";
04┃?>
122nobodyさん:04/04/11 18:04 ID:???
>>120
HTTPヘッダで飛ばすならheader関数だけど、
htmlのmetaで出力の部分はあれで良いと思われ。
123121:04/04/11 18:07 ID:KEOuC9YI
上のコマンド(>>121)を実行すると、
date.txt); echo "$cmd"; ?>
って表示されます。

PHPからLinuxコマンドを発行する事は不可能でしょうか?
124nobodyさん:04/04/11 18:12 ID:???
125nobodyさん:04/04/11 18:14 ID:???
>>119
>バイナリエディタで開いたように画面に表示
HTTPやクライアント側の処理の仕組みが判ってない
のかも知れないが、何を言ってるのかよくわからない。

ブラウザのHelperApplicationsに、MIME-type(Media-type)
とアプリケーション(バイナリエディタ)を関連付けてやって、
そのMIME-typeを、header関数でブラウザに通知すればOK。
MIME-typeは一般的なbinaryならば、application/octet-stream
とか、application/x-binary-editorを使えばよい。
126121:04/04/11 20:51 ID:KEOuC9YI
>>123

その通りにやっているんですが、WEB上で実行すると実行されないようです。
[root #server publuc_html]php date.php
と実行すると、そのディレクトリにdate.txtが出来るのですが、webで
http://localhost/~user/date.php
を実行してもdate.txtは出来ませんでした。
127nobodyさん:04/04/11 21:12 ID:???
どうして参照渡しではなく値渡しがデフォルトなんだよ。
書きにくくてたまらん。
このド素人用糞言語が。
128nobodyさん:04/04/11 21:12 ID:???
>>126
コマンドラインとサーバ経由で、PHPのユーザが違うのでは?
date.txtは誰にでも書き込める状態なのか。
129nobodyさん:04/04/11 21:15 ID:???
>>127
そのくらい言語に合わせて使いこなせよ、ド素人
130nobodyさん:04/04/11 23:27 ID:6nBAadXK
質問があります。
web製作板かもしれませんが、一応、ここが専門っぽいので・・・

<a href="http://feena.jp:81/typemoon/each.php?author=%CF%C2%C0%F4%CB%E3%BD%BD">

上のサイトの、検索結果に対してリンク貼りを試みたのですが、
結果は繋がりませんでした。
エスケープ方法が間違っている、との指摘を受けたのですが、さっぱりわかりません。
検索かけても載ってませんでした・・・

上のサイト検索結果に正しくリンクを貼るには如何すれば良いのでしょうか?
どなたか、アドバイスをよろしくお願いします。
131130:04/04/11 23:57 ID:???
すいません、別の所で質問してみます。
132nobodyさん:04/04/12 11:36 ID:???
perlでwebチャットプログラムを組んでいます。
共有サーバのため、できるだけ負荷をかけたくありません。

そこで呼び出し回数の多いリロード部をなんとか高速化しようと考えています。
perlで書かれたその部分をphpにおきかえた場合、高速化の効果はありますか?
処理内容は 設定ファイル、ログファイルを読む->正規表現でちょっと加工->出力 です。

# htmlファイルを作成してそれをリロードさせる方法のほうが負荷が低いことはわかっているのですが、「囁き」系機能が実現できないためこの方法がとれません。
# もしほかにナイスアイディアがありましたらお教えください。
133nobodyさん:04/04/12 12:09 ID:???
>>132
それなら全部PHPに変えとき。
134nobodyさん:04/04/12 15:33 ID:???
>>133
おっしゃるとーりなんだけど、こんな初心者質問するくらいphpは無知なんです・・。
混在するなんて気持ち悪いしそれならいっそC言語で組めよとかおっしゃらずに、
速度比較教えてくれると嬉すぃ。
135nobodyさん:04/04/12 16:36 ID:???
呼び出された時の開始の仕方の違いから、
PHP(CGI) < perl < PHP(モジュール) < mod_perl の順に速いと言われている。
でも、そんなのは微々たるもので、処理内容を見直した方が速く・低負荷になる。

例えば、設定ファイルの読み込み。
ファイルの存在チェックして読み込んでデリミタで区切って変数に設定して....
とか無駄が多い。高速化・低負荷を考えるならソース内に決め打ちにしてしまえっ!
ログ読み込みで正規表現も無駄無駄ムダムダムダムダムダニダムダ!!!
既に置き換えた部分は一時ファイルに保存しておいて加工処理を最小限にするっ!
136nobodyさん:04/04/12 16:41 ID:???
>>134
なら余り考えない方が良いよ。
素人の浅知恵(煽りじゃなくて)

わかる言語(Perlか?)で、今使ってるスクリプトの
設計を見直す。わかる言語が無けりゃ、何種類かの
スクリプトを使用感や性能比較して選択する。
自動車だって乗ってる奴が全員エンジン設計や
車体設計が出来るわけじゃないだろ、それと同じ。
ユーザはユーザでやるべき事がある。それくらいはやれ。
137nobodyさん:04/04/12 16:42 ID:???
>>134
そんなに速度が気になるならmod_perlで組み。PHPは無知なんだかだ。
138nobodyさん:04/04/12 16:55 ID:???
よく読んだらユーザじゃなくて作り手見習いなのね。
だったら尚更どれかひとつの言語をちゃんと習熟した方が
良いと思う。Perlで全然問題ないよ。

囁きって私信だよね。
今ログはグローバルな発言と囁きで分けて、混合してるの?
それとも混在してるものを出力時にパーソナライズ?
139nobodyさん:04/04/12 17:40 ID:???
>>135
あ。PHPって全部勝手にモジュールになるんだとおもってますた。(阿呆)
いわゆる普通のレン鯖だとphpはCGIになるんかな。

>>136
だいたい高速化はperlと同じだろー、だったらオーバーヘッド少ないほう使おうーという浅知恵。

>>137
レン鯖に入れてもらえないんじゃゴルァ!

>>138
現在の仕様
■ログファイル:
<b>モナー></b>えー、しんじらんなーい<br>
<b>ぎこ></b>電話番号教えてよ<br>[私信:モナー<>127.0.0.1]

■処理
while(<IN>){
next if (ログ行が私信 and 俺は私信を受け取る人物じゃない)
print $_;
}
140nobodyさん:04/04/12 17:41 ID:???
他に考えた手法は
「モナーgD45hj5aei0.htm、ぎこbR93DPaigy22.htm」
と用意して発言があったときに両方更新して、
リロードは<META HTTP-EQUIV="Refresh">、という方法。(IPを元にハッシュをつけて他人が見られないように)
2chのチャットスレで見たのは、更新された発言数行だけを得て、表示はjavascriptで行う方法。これは早かった。

ただ、チャットの表示形式はある程度の柔軟性・拡張性が必要です。
マルチルームで部屋ごとに別の設定が求められるためです。
極端な例としてはある月は発言色を動的にグラディエーションに、ある月は縦書きにするだとかが求められることもあります。

# ぜんぜんPHPスレじゃなくスマソ。
141nobodyさん:04/04/12 17:51 ID:N7Xr04dJ
<html><body>
TESTPAGE<br>
<form action="<? echo $_SERVER[PHP_SELF]; ?>" method="POST">
URL: <input type="text" size="60" name="url" value="http://www.yahoo.co.jp">
<input type="submit" value="get"><br>
<?php
if(ereg("^http://",$_POST[url]) && isset($_POST[url])):
$page = readfile($_POST[url]);
echo "<hr>総バイト数 $page";
endif;
?>
作動しないんですけど何が原因でしょうか?
142nobodyさん:04/04/12 18:47 ID:???
phpdevをXPにインストールして使ってるんですが
mb_convert_encoding等の関数を利用するにはどうすればいいんでしょうか…?

143nobodyさん:04/04/12 19:27 ID:???
>>142
php.iniでmbstringエクステンションを
ロードするように、コメントアウト
;extension=php_mbstring.dll
してるのを外す。それで上手くロードできなければ
マニュアルみてphp.iniの設定関係を見直せ。
144nobodyさん:04/04/13 00:28 ID:gpEMrt78
PerlできるシトがPHP出来ないなんて信じられません。。。。
ほとんど一緒ジャン。でかPerlの面倒なとこを関数化しちゃったのがPHPでそ?
145nobodyさん:04/04/13 01:29 ID:???
>>144
あんまりPerlさわってないけど、CPANのライブラリ(といえばいいのか?)を
使いこなしている人は、関数でゴリゴリすることもないのかも。
もう少し日本語ドキュメントが充実すればいいのだろうけど。
146nobodyさん:04/04/13 01:56 ID:???
>>144
できないことはないだろうね。
でも、PHPは関数が多すぎてめんどくさいのよ。
perlの関数なんて全部覚えきれる程度しかないから
それを使ってあとは自分で書いたほうが早いし。
147nobodyさん:04/04/13 06:56 ID:7nSUeYQs
PHP4.3.4 / mb_send_mail, qmailでスクリプトから
メール送信するとhotmailのバルクメール扱いになってしまいます。
これはサーバの設定が原因でしょうか?
148nobodyさん:04/04/13 11:00 ID:???
今まで関数なんて全部覚えたことないぞ
必要になったときにWEBで検索かける
149nobodyさん:04/04/13 11:50 ID:???
関数リファレンス
ttp://jp.php.net/manual/ja/funcref.php
はカテゴリ毎に分けられているので便利。
でも abc 並びなので英語とカタカナ混在で探すのが面倒。
abc → アイウエオ並びになると見やすくなりそう。
150nobodyさん:04/04/13 11:58 ID:???
>>149
脳内翻訳すればたいした手間じゃないと思うが。
それほど難しい単語なわけでもないし。
151nobodyさん:04/04/13 12:22 ID:???
すまそ、
get_cwd() のように現在のファイル名だけを知りたいのだけど、何か適当な関数ありませんか。
前から気になってたんだけど、結局見つかってないんで。
パスの付いた価を取って explode() して array_shift() とかいう無駄な処理しか思いつきません。もうちょっと何とかならないかと。
152nobodyさん:04/04/13 12:24 ID:???
>>151
basename()
153nobodyさん:04/04/13 14:05 ID:???
perlにおいて、csvファイルを配列に取り込み、複数項目でソートをかける為に
下記のような方法を取っていたのですが、
これをphpで行う場合、multisortでは1項目でのソートしか出来ないと
マニュアルに記述されていますが、どのような処理でなら可能でしょうか?

@DATA = sort { (split(/,/,$b))[1] <=> (split(/,/,$a))[1] || (split(/,/,$a))[2] <=> (split(/,/,$b))[2]; } @DATA;
154nobodyさん:04/04/13 14:37 ID:Dw9h1MU+
>>141ですが

わかるかたいませんか?
155nobodyさん:04/04/13 14:45 ID:???
>>154
ウチじゃ動くべ
php.iniじゃないの?
156nobodyさん:04/04/13 14:55 ID:???
>>154
$_SERVER[PHP_SELF] -> $_SERVER['PHP_SELF']
$_POST[url] -> $_POST['url']
157nobodyさん:04/04/13 15:11 ID:Dw9h1MU+
>>155
php.iniですか・・・

>>156
やってみましたが動作しません。

エラーも出ずボタンを押しても無反応です。
158nobodyさん:04/04/13 15:18 ID:???
>>157
どこか打ち間違いがないかよぉくみれ。
ボタンが無反応なら、吐いているHTMLに記述ミスがあるはず。
159nobodyさん:04/04/13 15:33 ID:7nSUeYQs
$_SERVER['PHP_SELF']が空なのでは?
160nobodyさん:04/04/13 15:39 ID:7nSUeYQs
今試してみたらそのままでokだった。
161nobodyさん:04/04/13 15:50 ID:???
>>160
確かに動くがこれってページを読み込んで、ファイルサイズを表示させたいんじゃないのか?
違ったらスマソ
162nobodyさん:04/04/13 15:57 ID:Dw9h1MU+
http://php.s3.to/net/get1.php

これと同じように指定したページそのものを
表示したいのですが。
みなさん>>141で表示されますか?

ちなみにhttp://php.s3.to/net/get1.phpは表示されるので
やっぱりphp.iniなのでしょうか?
163nobodyさん:04/04/13 16:02 ID:???
>>162
なんだそれでいいのか。それなら今のままで表示されるよ。
164155:04/04/13 16:09 ID:???
なんだ、レッツのほぼそのままコピペか。
そうなるとちょい気になるんだが、PHPのバージョンは?

>>163
いやいや、表示されないからお困りなんでしょ(^^;
165151:04/04/13 16:11 ID:???
>>152
ありがとう。
ちょっと今試せないのであとでやってみます。
166nobodyさん:04/04/13 16:11 ID:Dw9h1MU+
<html><body>
TESTPAGE<br>
<form action="<? echo $_SERVER['PHP_SELF']; ?>" method="GET">
URL: <input type="text" size="60" name="url" value="http://www.yahoo.co.jp">
<input type="submit" value="get"><br>
<?php
if(ereg("^http://",$_GET['url']) && isset($_GET['url'])):
$page = readfile($_GET['url']);
echo "<hr>総バイト数 $page";
endif;
?>
で挑戦してみたところURLは/test.php?url=http%3A%2F%2Fwww.yahoo.co.jpのように
しっかり渡されているようなのですが下にページが表示されない状態です
167nobodyさん:04/04/13 16:13 ID:Dw9h1MU+
PHP Version 4.0.6です。
168155:04/04/13 16:15 ID:???
やっぱりオチはそれだったか(ーー;;

$HTTP_POST_VARS使ってください....
169nobodyさん:04/04/13 16:19 ID:Dw9h1MU+
とおっしゃられますと
やっぱりバージョンでしたか・・・・
管理者に頼んでUPしてもらいます。
170nobodyさん:04/04/13 16:27 ID:Dw9h1MU+
ご迷惑かけたところで申し訳御座いませんが

これを使用した場合表示先>>141ならyahooの
アドレスは閲覧者にはどうやっても知られずに済みますか?
表示先のURIを知られたくないのですが・・・
171nobodyさん:04/04/13 16:33 ID:???
悪質サイトがよくやる手だな
172nobodyさん:04/04/13 16:42 ID:???
>>170
     ヽ|/
     / ̄ ̄ ̄`ヽ、
    /         ヽ
   /  \,, ,,/    |
   | (●) (●)|||  |
   |  / ̄⌒ ̄ヽ U.|   ・・・・・・・・ゴクリ。
   |  | .l~ ̄~ヽ |   |
   |U ヽ  ̄~ ̄ ノ   |
   |    ̄ ̄ ̄    |
173nobodyさん:04/04/13 16:43 ID:???
>>169
$_SERVER,$_GET,$_POSTなどのスーパーグローバル変数か使えるのはPHP4.1.0以上。
http://php.benscom.com/manual/ja/reserved.variables.php
174nobodyさん:04/04/13 17:13 ID:???
PHPマニュアルのWindowsヘルプファイル版、
日本語版をダウンロードしたら日本語じゃなかった…
175nobodyさん:04/04/13 17:16 ID:???
>>174
そうだよ
176nobodyさん:04/04/13 17:17 ID:gpEMrt78
>>170
φ(°°) メモ φ(。。) メモ φ(°°) メモ φ(。。)
177nobodyさん:04/04/13 17:18 ID:???
>>174
http://www.php.gr.jp/
ここのどっかに日本語版あったよ。
178177:04/04/13 17:19 ID:???
179174:04/04/13 17:23 ID:???
>>177
ありがと。でもそのバージョンは持っているの…。
最新版は自分で加工しなきゃだめなの…?
180nobodyさん:04/04/13 17:50 ID:Dw9h1MU+
ありがとうございました。

で、結局自分のやりたい事は出来なかったのですが
こういうことは不可能なのでしょうか?
http://○○○/Aというページとhttp://○○○/Bというページがあるのですが
http://○○○/に入るにはユーザー名とパスワードが必要です。
http://○○○/Aを見せるためにユーザー名とパスを入力した状態にしておいたのですが
パス見えなどのソフトを使われユーザー名とパスがばれてしまい見せたくない
http://○○○/Bも見られてしまいました。
ちなみにhttp://○○○/のページは編集出来ません。
そこで考えたのがさきほどの>>141http://○○○/Aをゲットしたページを見せようかと
思ったのですが結局PASSとユーザー名は入れるはめになるので困ってます。
ミラーも無理だろうし・・・
なにかいい方法はないでしょうか?
181nobodyさん:04/04/13 17:53 ID:???
そんなことであんな小細工するページを作ろうとしてたんかよ。
バカバカしい・・・ ┐(´д`)┌
182nobodyさん:04/04/13 18:08 ID:???
レスして損したぞ
183nobodyさん:04/04/13 18:39 ID:Dw9h1MU+
ごめんなさい。;;

でも必死に色々試した結果でした。
PHPなら出来るかと思い挑戦したのですが
どうやら不可能な問題みたいですね。

ありがとう御座いました。
184nobodyさん:04/04/13 18:40 ID:???
>>180
>なにかいい方法はないでしょうか?
いい方法を考えるよりも、その制約の多い構造を
見直した方が良い。大体○○○は全部同じで
そんなことしてるのかよ。
185nobodyさん:04/04/13 18:48 ID:???
みんなは>180の状況理解してるん?
俺はよくわからないんだが・・・

AとBが同じパスワードで見れてしまうのを避けたいんだよね?
Bは編集できるんだから、Bにまた違うアクセス制限かけたらいいんじゃないの?
よく理解してないので見当違いのレスならすまぬ
186nobodyさん:04/04/13 18:49 ID:???
>>180

>PHPなら出来るかと思い挑戦したのですが
>どうやら不可能な問題みたいですね。

できる。

でも教えたところで意味不明なこと言い始めそうなんで放置。
187nobodyさん:04/04/13 20:41 ID:???
すんません初心者です・・・

if (!isset($_SESSION['register']) || $_SESSIN['register'] != 0){

}

・・・なんですが、issetの前にある!は何の意味なのでしょうか?

お教え下さい。m( _ _ ;)m
188nobodyさん:04/04/13 20:46 ID:???
>>187に触ったら死刑
漏れはセーフ
189nobodyさん:04/04/13 20:49 ID:???
>>187
自己レスですが、単なる否定でよいのかなぁ・・・

どういう意味になるのでしょうか?

空白を入れなくても良いのでしょうか?

! isset($_SES・・・  てな感じに・・・
 ↑
190nobodyさん:04/04/13 20:49 ID:???
>>188
へ???

191nobodyさん:04/04/13 21:00 ID:???
自殺でつか…
192nobodyさん:04/04/13 21:03 ID:???
猫さんの打った文章?は下の行です。↓

:¥・」:\\\\\\\\\
193187,189です:04/04/13 21:17 ID:???
なんかマズイこと書きましたか?私・・・

194nobodyさん:04/04/13 22:00 ID:???
      | Hit!!
      |
      |
   ぱくっ|
     /V\
    /◎;;;,;,,,,ヽ
 _ ム::::(,,゚Д゚)::| 俺が釣られると思ってんのか!
ヽツ.(ノ:::::::::.:::::.:..|)
  ヾソ:::::::::::::::::.:ノ
   ` ー U'"U'
195nobodyさん:04/04/13 22:47 ID:???
クイズ(多岐選択)ができるスクリプトを探してるんですが、
Kent-webさんのところのWeb quizのようなPHPスクリプトありますか?

CGIがおけないので、PHPのを探してます。
自分で作れるほどの技量はないので人様のを拝借しようと・・・
196nobodyさん:04/04/14 00:04 ID:???
簡単じゃないか?
クイズファイルを

問題<>選択1<>選択2<>選択3<>回答
問題<>選択1<>選択2<>選択3<>回答
問題<>選択1<>選択2<>選択3<>回答
(デリミタは見やすくしただけ、タブでいいよ)

こんな風に書いて、file()関数で行ごとに配列に入れて
array_rand()関数でランダムに問題を出す

で、回答用の配列作って、あってたら1、違ってたら0を入れる。
で、最後に出力

こんなもんでいいんじゃね?
197nobodyさん:04/04/14 01:00 ID:???
ぜんぜんダメ。
198nobodyさん:04/04/14 08:27 ID:???
>>195
スレ違いというか、板違い
ここは自分でスクリプトをいじる人の板

自分でスクリプトを組む気が無いのならWeb製作板へ
199nobodyさん:04/04/14 09:22 ID:???
わざわざこのスレに書いたのは「作ってくれ」と言いたい訳だな?そうなんだな?

だったら逝ってくれ
200nobodyさん:04/04/14 11:20 ID:???
(=゚ω゚)ノ
状況次第とは思いますが、オブジェクト変数等を unset() する事でメモリや実行速度の節約につながる事はあるのでしょうか。
クラスライブラリの取り込みや処理が多いので不要になったオブジェクト変数は unset するべきかどうか迷っているのですが。

今もエンバグしないようにリファレンス参照を行っている場合は unset するようにしています。
201nobodyさん:04/04/14 13:08 ID:kCgzRk8J
文字列から、特定の文字列がN回目出現するまでの
前の方の文字列を取り出す方法を御伝授ください。

具体的に

あいうえお<br>かきくけこ<br>さしすせそ<br>たちつてと<br>・・・・

の文字列から
3回目の<br>の前まで

あいうえお<br>かきくけこ<br>さしすせそ

を、取り出す方法です。

お願いいたします。 (o*。_。)oペコッ
202nobodyさん:04/04/14 13:33 ID:???
>>201
$a="あいうえお<br>かきくけこ<br>さしすせそ<br>たちつてと<br>・・・・";
$b=explode("<br>",$a,3+1);
array_pop($b);
echo implode("<br>",$b);

203nobodyさん:04/04/14 14:06 ID:kCgzRk8J
explod関数ですか!

すばやい御回答、ありがとうございました。
感謝です

m(_ _"m)ペコリ
204nobodyさん:04/04/14 14:50 ID:???
>>200
スクリプト終了時にメモリは自動的に開放されるので、スクリプト中にそれほどメモリを消費していないのであれば、
unset() しない方がパフォーマンスは良かったような気がする。

未然にバグを防ぐために unset() するのは安全なのでいいことだと思うけど。

メモリに関しては、PHP を --enable-memory-limit オプション付きでコンパイルしていれば、 memory_get_usage() を
使って調べるのが確実。
205nobodyさん:04/04/14 16:11 ID:???
>>204
Webアプリケーション等の場合にはスクリプト実行中にやるよりも、
終了時に自動でさせた場合、HTTPの出力は既に終わったあとの
処理となるので、ユーザにとって結果を受け取るまでの時間が
短いと言う意味でのパフォーマンスは良いが、スクリプト
パフォーマンスとしてはほぼ同等。分け隔てなく一切合財
開放するんで細かくみると若干良いけどね。
206nobodyさん :04/04/14 16:29 ID:rE+vE3GS
あんたらのサニタイジングの方法教えれ
207nobodyさん:04/04/14 16:40 ID:???
そんなもの状況によって変わる気がするが
208200:04/04/14 16:44 ID:???
>>204
詳しい説明ありがとうございます (;´д`)/ 納得しました。
色々試したいと思います。感謝。
209195:04/04/14 17:39 ID:???
>>198
失礼しました。
制作版にはphpのスレがなかったもんで、こちらで聞いてしまいました。

>>197
ドモ
210nobodyさん:04/04/14 20:14 ID:???
こんばんわです

<form action="ses1.php?<? echo strip_tags(SID)?>" method="post">
の echo って必要ですか?無くても動くようですが。

<form action="ses1.php?<? strip_tags(SID)?>" method="post">
にしてはいけないのでしょうか?
URL欄にIDが出てくるのはいやなんですが・・・

よろしくです。
211nobodyさん:04/04/14 20:29 ID:???
>>210
下のPHPタグには何の意味が?w

さておき、4.2.0以降か、それ以前でtrans-sidが有効になっていれば、必要ないです。
212nobodyさん:04/04/14 20:51 ID:???
どうもです。ってことはコレでイイわけですか・・・?

<?
session_start();

?>

<form action="ses1.php" method="post"> ← .phpの後に何も付けない


どの参考書を見ても
<form action=“ses1.php?<?=SID?>” method=“post”>
とか
<form action="ses1.php?<? echo (strip_tags(SID))?>" method="post">
と書かれているので・・・

PHP4.3.2なのでいらないんでしょうね・・・
213nobodyさん:04/04/15 01:28 ID:???
その参考書、なんて書籍ですか?
214nobodyさん:04/04/15 01:49 ID:pZEIIwSW
ものすごく基本的な質問ですが…

ブラウザーからのデータの取得は$_POST["message"]などを使うと思います。
でもこれってv4.1.0以降じゃないと使えないですよね?
v4.0.6の場合どうやって取得します?
register_globalsはOffのことも考慮して
$messageは使えないとしてお聞きします。
215nobodyさん:04/04/15 02:05 ID:???
>>214
基本的ゆえマヌアル見たら載ってる。それも基本的なところに。
取り合えず知ってるもの($_POST)を利用して探してみ
216214:04/04/15 02:35 ID:???
>>215
レスサンクス。
あー、アホや自分。
マニュアルは「キーワード」で$_POSTを探していた。
「検索」で探したら一発で出てきた。
$HTTP_POST_VARS['message']

しかも$HTTP_SERVER_VARS['SCRIPT_URI']使っていたから気づけよ(´・ω・`)
217nobodyさん:04/04/15 03:47 ID:???
質問。
function foo($a){ 【処理】 }

$a = array('x1'=>'x2','y1'=>'y2','z1'=>'z2');
foo($a);

は、参照渡し?
218nobodyさん:04/04/15 03:59 ID:e3RhHgHW
違うだろ。
219nobodyさん:04/04/15 04:15 ID:???
違うのか?じゃあ参照渡しするには&$にするの?
なんかわかりずらいな…さんくすこ。
220nobodyさん:04/04/15 04:23 ID:e3RhHgHW
そうだろ。
221nobodyさん:04/04/15 10:03 ID:???
ちょっと Windows から隣のIMAPサーバに入ってゴニョゴニョとやりたいんですけど、
IMAP関数って Windows では使えないんでしょうか?
222nobodyさん:04/04/15 10:15 ID:???
>>221
php_imap.dll
223nobodyさん:04/04/15 10:24 ID:NQbEU4pX
PHPのカートシステムのサンプルないですか?
教えてなさい。お願いします。
224nobodyさん:04/04/15 10:27 ID:???
225nobodyさん:04/04/15 10:57 ID:NQbEU4pX
>>224
グッジョブ!





_| ̄|○ ガク
226nobodyさん:04/04/15 10:59 ID:???
>>224
そうきたかw
227nobodyさん:04/04/15 11:30 ID:+OQgNtC5
>>217

参照渡しをしたければ

function foo(&$a) {}

にしたほうが将来的にはいいみたいだ

228nobodyさん:04/04/15 15:20 ID:???
formから配列をphpに渡したい場合どうやって受け取るの?

for ($i=0;$i<$hensuu;$i++){
echo "<select name=test[$i]>\n";
while($row = mysql_fetch_array($res)){
echo "<option value='$row[name]'>".$row["name"]."\n";
}
echo "</select>\n";

んで↓試してみたけどだめでした。

for ($i=0;$i<$hensuu;$i++){
$test[$i] = $HTTP_POST_VARS["test[$i]"];
}

どなたか識者の方お教え下さい
229nobodyさん:04/04/15 15:38 ID:???
とりあえずHTMLの勉強をしてこないか?
230nobodyさん:04/04/15 15:47 ID:???
>>228
(゚д゚)ポカーン
231nobodyさん:04/04/15 16:03 ID:???
phpのデバッグをしているのですが、print_rで配列などを表示させたいのですが、
そのまま表示させると text/html 以前なのでソースが表示されてしまいます。

なので
$debug = '';
などで出力を配列の中身を入れてから出力させているのですが、
そうすると配列の中身が改行されないで表示されてしまいます。

みなさんはどのようにしているのでしょうか?

googleやマニュアルを2,3時間調べてみましたがわかりませんでした。

function debug などでprint_rしている例や、
$debug .= var_export($str);
などやってみましたが、うまくいきません。

デバッグの説明ページなどにも書いてないです。
PHPの本も3冊位みましたが出ていません...

英語のURLなどでもよいので、何か手がかりを教えて頂ければと思います。
232nobodyさん:04/04/15 16:23 ID:???
>>231
ごめん、俺頭悪いんで、あなたの状況がいまいちわからん。。。

>text/html 以前なのでソースが表示されてしまいます
ってどういう状態?

>そうすると配列の中身が改行されないで表示されてしまいます
print_rの出力で改行されないって話?
それはブラウザがHTML的にレンダリングしてるからじゃないの?
ソースを見るか、print_rの出力前後に<pre>タグいれるかしたら解決しない?

なんせ理解しきれてないので見当違いなら悪かった。
233nobodyさん:04/04/15 16:36 ID:???
>>232
説明不足ですみません...

>> text/html以前
というのは、ヘッダーを出す前ということです。
Content-Type : text/html\n\n
を出す前に print_rするとhtmlがソースで出てしまうので、変数にデバッグ情報を格納して
HTMLの中で表示したいという意味です。

print_rみたいなのの内容を変数にいれて、<pre></pre>で囲ってもなぜか、ちゃんと
改行されないのです。

print_rやvar_dump()の結果など変数に入れられないので困っています。

やりたいことは、ただ変数や配列の中身を調べたいだけなのですが...


234nobodyさん:04/04/15 17:00 ID:???
やりたいことは判るが、状況が判るような判らんような。

>$debug .= var_export($str);
多分、var_export()の第2引数のところをよく読めば解決。
http://www.php.net/manual/ja/function.var-export.php

あとは出力バッファリングを制御して、var_dump使う手もある。
235nobodyさん:04/04/15 17:03 ID:???
phpinfoに引数与えて、変数のあたりの項だけ出力つうのもあるな。
ただこれはphpinfo自身もヘッダー出力するのでダブって出ちゃうけど、
ブラウザが宜しく表示してくれるので、簡易的には使える。
236nobodyさん:04/04/15 17:31 ID:???
>>234
$debug .= var_export($str, TRUE);
にしてみました。うまくいってないようです。
引き続き調べてみます。

>>235
> phpinfoに引数与えて、変数のあたりの項だけ出力つうのもあるな。

そんな方法もあるのですね試してみます。

preで表示されない件は、どうやら以下のように指定することで解決したような
感じです。xhtmlとかcssの新しいので仕様が変わったんでしょうか...

<pre style="white-space: pre">


237nobodyさん:04/04/15 17:36 ID:???
何処で聞けばよくわからないのですがとりあえずphpの事なのでここで質問です。

ふたば(レッツPHP)の画像うpろだに、
携帯からアクセスるることは出来ないのでしょうか?
238nobodyさん:04/04/15 17:43 ID:???
>>237
そのふたばで聞けばいいでしょ
239nobodyさん:04/04/15 17:45 ID:???
何故ここで菊?
240nobodyさん:04/04/15 17:46 ID:???
>>238
あ、そうですね。ごめんなさい。

>>239
一応phpだし、ここ以外に何処で聞けばよくわからなかったもので。
241nobodyさん:04/04/15 18:04 ID:???
他人の作ったスクリプトの事をここできかれてもな
その人にきくのがスジってもんだろ
242236:04/04/15 18:49 ID:???
原因はスコープの問題のような気がしてきました。

調べたい配列を Debug($array); しているのですが、グローバルで指定してるはずの
$debug_output に何も表示されません。
少なくとも

マニュアルなど見てもこれでOKなはずで、何が悪いのかさっぱりわからないのですが...
どんな原因が考えられるのでしょうか?
少なくとも function Debug called: と表示されなくてはいけないはずなのに

function Debug($tmp)
{
global $debug_output;
$debug_output .= "function Debug called:\n";
$debug_output .= var_export($tmp, TRUE);
}
243236:04/04/15 18:58 ID:???
すみません。解決しました。

Debug($array); を読んでいる関数の中で global $debug_output;
していなかったためでした...

うぅ、むずかしぃ。
お騒がせしてすみません。
244nobodyさん:04/04/15 19:03 ID:???
>>243
ついでに。

上手くいったら判ると思うけど、var_dumpの出力と
var_exportの出力とは同じものではないので、
さっきも書いたけどvar_dumpの出力をバッファリングして
処理するつうのも試したら良いよ。

<?php
ob_start();
$ary = array(1,2,3);
var_dump($ary);
$dump = ob_get_contents();
ob_end_clean();
?>
<html><head><title>TEST</title></head>
<body><?php echo $dump; ?></body></html>
245nobodyさん:04/04/15 22:41 ID:???
PHPでhtml部分全部表示させた完全に動的なページって、
グーグルとかの検索エンジンにはひっかからないですよね?index.phpみたいなの。

でも静的なhtml内に部分的に埋め込んだ場合は、
PHPによる置き換え箇所の文字列も検索にちゃんとひっかかるんでしょうか?

簡単な日記更新用のスクリプト書いて、自動でログを読み込ませようとしてるんですが、
検索にひっかからないようなら、.htmlの完全に静的なファイルを、更新するたびに毎回書きださなきゃと思って。

cgiなら少しはさわったことあるけど、phpはこれからはじめようと思って…。


よろしくおねがいします。
246nobodyさん:04/04/15 23:11 ID:???
>>245
プログラマならもう少し論理的に考えてみましょう。
htmlファイル、HTMLにPHPを埋め込むタイプ、PHPでHTMLを出力するタイプ。
検索エンジンがこれらのファイルを呼び出すと、HTTPヘッダ部分・ボディ部分が返ってくるわけです。
ボディ部分は出力のタイプによって変化しているわけじゃないのはすぐ分かると思います。
となると、違いがあるとすればヘッダ部分だけになります。
ところが、header()関数というものが存在し、これを用いてヘッダ部分をも統一することができるわけです。
困ったことになりました。>>245さんの質問の前提とも言うべき事が破綻してしまったのです。

いや、まぁグーグルだけを気にするならHELPにそのまんまの答えが書いてあるわけだが。
247nobodyさん:04/04/15 23:36 ID:???
>>245
>PHPでhtml部分全部表示させた完全に動的なページって、
>グーグルとかの検索エンジンにはひっかからないですよね?
そんなことはないよ。まあロボットの中には拡張子で
動的コンテンツだと思われるものを除いて収集する、
性能の余り良くないものもあったけど。

>でも静的なhtml内に部分的に埋め込んだ場合
ここで前述のコンテンツの作りと「違う場合」と思ってるのは間違った理解。
248nobodyさん:04/04/15 23:48 ID:???
>>246 >>247

プログラマじゃないです、只の素人です。
なのでheader()関数云々などよくわかりませんでしたが、
書き込みを見て色々と検索で調べてみました。

結果、

http://www.sem-research.jp/sem/seo/20030926003954.html

ここなどを見ると僕が思ってたほどの問題はないですねー。
urlに引数を付けないトップページだけ検索にかかればいいし。

どうもありがとうございます。
249nobodyさん:04/04/16 03:24 ID:???
>>229
どこが悪い?
250nobodyさん:04/04/16 04:57 ID:52nqSZp9
今週からPHPを触り始めました。
眠くて頭が働きません。。。
だれか
http://www.aaa.co.jp/bbb/ccc/ddd/eee
から、www.aaa.co.jp/bbb/ccc/ddd

 を、取り出す方法を伝授してださい。
つまらない質問ですみません。
251nobodyさん:04/04/16 04:59 ID:???
>>250
一眠りしてからがんばれ
252nobodyさん:04/04/16 05:07 ID:52nqSZp9
わかるんですが、これが出来たら・・・

と、あれやこれやで、夜が明けちゃいました。(*ノ-;*)エーン
253nobodyさん:04/04/16 07:14 ID:???
>>250
その書き込みだけじゃ、いまいち抽出条件がわからんが、たぶん、
$a="http://www.aaa.co.jp/bbb/ccc/ddd/eee";
ereg('^http://(.*)/[^/]*$',$a,$r);
echo $r[1];
かな。
254nobodyさん:04/04/16 08:50 ID:???
dirnameで拾った文字列からhttp://を抜くとか
255nobodyさん:04/04/16 08:54 ID:???
>眠くて頭が働きません。。。
ワロタ
256nobodyさん:04/04/16 11:51 ID:???
"/"でぶった切って繋ぎ合わせるとかw
257nobodyさん:04/04/16 13:08 ID:???
PEARか拡張関数でURIを構造分割するのが確かあったと思うけど。
258nobodyさん:04/04/16 13:34 ID:cDPeW6cE
>>257
>>250にPEARの話をするのは酷かと思うぞ
259nobodyさん:04/04/16 14:25 ID:7NgfJvTR
>>250
こういう関数もある
<?
$url = "http://www.aaa.co.jp/bbb/ccc/ddd/eee";
$parse_url = parse_url($url);
$dir_name = $parse_url[host].dirname($parse_url[path]);
echo $dir_name;
?>
260nobodyさん:04/04/16 14:29 ID:???
これだけ手法があるのに解らず、
>>250の「これが出来たら…」で
何が出来るんだろうw
261nobodyさん:04/04/16 14:33 ID:???
のび太 <> ドラえもん
くらいにインターフェースがスマート&簡素化されていないPHPが悪いんですよ!
262nobodyさん:04/04/16 14:49 ID:???
>>261
アニメと現実を分けて考えられないお前が一番悪いけどな。
正しく"ドラえもん"って書けた点は褒めとくが
263nobodyさん:04/04/16 16:40 ID:???
ドラえもんくらい今時一発変換。
264nobodyさん:04/04/16 18:10 ID:???
ふつうにeregでhttp://退けろよ
265nobodyさん:04/04/16 20:49 ID:???
質問があります。

NPO広場
http://www.npo-hiroba.or.jp/cgi-bin/nposearch/npo_top.cgi

ここの検索結果の団体詳細を
全てローカルに落とすことは出来ませんでしょうか?
アンケート調査を行いたいのですが、
ここから手動でデータを落としていると
それだけで膨大な時間がかかるので。

わかる方いたら教えて下さい
266265:04/04/16 21:22 ID:???
>265
urlのid=の所を指定したら出来ました
自己解決です
267250:04/04/16 23:11 ID:???
あああ、レスがあったんですね。
いま、戻りました。
あの後、置き換える関数やら、最後の位置を取る関数やらを使って一応出来て
そのまま、寝ちゃいました。
教えていただいた関数も方がスマートなので使わせていただきます。

もう寝ます。(ゝ_ξ) ゴシゴシ
268nobodyさん:04/04/16 23:28 ID:???
>>266
>urlのid=の所を指定したら出来ました
今日日、その程度でも難癖つけられる場合もあるかもね。
269nobodyさん:04/04/17 20:15 ID:???
preg_match (pattern,subject [,matches])
の、patternとして、「辞書配列hoge」の「要素hage」を使いたいのですが、
どういった記述をすればよいのでしょうか?
270269:04/04/17 20:22 ID:???
ごめん、事故解決。
preg_match ("/".$hoge['hage']."/",$subject)
であっけなくできたわ。
271nobodyさん:04/04/17 21:30 ID:???
<?
require "setting.inc";
echo "ようこそ";

みたいな感じでで共通で使う変数を羅列した設定ファイル(setting.inc)を読み込もうとしているのですが…

setting.incの中身が全部そのままブラウザに吐きだされてしまいます…

$data_dir="/data/"; $imagefile="img/";ようこそ

↑こんな感じ


こんなはずではなかったのですが…
どうすればよいのでしょう…
272nobodyさん:04/04/17 21:56 ID:???
>>271
includeされるファイルも、ちゃんとPHPスクリプトにしてるかい。
要は<?php ?>で囲んどるか?
# おっちゃん、短縮形は好かんぞ

273269:04/04/17 22:22 ID:???
すいません、今度こそまともな質問です。
PHPでWEBメーラーを作ろうと目論んでいるのですが、
メールの受信処理を行うには、どうすればよいのでしょうか?
274nobodyさん:04/04/17 22:26 ID:jFDbaWFj
fsockopen
275269:04/04/17 22:27 ID:???
>>274
ああああっ! そっか、その手が……。
すいません、名無しに戻って首吊ってきます。
276nobodyさん:04/04/17 23:25 ID:???
>>272
さんきゅ、はじめてなのでわかりませんでした。
ありがとうございます
277nobodyさん:04/04/18 00:02 ID:???
>>276
require_once使っとけ
278nobodyさん:04/04/18 04:09 ID:???
すいません、ファイルを新規作成して文字列を書き込もうとしているんですが、
うまくできません。
下のコード、どこがおかしいんでしょうか?

$filename = 'test.txt';

if (!$handle = fopen($filename, 'w+')) {    //←ここの条件分岐をスルーせずに
echo "Cannot open file ($filename)"; //ブラウザにコレが返ってくる。
return;
}

if (!fwrite($handle, "ほげ")) {
echo "Cannot write to file ($filename)";
return;
}

fclose($handle);
279nobodyさん:04/04/18 04:30 ID:???
>>278
何らかの要因でtext.txtが新規作成できない。
ディレクトリのパーミッションとかそんな感じ。

PHPの動作モードとか、どういった権限のユーザで
動いてるのか等も関係するけど、その辺は環境毎に
違うので管理者に訊くなりして、自分で調べてね。
280nobodyさん:04/04/18 12:48 ID:???
PHPで鯖のIPアドレスは取得できるのですが、
ポート番号を取得する関数とかないんですか?
281nobodyさん:04/04/18 13:24 ID:???
>>280
言っている意味が不明。
282280:04/04/18 13:32 ID:???
>>281
説明下手ですいません。
httpデーモンが動いているポート番号(80など)を取得したいのです。
自分の環境が80では無く、可変なので。
283nobodyさん:04/04/18 13:36 ID:???
>>282
$_SERVER['REMOTE_PORT']
284nobodyさん:04/04/18 13:40 ID:???
は?>283
$_SERVER["SERVER_PORT"]
ちゃうの?
285nobodyさん:04/04/18 13:44 ID:???
>>284
ごめん間違えた。
286nobodyさん:04/04/18 13:53 ID:???
あの、cryptは先頭8byteしか見ないんですが、他に何かいいのありませんか?
複合化できるのは無しでお願いします。
md5って

$pass="a8o4hn&$NKJnhsu5";
$md5_pass=md5($pass);

こんなので出来るんですか?
287nobodyさん:04/04/18 13:53 ID:1szp522M
ちわ。

自宅鯖でPHPとMysqlを使っています。
下記のように書いたのですが、13行目でエラーが出てしまいます。
やろうとしていることはテーブルにあるデータを読み出して、カウントした数字を出したいのですが、
一体どうすれば・・・・


<html> //一行目
<head>
<title>test</title>
</head>
<body>
<table border="1">
<tr><td>ID</td><td>名前</td><?php
$con=mysql_connect("localhost","root","root");
mysql_select_db("kisop",$con);
$sql="SELECT * FROM test_table LIMIT 10";
$cnt="SELECT COUNT * FROM test_table";
$cnt1=mysql_query($cnt,$con);
print("データ件数は".$cnt1"件です"); //13行目
$res=mysql_query($sql,$con);
while($row=mysql_fetch_array($res)){
print("<tr>");
print("<td>".$row["id"]."</td>");
print("<td>".$row["name"]."</td>");
print("</td>");
}
?>
</table>
</body>
</html>
288nobodyさん:04/04/18 13:54 ID:???
print("データ件数は".$cnt1"件です");

print("データ件数は".$cnt1."件です");

凡ミスですな
289280:04/04/18 14:03 ID:???
みなさん、ありがとうございます。
$_SERVER["SERVER_PORT"]で上手くいきました。
// マニュアル読まないといけませんね。
290nobodyさん:04/04/18 14:04 ID:1szp522M
あっ、どもです。
エラーはでなくなったんですが
データ件数は件です と表示され、数字が出てきません・・・
こっ、これは一体なぜでありましょうか?
291nobodyさん:04/04/18 14:22 ID:???
>>279
ありがとうございます。
ディレクトリのパーミッション違いで解決しました。

ただ、もうひとつ問題がわき上がって、
fopenで開く時の$filenameが

$filename="/test.txt";
とか
$filename="http://hoge.com";

などの絶対パスだった場合はオープン出来ないんですけども、
これは鯖にインスコされてるphpの設定ファイルに基づいた仕様ですか?

うちはレンタル鯖なのでもしそうなら諦めた方がよさそうですが。
292278=291:04/04/18 14:23 ID:???
あ、レス番つけるの忘れた
293278=291:04/04/18 14:26 ID:???
さらにまちがい…

×

$filename="/test.txt";
とか
$filename="http://hoge.com";






$filename="/test.txt";
とか
$filename="http://hoge.com/test.txt"; //←
294nobodyさん:04/04/18 14:43 ID:???
>>293
まずhoge.comに繋いでからtest.txtをリクエストするようにすればいい。
295nobodyさん:04/04/18 14:47 ID:???
リモートの XML ファイルを読み込んで、そのデータを全て配列変数にするにはどうすればいいでしょう?
具体的には

<?xml version="1.0" encoding="UTF-8"?>
<test>
<hoge>geho</hoge>
<foo>bar</foo>
</test>

$test[hoge] = "geho";
$test[foo] = "bar";

みたいな感じにしたいんですが…。
296nobodyさん:04/04/18 14:49 ID:???
質問する奴って話の流れを考えないのな
297nobodyさん:04/04/18 14:53 ID:???
>>293
open_basedirディレクティブで範囲を制限してると思われ。
http://www.php.net/manual/ja/features.safe-mode.php

前の動かないってやつもそうだけど、ちゃんとエラーが
出力されているので、レポーティングレベルきつくして
ちゃんと見れ。特にPHPに慣れてない場合は。
http://www.php.net/manual/ja/function.error-reporting.php
http://www.php.net/manual/ja/security.errors.php
(下はデバッグと運用時とでは、エラー出力の考え方が違うよという説明)
298nobodyさん:04/04/18 14:55 ID:???
>>290
PostgreばかりでMySQLはよく知らないけど、
mysql_queryの返り値は"データ件数"ではないと思う。。。
299nobodyさん:04/04/18 14:58 ID:???
>>290
mysql_query()は、クエリーが成功したかどうかを 表すために
TRUE(非ゼロ)またはFALSEを返します。(マニュアルより)

>>291
> $filename="/test.txt";
パーミッション
>$filename="http://hoge.com/test.txt";
HTTPは書き込みのみ。ftp://ならうまくいくケースもある
詳しくは、マニュアルの「サポートされるプロトコル/ラッパー」を参照のこと。
300nobodyさん:04/04/18 15:00 ID:???
>>295
普通にリモートのファイルをテキストとして読んで、
そのテキストをxmlとしてパースして処理する。
xmlのパースについては何通りかあるので自分で調べてください。
# 標準のものは初めてだと使いづらいかな。PEARとかSimpleXMLを検討せよ。
301299:04/04/18 15:03 ID:???
>>299
HTTPは書き込みのみ -> HTTPは読み込みのみ 、に訂正。

本家のchmマニュアルはまだ中国語になってるねぇ。
最初見たときやたらと英語の部分が多いなと思ったら、その後は漢字の部分多すぎ、と。
302nobodyさん:04/04/18 15:16 ID:???
>>301

> 本家のchmマニュアルはまだ中国語になってるねぇ。

政治的意図があると尾藻割れ。
303nobodyさん:04/04/18 15:59 ID:1szp522M

//セレクト代入
$sql="SELECT * FROM test_table LIMIT 10";
$cnt="SELECT COUNT * FROM test_table";

$cntdata=mysql_query($sql,$con);
$cntdata2=mysql_num_fields($cntdata);
$cntdata2=$cntdata+1;

print("データ件数は".$cntdata2."件です");


なんかもっとスマートにできないものかと・・・・

304278:04/04/18 16:18 ID:???
>>299

あきまへん…
ルートフォルダのパーミッションを777にしてみても無理でした。

$filename="test.txt";

$filename="/test.txt";

のは全く同じ場所を指してるんですが、"/test.txt"みたいなルート参照の場合は、
やっぱりオープンエラーが出てしまいます。
305nobodyさん:04/04/18 16:41 ID:???
>>304
ファイルシステムのルートとWEBサーバのルートを混同してませんか?

常識的なシステムなら
>$filename="test.txt";
>と
>$filename="/test.txt";
なんて変態な設定はされてないと思いますが。
306305:04/04/18 16:42 ID:???
× なんて変態な設定はされてないと思いますが。
○ が同じなんて変態な設定はされてないと思いますが。
307286:04/04/18 17:23 ID:???
md5($str)
でやってみたところ、うまく出来ました。
10万桁分ループ回しましたけど全然かぶってないです。
MD5が一番精度高いのでいいですか?
それと、md5($str)の使い方で合ってますよね?
もちろん複合化できませんよね?
308nobodyさん:04/04/18 17:30 ID:???
精度ってなんよ?
>286にしてもお前さんが何がわからなくて何を聞きたいのか
わからないからレスがつかないんだと思われ
309286:04/04/18 17:35 ID:???
>>308
えっと、先頭何文字を見て暗号化するってことです
cryptは8文字なので精度が低い、ということです
310nobodyさん:04/04/18 18:05 ID:???
そういう意味なら理論上"精度"は無限
311278:04/04/18 18:13 ID:???
>>305
realpathをとってみるとわかりましたが、見事に混同してました。
ありがとうございました。
312nobodyさん:04/04/18 18:13 ID:???
>>309
言ってる日本語がオカシイ。
それなら精度じゃなくて強度。
また必ずしも強度は単純に
「先頭何文字を見て暗号化」
に比例もしない。
313312:04/04/18 18:15 ID:???
「10万桁分ループ回しましたけど全然かぶってない」
という意味か...精度つうのかな、それ。

少なくても強度の話をしたいのではなかったな、
そこは勘違いしてた。
314286:04/04/18 18:24 ID:???
えーと、いろいろ日本語がおかしかったようで・・・すいません。。。
1桁〜10万桁の数字を試したけどハッシュが被ってなかった->先頭10万桁以上は見てくれてる
ということが言いたかったんです。

それで、本題なんですが、パスワードを暗号化して管理するのにはどのアルゴリズムがいいのでしょうか、ってことです。
今までcrypt使ってたのですが、さすがに8桁は少なすぎると思って・・・
それで、複合化できなくて、強度?が高いのはどれでしょうか?
315nobodyさん:04/04/18 18:28 ID:???
俺はパスワードは生でデータベースに保存してる。
データベースだから簡単にアクセスされないだろ?


って、安全面考えなさ杉?
暗号化するべきなのかなぁ?
でもそれだったらパスワード再発行がめんどいし
316nobodyさん:04/04/18 18:37 ID:???
他と比べての採用じゃないけど、俺もそういう場合md5使ってる
317nobodyさん:04/04/18 18:37 ID:???
phpでディレクトリを作成するのにmkdirを使ってるんですが、
一度に一つ(一階層分)のディレクトリしか作成できないんですか?

hoge/hog/ho

と一気に作りたいんですが…。

318nobodyさん:04/04/18 18:47 ID:???
mkpath
319nobodyさん:04/04/18 19:35 ID:???
>>318
ありがとうございます、できました。

っていうか、色々試してるうちに、どうやっても消去できないディレクトリとかができちゃったんですが(;´Д`)
FFFTP使ってるんですが、そのディレクトリとそれ以下のものがすべて削除できません。
練習用に作ったゴミフォルダだから削除したいのに。

とりあえず、削除したい大元のフォルダの属性は755になってます。
FFFTPで777とかにしようとしても755です。

これが原因なんでしょうか。
320nobodyさん:04/04/18 19:39 ID:???
>>319
所有権がないんだろ。
321nobodyさん:04/04/18 19:55 ID:???
>>319
phpからunlinkすればいいと思われ
322nobodyさん:04/04/19 01:24 ID:???
>>315
再発行ダメだろ。リマインダからランダムパスワードで上書きして通知とか、それが妥当では。
俺はパスワード問い合わせてオペレーターから「あなたのパスワードは~です」と返ってくる状態の方が怖いな。
1サービス1パスワードを全ユーザーが通しているわけではなく、他のサービスと共通化していたり命名則が一緒の場合があるから
暗号化しといた方が運営上のリスクは減るんじゃないの、と思うが。
323nobodyさん:04/04/19 19:26 ID:???
>>322
DBには複合不可能のアルゴリズムで暗号化しておき、
アクセス時には入力されたパスワードを同じアルゴリズムて暗号化させて合致すればOK
パスワード再発行は、秘密の質問と答えを始めに決めさせておき、それと一致したら、ランダムパスワードで再発行

こういうのでいいんかね?
アルゴリズムは複合できないとなるとMD5が妥当かなぁ
324nobodyさん:04/04/19 20:23 ID:???
Windows上のApacheでPHPを稼動させています。
HTMLのフォームから値を受け取って、コマンドラインプログラムを実行しているのですが、
このときの権限って何になるんでしょうか?
UNIXならhttpd.confでユーザとグループを指定できますが、Windows版では無理ですよね?
domainのAdministrator権限で実行したいコマンドがあるんですが、何か良い手は
無いでしょうか?
325nobodyさん:04/04/19 20:59 ID:???
>>324
標準だとSystemUserかな。
どちらにしても、それはPHP云々じゃなくてApacheの話題。
326nobodyさん:04/04/19 21:26 ID:???
>>324
Apache用のアカウントを作ればいいだろ
327324:04/04/20 00:14 ID:???
>>325-326
ありがとうございます。
しかし、Apache用のアカウントを作るというのが???
Apacheのhttpd.confにApacheの実行権限を指定する
ところが無いと思うのですが・・・。

もう少しヒントをいただけませんか?
328324:04/04/20 00:29 ID:???
>>327
事故レスです。
なんとなく分かりました。NTのApacheサービス用のアカウントを
作って、Domain Adoministratorsに所属させるということですね。
やってみます。
329nobodyさん:04/04/20 19:05 ID:nLs300iI
$host = getenv("REMOTE_HOST");
print"$host";
または
$host = $_SERVER['REMOTE_HOST'];
print"$host";

でリモートホストが取得できません。何も表示されないんです。
リモートホストの取得はどうやればいいんですか?
330nobodyさん:04/04/20 19:29 ID:WtUQqgHt
329さま
恐らく
・DNS逆引きの設定が出来ていない
・ApacheならHostnameLookups Onという設定になっていない
とか、そういう事だと思います。
$_SERVER['REMOTE_ADDR']にはリモートホストのIPアドレスが格納されています。
このIPアドレスを指定して、DNS逆引きをする関数gethostbyaddrを呼び出せば、ホスト名を取得できます。
gethostbyaddr($_SERVER['REMOTE_ADDR'])を試してみてください。

http://php.benscom.com/manual/ja/function.gethostbyaddr.php

HostnameLookups On
331nobodyさん:04/04/20 19:30 ID:nLs300iI
gethostbyaddrでいけたよ。
332nobodyさん:04/04/20 20:21 ID:nLs300iI
>>330
very very veryありがd☆
333nobodyさん:04/04/20 21:00 ID:???
ApacheのHostnameLookupは関係ないって
334zzz:04/04/21 13:40 ID:1XKUsAKf
http://www.koalanet.ne.jp/~kurui/cgi/
ここのサイトの
くるくるちゃっと2
のIP表示をさせたくないのですが
どうすれば良いですか?
詳しい方居ましたら教えて頂けますか?m(_ _)m
335nobodyさん:04/04/21 13:48 ID:???
>>334
ここはPHPスレですよ

中身見ずに言うけど
REMOTE_HOST拾ってる辺りを潰しとけ
336nobodyさん:04/04/21 17:14 ID:keTgdueJ
>>334
すでに配布されているスクリプトの改造依頼は
よほどのことがない限り、そっけないレスしかつきません。

もう少し、自分でがんばりましょう
337nobodyさん:04/04/21 19:45 ID:???
つーか、perlじゃん
338nobodyさん:04/04/21 23:00 ID:???
ハッシュの一部を、キーを指定して抽出したいのですが、
array_intersect() や array_intersect_assoc()、array_slice() や array_filter() も
使えないようですし、何か一発でできる関数ってないでしょうか。

$a から、例えばキーが k1, k2 のハッシュを取り出したいのです。

$a = array(
  "k1" => "v1",
  "k2" => "v2",
  "k3" => "v3"
);



Array
(
  [k1] => v1
  [k2] => v2
)
339nobodyさん:04/04/22 00:43 ID:???
>>338
これでは駄目?

$result =array('k1' => $a['k1'], 'k2' => $a['k2']);
print_r($result);
340338:04/04/22 02:02 ID:???
>339
ありがとうございます。
やはりそういう操作になってしまいますかね。
私はこう書くことにいたしました。

$a_new = array();
foreach(array('k1', 'k2') as $key){
  $a_new[$key] = $a[$key];
}

array_intersect_assoc() が、ハッシュの「キーと値」に対してでなく
「キー」だけに対して intersect をしてくれればいいんですがねぇ…。
まぁ、関数を使ってスマートに書きたいと思っただけなんで
できなければできないで、別に支障はないのですけどね。
どもでした。
341nobodyさん:04/04/22 15:16 ID:4jX4Pnw0
激しく既出だと思うんですが...探しきれなかったので
PEARのMail_mimeDecodeを使ってメールの中身を切り出しています。
ドコモのishotから送ったメールだけがうまくデコードできません。

Content-Type: multipart/mixed; boundary="----=NextPart__20040422134952Bound"
となっているために、切り分けられてないと思うのですが、どすればよいでしょう?
Mail_mimeDecode相当のものあるいは、別のクラスなんてのはないでしょうか?

よろしくおながいします。
342nobodyさん:04/04/22 15:27 ID:4jX4Pnw0
341でつ。
私が馬鹿ですた。すんまそん。
343nobodyさん:04/04/22 15:38 ID:vEkBjwRu
やっと本家のchm版日本語マニュアルが直ったね。
よかったよかった
344nobodyさん:04/04/22 16:14 ID:LC8g3h8J
>>343
キーワードが文字化けのやつかい
345nobodyさん:04/04/22 16:50 ID:zopVeUQP
>>341

/etc/php.ini

の設定をEUC-JPからSJISにしたら直るかもよ。
346nobodyさん:04/04/23 01:55 ID:???
>>344
ヘルプが中国語になってるやつだ
347nobodyさん:04/04/23 10:40 ID:0gEdZW4b
アップロードしてから24時間以上経過している画像を削除したいんですが、
filemtime($file)
じゃ画像の時刻取得できないんでしょうか?
filemtime(): Stat failed for 〜のエラがでます。
普通のtxtファイルなんかは取得できました・・。
348nobodyさん:04/04/23 11:06 ID:???
>>347
なんでエラーの内容を最後まで書かないの?
エラーの理由を書いてあることがあるのに(Permission deniedとか)。
349nobodyさん:04/04/23 11:21 ID:???
まずは質問の仕方を覚えてから書き込めってこった
350nobodyさん:04/04/23 11:23 ID:???
8割以上の確率で>>348で解決する。
351nobodyさん:04/04/23 11:41 ID:???
横から失礼しますが「Permission denied」ってなんですか?
自分の環境も同じ様な現象が出て困ってました.
業者にpHPを入れ直してもらわないといけないのは困りますんで
なんとか回避する方法を教えて下さい
352nobodyさん:04/04/23 11:43 ID:???
>>351
悪いけどPHPやる前にサーバとかそういうとこから勉強しなおしたほうがいい
353nobodyさん:04/04/23 11:50 ID:???
>>352
と言う事は原因がサーバにあるという事ですね.
業者に確認してみます!

ありがとうございました!!助かりました
354nobodyさん:04/04/23 11:53 ID:???
うわー
355nobodyさん:04/04/23 11:58 ID:???
>>353
"サーバとかそういうとこから勉強しなおしたほうがいい" != "原因がサーバにある"
356nobodyさん:04/04/23 12:11 ID:???
業者さんかわいそ・・・
357nobodyさん:04/04/23 12:28 ID:???
いくらなんでもネタでしょ?
358nobodyさん:04/04/23 13:21 ID:???

http://****/test.php?htm=/*****

で動いているスクリプトを

http://****/test.php_htm=/***** 「_」で動作させるにはどこを改造したらいいでしょうか。

359nobodyさん:04/04/23 14:01 ID:???
351です.

あの後、業者に症状を伝えて環境の修正を依頼したら対応して頂けました!
やはり、サーバ側の設定が問題だったようです.
それに伴い、スクリプトの修正が必要だったらしく、併せて修正してもらいました.
修正内容を今から確認したいと思います!

取り急ぎ、教えて頂いた方にお礼を申し上げます
ありがとうございました!本当に助かりました
360nobodyさん:04/04/23 14:06 ID:???
ここで聞くのが間違いだ・・
361nobodyさん:04/04/23 14:46 ID:???
>359
>スクリプトの修正が必要だったらしく、併せて修正してもらいました

良い業者だな
普通はスクリプトの手直しなんかやってくれんぞ
どこの鯖屋か知りたい
362nobodyさん:04/04/23 14:48 ID:???
>>358
Apacheを改造したらいいよ。
363nobodyさん:04/04/23 15:36 ID:???
>>362
> >>358
> Apacheを改造したらいいよ。

すいません意味がわからないです。
364nobodyさん:04/04/23 15:44 ID:???
>>358
その前になんでtestが全角なんだ?
365nobodyさん:04/04/23 15:58 ID:???
>>364
> >>358
> その前になんでtestが全角なんだ?

あ、すいません半角のつもりが全角になってました。

メインは「?(クエスチョン)」を「_(アンダーバー)」にしてもスクリプトが実行されるようにするにはどうしたらいいのかと言うことでして。

366nobodyさん:04/04/23 16:13 ID:???
>365
そんなことはしないでください
どうしてもするなら、世間一般のインターネットとは
激しく隔離されたネットワークでひっそりやってくだちい
367nobodyさん:04/04/23 16:22 ID:???
351です.

>>361
業者が作ったスクリプトだったんで直してもらえました.
納品後は当方で修正する事になってたんですけど
症状を話したら「すぐに直します」と言ってくれました!
368nobodyさん:04/04/23 17:05 ID:???
>>367
そんならはなっからここで質問するなと
369nobodyさん:04/04/23 17:06 ID:???
>>365
なぜ「?」をセパレータに使っているのか
考えたことも無いのかな?

>>367
いい業者だ
370nobodyさん:04/04/23 17:29 ID:???
いい業者かどうかはわからんな

1.クライアントの尻拭いもしてくれる本当に親切な業者
2.クライアントが351のような質問を投げるレベルなのをいいことに
 吹っかけているので、それがばれないように親切を装っている

他には?
371nobodyさん:04/04/23 18:47 ID:???
普通1は考えられんだろ
372nobodyさん:04/04/23 20:09 ID:???
>>370
> 他には?

3.単に自分がルールになったつもりで業者の善し悪しを語る>>370が馬鹿だというだけ。
373nobodyさん:04/04/23 20:15 ID:???
スキルもないのに、わからないと回答になってないレスを付ける奴が多いな。

>>371,>>370,>>368,>>366,>>360,>>352 あたり

余裕がないね。
374nobodyさん:04/04/23 21:08 ID:???
あんたもその一人のようだな。
375nobodyさん:04/04/23 22:38 ID:???
>>374
子供はおねんねの時間だぞ
376nobodyさん:04/04/23 23:25 ID:DLBJE4jS
$_GETを使わず行くとなればアンダースコア以降をsplitさせるわけだが、
そんなあほな事するのか。実際。
377nobodyさん:04/04/23 23:30 ID:???
>>376
それ以前の問題だと思うのだが。
378nobodyさん:04/04/24 00:50 ID:???
(´-`).。oO(そう思うなら代わりに回答すればいいのに・・・)
379nobodyさん:04/04/24 00:57 ID:???
既に答えているレスがあるのに、
さらに見当違いなレスに返しただけなんだけどな。
380nobodyさん:04/04/24 09:50 ID:???
そろそろ新題の季節です(・∀・)
381nobodyさん:04/04/24 10:39 ID:???
何となくオブジェクト指向がわかってきましたが、
永続化がいまいちわからないです。
MVCスタイルで開発をするとすれば、
DBラッパークラスを作って
モデルクラスからそいつに関連を張るってことでいいんでしょうか?
その場合DBラッパークラスは
モデルクラスごとに、DBラッパークラスを継承したクラスを別々に
使うべきなんですか?
382nobodyさん:04/04/24 13:43 ID:???
質問です。

月の単位を"05"とか"07"とか、ゼロを付けて二桁に成形してるんですが、
その数字に引き算、加算した時に、
同じく二桁になるようにしたいんですが、どうしたらできますか?

つまり、"05" - 1 = "04"(四月)みたいな。

初心者の自分が考えたのは、単純に計算結果後に

if ( $result < 10 ) "0" . $result;

みたいなのですが、普通はどうやって処理するんでしょうか?
383nobodyさん:04/04/24 13:47 ID:???
sprintf('%02d',$result);
384nobodyさん:04/04/24 13:52 ID:???
>>382
普段は整数型(int型)で計算しておいて、
出力時にprintf("%02d",int);必要によってsprintfでいいんじゃね。
385nobodyさん:04/04/24 13:56 ID:???
>>381
そういう質問はPHP MLにしたほうがいいと思われ。
ここ初心者用だから。
386nobodyさん:04/04/24 14:09 ID:???
>>383
>>384

ありがとうございます、できました…
387nobodyさん:04/04/24 14:22 ID:???
>>385
別に構わないだろ。
388nobodyさん:04/04/24 14:46 ID:???
>>387
ここできいても誰も答えられたいって言いたいんだろ
389nobodyさん:04/04/24 17:45 ID:???
phpのページで、ページ内アンカーに移動するにはどうしたらいいんでしょうか?

いや、普通に呼び元からhoge.php#hogeとさえやってれば移動できますが、
ジャンプ時点ではアンカー貼れてないんですよね。
呼び元の方では、

http://www.hogehoge.net/hoge.php?a=b&b=c&c=d&d=e&e=f&anchor=hoge

という風に、変数の中の一番最後にアンカー用のパラメータをくっつけてフォーム送信してます。
で、方法としては、このanchor=hogeのパラメータを利用して

header("Location: ?a=b&b=c&c=d&d=e&e=f#hoge");

みたいな形でリダイレクトさせるしかないんでしょうが、
これだとGETでしか投げれないじゃないですか?
GETではなくPOSTで投げたいのでこれでは困ります。

他にjavascriptでPOSTする方法もあるようですが、
ブラウザ環境に依存するため使いたくないんです。

何かページ内アンカーに移動する良い方法ってないでしょうか?
390nobodyさん:04/04/24 18:47 ID:???
>>389
>いや、普通に呼び元からhoge.php#hogeとさえやってれば移動できますが、
>ジャンプ時点ではアンカー貼れてないんですよね。

意味が判らん。アンカー位置にポジションを「移動」
しているのはブラウザのお仕事。ブラウザで解釈される
動的に生成したhtmlにアンカーが設定されていない?
クライアントサイドで弄ってなければ、生成したhtmlは
静的なものでそ。おかしな話
391390:04/04/24 18:59 ID:???
ああ、なんとなくやりたい事は判った。

俺ならhtmlのmetaでHTTP-EQUIV="Reflesh"使ったツーアクション。
これもブラウザに依存はするが、寧ろHTTPのLocation使うより
依存度が少ない(問題が起こりにくい)

遷移元でjavascript使って切り替えたりするのは
問題が起こりやすいので止めた方がいい。
392nobodyさん:04/04/24 20:01 ID:7aagULwH
Perlでの「use strict;」に該当するようなものはphpにはないのでしょうか?

変数をキチンと定義して利用したいと思っているのですが。。。
393nobodyさん:04/04/24 21:24 ID:???
>381
アクセス制限で書けなかったので遅レスです。
私は DB ラッパークラスと DB アイテムクラスを書いて
DB アイテムクラスがラッパーを使うという形にしてます。
特に問題なく使えてます。

(ていうかこれはデザパタ系の話になるので
 あまり MVC とは関係ないとは思いますが)

DB ラッパークラスはクエリ関係インターフェースを持ち、
DB アイテムクラスは、データと
自身のデータベース更新のためのロジックを保持しています。
394nobodyさん:04/04/24 21:30 ID:???
>>393
ども〜

永続化させたいクラスごとに
DBアイテムクラスを作るってことでしょうか?

DBアイテムとDBラッパーの間は関連をはるんですか?
なんとなく継承かなって気がするんですけど
どうなんでしょう。
395nobodyさん:04/04/24 22:03 ID:???
>394
関連ってなによ?
委譲のことをいっとるのかね?

あと、どんなスタイルでも別に構わんが、
オブジェクト指向であるならば、むやみやたらと継承を使うべからず。
DBラッパーがDB自体をラップしたものであり、
DBアイテムとやらがDBに保存されるデータの単位を扱うものならば、
そこにどういう継承関係が存在するのか考えてみれ。

結論をいえば通常、>393が書いたような実装でいい。
その他、必要な処理があれば、DBのラッパーとDBデータをラップするクラスの間に
もう一枚噛ませるなどすればいい。

それと、最初からスマートな実装を無理して目指さず、
自分なりの知識で工夫して書いてみれ。
人の聞いて猿真似しても技術は身につかんぞ。
特にPHPの場合、クラス周りの仕様はルーズだから
実際に実装して動作を確かめて理解することが重要。
396nobodyさん:04/04/24 23:29 ID:???
空回り〜
397nobodyさん:04/04/25 11:27 ID:???
perlプログラムを複数起動できるタブブラウザみたいなソフトってないですか?
398393:04/04/25 11:29 ID:???
>394
> DBアイテムとDBラッパーの間は関連をはるんですか?
> なんとなく継承かなって気がするんですけど

「DB アイテムクラスがラッパーを使う」って書いたやん…。
>395さんとかどういう実装にしてるかちょっと興味ありますけど
DB ラッパーなんて単純ですから、個々で使いやすいように
好きなようにデザインしていいと思いますよ。

私は環境の関係で使わなかったけれど、
PEAR のラッパークラスとか使ってもいいと思います。
399nobodyさん:04/04/25 11:30 ID:???
>397
コンソール窓を複数開くか、
タブブラウザで複数起動すればいいのでは。
複数起動の意味が曖昧でよくわかりません。
400397:04/04/25 11:56 ID:???
>399
レスthxです。

.plプログラムを複数同時に実行したいと思ってます
コンソール窓をたくさん開くと重いので
タブブラウザみたくメモリ消費を減らせるようなソフトはないかと思いお聞きしました。
401nobodyさん:04/04/25 12:03 ID:???
>>400
使ってるOSはなによ
そのバージョンはなによ
そしてこのスレのタイトルはなによ
402nobodyさん:04/04/25 12:33 ID:???
>>395,398
ありがとうございます
よく理解できました。
もし僕があなたの部下でこんな質問したら
「こいつ馬鹿だな。プッ」
ってかんじですか?
ぼく来年からSEになるんです・・
403nobodyさん:04/04/25 12:43 ID:???
>>402
お前がSE?
大人をからかっちゃいかんよ
まだPGの底辺あたりだろうが
404nobodyさん:04/04/25 12:51 ID:???

 お ま い ら 釣 ら れ 杉 
405398:04/04/25 12:55 ID:???
>402
実は私も就職活動中です。お互いがんばりましょう。
新入社員のプログラマも、文系・理系の人が半々くらい
占める企業もあるそうです。
つまりプログラミング経験のほとんどない人も PG になれます。
研修など一通りあるでしょうし、あなたのように向上心があれば
すぐ追いつき追い越せますよ。
# 決して馬鹿だなんて思いません。
406nobodyさん:04/04/25 12:58 ID:???
就職活動に必死になれ、こんなところに来る暇があるなら


と釣られてみる
407nobodyさん:04/04/25 12:59 ID:???
>>405
そりゃなれる。PGなんてのは誰でもなれる
SEがPGができて”当たり前”なんだから
408nobodyさん:04/04/25 13:03 ID:???
プログラマ・SEの話は プログラマ板でどうぞ。
ここはPHPスレです。
409402:04/04/25 13:08 ID:???
>>405
ありがとうございました。
がんばります。

>>406
終わりました

>>408
ごめんなさい。
410nobodyさん:04/04/25 13:37 ID:???
>>409
チョソだったのか・・・
活動中ですと言っておきながら終わりましたって・・
日本語勉強しろよ
411nobodyさん:04/04/25 15:06 ID:0YVuipoQ
>>410

>>402は就職活動中とは書いていないよ。
「来年からSEになる」って言ってる。

就職活動中なのは>>398=>>405
412nobodyさん:04/04/25 15:57 ID:???
>>411
ああそうだった

しかしこいつ、なんで俺にレスしたんだ
就職活動って上でレスしてる奴が答えるのが筋だろうに
413389:04/04/25 16:40 ID:???
>>391
おくれましたけど、ありがとうございます。
できました。
414nobodyさん:04/04/25 17:00 ID:???
・PHP板でPerlネタ
・質問内容は低レベル、ググらない
・春の就職ネタ
・SE/PGネタ

リア中ならともかく社会人になろうって年齢がこんな事で悩むかよ。フル装備で釣りだろ。
もうスルーしる。
415nobodyさん:04/04/25 20:57 ID:???
質問です。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head></head>
<body>
<?
//php
?>
//ここにhtmlのフッタがあるけど略
</body></html>

と、このようなファイルでphpを動かしているんですが(拡張子は.php)、
php内 (<? ?>内) でreturnを入れると、フッタ以降の部分がすっとばされてしまいます。

<?
//php
?>

の部分のみの残処理をすっ飛ばすのが目的なのですが…。
returnやexit、breakなど色々試してみても結果は同じでした。
どなかか間違ってる部分を指摘していただけないでしょうか。
416nobodyさん:04/04/25 21:38 ID:???
if文を使う
関数にする
別ファイルにする
417nobodyさん:04/04/25 22:09 ID:???
$pos = array_search ( $fruits , $f_list );

print $fruits . "<br>";
print_r ( $f_list );
print "<br>" . $pos;

と、こんなコードを書いたら

バナナ   //$fruitsの中身
Array ( [0] => りんご [1] => みかん [2] => バナナ [3] => メロン )   //$f_listの中身

と、こういう答えが返ってきたんだけど、なぜかarray_searchの結果 $pos だけが返ってきません。
ちゃんと配列の中にバナナ入ってるのに。

なんで?どこがおかしいんでしょうか?
418nobodyさん:04/04/25 22:16 ID:???
>415
returnはそのファイルの処理をそこで中断して呼び出し元に戻る

hoge.php
<?php
echo "ho";
return;
echo "ge";
?>

fuga.php
<?php
include("hoge.php");
?>
419nobodyさん:04/04/25 22:23 ID:???
>>416
ありがとうございます。
フッタ以下を関数にすることにして、returnとセットで呼び出すことにしました。
420nobodyさん:04/04/25 22:25 ID:???
>>418
あ、別ファイルってそういうことですか。
確かにそういった方法もありますね。
ありがとうございました。
421417:04/04/26 00:21 ID:???
自己解決。
配列の各項目に改行が入ってただけでした。
あしからず。
422nobodyさん:04/04/26 13:36 ID:???
423nobodyさん:04/04/26 20:30 ID:v21IQMwx
viを使って慣れてきたときの事を思い出しつつ…

viでカーソルを動かすとき、HJKLでは動けるが、カーソルキーでは動けない。
そんな束縛感にひたり、ニヤリとしてしまう。
長井秀和です。

viの話。
viに慣れてきた奴は、Windowsのメモ帳でも間違えたときEsc連打しちゃう。間違いない。

viに慣れてきた奴は、秀丸のあのボタンの絵のセンスはどうにかならないものかと思っている。
間違いない。

Excelで入力をミスったときにEscを押すんじゃない、入力した内容が消えてしまうぞ、気をつけろー!!

viに慣れてきた奴は、アレを使うときCtrl-c、Ctrl-sしか知らなかったりする。間違いない。

viに慣れてきた奴は、矩形選択にちょっとあこがれている。間違いない。
424nobodyさん:04/04/26 21:00 ID:???
秀丸でも矩形選択はで切るんだよな。
で、vi(vim)の折りたたみ機能がほすい。
スレ違いスマソ
425nobodyさん:04/04/26 21:43 ID:???
>>424
いいよいいよ過疎地ですから盛り上がればそれでよし。
それにしても矩形選択なんて使ったこと無いよ(´・ω・`)ショボーン
426nobodyさん:04/04/27 00:16 ID:???
>>423
長井秀和が、一回のコントで「間違いない」と言うのは、
精々3〜5回程度である。間違いない。
427nobodyさん:04/04/27 11:47 ID:???
PHPで、文字列の中にある < を <に変えるには、どうすればいいですか?
428nobodyさん:04/04/27 11:48 ID:???
間違えた・・・もう一度入力します、すいません
PHPで、文字列の中にある < を &lt;に変えるには、どうすればいいですか?
教えてください、お願いします
429nobodyさん:04/04/27 11:53 ID:???
>>428
htmlspecialcharsみたいな事をしたいの?
430428:04/04/27 11:54 ID:840uECrU
>>429

まぁ、< を&lt;に変えればかまいません
431nobodyさん:04/04/27 12:02 ID:???
>>428
str_replace()
432nobodyさん:04/04/27 12:08 ID:U23hB6pM
preg_replace()
433428:04/04/27 12:11 ID:???
>>429,431,432
どれが一番いいの?
434nobodyさん:04/04/27 12:20 ID:???
好きなのにすれば?
PHPマニュアルみながら覚えろ
435nobodyさん:04/04/27 12:41 ID:???
どれが一番いいかなんて、状況によるだろうから全部試せばいい。
for ($i=0,$str2='' ; $i<strlen($str); $i++) {
$a=$str{$i}; $str2+=($a=='<')?'&lt;':$a; }
とか書いてもいいし
436nobodyさん:04/04/27 13:00 ID:???
日本語入りの文字列でstr_replaceやるとヤバイ?
437nobodyさん:04/04/27 13:02 ID:???
>>436
EUCやUTFなら無問題
438nobodyさん:04/04/27 18:15 ID:???
>>436
基本的にmb_関数名
で、マルチバイト処理ができますよ
mb_str_replace
439nobodyさん:04/04/27 18:18 ID:???
htmlspecialcharsでいいとおもうんだがな。
440nobodyさん:04/04/27 18:27 ID:???
escape_echo($str);


function escape_echo($str)
{
  echo htmlspecialchars($str);
}
441nobodyさん:04/04/27 18:30 ID:???
俺ならこうするね

my_echo($str);


function my_echo($str)
{
  echo htmlspecialchars($str);
}
442nobodyさん:04/04/27 19:06 ID:0/nuV2X8
質問です。

偶に"http//hoge/?top"みたいなアドレスのものがありますが、
これの取得または有無を簡単にできる手段はありませんか?

予測される物全部をis_nullで調べていたんですが
もっとスマートにできればなと思いまして・・・
443nobodyさん:04/04/27 19:07 ID:0/nuV2X8
修正です

>偶に"http//hoge/?top"みたいなアドレスのものがありますが、
>これ"?top"の部分の取得または有無を簡単にできる手段はありませんか?
444nobodyさん:04/04/27 19:23 ID:???
何を訊きたいのかよくわからんが$_GET/$HTTP_GET_VARS
445nobodyさん:04/04/27 19:24 ID:???
>>443
if (!isset($_GET['top'])) echo '何かパラメタ渡せ(゚Д゚ )ゴルァ!!';
は?
446nobodyさん:04/04/27 19:53 ID:???


isset($_SERVER['QUERY_STRING'])
だろ・・・
447nobodyさん:04/04/27 20:31 ID:???
sprintfなんかで文字列中に%を含みたい時はどうしたらいいでしょうか
$str = sprintf("%d%", 100); //"100%"を期待
%のエスケープってできましたっけ?
448nobodyさん:04/04/27 20:43 ID:???
>446
あ 有り難うございます。

>444-445
説明が悪くてすいませんでした。
449nobodyさん:04/04/27 20:44 ID:???
>447
$str = sprintf("%d%%", 100);
だと思います。
450447:04/04/27 20:52 ID:???
>>449
ありがとうございます。型指定子に%でパーセント文字になるんですね
451nobodyさん:04/04/27 21:36 ID:+FvBbqtX
あるテーブル内に、Perl-cgiで書かれた出力結果を出すにはどうすればいいでしょうか?
例えば test.phpなら
<table><tr><td>
<?php include "test.php";?>
</td></tr></table>
でテーブル内にtest.phpの出力ができるようですが、
Perl-cgiですと、どうすればできるでしょうか?

<?php include "test.cgi";?>

<?php header("Locatin:http//・・・/test.cgi");?>
では、駄目でした。
452nobodyさん:04/04/27 21:39 ID:???
exec
453nobodyさん:04/04/27 21:39 ID:???
<?php system("perl test.cgi"); ?>
454nobodyさん:04/04/27 21:52 ID:hpcGtt+e
激しく厨な質問で申し訳ないんだが、URLで渡した変数(&mode=allみたいなの)は、
どうやって拾えばいいの?$_GETをどうせぇと?
455nobodyさん:04/04/27 21:56 ID:???
>>454
http://ahya.org/aiueo/?a=1mode=all&exec=true

echo $_SERVER['QUERY_STRING']; //a=1mode=all&exec=true
echo $_REQUEST['a']; //1
echo $_REQUEST['mode']; //all
echo $_REQUEST['exec']; //true

$_REQUESTはGET,POSTどちらのメソッドの場合でもおk
$_GETはGETの時のみね
$_POSTはPOST〃
456nobodyさん:04/04/27 22:04 ID:???
>455
折角URLまで書いていただいてありがたいのですが404ですた…。
正直説明するのも骨が折れると思われるので、誘導して頂けません?
457nobodyさん:04/04/27 22:04 ID:???
>>455
echo $_REQUEST['a']; //1mode=all
と、揚げ足とってみるテスト
458nobodyさん:04/04/27 22:04 ID:+FvBbqtX
>>453
 出力が出ないです。空白のままのようです。
 ちなみに、includeではtest.cgiのテキストが表示されました。
459nobodyさん:04/04/27 22:06 ID:???
>>456
もまえは、>>455にあるURLをそのまま踏んだのか?
460nobodyさん:04/04/27 22:06 ID:???
>>456
いや・・・
”例え”だよ
しかもphp省略しちゃって分かりにくかったかな

http://ahya.org/aiueo/test.php?a=1&mode=all&exec=true

test.php
<?php
echo $_SERVER['QUERY_STRING']; //a=1mode=all&exec=true
echo $_REQUEST['a']; //1
echo $_REQUEST['mode']; //all
echo $_REQUEST['exec']; //true

?>

>>457
&忘れてた、、スマソ
461nobodyさん:04/04/27 22:09 ID:???
>>458
echo system("/usr/bin/perl test.cgi");
462nobodyさん:04/04/27 22:18 ID:+FvBbqtX
<?php echo system("/usr/bin/perl test.cgi");?>
<?php system("/usr/bin/perl test.cgi");?>

なにもでないです。。゜゜(>ヘ<)゜ ゜。ビエェーン
463nobodyさん:04/04/27 22:21 ID:+FvBbqtX
<?php header("Locatin:http//・・・/test.cgi");?>
では、新しいウィンドウ開いちゃいます。。。
464nobodyさん:04/04/27 22:22 ID:???
>>462
そもそもperlのパスは/usr/bin/perlであってるの?
465462:04/04/27 22:23 ID:+FvBbqtX
http//・・・/test.cgi では動きます
466nobodyさん:04/04/27 22:24 ID:???
>>462
あ、別にechoはいらんのか。
で、perlのパスは/usr/bin/perlでいいのか?
467462:04/04/27 22:28 ID:+FvBbqtX
/usr/bin/perlです。涙。
test.cgiにも書かれてます
468nobodyさん:04/04/27 22:29 ID:???
test.cgiは呼び出し元のPHPと同じディレクトリ?
469nobodyさん:04/04/27 22:30 ID:???
>>467
passthru("/usr/bin/perl test.cgi");
ならどぉよ。
470nobodyさん:04/04/27 23:42 ID:???
safe-modeでシステム関数ってエラーも何も出ないんじゃなかったっけ?
471nobodyさん:04/04/28 00:50 ID:???
>>456
とりあえずこの辺読んどけ
ttp://jp.php.net/manual/ja/tutorial.forms.php
472467:04/04/28 04:29 ID:GhugZwA8
出来ました。
私の環境ではシステム関数は使えないようでした。
あきらめ掛けたのですが、やれました。
参考にしてください。

table 内で直接perl-cgiを呼ぶのではなく
一度、phpファイルをかませたら出来ました!

<table><tr><td>
<?php include "test.php";?>
</td></tr></table>

test.phpは
<?
require("http://・・・・・/test.cgi";?>
473467:04/04/28 04:30 ID:GhugZwA8
出来ました。
私の環境ではシステム関数は使えないようでした。
あきらめ掛けたのですが、やれました。
参考にしてください。

table 内で直接perl-cgiを呼ぶのではなく
一度、phpファイルをかませたら出来ました!

<table><tr><td>
<?php include "test.php";?>
</td></tr></table>

test.phpは
<?
require("http://・・・・・/test.cgi");
?>
474nobodyさん:04/04/28 14:09 ID:???
16進を10進に変換するにはどうしたらいいですか?
475nobodyさん:04/04/28 14:15 ID:???
476nobodyさん:04/04/28 17:12 ID:???
>>475
中途半端に教えるのやめれ。
>>474
http://jp.php.net/manual/ja/function.hexdec.php
hexdec関数。
477nobodyさん:04/04/28 18:05 ID:???
>>476
そうやって甘やかすのもどうかと思うんだが
技術屋ならテメエで調べる癖付けろっての
478nobodyさん:04/04/28 21:42 ID:???
ヒアドキュメント内で連想配列って使えないの?
479nobodyさん:04/04/28 23:14 ID:???
これで OK.

echo <<END_OF_RES
{$ahya['goruxa']}
{$nullpo->gaxtu}
END_OF_RES
480nobodyさん:04/04/29 00:41 ID:???
>>479
サンクス!!
481nobodyさん:04/04/29 13:22 ID:???
みんなヒアドキュメントの
print<<<HOGE←ここってどうしてる?
俺はEODにしてるがEOM,EOCとかもあるし。EOFはなんか違う気がするが。
482nobodyさん:04/04/29 13:36 ID:???
>>481
別になんでもいいんじゃない?
HEADERでもFOTTERでも好きなもの使えば。
483nobodyさん:04/04/29 13:39 ID:???
END_OF_HTML
で統一してマス。EOH とかだけだとなんか短すぎて不安。
484nobodyさん:04/04/29 13:39 ID:???
EOD = End of Document?これがいちばん理にかなってるな。
485nobodyさん:04/04/29 14:06 ID:???
>481
俺は、echo<<<HTML
HTMLくらしかヒアドキュメントに書かねーし。

つうか、EclipseM6(まだM8にしてない)が、
<<<Hまで打ったとこで激しく重くなって死にはしないんだけど、
エラー吐いて、HTML打ち終わるまで激重になるのが鬱。

M8で改善されてるのかな・・・
486nobodyさん:04/04/29 14:07 ID:???
echo <<<OTL
487nobodyさん:04/04/29 14:13 ID:???
ちょっと目立つように __EOD__ だったかな。
smarty等テンプレート使うようになってヒヤドキュメントは
全然使わなくなったけど。

>>486
ワロタ エラー時の出力部分にはいいかもしんない。
488nobodyさん:04/04/29 14:14 ID:???
echo <<<orz
489nobodyさん:04/04/29 14:25 ID:nRyNoo3z
質問です。
「ice001」とか「straight002」と言う文字の数字の部分を
取り除いて「ice」「straight」としたいのですがどのようにすれば
よいのでしょうか?
490nobodyさん:04/04/29 14:42 ID:???
>489
001とか002が3桁固定なのであれば、
$string_and_number = "ice001";
$string_only = substr($str, 0, -3);
491nobodyさん:04/04/29 14:50 ID:???
>>488
大文字にしないと見分けづらいorz
492nobodyさん:04/04/29 14:52 ID:???
preg_replace("/\d/","","straight002");
493nobodyさん:04/04/29 15:53 ID:???
>>490
>>492
サンクス。できました。
494nobodyさん:04/04/29 16:42 ID:???
ローカル環境へのインストールに関する質問はここでいいですか?

使用OS WinXP
Apache 1.3.29
PHP 4.3.6

httpd.confに
LoadModule php4_module C:/php/sapi/php4apache2.dll
これを書いてもApache起動時に

cannot load C:/php/sapi/php4apache2.dll into server:(126)指定したモジュールがみつかりません

上記のように出てきて、apacheが起動できません。
「C:/php/sapi/php4apache2.dll」自体は、ブラウザにコピペして存在を確認しています。

もちろん、LoadModuleをコメントアウトするとApacheは動きますが、
PHPを動かすことはできません。

どうすればよろしいでしょうか…
495nobodyさん:04/04/29 16:46 ID:???
なんでApache 1.3.29なのにphp4apache2.dllなんだよ。
あとApache1だとAddModuleも必要じゃなかったっけ?
496nobodyさん:04/04/29 16:56 ID:???
マニュアルをよく読んでないからこういうつまらんミスするんだな
497nobodyさん:04/04/29 17:23 ID:???
>>495-496
すみません、Apache1じゃなくて2を入れなおして設定しなおしたらうまくいきました。

ありがとうございます。


クソ質問してごめんなさい、100回くらい吊ってきます…
498nobodyさん:04/04/29 19:24 ID:???
>>497
一回吊れば十分だけど、確実にな
499nobodyさん:04/04/29 21:37 ID:???
echo <<<BAKAHA_IRANEw
500nobodyさん:04/04/29 21:56 ID:???
単純な質問で失礼します。
文字列検索に使える関数と言えば
strposとかstrstrとか色々ありますよね。

で、ある文字列の中に任意の文字列が含まれているかどうか、ということだけを調べるのが目的の場合、
一番速い関数って何なんでしょうか?
501nobodyさん:04/04/29 21:58 ID:???
>>500
そんなのは自分でベンチマーク取りなさいな
502nobodyさん:04/04/29 22:01 ID:???
>>500
先ずはどこまで(どのパターンについては)試したの?>速度
503500:04/04/29 22:09 ID:???
いや、試してません。
っていうか、マニュアルで、文字列が含まれてるか否か、という関数を探してたらみつからなかったんで、
どこにあるんだろう、と。

最初に見つかった位置を返す、とかばっかりで、そんな丁寧なことしてくれちゃってる間に、
速度が落ちてるんじゃないかと心配で。

もしかして、文字列が含まれてるか否か、だけを調べる関数ってないんでしょうか?
もしないんだったら、こういう場合は普通みなさんはどの関数を使ってらっしゃるんでしょうか。

一般的なお答えで結構です。
ちゃんと説明するとちょっと質問の方向がズレちゃってすみません。
504nobodyさん:04/04/29 22:13 ID:???
>>500
被ったついでに
http://www.php.net/manual/ja/function.microtime.php
スクリプト中は何回か回して、またスクリプトも何度か動かして
平均とらなきゃ駄目だよ。
505nobodyさん:04/04/29 22:17 ID:???
初心者ですが該当スレがないようなのでここで質問させてください。
explodeで区切り文字に指定したい文字が二つ以上だったらどうすればいいんでしょうか。

explodeで出来た配列の一つ一つに再びexplodeをかけていって、
できあがった全ての配列を一つの配列に代入する、といった手順を踏めばできそうですが、
もっと簡単な方法があれば…。
よろしくおねがいします。
506nobodyさん:04/04/29 22:17 ID:???
テキストファイルを丸ごと読み込む際にfopen()して一行ずつfgetsで取得していくのと
一気にfile()で読み込むのとではどっちが負荷・信頼性の面で良いのでしょうか?
507nobodyさん:04/04/29 22:19 ID:???
>>503
文字列を探す時にアルゴリズムの"副産物"で
見つかった位置が得られるんだよ。<strpos
まあ普通でも使うから値も返してるのだけど。
508nobodyさん:04/04/29 22:21 ID:???
>506
一般的に後者。
マニュアルくらい読め
509nobodyさん:04/04/29 22:22 ID:???
>>505
split/spliti
510nobodyさん:04/04/29 22:27 ID:???
>>505
print_r(split('[_-]', "abc_de-f-g_hijk-l"));
511500:04/04/29 22:30 ID:???
>>507
ああ、副産物ですか、そういわれるとなんかちょっと安心です。
strpos使ってみます。
512nobodyさん:04/04/29 23:33 ID:???
>>511
自前で"1a345abc9"という文字列から"ab"という文字列を
検索する「ベタな」アルゴリズム作ってみれば判る。
(マルチバイトは取り合えず考慮しないで)
513nobodyさん:04/04/29 23:47 ID:???
まぁ。なんだ。見つかった場所を返してくれなきゃ、
if(str_exist()){ strpos()云々 } (str_exists : 文字が見つかったらtrueを返す超絶便利関数)
って感じで同じ文字列を二度も走査することになるからなぁ。
514nobodyさん:04/04/30 10:51 ID:acYJBbCx
すいません、ちょいと嵌ってしまったんで、聞きたいんですけど、
以下スクリプトの「この部分」って所が多重でログに残るんですよ。
$logFileNameが10行あれば、何故か10回書き込まれてしまう。

なんかマズイ書き方してます?

 $line = file ($logFileName);

 $fp = fopen ($logFileName, "wb");
  flock ($fp, LOCK_EX);
   fputs ($fp, $dat); // この部分
   foreach ($line as $value){
    fputs ($fp, $value);
   }
  flock ($fp, LOCK_UN);
 fclose ($fp);

レン鯖環境
PHP 4.3.6
Apache 1.3.29
Redhat Linux 7.0

自宅鯖環境
PHP 4.3.1
Apache 1.3.24
Win98 SE
515nobodyさん:04/04/30 11:20 ID:wgal4sz4
クライアントのブラウザがWindowsIE6で
$_SERVER['HTTTP_REFERER']
を取得したら空文字がかえってきました。
どうすれば取得できますか?
516515:04/04/30 11:23 ID:???
T が一個多かったです。スマソ
517515:04/04/30 11:24 ID:???
自己解決したのではなく、
質問は生きてます。
518nobodyさん:04/04/30 11:29 ID:???
>>515
お気に入りからアクセスしたりアドレス欄にURL直打ちだと空だろ。
519518:04/04/30 11:32 ID:???
空じゃなくて変数自体がsetされないでした。
520515:04/04/30 11:36 ID:???
>>518
リンクから飛んでも空でした。
521nobodyさん:04/04/30 11:44 ID:???
>515
リファラをあてにするな
適当な文字列を設定することも容易だし
リファラを渡さない実装や、ブロックする実装もある
取得出来なかった場合、諦めろ
522nobodyさん:04/04/30 11:47 ID:???
>HTTTP
523515:04/04/30 11:50 ID:???
諦めが肝心 って言うことはよくわかりましたが、
WinのIE6は取得不可能ってことなんでしょうか?
それが知りたいのですが。
よろしくお願いします。
524nobodyさん:04/04/30 12:03 ID:???
>>523
んなこたーない。
525nobodyさん:04/04/30 12:13 ID:???
>>514
$datってなに。
書き込む直前に$datに何が入っているか確認してみれ。

>>515
普通はちゃんととれるよ。
526nobodyさん:04/04/30 12:20 ID:NAmcrNhQ
>>523
現在のページに遷移する前にユーザーエージェントが参照していた ページのアドレス(もしあれば)。これはユーザーエージェントに よってセットされます。
全てのユーザーエージェントがこれをセットし ているわけではなく、また、HTTP_REFERERを 変更する機能を持つものもああります。
要するに信頼するべきものでは ありません。 ←重要
527nobodyさん:04/04/30 12:27 ID:WYN4ZqJ6
perlをwindows2000で使ってます。
構文エラーがあったとき、dos窓がすぐに閉じてしまいます。
何とかならないのでしょうか?
528526:04/04/30 12:27 ID:???
>持つものもああります。
マニュアルのコピペなので勘弁してください

ageちゃってスマソorz
529514:04/04/30 12:52 ID:???
ご、ごめんなさい・・・
自己解決しました。。。
この書き込み部分を関数化して読み込んでたんですけど、外側でforeachが動いてました。
お騒がせしてしまい申し訳ございませんでした。。。
530nobodyさん:04/04/30 13:43 ID:sYZVZspK
Cygwinで動いているPostgreSQLに接続したいんですが、PostgreSQLの文字コードが
EUC-JPのため、文字化けしないか心配です。

環境はWindows2000+Apache1.3.29+PHP4.2.4です。

この環境でPostgreSQLとやりとりした場合、文字化けは起こるのでしょうか?

また、起こるとしたら、どのような対処法が一般的なのでしょうか?

今、現在はMySQLと接続したりするアプリケーションでは、PHPのソースコードをShift_JISで
書いているんですが、EUC_JPで書けばPostgreSQLとの接続の際の文字化けは防げると思うんですが
Apacheはうまく機能してくれるんでしょうか?(EUC_JPでPHPのソースコードを書いた場合です)

これから、CygwinとPostgreSQLをインストールするので、その段階での注意点みたいのも
あったらよろしくお願いします。

他サイトで質問してもこれといった返事が返ってこなかったり、書籍、インターネットで調べても
Linuxでのやり方しか書いていないので、情報が0です。

マルチポストですが、よろしくお願いします。
531nobodyさん:04/04/30 13:55 ID:???
俺WinのApacheなんぞ触ったことねーけど、EUCでおかしくなんの?
んなこたぁねーだろ?
532530:04/04/30 13:59 ID:???
どうもありがとうございます。>>531
WinのApacheを触ったことないということは、Unixばかりの人なんですか。すごいですね。
Unixを勉強したいと思うんですが、金がなくて。。

Javaをやっていたころ文字化けでむちゃくちゃ悩まされたので、今度は事前に困らないようにと思いまして。。
EUCでおかしくならないなら、それに越したことないですね。

ありがとうございました。
533nobodyさん:04/04/30 14:03 ID:???
>>530
EUC-JPで書けば無問題のはずだが。
ま、PHPのソースをSJISで書いているみたいだけど、その様子だと
ちゃんとSJISに対応したPHPをインストールしているか疑問だな。

SET CLIENT_ENCODING でPHP(SJIS)<->PgSQL(EUC-JP)の
変換をPgSQL側でやってくれる。PHPはSJISのまま突っ込めばOK
534nobodyさん:04/04/30 14:35 ID:AdzajIxF
PHPLib7.4+MySQL使っててただフォームで入力した日付にヒットしたレコードのフィールド'name'の値をとってきたいのだけど
$db=new authDBSample;  //DBアクセスインスタンスコピー
$db->query("SELECT * FROM master where dat='".$_POST['year']."-".$_POST['month']."-".$_POST['day']."'");
$db->p("name");

上の文を実行するとエラーも値も何も出てこない。ちなみに
print($db->num_fields());
print($db->num_rows());
を実行するとフィールドが「5」、行が「1」と出力される。セレクトされてるレコードはあるようなんだけど値を出力する
$db->p("name");
がうまく表示されない。

MySQLを直接たたくと、ちゃんと1レコード出てきてました。フィールド名も合ってました。
どしてダロ。
535530:04/04/30 14:37 ID:???
どうもありがとうございます。>>533
>ちゃんとSJISに対応したPHPをインストールしているか疑問だな。
入門本に書いてあるとおりやったんで、僕は実のところ全然分かりません。
今のところは一応作動しているので。。

SET CLIENT_ENCODINGをインターネットで調べたところ↓が見つかりました。

>  pg_exec("SET CLIENT_ENCODING = 'SJIS'");
>  というおまじないを入れると、PostgreSQL が出力データを SJISにしてくれます。

これは、どこへ書けばよいんでしょうか??php.iniにでも書くのか、ソースコードに書くのか。。

どうもすみません。PHPは本当によくわからないし、今度就職するところがPHP+PostgreSQLとかMySQLを
使用するみたいなんで、切羽詰まっております。よろしくおねがいします。
536530:04/04/30 14:40 ID:???
>>535
についてですが、まだ、CygwinとPostgreSQLをインストールしていないので
なかなかそこまでいけないので、暇な方が回答していただければ幸いです。そこまで
急いでいないので。。

どうもみなさんありがとうございました。CygwinとPostgreSQLをインストールしてから、
自力でやってみようと思います。本当に助かりました。
537nobodyさん:04/04/30 14:50 ID:???
>>535
pg_execってまた古そうなソースだな。
どこに書くか、それ見て判らんようだと....勉強汁。

で、どの入門書を見たか知らんけど、
echo "表";
が正しく動くかな。
538515:04/04/30 15:00 ID:???
みなさんどうもありがとうございました
539530:04/04/30 16:12 ID:???
>>537
正しく動きますが。。

普通にMySQLとのWEBアプリケーションとやらは組めます。
PostgreSQLもやる必要があるみたいなのでしつもんしました。

ちなみに入門書は↓をみました
http://www.cbook24.com/bm_detail.asp?sku=4798006696

>pg_execってまた古そうなソースだな。
>どこに書くか、それ見て判らんようだと....勉強汁。

どこに書けばよいんでしょうか??これが分からないと本当に勉強が先にすすまないので。。
書籍等は、本当にLinuxばかりでWindowsからPostgreSQL接続は0なんですよ。大きな書店を
はしごして調べたけど、ありませんでした。

本当に困っております。。
540nobodyさん:04/04/30 16:24 ID:???
入門書に載っているスクリプトを動かしただけで、「組める」って言うか?
本当に組めるのならpg_exec (= pg_query)をどこに書くか判るはずなんだが。

どこに書くか教えてもらったところで、この先に進めるとは到底思えないのだが。
つーか、釣られているのか...
541530:04/04/30 16:29 ID:???
>>540
どうもありがとうございます。分かりました。mysql_query()みたいな関数ですね。どうも。
じゃー、ソースコードに書けば良いんだ。

理解できました。関数か、それともphpの設定に使うのかちょっとわからなかったので。。

もう本当に解決しました。

釣りだったのかどうかしりませんが、理解できて本当に感謝しています。

今からPOSTGRESQLをインストールしてかって、PHPとPostgreSQLの本を見に行こうと思います。

本当にありがとうございました。
542nobodyさん:04/04/30 16:31 ID:???
win2kで以下のバージョンで問題なく動いてます。
PHPはEUC or UTF-8、 PostgreSQLはcreatedb時にEUC_JP or UNICODEを指定。
php.iniで文字コード関係の設定せず、apacheはAddDefaultCharsetをnoneにしただけ。
cygwin 1.5.5-1
cygipc 2.02-1
postgresql 7.4-1(これら3つはcygwinのsetup.exeからインストールしたもの)
apache-2.0.49-win32
php-4.3.5-win32

phpの文字コード関係の設定は、オンラインマニュアルにうまくまとまってたよーな。
543nobodyさん:04/04/30 16:31 ID:???
>>539
勉強する姿勢は大変結構だけど、この分だとここがあなたのためのスレになってしまう
(ま、進行遅い板だからそれでもいいんだけど)
たぶん即戦力としては期待されてないからさ
2chに頼るより就職してから先輩方にしごかれてください
544533,537,540:04/04/30 16:49 ID:???
散々引っ張っておいて、
pg_set_client_encoding()
って書いたら怒られるかなw
545530:04/04/30 16:50 ID:???
>>542
私の環境もほとんど似たようなものです。どうもありがとうございました。
実際にそれで動いているということで、大変安心しました。

本当にお騒がせしましてすみませんでした。

私は本当にPHP初心者なのですが、それでも理解できるように書いてくださって、
本当に感謝しています。

>>543
どうも、すみません。これ以降私の質問は、終わりにしたいと思います。大概は
本で解決できるのですが、これだけはどうしても自力で解決できなかったのですから。。
就職する前に最低限のPostgreSQL接続の基本くらいは知りたかったもんですから。。
しばらく、質問は控えたいとおもいます。どうもすみませんでした。

回答してくださったみなさん、どうもありがとうございました。
546530:04/04/30 16:54 ID:???
>>544
(;-_- まじですか!?
それだけなんですか。。。
頼みますよ。必死でいろいろ調べたのに。。

書籍はLinuxを前提として書いてあるので、この文字コード変換については書かれていないんですよ。
インターネットも同様です。。

まー、いいです。一番手っ取りばやい解決方法はそれなんですね。どうもありがとうございました。
かなり感謝してるのと、疲れたということで、複雑な心境です
547530:04/04/30 16:57 ID:???
みなさん、本当にありがとうございました。

これから、本屋へいくので、これ以上、からかわないでくださいね。

ではでは。
548533,537,540老婆心:04/04/30 17:09 ID:???
>>546
一番手っ取り早い解決方法を教えてもらって、それで解決したって思っちゃダメだよ。
せめてSET CLIENT_ENCODING というSQL文を知った上でpg_set_client_encoding()を使うならまだいいけど、
SJISを用いるときのお呪い程度の知識じゃ、どうせこの先躓く。
MySQLとPgSQL両刀使いの会社に就職したんならなおさらだな。
549nobodyさん:04/04/30 18:50 ID:8pcmBsOy
失礼します。お聞きしたい事があってお邪魔しました。

<?php $com = array(
'<a href="">テキスト</a>',
'<a href="">テキスト</a>',
'<a href="">テキスト</a>',
);
srand(time());
print $com[rand(0,count($com) - 1)];
?>
この様なリロードする度にリンクテキストが変わる
phpを書いみたのですが、二つ同じページに設置すると
毎回二つとも同じテキストが出てしまいます。
組み込んだテキストを完全ランダムに表示させるには
どうしたら良いでしょうか?
550nobodyさん:04/04/30 19:37 ID:???
>>549
srand(time());を
srand((double)microtime()*1000000);にしてみな。
551nobodyさん:04/04/30 21:37 ID:???
すみませんが質問させて下さい。
Wikiなどでよく見かける、ページ表示処理速度を表示させるには
どうしたらいいでしょうか?
microtimeを使うんでしょうかね・・
552nobodyさん:04/04/30 21:41 ID:???
>>551
ttp://cutie.dip.jp/pc/php/b4.php
こういう奴のこと?
553nobodyさん:04/04/30 21:43 ID:???
そうなんです。
そこ見てたんですが、勉強不足なもんで
いまいち分かりませんでした。
554nobodyさん:04/04/30 21:49 ID:???
>>553
最初の
<? $CPU_start=microtime(); ?>
で時刻をとっておいて、最後にまた時刻を取得して引き算。
list($tmp1,$tmp2)=split(" ",$CPU_start);
list($tmp3,$tmp4)=split(" ",microtime());
ここら辺の処理は違う方法があるきがするが。
555nobodyさん:04/04/30 22:50 ID:???
>>549
array_randを使う。
4.2.0以降ならsrandも不要なので、seedの質に気を使う必要も無い。

>>554
Perlだと$^Tとかあるけど(1秒単位だからあまり意味無いかもしれないが)、
PHPには無いから普通は>>554の方法かな。
556nobodyさん:04/05/01 01:23 ID:???
>$CPU_start
"C P U"
いかにも厨臭いな
557nobodyさん:04/05/01 03:34 ID:???
すいません、hoge.logに1000件(行)まで記録できる仕様の、簡単なアクセス解析を作ってます。
で、質問といいますか相談というのは、
自分が普通に考えると、1000件を越えるまではfopenのモード 'r+' で単純に頭に行を足していって、
1000件を越えて以降は、file( )で1000行分を配列に読み込んで、
頭に新規アクセスをunshift、末尾をpopすればよいのではないかと考えました。

でも、よく考えると一件のアクセスを記録するために、毎回file( )で1000件分を配列化するのって、
大変無駄なような気がするんですが、どうなんでしょうか?
もっとスマートに書く方法がありますか?


1000件ごとにログを別ファイル化、などせずに良い方法がありましたら、
どうかお聞かせください。

というかPHP様にとっては1000行の配列化くらいなら大した手間ではないのかもしれませんが…。
アドバイスよろしくおねがいします。
558nobodyさん:04/05/01 03:45 ID:???
PHP様にとっては1000行の配列化くらいなら大した手間ではない。
ただし壊れにくさのためには早朝4時とかにログをローテートさせるべき。
559nobodyさん:04/05/01 04:15 ID:???
>>557
行っていうのは人間が分かりやすい区分の仕方で、
PHP様にとっては\rなり\nなりの文字が含まれているだけにすぎない。
逆を言うと、ファイルを配列に取り込むにはファイル全部を舐めて
\rなり\nなりを検索して行ってるわけやね。
一方ファイル操作にはファイルポインタ(今ファイル中のどこを読んでるか、
書いてるかを示す位置情報)という概念があって、
ファイル中の特定の場所を操作するのに便利に使える。

この2つことから、別ファイルにファイルポインタ用の行の切れ目の場所を保存しておくと、
1行目・1000行目の取り出しが高速に行えることが分かると思う。

ところが、この別ファイルもまた1000行分あるわけで、そうなるとこれも高速化する必要がでてくる。
高速化のためにこれにもファイルポインタを活用しうわなにするんだやめr
560nobodyさん:04/05/01 04:21 ID:???
>>557
もっとスマートな文章を書くようにな。
561nobodyさん:04/05/01 11:18 ID:???
>>558
>>559
ありがとうございます。
思ったより大した手間ではないようで、このままの仕様でいくことにしました。
562nobodyさん:04/05/01 16:04 ID:l1Yr02pc
>534
PHPlibって今はあんまり使われてないんだろうか?
セッション管理はしてくれるし、DBに依存しないコーディングができるから良いと思ったんだが。
563nobodyさん:04/05/01 16:58 ID:dBD1NpKI
画像が複数枚あってそれをボタン1つでダウンロードさせる方法はありますか?
564nobodyさん:04/05/01 17:27 ID:???
ファイルに入れて圧縮しる
565nobodyさん:04/05/01 17:33 ID:dBD1NpKI
>564さま
やりかたがよくわかりません。。

やりたいことですがPHPでアップロードした複数の画像ファイルを
一括でダウンロードしたのです。ダウンロードは管理人のみです。
dir以下のダウンロードというのはできませんよね?
566nobodyさん:04/05/01 17:37 ID:???
ブラウザのFTP機能を使ってドラッグアンドドロップで、
というのも思いつきました。これでよいかな。
PHP関係ないけど・・。
567nobodyさん:04/05/01 17:49 ID:???
次の質問ドゾー
568nobodyさん:04/05/01 18:22 ID:???
>>563
php-users MLで複数の案が出てたよ。
まっとうなやり方は無いのでどうしてもやりたいなら代替案で、って感じだったけど。
http://ns1.php.gr.jp/pipermail/php-users/2004-March/021535.html
569nobodyさん:04/05/01 18:52 ID:???
>>568
ありがとうございます!!
javascriptでやってみます。
570nobodyさん:04/05/01 18:55 ID:???
unsigned long を型として使いたいんだけどどうしよう
571nobodyさん:04/05/01 21:06 ID:???
同じ引数で2回mysql_connect()をコールした場合、 二回目は
新規のリンクが確立されるのではなく、代わりにすでに
オープンされた リンクのリンクIDが返されます。

オープンはこれでいいんだけど、これだとクローズするとき困る。
すでにオープンされてたら新規にオープンせずに既存のを使い
そのかわりクローズもしないで処理を抜ける とか出来ねーじゃん!

すでにオープンされているかどうか を調べる方法はないの?
572nobodyさん:04/05/01 21:36 ID:???
>571
ちゃんとドキュメント読んだか?
573nobodyさん:04/05/01 22:25 ID:h+ty9Fa6
GIFの読み書きがしたいのですが、どうしたらよいでしょうか?
574nobodyさん:04/05/01 23:31 ID:???
>>571
PHP自体には、DBコネクションプーリングの機能はないよ。
他にプーリングサーバ設けて、それ使う。それでも
PHP-プーリングサーバ間のコネクションは持続できないけど。
575nobodyさん:04/05/01 23:32 ID:???
>>573
取り合えずマニュアルの画像系の関数を調べたら?
サンプルも載ってるし。書き出しはUnysys特許の絡みで
サポートしてないバージョンもあるから、Imagemagick
使うのがいいだろね。まあバイナリー自力で操作する
手もあるけど。一般的なフォーマットの扱いだけなら
標準関数か外部ツールを使った方がいい。
576nobodyさん:04/05/02 01:06 ID:ChuRnvJn
PHPやり始めて5日目です。
とりあえず、定型の部分(ヘッダー、フッター)とひと月経つと
次ページへ移動させるコンテンツは別ファイルにして、includeで
ページを構成させることにして、更新の負担軽減化を図れることが
わかり、一部実行しました。
PHP初心者が次に使えそうなテクニックってどんなのがありますか?
577nobodyさん:04/05/02 01:12 ID:???
>>576
入力とセッション関係かな。
入力画面->確認画面->結果画面
   ↑      |
     やり直し
578nobodyさん:04/05/03 03:31 ID:11Jyjr9/
初質問です。
phpのマニュアルにプリンタ関数はWindows 9.x, ME, NT4, 2000しか使えないと書いて有るのですが、
XPでphp_printer.dllを入れてとりあえずは動きますが、printer_draw_bmpという関数だけプリント
されないのです・・。
やっぱり駄目な物は駄目?
webで入力されたデータを印刷して、入力者に返したいのですが、ロゴなど入っていた方がカッコ良い
な・・なんて思っているのですが・・。
579nobodyさん:04/05/03 11:14 ID:???
file関数でファイルを読むときもfopenとflockでLOCK_EXしてから読み込んだほうが安全ですか?
580nobodyさん:04/05/03 15:15 ID:???
>>579
それじゃfile関数で開く意味が無いぞ。
581nobodyさん:04/05/03 15:31 ID:???

サーバの設定により、domxmlを使えないみたいなのですが、他の関数などを使って代用することは可能でしょうか。
もしくはdomxmlをphpで自作されている方はいらっしゃいませんか。

php_domxml.c php_domxml.h は何が書いてあるかさっぱりわかりません。
582nobodyさん:04/05/03 15:47 ID:???
Perlみたくモジュールファイルを自分の領域にうpしてrequireできない?
583nobodyさん:04/05/03 16:41 ID:rg12GSDJ
皆さん、定期的に自動で処理をしたいんですが、何か良い方法はありませんか?
というのも、今スケジューラを作っていて、指定された時間になると自動でメールを発信するリマインダ機能をつけようと思っているんですが。
処理呼び出し用マシンを用意して、処理するPHPを自動更新で5分おきに呼び出すとか、そんな方法しか思いつかないんです。
(この表現で伝わりますか?)
もっとスマートな方法はありませんかね?
584nobodyさん:04/05/03 16:46 ID:???
>>583
cron
585nobodyさん:04/05/03 17:11 ID:???
PHPの敷居が低いからなのか運用面の知識が無い香具師がイパーイ居るな(w
586nobodyさん:04/05/03 17:27 ID:???
つーか、OSとかも書いてないし。
587583:04/05/03 17:40 ID:???
環境はWindows+Apache2なんです。
ですから、cronとかも使えず…。
質問しておいてアレなんですが、やっぱりブラウザを起動しておいて自動更新で…に落ち着こうかなぁと思ってたり。
簡単だし。
スレ汚してすみません。
588nobodyさん:04/05/03 17:53 ID:???
>>587
タスクスケジューラがあるだろ。
589nobodyさん:04/05/03 21:47 ID:???
>>587
Windowsっても色々イパーイある訳だが...
確かWin用のATがあったと思う。
590nobodyさん:04/05/03 21:54 ID:???
>>578
正直、Win版独自の機能については、
COMなんかもそうだけど、使ってる人あんまりいない。
[PHP-WIN] MLが比較的情報回ってる方かな。
591nobodyさん:04/05/03 22:50 ID:q5DnTGK5
PHPのsocketを使ってます。
契約先のサービスサーバに接続しても、1/2の確率程度でしか結果を返してくれません。
私が悪いのか、サービスサーバが悪いのか分かりません。
$fp = fsockopen(...);
fputs($fp, "ヘッダとデータ");
fflush($fp);
while(!feof($fp)) {
$result .= fgets($fp);
}
fclose($fp);
一応、fflushの後にsleepとか入れてみたんですが、駄目です。
こういう経験がある方がいらっしゃれば、教えて下さい。
あいまいな質問で申し訳ないです。
592nobodyさん:04/05/03 22:57 ID:???
>>591
エラー内容を書きましょう。
エラーハンドリングをしましょう。
593nobodyさん:04/05/03 23:00 ID:q5DnTGK5
エラーはないです。
実際のスクリプトにはエラーハンドリングしてます。
feof($fp)が結果を返す前にtrueを返してしまいます。
594nobodyさん:04/05/03 23:55 ID:???
>>591
先に問題の切り分け
PHPを使わず接続した場合は正常?
595nobodyさん:04/05/04 01:18 ID:qkyRU8F3
>>590さん。
有難う御座います。
578です。
でも、MLって、英語ですよねぇ・・。
BMPで検索してそれらしき質問は見つけたのですが、誰も相手していなかったです。

$rst = printer_draw_bmp($objprt,"c:\\logo.bmp",400,400);
if($rst) {
print "成功";
} else {
print "失敗";
}
というのを書いて実行すると。
むなしく・・・「成功」・・・とでます。
という事は、やっぱり、XPではダメって事ですよね。
他のprinter_draw_textやprinter_draw_textは動くのになア。
ザンネン。
596nobodyさん:04/05/04 04:57 ID:???
>>595
ウチのMe+PHP 4.3.4でも動きませんでした
might be only in CVS
だから仕方ないかも
(よく見たらプリンタ関数全部そうなんだけど)
597hiro@ ◆7iyjK8Ih4Y :04/05/04 10:41 ID:???
初めまして。初めてPHPを作りました。自動生成メールフォームです。

なんとか作成はできて、生成もできて、メールの送信ができたのですが

どうしても、送られてきたメールの内容・件名などが文字化けしてしま

います。この生成プログラムを利用してみて、ご指導などをしていただ

けないでしょうか?

http://ffmax.com/test/mail/top.html
598hiro@ ◆7iyjK8Ih4Y :04/05/04 10:47 ID:???
>>597
付けたしです。

上記のファイルダウンロード=ttp://ffmax.com/test/mail/fmail_040504.zip
599402:04/05/04 11:19 ID:???
>>597-598
スレ違い
600hiro@ ◆7iyjK8Ih4Y :04/05/04 11:31 ID:???
>>599
スマソ。
じゃぁ、>>597-598は聞き流してください。
601nobodyさん:04/05/04 11:44 ID:???
>>595
ただビットマップデータをプリンタに投げてるだけだから、
そんなに"動きにくい"ということも無いはずなんだが...

取り合えずPHP4.3.4に戻してテストしてみたけど、
以下のコードで期待通りに出力された。

<?php
$handle = printer_open();
printer_start_doc($handle, "TestDocument");
printer_start_page($handle);
$result = printer_draw_bmp($handle,"test.bmp",0,0);
if($result) {
echo "Success";
} else {
echo "Failure";
}
printer_end_page($handle);
printer_end_doc($handle);
printer_close($handle);
?>

環境:
・MS Windows-XP Pro
・PHP4.3.4(ApacheSAPIとCLIの両方) with php_printer.dll
・HP LaserJet4PJ(Windows付属のドライバ)

使用してるbmpのフォーマットとか確認した方が良いんでは?
(テストは無圧縮のWindows_BMPとOS/2_BMPの両方で試した)
602nobodyさん:04/05/04 11:57 ID:???
>>597
まあスレ違いだが、今更i18n関数を使わないと駄目な環境なのか?
今後のことも考えて、現行のPHP4に切り替え、mbstringモジュールを組み込み
PHPのmbstring関係の設定を適正に行い、関数もそちらを使うことを検討してはどうかな。
もし今i18n関数を使うコードを書くなら、i18n/mbstring/jcodeの複数対応ぐらいをしないと。

603nobodyさん:04/05/04 12:11 ID:???
例えば、1〜10の間の数字から重複なく4つの数字を選ぶ
といった場合にはどのようにすれば良いでしょうか?

rand(1,10)を4回繰り返すだけでは重複する可能性があるので、
その重複を排除したいです。
604nobodyさん:04/05/04 12:18 ID:???
>>603
根本の考え方は"重複してたら選択しないで別のを"で良いと思うけど。
自分は生成したものを配列に格納するスタイルで、配列に入れる
(選択する)際に、in_array()で重複チェックかな。
他にも色々やり方はあると思うよ。
605530:04/05/04 12:22 ID:+sfVuN8r
ちなみに、後々同様に困っている人の為に書いておきますと、

Cygwin上で動いているPostgreSQLの文字コードはSHIFT_JISにもできるみたいです。

initdb時もしくはデータベース作成時にオプションで指定する文字コードを『WIN』と
指定する事でPostgreSQLサーバの文字コードもSHIFT_JISにできます。

その節はどうもありがとうございました。
606603:04/05/04 12:43 ID:???
>>604
ありがとです
607nobodyさん:04/05/04 13:22 ID:FohXuraC
皆様初めまして。
現在webサーバとしてFreeBSD(Apache+PHP4.0.5+PostgreSQL)を利用していますが、
コマンドラインでPHPが利用できないため、
現在の4.0.5を利用しつつ、
コマンドライン版PHPを別にインストールを行おうと考えています。

この際、コマンドライン版についてはPHP4.0.6以上のインストールを行おうと思いますが、
PHPマニュアルを見ていますと、php.iniの書き換えが行われる旨の記述があり、
コマンドライン版をインストールすることによって今までのPHP環境に影響がありますでしょうか。

※たとえば、webサーバで利用していたphp4.0.5が動作しなくなる、等

よろしくお願い致します。
608nobodyさん:04/05/04 13:53 ID:???
>>607
CLIは別物。

異なるバージョンのCLI版PHPを混在しているが別段問題も無い。
影響するphp.iniをきちんと認識しておくこと。
直接指定するのが確実ではあるが。
609nobodyさん:04/05/04 14:14 ID:B1UV88Cv
>>608さま

素早いレスありがとうございます。

マニュアルをもう少し確認し、php.iniの影響範囲を確認後、作業を進めようとおもいます。

ありがとうございました。
610nobodyさん:04/05/04 14:16 ID:???
>>603
$num = array_fill(1,10,0);
$randnum = array_rand($num, 4);
//$randnum[0]から$randnum[3]までに1〜10のランダムな数が入ってるはず
611nobodyさん:04/05/05 21:55 ID:eV5n8HpS
578,595です。
BMPも色々試して見ましたが、(phpでの生成も含めて)やっぱり、プリントされません。
プリンタの相性なんですかね??


・・が、諦めます。
ロゴ自体は簡単な図形に文字だけなので、printer_draw_lineとかprinter_draw_elipseとprinter_draw_textで
なんとか似たような物出来ました。
今後、MLは注意深く拾ってみます。
おさがわせしました。&有難うございました。

612nobodyさん:04/05/05 23:16 ID:???
ばんわです。

連想配列から、キーを特定して切り出すのに便利な関数無いでしょうか。
$arr = array('hoge'=>'funi', 'foo'=>'bar'); で foo を取り出した後の配列が $arr =array('hoge'=>'funi) になるような動作を望んでいます。
array_shift や array_pop の、キーを指定できる版のような。
マニュアル見たけど見あたらず orz
array_diff は一見 UNIX コマンドの diff っぽく見えて実は期待した動作と違うとか何とかで ((((;゜Д゜)))) してます。

何かありませんか。。
613nobodyさん:04/05/05 23:19 ID:???
PHPの勉強を始めたものです。プログラム自体始めてです。
10日でおぼえるPHP入門教室という参考書のサンプルファイル
http://www.shoeisha.com/book/hp/10days/down/PHP10sample.lzh
自分の環境で動かないんです。
念のためNファイアウォールをDisableにして、OPERAではなくてIEで開こうと思っても
動きません。
正確には自作の幼稚なものや、サンプルの中でも簡単なスクリプトなら動くんですが、
最後の[?>]ある行がエラーとでて動かないものが殆どです。
PHPDEVからアパッチを起動しているつもりなんですが、何が問題なんでしょう?
因みにPHPファイルは、PHPDEVのWWW以下に置いてあって、アドレスの指定も
ttp://LOCALHOST以下で呼び出しています
614nobodyさん:04/05/05 23:27 ID:???
>>612
素直に、$b=$arr['foo'];として取り出した後に、unset($arr['foo']);ってすれば。
615nobodyさん:04/05/05 23:31 ID:???
>>613
その書き方ではその本を持っている人にしか分からない罠。
質問の仕方から学ぼう。エラー内容も書いてないよね。

> 簡単なスクリプトなら動く

のならひとつづつ動作の確認を取り追っていくと良いのでは。
デバッグ/エラー情報の扱いは大切なスキルの一つだし。
616nobodyさん:04/05/05 23:34 ID:???
>>614
うぉぉぉ、unsetでそういう使い方が出来るとは気付きませんでした。
ありがとうございます (_ _) 万事解決。
617nobodyさん:04/05/05 23:40 ID:???
>>613
殆どとは具体的にどのファイル?
618nobodyさん:04/05/05 23:53 ID:???
リンク先のファイルにもあるんですけど、
02-01.phpはFatal error: Call to undefined function: mb_convert_encoding() in c:\phpdev\www\php10sample\02-01\common.php on line 27
と出ます。
同じディレクトリのCommon.phpがエラーみたいなんですが、自分にはそのラインを見てもわかりません。

>615
その一つずつ確認するというのは、余計な命令文を削除して稼動させるということですか?
619nobodyさん:04/05/05 23:58 ID:???
どーせ、こんなこったろーと、思ったYO。
エラーメッセージぐらい嫁よ。

終了
620nobodyさん:04/05/06 00:06 ID:???
PHPからサーバーのディスクサイズなどの
情報を取得することってできますか?
色々調べたのですが全然見つかりません・・・。
どなたか知ってるいる方がいましたらお願いします。
621618:04/05/06 00:15 ID:???
軽く逆切れしますよ。
619が誰にレスしているのか知らんけど、
参考書についているサンプル(つまり動いて当然)を
一式localに入れて動かないという事に、初心者が対応するのは難しいと思うんだけど、
エラーメッセージが出ても解らないといってるですけど?
なにかPCの環境に応じて変えないといけない要素があるんですか?
622nobodyさん:04/05/06 00:25 ID:???
>>620
>色々調べたのですが全然見つかりません・・・。
ちょこっと調べたら10秒で見つかりました。ファイルシステム関数を参照。

>>621
関数が未定義だって言ってるんだから関数名で検索すればいいじゃん♪
すぐ見つかるよ。
623nobodyさん:04/05/06 00:30 ID:???
>622
見つかりました。ありがとうございます。
PHPのマニュアルを見るという基本的なことを忘れていました・・・。
624nobodyさん:04/05/06 00:33 ID:???
625nobodyさん:04/05/06 00:35 ID:???
>>621
マルチバイト文字列関数を有効にするようなインストールをその入門書が
ちゃんと書いていないならその入門書が悪いだろうけど、漏れが今まで
日本人向けに書かれたPHP解説本には全て書いてあったが。

あと、その手のエラーはFAQなのでちょっとググれば腐るほどヒットすると思うがの。
逆切れする前に、ちょっとは検索汁。
626nobodyさん:04/05/06 01:14 ID:???
>>611
bmpファイルはopen可能な位置に置いてるの?
カレントに置いて試した?
多分fopenとかincludeとかと同様の制限受けるよ。
627nobodyさん:04/05/06 01:46 ID:???
> 軽く逆切れしますよ。

調子こいてんじゃねーよ。>>624を見れ。
628nobodyさん:04/05/06 01:48 ID:???
> 軽く逆切れしますよ。

漏れも使うかなこのフレーズw
629nobodyさん:04/05/06 01:58 ID:???
軽く逆切れしますよ。
630nobodyさん:04/05/06 02:06 ID:???
アフォばっか。
631nobodyさん:04/05/06 03:10 ID:???
>>630
軽く逆切れしますよ。
632nobodyさん:04/05/06 05:01 ID:???
> 軽く逆切れしますよ。
zakoga
633nobodyさん:04/05/06 05:08 ID:???
>>632
軽く逆切れしますよ。
634nobodyさん:04/05/06 08:24 ID:???
軽くジョギングしてきます。
635nobodyさん:04/05/06 09:35 ID:???
↑健康第一
636nobodyさん:04/05/06 09:50 ID:???
軽く息切れしますよ。
637nobodyさん:04/05/06 11:20 ID:???
にいちゃん達おもしろいね♪
638nobodyさん:04/05/06 11:21 ID:???
にいちゃん達、おいらにもお願いします。軽くの♪
639nobodyさん:04/05/06 11:40 ID:???
>>638
軽くギャグ切れしますよ。
640nobodyさん:04/05/06 12:17 ID:???
すみません
ファイルのダウンロードについて教えて下さい

header('Content-Type: application/octet-stream; name="'.basename($filepath).'"');
header('Content-Disposition: attachment; filename="'.basename($filepath).'"');
header('Content-Length: '.$content_length);

上記スクリプトでファイルのダウンロードを行っているのですが、
ダウンロードのダイアログにてファイル名がうまく取得できない場合があります

WindowsXP/IE6.0 : 指定したファイル名をダイアログに表示
WindowsXP/NN7.02 : 指定したファイル名+".php"を表示
MacOS X/IE5.2 : ダウンロードマネージャが開き、自動でダウンロードが始まる ファイル名はスクリプトのファイル名
MaxOS X/NN7.1 : 指定したファイル名を表示

WindowsのNNで".php"が付加される件と、MacOSXのIEでスクリプトのファイル名を取得してしまう件について
回避方法はありますでしょうか?

よろしくお願いいたします
641nobodyさん:04/05/06 13:23 ID:???
>>640
phpマニュアルの"XXXVII. HTTP関連の関数" "header()"のページには以下の記述があります。
注意: Microsoft Internet Explorer 4.01にはこれが動作しないというバグ があります。この解決策はありません。
Microsoft Internet Explorer 5.5にもこれを妨げるバグがあります。これは、サービスパック2以降 とすることで修整可能です。
642nobodyさん:04/05/06 13:27 ID:???
>>640
path_infoでファイル名をとる。
http://foo/hoge.php/filename.ext
な感じでどうよ
あとcontent_typeのfilenameは要らない気もする
643640:04/05/06 14:11 ID:???
>>641
・・・、成る程。ブラウザ固有の問題だったんですね。
教えて頂いたPHPマニュアルのXXXVIIのheader関数のページに
In response to Martin Anso and for your benefit,
here's an even better routine for forcing the browser to save a file,
rather than opening it.
という書き込みがあったので、そこに載っていたコードを試してみましたら、IE5.2でもファイル名を
取得してくれました。
ありがとうございます。

>>642
path_infoからファイル名を拾わせたら、WinのNNでも元ファイルの拡張子を認識してくれました。
これはQUERY_STRING内にドットが入るとうまく認識されないという事なのでしょうか?
なにはともあれ、ありがとうございます。

尚、content_typeのfilenameを外す件も、試してみたら不具合なく動きました(上記4環境では)。
重ねてありがとうございます。
644nobodyさん:04/05/06 14:48 ID:gVUqIIm2
セッション関数を勉強中なのですが、
<?php
session_start();
session_register("msg");
?>
<html>
<body>
<p><?php print $msg; ?></p>
<form action="session.php" method="post">
<input type="text" name="msg" value="">
<input type="submit">
</form>
</body>
</html>
とやってフォームからテキストを入力しても $msg の上書きがさせません。
$msg = $_POST["msg"]; とやると出来ます。これってスマートなやり方なんでしょうか?
645nobodyさん:04/05/06 14:53 ID:???
またregister_globalsか
646nobodyさん:04/05/06 14:57 ID:???
>>644
参考にしているサイトか本が古そうだな。
そして、それだけだとSESSIONを使う意味ないな。
あと、register_globals あたりの設定も。
647642:04/05/06 15:01 ID:???
「.」の有無というよりは「/」くぎりの一番最後のをファイル名にとる、んだと思うよ
これ関連の問題で、たとえばshift_jisの予測.txtとかだと正常なファイル名でアップされないんだよね
648644:04/05/06 15:12 ID:gVUqIIm2
えーっと、よくわらかないのですが
$_SESSION["msg"] とやった方が良いのでしょうか?
649nobodyさん:04/05/06 15:36 ID:???
よくわらかないなら仕方ないな

>$msg = $_POST["msg"]; とやると出来ます。これってスマートなやり方なんでしょうか?
これやっとけ
正解だから
650644:04/05/06 15:50 ID:aeZSFft+
レスありがとうございます。
最後に、もう一つだけ質問させてください。
<?php
if (!session_is_registered('count')) {
session_register('count');
$count = 1;
} else {
$count++;
}
?>
より
<?php
if (!session_is_registered('count')) {
session_register('count');
$_SESSION["count"] = 1;
} else {
$_SESSION["count"]++;
}
?>
の方が望ましいということでしょうか?
651nobodyさん:04/05/06 16:18 ID:???
>>650
めんどくさいからここ読んで
http://www.php.net/manual/ja/function.session-register.php

ちなみに

注意
register_globalsを 考慮することなくスクリプトを書きたい場合には、 $_SESSION配列を 代わりに使用する必要があります。 $_SESSIONのエントリーは自動的に登録されます。
スクリプトでsession_register()を 使用している場合には、それは register_globalsを 不可としている環境下では動作しません。

注意
$HTTP_SESSION_VARS(または$_SESSION)を 使用する場合、 session_register(), session_is_registered(), session_unregister()を使用しないで下さい。

って知ってる?
652nobodyさん:04/05/06 16:20 ID:???
>>650
漏れなら、
session_start();
if(isset($_SESSION['count'])){
$_SESSION['count']++;
}else{
$_SESSION['count']=1;
}
とする。

ま、エラー出力を抑制して、
session_start();
@$_SESSION['count']++;
でもありかな。やんないけど。
653nobodyさん:04/05/06 16:48 ID:???
いずれにせよ、>>644の環境はphp.iniのregister_globalsがoffになってるみたいだから
session_registerは使わない方がいいんじゃね?

>>652の方法がよかろう
654nobodyさん:04/05/06 17:13 ID:RZKBRIOT
板違いだったらすみません。
正解を当てさせるクイズを作って、ホームページにアップしたいのですが、
アクセスした人が何回でも楽しむことが出来るようにつくる為には、
まずどんなところから始めたらよいのでしょうか?
入り口を教えていただけたら助かります。
当方はCGIの設置まではできます。phpは作ったことが無いのですが
phpが便利だと、最近知りました。
よろしくお願いいたします。
655nobodyさん:04/05/06 17:27 ID:???
ごめん
何がしたいのかさっぱりわからん
>アクセスした人が何回でも楽しむことが出来るようにつくる為には、
ってどういう意味?
656nobodyさん:04/05/06 17:35 ID:RZKBRIOT
すみません、
例えば、隅田川、東京タワー、広隆寺
なんて選択肢があって、この中で京都にあるものはどれ?
なんてクイズ、作ったとします。
こういう類の質問を沢山写真つきで、公開したいのです。。。
657nobodyさん:04/05/06 17:41 ID:???
五問程度の出題をするとして、
月に数回(一回/週)と仮定した
場合でも、月20問で底をつく。
可能な限り問題を用意しなよ。
658nobodyさん:04/05/06 17:44 ID:???
PHPじゃなければならない理由も曖昧でPHPの基本もわかってないようだから
作るのはまだ無理じゃない?


PHPに拘らず↓こういうところで探しなさいな
【CGI】こんなCGI探してますver.13
http://pc5.2ch.net/test/read.cgi/hp/1081608108/
659nobodyさん:04/05/06 17:54 ID:RZKBRIOT
CGIの方がPHPより簡単に設置できるのでしょうか?
PHPはレスポンスが早いと聞いたものですから。
660nobodyさん:04/05/06 18:01 ID:???
違いやメリットなどは勉強していくうちにわかる。
単にゲームが欲しいだけなら板違い。
661nobodyさん:04/05/06 18:03 ID:???
>>659
CGI(=Perl)やPHPのスクリプトを設置するってことか?
であるなら、スクリプト次第だがな。

つーか、禿しくスレ違い。
662nobodyさん:04/05/06 18:06 ID:???
開口一番レスポンスが云々という人が良くいるけど、
どのくらい違うのか超簡単な比較スクリプトをCGI(perlとか)と
phpで作って測定してみりゃいいじゃんか
663nobodyさん:04/05/06 18:13 ID:RZKBRIOT
>>662
どこかに既成のスクリプトご存じないでしょうか?
>>658さんの
おすすめのところで探した方がよさそうですね。
ありがとうございます。


664nobodyさん:04/05/06 18:14 ID:???
>>662
それができないからここで質問するんだろ。>>659はスレ違い。
665nobodyさん:04/05/06 20:11 ID:RZKBRIOT
>>663
>>658さんのお勧めの中から
ぴったりのところを探しました↓
http://www.kisanet.com/kisamon/cgiscript/check_m.html
ありがとうございま〜〜〜した。
666nobodyさん:04/05/06 20:24 ID:???
PHP-4.3.6にアップグレードしてみたんだけど
configure --help の表示から --enable-mbregexp が消えてますよね。
--disable-mbregexp はある。とりあえず --enable-mbstring すれば
マルチバイト正規表現を使う関数も使えるようになるの?

昔のバージョンでは両方指定しないといけなかった気がする。
マニュアルを読んでも --enable-mbregexp を指定しないと
使えない関数を探せなかったので誰か教えて下さい。。
ちなみに 4.3.6 を --enable-mbstring だけ指定してコンパイルしたら
phpinfo() では mbregexp については何も表示されてません。
667623:04/05/06 20:51 ID:???
たびたびの質問失礼します。
サーバーのディスクサイズは無事に取得できたのですが
サーバーのメモリサイズや使用メモリなどを取得する
方法がまったくわかりません・・・。
マニュアルやサーチエンジンで検索しまくりましたが
さっぱりわかりません。。
PHPからじゃ無理なのでしょうか?
668nobodyさん:04/05/06 21:40 ID:???
>>667
判んなけりゃsystem()使え
669nobodyさん:04/05/06 21:41 ID:???
>>667
そういうプログラムをCとかで書いて作って呼び出せばいいじゃん
670nobodyさん:04/05/06 21:47 ID:???
鼻糞丸める暇もないくらいの速さで見つかりましたが教えません。
671nobodyさん:04/05/06 21:53 ID:???
>>670
丸める暇がないからって喰うなよ
672nobodyさん:04/05/06 22:00 ID:???
>>670
じゃあ鼻くそ丸める暇もないくらいの速さで見つける方法を教えてください。
あと、俺の部屋の中にあるはずの彼女にもらった腕時計が見つからないんで、
ごちゃついた部屋を検索するPHPの書き方もお願いします。
マニュアルやサーチエンジンで検索しまくりましたが
さっぱりわかりません。。
PHPからじゃ無理なのでしょうか?
673nobodyさん:04/05/06 22:20 ID:???
>>671
マジ切れしました。

>>672
腕時計程度ならPHPで十分だがクレジットカードはC++にしておけ。
674nobodyさん:04/05/06 22:29 ID:???
さりげなく彼女の存在をほのめかしたな。
675nobodyさん:04/05/06 22:48 ID:???
>>673
トイレに財布を落としたら、ピンポイントでクレジットカードだけ流してしまいました。
便器の中から下水道の先まで全部検索するにはPHPだけじゃダメですか?
C++も勉強しなきゃいけないのか、インクリメントされてDですか?

ところで、ヒアドキュメントと<?php ?>で区切るのとの違いがさっぱりわかりません。
フォームのvalueとかに埋め込むのにわざわざ<?php =とするのが面倒なんで、
片っ端からヒアドキュメントつかってるんですが何か問題ありますか?

それと、変数$hogeの後に全角入れると全角まで変数名と認識されてうざいのですが、
解決法は知ってます、ただマジでうざいとだけ言っていいですか?

それと、perlで書かれたCGIと同じ動きをするPHPを書こうとして、
とりあえず全部コピペして、PHPに変えなきゃいけない部分だけ探して直せばいいやとか思ってましたが、
「予想外の"{"があってエラーです」みたいなログがコーディングミスなんてないと100回見直してから実行してもまだ出ました。
俺は正しい、悪いのはコンピュータだ!なんて思いませんでしたが、ちょっとふてくされてもう一度条件制御あたりのリファレンス見てびっくり。

perl elsif
php elseif

もうね、こんなところで1時間詰まった自分のアホさを嘆いたよ。il||li_| ̄|○ il||li
どうにか立ち直る方法はないですか?
676nobodyさん:04/05/06 23:32 ID:???
>>675
ウザいから、死んで
言語ごとに脳内切換えできないならプログラミングすんな
677nobodyさん:04/05/06 23:56 ID:???
むしろperl以外でelsifなんて使ってる言語あんの?
678nobodyさん:04/05/07 00:28 ID:???
ruby とか。
679nobodyさん:04/05/07 00:58 ID:???
>>676
氏ねとまではいわない。
けど、>>675はつまんないと断言できる。
680nobodyさん:04/05/07 01:24 ID:???
氏ねでいいんじゃないかなぁ
読む気もしないからわかんないけどウザイのは確か
681nobodyさん:04/05/07 01:50 ID:???
アホか否かより自意識過剰がうざい
682nobodyさん:04/05/07 02:17 ID:???
>>675
首吊って来世に期待する
683nobodyさん:04/05/07 08:53 ID:???
軽くジョギングしてきます。
684nobodyさん:04/05/07 11:37 ID:???
>>683
フリーザさま風に余裕を見せながら 〜しますよ? と付けるのが正解。
相手の上に立って、「いいんですか?この私を怒らせて」な態度を常に忘れるな。
685nobodyさん:04/05/07 18:20 ID:???
軽くシコってきますよ?
686nobodyさん:04/05/07 18:48 ID:???
何かネタスレになってるぞ
↓軽く次の質問期待しますよ?
687nobodyさん:04/05/07 18:56 ID:???
軽く質問しますよ?
688nobodyさん:04/05/07 19:35 ID:???
答えられない質問してもいいんですか?
689nobodyさん:04/05/07 19:52 ID:???
いーからさっさと質問しろってんだよ
漏れは答えられないから帰る
690nobodyさん:04/05/07 20:00 ID:???
↓さっさと質問しろ
691nobodyさん:04/05/07 20:19 ID:???
じゃあ、軽く質問しますよ。
PHPを使ってドメインの取得可否をチェックする、
効率のよいスクリプトを教えてください。

とりあえず、他所様のサイトの検索サービスを利用させてもらって、
fopenで出力取得して可否をチェックするやつは作ったんだけど、
もっとうまい方法ないのかなーと思った次第。

軽く答えてもらえますか?
692nobodyさん:04/05/07 20:21 ID:???
私も軽く質問していいですね?
PHPの名前の由来って何ですか。
さあ、早く答えてくださいよ?
693nobodyさん:04/05/07 20:21 ID:???
694691:04/05/07 20:22 ID:???
補足。

echo is_domain_available("hoge.com")) ? "available" : "registered";
例えば、こういう呼び出しが出来るような、
is_domain_availableのうまい実装方法を軽く教えて下さい。
695nobodyさん:04/05/07 20:28 ID:???
いや、それを考えるのがプログラミングだろ

それ無くしたら何が楽しいよ?
696nobodyさん:04/05/07 20:35 ID:???
>>691
checkdnsrr() はそのままの関数ではないのか?
Windows 環境では使えないみたいだけど。
697691:04/05/07 20:36 ID:???
>695
軽く逆切れしますよ。
695が誰にレスし(ry
698691:04/05/07 20:42 ID:???
>696
多謝!!
まんまそれ用の関数あったんですね・・
軽く吊って来ます・・

↓続いて次の質問軽くどうぞ
699nobodyさん:04/05/07 20:48 ID:???
↓質問どうぞ。軽く答えてあげますよ?
700nobodyさん:04/05/07 22:18 ID:Ve7XXqWH
FTP関数の参考書無さ杉。Pasvモードでないと動かない鯖も大杉。使えん。
701nobodyさん:04/05/07 22:32 ID:???
1テラバイトのファイルを検索すると重すぎるので
軽くする方法を教えてくださいm(_*_)m

>>700
PASV云々よりタイムアウトがうざい。
702nobodyさん:04/05/07 22:39 ID:???
データベースに移行すればどうでしょうか?
703581:04/05/07 23:03 ID:???

domxmlの件ですが、結局自作する事にしました。
半分程度完成(xmlパーサのみ)。

後は node->last_child とか、そういう細かい関数を必要に応じて追加し完成させる予定。
704nobodyさん:04/05/07 23:30 ID:???
>>703
あー、、誰も教えてやらなかったのか。
PEAR みれ。
705nobodyさん:04/05/08 12:16 ID:PgRMX7CV
スレのたてかたがワカラソ
706nobodyさん:04/05/08 15:36 ID:H1s4AHG1
PHP4.3.2でGD2.0.12を使用していますが、ImageJPEGで画像を出力するとき、ディレクトリを指定して
保存することはできないのでしょうか?
ImageJPEG($dst_im, "file.jpg");
だと正常に保存されるのですが、
ImageJPEG($dst_im, "./path/filename.jpg");
のようにすると保存できません。(エラーも出ません。)
707706:04/05/08 16:44 ID:H1s4AHG1
できそうにないので、とりあえず
ob_start();
$img_out_func($dst_im);
$i = ob_get_contents();
ob_end_clean();
としてファイルに保存することにしました。
708nobodyさん:04/05/08 17:25 ID:2ZPN8DLz
軽く厨な質問してよろしいですか?

ファイルやDBを読み込んで文字を表示させた状態のPHPファイルを
そのままHTMLファイルとして保存し、表示させることってPHPでできますか?
709nobodyさん:04/05/08 17:27 ID:???
軽くfile()関数でHTTPでGETし、軽くファイルに書き出せばいいんじゃないの?
710708:04/05/08 17:36 ID:???
いやん、ありがとう。

軽くウッカリしてました……簡単じゃんよ、ねぇ。
711nobodyさん:04/05/08 18:20 ID:???
そして軽くmetaタグでrefreshすればいいんじゃないの?
712nobodyさん:04/05/08 18:55 ID:???
軽く解決しましたね
↓次の質問ドゾ
713nobodyさん:04/05/08 19:21 ID:???
凄く厨な質問してよろしいですか?

$_GET{'hoge'}が、文字化けしてしまうのですが。
日本語で渡しているのが原因だと分かりきっているのですが、
hoge.php?race=NHKマイルカップ
で$_GETで取り出した変数が「NHKマイ・E・奪愨」と…
マルチバイト関数は使えないPHP4.3.4です。
714nobodyさん:04/05/08 19:23 ID:???
軽くURLエンコードするべきですよ?
715nobodyさん:04/05/08 19:26 ID:???
軽く解決しましたね
↓次の質問ドゾ
716nobodyさん:04/05/08 19:28 ID:???
別にエンコードしなくても問題はないが

内部エンコーディングと出力のエンコーディングが違うんじゃねぇのか
717nobodyさん:04/05/08 19:35 ID:???
>716
エンコードしないとだめです

↓次の質問ドゾ
718nobodyさん:04/05/08 19:45 ID:???
>>717
釣りですか?
普通はURLエンコードしなければならないが

アドレス欄に日本語打ち込んでもそのまま機能しますが
719nobodyさん:04/05/08 19:48 ID:???
>>718
ま、おっしゃるとおりで、RFC的にはURLエンコードしなければいけないけど、
IEなんかだとそのままでも通ってしまうと。
そゆことでしょ。
720nobodyさん:04/05/08 19:53 ID:???
>>719
そそ。

なんか突っかかってしまってスマソ
721nobodyさん:04/05/08 20:50 ID:???
>>716
全部EUCに統一してますですが、それでも内部とかでは違うのでせうか。

>>714
ありがとうございます。
URLエンコードでググったらbase64_encodeという関数が出てきました。
リファレンスにも書いてありました、もろに「URL関数」と。
722nobodyさん:04/05/08 20:52 ID:???
base64_encodeではなくてURLエンコードですよ?
723nobodyさん:04/05/08 21:23 ID:???
>>721
echo mb_convert_encoding($_GET['hoge'],"EUC-JP","auto");

やってみると?
724nobodyさん:04/05/08 21:27 ID:???
getでマルチバイト渡すと、クライアントの文字コードからutf-8に変わって
phpに送られる、で$_GETで受け取るとクライアントの文字コードに戻ってる
だから、中でeucにしてやらんと
725nobodyさん:04/05/08 21:29 ID:???
たぶん >>721=>>713 だからmb_* は使えないんじゃないかな。
726nobodyさん:04/05/08 21:30 ID:???
>>723
マルチバイト関数が使えないって入ってんだから、
そんなこと言うと、軽く逆ギレされますよ。
727nobodyさん:04/05/08 21:30 ID:???
あ、マルチバイト使えないのか

じゃあjcodeか何かで変換するしかねーか
728nobodyさん:04/05/09 04:58 ID:???
phpってhypertext preprosessor の略と聞いたが、なんでそれならHPじゃないの?
729nobodyさん:04/05/09 05:12 ID:???
PHP : Hypertext Preprosessorの略だから
再帰的略語の何がおもしろいのかは、俺にもワカラン
730nobodyさん:04/05/09 05:15 ID:???
>>728
PHP FAQより :
2. PHPとは何の略ですか?
PHPはPHP: Hypertext Preprocessorの略です。
最初の文字が「頭字語の頭字語」になっているため多くの人は混乱します。
この種の 頭字語は「再帰的頭字語」と呼ばれます

GNUみたいなもん
731nobodyさん:04/05/09 07:32 ID:???
>>728
元々は"Personal Home Page tools"だったんだよ。
それを後で>>729 のように定義を変更した。
732nobodyさん:04/05/09 11:02 ID:???
ASP(Active Server Pages)は簡単な単語ばかりだなあ
って思ってたけど、PHPもそうだったんか
733nobodyさん:04/05/09 17:23 ID:???
久々に来たらネタスレになってるし。
734nobodyさん:04/05/09 17:28 ID:???
ASPはAplication Service Providerと混同するから嫌い。
735nobodyさん:04/05/09 17:35 ID:???
PHPはPHP出版と混同するから嫌い。
736nobodyさん:04/05/09 20:42 ID:???
737nobodyさん:04/05/09 22:58 ID:???
どなたか教えてください。
既にOracle8が動作しているDBサーバー(Win2000Server)があって、
それとは別ホストにLinux+Apache1.3+PHP4.6.2をインストールして
Ethernet(LAN)経由でPHP4とOracle8と連携させたいのです。
この場合PHPのインストールは
どのようにしたらよいでしょうか?

今のところLinuxマシン上にNet8とかを
インストールする必要があるのかなと思ってます。
Oracleのライセンスとかはどうなるんでしょうか。
738nobodyさん:04/05/10 01:04 ID:???
>>735
おかげでamazonで検索ができんのよ
739nobodyさん:04/05/10 01:34 ID:???
>>738
http://www.amazon.co.jp/exec/obidos/tg/browse/-/492352/
ここの検索窓から検索するといいかも
740nobodyさん:04/05/10 04:07 ID:???
phpでスクリプトをメモリに常駐させて定期的にプロセスを実行する
のってどうやってやるんでしょう?
741nobodyさん:04/05/10 04:15 ID:???
定期的に実行するならCRON
742nobodyさん:04/05/10 04:21 ID:???
無限ループさせて適度なタイミングで処理を挟めば? と適当なレス
743nobodyさん:04/05/10 04:24 ID:???
そんな危険な方法やめとけ。男は素直にCRON。Windowsならよく知らんけどスケジューラとか使うのか?
744nobodyさん:04/05/10 08:49 ID:???
Winならタスクスケジューラで逝け
745742:04/05/10 12:12 ID:???
だってメモリ常駐というご指示だし
746nobodyさん:04/05/10 12:55 ID:???
740はメモリ常駐の意味をよくわかってないで発言している悪寒
747nobodyさん:04/05/10 13:14 ID:???
sleepとか使えば?

俺はそんな事せずにCRON使うが
748nobodyさん:04/05/10 13:23 ID:???
「定期的」のレベルにもよるよな。
1回/日とかならCRONだけど、1回/1分とかならsleepで繰り返し実行。
749nobodyさん:04/05/10 16:06 ID:???
どれどれ、>>740の代わりに纏めておこうかのぅ。
・真っ当なやり方
 Unix系ならcronやat、windowならタスクスケジューラ(よく知らん)
・力技
 無限ループするプログラムを別に用意し、時間が来たら対象スクリプトを実行
 sleepでタイミングを見計らって実行
・巷でよくあるタイプ
 頻繁に実行されるスクリプトに時間チェックをする仕組みを組み込み、
 希望する時間を過ぎていれば該当スクリプトを実行
・番外編
 自宅のPCのcronやタスクスケジューラを使って該当スクリプトにアクセス。

メモリ常駐って意味で行くとデーモンやサービスにするのが妥当な気もするが。。
750nobodyさん:04/05/10 16:33 ID:???
一部のブラウザにある一定時間毎の再読み込み機能を使ってブラウザ上でスクリプトを実行させると言う方法もあり。
751nobodyさん:04/05/10 17:04 ID:???
>>742
キティの発想だな・・・
プロセスを常に実行するとか有り得ない

unix→cron
win→タスク
が常識
752742:04/05/10 17:22 ID:???
俺に言うなよw
変な条件をつけた質問者にどうぞその常識を教えてやってくれ
753nobodyさん:04/05/10 17:34 ID:???
どうでもいいが結局740はどの方法使ったんだ?
環境すら書かずに質問して、本来ならば叩かれるタイプなのに
暇人が多いおかげで丁寧にレス付けてもらって。
754nobodyさん:04/05/10 17:37 ID:???
厨でごめん。
php4.3.5において、
オブジェクトAのプロパティBをプリント文や、ヒアドキュメントなんかで出力するには
どう記述すればいいの?

print("${A->B}")
昔は、これで動いていたはずなのだが、今はエラーがでちまう。

755nobodyさん:04/05/10 17:42 ID:???
{$A−>B}
756nobodyさん:04/05/10 17:44 ID:???
なるほど、全角で書けばいいのかっ!
757754:04/05/10 17:51 ID:???
>>755
あ、でたでた。
これで移植作業が楽になるよ。
THXです。
//でも、なぜ古い書き方がダメなのか理解できてない

758nobodyさん:04/05/10 18:05 ID:???
${hoge}はPerlの書き方では?
759nobodyさん:04/05/10 18:23 ID:???
質問です。

・session.use_trans_sid が true
・ブラウザの設定が Cookie を off
・ページにフォームがあり、method='post'

以上の条件で実行すると、form に自動的に以下のような hidden フォームが挿入されます。
<input type="hidden" name="PHPSESSID" value="bc0d06379b5adaab95e8d40a939528a9" />
form が複数あると、すべての form に挿入されます。

これは php マニュアルのどこに載っているのでしょうか?
探しましたが、見つけられませんでした。
厳密な挙動を知りたいので、どなたかお教えいただけないでしょうか?

PHP Version 4.2.2
Linux redhat 2.2.14-5.0 #1
http://www.php.net/manual/ja/ref.session.php

この hidden が挿入されると、HTML-Lint がいきなり赤点になってしまうので、
個人的には鬱です。
タグを閉じるのに />を使ってよいのは xhtml だけなのに。
760nobodyさん:04/05/10 18:39 ID:???
> タグを閉じるのに />を使ってよいのは xhtml だけなのに。

は?
761nobodyさん:04/05/10 18:42 ID:???
lintで少し点が減るくらい気にするな。
762nobodyさん:04/05/10 19:05 ID:???
>>759
そのURLに「相対URIは自動的にセッションIDを含むように変換されます」と書いてあるよ?
厳密な挙動を知りたいなら、ソースから
session.c : php_session_reset_id -> php_url_scanner_add_var
url_scanner_ex.c : php_url_scanner_add_var
763759:04/05/10 19:11 ID:???
>>762
<a> タグにクエリが付加されるのは確かに書いてあります。
しかし、フォームに hiddenフォームが挿入されることは書いてないようです。

あと、すみませんが C のソースを追いかける力量はありません。
どこかに、できれば日本語の文献を見つけたいと思っています。
764nobodyさん:04/05/10 19:18 ID:???
そのURLの url_rewriter.tags の説明の部分も見てみ。
765nobodyさん:04/05/10 19:21 ID:???
>>763
ガンガレ
766759:04/05/10 19:25 ID:???
>>764
form=fakeentry という部分でしょうか?
これが、hidden フォームの自動挿入を意味しているのでしょうか?

fakeentry で(やむを得ず)英文ページを検索していますが、具体的な説明が見つからず、
困っております。
767nobodyさん:04/05/11 01:42 ID:1hKjpX9h
>534
$db->next_record();
してからprintすると出力される。
768759:04/05/11 10:10 ID:???
結局、あきらめて試行錯誤で使うことにしました。

・session.use_trans_sid が 1 (true)
だと、method='[get|post]'に関わらず、hidden が挿入されるようです。

これは、<form>タグをhtml出力にするか、<?php echo <form> ?> などと
書くかによらず、すべての フォームに挿入されるようです。
おそらく、バッファの出力の前に、SAXで出力内容を全てパースし、
タグを挿入しているのでしょう。
リンクに ?<?=SID?>に当たるものを付加するのも同じやり方のようです。

hidden については 赤マンモス本の PDF版 P80に載っていますが、
http://www.php.gr.jp/php/php4tettei/

PHPマニュアルに詳細情報が見つからないのは残念なことでした。
769nobodyさん:04/05/11 12:51 ID:???
結局何がしたいのか良く判らんけど、勝手に<form hiddenのSIDを付加されるのが嫌なら
url_rewriter.tags設定ディレクティブあたりを変更してみては?


770nobodyさん:04/05/11 13:19 ID:???
タグにスラッシュが付くのがいやなだけでしょ。
771nobodyさん:04/05/11 16:38 ID:???
uwa-n
772772:04/05/11 19:01 ID:j+/3ilVK
http://sumiro2.hp.infoseek.co.jp/cgi-bin/abc/bbbs.cgi
の掲示板なのですが、専用アイコン以外の普通のアイコンが表示されません。
中身は↓のようになってます。どうしたらいいのか、教えてください。お願いします。
http://sumiro2.hp.infoseek.co.jp/afraid/bbs.txt
773nobodyさん:04/05/11 19:05 ID:???
>>772
perl板に逝け
774nobodyさん:04/05/11 19:06 ID:???
>>772
こういう奴一番むかつくんだよな
どうせパスがおかしいとかパーミッションがおかしいとかそんな話だろ?
テメエで考えろ
775nobodyさん:04/05/11 19:18 ID:wZxq13vM
$num1 の配列と $num2 の配列があって
$num2に入っている値が$num1にあった場合、$num1の配列から、その値を削除するには
どうすればいいのでしょうか?
$num1[0] = '001';
$num1[1] = '002';
$num1[2] = '003':
$num1[3] = '004';

$num2[0] = '002';
$num2[1] = '004';
で$num1を001と003だけにした。
776nobodyさん:04/05/11 19:58 ID:???
>>775 これでどう?

$num1 = array_diff($num1, $num2);

//検証
foreach($num1 as $key => $value){
  echo "$key $value <br>";
}

http://jp.php.net/manual/ja/function.array-diff.php
777nobodyさん:04/05/11 20:03 ID:???
>>768
url_rewriter.tags : a=href,area=href,frame=src,input=src,form=,fieldset=
session.use_trans_sid : on
の状態で、
<a href="./">a</a>
<MAP name="map1"><area href="./" shape="rect" coords="0,0,100,100"></MAP>
<input src="./">
<form method="post" action="./"></form>
<fieldset></fieldset>
を実行させると、全ての行に ./?PHPSESSID=〜か<input type="hidden" name="PHPSESSID" が挿入される。
要は、trans_sid = onなら、url_rewriter_tagsで設定したものに対して
>>762が示している置き換え手順に従って単に書き換えられる。
formのinput type="hidden"の />はソース内に埋め込まれているので変更したいならここを弄る。
それが嫌ならurl_rewriter_tagsからformを除外し、自分でSIDを埋め込む。
778775:04/05/11 20:03 ID:???
>>776
ありがとうございます!
spliceでなんとかやろうとして、失敗しまくりで(汗
779768:04/05/11 20:28 ID:???
>>777 丁寧な説明、ありがとうございます。
やっと挙動が理解できたように思います。

そのタグに クエリを付加するか、hiddenフィールドを埋め込むかは、
タグごとに C のソースで決まっていると考えて良いようですね。

fakeentry は書いても書かなくても良くて、
form= と form=fakeentry は同じなのですね。

hiddenフィールドは fieldset の中に入っていてほしいので、
form= の代わりに fieldset= と書くことにします。

/>については、あまり気にしないことにします。

この自動挿入は、クライアントが Cookie をどう設定しているかによって
hiddenフォームの有無が変わるので、
JavaScript で扱うフォームの要素数を決め打ちにできなくなるのが
少々、悩みの種ですが、それは何とか考えることにします。

ありがとうございました。
780Upo:04/05/12 00:16 ID:UdSoQGZz
重複ログインの防止をしたいのですが、いい方法はありますか?
最初のログイン後にセッション情報をDBに格納して、次のログインは、
セッション情報があれば、ログイン不可にすればと思ったのですが、
最初のログインしたユーザが不正ログアウト(ブラウザーの「X」をクリックなど)
した場合、セッション情報が不当に残ってしまうので使い物になりません。

わかる方がいましたら、お願いします。
781nobodyさん:04/05/12 04:11 ID:Y6JDwafk
フォームでメッセージを送るときに
「"」が含まれてると、$_REQUESTなどで受け取るときに
「\"」と\が付いてきてしまうのですが、
これを付けないように送ることはできないでしょうか?
782nobodyさん:04/05/12 04:31 ID:???
stripslashes()
783nobodyさん:04/05/12 04:32 ID:???
784nobodyさん:04/05/12 11:26 ID:BOFMZpgM
php4で
Fatal error: Call to undefined function: pg_insert()
という未定義エラーが出ました。

この実験的なステータスを有効にするには
php.iniのどこを書き換えればいいんですか?


[PostgresSQL]
; Allow or prevent persistent links.
pgsql.allow_persistent = On

; Detect broken persistent links always with pg_pconnect(). Need a little overhead.
pgsql.auto_reset_persistent = Off

; Maximum number of persistent links. -1 means no limit.
pgsql.max_persistent = -1

; Maximum number of links (persistent+non persistent). -1 means no limit.
pgsql.max_links = -1


postgresql部分はこれだけ?
785nobodyさん:04/05/12 11:59 ID:???
>>784
Dynamic Extensionsの項の extensionの組み込み部分
Unix系(pgsql.so)とWindows(php_pgsql.dll)は
違うので、マニュアルを確認のこと。

# つかマニュアル読んで無いやろ?
# 関数リファレンスまでのI〜IVは通しで読んでおくこと。
# 関数リファレンスは暇な時と必要な時でいい
786nobodyさん:04/05/12 13:19 ID:???
>>780
レスがついてないようなので書いてみる。
似たような仕事をしたことがあった。JSP だったけれど。

標準的な HTTP サーバとブラウザでは、多重ログインを抑止するまっとうな方法は
存在しないように思う。だから、何かを犠牲にしなければならないわけで、

1.(現実的)セッションタイムアウトを短めにする。
 タイムアウトを10分とかにして、時間切れを JavaScript のポップアップなどで
 告知。ページの一時的な遷移などをユーザに促す。
 ・長所は、既存のコードや設備の変更がほとんど不要なこと。
 ・短所は、ユーザがわずらわしいこと。

2.(理想的)Java Applet か Macromedia Flash の導入
 これらは、ブラウザをリロードすることなしで、サーバと交信を行うことができる。
 小さなパケットを絶えずサーバとやり取りさせて、それが途切れたらログオフしたと見なす。
 ・長所は、ユーザにもサーバにも負担にならず、技術的にエレガントなこと。
 ・短所は、多くの新規コードを導入しなければならないこと。

3.(折衷案)隠しフレームを作り、小さな隠しページを絶えず自動リロード。
 要するに、2.と同じようなことを1.と同じ技術でできないかと考えたもの。
 セッションタイムアウトを1分、リロードサイクルを30秒とかにする。
 ・長所は、技術的にあまり手間がかからず、ユーザもわずらわしくない。
 ・短所は、サーバに負担がかかること。イントラネット向きか?

実際の仕事は、私は 2.で行きたかったんだけど、3.のような感じで進んだ。
最後は結局、仕事自体がポシャったんだけどね(苦笑)。
787784:04/05/12 13:52 ID:???
とりあえずpg_query($db,$sql);でお茶にごしときました。
関数リファレンスは確かに読んでません。

ていうか、技評のPHPポケットリファレンス(ISBN4-7741-1668-8)を見ながら
書いてるんすが、この本、ちょっと説明不足ぎみ...


785さん、サンコス。RHL9です。暇な時にチェックしときます。

ていうか将来変更される可能性がある関数なので別に使わなくてもいいか....
788785:04/05/12 15:40 ID:???
>>787
今見直してみたらpg_insert()の未定義エラーなんだね。
それ以前にpg関数使ってる筈だから自分の指摘は見当違いだったな。

ところでポケットリファレンスにはpg_insert()はPHP4.3以降の
対応と書かかれてたけど、結局試してたのがPHP4.3未満だったのかな?
http://jp2.php.net/manual/ja/function.pg-insert.php にも書いてあるね。
pgsql.cのソース見てみたけど、PHP4.2.3のものでは未定義、
PHP4.3.0のものから定義されてた。

pg関数は名称変更もあったり色々と変更/追加が多いので、
使う前にはちゃんと確かめた方がヨロシ。
# データベース絡みはどのみち抽象化して使うのが正攻法だと思います。
789nobodyさん:04/05/12 15:45 ID:???
すんません。
よくWeb上で実現しているポートスキャンをやって、
ポートが空いているかどうかを調べるサイトを作りたいのですが、
方法や使用する関数名など調べてもいまいちピンときません。

どなたかご存じのカタられませんか?
790nobodyさん:04/05/12 16:38 ID:???
>>789
自分のところをチェックするだけなら巷に多々あるスキャンツール
を使えばよいこと。仕組みを理解したり実装を考えたり出来ないのなら
他人が利用することが前提のツールを作ろうとしなさんな。

仕組みから実装を考える部分で疑問が出れば、それを質問として
訊けば回答が得られる可能性はある。でも実装は難しくないよ。
(仕組みも他の通信プログラムに比べれば簡単)
791nobodyさん:04/05/12 16:58 ID:???
http://www.php.net/manual/en/install.apache2.php

>Warning
>Do not use Apache 2.0 and PHP in a production environment neither on Unix nor on Windows.
と有りますが
具体的にどんな問題が有りますか?

またApache2にDSOではなくstaticに組み込むことは出来ますか?
792nobodyさん:04/05/12 17:18 ID:???
具体的に何が起こるか分からんから
実運用では使わないでねって事じゃないの
793784:04/05/12 17:22 ID:???
>>788
今phpinfoしてみたらphp4.2.2だった...ガーン
phpリファ本はphp4.3.0-pre2をベースにしてます。

どうりで動かない部分が多くて苦労してるはずだ。
794nobodyさん:04/05/12 17:44 ID:???
>>791
同一人物かどうかしらんけど、WebProg板のApacheスレと自宅鯖のApacheスレに同様の
書き込みがあったところなんだが。
795nobodyさん:04/05/12 18:02 ID:???
糞マルチ野郎だったか
796nobodyさん:04/05/12 18:04 ID:???
>>794
偶然です
ちょっと向こう見てきます

>>792
トラブル事例とかあるかなぁと
797nobodyさん:04/05/12 18:22 ID:???
見てきたんだけど、結局公式には”実運用で使うなって”発言があるってだけかな?
こう言われてるけど、普通に使えてるよー とか 話にもならない とか
そういうのって無いですか?


>979 名前:DNS未登録さん[sage] 投稿日:04/05/11 18:34 ID:???
>最近Apache側とPHP側が和解した
>
>PHP側の譲歩
これもちょっと気に成ったんですが、もうすぐApache2で安定したバージョンが出せる
という解釈であってますか?

後半は向こうで聞いた方が良いのかな?
798nobodyさん:04/05/12 18:24 ID:???
なんだ、apacheスレにPHPとかほざいてるやついたがここのスレのアフォ共か
死ねよ。スレ荒らすな
799nobodyさん:04/05/12 18:54 ID:???
( ´,_ゝ`)プッ
800nobodyさん:04/05/12 18:57 ID:???
>>797
いやメモリーリークするような現象が見受けられる。
運用のスタイル如何で他にも支障があると思う。
トライtoチェックandリカバリが必要という点で
Apache2+PHP(Apache2filter)"実運用"に向かない。
どうしてもApache2の機能が使いたいならPHP(CGI)と
組みあわせる。




801nobodyさん:04/05/12 19:01 ID:???
>>800
ありがと

何か、一年ぐらい前から進歩してないかな?
なら和解って話しに期待を寄せつつ待ちかな

タイミングが悪い時に書きこんじゃって、すみませんでした
802nobodyさん:04/05/12 19:28 ID:???
>>799
このスレの住人は迷惑かけておいて( ´,_ゝ`)プッか
この板の程度が知れるな
803nobodyさん:04/05/12 19:58 ID:???
ここまで糞スレになったか
804nobodyさん:04/05/12 20:14 ID:???
何を今更
805nobodyさん:04/05/12 20:24 ID:???
俺は悲しい
806nobodyさん:04/05/12 20:27 ID:???
>798=>802
( ´,_ゝ`)プッ
807nobodyさん:04/05/12 21:09 ID:???
>>806
いやいやいや・・
>>798(俺)に対してプッって言われたから>>802(俺)が反論したわけで
状況見れば分かるようなことをわざわざ等号で結ぶ必要があるのか?
等号厨なのか?
808nobodyさん:04/05/12 21:33 ID:???
 プッε=_| ̄|○
809nobodyさん:04/05/12 22:28 ID:???
基本的な質問ですが…

レンタルサーバーのPHPがApacheのモジュールとしてインストールされているかどうかを
判断するには、普通に.phpが動作したらokなんですか?
cgiとして動くのは usr/bin/php が必要と言うこと?

Apacheのモジュールとして動作させた方が高速で負荷が少ないと聞いたもので…
810nobodyさん:04/05/12 23:00 ID:???
>>809
phpinfo()を出力させるスクリプトを書いて
[Server API]のところを見るのが確実。
811809:04/05/12 23:16 ID:???
>>810
サンクス。
Apache って明記してありました。
812nobodyさん:04/05/13 03:26 ID:???
>798=>802=>807
プッε=_| ̄|( ´,_ゝ`)
813nobodyさん:04/05/13 08:19 ID:Ldb9FmGr
これからPHPやろうかと思ってるものです。
完全レイアウト目的で使おうと思い入門サイトなど見てみたのですが
そういう使い方を解説してるページがありません。
やりたいことは、たとえばこういうレイアウトのページ

■■■■■■■■
■■□□□□■■ ■・・・メニューや飾り枠など
■■□□□□■■ □・・・中身のHTML
■■□□□□■■
■■□□□□■■

で、メニューを叩くと □ の部分のみ書き換えるというやつです。
そのように展開したページのURLはindex.php?aaa=bbbのようになってます。
なぜPHPに目をつけたかというと

 ・フレームを使いたくない
 ・全HTMLに■部分をつけたくない(Updateが大変)
 ・DreamWeaver等エディタではやりたくない(リンケージ機能など)

という理由だけなのですが、こういう目的のPHP使いは
邪道なのでしょうか?これに結びつく使い方の説明が見つからないので・・
他にもっといい何かがあるのでしょうか?
一応初心者級ですがperl, cgi, javascriptは書けます。
どなたかアドヴァイを・・・!
814nobodyさん:04/05/13 09:36 ID:???
>>813
ネタ?
815nobodyさん:04/05/13 09:42 ID:???
アドヴァイ。
ファイルシステム関数のトコとかもう一度リファレンス読んでみてはいかがでしょう。
ぉれ的にはそれでいけるとおもうんですけど。
816nobodyさん:04/05/13 09:42 ID:Ldb9FmGr
>>814
本気本気超本気です。
ドエライ勘違いしてます?
おしえてください・・・
817nobodyさん:04/05/13 09:43 ID:???
>>815
あーっありがとうございます!
検索行ってきます。
818nobodyさん:04/05/13 10:26 ID:???
>>816
SSIで十分じゃない?
819nobodyさん:04/05/13 11:59 ID:d+uWkqgB
PHPとは直接関係ないですが・・質問です。
imgフォルダにある1.jpg 2.jpg 3.jpgを圧縮したいのです。
以下のプログラムを実行すると
hoge.tar.gz ファイルが作成されるんですが、これを解凍すると
1.jpgと2.jpgしか中にありません。なぜでしょうか。

<?
$file = "1.jpg 2.jpg 3.jpg";
$cmd= "tar zcvf hoge.tar.gz $file";
system("cd img;$cmd.$ret");
?>
820nobodyさん:04/05/13 12:13 ID:???
そのコマンド直接叩けば問題なく実行されるの?
821819:04/05/13 12:17 ID:d+uWkqgB
サーバーで直接
tar zcvf hoge.tar.gz 1.jpg 2.jpg 3.jpg
とコマンド打ってみましたらちゃんと実行されました。
822nobodyさん:04/05/13 12:18 ID:???
$retって何よ?初期化せえ
823819:04/05/13 12:22 ID:d+uWkqgB
ずばりその通りでした・・・。
$retを消したらうまくできました。
すいません。
824nobodyさん:04/05/13 18:07 ID:???
CGIで行うファイルロックのコードをPHPでそのまま使えるんでしょうか?
教えてください
###############################################################
# ロック処理
sub lock {
if (-e $lockfile) {
local($mtime) = (stat($lockfile))[9];
if ($mtime < time - 60) { &unlock; }
}
local($retry)=5;
if ($lockkey == 1) {
while (!symlink(".", $lockfile)) {
if (--$retry <= 0) { &error('LOCK is BUSY'); }
sleep(1);
}
} elsif ($lockkey == 2) {
while (!mkdir($lockfile, 0755)) {
if (--$retry <= 0) { &error('LOCK is BUSY'); }
sleep(1);
}
}
$lockflag=1;
}
sub unlock {
if ($lockkey == 1) { unlink($lockfile); }
elsif ($lockkey == 2) { rmdir($lockfile); }
$lockflag=0;
}
###############################################################
↑このコードです
825nobodyさん:04/05/13 18:11 ID:???
826nobodyさん:04/05/13 18:12 ID:???
>>824
PHPで書けば使える
827nobodyさん:04/05/13 18:13 ID:???
>>824-825
空上げすんなボケ!
828nobodyさん:04/05/13 18:15 ID:???
>>824
コピペじゃ無理。
つかflockじゃ不満?
829nobodyさん:04/05/13 19:10 ID:???
つか1秒も待たせるのかよ
830hiro@ ◆7iyjK8Ih4Y :04/05/13 19:30 ID:???
>>602
遅れてすみません。
基本的なこと忘れてました。(基本?
jcode付けてなかったです。
まぁ気軽にがんばっていきます。
831nobodyさん:04/05/13 21:16 ID:HMzJsd5o
ksortって安定なソートですか?
832nobodyさん:04/05/13 21:34 ID:???
そーっと扱えばね
833nobodyさん:04/05/13 21:41 ID:???
山田クン
座布団全部持ってって!
834kuro:04/05/13 21:52 ID:Enx3JY3V
誰でもできるゴミビジネス即金パック
http://pcbiz-j.com/business/blt.html
■不用品の処分から高額換金、プロのノウハウなど、毎月30万円稼ぐテクニックをあなただけに教えます。
■今なら期間限定割引!即金パックの販売代理店権利つき!
http://pcbiz-j.com/business/blt.html
きちんとした通信販売ビジネスです。
▼販売用のホームページを無料で支給します。
▼決していかがわしいマネーゲームなどではありません。
▼作業は1日にわずか数十分。(メール処理、通帳記帳など)
▼こっそり儲けたい人には、別名義での開業オプションもあります(資料メール参照)
http://pcbiz-j.com/business/blt.html
835nobodyさん:04/05/14 01:05 ID:???
phpで掲示板みたいなの作っていますが、表示の際書き込み1つに対して削除ボタンも1つ設け
そのボタンを押すだけで削除〜みたいな事ってできますか?

$delfile = fopen('kakikomi.txt','r')
if ($_POST['del']) {
for ($i=0;$i<count($delfile);$i++)
{
$arr = explode(",", $delfile[$i]);
if ($arr[0] == ここがわかりません) {
array_splice($def, $i, 1);
}
}
}

表示されるのはID(ユニーク)と名前とメッセージでkakikomi.txtから配列にして表示しています。
削除ボタンが押された時に$_POST['del']とIDを通達するようにしたいんですがその方法がわかりません。
プログラム自体始めた麦価なので質問の仕方すらわからないですが、ヒントください。
836nobodyさん:04/05/14 01:10 ID:???
>>835
削除云々より、ファイルポインタをcountしてどうする。
837nobodyさん:04/05/14 01:14 ID:???
あ、間違いました。。

わかり易いようにと整理してたもので。

$delfile = open('kakikomi.txt');
if ($_POST['del']) {
for ($i=0;$i<count($delfile);$i++)
{
$arr = explode(",", $delfile[$i]);
if ($arr[0] == ここがわかりません) {
array_splice($def, $i, 1);
}
}
}

こうですね!
838nobodyさん:04/05/14 01:24 ID:???
$delfile = file('kakikomi.txt');
if ($_POST['del']) {
for ($i=0;$i<count($delfile);$i++)
{
$arr = explode(",", $delfile[$i]);
if ($arr[0] == ここがわかりません) {
array_splice($def, $i, 1);
}
}
}

何度もすいません。。。orz
839nobodyさん:04/05/14 01:31 ID:???
>>838
kakikomi.txtの構造はどうなっている。
それと、1行1レスなのか?
840824:04/05/14 01:38 ID:xJCSoVDm
返答ありがとうございました。
841nobodyさん:04/05/14 01:39 ID:???
あぁ、どの削除ボタンを押したかの選別がわからないだけなのか。
そりゃ、削除ボタンの付け方次第なんで、そっちをどのようにしたのかに因るがな。
842nobodyさん:04/05/14 01:41 ID:???
はい、テキストの構造はID,名前,メッセージ,改行
となっていて、1行1レスです。
843nobodyさん:04/05/14 01:45 ID:???
だんだんと、質問の意図が理解できてきたw
$_POST['del']に削除するIDが入っているのなら、
if($arr[0]==$_POST['del'])でいいのじゃないかな。
844nobodyさん:04/05/14 01:45 ID:???
hiddenで、キー番号渡せば?
845nobodyさん:04/05/14 01:46 ID:???
そうなんです。

削除ボタンは<form method=POST><input type="submit" name="$id">

$idはkakikomi.txtのユニークなIDです。
846nobodyさん:04/05/14 01:51 ID:???
>>845
それだと、$_POST['del']では受け取れんがな。
847nobodyさん:04/05/14 01:54 ID:???
1から勉強やり直し!
そういうのは自分で構造考えてやったほうが後々のためになる。
848nobodyさん:04/05/14 01:56 ID:???
<form method=POST><input type="submit" name="del">
にするとIDをどこで見分ければいいかがわからないんです。。ス
849nobodyさん:04/05/14 02:00 ID:???
>>848
漏れの場合はたいていJavaScriptを使うんだけど、
<input type="hidden" name="del" value="">
としておいて、
<input typr="button" value="削除" onClick="form.del.value='$id';from.submit();">
見たいな感じ。
850nobodyさん:04/05/14 02:01 ID:???
<input type='submit' name='del' value='$id'>
851nobodyさん:04/05/14 02:04 ID:???
PHPと言うよりHTMLの話だぁね。
各ボタンごとにformを使う
 <form><input type="submit" name="id_01"></form> -> $_REQUEST['id_01']がセットされる
 <form><input type="submit"><input type="hidden" name="del" value="01"> -> $_REQUEST['name']='01'
全体を1つのformに収める
 <form><input type="submit" name="id_01"><input type="submit" name="id_02"></form> -> (略)
852nobodyさん:04/05/14 02:18 ID:???
hiddenのことを調べている間に。。レスありがとうです。

javascriptっていう手もあるんですか、なるほど。
851さんの方法でもできるんですね。ちょっと色々やってみて出来たら報告しにきます。たぶん。
853nobodyさん:04/05/14 02:34 ID:???
ほんとだ。phpじゃなくhtmlね。板違いゴメンソ
854nobodyさん:04/05/14 06:14 ID:???
>>849
JavaScriptが使えない場合はどうしてる?

>>852
どっか適当なところ(先頭行とか)に
print_r($_post);
等入れて、何が引き渡されるか確認するといい
855849:04/05/14 09:24 ID:???
>>854
いままでJavaScriptが使えない環境を考慮しなければならない案件を受けたことないし、
個人的に趣味で作るサイトもJavaScript必須にしているので、あまり深く考えたことがないのだが、
単純に済ませるのなら、aタグでリンクを貼ってもいいんじゃね。
<a href="http://www.example.com/hoge?DEL=$id">DEL(またはボタンアイコン)</a>

どうしてもinputタグで尚且つsubmitボタンのvalue値を"削除"か"DEL"でなら、
name側をユニーク(name="DEL-$id")にしてphpで$_POST配列を調べるとか。

クロスブラウザなサイトもすばらしいと思うが、NN4.xは捨ててもいいと思うし、
「JavaScript機能はOnでお願いします」って断って、利便性とか見た目と
開発効率の両立するのもありだと思う。JavaScriptが苦手な人はナニですが...
CSSを使って別ファイルにすると、HTMLの中にJavaScriptが占める割合は
最近ますます増えてます :-)
856nobodyさん:04/05/14 12:00 ID:vu0WINSD
FgetSで、

title:ぽぽたん
title:ぴちぴちピッチ
 ・
 ・

というファイルを
$buff[cnt] = FgetS($fp,255);
って書いて、ファイルの終わりになるまでカウントして取り捲ってるんですが、

とり終わった後、
title[0] => ぽぽたん
title[1] => ぴちぴちピッチ
といった感じの連想配列にしたいんですが、どうしたらいいでしょうか?

それともとってくる段階で、連想配列にはめ込む方法があるんでしょうか?
857nobodyさん:04/05/14 12:16 ID:???
とりあえず
$buff = file('ファイル名');
ってやると

$buff[0]=>'title:ぽぽたん'
$buff[1]=>'title:ぴちぴちbitch'

ってなるのは知ってる?
858856:04/05/14 12:26 ID:vu0WINSD
>>857
しってます
PReg_Split や、Explode で分割したら
Array
(
  [0] => title
  [1] => ぽぽたん

)
Array
(
  [0] => title
  [1] => ぴちぴちぴっち

)

ってなっちゃうんで、どうすればいいのか悩んでます。
859nobodyさん:04/05/14 12:31 ID:???
分割せんでもtitle:を削っちゃえばいいやん
str_replaceとか
860nobodyさん:04/05/14 12:31 ID:???
>>858

$buff[] = $tmp_buff[1];
861nobodyさん:04/05/14 13:18 ID:vu0WINSD
>858-859
はい、それもそうなんですが、
連想キーを元に値を引き出すってのをやってみたくて・・

配列関数で、値のソートだとか便利な関数が用意されてるみたいなんで
後々便利だとおもい、何とか$key=>$value の形に持っていければとおもっています。
862nobodyさん:04/05/14 13:27 ID:???
>>861
連想配列なの?普通の配列じゃなくて?

$tmp['title[0]'] = 'ぽぽたん'

ってこと?
863nobodyさん:04/05/14 13:28 ID:???
こういう事がしたいの?

title:あああ
title:いいい
name:ううう
title:えええ
name:おおお

$title[0]=>'あああ'
$title[1]=>'いいい'
$title[2]=>'えええ'
$name[0]=>'ううう'
$name[1]=>'おおお'
864nobodyさん:04/05/14 13:30 ID:???
俺は連想配列と言いながら普通の配列の事を言ってると勝手に脳内変換してたw
865nobodyさん:04/05/14 13:36 ID:???
>>862
連想配列だったらこうだろ

$buff['title'][0]
866856:04/05/14 13:38 ID:vu0WINSD
>863
はい、それがやりたいんです。
Array
(
  $title[0]=>'あああ'
  $title[1]=>'いいい'
  $title[2]=>'えええ'
  $name[0]=>'ううう'
  $name[1]=>'おおお'

)
こうしておけば、
NetSortだとかArsortだとか便利な関数が用意されてるみたいなので
データが増えたとき、お気に入り順でソートとか出来るかな〜と思って、そうゆう形で、入れたいと思っています
867nobodyさん:04/05/14 13:43 ID:???
>>866
これをループで回せ。
$arr=explode(':',$buff[$cnt],2);
${$arr[0]}[]=$arr[1];

しかし....
868nobodyさん:04/05/14 13:52 ID:???
すごい仕様だ
869nobodyさん:04/05/14 13:54 ID:???
これでいいじゃね。
while(($s = fgets($fp, 1024)) != NULL) {
  list($var_name, $value) = explode(':', $s, 2);
  ${$var_name}[] = trim($value);
}

まぁ、あれだ。もとデータに他で使ってる変数名と
同じものが紛れた時に正しく動作せん罠
$input_data[$var_name][]
に放り込んだ方がええよ。
870nobodyさん:04/05/14 14:09 ID:???
ま、可変変数も久しぶりに使ったし、昼下がりの腹ごなしにちょうど良かったのかもw
可変変数を使うときは、ほとんどの場合それ以前に問題があると思ったりするのだが。
871nobodyさん:04/05/14 14:15 ID:vu0WINSD
>867-869
ありがとうございます!
これで、お気に入りなアニメのデータベース的なことができそうです
872nobodyさん:04/05/14 14:18 ID:???
可変変数を用いたのは良かったのだが、どういった変数が定義されたのかを
どうやって調べるんだ?
873869:04/05/14 14:28 ID:???
>> 872
そういう問題もあるから、
>$input_data[$var_name][]
>に放り込んだ方がええよ。
ってしたんだが。

これだと、array_keys($input_data)で
判るし、stdObjectに放り込んだとしても、
get_object_vars()で拾えるし。
874nobodyさん :04/05/14 15:50 ID:Ncoppi/i
PHPのmb_系関数が定義されてなかったのでリコンパイルをかけようと思いました。
そこでphpinfo()のconfigure commandの文字列にmb_系関数をenableにして
configure実行したのですが、とおらないんです。

configure: error: Please reinstall the BZip2 distribution

といわれてしまいます。
phpinfo()のconfigure commandはインストールする際に
指定したコマンドですよね。それでインストールされてるのに
なぜ今インストールができないのか、、、不思議でなりません。

どなたかヒントをください。
875856:04/05/14 15:59 ID:vu0WINSD
>874
エラーメッセージを見ると、BZip2 が無いので入れてけろと言ってるみたいですが・・
どのディストリュビューションか分からないから
sources.redhat.com/bzip2/
ここでソース拾ってきてインスコすれば、configure通るんじゃないでしょうか?

連想配列順調です♪
876nobodyさん:04/05/14 16:13 ID:???
856のお気に入りアニメは、ぽぽたんとぴちぴちピッチと・・・..._〆(゚▽゚*)
ピュアは?
877nobodyさん:04/05/14 16:16 ID:???
upload.phpのソース

<html><head><title>test</title></head>
<form enctype="multipart/form-data" method="post">
upload?: <input name="userfile" type="file"><input type="submit" value="submit">
</form>
<?php
if (!empty($_FILES)) {
move_uploaded_file($_FILES['userfile']['name'],'/home/hoge/public_html/upload');
}
var_dump($_FILES);
?>
</doby></html>


php.iniのResource Limits部分は
max_execution_time = 30
memory_limit = 40M

File Uploads部分は
file_uploads = On
upload_tmp_dir =/tmp
upload_max_filesize = 10M

postmax部分は
post_max_size = 10M


となってるのに、sumbitを押すとupload.phpの読み込みに失敗しましたと出ます。1M位のデータならPOSTで送れるんだけど、それ以上だとブラウザでエラーになります。
なんでですかー?
878nobodyさん:04/05/14 16:19 ID:???
upload.phpのソース

<html><head><title>test</title></head>
<form enctype="multipart/form-data" method="post">
upload?: <input name="userfile" type="file"><input type="submit" value="submit">
</form>
<?php
if (!empty($_FILES)) {
move_uploaded_file($_FILES['userfile']['name'],'/home/hoge/public_html/upload');
}
var_dump($_FILES);
?>
</doby></html>


php.iniのResource Limits部分は
max_execution_time = 30
memory_limit = 40M

File Uploads部分は
file_uploads = On
upload_tmp_dir =/tmp
upload_max_filesize = 10M

postmax部分は
post_max_size = 10M


となってるのに、sumbitを押すとupload.phpの読み込みに失敗しましたと出ます。1M位のデータならPOSTで送れるんだけど、それ以上だとブラウザでエラーになります。
なんでですかー?
879nobodyさん:04/05/14 16:29 ID:???
二重投稿になっちった...

Apacheのエラーログでは
[Fri May 14 16:19:33 2004] [error] [client 192.168.1.10] Requested content-length of 711143 is larger than the configured limit of 524288,
referer: http://192.168.1.1/upload/upload.php

と出てる.... おぃ、ファイル制限が524KBってどーゆーことだー!
880nobodyさん:04/05/14 16:34 ID:???
マニュアルくらい読もうね
881nobodyさん:04/05/14 16:38 ID:???
>>879

スレ違い
Apacheスレへどうぞ
882nobodyさん:04/05/14 16:38 ID:???
>>874
まず、phpinfo()のconfigure情報はそのphpが構築(コンパイルやらリンクやら)された時の情報。
つまり、今動かしているマシンとは全然関係がない。
phpをソースからインストールしようとするとconfigure時に必要なライブラリ等をチェックする。
この時オプションで指定したディレクトリ(あるいはデフォルトのディレクトリ)に
必要なライブラリ等が無いとエラーがでる。

>>875の言うように、bzip2関係を入れれば解決すると思うよ。
これは別にソースからじゃなくてもバイナリでいいんじゃないかな。
883856:04/05/14 16:59 ID:vu0WINSD
>>876

<?
 require("moe.ini");
 $moe = new moe;
 $sukisuki=$moe.AnimeList("all");
 print $sukisuki;
?>

--結果表示--
ぽぽたん,ぴっちぴちピッチ,ぴちぴちピッチピュア,美鳥の日々,光と水のダフネ,花の魔法使いマリーベル,ガルフォース

884nobodyさん:04/05/14 17:24 ID:???
>>878
ちなみに['name']じゃなくて['tmp_name']
885nobodyさん:04/05/15 00:34 ID:x/lO/LgB
無理を承知で質問させてください。
写真の加工をしたいのですが、PHPで明るさやコントラストを変える方法ってありませんか?
886nobodyさん:04/05/15 00:46 ID:???
>>885
無理を承知で返答させてください。
image_gain();
image_contrast();
887nobodyさん:04/05/15 00:57 ID:x/lO/LgB
>>886
image_gainググってみたのですがヒットしませんでした。
image_contrastは英語のサイトがヒットしましたが、これを使えって意味でしょうか?
888nobodyさん:04/05/15 01:26 ID:???
オイラもphp.netで検索しちまったよ _| ̄|○
画像処理用の外部プログラムを使うのもありやね。
有名どころだとImageMagickでも明るさやコントラストを変更できる。
889885:04/05/15 01:49 ID:???
釣りだったことに今気が付きました。
>>888
ImageMagickですね。
今調べてみた所、解説ページも多そうだしよさげです。
どうもありがとうございます。
890nobodyさん:04/05/15 02:15 ID:???
あるファイルの中から任意の文字列の個数を数えるには
よいのでしょうか?

substr_count(file($file),"文字列")
とかやったりしてますがかなり見当違いな気がします...
891nobodyさん:04/05/15 02:26 ID:???
>>890
int substr_count ( string haystrack, string needle)
array file ( string filename [, int use_include_path [, resource context]])
892nobodyさん:04/05/15 04:25 ID:???
>>883
マリーベル・・・
ガルフォース・・・
(・∀・)ニヤニヤ
893nobodyさん:04/05/15 05:10 ID:???
print_rしたら

Array ( [100] => 25 [107] => 42 [109] => 15 [105] => 10 [send] => OK )

こういうのが返ってくるんですけどここから
配列$IDに100,107,109,105
配列$avに25,42,15,10
が入るようにするにはどうすればいいですか?
894nobodyさん:04/05/15 05:16 ID:???
>>893
foreach($original_array as $key=>$value){ $id[] = $key; $av[] = $value; }
sendの処理は判断基準が書いてないので略。if文でなんとかしる
895nobodyさん:04/05/15 05:19 ID:???
まったーーーー

sendの処理はformです。
896nobodyさん:04/05/15 05:20 ID:???
POSTです
897nobodyさん:04/05/15 05:29 ID:???
おお出来た さんきゅーー
898nobodyさん:04/05/15 06:13 ID:???
産休です
899nobodyさん:04/05/15 08:23 ID:???
>>894
そんなややこしいことしなくても、
$ID = array_keys($original_array);
$av = array_values($original_array);
でいいんじゃない?
900nobodyさん:04/05/15 10:58 ID:???
おおこっちでも出来た さんきゅーー
901nobodyさん:04/05/15 19:26 ID:???
教えるヤツも低レベルということを露呈したな
902nobodyさん:04/05/15 19:34 ID:???
>>901
まあPHPだからな。
903nobodyさん:04/05/15 21:31 ID:???
静的なページだった.htmlの時はブラウザーに関連付けして起動し
エディタで編集できたけど
動的な.phpの場合はブラウザーに関連付けしてもあまり意味ないよね?

というのもapacheなりhttpdなり起動してから
.phpに関連付けしたブラウザーで起動しても正常に動かないわけだし…

みんなどうしてるの?
904nobodyさん:04/05/15 21:35 ID:???
.phpをブラウザに関連付けてどうすんのよ??当然エディタでしょ。
905nobodyさん:04/05/15 22:03 ID:???
みんなは誰も困ってませんよ(^∀^)ゲラゲラ
906nobodyさん:04/05/15 22:10 ID:???
つられすぎ
907nobodyさん:04/05/15 22:42 ID:???
お初になります。
早速質問で申し訳ないのですが
現在画像サイトを運営しようと思ってるんですが
○.phpでラージオブジェクトからloreadallにて画像データを出力
×.phpにて<IMG SRC=○.php>というように表示しているんですが
この時に右クリックから「対象の画像を保存」時のファイル名を指定したいのですが
方法はありますでしょうか?
908nobodyさん:04/05/15 22:43 ID:???
俺は.phpはphp.exe(Windows)に関連付けてる。
編集は「送る」でエディタに投げてる。
909nobodyさん:04/05/15 22:58 ID:???
俺はダブクリで秀丸にしてるけどな
IEに関連付けても、どうせPHP実行されないし
910nobodyさん:04/05/16 01:05 ID:???
全体を <?php?>にしているなら別だけどそれが一部だけなら、
ブラウザに関連付ける意味はあるでしょ。

見た目チェックできますよ
911nobodyさん:04/05/16 01:10 ID:???
┐(´д`)┌
912nobodyさん:04/05/16 01:18 ID:???
好きにすれば?でええんでないの?
オイラはphp-gtkを使ってた時にはダブクリに実行環境、送るにエディタを割り当ててたけど。
913nobodyさん:04/05/16 01:36 ID:???
ま、phpは敷居が低いのも一つの特徴だし、htmlにちょこっと付け加えるだけならそれでもいいんじゃね。
以前、users-mlで「phpにテンプレートエンジンはいらんだろ」と言ってた人(それで食ってる人)も居るぐらいだし。

漏れは去年あたりからテンプレートを使い出して、今年からSmartyを利用しているのだが、
完全に分離すれば、それこそ見た目で確認できるし、使い回しも効く。
初めのころは、デザイナー屋とロジック屋が別々に居る様なところ向けだろと思っていたが、
慣れると1から10まで1人でやるようなレベルでも結構便利。

なので、phpファイルをブラウザで開くと言われると(゚Д゚)ハァ? ってなる。
ま、当初からphpファイルをそのままブラウザで開こうなんて
思ったこともなかったがw

なんか、話が途中でそれてるな。スマソ。
914nobodyさん:04/05/16 02:29 ID:???
>>910
いや、だから単にhtmlに関連付けただけじゃphpスクリプト等は実行されないだろ
だから、俺はIE開いてローカルにアクセスして見てる。
単なるhtmlファイルならダブルクリックでもいいんだけどね
915nobodyさん:04/05/16 02:34 ID:???
mozillaならできたりする
http://www.thomas-schilz.de/MozPHP/
916nobodyさん:04/05/16 02:36 ID:???
多分910はスクリプト部分が実行されなくてもある程度体裁は確認できると言いたいんでしょ。
まあたいしたスクリプトじゃなければ、の話だがな。
917903:04/05/16 03:25 ID:???
903で質問したものですが、「これだ!」っていう方法はないみたいですね。

>編集は「送る」でエディタに投げてる
htmlでしたらブラウザーに関連付けして「送る」でエディタ、
またはブラウザーのソースでエディタにしてますが…
918nobodyさん:04/05/16 03:35 ID:???
何でお前ら「送る」にこだわるわけ?
拡張子ごとの設定で、詳細設定すれば、「編集」とか右クリックメニュー増やせるじゃん
これってNT系だけなの?
919nobodyさん:04/05/16 04:36 ID:???
さすがそれは人の好み。
920nobodyさん:04/05/16 04:38 ID:???
そういう問題じゃなくて
いかに少ない動作でphpを表示させるかを論議しているんじゃないの?

apache起動してブラウザーのお気に入りで表示という手なら
それなりに早いけど、お気に入りしていないファイルは意味ないし…
921nobodyさん:04/05/16 06:14 ID:???
*.phpクリックからラッパー用のshなりdatに関連付けして、
ディレクトリとアドレス書き換えてブラウザに渡すだけでなんとかなり
そうだけど・・・。

sedが無いとちょっと悩むかもね、
hoge.datからcgiページに開きたいディレクトリのアドレス引数として渡して、
IEで開くようにしてそっからアドレスに変換して飛ばしちゃうとか。
どっちにしろ10行も書かんでいいのではなかろうか。
922921:04/05/16 06:22 ID:???
dat→bat
2chしすぎかな、首吊ってくる。
923nobodyさん:04/05/16 11:33 ID:???
Windowsの使い方ばっかりでレスいくつ消費してんのよw
924nobodyさん:04/05/16 13:07 ID:???
だな。WAMPでも入れて開発用のディレクトリにインデックス自動生成すれば何も不便ない。
925nobodyさん:04/05/16 15:27 ID:???
つーかいい加減スレ違い
926nobodyさん:04/05/16 15:28 ID:otjJ9NhR
以下のようなログファイルを処理する時に、行の相関関係を保ちつつ
数字の列でソートする為にはどんな方法を使えば良いでしょうか。

aaa,11,ああああ
bbbbb,6,すすす
eeee,33,いい

いつも以下のようにfileで読み込んでforeachとlistを使って
処理しているので相関関係を保つ事ができません。

$line = file ("./log.dat");
foreach ($line as $value){
list ($alphabet, $number, $kana) = explode (",", $value);
処理
}

考え方orヒントを教えて貰えませんか?
927nobodyさん:04/05/16 16:12 ID:???
これからphp始めようと思うんですが、4.1.2で勉強するのは時代遅れでしょうか?
4.2以降の普及状況というのはどんなもんなんでしょうか?
928nobodyさん:04/05/16 16:15 ID:???
なぜ4.1.2?
929nobodyさん:04/05/16 16:19 ID:???
debianの安定版のデフォルトが4.1.2だったので・・・
やっぱり4.2以降がスタンダードですか?
930nobodyさん:04/05/16 16:24 ID:???
スタンダードなら4.x.xの最新の(今は4.3.6)を使うべきかと
931nobodyさん:04/05/16 16:30 ID:???
なぜdebian
932nobodyさん:04/05/16 16:37 ID:???
ビビアン?
933nobodyさん:04/05/16 17:00 ID:???
普通にデビアン使うだろ
一括管理できてかなり楽だし
934nobodyさん:04/05/16 17:04 ID:3g7G37kU
form のsubmitボタンを押された時にidを取得したいのですがうまく出来ません。
ソースは

print "<form method=\"POST\">\n";
print "<input type="\hidden\" name=\"id\" value=\"$id\">$id番\n";
print "<input type=\"submit\" name=\"send\" value=\"ok\">\n";

if (isset($_POST['send'])){
print "$_POST['id']";
}

こんなかんじです、お願いします
935nobodyさん:04/05/16 17:13 ID:???
fromタグを勉強しなおせ
actionプロパティはどうした
936nobodyさん:04/05/16 17:22 ID:???
>>935
オマエモナー
937nobodyさん:04/05/16 17:52 ID:???
ああ、formタグか。
意味分からんでつっこんできた>>936を殺しかけた。危ない危ない
938nobodyさん:04/05/16 17:57 ID:???
>>926
相関関係って何?
意味がわからん。
939nobodyさん:04/05/16 18:08 ID:???
>>937
プッ

>>935
×actionプロパティ
○action属性
940926:04/05/16 18:19 ID:???
>>938
言葉足らずですいません。

aaa,11,ああああ
bbbbb,6,すすす
eeee,33,いい

の場合、数字の列でソートしたいので、最終的に以下の様にしたいんです。

bbbbb,6,すすす
aaa,11,ああああ
eeee,33,いい

自分の脳みそでは方法が思いつかないんで、宜しくお願いします。
941nobodyさん:04/05/16 18:27 ID:???
942nobodyさん:04/05/16 18:33 ID:???
MB関数を使わず、文字列にマルチバイトが含まれているかどうか調べる方法はありますか?
943926:04/05/16 18:44 ID:???
>>940
ありがとうございます。
なんとかやってみます。
944nobodyさん:04/05/16 19:19 ID:???
PHPとFlashを使ったアプリケーションを作成しています。

FlashでXMLを作成し(myXMLとします)、その後以下でサーバーへ送信します。

# myXML.sendandLoad( "http://******/receive.php", receiveXML );

その場合、receive.phpで、どのように送られてきたXMLを受け取ればよいのでしょうか?
_POSTを調べたり、getallheaders()を調べたりしてみたのですが???です。

現在わかっていること
・webサーバーにはアクセスに来ている
・getallheadersでとれる要素、POSTCONTENT_LENGTHに入っている数字は、送信しているXMLサイズ
になっている
・PHPは、4.2.2

よろしくお願いします。
945nobodyさん:04/05/16 19:22 ID:???
>>939
しかも属性だったか
スマソ
最近いろいろな言語に手をつけてるものでゴチャゴチャしまくりだ
946nobodyさん:04/05/16 21:34 ID:US+BPpRG
すいません、簡単な質問なのですが…。
http://hoge.com/hoge1.jpg
http://hoge.com/hoge2.jpg
(中略)
http://hoge.com/hoge100.jpg
と100個の画像を

C:\
つまりローカルのCドライブ直下にダウンロードしたいんですが、
どうしたらいいんでしょうか。

copy()を使ってC:\\にコピーしようとしたら、
ローカルではなく鯖上に"C:\1.jpg"から"C:\100.jpg"という
おかしなファイル名で連番ファイルが作成されてしまいました。

どなたかローカルのマシンにダウソする方法を…
947nobodyさん:04/05/16 21:41 ID:P5TYmVAY
PHPでactiveperlのようなwindows上で動かすものはあるのでしょうか?
948nobodyさん:04/05/16 21:45 ID:???
>>946
自分の鯖からDLさせたいならそのファイル達を圧縮してDLさせればいい希ガス。

>>947
http://www.php.net/downloads.php
949nobodyさん:04/05/16 21:56 ID:???
>>948
ありがとうございます。
でも自鯖じゃないんです…、公的なデータベースサイトから簡単に連番画像抜こうと思って。

例えばダウンロードソフトのgethtmlとか
http://rd.vector.co.jp/soft/win95/net/se077066.html
ガンガンファイルをローカルに落としてくれるから、
ああいった感じでファイルをローカルに落とす関数はないものかと。
950nobodyさん:04/05/16 22:01 ID:???
>>949
他人サーバから自分のローカルへ?
それをなんでPHPで作りたいん?
ダウンロード支援ソフトならいくらでもあるし、
それを使えばええやんって思うんだけど・・・
951nobodyさん:04/05/16 22:03 ID:???
phpつーよりSQLなんで恐縮なんだけど。
ついでに今日本屋へSQLの本買いにいったんだけど高くでやめたので恐縮なんだ゛けど。

データを検索するSELECT文で

最新の10レコードのみ取り出す とか
最初の10レコードのみ取り出す とか
次の10レコードのみ取り出す とか

どうやって記述すんでしょうか?

SELECT * FROM data_name WHERE ??????;

だと思うんだけどワカラン。調べないと...
952nobodyさん:04/05/16 22:05 ID:???
>>950
いや、そんな本格t的なやつじゃなくて、
5分くらいで自分用の最小機能のを
簡単につくろうと思ったらつまづいちゃったから。

ということはブラウザベースのwebアプリじゃ、
一から作って5分で出来るほど簡単じゃないってことか…。
953nobodyさん:04/05/16 22:14 ID:???
>>951
「最新」だとか「最初」だとかを判断するための項目は用意してあるんだろうな?

>>952
ダウンローダをぐぐってインストールして使うほうがよっぽど手軽で早い
ってか話聞く限りローカルPCでPHP動かしてるわけでもないんだろ?
なんで「webアプリ」にそんな作業させようと思うんだか。。。
954951:04/05/16 22:16 ID:???
サイト調べてもワカラン。

暫定的にIDフィールド(まぁINTの10桁位で)を作って

データが更新されるたびにIDもカウントすりゃいいんだけど、それだとデータを削除したりするとIDはそのままで連続性なくなるし...

基本分かってねーとつらいっすな。誰か教えれ。
955nobodyさん:04/05/16 22:23 ID:???
>>954
DB板においで。
とは言っても基本的なことも分かってなさそうなのでそっちでも話が通じるかどうか疑問だな。
安いやつでいいから本を買ったほうがいいぞ。
956nobodyさん:04/05/16 22:28 ID:???
>>954
そもそも連続性がなくなったら困るのか?
957nobodyさん:04/05/16 22:29 ID:???
てか、連続性がなくなっても困らないIDを用意すればいいし、
そもそも削除しても連続性を維持する方が面倒だな。
958nobodyさん:04/05/16 22:30 ID:???
>>951
>次の10レコードのみ取り出す とか
(゚Д゚)ハァ?
959951:04/05/16 22:30 ID:???
ワリと新しめのSQL本を古本屋で買うことにする。
とりあえずIDフィールド作っておく。データ削除したらUPDATE文使ってIDフィールドに1から連番ふればよさげ。
960nobodyさん:04/05/16 22:32 ID:???
limit使え。
PHPとSQL文で望んでいることはできる。
961951:04/05/16 22:33 ID:???
>>958
わかんだろ、そんくらい?
ブラウザで次をクリックしたら次の10レコードを表示するんだよ。チンカスめ。
962951:04/05/16 22:41 ID:???
LIMIT-OFFSET句(セッション管理)

LIMIT-OFFSET句はPostgreSQL特有の句で、検索結果の途中から指定件数分表示させる場合に用います。OFFSET句は0(ゼロ)からスタートします。

limit 表示件数 offset 表示開始

■テーブルtblitemの最初の5件のみ全フィールドを検索(表示)

select * from tblitem limit 5;
■テーブルtblitemの5番目からのレコードの全フィールドを検索(表示)

select * from tblitem offset 4;

■テーブルtblitemの5番目から5件分のレコードを全フィールドを検索(表示)

select * from tblitem limit 5 offset 4;


PHPと組み合わせる(つーか最初からPHP)と可能ですね。>>960様、ありがとう。

でもPHP使わずにlimit文のみで 最後のレコードから5件分のレコードを表示 とか表記出来ますか?

いや、DBの基本分かってないから厨房質問ですが...
963nobodyさん:04/05/16 22:43 ID:???
>>959
ナニを元に連番を振るんだ?
適当でいいのなら別にorder byで整列させる意味もねぇぞ。

>>960
オトコならCURSOR
964nobodyさん:04/05/16 22:47 ID:???
>IDフィールドに1から連番ふればよさげ。
更新した時間でも突っ込んどけ。
965951:04/05/16 22:49 ID:???
>>963
元々は XからXXまでのXX件のデータを表示 させたいってとこから始まって、

なんらIDつけろヴォケ って言われたから 付けてみたんだよ。連番に意味はねー。
前出のlimit文のようなのあるんなら付けたくもなし。
966nobodyさん:04/05/16 22:50 ID:???
>>965
Limit句はorder by で整列させておかないと意味がねぇYO
967nobodyさん:04/05/16 22:52 ID:???
ついでに言うと、整列して初めて前から何番目とか後ろから何番目って意味があるんじゃ。
968nobodyさん:04/05/16 23:03 ID:???
何にせよPHPは関係なくなってきたな。データベースの話はDB板でいいだろ?
「SQL質疑応答スレ」
http://pc5.2ch.net/test/read.cgi/db/1056973582/
「PostgreSQLのことならここで聞け」
http://pc5.2ch.net/test/read.cgi/db/1056960249/l50
969960:04/05/16 23:04 ID:???
PostgreSQLか。
初めにDB名も書いてくれな。
DBによってできることできないことがあるから。

SQLに関しては板違いなんでDB板で訊いとくれ。

今回、参考にしたページはここ。ガンガレ
ttp://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/psql_k09.htm
970951:04/05/16 23:07 ID:???
激しく板違いを謝罪します。
ではガンガッてきます。
971951:04/05/17 00:02 ID:???
order by time desc offset 0 limit 10

更新時間を元に整列して希望通りのものが出来ました。
結果的に荒らしてしまったことをお詫びします。皆様ありがとうございました。

m(_ _)mペコリ
972nobodyさん:04/05/17 02:26 ID:???
自分が借りてるレンタルサーバーは
「MySQLなどデータベースとの連携が得意なPHPをご利用いただけます」
って明記してあるんだけど、あくまでPHPが使えると言っているのであって
「データベースが使える」とは一言も言っていないんだよね(苦笑)

共有サーバーなんだけど、あとからMy SQLとか入れて使えることってできるのかな?
まだまだ初心者だからデータベースを使えるまでの知識がないけど
将来的には使ってみたいと思うし…
973nobodyさん:04/05/17 03:21 ID:???
>>972
そのサーバがあんたの管理下にない限り無理。
974nobodyさん:04/05/17 12:18 ID:ydUZsH3f
return で戻す値を、arrayの要素を持ったまま返すとかできますか?
975nobodyさん:04/05/17 12:29 ID:???
>>974
やってみてから訊け
976974:04/05/17 12:47 ID:ydUZsH3f
やって出来ませんでした
977nobodyさん:04/05/17 12:57 ID:???
できねーわけない
978974:04/05/17 12:58 ID:ydUZsH3f
>977
ありがとうございます。
それだけ分かれば後は自分で調べます。
979nobodyさん:04/05/17 13:10 ID:???
>974-978
つり…か?
980nobodyさん:04/05/17 16:36 ID:???
>>944
ひっそりと流されてるので、俺の知ってる限りのことをレスすると。

PHPではSAXパーサやDOMパーサを使うらしい。
SAXはシーケンシャル、DOMはランダムアクセス。
DOMはサーバーによって使えないことがあるが、SAXパーサは大抵使えるんじゃないかな。

なんか間違ってたら指摘キボン
981nobodyさん:04/05/17 16:37 ID:???
↓あと、次のひと次スレお願いします。
982nobodyさん:04/05/17 16:50 ID:???


       ヽ(´д`)ノ
   ガク     (   )   ガク
         ∬ノ ̄ヽ ∬

983nobodyさん:04/05/17 18:20 ID:Pjy4cXaE
数値の桁数を割り出すにはどうすればよいでしょうか?
1だったら1
10だったら2
100だったら3といった具合です。
984nobodyさん:04/05/17 18:37 ID:???
php -r '$i=100; echo strlen((string)$i);'
985nobodyさん:04/05/17 18:39 ID:???
>>984
どうもありがとう
986984:04/05/17 18:40 ID:???
マイナスの時は自分で考えな
987nobodyさん:04/05/18 01:27 ID:???
スレ違いかもしれませんが、どこで聞いていいのかわからなかってので・・・

PHP&MySQLの環境なんですが
MySQLの文字コードがeucの設定になっているようなんです。
今度携帯からアクセス出来るようにしようと考えてるのですが
携帯はSJISのみという制限があって困ってます。
このままだと文字化けしますし、レン鯖なので設定を変えることも出来ません。
PHPで何とかできる物なんでしょうか?
988nobodyさん:04/05/18 01:31 ID:???
出力するときにsjisに変換するとか
989nobodyさん:04/05/18 01:32 ID:???
mb_http_ouput("sjis");
990nobodyさん:04/05/18 01:34 ID:???
>>987
DBから受け取る時はSJISへ変換
DBへ書き込む時はEUCへ変換でOK
991nobodyさん:04/05/18 01:34 ID:???
mb_http_output("sjis"); //訂正
992987:04/05/18 02:10 ID:???
即レスありがとうございます。
現在やってみてるんですが、文字化けしたままです。
検索で調べていますが、どうもうまくいきません。
アドバイスなどありましたら宜しくお願いします。
993987:04/05/18 02:17 ID:???
文字化けするのはMYSQLから引っ張ってきたデータのみなんですが
この場合はSJISに変換できないんでしょうか?
994987:04/05/18 02:39 ID:???
ちと面倒ですが出力する前に
$str = mb_convert_encoding($str, "sjis", "euc");
をはさんで解決しました。
全角スペースだけは文字化けしましたが。
995nobodyさん:04/05/18 03:32 ID:???
>>994
SJISに変換して全角スペースが文字化けするって事は
DBの中にある全角スペースがSJISになってしまってるとか
996nobodyさん:04/05/18 06:34 ID:???
↓次スレ
【PHP】質問スレッドpart17【php】
http://pc5.2ch.net/test/read.cgi/php/1084781699/

>>984
キャストしなくてもOK
echo strlen((int)$i);
でも通る。先頭の0を取れる?
997nobodyさん:04/05/18 21:02 ID:???
997
998nobodyさん:04/05/18 21:03 ID:???
998
999nobodyさん:04/05/18 21:03 ID:???
999
1000nobodyさん:04/05/18 21:04 ID:???
1000!!
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。