トップページ⇒php
986コメント361KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん05/03/03 22:41:23ID:???
・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-10辺り
011610505/03/13 14:45:16ID:???
>>115
base要素でできました。
ありがとうございます。
あと、お手数ですがその方法をもう少し詳しく教えて欲しいのですが。
0117nobodyさん05/03/13 16:16:46ID:???
>>116
お手数過ぎるからヤダ
011810505/03/13 19:08:02ID:???
>>117
そうですか^
まーでも目的は果たせたので、
いずれにせよ、ありがとうございました!
011910005/03/13 19:14:17ID:???
configureにSablotSetEncodingを
どうやって指定するのでしょうか。
--with-xslt-sablot以外になさそうなのですが。
./configureの中身は読んでみましたがさっぱりでした。
0120nobodyさん05/03/13 21:02:24ID:???
>>119
読むのならむしろ libsablotron の configure とか /usr/include/sablot.h かと。
0121nobodyさん05/03/13 21:15:58ID:???
>>119
だからexpatはともかく、sablotは使っとらんので知らんがな。

>--with-xslt-sablot以外になさそう
それはPHPのconfigureオプションであって、PHPで該当するオプションは
sablotの設定を見て自動で設定するからいらない。
コメントで書いてあるのは、それ故「必要ならsablotの設定をちゃんとしろ」ってこと。
012210005/03/14 03:18:42ID:???
Sablotにencoding関係の configure オプションは
ないみたいです。
gingerall にいったら、新しい1.0.2が出てたのでそれをインスコ中
012310005/03/14 05:32:21ID:???
先生だめでつ。
http://bugs.php.net/bug.php?id=21427
これを参考にしたんですけど。

●Sablot-1.0.2
$ ./configure --with-expat=/usr/local --with-iconv=/usr/local

●php-4.3.10
./configure --with-apxs2=/usr/local/apache2/bin/apxs \
--enable-mbstring \
--enable-mbstr-enc-trans \
--enable-mbregex \
--enable-zend-multibyte \
--with-zlib \
--with-mysql=/usr/local/mysql \
--with-zlib-dir=/usr/lib \
--with-gd \
--with-jpeg-dir=/usr/local \
--with-png-dir=/usr/local \
--with-xml \
--with-dom=/usr/local \
--enable-xslt \
--with-xslt-sablot=/usr/local \
--with-iconv-dir=/usr/local \
--with-expat-dir=/usr/local

expatとiconvのインストールディレクトリ合わせてるんですけど
だめなんですよ。
0124nobodyさん05/03/15 02:58:15ID:hZ3yLB9y
質問です。
携帯で着メロのダウンロードサイトを作成しているのですが、
開発環境のWindows版ではうまく動作するのですが、
本番環境のLinux版ではダウンロードしようとするとで502エラーを返してきます

fopen(ファイル)
fput(ファイルの中身吐き出し)
fclose

って方法で接続端末に着メロを出力しているのですが、
なぜかうまくいきません。
502エラーってことはApacheの設定が悪いのでしょうか?
そして、対処法はどのようにすればよろしいでしょうか?
0125nobodyさん05/03/15 06:41:46ID:???
>>124
ケータイにダウンロードさせるなら、適切なContent-Type吐いてechoしてはどうだろう?
0126nobodyさん05/03/15 12:43:52ID:???
>>124
着信音については
Content-Type
拡張子
HTTPリクエストの末尾
に注意する必要がある
0127nobodyさん05/03/15 21:24:22ID:???
description attachmentって携帯で使えないのかな?
0128nobodyさん05/03/16 22:49:46ID:???
一時間に一回自動でデータベースから情報を読み込みファイルを出力したいのですがどのように考えればいいですか?
00分になりアクセスがあったらファイルを出力し次の00分になるまで出力はなし。見たいな考え方でいいですか?
この考え方だと一回もアクセスがないと出力されないことになりますが、何か便利な関数があるんですか?
0129nobodyさん05/03/16 23:10:09ID:???
定期的に実行しなければならないなら、OS側が提供しているcronやtask scheduler。
これが使えないようなら、データ投入時や表示時になんとかするしかない。
表示時(アクセス時)に必要なデータをかき集められるものなら、表示時に時間をチェックして誤魔化す。
データ投入時にあらかじめページを作成しておいて、表示時の時間チェックと組み合わせるのもありだな。

