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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん04/09/16 18:17:37ID:/HV017tY
・PHP全般の質問スレです。
・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。


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

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

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

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

過去スレ, 関連スレ等>>2-4
0331nobodyさん04/09/22 15:14:36ID:???
>>328
前の年のフィルタの一部を利用するならそうならなくもない。
ただ、親クラスがどこなのかわかりづらくなって、美しくないのであまりお勧めはできない。
abstructかinterfaceをひとつ用意して、各フィルタはバージョンごとにそこから派生させるのを基本としたほうがいい。
どうしても必要なら、孫ぐらいは仕方ないかもしれないけど。

あと、前年フィルタのうち次に持ち越されると部分が必ずあるなら、 構造解析からやり直したほうがいいかもな。
0332nobodyさん04/09/22 15:21:29ID:???
>>330
mbにすればいいじゃない
033333104/09/22 15:30:35ID:???
ごめん、interfaceはわすれてくれ。PHPじゃ意味ないな。

ちなみに>328のやり方
class FilterFolder {
  var $element;

  function FilerFolder(){
    $this->element = array();
  function attach($filer){
    $this->element[] = $filer;
  }
  ・・・insertとかdeleteとかメソッド・・・
  function checkIsOK($inData){
    for ($this->filters as $filter) {
      $filter->checkIsOK($inData) or return false;
    }
     return true;
  }
}

とかやっておけばOOPらしいかな。
0334nobodyさん04/09/22 15:39:46ID:???
>>333
326とかのコードをコピペした部分があるとは思うんだが、
もうちょっとコードを丁寧に書いてくれないと分かりづらい。○| ̄|_ i|||
0335質問しなおします。04/09/22 15:40:26ID:shVA5n05
$mail = "[email protected]"
$subject = "件名:秩父の秋";
$msg = "メールの内容秩父の秋はなんたらかんたら";
$header = "色々";
mail($mail, $subject, $msg, $header);

↑これを実行すると、相手の$subject(件名)の内容が文字化けて届くんですけど
どのようにしたら、文字化けせずに件名が届くようになりますか?
ただし、mb_send_mailを使わずに


>>332
mb_send_mailのことですよね?
それが、mb_send_mailは使えないみたいなんで。お答えありがとうございます

0336nobodyさん04/09/22 15:47:36ID:???
>>335
キーワードはBase64
033733104/09/22 16:16:50ID:???
>>334
むしろ、}が足りなかった_| ̄|○ >326のやつ借りてきてくれ
0338nobodyさん04/09/22 16:42:59ID:???
質問させていただきます

未だにHTMLでのHPが多いのは何故ですか?
PHPは人気がないのですか?使いにくい?知られてないのか
何か理由がありますか?
0339nobodyさん04/09/22 16:46:10ID:???
>>338
理由はおまいの頭の中に
0340nobodyさん04/09/22 16:46:41ID:???
>>338
とりあえずもう少し勉強してからその問題考え直してみれば?
0341軟式PHP04/09/22 16:46:45ID:???
>>338
教えてあげよう。CGIが必要ない場合はHTMLが一番いいんだよ。
何事もシンプルが一番いいだろ?
0342nobodyさん04/09/22 16:47:24ID:???
>>338
マークアップ言語とスクリプト言語の違いを勉強してきなさい。
0343nobodyさん04/09/22 16:49:04ID:???
>>338
HTML に偽装してるとか裏でアプリ動かしてるとかは考えないのか?

例えば HTML 形式 ならブラウザのキャッシュが殆ど自動的に働くが
PHP でキャッシュを効かせられるような、ちゃんとしてる奴はあんまりいないんじゃないかな
HTTP ヘッダについてしっかり学ぶ必要もある。
0344nobodyさん04/09/22 16:55:03ID:???
では、、
>>1にあるPHPマニュアルで
http://www.php.net/FAQ.php
とかは、何故拡張子がphpなんですか?

