トップページ⇒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あたりに
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いじられて泣きそうになったこともあったけどな。
0793nobodyさん03/03/25 22:29ID:???
ISPでPHPSupportしてるとこってあったっけか?
0794nobodyさん03/03/25 22:36ID:???
>>793
ありますよ。
0795nobodyさん03/03/25 23:25ID:H32QaIGh
POST データを $_POST['name'] で参照する際に、
name に ' が含まれていると \' に変換されてしまいます。
これって去れないようにできないんでしょうか?
0796nobodyさん03/03/25 23:31ID:???
できます。
けど、' を含めないようにするべきかと。
079779503/03/25 23:37ID:???
すみません。
<input type = "text" name = "name" value = "hoge'hoge">
というときに $_POST['name'] に含まれている ' のことです。
実際に避けるにはどうしたらよいのでしょうか?
0798nobodyさん03/03/25 23:41ID:???
>>797
magic_quoteで検索すればなぜそうなるか分かるよ。
て調べてみたら、なんだか少ない... 綴り間違ってる!?
079979503/03/25 23:46ID:???
php.ini ですね。
ありがとうございました。
0800●かろりーたさん ◆JwU5Ac6TK2 03/03/25 23:47ID:BTZxooJl
800get
0801nobodyさん03/03/26 00:58ID:+RBAHMCa
>>795
正に同じところでぶつかったのでちょっと調べてみた。
php.iniのmagic_quotes_gpcをonにしてると自動的にそうなる。
元に戻すにはstripslashesでok。
0802nobodyさん03/03/26 01:46ID:???
>>796
POSTでもGET渡しでも、確かに要URLエンコードだけど
POSTなら多くの場合(大抵は797とかhiddenのパターンで、UAも普通のWebブラウザ)
は勝手にエンコードしてる筈だから、そこは余り気にしないでも良いかと。
技術者ならば裏の動作は知っとけ、には同意
0803nobodyさん03/03/26 02:22ID:???
>>785
回答、ありがとうございます。
>>private なメンバ変数へは、外部から参照する機会少ないはず
確かにそうですね。
言われてみればそういう機会はなかなか無いですね…。
0804nobodyさん03/03/26 06:09ID:tPbaW3mF
すれ違いだったらすいません。
PERL→PHPみたいに変換できるソフトやサイトありませんか?
そもそもPERLにできてPHPにできないなどそういったことがあるのはわかるんですが
アル程度できるものあったら教えてください、お願いします。
0805nobodyさん03/03/26 06:33ID:l1CVp/e0
>> ISPでPHPSupportしてるとこってあったっけか?
> ありますよ。

どこがPHP使えるのでつか?
0806nobodyさん03/03/26 07:18ID:???
>>804
Perl2phpで検索しる。
たしかRubyで書かれてるはず
0807nobodyさん03/03/26 07:39ID:tPbaW3mF
>>806
ぐぐってみたんだけどみつからないでつ。。。
0808nobodyさん03/03/26 07:59ID:???
>>807
当然海外も検索したよな?
0809nobodyさん03/03/26 09:06ID:???
>>805
plala 使えなかったっけ
0810nobodyさん03/03/26 09:59ID:???
いいかげん ML で qmail の話すんのやめてくれ…
0811nobodyさん03/03/26 12:26ID:tPbaW3mF
>>808
はい。
それらしきとこは404じゃないでつか?
0812nobodyさん03/03/26 22:06ID:???
・・・
0813nobodyさん03/03/27 00:38ID:???
>809
あとWebARENAとか。
法人契約といっても客に勧めるもんじゃなくて、自分で使うところなら
ちゃんと探せばいくらでもあるでよ。
0814nobodyさん03/03/27 04:12ID:???
>>809
ぷららはCGIサーバで使えるけど、サポート外。
0815nobodyさん03/03/27 04:22ID:Ya09dI5I
zru2.hoge.com
zru17.hoge.com
このような文字列があります。それを
zru2d.hoge.com
zru17d.hoge.com
このように数字の後ろにdをつけるにはどうすればよいのでしょうか?
0816nobodyさん03/03/27 04:36ID:???
hoge.comが固定だとしたら、
.hoge.com を d.hoge.com に置き換え。いっつしんぷる
0817nobodyさん03/03/27 04:49ID:Ya09dI5I
>>816
言われてみれば確かに
0818nobodyさん03/03/27 09:48ID:Ya09dI5I
>816
$server = preg_replace(".hoge.com","d.hoge.com",$server);

