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

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

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん04/10/05 17:36:38ID:???
・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
0852nobodyさん04/10/29 01:40:58ID:???
>>851
鯖がmbstring対応してなくても、有志がつくったmbstringエミュレータなんてのも存在する
085384504/10/29 07:13:25ID:???
>>846
おはようございます。
お返事遅くなってしまって失礼致しました。

上記関数で、無事値を取ることが出来ました。どうもありがとうございました。
file_get_contents()なんてあるんですね。とても勉強になりました!

085480004/10/29 09:54:59ID:???
昨日の800です。

言われた通りunixODBCとFreeTDSとlibiconvをインストールしました。
いざPHPでodbc_connectを使用してみようとすると、
Fatal error : Call undefines function: odbc_connect() .....
と言われてしまい動きません。

odbc関数を使用するにあたってPHP側の設定でしなければいけないことはなにがあるんでしょうか?
是非お願いします
0855nobodyさん04/10/29 11:20:26ID:fJt1IS4+
>>800
これ読んだうえでの質問か?
http://jp.php.net/manual/ja/ref.odbc.php
085680004/10/29 12:41:08ID:???
リンク先の文章読みましたけど意味がわかりませんでした。
結局Linux + PHPからWindows + SQL Serverにはアクセスできないんでしょうか?
0857nobodyさん04/10/29 12:49:19ID:???
>>856
君には。
0858nobodyさん04/10/29 13:06:38ID:???
>>857
ワロタ
085980004/10/29 13:18:23ID:???
ここは質問スレッドじゃないんですか?
本当に困っているので教えていただきたいのですが・・・。
0860nobodyさん04/10/29 14:08:41ID:???
PHP4.3.9でmysqli拡張サポートを利用したいのですが、
./configure --with-out=mysql --with-mysqli=/path/to/mysql_config
としても有効になりません。
ちなみにPHP5.0.2ではうまくいきました。

PHPのマニュアルを読むと、
http://www.php.net/manual/ja/ref.mysqli.php
> mysqli拡張サポートはMySQL 4.1.2以上で動作するよう設計されています。

と、書いてあるだけで、PHPに関しては特に何も書かれていないのですが…。
PHP4.xで利用する方法はあるでしょうか?

環境:FedoraCore2+MySQL 4.1.7+PHP4.3.9
086186004/10/29 14:13:15ID:???
2行目の./configureのオプションは、--without-mysql …のtypoでした。
0862nobodyさん04/10/29 14:19:17ID:???
>>860-861
釣り?

一応マジレス。
without-mysqlしちゃうとmysql無効になるので、
mysql使いたいならwith-mysqlにしなければならない。

詳しくは、./configure --help|grep "mysql"

