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

【PHP】質問スレッド Part7

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/02/06 05:56ID:???
■ 本家
 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-10あたりに
0693nobodyさん03/03/21 17:59ID:???
>>691
>PHPでも
では
0694PHP長所新車03/03/21 18:34ID:F7U+UqHW
質問です。だれか教えてください。お願いします。
フォームにTESTという文字を入力して決定ボタンを押したら、
内容がTESTと書いてあるnantoka.txtというtxtファイルを
作成するPHPはどのように作ればいいのでしょうか?
説明めちゃくちゃ下手糞でごめんなさい。
要はフォームに「なんじゃこりゃ」と入力したら
nantoka.txtが作られ、それを開くと「なんじゃこりゃ」
と書いてあるようにしたいんです。

まじでだれか教えてください。
なんかわけのわからない質問ですいません。
0695nobodyさん03/03/21 18:53ID:???
>>694
どこまで作ってどこで詰まったのか書くよろし。

1. フォームデータ受け取り
2. ファイルオープン
3. ファイル書き込み
4. ファイルクローズ
5. 画面表示
0696nobodyさん03/03/21 18:54ID:???
>>694
意味はわかるがそれくらい自分で勉強できないでプログラムを趣味や仕事にするのは危険だと思われ。
安易に答えを提示する「初心者つぶし」からの回答でも待ってください。
0697PHP長所新車03/03/21 19:03ID:F7U+UqHW
>>695-696
正直言うと、694自身も今作成中のスクリプトの一部で
これに関してはまったく作ってないです。
3が特に分からないです。
PHPをかいてるのが今日が初めてなんで、
695さん696さんが思っている以上にかなりの知識のなさです。
コンピュータ関係のバイトで、あるスクリプトを作って
くるように言われてて、試行錯誤いろいろ調べ、本も見たのですが、
上記の部分は現時点ではどうすればいいのか結局
わからなかったので、ここに書かせていただきました。
0698デブおた山崎渉 03/03/21 19:05ID:???
  ∧_∧
  ( ´;^;ё;^;)<これからも僕を殺して下さいね( ´;^;ё;^;)。
=〔~∪ ̄ ̄〕
= ◎――◎                     デブおた山崎渉