実行環境ややりたい事が分からんことには、可能か不可能かさえも分からんよ。
0130nobodyさん05/03/16 23:49:33ID:???
イメージ関数について質問です。
背景が透過gifな画像をリサイズした場合に透過ではなくなるのですが、
これを透過のままリサイズ出来ないのでしょうか?。
出来るのであれば参考になるサイトまたは方法を教えてください。
0131nobodyさん05/03/17 10:53:09ID:???
>>128
基本は、>>129が言うように、OSの自動処理を使う。
連鯖などでcrontabが使えない場合、いかにしてトリガを引くか、それを考える。

・WEBアクセスの際に前回処理時間と比較しトリガ発生→アクセス無ければ無意味
・自宅のPCのタスクスケージュラや、DiCE等で定期的にトリガプログラムへアクセス →PC付けっぱなし必須
・携帯電話などで自分でトリガプログラムに定期的にアクセス → 鬱陶しい、眠れない、パケ代かさむ

さぁ、どれにする?
013212805/03/17 11:48:17ID:???
ありがとん
リナックスのことワカメだから本買ってしらべてみます
0133nobodyさん05/03/17 15:28:44ID:???
cronが楽だが使えないとなれば、>>131の書いてる3つの内の2つ目が一番一般的かな?
0134nobodyさん05/03/17 17:42:24ID:???
>>130
こんな感じ。フルカラーじゃないから汚いけど。

$src_info = getimagesize ($src_path);
$src_image = imagecreatefromgif ($src_path);
$dst_image = imagecreate ($dst_width, $dst_height);
$trans = imagecolortransparent ($src_image);
if ($trans) {
 imagepalettecopy ($dst_image, $src_image);
 imagefill ($dst_image, 0, 0, $trans);
 imagecolortransparent ($dst_image, $trans);
}
imagecopyresized ($dst_image, $src_image, 0, 0, 0, 0, $dst_width, $dst_height, $src_info[0], $src_info[1]);
imagegif ($dst_image, $dst_path);
013512805/03/17 18:11:56ID:???
すまんポコやっぱりわからないや

