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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん04/04/07 01:06ID:HTcWOpWf
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
0521nobodyさん04/04/30 11:44ID:???
>515
リファラをあてにするな
適当な文字列を設定することも容易だし
リファラを渡さない実装や、ブロックする実装もある
取得出来なかった場合、諦めろ
0522nobodyさん04/04/30 11:47ID:???
>HTTTP
052351504/04/30 11:50ID:???
諦めが肝心 って言うことはよくわかりましたが、
WinのIE6は取得不可能ってことなんでしょうか?
それが知りたいのですが。
よろしくお願いします。
0524nobodyさん04/04/30 12:03ID:???
>>523
んなこたーない。
0525nobodyさん04/04/30 12:13ID:???
>>514
$datってなに。
書き込む直前に$datに何が入っているか確認してみれ。

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

ageちゃってスマソorz
052951404/04/30 12:52ID:???
ご、ごめんなさい・・・
自己解決しました。。。
この書き込み部分を関数化して読み込んでたんですけど、外側でforeachが動いてました。
お騒がせしてしまい申し訳ございませんでした。。。
0530nobodyさん04/04/30 13:43ID: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です。

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

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

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

SET CLIENT_ENCODING でPHP(SJIS)<->PgSQL(EUC-JP)の
変換をPgSQL側でやってくれる。PHPはSJISのまま突っ込めばOK
0534nobodyさん04/04/30 14:35ID: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レコード出てきてました。フィールド名も合ってました。
どしてダロ。
053553004/04/30 14:37ID:???
どうもありがとうございます。>>533
>ちゃんとSJISに対応したPHPをインストールしているか疑問だな。
入門本に書いてあるとおりやったんで、僕は実のところ全然分かりません。
今のところは一応作動しているので。。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

php_domxml.c php_domxml.h は何が書いてあるかさっぱりわかりません。
0582nobodyさん04/05/03 15:47ID:???
Perlみたくモジュールファイルを自分の領域にうpしてrequireできない?
0583nobodyさん04/05/03 16:41ID:rg12GSDJ
皆さん、定期的に自動で処理をしたいんですが、何か良い方法はありませんか?
というのも、今スケジューラを作っていて、指定された時間になると自動でメールを発信するリマインダ機能をつけようと思っているんですが。
処理呼び出し用マシンを用意して、処理するPHPを自動更新で5分おきに呼び出すとか、そんな方法しか思いつかないんです。
(この表現で伝わりますか?)
もっとスマートな方法はありませんかね?
0584nobodyさん04/05/03 16:46ID:???
>>583
cron
0585nobodyさん04/05/03 17:11ID:???
PHPの敷居が低いからなのか運用面の知識が無い香具師がイパーイ居るな(w
0586nobodyさん04/05/03 17:27ID:???
つーか、OSとかも書いてないし。
058758304/05/03 17:40ID:???
環境はWindows+Apache2なんです。
ですから、cronとかも使えず…。
質問しておいてアレなんですが、やっぱりブラウザを起動しておいて自動更新で…に落ち着こうかなぁと思ってたり。
簡単だし。
スレ汚してすみません。
0588nobodyさん04/05/03 17:53ID:???
>>587
タスクスケジューラがあるだろ。
0589nobodyさん04/05/03 21:47ID:???
>>587
Windowsっても色々イパーイある訳だが...
確かWin用のATがあったと思う。
0590nobodyさん04/05/03 21:54ID:???
>>578
正直、Win版独自の機能については、
COMなんかもそうだけど、使ってる人あんまりいない。
[PHP-WIN] MLが比較的情報回ってる方かな。
0591nobodyさん04/05/03 22:50ID:q5DnTGK5
PHPのsocketを使ってます。
契約先のサービスサーバに接続しても、1/2の確率程度でしか結果を返してくれません。
私が悪いのか、サービスサーバが悪いのか分かりません。
$fp = fsockopen(...);
fputs($fp, "ヘッダとデータ");
fflush($fp);
while(!feof($fp)) {
$result .= fgets($fp);
}
fclose($fp);
一応、fflushの後にsleepとか入れてみたんですが、駄目です。
こういう経験がある方がいらっしゃれば、教えて下さい。
あいまいな質問で申し訳ないです。
0592nobodyさん04/05/03 22:57ID:???
>>591
エラー内容を書きましょう。
エラーハンドリングをしましょう。
0593nobodyさん04/05/03 23:00ID:q5DnTGK5
エラーはないです。
実際のスクリプトにはエラーハンドリングしてます。
feof($fp)が結果を返す前にtrueを返してしまいます。
0594nobodyさん04/05/03 23:55ID:???
>>591
先に問題の切り分け
PHPを使わず接続した場合は正常?
0595nobodyさん04/05/04 01:18ID: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は動くのになア。
ザンネン。
0596nobodyさん04/05/04 04:57ID:???
>>595
ウチのMe+PHP 4.3.4でも動きませんでした
might be only in CVS
だから仕方ないかも
(よく見たらプリンタ関数全部そうなんだけど)
0597hiro@ ◆7iyjK8Ih4Y 04/05/04 10:41ID:???
初めまして。初めてPHPを作りました。自動生成メールフォームです。

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

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

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

けないでしょうか?

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

上記のファイルダウンロード=ttp://ffmax.com/test/mail/fmail_040504.zip
059940204/05/04 11:19ID:???
>>597-598
スレ違い
0600hiro@ ◆7iyjK8Ih4Y 04/05/04 11:31ID:???
>>599
スマソ。
じゃぁ、>>597-598は聞き流してください。
0601nobodyさん04/05/04 11:44ID:???
>>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の両方で試した)
0602nobodyさん04/05/04 11:57ID:???
>>597
まあスレ違いだが、今更i18n関数を使わないと駄目な環境なのか?
今後のことも考えて、現行のPHP4に切り替え、mbstringモジュールを組み込み
PHPのmbstring関係の設定を適正に行い、関数もそちらを使うことを検討してはどうかな。
もし今i18n関数を使うコードを書くなら、i18n/mbstring/jcodeの複数対応ぐらいをしないと。

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

のならひとつづつ動作の確認を取り追っていくと良いのでは。
デバッグ/エラー情報の扱いは大切なスキルの一つだし。
0616nobodyさん04/05/05 23:34ID:???
>>614
うぉぉぉ、unsetでそういう使い方が出来るとは気付きませんでした。
ありがとうございます (_ _) 万事解決。
0617nobodyさん04/05/05 23:40ID:???
>>613
殆どとは具体的にどのファイル?
0618nobodyさん04/05/05 23:53ID:???
リンク先のファイルにもあるんですけど、
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
その一つずつ確認するというのは、余計な命令文を削除して稼動させるということですか?
0619nobodyさん04/05/05 23:58ID:???
どーせ、こんなこったろーと、思ったYO。
エラーメッセージぐらい嫁よ。

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