htmlで作ってるのに、phpとは理由があるのですか?
0345nobodyさん04/09/22 17:01:10ID:???
>>344
んだから、そのページが静的に作られてると判断した理由はなあに?
.php なページをブラウザで表示してソースを見ても <?php 〜 ?> はないよ。
0346nobodyさん04/09/22 17:01:12ID:???
>>344
よくばりだなぁ
これだけ>339-343の釣果じゃまだ満足しないのか
0347nobodyさん04/09/22 17:03:48ID:???
>>344
根本的なところから勉強した方がいい。

htmlのコンテンツの生成にPHPを使ってるんだよ。
ただ毎回生成するのがいいのか、別のタイミングで事前に生成しておくのが良いのかは
それぞれのシチュエーションによって異なる。件のページはphpのデモンストレーションの
意味合いもあって動的生成。

あと拡張子がhtmlだから動的生成ではないとか、逆にphpだからphpを使ってるとは限らない。
設定の仕方でいかようにも。そこらのサイトなんかだと本当のことは中の人しか判らない。
0348nobodyさん04/09/22 17:13:32ID:???
厨房にマジレスカコイイ
0349ぼるじょあ ◆yEbBEcuFOU 04/09/22 17:15:56ID:???
(・3・) エェー 質問に答えられなくてヤキモキしてたお子茶間が溢れ出したんだNE!
0350nobodyさん04/09/22 17:19:51ID:???
ぼるじょあさんはプログラミングもできるのか
知らなかった…

すこし関心した
0351nobodyさん04/09/22 18:09:14ID:Spt3uBKt
フォームから入力された項目に対して,
必須項目に入力されているかどうか,
数字のみフィールドに対して数字以外が入力されているかどうか・・・
等々を判断してくれるような汎用ライブラリとかはありませんか?

自分でつくろうとしたんですが,radioやcheckboxやselectなど面倒くさくなったのです・・・
035235104/09/22 18:16:58ID:Spt3uBKt
あ,すみません.
追加なのですが,レンタルサーバなもので
PEARのHTML_QuickFormなどは使えないのです・・・
単純にrequireして使えるライブラリやクラスが理想なのですが.
0353nobodyさん04/09/22 18:23:31ID:???
>>351
単体で色んなのやフレームワーク独自のがあるけど
有名どころだとPEARのHTML_QuickForm
http://pear.php.net/package/HTML_QuickForm
0354nobodyさん04/09/22 18:24:36ID:???
>>352
PEARは普通にincludeして使える。
PECLとかと間違えてない?
035535104/09/22 18:28:29ID:???
>>353-354
ありがとうございます!PEARって使えるんですね!

色々彷徨っていて
ttp://lfsmart.itbdns.com/
↑のような良さそうなのも見つけたんですが,
とりあえずリソースの多そうな HTML_QuickFormから
チャレンジしてみます.
0356nobodyさん04/09/22 19:25:15ID:???
質問ですPHPをマスターしたんですが何に使えばいいですか?
0357nobodyさん04/09/22 19:30:16ID:???
そんなエサに俺様がクマー
0358nobodyさん04/09/22 19:35:41ID:???
>356
PHPの本を出版だー
0359nobodyさん04/09/22 19:50:11ID:???
>>356
このスレ専属の回答者になってくれ
0360nobodyさん04/09/22 19:51:09ID:???
じゃあ、手始めに>>356の質問に答えてもらおう。
0361nobodyさん04/09/22 19:57:29ID:???
マスターになるのは結構簡単だよ。

「こんなスクリプト組んでみたんですけどどうですかね?」
「へー、ゴキゲンだねぇ」
0362nobodyさん04/09/22 20:04:55ID:WbLCczlE
「へー、ゴキゲンだねぇ」
0363nobodyさん04/09/22 20:10:01ID:???
併合期限だねぇ
0364TT04/09/22 21:10:03ID:wzCQpIRe
mail()関数でのエラーの件(>316です)