なんかうまくいかない。
Warning: Unknown modifier 'n'
0819nobodyさん03/03/27 09:57ID:???
>>818
$server = preg_replace("/.hoge.com/","d.hoge.com",$server);
0820nobodyさん03/03/27 10:27ID:???
スレ違いならごめんなさい。
Yahoo!メールと同様のwebブラウザで複数ユーザーが
メール(添付ファイル)を操作できるPHPスクリプトを
考えております。

サンプルスクリプト等から有る程度考えているのですが、
添付ファイルの操作と、メールの削除等が難しい・・・

なんか、良いものご存じでしたら、(サンプルスクリプト等)
ご指導ご鞭撻お願いできますでしょうか。
すいません。
0821nobodyさん03/03/27 10:31ID:???
>>820
>スレ違いならごめんなさい。

謝らんで良いから正しいスレに移動してください。
0822nobodyさん03/03/27 10:32ID:???
>>820
>ご指導ご鞭撻お願いできますでしょうか。

卒業式に出席させられた中学2年生ってとこか。
082382003/03/27 11:56ID:???
>>821
>>822
あ、やはりそうですか・・・
ごめんなさい
0824nobodyさん03/03/27 12:02ID:xjuAgYTi
PHP 4.3.1 と Apache2.xは使い物になるの?
0825nobodyさん03/03/27 12:14ID:???
>>818
正規表現使わないのならstr_replaceの方が早いよ。
$server = str_replace(".hoge.com","d.hoge.com",$server);
0826nobodyさん03/03/27 12:45ID:6KhWGPqw
すみません。質問です。
レンタルサーバのPHPを使ってるのですが
1行目に #!/usr/local/bin/php4
と書く必要があります。
このPHPファイルをうちのローカルLINUXでも
動かすためにはどうしたらいいでしょう?
現状だと、1行目がそのまま出力されてしまうので
この1行目を無視するようにしたいのですが。。。
0827sage03/03/27 13:01ID:xjuAgYTi
>>826
一行目を消すか、CGI版PHPインスコする。
0828nobodyさん03/03/27 15:09ID:xLIju/DK
php4.1.x以下だと1行目が表示される。4.2以降で改善してる。
0829nobodyさん03/03/27 15:17ID:???
http://localhost/test.php?148,266
こういう風に渡されたglobal値をphp内で取得するには
どうやればいいの?
$_arg[''] とかは無いみたいだけど・・。
0830nobodyさん03/03/27 16:17ID:pa6AxLeC
>>829
<?php
list($x,$y)=explode(",", $_SERVER[QUERY_STRING]);
echo "X=".$x."Y=".$y;
?>
0831nobodyさん03/03/27 16:26ID:cW0HAJJz
★ココで決まり★男の掲示板★大人のリンク集★
 ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓
 http://www.pink-angel.jp/betu/index.html
0832nobodyさん03/03/27 16:47ID:???
>830
mOmさんくす
0833nobodyさん03/03/27 17:22ID:???
>>832
ママサンクス・・・キモいな。
083482603/03/27 22:33ID:???
>>827
ありがとー、おかげであきらめがついて
CGI版つくったよ。かなりはまったけど。。。TT
>>828
ん? 4.2.3だったんだけど。。。
083583203/03/27 23:03ID:???
>>833
ママサンクスて何?
0836nobodyさん03/03/28 01:53ID:XXU+wfsi
pukiwikiのソースを見て勉強してます。その中で、
$post["msg"] = preg_replace("/((\x0D\x0A)|(\x0D)|(\x0A))/","\n",$post["msg"]);
という改行文字の置換の部分で、エスケープシーケンスを用いずに直接文字コードを
指定していました。
たいていの他のスクリプトは、/(\r\n|\r|\n)/ のような処理を行っていると思いますが、
これにはどういった場合が想定されているんでしょうか?
0837nobodyさん03/03/28 02:12ID:???
>>836
ほれ
http://www.din.or.jp/~ohzaki/perl.htm#CRLF_Unify
0838 ◆Kiss.FX29M 03/03/28 02:23ID:???
>>837
ほぉ、なるほど!
俺も勉強になった。
083983603/03/28 02:25ID:???
>>837
なるほど。phpだけでなく、webアプリケーション全般で言える事なんですね。
どうもありがとうございました。
0840nobodyさん03/03/28 03:04ID:???
コマンドラインから php→html 変換ってできますか?
0841nobodyさん03/03/28 08:40ID:???
rename("php","html")でいいのかい?
ウム エラー処理もしておかないとな。
if(!rename("php","html")){ echo "ダメポ"; exit; }
0842nobodyさん03/03/28 09:40ID:???
eucファイルを読み込んでutf-8で出力したいのですが、
print mb_convert_encoding( file("euc.txt"), "UTF-8", "EUC");
とやっても、Arrayと出力されるだけです。
どうすればutf-8でファイルの内容を出力できますか?