使ってるサーバーがカゴヤなんだけど
cron設定はノーサポートでおしえてくれないや
自分なりに考えてみたんだけど
カゴヤ管理画面のCRON設定 で
*/1 * * * * /home/カゴヤアカウント/public_html/count.php
のみ入力してみたんだけどでなにがちがうんですかね?
/bin/sh: /home/カゴヤアカウント/public_html/count.php: cannot execute binary file
ってなのがメールで送られてくるんだけど
エロイ人教えてください
0136nobodyさん05/03/17 18:24:21ID:???
>>135
エロくはないけど、
たぶん、
*/1 * * * * php /home/カゴヤアカウント/public_html/count.php
だろうね。
それでもエラーが出るようなら、phpのパスを調べれ。・
013712805/03/17 18:41:56ID:???
だめぽよ
/bin/sh: php: command not found
のエラーのメールがきますわ
count.phpのパーミッソンハ705
中身は
<?/* シンプルカウンタ by ToR tp://php.s3.to 2000/10/18 */
$fp = @fopen("count.txt","r+") or die("ファイルが開けません");
$count = fgets($fp, 64);
$count++;
rewind($fp);//set_file_buffer($fp, 0);
flock($fp, LOCK_EX);
fputs($fp, $count);
fclose($fp);echo $count;?>
何がちがうんですかね?
0138nobodyさん05/03/17 18:45:35ID:???
>>137
>>136 wrote
> それでもエラーが出るようなら、phpのパスを調べれ
環境変数、特にコマンドの検索場所を指すPATHが違う。
0139nobodyさん05/03/17 18:53:46ID:???
>>137
CLI用PHPへのパスは?
1行目に
#!/usr/local/bin/php
とか書いてる?
0140nobodyさん05/03/17 18:58:22ID:???
>>137
ttp://www.kagoya.net/cgi/
の、「コマンドパス」項目を穴が開くほど睨んでみ。
014112805/03/17 19:10:27ID:???
おまいらすげー
できたよありがとうぅ
こんなん何処でおしえてもらうん?
専門学校かね?
んまありがとー
014213005/03/17 19:11:49ID:???
>>134
ありがとうございます。
imagecolortransparent()の返り値が0の場合があるのでif ($trans) {の分岐を外して
実行しているのですが、返り値が0以外の場合には透過になりません。

$trans = imagecolortransparent ($src_image);
imagepalettecopy ($dst_image, $src_image);
imagefill ($dst_image, 0, 0, $trans);
imagecolortransparent ($dst_image, $trans);

パレットをコピーし透過になる色で塗りつぶし、その色を透過に指定しているので
正しく透過出来そうだと想うのですが、これはフルカラーではないという所が問題
なのでしょうか?。
imagecreatetruecolor()で作成した場合は正しく利用できないのでしょうか。

塗りつぶしをしているので問題がある場合もありそうですが、とりあえず
$trans = 0で指定しています。
0143nobodyさん05/03/17 19:52:29ID:???
自宅サーバ上での質問です。

AnHttpDでISAPI経由でPHPを動かしているのですが
ISAPIだと設置した掲示板やチャット等で、IPやHOSTの情報を取得してくれません。
CGI経由だと取得してくれるのですが、この問題を解決する方法はありますか?

■バージョン
PHP 5.0.3
AnHttpD1.42n
0144nobodyさん05/03/17 20:22:09ID:???
>>143
PHPのバージョンを変えてみるという手がある。
が、「問題を解決する方法」としては選択しづらいだろうね。

つか、なんでバージョンでその辺が変わるのかねぇ>PHP
サーバ側とのAPIが変わってるわけでもないのに。
014514305/03/17 20:25:16ID:???
>>144
スクリプト上で取得の方法を変えたら出来ました。
(前)$ip = getenv("REMOTE_ADDR");
(後)$ip = $_SERVER["REMOTE_ADDR"];

お騒がせしますた(;´д`)
0146nobodyさん05/03/17 20:36:26ID:???
>>128
はてなあんてな使う手もある。
0147nobodyさん05/03/17 21:12:04ID:PAcs7vRb
open_basedir を設定している状態で、
require_once('../main.inc');

と相対パスで一つ上を指定したいんだけど、open_basedirをどう設定すればいい?
0148nobodyさん05/03/17 21:12:14ID:???
>>145
ちゃんとマニュアルに
getenv
注意: この関数は、ISAPIモードでは動作しません。
書いてあるじゃん
0149nobodyさん05/03/18 03:12:21ID:???
>>143-4は池沼
0150nobodyさん05/03/18 10:44:51ID:0xXwO3mo
formからpostされた値を、改行コードを統一してから
AUTO指定でEUCに変換すると

preg_replace("/(\r\n|\r)/","\n",$str);
$str = mb_convert_encoding($str,"EUC","AUTO");

毎回ではないのだが、頻繁にエンコードに失敗するのですが
Warning: mb_convert_encoding(): Unable to detect character encoding in hoge.php on line ○○

何故?改行コードでエンコードの判断してるの?
エンコードしてから改行コードの変換をすれば良いって問題なんかな?

formはSJISで、PHPのバージョンは4.3.4です。
0151nobodyさん05/03/18 11:00:56ID:???
おまいら!
SJISでスクリプト掻いてますか
EUCですか?
0152nobodyさん05/03/18 11:27:32ID:???
>>151
外に出す時はUTF-8
普段はASCII
0153nobodyさん05/03/18 11:44:31ID:???
>>150
formがSJISならSJISで来る確率が高かろうから'auto'じゃなくて
'SJIS, EUC-JP, UTF-8, JIS, ASCII'とでも指定してみれば

私はhiddenに判定文字列入れてmb_detect_encodingやってるけども
0154nobodyさん05/03/18 11:50:37ID:???
>>152
外に出すときは生
普段は極薄
0155nobodyさん05/03/18 12:23:49ID:???
>>153
ありがとう、AUTOやめてSJISの優先度上げたら落ち着いたよ
0156nobodyさん05/03/18 14:09:11ID:???
E・U・C!E・U・C!
0157nobodyさん05/03/18 15:47:30ID:H8eZrdKt
.htaccessで

ErrorDocument 404 /404.php

として404をPHPに飛ばしてるのですが
このPHPで本来どこにアクセスされたのかを
知ることってできますか?


0158nobodyさん05/03/18 16:06:59ID:???
$_ENV["REQUEST_URI"] かな
015915705/03/18 16:44:12ID:???
>>158
あ、ありがとうございます
$_SERVERで試してました。。。orz
0160nobodyさん05/03/18 17:05:03ID:???
$_SERVERでも問題ないと思うが
016115705/03/18 17:08:04ID:???
>>160
あれ? ほんとだ・・・
なんか全然関係ないとこで勘違いしてたみたいです。
たいへん失礼しました
0162nobodyさん05/03/19 00:12:12ID:???
質問です。
ファイルの行数を取得したいのですが、
極力負荷を低くやりたいです。
ファイルのサイズはデカくて、
1行の文字数は不定なのですが
なにかウマい方法はないでしょうか?
0163nobodyさん05/03/19 00:34:00ID:???
>>162
wc。要するにバイナリーとしてファイルを舐めて[改行]の数をカウント
0164nobodyさん05/03/19 00:53:10ID:???
fileで読み込んでcountで参照って手も。
0165nobodyさん05/03/19 00:57:40ID:???
ありがとうございます。

>>163
す、すみません…
バイナリは扱ったことがないので分からないのですが
もう少し詳しく教えていただけませんか?

>>164
ファイルがかなりデカいので、fileで読み込むと悲惨なことになりそうです…
0166nobodyさん05/03/19 00:58:41ID:???
>>165
まず試せ。
wcはUNIX系OSのシステムコマンド。
0167nobodyさん05/03/19 01:00:14ID:???
え、、と…
PHPでできないと少々具合が悪いのですが…
0168nobodyさん05/03/19 01:04:41ID:???
>>167
fileで読み込む以外不可能だとおもうよ。
悲惨なことになったらまたおいで。
0169nobodyさん05/03/19 01:05:17ID:???
>>168
わかりました…
どうもありがとうございます、試してみますね(。・ω・。)ノ
0170nobodyさん05/03/19 01:06:21ID:???
>>167
でかいってどれくらい?
具体的な数字をどうぞ。サイズと行数くらいかな?
あと平均カラム数も。
0171nobodyさん05/03/19 01:11:39ID:???
>>167
あとファイルで使ってる文字コードも。
0172nobodyさん05/03/19 01:14:24ID:???
>>170
7万行くらいで、50MBくらいです。
文字コードはSJISです
0173nobodyさん05/03/19 01:18:16ID:???
fopenしてfgetsを繰り返して(取った内容は棄て)カウントでもいいと思うよ。
1行がよっぽど長くなければメモリも食わん。
0174nobodyさん05/03/19 01:21:03ID:???
>>173
なるほど!!
そうすれば効率的ですね。
どうもありがとうございました<(_ _)>
0175nobodyさん05/03/19 07:56:37ID:???
>そうすれば効率的ですね。


∠( ゚д゚)/「え?」


釣りですかそうですか
λ..........
0176nobodyさん05/03/19 08:27:15ID:???
>>169
>>168みたいなうそつきの言うことは聞かないで
<?php
$file = 'C:\Program Files\Apache Group\Apache2\logs\access.log';
$fp = fopen($file, "r");
$count = 0;
while(!feof ($fp)) {
if ($line = fgets($fp) and substr($line, -1) == "\n") $count++;
}
fclose($fp);
echo $file."の行数は".$count."です";
?>
最後の行に改行が無いと1行少なくなる
0177nobodyさん05/03/19 10:32:13ID:???
たぶんちょー基本的な質問なんだけど、
ここに出て来る @ ってなに?

$fp = @fopen($file, "w");
$write = @fputs($fp, $contents);
@fclose($fp);
0178nobodyさん05/03/19 10:41:48ID:???
そのまま$fileの部分を$filesにして試してみ
@があるとないの違いがわかる。
017917705/03/19 10:45:34ID:???
ttp://us2.php.net/manual/ja/function.fopen.php
で見つけたけど、warning を出さなくする修飾子ってこと?
0180にーchan05/03/19 10:54:51ID:XBx83jBt
phpにてメールを送信するプログラムで送信テストをしているのですが
Warning: mb_send_mail(): Failed to connect to mailserver at "192.168.11.100" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\home\mail\a.php on line 10
とエラーが出てしまいます。
portはwebで開いているか確認できるページで確認したら開いてました。
php.iniでもsmtp_port = 25と記述もしてみたのですがだめでした。
php.iniのSMTPをniftyのSMTPサーバー名にしても同じく・・・
他に考えられる原因は何があるでしょうか?
0181nobodyさん05/03/19 11:21:46ID:???
>180
・SMTPサーバが動いていない
・SMTPサーバを勝手に使えないよう制限されている
のどちらか。
0182nobodyさん05/03/19 11:40:40ID:???
>>180
>portはwebで開いているか確認できるページで確認したら開いてました。
例示がローカルアドレスなのに、webでのチェッカーで確認したというのが怪しい。
0183にーchan05/03/19 12:06:15ID:???
>181
・SMTPサーバが動いていない
・SMTPサーバを勝手に使えないよう制限されている
とはメールサーバを立てているのですがそれの設定が違ってるってことでしょうか?

>182
外部へポートが開いていた場合でもローカルは閉じている場合はあるのでしょうか?
0184nobodyさん05/03/19 12:07:10ID:0sO4bGN4
php の error log に任意を文字列を出力する方法ってある??
0185nobodyさん05/03/19 12:19:00ID:???
>>184
使ったことないけど、trigger_error()あたり。
0186nobodyさん05/03/19 12:40:14ID:???
>>184
マニュアルの
XXX. エラー処理およびログ記録関数
0187nobodyさん05/03/19 14:05:22ID:oXb2sDzY
個人情報だのパスワードだのって、暗号化とかしてる?
暗号化してDBに保存、読み出して複合化とかしたいんだけどPHP中やDBに複合化の
Keyとかプレーンで書いておいたら意味が無いかとも思うしかといってKey暗号化しておいたら
Keyの複合化どーすんのよっつーか
0188nobodyさん05/03/19 14:12:54ID:???
復号しなくていいようにすればいいじゃない
0189nobodyさん05/03/19 14:20:54ID:oXb2sDzY
>>188
比較だけなら暗号化したもの同士で行えば良いんだろうけど
例えば会員がパスワード忘れて問い合わせてきた場合は?
もっかい登録しなおせって訳にもいかないだろうし、個人情報についても
保護法絡みで共有サーバなんかの場合暗号化しときたいんだけど
0190nobodyさん05/03/19 16:04:52ID:???
>>189
もう一回登録させるのに何か問題でも?
0191nobodyさん05/03/19 17:43:17ID:???
>>189
そういう時は、自動生成したパスワードを再発行してやり変更が必要ならそっちで勝手に変えてね
とすればよい。
0192nobodyさん05/03/19 18:21:51ID:Mh3YU28A
ISAPIでHTTP_REFERERとHTTP_USER_AGENTが取得出来ないんですが
なぜでしょう?
0193nobodyさん05/03/19 18:35:39ID:???
>>192
基本的には通常通りサーバが吐いてれば取れるはずだが、
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iissdk/html/21b3be8f-d4ed-4059-8e21-6cba2c253006.asp
AN-httpdとISAPI版PHPとではバージョン違いの組み合わせで
取れたり取れなかったしてた時があったな。
CGI版だと取れたり。
0194nobodyさん05/03/19 18:37:27ID:???
>>192
anhttpdだろ?
作者に聞け
0195nobodyさん05/03/20 03:54:17ID:34HEFa63
FAQがなかったのでよくある質問っぽいんですが書きます。

Ver.4.3.10を使っていてphpinfoをみると
--enable-mbstring=shared
という一文があるのですが、mb_string系の関数がundifinedといわれて困っています。

どうすればmb_string系の関数を使用できるのでしょうか?
0196nobodyさん05/03/20 04:12:49ID:???
>>195
たぶん dl()
0197nobodyさん05/03/20 04:21:53ID:34HEFa63
>>196
ちょっと意味がわからないのですがどういう意味でしょう?
0198nobodyさん05/03/20 04:28:43ID:???
>>197
関数を使って動的にロードしろってことだろ。
0199nobodyさん05/03/20 04:32:48ID:34HEFa63
>>198なるほど。
ちなみにロードするファイル名は何でしょうか?
教えて君ですいません
0200nobodyさん05/03/20 05:39:18ID:???
>>199
すみません、マニュアルって知ってますか?
0201nobodyさん05/03/20 05:45:12ID:???
>>199
http://jp2.php.net/manual/ja/function.dl.php

*mbstring*なファイル名。最もmbstringはdlできたんだっけ?
0202nobodyさん05/03/20 17:42:42ID:???
みかんと林檎と梨の値段を計算するプログラムを作ってみようと試みています。
最初にチェックボックス形式でチェックした品名だけをドロップダウンリスト形式で表示させ
ドロップダウンリストから選択した品名の個数を入力して値段を計算させる、という感じで作ろうとしています。
↓-----index.phpの一部-----↓
<form method="POST" action="test.php">
<input type="checkbox" name="check[]" value="みかん">みかん<br>
<input type="checkbox" name="check[]" value="林檎">林檎<br>
<input type="checkbox" name="check[]" value="梨">梨<br>
<input type="submit" value="OK">
↑----------↑
↓--test.phpの一部--↓
echo "<form method=POST action=" . {$_SERVER['PHP_SELF']} . ">\n";
echo "<select name=name>\n";
for( $i=0; $i<count($_POST['check']); $i++) {
echo " <option value=$_POST['check'][$i]>$_POST['check'][$i]\n";
}
echo "</select><br>\n";
echo "個数:<input type=text size=6 name=pieces value=" . {$_POST['pieces']} . ">\n";
echo "<input type=submit value=計算>\n";
echo "</form>\n";
↑----------↑

ドロップダウンリストから選択して計算までは出来るのですが、
計算を実行したあとドロップダウンリストの中身が空っぽになってしまいます。
このドロップダウンリストの中身を保持して欲しいのですが、どの様にすればよいのでしょうか?
0203nobodyさん05/03/20 17:58:06ID:???
>>202
> ドロップダウンリストから選択して計算までは出来るのですが
いや、どうみても出来てないっしょ、そのソースを見る限り。
それは置いておくとして、
1回目のtest.phpで<select name="name">の指定があるので
2回目のtest.phpでは $_POST['name'] と $_POST['pieces']の2つの変数がセットされます。
従って、for($i=0;$i<count($_POST['check']);$i++)の内部が実行されることはありません。
020420205/03/20 19:06:41ID:???
>>203
速レス有り難うございます。
すいません、よく分からなくなってしまったのでソース全部晒します。
################test.php################
<?php
include_once("display.inc");
include_once("input.inc");
include_once("calc.inc");
include_once("result.inc");
if (empty($_POST['pieces'])):
$_POST['pieces'] = "";
endif;
display_input_area();
if (!empty($_POST['pieces']) && input_is_valid()):
$result = calc_mikan();
display_result($result);
endif;
?>
################item_data.inc################
<?php
$check = $_POST['check'];
$item_data = array(
"みかん" => array(
"price" => "26",
"tax" => "0"
),
"林檎" => array(
"price" => "30",
"tax" => "0"
)
);
?>
0205nobodyさん05/03/20 19:08:08ID:???
################display.inc################
<?php
function display_input_area()
{
require("item_data.inc");
print <<<__EOD1__
<form method=POST action="{$_SERVER['PHP_SELF']}">
<table><tr><td>
__EOD1__;
echo "<select name=name>\n";
for( $i=0; $i<count($check); $i++) {
echo " <option value=$check[$i]>$check[$i]\n";
}
echo "</select>\n";
print <<<__EOD2__
</td><td>個数:<input type=text size=6 name=pieces value="{$_POST['pieces']}">
</td><td>税率(%):<input type text size=4 name=tax value="{$_POST['tax']}">
</td></tr></table><br><input type=submit value="計算"></form>
__EOD2__;
}
################calc.inc################
<?php
function calc_mikan()
{
require("item_data.inc");
$name = $_POST['name'];
$char_tax = $_POST['tax'];
$base_price = $item_data[$name]['price'];
$mikan = $base_mikan * (1 + $char_tax / 100);
return (integer)$mikan;
}
?>
0206nobodyさん05/03/20 19:13:18ID:???
################input.inc################
<?php
function input_is_valid()
{
if ($_POST['pieces'] > 0):
return TRUE;
endif;
return FALSE;
}
?>
################result.inc################
<?php
function display_result($result)
{
require("item_data.inc");
print <<< __EEE__
<table border=0 cellpadding=2 cellspacing=1 bgcolor=#696969><tr>
<td width=120 align=center bgcolor=#e6e6fa>品名</td>
<td align=center bgcolor=#e6e6fa>個数</td>
<td align=center bgcolor=#e6e6fa>値段</td></tr><tr>
<td width=120 bgcolor=white>{$_POST['name']}</td>
<td bgcolor=white>{$_POST['pieces']}</td>
<td bgcolor=white>{$result}</td></tr></table>
__EEE__;
}
?>
徹底攻略見ながら作ったのがバレバレで恥ずかしい・・・
>2回目のtest.phpでは $_POST['name'] と $_POST['pieces']の2つの変数がセットされます。
>従って、for($i=0;$i<count($_POST['check']);$i++)の内部が実行されることはありません。
なぜ、2度目以降ではforループの内部が実行されないのでしょうか。
0207nobodyさん05/03/20 19:27:47ID:???
endif; ???
0208nobodyさん05/03/20 19:40:30ID:???
>>207
制御構造に関する別の構文
ttp://www.php.net/manual/ja/control-structures.alternative-syntax.php
これって、マニュアルでしか見た事なかったよ。。実際に使っている人がいたのか(笑)
0209nobodyさん05/03/20 19:43:11ID:???
>>208
おぉ、そんなのが有ったのか、一つ賢くなった。
0210nobodyさん05/03/21 00:42:45ID:???
出力する際にHTMLを書くのが面倒になってきたのですが、
連想配列を渡すとリストとして返ってくる関数とか無いですか?
0211nobodyさん05/03/21 00:44:11ID:???
そういう関数作ってみてはいかが?
0212nobodyさん05/03/21 01:23:52ID:???
>>210
配列渡すとテーブルとかリストで吐くような機能を持った
テンプレートクラスがあった気がする。
0213nobodyさん2005/03/21(月) 09:29:01ID:???
ある web から引っ張ってきた文字列から
例えば strip_tags()した後、  だけ取り除きたい時って
どうすればいいの?
02142132005/03/21(月) 09:33:40ID:???
アフォでした。

例えば strip_tags()した後、&ンBSP;だけ取り除きたい時って

って書きました…
0215nobodyさん2005/03/21(月) 09:37:09ID:???
>>214
str_replaceでも使えば?
■ このスレッドは過去ログ倉庫に格納されています