>317さん
自分のPC上のローカルサーバーでテストをしていて、普段E-メール送信に
使っているSMTPサーバ名やポート番号をメールソフトのプロパティから
拾ってきてphp.iniに記述したんですけど。。。
普段自分のPC上のメールソフトからメール送信はしてるので、SMTPは稼動
してる環境だとは思うんですが・・・
0365nobodyさん04/09/22 21:41:19ID:???
SMTPに問題あり
0366nobodyさん04/09/22 22:10:34ID:???
>>364
>SMTPサーバ名を拾ってきてphp.iniに記述
は変じゃないの。ローカルのpathを記述でしょ。
リモートのSMTPを使いたいならPHPMailerとか使わないと
mail関数だと今のところ出せないと思うけど
0367nobodyさん04/09/22 22:50:30ID:???
まぁ、なんだ。
>>316と>>366は マニュアルのメール部分を読んでくれ。
使用OSを書いてないのでパス。
0368nobodyさん04/09/22 23:20:41ID:???
ああ、「Windowsじゃない」とは確かに明言してないな。
0369nobodyさん04/09/23 01:40:26ID:???
えろんなサーバーでX-Powered-Byヘッダがなくなってておもろかった。
0370TT04/09/23 02:45:45ID:wbKSUi7Y
364です
すみません、使用OSはWindows2000です。失礼しました!
マニュアルをもう一度確認してみます。
0371カポコン04/09/23 03:59:06ID:???
思えばウェブってのは新しいタイプのサーバーが出るたんびに
大きな動きになるよな。。。次に出るのはなんだろうか?
0372二階堂面一04/09/23 04:50:35ID:loTaUpM/
押忍!自分はPHP始めて数日の莫迦モノです。押忍!
開発環境はWindowsXP HOME、使用サーバはレンタルサーバ(PHP 4.3.8)です。

簡単にフォーム送信プログラムをイチから書いて動かしてみました。
フォームから受けた内容をそのままstripSlashes()でクォートを消して
mail()で送信してます。

Windowsの一般的なメーラー(Outlook Express、Eudora、Becky!)や
Macintosh(OS9系)の一般的なメーラー(Outlook Express)では問題は起きませんが、
Macintosh(OS9系)のEntourageのみ、件名・本文が空白になってしまいます。

誰かこの事象に対するTIPSをお持ちではないでしょうか。
よろしくお願いしますです、押忍!
0373nobodyさん04/09/23 05:00:25ID:???
>>372
多分、適正でない「生SJIS」かなんかで送信してんだろ。
0374nobodyさん04/09/23 07:15:06ID:???
教えて君で申し訳ないです。。。