0699PHP長所新車03/03/21 19:19ID:F7U+UqHW
どんな関数を使うかだけでも教えていただけないでしょうか?
0700nobodyさん03/03/21 19:20ID:???
>>699
unlink()
0701nobodyさん03/03/21 19:25ID:???
>>699
マニュアル ( http://www.php.net/manual/ja/ )
のファイルシステム関数あたりを読んで下さい
それで分からなかったら諦めて下さい
0702nobodyさん03/03/21 19:25ID:???
>>694
最初にこの辺を参考に、htmlのformからphpスクリプトへの
入力データの受け渡し方法の基本を学び、
http://www.php.net/manual/ja/tutorial.forms.php

次に、fopen()で生成したnantoka.txtというファイルに対して
http://www.php.net/manual/ja/function.fopen.php
fputs()でformから受け取った入力データの実際に書き込む。
http://www.php.net/manual/ja/function.fputs.php
あとはスクリプトが終了すると、自動的にクローズされるのだが
fclose()でファイルポインタを明示的に閉じるのが筋であろう。

基本的なことなのでgoogleでPHPと検索語を組み合わせると
丁寧なチュートリアルが多分どっかに転がってると思います。
070370203/03/21 19:29ID:???
>697
>694自身も今作成中のスクリプトの一部で
その書き方だとニヤッとする香具師が折り以外にも多数いると思う(笑
まあ、さっきの関数の使い方を調べて見れ
0704nobodyさん03/03/21 19:32ID:???
>>699
fairu_kakikomi("hoge");
0705PHP長所新車03/03/21 19:32ID:F7U+UqHW
>>700-702
なるほど。丁寧にありがとうございます。
おっしゃもうひとふん張りするか。
本当にどうもでした!!
>>703
なんででしょ?
0706nobodyさん03/03/21 19:41ID:5jNBqUYZ
.netに負けるな!
0707nobodyさん03/03/21 19:51ID:???
>>706
ASP.netに負けるな。とすべき。
0708nobodyさん03/03/21 20:39ID:wEEgu7v2
$tmplの中の<loop>***</loop>で囲まれた値を取り出したい。
Perlではこんな風にやってたんだけど、PHPではどないにするんだ?

$tmpl =~m[<loop>(.*?)</loop>]si;
$head = $`;
$loop = $1;
$foot = $';
0709nobodyさん03/03/21 21:00ID:???
>>708
http://www.php.net/manual/ja/function.preg-match.php
0710初心者03/03/21 23:26ID:???
mb_ereg_replace()関数で \0 で置換する文字列を
加工する事ってできる?

$msg = "結果:test1";
$msg = mb_ereg_replace(':test[^<>[:space:]]+[[:alnum:]]{0,2}',"<a href=\"\\0\">\\0</a>",$msg);
print($msg);
結果<a href=":test1">:test1</a>

本当は以下の様にしたい。
結果<a href="1">:test1</a>
0711nobodyさん03/03/22 02:08ID:ezlaWtaq
ブラウザからローカルディスク内のテキストファイルを任意に選択でき、
そのファイル全体を文字列に格納するにはどのようにすればいいのでしょうか?
0712nobodyさん03/03/22 02:13ID:???
>>711
…あぷろだの事かい?
0713nobodyさん03/03/22 02:24ID:???
>711
普通にuploadしたファイルを開いて読んで変数に代入してください。
んなもん質問する事ではないよ。
0714初心者03/03/22 02:30ID:???
ereg_replace()の中で$1や$2の使い方を
分かりやすく説明出来る方います?

http://www.php.net/manual/ja/function.ereg-replace.php
>例 1ereg_replace()の例
>$string = "This is a test";
>echo ereg_replace (" is", " was", $string);
>echo ereg_replace ("( )is", "\\1was", $string);
>echo ereg_replace ("(( )is)", "\\2was", $string);

これじゃ訳わかんねーよ(´・ω・`)ショボーン。
0715 ◆Kiss.FX29M 03/03/22 02:37ID:???
>>710
なぜ故に\0なのか? なんか勘違いしていないかい。
もう少しマニュアルを嫁

$msg = mb_ereg_replace(':test[^<>[:space:]]+([[:alnum:]]{0,2})',"<a href=\"\\1\">\\0</a>",$msg);
これでいける筈。
0716nobodyさん03/03/22 02:39ID:???
いつからここが初心者スレになったのかと(ry
0717 ◆Kiss.FX29M 03/03/22 02:43ID:???
なんか最近かぶりギミー

>>716
要点が絞られていれば、俺的には許せる範囲なんだけどな。
0718 ◆Kiss.FX29M 03/03/22 02:59ID:???
>>715
よくみりゃ間違っている。マッチさせる意図がいまいち不明なのだが、
$msg = mb_ereg_replace(':test([^<>[:space:]]+[[:alnum:]]{0,2})',"<a href=\"\\1\">\\0</a>",$msg);
かな。
0719nobodyさん03/03/22 03:02ID:???
>>717
でも、名前欄に初心者と書くのは許せんな。
初心者なら初心者のスレが用意されているというのに…。
072071103/03/22 03:18ID:ezlaWtaq
(ウェブ)ブラウザからファイルを選択というのは、
ファイル選択のためのブラウザからローカルフォルダの
ファイルを選択するということです。

フォームを使って、ファイルを選択すると、フルパスが得られますが、
そのまま、file_get_contents()に引き渡していいのでしょうか?
0721 ◆Kiss.FX29M 03/03/22 03:25ID:???
>>719
まぁね。
先程MLにも HELP! と書かれた投稿があったけど、
なんかかまってクレクレ金正日的瀬戸際投稿みたいだしなぁ。(w
0722commiter03/03/22 03:29ID:???
>719
それをnobodyで書く香具師も同じレベルだ罠
0723nobodyさん03/03/22 03:35ID:???
>720
>ファイル選択のためのブラウザからローカルフォルダの
「ファイル選択のためのブラウザ」って?

>そのまま、file_get_contents()に引き渡していいのでしょうか?
やってミレ、どうなる?phpがどういう場面で使われる言語かを理解し
ていれば聞くまでもない質問と思われ。
0724nobodyさん03/03/22 04:00ID:???
phpでスレッド使うにはどうすれば良いのでしょうか?
fsockopenが妙に遅いので並列化したいのですけれど。
072571103/03/22 04:02ID:ezlaWtaq
>「ファイル選択のためのブラウザ」って?
うまく言えませんが、たとえば、フォームで、
<input type="file" name="doc_file"/>
とすることによって、ファイルを選択できるようにすることです。
0726nobodyさん03/03/22 04:29ID:???
>725
$_FILES['doc_file']['name']でアップロードされたファイル名が取得できるから
それにphp.iniで設定してるテンポラリパスでフルパス保管してfile_get_contents()に渡せばok。
0727nobodyさん03/03/22 09:41ID:???
>>724
http://itb-tech.itboost.co.jp/phptips/view.php?fCID=21#71
こんなんでいいかな
0728PHP長所新車03/03/22 11:18ID:p2AmiiWs
昨日はどうもです。
さて、昨日はあれから上手くできて非常にハッピー気分で
家路についたのですが、
今日、またバイト先でテンヤわんやになっています。

はっきり言います。
.forwardを自動作成するスクリプトを作ろうと思っていました。

んで、昨日の方法で.forwardを自動作成するのには成功しました。
ただ、それをホームディレクトリに移すのに非常に困っています。

単純にパーミッションを777にすりゃいいやと思っていましたが、
ホームディレクトリを777にするのはセキュリティとかの面から非常に厳しいものなんでしょうか?
そこらへんの概念がまだよく分からなくて。

スクリプトの流れを説明すると、
フォーム入力(メールアドレス)
↓
ファイルオープン
↓
ファイル書き込み(フォームで入力したメールアドレス)
↓
ファイル閉じ
↓
ファイルを.forwardという名でコピー

こんな感じで考えてたんですが、
みなさんから見て、このスクリプトはどうなんでしょう。
クソなのは自分でも分かりますが汗

だれかご返答お願いします。
072968203/03/22 11:35ID:crW9s9K2
>726
ありがとうございます。成功しました。

$_FILES['doc_file']['name']を全く知りませんでした。
勉強不足ですね。
0730nobodyさん03/03/22 12:10ID:???
>>728
なぁ、PHPって誰の権限で動いてるの? 
0731PHP長所新車03/03/22 12:22ID:p2AmiiWs
>>730
私です
0732nobodyさん03/03/22 12:23ID:???
>>731
・・・何でそんなみょうちくりんな設定に?
0733PHP長所新車03/03/22 12:28ID:p2AmiiWs
>>732
すんません、質問の意味はきちがえてるかもしれません。
ていうか質問の意味がよくわからなかったりするような気がします。
いや、マジ初心者ですんません。」
0734PHP長所新車03/03/22 12:38ID:p2AmiiWs
権限てなんでしょう汗
0735nobodyさん03/03/22 12:39ID:???
phpinfoで調べれ。
0736nobodyさん03/03/22 12:52ID:???
PHP/CGIでsuEXECにすれば安全です
0737PHP長所新車03/03/22 13:01ID:p2AmiiWs
phpinfoのどこを見ればいいんでしょう。聞いてばかりですんません
0738PHP長所新車03/03/22 13:37ID:p2AmiiWs
>>736
お〜〜これつかったらいけそうですね。
0739nobodyさん03/03/22 13:39ID:???
>>734
PHP以前の話。LinuxなりUNIX関係の資料読んで出直して来い。
0740PHP長所新車03/03/22 14:19ID:p2AmiiWs
>>739
権限の意味はもち分かるよ。
ただ、>>730の権限の意味がわからそ
0741PHP長所新車03/03/22 14:24ID:p2AmiiWs
.forwardをホームディレクトリに作ろうとしたら、
ホームディレクトリのパーミッションを変更するしかないですよね?
0742PHP長所新車03/03/22 14:28ID:p2AmiiWs
でもレンタルサーバなんかの場合はホームディレクトリの
パーミッション変更できない場合も多々ありますよね。
そこんところどうなんでしょう。
0743nobodyさん03/03/22 15:34ID:???
あらかじめ、.forwardを作っておき、書き込み宣言を与えていればいいじゃんか。
0744PHP長所新車03/03/22 15:41ID:p2AmiiWs
>>743
なるへそ!!
頭イイ!!
0745PHP長所新車03/03/22 15:44ID:p2AmiiWs
てことは
ディレクトリのパーティションが700でも
その下のファイルが777だったら
そのファイルを書き換えることができるのですか?
0746PHP長所新車03/03/22 15:45ID:p2AmiiWs
間違えた恥
パーティション→パーミッション
0747nobodyさん03/03/22 15:45ID:???
>>743
なぁ、otherに書き込み権限のある.forwardなんて怖すぎないか?
0748PHP長所新車03/03/22 15:47ID:p2AmiiWs
>>743
それもそうじゃん!!ってか俺はあぽですか?
0749nobodyさん03/03/22 15:49ID:???
こんちわっす、2ch学園web板幼稚園の質問ですけど
教えて下さい。たのんまっす!
no int, hougaku varchar
テーブル名 hoge
no|hougaku
--|------
10|higasi
20|nisi
30|minami
40|kita
こんなテーブルがあったとします。
$houi = "kita"←仮にテーブルにある文字を設定します。
$sql = "select hougaku from hoge where hougaku = 'houi' ;";
$result = pg_query($sql) ;
if num_rows($result) !=1{
print ("そんな方角はありません。") ;
}
ここまで、$houi に代入された文字がテーブルに有るか無いか分かると思います
もしここで正しく$houiにkitaという文字がセットされたとしたら
noの40という数字が導きたいのだがどうしたらいいかわかりません。
続きのプログラムはどう書いていいのか分かりません。
教えて下さい。

0750nobodyさん03/03/22 15:53ID:???
こんちわっす、2ch学園web板幼稚園の質問ですけど
こんちわっす、2ch学園web板幼稚園の質問ですけど
こんちわっす、2ch学園web板幼稚園の質問ですけど
こんちわっす、2ch学園web板幼稚園の質問ですけど
こんちわっす、2ch学園web板幼稚園の質問ですけど
こんちわっす、2ch学園web板幼稚園の質問ですけど
こんちわっす、2ch学園web板幼稚園の質問ですけど
こんちわっす、2ch学園web板幼稚園の質問ですけど
こんちわっす、2ch学園web板幼稚園の質問ですけど
こんちわっす、2ch学園web板幼稚園の質問ですけど
0751nobodyさん03/03/22 15:54ID:???
$sql = "select hougaku from hoge where hougaku = '$houi' ;";
ですた,すまそ。
0752nobodyさん03/03/22 15:56ID:???
>>749
select id,hougaku from hoge where hougaku = 'houi'
0753nobodyさん03/03/22 15:57ID:???
>>749
マルチしてんじゃねえよ
SQLの問題。
select no,hougaku from hoge where hougaku = 'houi'
>>750
ウザイ
0754nobodyさん03/03/22 16:01ID:???
PHPの処理内に

書き込み宣言を与える
.forwardの編集
書き込み宣言をなくす

でいいような。
chmodが使えればだけど…
0755nobodyさん03/03/22 16:02ID:???
>>754
なぁ、パーミッションを誰でもほいほい書き換えられるならパーミッションの意味はないわけで。
0756nobodyさん03/03/22 16:09ID:???
>752ありがと
select id,ってのがちょっと分かんないんだけど?
Ssql = (" select no,hougaku from hoge where hougaku = 'houi'");
こうでいいっすか?
0757PHP長所新車03/03/22 16:14ID:p2AmiiWs
>>754
それだ!!!!!












>>755
それもそうだ・・・。鬱だ・・・。
0758nobodyさん03/03/22 16:16ID:A41eVY2R
★男はココを見るべし★女と金とサンプルムービー★
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
http://www.pink-angel.jp/betu/linkvp2/linkvp.html
0759nobodyさん03/03/22 16:23ID:vlHFEXy6
初心者質問で悪いんですが
フォームタグや直接URLに付加したパラメータを取得して表示できません。
printでもechoでも駄目だったんですがどうしてなんでしょう?
取得して表示は単にprint $test; てな1行でいいんですよね?
anHttpdと組み合わせています。
0760nobodyさん03/03/22 16:23ID:???
できましたありあがと
0761PHP長所新車03/03/22 16:25ID:p2AmiiWs
今、ちょっと思ったんですけど、
.forwardって空白にしておいたら転送はされずに
.forwardファイルがない状態として扱われるんですかね?
0762nobodyさん03/03/22 16:26ID:???
>>759
質問の意味がわからんが、$_GET[test]、$_POST[test] じゃ、あかんの?
0763nobodyさん03/03/22 16:28ID:???
>>759
とりあえずその古い本なりサイトなりを見るのはやめるべきかと。
0764nobodyさん03/03/22 17:10ID:???
そうか、もう春休みだからか・・・
0765nobodyさん03/03/22 17:11ID:???
>>764
はいはい、おめでとう。
0766nobodyさん03/03/22 18:45ID:???
春厨がいっぱい
0767nobodyさん03/03/23 11:57ID:???
>>761
大抵の実装はそう。だけどそれはPHPの質問ではニャイ
0768nobodyさん03/03/23 15:23ID:Cga2txVh
PHP-4.2.1 を cgi モードを使ってるのですが、 header() が動作しません。
#!/usr/bin/php を削除して
$ php index.php
だときちんと HTTP ヘッダを書き出してくれるのですが。
何が問題なのでしょうか?
0769nobodyさん03/03/23 16:38ID:y8MzfBLq
最近PHPをはじめた者ですが、質問があります。
C++とかのクラスだと、privateなどの制限された空間があるから
インターフェースであるメンバ関数の実装の必要性はあると思います。
一方でPHPは保護された空間がクラスには存在しないので、
メンバ関数の必要性はC++などよりも薄まるような気がします。
ここにおられる方はかなりPHPを使ってらっしゃると思いますが、
クラスにメンバ関数を実装するポリシーはどのように持ってますか?
メンバ変数への単純な代入にもメンバ関数を実装しますか?
それとも一定の操作を行った後にメンバ変数に代入を行う必要がある場合のみ、
メンバ関数を実装しますか?
自分は少し悩んでたりします。
今後の参考にしたいので、ご意見をお聞かせください。

マニュアルを読んだ限りクラスにprivateなどの保護が無かったようなので、こんな質問です。
もしかしたらクラスに保護の概念はありますか…?
あったら、全くもって見当違いの質問です。スミマセン。
0770nobodyさん03/03/23 18:19ID:???
>>769
ぼちぼちと。
0771nobodyさん03/03/23 18:24ID:YYgYrLyX
mb_convert_encodingの"EUC-JP"との"UTF-8"との変換がうまくいきません。
変換したい文字は「連邦」です。
困ってます。
0772nobodyさん03/03/23 18:25ID:???
>>771
>変換したい文字は「連邦」です。

SJISと。
0773nobodyさん03/03/23 18:26ID:???
>>772
くだらねぇこと言ってんじゃねぇよ。
0774nobodyさん03/03/23 18:28ID:???
>>773
>>771さん、見苦しいです。
0775nobodyさん03/03/23 20:19ID:???
>>771
関係ないけど、GoogleAPIの人?
077677303/03/23 20:23ID:YYgYrLyX
>>772さん
SJISがどう関係してくるのですか?

「表」(UTF-8)がクエリで来て、
$query = mb_convert_encoding($query, "eucjp-win", "UTF-8");
結果は「表」(UTF-8)のままです。

「表示」だと文字化けせずに「表示」(EUC-JP)と変換されます。

しくしく。
0777nobodyさん03/03/23 20:30ID:YYgYrLyX
776は771です。スマソ
0778nobodyさん03/03/23 20:36ID:YYgYrLyX
>>775
こんにちは。

SOAPが原因じゃなくてmb_convert_encodingに何かあるんじゃないかと。

ひょっとして私は激しく既出な質問をしているのでしょうか。。。

mb_detect_encodingが判定をミスってるということもあるのかもしれませんが…
0779nobodyさん03/03/23 21:52ID:???
>>769
PHP5待ちの為、クセをつける為に使ってますが何か?
0780nobodyさん03/03/23 22:02ID:???
($query, "eucjp-win", "UTF-8")ここがちがう
0781nobodyさん03/03/24 00:16ID:???
mb_internal_encoding("UTF-8");
とかしてみたら?
0782nobodyさん03/03/24 01:36ID:x7gONe4m
>>780

1.UTF-8 → eucjp-win → UTF-8
2.UTF-8 → EUC-JP → UTF-8
3.ISO-8859-1 → eucjp-win → ISO-8859-1
4.ISO-8859-1 → EUC-JP → ISO-8859-1
5.mb_internal_encoding("UTF-8");エンコードなし

あいうえお
1.オケ
2.オケ
3.ダメ
4.ダメ
5.オケ

連邦
1.ダメ
2.ダメ
3.ダメ
4.ダメ
5.オケ

何か根本的に見忘れがある予感。。。

>>781
たしかにいいんですが、
DBがEUCだった場合同じ問題に出くわすはめになるです。

もう寝よ。
0783 ◆Kiss.FX29M 03/03/25 01:31ID:???
PHP-users ML ネタですが、スレ立て依頼出したら立っちゃった。
しかし、意外(?)と延びないのでこちらにも貼っておきます。

【特許】今では一般的なCookieによるセッション管理に関する特許が成立していた
http://book.2ch.net/test/read.cgi/bizplus/1048507777/
0784nobodyさん03/03/25 13:24ID:???
cookie&フレーム気持ち悪くて、使う気がしない厨キタ━━(゚∀゚)━━!!
0785nobodyさん03/03/25 13:37ID:CVcoKJbJ
>>769
>クラスにメンバ関数を実装するポリシーはどのように持ってますか?
>メンバ変数への単純な代入にもメンバ関数を実装しますか?

インターフェースになるメンバ関数とは getter, setter メソッドのことでいいのかな?
自分の場合ですが、(他の言語でもそうなのだけど)
そのクラスを利用する人がメンバ変数を参照する必要があるかどうかを基準に判断しています。

public なメンバ変数へのアクセスのみ実装しています。
クラスのインスタンスから直接メンバ変数にアクセスするようなコードはさけるため。
private なメンバ変数へは、外部から参照する機会少ないはずなので、
実装するメリットはあまりないと思います。

0786nobodyさん03/03/25 14:34ID:???
スレッドを切らないで&全角なら全角でごちゃ混ぜはやめて厨キタ━━(゚∀゚)━━!!
0787nobodyさん03/03/25 14:46ID:???
で、そんだけ偉そうなこと書いておいてそんな厨な質問でつか…
0788nobodyさん03/03/25 18:37ID:???
え〜と
hogehoge.php?a=0123
とすると
$aに0123がセットされますよね
某所で
hogehoge.php?=0123
となっているのを発見したのですが
0123は何処にセットされるのですか?
0789nobodyさん03/03/25 18:39ID:???
>>788
>$aに0123がセットされますよね
それ以前に古い知識です。それ。

$_GET[""]とかじゃないの?しらんけど。
0790nobodyさん03/03/25 22:21ID:uCxA2hMQ
プロバイダに間借りしてサーバサイドプログラムを
書きたいのですが、PHPをサポートしているプロバイダを
教えていただきたいと思います。
(プロバイダとの契約は個人ではなく企業向け契約です)

よろしくお願いします。
0791nobodyさん03/03/25 22:23ID:???
>>788
$_SERVER["QUERY_STRING"]

#うーん、自前でパースしないで済むので最近のプログラマは恵まれとるのぅ
もともとGETでURLに続けて送った文字列はサーバの環境変数(QUERY_STRING)に
そのまま放り込まれ、スクリプトの変数とかに代入したかったら自前で
パースするしかなかったんよ。
それがPHPとかは、Webプログラミング向きに変数への代入が楽なように
システム側が面倒見てくれるようになっている。
件の例だと$_SERVER["QUERY_STRING"]に、=0123という文字列が入ってる。
phpinfoを出力するスクリプト書いて、phpinfo.php?=0&a=1&b=2 とかして
どうなってるか見てみそ。
0792nobodyさん03/03/25 22:25ID:???
>>791
POSTで送ったXMLいじられて泣きそうになったこともあったけどな。
■ このスレッドは過去ログ倉庫に格納されています