>>840
php.exe -q < hoge.php > hoge.html
0843nobodyさん03/03/28 09:59ID:???
>>842
file()は文字列の配列を返すので1行1行処理してください。
0844a03/03/28 12:06ID:D9J6JSJg
a
0845a03/03/28 12:12ID:D9J6JSJg
こんにちは。
自分は今、マイクロソフトアクセスでデータベースを、PHPで出力など
を制作しているものです。そこで、一つ問題が出てきてしまったのですが、
ローカルホストでは日本語が完璧に表示されるのですが、サーバーに載せ
ると、日本語がすべて「?」になってしまいます。UNIコードとしても
表示されません。海外のサーバーを使っているからだと思うのですが、
何か解決策はないでしょうか。
よろしくお願いいたします。
0846nobodyさん03/03/28 12:21ID:???
>>845
こんにちは。
自分は今、マイクロソフトアクセスでデータベースを、PHPで出力など を制作しているものです。
そこで、一つ問題が出てきてしまったのですが、 ローカルホストでは日本語が完璧に表示されるのですが、サーバーに載せると、日本語がすべて「?」になってしまいます。
UNIコードとしても 表示されません。海外のサーバーを使っているからだと思うのですが、 何か解決策はないでしょうか。
よろしくお願いいたします。
0847nobodyさん03/03/28 12:48ID:???
>>846
とりあえず、ローカルサーバとリモートサーバの詳細キボン。

#大方スクリプトとDB内のデータの文字コードの問題だろうがな。
0848nobodyさん03/03/28 15:10ID:???
http://pc2.2ch.net/test/read.php/php/1044478561/
なふうに呼び出したときの「/php/1044478561/」の部分を
取得する方法はありますか?
0849nobodyさん03/03/28 15:12ID:???
>>848
サンプル1つでは何とも言えないかと。
0850nobodyさん03/03/28 15:42ID:???
>>848
$_SERVER[PATH_INFO]から取得
0851 ◆Kiss.FX29M 03/03/28 15:57ID:???
>>848
普通はmod_rewrite
0852nobodyさん03/03/28 17:33ID:???
PHPではPerlの

@sortdata = sort { (split(/\,/,$a))[2] <=> (split(/\,/,$b))[2] } @hogehoge;

みたいに、splitかexplodeを使って、配列をソートすることはできますか?
0853nobodyさん03/03/28 17:46ID:???
>>852
$sortdata=explode(",", $hogehoge);
sort($sortdata);
0854nobodyさん03/03/28 22:09ID:???
gifファイルが一枚gifかアニメgifかを判別する方法はありませんか。
GetImageSize()の画像種類はどっちも1(gif)が返ってきます。
085585203/03/28 23:09ID:???
>>853
それでもうまくいきませんでした。
0856nobodyさん03/03/28 23:53ID:???
素直にコードに落とすとこんな感じかな。
function cmp ($a,$b){
 $arr_a = explode(",",$a); $arr_b = explode(",",$b);
 if($arr_a[2] == $arr_b[2]) return 0;
 if($arr_a[2] > $arr_b[2]) return 1;
 if($arr_a[2] < $arr_b[2]) return -1;
}
usort($arr,"cmp");
0857nobodyさん03/03/29 00:21ID:???
>>854
まぁ、gifファイルを解析すれば良いんだろうけど。ヘッダ読むくらいならできるっしょ。
085885203/03/29 01:28ID:???
>>856
ありがとうございます。うまくいきました。
0859nobodyさん03/03/29 13:20ID:???
>>857
ヘッダからはGIF87aか89aの情報ぐらいしか取れないから駄目でしょ。
GIF87aなら否アニメGIFだけど、89aだからだけではアニメGIFかどうかまでは判らない