マニュアルよく読め。
086386204/10/29 14:21:12ID:???
激しく勘違い。
>862は無かったことにしておいて下さい。
0864 04/10/29 14:31:48ID:???
ここは隔離板なので、期待はしないほうがいい
PHPがマイナーな事もあるが。
0865nobodyさん04/10/29 14:41:30ID:???
PHPで2chのIDみたいにランダムな文字&数字はどうやってできますか?
よろしくおねがいします。
0866nobodyさん04/10/29 14:47:53ID:???
>>865
http://jp2.php.net/manual/ja/function.mt-rand.php
一番下まで読め。
0867 04/10/29 14:48:54ID:???
>>865
一般にはMD5を使うことになるのかな
関数「md5」の欄参考
0868nobodyさん04/10/29 14:56:23ID:???
>>860
RHL9+PHP4.3.8でMySQL付属(PHPのバンドルではない)の
新旧クライアントライブラリ使ってmysql/mysqli両方とも使ってるけどな。
マニュアルの説明に従っただけで特に何もして無いよ。
実験段階の頃のmysqliとそのころのPHPでも問題はなかった
(多少の問題はあったが、動いていたということ)
086986804/10/29 15:01:40ID:???
ごめん。バージョン確認したらPHP5.0だった…
多分実験段階で動かしてたのもPHP5のalphaとか正式版以前のものだわ。
0870 04/10/29 15:03:13ID:???
>>869
処刑決定・・・
087186004/10/29 15:08:15ID:???
>>862
こやつめ…ハハハ…(AA略

>>867
32文字固定になってしまうので、>>886に載ってるサンプルがよろしいかと。

>>868-869
おお!と思ったのもつかの間、やっぱりだめでしたか。
何が原因ですかねぇ。
0872nobodyさん04/10/29 15:12:20ID:???
886 よ、サンプルよろ。
087386804/10/29 15:18:45ID:???
>>871
原因というか、
http://www.php.net/manual/ja/function.mysqli-connect.php
のようにmysqliのメソッドの記述のあたりをみても、
PHPの対応バージョンがPHP5となってることから使えないと思う。
だからPHP4で使った/使えた記憶が微かにあるのだが、これは完全に思い違いと思われる。

#PHP4/5もMySQLもApacheも、インストールしてる奴が微妙に1つ前のばっかりだ..orz
087486504/10/29 15:25:38ID:???
うーん。よくわからないです@MD5
2〜3行で簡単に作れますかね?
087586004/10/29 15:26:59ID:???
>>873
ああなるほどw
まだ、使う前なのでそこまで見ていなかった。
どうせなら、導入部分に書いといてくれたらいいのにね。
対応していないということがはっきりしたのですっきりしました。
どうもありがとう。
0876nobodyさん04/10/29 15:32:41ID:???
>>874
MD5って32文字の0123456789abcdefの文字の羅列だぞ
md5();で出たと思う
087786504/10/29 15:45:31ID:???
もしよろしければ$hogeにランダム文字を入れて書き込んでいただけないでしょうか
0878nobodyさん04/10/29 16:03:21ID:???
$hoge = rand();
0879 04/10/29 16:08:08ID:???
$rand = mt_rand(100000,999999);
$rand = base64_encode($test);
echo $test;

OK?
0880 04/10/29 16:09:29ID:???
>>879 ×

$rand = mt_rand(100000,999999);
$rand = base64_encode($test);
//echo $test;


encode($test)って一体・・・orz
0881 04/10/29 16:10:52ID:???
あー
base64_test($rand);
と脳内変換してくれ
0882nobodyさん04/10/29 16:19:39ID:???
mt_srand((double)microtime()*1000000);
$hoge = md5(uniqid(rand(),1));
0883nobodyさん04/10/29 22:09:16ID:???
Perlの配列のような使い方って出来ませんでしょうか?
フォームの値が”みかん、りんご、ばなな”として
それを変数”fruit”に代入します。perlだと

@fruit=("みかん,りんご,ばなな");
print "$fruite";

としたら結果表示が「みかんばななりんご」
と出来たと思うのですが、PHPのやり方がよくわかりません。。
0884nobodyさん04/10/29 22:17:23ID:???
>>883
何をやりたいのかいまいちよくわからんが、

$arr = array("みかん","りんご","ばなな");
print join("", $arr);

ってことか?
088588304/10/29 22:20:38ID:???
>>884
はい、そういう事なのですが、出力結果は「Array」とだけ表示されてしまいます。
下記のように記述しているのですが。。(フォームの値を取得しています。)

<?
$fruit = array('$fruit01','$fruit02','$fruit03');
print ($fruit);
?>
0886nobodyさん04/10/29 22:23:11ID:???
>>885
だから join だって
0887 04/10/29 22:28:23ID:???
中身知りたいのなら
print_r($fruit);
088888304/10/29 22:28:56ID:???
>>886
すみません、質問自体が馬鹿でした・・。
要はこういう事です。

■フォームのチェックボックスより選択
・好きな果物は?
みかん($fruit01)りんご($fruit02)ばなな($fruit03)

「確認ボタン」をクリックすると確認画面が現れて下記のように表示されている

好きな果物:(チェックした果物名が表示されている )


上記のような事がしたかったので、果物名を$fruitに代入して
その中身を表示する記述がしたかったのです。
0889nobodyさん04/10/29 23:18:08ID:???
悪いこと言わないから、マニュアルを熟読するかPerlでやるかどちらかを選べ。
Perlでまともな物をかける人間なら、マニュアル読めば絶対理解できる。
保障する。
0890nobodyさん04/10/29 23:28:05ID:???
perlで○○はphpはどうすれば
っていう質問いい加減ウザイ
周りがPHPだから自分も移行ってか?さっさと氏ね
0891 04/10/29 23:33:59ID:???
いいよ、PerlでもPHPでも何でも
知りたいなら質問すればいいけど、
自分でも調べてね
0892nobodyさん04/10/29 23:58:10ID:???
本買わない奴多いのかなぁ。
俺は他言語に移るときは必ず本買うけどなぁ。
0893nobodyさん04/10/30 00:01:53ID:???
本買わなくたってマニュアル読めば済むと思うが。
プログラム自体初めてだったら参考書も必要だろうけどね。
0894nobodyさん04/10/30 00:05:04ID:???
ネットにおいてあるマニュアル、親切だし本(゚�听)イラネ
0895nobodyさん04/10/30 00:18:34ID:???
886とか884とか答えそのものを示されても読まないし試しもしない。
そういう馬鹿は質問すんな。リストラされて引きこもってろ。
0896nobodyさん04/10/30 01:33:39ID:???
$image = imagecreatefrompng("./puyo/w_01.png");
imagepng($image);

こう書いたんですが、

臼NG

としか表示されないんですがどうしてでしょうか?
鯖はXREAで、GDライブラリも最新版のものが入っていたはずです。
0897 04/10/30 01:53:54ID:???
配列$array.Key 4.5.6を合計したい(valueは当然数字が入ってる)んだが、上手く行きません
0898nobodyさん04/10/30 02:10:16ID:???
>>896
HTTPヘッダ。
0899nobodyさん04/10/30 06:57:43ID:???
>>886
join()なんか使うな
implode()使え
0900nobodyさん04/10/30 07:07:04ID:???
>>899
あーあ、マニュアルチェックしてから書けばよかったのに・・・

http://www.php.net/manual/ja/function.join.php
> join() は implode() の 別名で、実体はまったく同じものです。
0901nobodyさん04/10/30 07:49:34ID:???
>>896
ココを嫁!
http://www.pahoo.org/e-soul/webtech/phpgd/phpgd-02-02.shtm
0902nobodyさん04/10/30 08:22:01ID:???
>>900
別名でなく本名を使えと言いたかったのでは
0903nobodyさん04/10/30 09:32:45ID:???
>>902
でもjoinならperlに全く同名でほぼ同じ働きの関数があるから、
perlからの移行組なら簡単に理解するんじゃないかと
884や886は思ったんじゃないか?


でもその意図は元質問者には理解されなかったようだけど・・・
0904nobodyさん04/10/30 10:24:48ID:eL+7QS/f
ども。
今PHPでのディレクトリ操作等について勉強中なのですが、

年別フォルダを作成し(今年ならば2004)
フォームに内容等を書き込み日付_101(1030_101,1030_102)というようなファイルを作成して、
そのファイルに変数として内容格納し,それをインクルードさせて一覧表示する。
といったようなプログラムを作成中です。

ディレクトリ、ファイルの作成、変数の書き込みはうまく行ったのですが最新のファイル順に読み込んで表示させるといった部分で詰まってしまいました。
良い方法がないもんでしょうか・・・
0905nobodyさん04/10/30 11:03:48ID:???
わざわざエイリアス使わなずに元の使え、ってことだろ
自慢げにまぬあるのURL晒されてもな・・
0906 04/10/30 11:48:56ID:???
動きゃいいんだよ、動きゃ。
0907nobodyさん04/10/30 12:36:52ID:???
ファイル削除も delete() でいいんだよ!
0908nobodyさん04/10/30 12:37:47ID:X9SzlMJ/
http://script.s16.xrea.com/2ch/
↑の掲示板をサーバー設定EUC環境で設置したいのですが、
具体的にどこをいじればいいでしょうか?
何もしない状態でFFFTPでアップすると書き込んで更新するときに文字化け+
エラーが出ます。
サクラエディタですべてのファイルを、charset="Shit_JIS"を全てcharset="EUC-JP"に変更 且つ
EUCコードで保存してアップすると真っ白の画面が出てくるだけですo(-_-;*) ウゥム…
どうすればいいでしょうかil|l|_| ̄|○|l|li
0909nobodyさん04/10/30 12:51:21ID:???
>>905
>>899乙
0910nobodyさん04/10/30 12:54:48ID:???
>908
どこがどう文字化けしてんだよ。
もっと具体的に書け
0911nobodyさん04/10/30 12:58:41ID:???
どっちが元なんて関係あるのか?
廃止予定の関数でもあるまいに。
0912nobodyさん04/10/30 13:02:12ID:???
>>908
もっと簡単なスクリプト書いて試してみろ
0913nobodyさん04/10/30 13:15:03ID:X9SzlMJ/
>910

<何もしない状態でFFFTPでアップすると書き込んで更新するときに文字化け+
<エラーが出ます。

・管理メニューの設定変更という画面で設定更新というボタンをクリックして更新
しようとすると漢字平仮名がすべて半角カタカナ、点などに文字化けします。
(アップして何もしない状態では文字化けは発生していません。早い話更新をするとすべてが文字化けします)

・書込みが可能な画面で書込みをしようとするとERROR:ユーザー設定が消失しています!
というエラーが発生し、書き込もうとした内容がすべて文字化けしています。
0914nobodyさん04/10/30 13:16:48ID:X9SzlMJ/
>912
ほかに設置した掲示板は
>サクラエディタですべてのファイルを、charset="Shit_JIS"を全てcharset="EUC-JP"に変更 且つ
>EUCコードで保存
のみで正常に作動しますた( ゚∀゚)
0915nobodyさん04/10/30 13:32:07ID:???
お前もう死んで良いよ。
0916nobodyさん04/10/30 13:34:16ID:???
>>914
それはおかしな話だな。
grep -r sjis *を掛けると mb_convert_kanaが見つかったのだが。
地道に全部のファイルに目を通して修正していくのが良かろう。
0917nobodyさん04/10/30 14:45:39ID:???
>>898
>>901
どもありがとう。

ということで
header("Content-type: image/png");
$img = imagecreatefrompng("./puyo/w_01.png");
imagepng($img);
imagedestroy($img);
こう書いてみたんですが、やはり同じエラーになってしまいます。
何か他に原因があるのでしょうか?
0918nobodyさん04/10/30 15:00:15ID:c8pJE3eD
お聞きしたいのですが、オブジェクト指向において、
あるクラス内で使いたい関数が他のクラス内にある関数と全く同じものだった場合、
そこから呼び出してきたほうがいいのでしょうか?
これはオブジェクト指向の考え方とすこし違うような気もするし、
呼び出した場合もコードが長くなって、なんだかな・・・といった感じです。

どのようにするのが最善な方法でしょうか?
0919nobodyさん04/10/30 15:01:39ID:c8pJE3eD
>呼び出した場合もコードが長くなって、なんだかな・・・といった感じです。
は、
>呼び出さない場合もコードが長くなって、なんだかな・・・といった感じです。
でした、すみません。
0920nobodyさん04/10/30 15:31:54ID:X9SzlMJ/
>916
頑張ってみます
0921nobodyさん04/10/30 16:28:23ID:???
>>918
Interfaceかな。PHP4では使えないから abstract class でなんとか代用する
0922nobodyさん04/10/30 17:06:57ID:KmTYtaw8
カリカリに速度を稼ぎたい人用のPHPのアプリケーションサーバってないですか?
apache_module じゃなくて。
javaだとserlvetで言うところのapplicationContextに常駐キャッシュ置いたりして使えるような。


0923nobodyさん04/10/30 17:14:54ID:c8pJE3eD
>>921
返信ありがとうございます。
あれから、調べてみたのですが、
さっきの二つのクラスに基底クラス(抽象クラス)を作り、
継承させればいいということでしょうか?
(的外れだったら申し訳ありません。)
092489904/10/30 18:01:12ID:???
勝手に終了されちまったが。。
PHPは関数名がコロコロと変わる

例
set_socket_timeout()
↓
socket_set_timeout()
↓
stream_set_timeout()

急に互換性なくなったかと思えばPHP5になっても残ってたり。
だから、エイリアスより本命の関数を使えと言いたかったのが一つ。

んで、注意しなければいけないのが、split()とexplode()は意味が違う事。
俺はPHPではsplit()を使う事はまずなく、動作速度も速いpreg_split()を使う。

だから、implode()⇔explode()の対で覚えた方が良いというのが一つ。
正規表現が必要な時のみpreg_split()を使うと覚える。


とまぁ>>899の2行からこの程度の事は汲み取って欲しいわけだが、お前らには無理ですか?
092589904/10/30 18:10:11ID:???
>>917
質問の際は名前の部分に元質問の番号を書いておいてくれると見やすい。

XREA使ってるそうだけど、広告が自動挿入される無料鯖では?
092689604/10/30 18:24:04ID:???
(!_!)それか!
092789604/10/30 18:28:06ID:???
うはぁー、見事できました。
どうもご迷惑をおかけしました<(_ _)>
0928nobodyさん04/10/30 19:25:45ID:???
sendmail使わずに簡単なメールフォーム設置したいのですが、
ログファイルに記事を書き込ませて、それを管理側が読むって形はまずいでしょうか?
簡単に第三者に覗かれちゃいますか?
0929nobodyさん04/10/30 19:43:31ID:???
覗かれないようにしたら?
PHP関係ないよ
093083504/10/30 20:10:53ID:???
>>835の質問に答えてくださった方ありがとうございます。
093188604/10/30 22:18:16ID:???
>>924
いいたい事は理解できるが、俺はまさに>>903が指摘してくれた理由で
joinを使ったんだよ。一旦echoと書きたところをprintに直したのもそう。

似たような関数で速度が異なるのもそうだが、引数の順番が微妙に
入れ替わってたりするのもいやんだな。そういう部分に手が入ることは
この先もずっと無いのだろうか?
0932nobodyさん04/10/30 22:55:10ID:NqoZ1zP0
両方とも並より下なんだからさ、せめて場を汚さないぐらいは守って欲しいよな

コンプレックスの応酬ってさ、見てて気持ち悪いだけだしさ
0933nobodyさん04/10/30 22:59:32ID:mTugq4bl
          |
          |
          |
         J

     /V\
    /◎;;;,;,,,,ヽ
 _ ム:::(;゜Д゜):|  ドキドキ
ヽツ.(ノ:::::::::.:::::::.:..|)
  ヾソ::::::::::.:::::::ノ
   ` ー U'"U'
  
0934 04/10/31 00:30:04ID:???
配列でKeyが偶数の値を取り出すのは

while(){
$n = 2n;
$hoge = $array["$n"];
$hogehoge[] = $hoge;
}

じゃないの?
0935nobodyさん04/10/31 00:46:00ID:???
foreach ( $arr as $key => $value ) if ( $key % 2 == 0 ) $arr2[] = $value;
0936nobodyさん04/10/31 00:50:05ID:???
初歩的な質問ですが、

$a1 = "hhhh";
$a2 = "oooo";
$a2 = "gggg";
for($i=0;$i<5;$i++){
echo $a."$i";
}

$a1 $a2 $a3 とする表現する方法を教えて下さい。
0937nobodyさん04/10/31 00:54:51ID:???
>>936
このスレか前スレか読み直してみ
0938nobodyさん04/10/31 00:58:46ID:???
${"a".$i}
0939nobodyさん04/10/31 01:07:13ID:???
>>938ありがとう
0940nobodyさん04/10/31 01:27:34ID:???
>>936
素直に配列にする方がいいと思われ
0941nobodyさん04/10/31 01:49:24ID:R5h305R8
質問させてください。
PHP + MySQL の環境を作る際の質問です。

ある書籍で
「PHPのインストールの前に必ずMySQLをインストールしておくこと」
というような記述があったのですが、これは何を意図しているのでしょうか?
これを怠った場合にどういうことが想定されるのでしょうか??

ご教授よろしくお願いします。

0942nobodyさん04/10/31 01:52:37ID:???
んなこたーない
0943nobodyさん04/10/31 01:54:51ID:???
あ、Unix系のインストールかな?
漏れはやったことないから分からん。
簡単な予想としては、MySQLを先にインスコしたあとPHPをインスコするとMySQLのインスコ状態を認識して
自動でMySQLが使えるようになるんじゃね?
0944 04/10/31 02:02:06ID:???
>>935
ありがとう
0945nobodyさん04/10/31 05:04:12ID:???
>>941
mysqlのクライアントライブラリやヘッダーファイルの食い違いの問題。
だだ、そこの「必ず」は(スムーズにインストールを進めるためには)必ず程度の意味だと思うよ。
0946nobodyさん04/10/31 13:04:25ID:sxTaJgq6
PHPでアクセス解析を試みようとしています。

対象ページにイメージタグ
<img src="http://dabudabu.hoge.co/hoge.php" width="1" height="1" />

を挿入することで、
対象ページ間の移動を把握したいです。

しかし、上記 hoge.php にてクッキー発行処理を行っても、
うまいこと処理されません。

もちろん、HTTPプロトコル上、
クッキーの設定はHTML出力前のヘッダー部で行う必要があることは把握している
のですが、

上記要件をクリアする hoge.php を作成できないものでしょうか?
よろしくお願いします。
0947nobodyさん04/10/31 13:09:24ID:???
ヘッダ送信済みだから絶対無理では?
0948nobodyさん04/10/31 13:25:08ID:???
>>946
htmlの中でクッキー送信してもねぇ・・
0949nobodyさん04/10/31 13:32:17ID:qucf7+9r
>>948
送信じゃなくて、作成ってことを言いたいんだろ
0950nobodyさん04/10/31 13:37:44ID:???
対象ページ全部phpにして
クッキー出すところでインクルードでもしてろ
0951nobodyさん04/10/31 13:58:14ID:sxTaJgq6
説明が足りず、申し訳ありませんでした。
第三者にアクセス解析を提供したいと考えています。
第三者のホスティングサーバでは必ずしもPHPエネーブルなわけではないので、
第三者が容易に組み込める手法として、HTML内のイメージタグSRCアドレスでアクセス解析を実現したいです。
0952nobodyさん04/10/31 14:04:19ID:sxTaJgq6
951の続きです。
例えば、
http://www.uwg.co.jp/
では正に同様の方法で、実際にクッキーが発行されます。
彼らはどんな方法で実現しているのでしょうか。
レス数が950を超えています。1000を超えると書き込みができなくなります。