Mac OS9.2.2 で、PHPのローカルテストをしたいのです。
ですが、検索しても出て来ません。
同じ環境の方はどうやってローカルでPHPを動かしているんですか?
0375nobodyさん04/09/23 07:18:18ID:???
いったい何を検索したの?
0376nobodyさん04/09/23 09:52:27ID:???
>>375 なんかもっと書き方もあるだろうに…
>>374 漏れはwinだから(´・ω・`)
0377nobodyさん04/09/23 10:10:38ID:???
PHP使いはアホばっかりやなw
0378nobodyさん04/09/23 10:31:29ID:???
と、アホが申しております。
0379nobodyさん04/09/23 11:46:01ID:???
>>371
ツッコミどころありすぎてスルーされまくってるな。。。
と慈悲の御心で反応。
0380nobodyさん04/09/23 12:29:45ID:3TpzK2e0
Aファイルの一部を書き換えする時て

1)AファイルのコピーtmpAを作成してそこから1行づつ読み込みループ
 変更しない場合はそのままAファイルへfgets
 変更する場合は文字列処理してAファイルへfgets
 仕上げにtmpAを削除

2)file(Aファイル)で一発読み込み
 配列ループで変更する場所だけ文字列処理
 Aファイルへ一発出力

処理速度やらメモリ効率やらなんやらでどっちがええやろか
まぁファイルサイズにもよるとは思うんけどファイルは1行60バイト前後で300行前後やね
0381nobodyさん04/09/23 12:30:40ID:3TpzK2e0
1)2)以外でもなんかええ方法あったら教えてタモ-レ!!
0382nobodyさん04/09/23 13:59:52ID:???
>>380
ベンチ取ってみればいいだろ
0383nobodyさん04/09/23 14:07:17ID:???
速度処理とメモリ効率は大抵トレードオフの関係にあるから
どちらが良いとは一概に言えない気がする
0384nobodyさん04/09/23 14:16:20ID:cIuxyfdR
どなたが教えてください。
藤という漢字だけではないのですが、
特定の文字が化けます。
何がいけないのでしょうか?

$test = '藤';
echo "{$test}<br>"; //正常に表示される
$test = mb_convert_encoding($test,'EUC-JP','auto');
echo "{$test}<br>"; //?に化ける
0385nobodyさん04/09/23 14:56:06ID:???
>>384
単に文字エンコーディングの検出に失敗しているだけじゃないの?
mb_convert_variablesの説明にもあるが、短い文字列では
エンコーディングの検出があやふやになるのは仕方が無いこと。
解決するには、(解決になってないが)文字エンコーディングを明示するか、
もっと長い文字列を与えるしかない。
0386nobodyさん04/09/23 15:52:26ID:???
phpのバージョンによってautoがまずいと
0387nobodyさん04/09/23 16:03:44ID:???
mb_convert_encoding($test,"EUC-JP");
0388nobodyさん04/09/23 16:14:58ID:+Z5r+lqe
レンタルサーバのPHPがCGI版でしかもregister_globals On
です。
.htaccessにて
php_flag register_globals on
をやったのですが、internal server error 500
になってしまいます。

CGI版は.htaccessは効かないのでしょうか
0389nobodyさん04/09/23 16:50:26ID:???
みんなPHP覚えて、何に使うか。何をするのか。
覚えたきっかけ。覚えて得をしたこと。損をしたこと。
などなど、少し聞かせてください。
0390nobodyさん04/09/23 17:02:32ID:???
漏れはヒッキーですることなかったから覚えたまでよ
0391nobodyさん04/09/23 17:12:05ID:???
漏れも
0392nobodyさん04/09/23 17:17:40ID:???
俺漏れも
0393nobodyさん04/09/23 17:53:01ID:???
むしゃくしゃしていたから
0394軟式PHP04/09/23 18:04:20ID:???
カッとなってやった。
0395nobodyさん04/09/23 18:22:46ID:???
では、初めはどのようなプログラムを書いたのか
どうやって取り掛かったのか

本?WEB?
0396nobodyさん04/09/23 18:55:12ID:???
いまじゃお茶の教室でPHPを教えてるんだよ。
0397nobodyさん04/09/23 20:18:17ID:???
最初はPHPの予定だったが、同名の出版社があるということでPHSになった
0398nobodyさん04/09/23 20:22:27ID:???
最初に作ったプログラムはEUCコードのCSVをSJISに変換するもの
0399nobodyさん04/09/23 20:33:22ID:???
最初は HelloWorld
0400nobodyさん04/09/23 20:33:28ID:???
ブログ。誰でも組める。オライリーのアノ本を見て。
0401nobodyさん04/09/23 20:58:32ID:???
>>388
想像通り効かない。この機会にマニュアルも嫁。

suexecなどでCGI版使わせる場合だと、ユーザ毎にphp.iniが使えるように
インストール時にphpを設定するのが普通。
0402nobodyさん04/09/23 21:58:43ID:???
>>398
テキストエディタとかで一発で出来そうな気がするのは気のせいですか?
0403nobodyさん04/09/23 23:01:52ID:cIuxyfdR
>384-387

アドバイスどうもです。
みなさまのおっしゃるとおりぽいです。
一文字はやはりだめぽい上に、
autoも怪しいところでした。
その辺考慮してもうちょっと考えたいと思います。
ありがとうございました。
0404nobodyさん04/09/23 23:29:52ID:???
>>402
1分に1回更新されるファイルとかだったらどうする?
それもリモートのサーバに定期的にアップロードされてるものとか。

エディタのマクロの方が良い場合もあれば、スクリプトで対応した方が良い
というか、エディタではできない場合もあろう。
0405nobodyさん04/09/23 23:32:34ID:???
そういうのを「EUCコードのCSVをSJISに変換するもの」と表現したとしたらとっぽいね
0406nobodyさん04/09/23 23:49:20ID:???
とっぽい?
0407nobodyさん04/09/24 00:00:12ID:???
セッションを今勉強してるんですが、自分なりに調べたんですが解らないので教えてください。

セッションを使うとtmpフォルダの中にファイルが作成されると思うのですが、
これはどうやって消すのでしょうか。。

厨な質問だと思うのですがよろしくお願いいたします。。
0408nobodyさん04/09/24 00:01:21ID:???
初めて作ったのは変哲も無い掲示板、そのまえに人のスクリプトの改造から入ったけど・・・。
0409nobodyさん04/09/24 00:05:51ID:???
マニュアルの http://jp.php.net/session

session.gc_probability
session.gc_divisor
session.gc_maxlifetime

あたりを読むと分かるかも。
一定の割合で勝手におそうじされます。
0410nobodyさん04/09/24 00:12:59ID:???
>>409
レスありがとうございます。
マニュアル嫁!な、質問でしたね。。
大変申し訳有りません。
でも助かりました。
ありがとうございました。
0411nobodyさん04/09/24 00:16:20ID:???
ただGCを適当に動かすのって試行錯誤しないと実際にはできないことですよね。
永続化情報とフローの中間を橋渡すだけだから、自分でガリガリ消してもいいんだろうけど。
0412nobodyさん04/09/24 05:18:15ID:???
gcのチューンなんてしばらく忘れてた
0413nobodyさん04/09/24 12:30:26ID:5Uv+a+mr
クラスの中から、
自分の場所(クラス名、メソッド名)を知る方法があれば
教えてください。
0414軟式PHP04/09/24 12:52:49ID:???
>>413
ref.classobj.html
0415nobodyさん04/09/24 13:04:57ID:MeFHTXD3
携帯やエッヂから現在地を習得するのはどうすればいあでつか?
0416軟式PHP04/09/24 13:06:05ID:???
>>415
電話して聞く。
0417nobodyさん04/09/24 13:08:24ID:???
人生の現在地を知るにはどうしたらよいのでしょうか?
0418nobodyさん04/09/24 13:18:16ID:???
ここは遊び場ではありません
0419nobodyさん04/09/24 13:42:48ID:???
左手の中指下を降りる線の濃いところ。
0420nobodyさん04/09/24 13:45:28ID:???
>>417
子供相談室に電話して聞く。
0421nobodyさん04/09/24 13:51:32ID:???
PHPとあまり関係ない気がします
0422nobodyさん04/09/24 13:57:20ID:???
ぜんぜん関係ないです。
0423nobodyさん04/09/24 14:01:20ID:SN/xJ/fP
いや
現在地習得システムでつ
位置確認サービス
0424nobodyさん04/09/24 14:16:01ID:???
軽くてコンパクトなLibfileありませんか?
使用頻度が高いのでおながいします
0425nobodyさん04/09/24 14:22:25ID:???
>>423
だからそれは PHP なのか、と。
0426nobodyさん04/09/24 14:34:44ID:???
重そうなLivedoor社長とは話はしたことないけど。
0427nobodyさん04/09/24 14:41:53ID:???
PHPLIBって、最近は流行らないの?
0428nobodyさん04/09/24 14:44:05ID:???
最近PHPLIBのありがたさを知りました。
042942304/09/24 16:08:40ID:/JTUfIoi
PHPdetu
0430nobodyさん04/09/24 16:16:49ID:???
PHPLIB?PEAR と言うのが今は適してるだろ。

>>413
マニュアル嫁
http://www.php.net/manual/ja/language.constants.predefined.php
■ このスレッドは過去ログ倉庫に格納されています