中身読めば勿論判るけど…そんなことしなくて良い方法がありそうな、なさそうな。
0860nobodyさん03/03/29 13:28ID:???
>>859
>なさそうな。

無いでしょう。gifファイル以外から任意のgifファイルがアニメgifか否か判断するなんて。

目隠しして信号の色を当てるようなもの。
0861nobodyさん03/03/29 13:30ID:???
>>859
http://tohoho.wakusei.ne.jp/wwwgif.htm

サイズ付きのチャンクみたいだから解析はそんなに難しくない。
Applicationブロックを覗けばOK。
0862nobodyさん03/03/29 14:03ID:???
>>854
萌えjpでも逝ってこい。
あそこのスクリプトはそれを実現してる。
ちなみにソースも公開されてるからhackしる。
0863nobodyさん03/03/30 01:12ID:???
PHP書くときに使いやすいwindows上で動作するエディタってありませんか.
さすがに秀丸は疲れてきたのでC++builderのエディタでやってるんですが補完機能が欲しいです.
0864nobodyさん03/03/30 01:32ID:???
秀丸でも補完用のマクロがあるよ。
てか本家のIDEは補完機能なかったっけ?
オイラはemacs好きなのでmeadow+補完lispか、WebStudio使ってるけど。
0865nobodyさん03/03/30 01:33ID:???
>>863
xyzzy + php-mode はどう?

php-modeのphp-completion関数を使えるようにして、
適当なキーにバインドしてやるとほぼ望みの環境になるかと。
086686303/03/30 02:55ID:???
親切にありがとうございます.
>>864
秀丸のマクロ探してみたら簡単にみつかりました.
.mac見て,秀丸のマクロは結構簡単に自分で定義することも出来そうなことに初めて気付く…

>>865
xyzzyのfundation(?)をphp-modeにして早速使ってみたんですが完璧です(てゆうかxyzzy自体初使用
縦割りと横割りもできるし,emacsとキー操作似てるのがまた(特にC^x C^fが嬉しい
しばらくこれが標準になりそうです..
086786503/03/30 03:14ID:???
>>866
browserex.l(別途調べてみてください) を利用して以下のような設定にすると、
さらに幸せになれるかも。

;;; browserex.l 設定
(load-library "browserex")
(setq bx:*browser-width* 800) ; デフォルトの表示幅
;; browser.l 互換関数定義
(defun navigate (url)
(interactive "sURL: ")
(bx:navigate url))
(defun close-browser ()
(interactive)
(bx:close-browser))
(define-key *global-keymap* #\C-End 'close-browser) ; Ctrl+Endで閉じるように
;; php-mode
(load-library "php-mode/php-mode")
(load-library "php-mode/php-misc")
(push '("\\.php$" . php-mode) *auto-mode-alist*)
; デフォルトでは、*.htmlを読みに行ってるので*.phpを読みに行くようにする
(defun ed::php-doc-function-open (func)
(let ((path (concat *php-doc-base-path*
(format nil "function.~A.php" (substitute-string func "_" "-"))))
(navigate path)))
(define-key ed::*php-mode-map* #\F1 'ed::php-doc-function)

これで、オンラインであれば関数名入力後にF1を押すと php.netの関数リファレンスが読めます。
細かい設定は長くなりすぎるのと、板&スレ違いなので割愛。
086886503/03/30 03:18ID:???
補足です。
上記は~/.xyzzyかsiteinit.l内への記述で、

(load-library "php-mode/php-mode")

とかの辺りは各自環境によって異なります。
私の場合 "site-lisp/php-mode/php-mode.l" と置いてるので、
上記記述になっています。

本格的な説明が必要ならば、xyzzy質問スレで。
http://pc2.2ch.net/test/read.cgi/software/1041326960/
0869nobodyさん03/03/30 04:07ID:???
xyzzy使いテー。リンク切れてるし。
php-modeインストールってどうやんの?
0870nobodyさん03/03/30 17:52ID:???
>>867
俺は普段は、HTML Help版のマニュアル呼ぶようにして使ってる。
その方が速いし検索とかも便利だから。
>>869
秀丸使っとけ
087186503/03/30 23:37ID:???
>>870
HTML Help版って、.chmのやつですよね?
そっちを使うのも試してみたんですが、
別ウィンドウで開くのが性に合わなかったので。
(この辺は好みの問題ですね)

オフラインの.html版を使うのもありですが、
情報が古くなってると嫌なので、家ではオンラインで使っています。
0872nobodyさん03/03/31 19:52ID:D6ukRZiw
http://dream.lib.net/room/cgi/s_lchat.html
これのPHP版はありませんかねぇ。
探しても見つからないモノで...
0873nobodyさん03/03/31 20:35ID:GvJTx+Hi
PHP Accelerator入れてみますた。
別に問題なく動いてますが、
CONFIGURATIONに書かれている内容が気になります。

今デフォルトのままですが、/tmp にコンパイル後のファイル?が保存されてます。
ちゃんとメモリーにキャッシュされてるんでしょうか?

ちなみに入れたのは
php_accelerator-1.3.3r2_php-4.2.1_linux_i686-glibc2.1.3
0874nobodyさん03/03/31 22:25ID:???
>>872
そのくらい自分で作れよ・・。たいしたものじゃないだろ。
0875 ◆Kiss.FX29M 03/04/01 00:37ID:???
エイプリルフールと言えばphpinfoなわけだが、4.3.xは犬なんですね。
0876rwxr---wx ◆jTWOZwTY1g 03/04/01 02:02ID:???
俺は犬よりもおっさんの方が好きだな。
っていうか、あのおっさん誰?
0877nobodyさん03/04/01 02:12ID:???
>875
システム時計を弄れば何時でも見れた訳だが…書き込み見て思い出した。
確かに「犬」だな。前の「顔」がインパクトあり過ぎだったのでイマイチ。
0878 ◆Kiss.FX29M 03/04/01 02:17ID:???
>>876
ま、毎年MLネタになってますね。今年も投稿あるかな(w

あのおっさんは開発者(Thies)?
[PHP-users 6570] Re: phpinfo() で男の顔が
0879nobodyさん03/04/01 02:33ID:???
すまそ ちょいとスレ違いかもしれんが
Apache PHP Version 4.2.2 で自鯖にphpタイプのアプロダ置いてるんだけど

設定で50MBまでおけーになってるんだが
500kb以上になったら404が返ってくる
どっかphp自体の設定変えないといけない?
0880 ◆Kiss.FX29M 03/04/01 02:58ID:???
>>879
404ってのは妙だな。
ひょっとしてhttpdの設定だったり...

                     ,'⌒,ー、           _ ,,..  X
                 〈∨⌒ /\__,,..  -‐ '' " _,,. ‐''´
          〈\   _,,r'" 〉 // //     . ‐''"
           ,ゝ `</ /  〉 /  ∧_,. r ''"
- - - -_,,.. ‐''" _,.〉 / /  . {'⌒) ∠二二> -  - - - - - -
  _,.. ‐''"  _,,,.. -{(⌒)、  r'`ー''‐‐^‐'ヾ{} +
 '-‐ '' "  _,,. ‐''"`ー‐ヘj^‐'   ;;    ‐ -‐   _- 腹減ったコンビニ逝ってこよ
 - ‐_+      ;'"  ,;'' ,''   ,;゙ ‐-  ー_- ‐
______,''___,;;"_;;__,,___________
/////////////////////// 
0881nobodyさん03/04/01 04:23ID:diwdGVyz
>>880
スマソ 404じゃなくてページを表示できませんだった。。。
php.iniで変えた部分は
memory_limit 128M    post_max_size 100M    upload_max_filesize  80M
このように値を決めました・・・
Apache version 2.0.40    PHP Version 4.2.2  です。
500kb以下だとすぐアップすぐできるんだけど
500kbより上になるとすぐにページが表示できませんってなるの・・・

どこか他にありますかね?
0882nobodyさん03/04/01 04:24ID:???
Requested content-length of 831342 is larger than the configured limit of 524288

こんな感じです・・・
エラーログは
0883 ◆Kiss.FX29M 03/04/01 04:45ID:???
>>881-882
エラーを見る限りにおいてはファイルサイズが512kbよりでかいよ。
って、そのものなんだけどな。
phpinfo()で設定が反映されているか確認汁。

#Apache2は使ったこと無いので知らんが。
■ このスレッドは過去ログ倉庫に格納されています