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

【PHP】下らねぇ質問はここに書き込みやがれpart13

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/11/25(金) 21:16:56ID:???
PHPに関するくだらねぇ質問用スレです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい

・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
【PHP】くだらねぇ質問はここに書き込みやがれpart8
http://pc8.2ch.net/test/read.cgi/php/1123431535/
【PHP】くだらねぇ質問はここに書き込みやがれpart9
http://pc8.2ch.net/test/read.cgi/php/1125716012/
【PHP】下らねぇ質問はここに書き込みやがれpart10
http://pc8.2ch.net/test/read.cgi/php/1127581425/
【PHP】下らねぇ質問はここに書き込みやがれpart11
http://pc8.2ch.net/test/read.cgi/php/1129582431/
【PHP】下らねぇ質問はここに書き込みやがれpart12
http://pc8.2ch.net/test/read.cgi/php/1130835396/
0611nobodyさん2005/12/09(金) 17:27:38ID:???
>>610
意見ありがとうございます。
add0でポストされていても、i=2になっていたりするので、上手くいかないのですorz
breakしてないからかもですが・・・。

現状で上手く動作してるので妥協してるのですが、もう少しいじってみます。
0612nobodyさん2005/12/09(金) 17:36:35ID:???
$fruit =array("りんご","ばなな","めろん","いちご/ぶどう/なし");
となっていて、配列$fruitにぶどうがある場合、falseにしたいんですけど、
これって、list($f[0],$f[1],$f[2]) = expload("/",$fruit[3]);
みたいに分解してからチェックするしかないですかね?
スマートなやり方があれば教えて欲しいんですけれど、公式でarrayの関数順番に見るもそういう関数が見当たらないので(´д`)
0613nobodyさん2005/12/09(金) 17:39:15ID:???
よし俺がスルー
0614nobodyさん2005/12/09(金) 17:40:43ID:???
>>612
配列$fruitにぶどうがある場合って、"いちご/ぶどう/なし"が要素にある場合も含めるの?
だったらpreg_grepかな。
0615nobodyさん2005/12/09(金) 17:44:56ID:???
>>614
でもって、「ぶどう」のみならin_arrrayと。
0616nobodyさん2005/12/09(金) 17:52:21ID:???
>>614615様

ぶどうのみなのでin_arrayかな・・・。
となると、
$fruit =array("りんご","ばなな","めろん","いちご/ぶどう/なし"); で、
if(in_array("ぶどう","$fruit)){
echo "ぶどうあり。"
}

だと、trueって事ですか・・・。
しらなかったです。ありがとう!
0617nobodyさん2005/12/09(金) 17:54:16ID:???
先生、ぶどうありって出ません゜ + 。・゜・(ノД`)
0618nobodyさん2005/12/09(金) 18:04:33ID:???
HAHAHA!
in_array()のマニュアルよく読んでみ
0619nobodyさん2005/12/09(金) 18:06:49ID:???
>>617
だから、
614が"いちご/ぶどう/なし"が要素にある場合も含めるのかって書いてるじゃん。

0620nobodyさん2005/12/09(金) 18:30:08ID:???
正規表現まだ勉強してなかったんですけれど、これむずいですね(ノД`)
特殊な法則みたいなの覚えないと駄目みたい・・・。
取り合えずはexploadで分解してチェックする事にしますorz
0621nobodyさん2005/12/09(金) 18:42:56ID:JUWxzeIo
ImageCopy関数で、
画像のサイズは指定し縮小はできますが、画像の容量を指定し
縮小する方法はありませんでしょうか?

50KB 横240 縦180
↓
10KB 横* 縦*
0622nobodyさん2005/12/09(金) 18:43:28ID:???
無い
0623nobodyさん2005/12/09(金) 19:32:08ID:???
>>620よ expload じゃない。explode だ。英語頑張ろうな。
0624nobodyさん2005/12/09(金) 22:18:50ID:???
設置したsubmitボタンをある条件を満たすと他のボタンに取り替えるという事はできますでしょうか?
ご存知の方やり方を教えて頂けると幸いです。
0625nobodyさん2005/12/09(金) 22:24:25ID:???
>>624
小人さんにでも頼んでください。
0626nobodyさん2005/12/09(金) 22:24:29ID:???
>>624 Ajax
0627nobodyさん2005/12/09(金) 22:24:52ID:???
$_GETや$_POST、$_SESSIONなどの変数の値に応じて変更させるとか。
0628nobodyさん2005/12/09(金) 22:39:06ID:???
>>621
MLでの回答を気長に待ってください。
0629nobodyさん2005/12/09(金) 22:42:42ID:???
ありがとうございます。
既にボタンを設置した後だと駄目なんですかねぇ・・・。
0630nobodyさん2005/12/09(金) 22:45:31ID:???
(゚Д゚)ハァ?
0631nobodyさん2005/12/09(金) 22:58:44ID:???
いえ、submitのようなボタンにも、str_replaceのような関数があればいいなと思ったんです。
意味不明な事言ってたらすみませんm(._.)m
0632nobodyさん2005/12/09(金) 23:20:00ID:???
>>631
それはJavaScriptでできるだろうが
0633nobodyさん2005/12/09(金) 23:46:12ID:???
あぁぁ、JavaScriptですか、なるほど!
ありがとうございます!
0634nobodyさん2005/12/10(土) 00:39:08ID:???
アホだ・・・
0635nobodyさん2005/12/10(土) 01:46:07ID:???
ログイン後の各ページで、ログイン状態か否かをセッションで
判定してます。

[login.php]
ini_set('session.gc_maxlifetime', "3600");
session_start();

$_SESSION["lid"] = $hogehoge;
header("Location: index.php");

[各ページ]
ini_set("session.gc_maxlifetime", "3600");
session_start();

if (!isset($_SESSION["lid"])){
header("Location: login.php");

}

gc起動して掃除→login.phpへリダイレクトされるまで 3600秒のハズですが、
なぜかデフォルトの1440秒でセッションが切れ、login.phpへリダイレクトしてしまいます。

session.gc_maxlifetimeの内容をdumpしてみたのですが、ローカルでは3600に
なっているようです。

共用サーバーなのでphp.iniの直接変更はできません。
どうにも原因がつかめません。
解決の糸口はありますでしょうか…

0636nobodyさん2005/12/10(土) 03:30:32ID:???
>>635
連鯖だとセッションを同じところに保存するかもしれないので無理かも
phpinfoでsession.save_path見てみれ。/tmpなんぞになってると他人に
GCされてる可能性蟻
.htaccessでphp_valueが設定できるならsession.save_pathを指定するか
session_save_path()して変更して確認してみれ
0637nobodyさん2005/12/10(土) 05:18:00ID:???
>>633-634ワロス
0638nobodyさん2005/12/10(土) 12:03:17ID:A5Y35bGz
GDライブラリを使って動的に画像を変更させたいです。
(例えば生徒の点数を入力すると点数の分布の折れ線グラフが出るとか)

イメージを表示するファイルの変数をdefineとかで記して、
直接ファイルを書き換える以外に方法はありますか?

できたらファイルを弄らずに関数みたいに出来たらと思うんですが。
0639nobodyさん2005/12/10(土) 12:23:40ID:???
>>638
画像ファイルをいじるのではなく、その都度生成すれば?
0640nobodyさん2005/12/10(土) 12:28:52ID:???
Win版 PHP5 + Apache2で環境作っててハマってます。

症状:
GDやMb_Stringなど追加モジュールが、Apacheから php5apache2.dllモジュール経由だとロードできてないが、
同じスクリプトを、コマンドラインから php.exeで実行すると追加モジュールのロードはできる。

環境: Apache 2.0.55 + PHP 5.1.1および5.1.2-dev

※httpd.conf
LoadModule php5_module D:\php\php5apache2.dll
AddType application/x-httpd-php .php

※php.ini #php.ini-distからの変更点
magic_quotes_gpc = Off
extension_dir = "D:/php/ext"
upload_tmp_dir = "C:/tmp"
extension=php_exif.dll
extension=php_gd2.dll
extension=php_mysql.dll
extension=php_mbstring.dll

Linuxで自分でビルドする方が楽だと思う今日この頃。
0641nobodyさん2005/12/10(土) 12:34:10ID:???
>>638
グラフ作りたいならjpgraph
ttp://www.aditus.nu/jpgraph/
0642nobodyさん2005/12/10(土) 12:36:29ID:???
>>640
php.ini自体が読み込めてないんじゃないの
phpinfo()で確認してみ
0643nobodyさん2005/12/10(土) 12:45:10ID:???
>>642
さんくす、ビンゴだった。
Win版は、C:\WinNT に php.ini 置かないといけないのね…。
Linux, Unixでしか環境作ったことないから、php.ini は、
インストールディレクトリで良いとばっかり思ってたよ。
0644nobodyさん2005/12/10(土) 13:01:37ID:???
>>643
俺はいちいちコピーするのがめんどくさいので
httpd.confに
PHPIniDir "C:\php5.1"
と書いてる
0645nobodyさん2005/12/10(土) 13:02:21ID:9PXirItw
参照渡しについて質問なのですが
仕事で見せられた規約には「なるべく参照渡しを使え、理由は値渡しよりパフォーマンスがあがるから」ということです。
理由付けはどうでもいいのですが、既存の他の人のコードを見ると参照渡しの実際の書き方についていくつか方法があるようで私なりに意味を考えたのですがおかしいところがあればつっこんで欲しいのです

1番 $obj = &new Object();
$objには(どこかに実体が存在している名前無しのnew Object()の)参照が入る

2番 function &getValue() { return $obj;}
$objは実体(インスタンス)だが $retObj = getValue();で取得した$retObjは$objの参照となる

3番 function &getValue(){}を呼び出すとき
$retObj = &getValue();
$retObj = getValue();
のどちらでも変わらない 両方とも結果の参照が入る(2番と同じ状態になる)

4番 function getValue(){}を呼び出すとき
$retObj = &getValue(); は結果の参照が入る(2番と同じ状態になる)
$retObj = getValue(); は結果のコピーが入る

5番 $strVal1 = &$strVal2; 参照が入る?

6番 function setValue(&$strVal){$this->val=$strVal} 5番と同じ状態になる?

7番 function setValue(&$strVal){$this->val=$strVal} となっている状態で
$strMyVal = "abc"; setValue($strMyVal); とやると、$strMyValの参照が自動的に渡される

8番 上記7番の状態で setValue(&$strMyVal); を呼び出すと・・・?どうなる?
06466452005/12/10(土) 13:06:23ID:9PXirItw
という風に、双方向から&を使うとわけがわからなくなるので

関数の引数はdefineで定義したものも入れたいこともあるでしょうから
すべて function setValue($strValu)と&無しで書いて
呼び出し元の方で参照を渡すのか参照を取得のか↓したほうが混乱しないと思うんですが・・・
// 呼び出し
setValue(&$strTest);
// 取得
$strVal = &getValue();
0647nobodyさん2005/12/10(土) 13:09:35ID:???
>>644
そっちの方がスマートなんで、それ採用。
ありがとです。
0648nobodyさん2005/12/10(土) 13:51:16ID:???
>>646
call_time_pass_reference はそのうちサポートされなくなるらしいよ。
その呼び出し時に参照を渡すって奴ね。
0649nobodyさん2005/12/10(土) 14:26:17ID:???
>>646
マニュアルにもそう書いてあるしね。
一番の解決法はPHP5を使う
06506382005/12/10(土) 14:40:59ID:???
>>639
やー、何かファイル作ったりとか怖いんで。
初心者につきビビリーです。

>>641
便利そうなのかな。ちょっと試してみますね。
0651nobodyさん2005/12/10(土) 15:49:35ID:???
>>45
1番参照
2番はコピー
3番は上は参照、下はコピー
4番どちらもコピー
5番参照
6番コピー
7番コピー
8番コピー

マニュアルにある通り、参照を受け取っても=演算子を使えばコピーされる
>>646はphp4で書くなら悪くない選択

ちなみに「リファレンスが高パフォーマンス」はよくあるガイセビア
これが正しいのはメソッド内でパラメータを「書き換える」場合のみ

その他の場合ではコピーオンライトなPHPでは参照を使ったほうが
遅いしメモリ喰い

参照で受けたパラメータをコピーすると(6番のケース)値コピーで
渡す場合にくらべて1000倍ほど時間がかかってビビるのは初心者に
ありがち

駄目なコーディング規約を嘆きつつ、次のプロジェクトでは規約の
改定に挑みましょう
0652nobodyさん2005/12/10(土) 16:15:27ID:???
> >>646はphp4で書くなら悪くない選択

えぇぇぇぇ!?
0653nobodyさん2005/12/10(土) 16:17:13ID:???
同じ理由でこれも遅い。

 setValue($strVal) {
  $this->val =& $strVal;
 }
}

$obj->setValue($strMyVal); or $obj->setValue(MY_CONST);

まあ実行コストの話は置いておいて、関数がなぜデフォルトで
値渡しなのか小一時間考えたほうがいいかもね。
06546452005/12/10(土) 16:19:23ID:???
皆さん
ありがとうございます

>参照で受けたパラメータをコピーすると(6番のケース)値コピーで
>渡す場合にくらべて1000倍ほど時間がかかってビビるのは初心者に
>ありがち

あーなんか始めたばっかりのころ、
ぜんぜん画面が出ないなぁと思って 「&」 消したら直ったことがあったのですが
そういう理由だったんですねぇ
そのときから、「&」に対して避けて通ってきた

関数に渡すときに、その値を関数内で変更する必要があるとき以外は普通に書いておいたほうがよいのでしょうかね?
0655nobodyさん2005/12/10(土) 16:36:01ID:???
マニュアルにはそう書いてある
http://php.net/manual/ja/language.oop.newref.php
> 逆に多くの場合、参照を使うよりも単純にコピーを使った方が良い結果となります

破壊的関数はデバッグしにくい原因になるし、パフォーマンスの
改善が見込まれる部分だけ参照に変更するのが一般的だと思う
基本的に参照を使うのはオブジェクトの受け渡しのみ

ただしコーディング規約がある以上そっちが優先だけどね
0656nobodyさん2005/12/10(土) 16:48:52ID:???
半角スペースを区切り文字としてそれぞれ文字列に格納したいのですが、
(例:「1 2 3」を$a=1,$b=2,$c=3といった具合)
半角スペースが区切り文字だと何か不安です。
環境によっては上手く動作しないような。杞憂でしょうか?
0657nobodyさん2005/12/10(土) 16:49:21ID:vDRN2V5d
http://www.kent-web.com/pwd/login.html

ここのログイン、解説通りに設定したけど。ログインしようとすると、ソースが表示されてしまうん
だけど。原因なんだろ。?
0658nobodyさん2005/12/10(土) 16:59:01ID:???
>>656
不安って…EBCDIC環境とかか?
ASCIIコードが使えない環境まで考慮するのは考えすぎじゃないのか?
0659nobodyさん2005/12/10(土) 17:00:32ID:???
>>657
なんでPerlスクリプトの質問をここでするん?
0660nobodyさん2005/12/10(土) 17:01:01ID:???
なんだったら\x20で書き出せば
0661nobodyさん2005/12/10(土) 20:05:54ID:UVx/Wp+9
phpのインストールについてはこのスレでいいんでしょうか?
もし、専用のスレがあれば誘導をお願いします。

現在、RedHatEnterpriseLinux3 ES を使っています。
Apache : 2.2.0
php : 4.4.1
をソースからのコンパイルでインストールしています。

上記環境で、SimpleXMLを使用したく、phpのconfigureオプションに--enable-simplexmlを追加して
コンパイル→インストールを行ったのですが、simplexml_load_file(FILE)関数が"undefined function"となってしまいます。

コンパイル時やインストール時には、エラーの類は出ておりません。

phpinfo()のConfigure Commandにもちゃんと--enable-simplexmlが表示されています。
PHP4でのSimpleXMLの情報が少なく行き詰ってしまいました。

php-4.4.1にてSimpleXMLを使用するにはどうすればいいのでしょうか?
宜しくお願いします。
0662nobodyさん2005/12/10(土) 20:30:09ID:???
>>661
SimpleXMLってPHP4にバックポートされたの?PHP5のみだと思うけど。
マニュアルのsimplexml_load_file()の項とか
configureオプション(マニュアルじゃなくてソースの方)を確認してみな。
0663nobodyさん2005/12/10(土) 20:41:55ID:???
>>662
configureオプションのソースにはありませんでした・・・

しかし、SimpleXMLを調べている時に
http://sb.xrea.com/showthread.php?t=10288
を見つけて、PHP4でもインストールできるような感じがしたので、、、

また、手持ちのPHP本にもPHP5からデフォルトでインストールされるが、
PHP4系ではconfigureオプションで指定するように書いてあります。

使えないのでしょうか??
0664nobodyさん2005/12/10(土) 21:28:03ID:???
>>663
質問者の勘違いというより勉強不足による間違いだと思うよ。
因みに「手持ちの本」って何?

PHP4でのSimpleXMLライクな試みは、あるにはあるみたいだけどね
http://www.ister.org/code/simplexml44/index.xhtml
http://minixml.psychogenic.com/
中身見てないけど。
0665nobodyさん2005/12/10(土) 21:39:40ID:???
>>664
すみません。ありがとうございます。
今、手持ちの本を見返して見た所、
「SimpleXMLを使用するにはconfigureオプションで組み込むか、PHP5からは標準で組み込まれた・・・」
というような書き方がされていまして、てっきりconfigureオプションで組み込めるものだと思い込んでいました。

>>663のサポートボードの質問に対して、
xreaのWebmasterが4.4.2に入れ替える時に検討します。って返事かいているもんで、完全に勘違いしておりました。
そのサポートボードにも、他のPHP4系へのSimpleXML導入してください。ってメッセージもありました・・・
0666nobodyさん2005/12/11(日) 00:07:12ID:CWApnEja
xreaにhttp://php.s3.to/net/kusi.phpswo
0667nobodyさん2005/12/11(日) 00:11:00ID:CWApnEja
失敗
xreaにhttp://php.s3.to/net/kusi.phpsをアップしてパーミッションもちゃんと設定したんですが、
Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of fsockopen().
If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer.
in /virtual/アカウント名/public_html/kusi3.php(ファイル名) on line 76
とエラー表示されてしまいます。使用はできるんですが動作が重いような気がします。tok2などの鯖では正常に動作しました。
何が原因でしょうか?スクリプトに文法的な間違いがあるのでしょうか?
0668nobodyさん2005/12/11(日) 00:16:15ID:???
  _, ._
(;゚ Д゚) 俺にはwarningに見えるんだが?
0669nobodyさん2005/12/11(日) 00:16:35ID:???
warningってなに?
0670nobodyさん2005/12/11(日) 00:17:07ID:???
>>667
エラーメッセージに書いてあるそのまんまなんだけどな。英語読めないとか言うなよ。
元々xreaではその手のCGIは歓迎されておらず、制限が厳しめになっている。
0671nobodyさん2005/12/11(日) 00:21:12ID:CWApnEja
頑張ってよんでみたんですが
allow_call_time_pass_referenceを設定すればOK?ただし推奨しない?
わからん・・・つまりxreaに嫌われてて対処法はないってことですか?
0672nobodyさん2005/12/11(日) 00:24:04ID:???
warningってことはつまり無視して良いよって事だよ
06736672005/12/11(日) 00:25:07ID:???
本当はおまえらわかんないだけだろ?直せないなら最初から正直に言えよな。
0674nobodyさん2005/12/11(日) 00:34:38ID:???
WinXP+Apache2.0.54.0+PHP5.1.1でapacheを停止させるとphp_mysql.dllで
エラー吐いてる人って居ない?。必ずエラーはくんだが・・・・。
06756672005/12/11(日) 00:36:01ID:CWApnEja
>>674
いねーよ。
0676nobodyさん2005/12/11(日) 00:38:37ID:???
>>673
エラーのまんまじゃん、そのソースの76行目
$fp = fsockopen($host, 80, &$errno, &$errstr, $time_out);

実体参照使っている。xreaのPHPは実体参照時にWarningがでる。
実体参照を使わずに、一時変数を使って場を凌げ。
0677nobodyさん2005/12/11(日) 00:45:13ID:???
じ、実体参照ぉ?
一時変数っていうか、&とればいいのでは?
0678nobodyさん2005/12/11(日) 00:50:47ID:???
>>677
本当だありがとう
>>676もありがとう
ふひひh
0679nobodyさん2005/12/11(日) 01:18:40ID:???
微妙に香ばしいな >ID:CWApnEja
0680nobodyさん2005/12/11(日) 01:24:29ID:???
2ちゃんで自演でもしようとたくらんでんじゃね?
まぁどのみち>>667のスクリプトでは、改良しない限り書き込みできないがw
06816352005/12/11(日) 01:55:45ID:???
>>636
THX!
試してみます。
0682nobodyさん2005/12/11(日) 02:58:35ID:???
変数$a = 1,2,3,4
で1〜4をランダムに削除したい場合どんな方法があるでしょうか?
例:$a = 1,3,4

考えたのが$aを配列に返還して、要素を抜き取るって
再度結合というのなんですが、一部の要素を抜き取る方法がわかりません。
お助けを。
06836822005/12/11(日) 02:59:30ID:???
日本語ごちゃごちゃですな、深夜なのでスマソ
0684nobodyさん2005/12/11(日) 03:08:25ID:???
$a = '1,2,3,4';か?
それならexplode。
0685nobodyさん2005/12/11(日) 03:16:16ID:???
>>682
配列から一部の要素を削除するには
array_splice(), array_shift(), array_pop(), unset()
のいずれかを使えばOK
0686nobodyさん2005/12/11(日) 03:22:35ID:???
$a = "1,2,3,4";
$b = explode(",",$a);
array_splice($b,array_rand($b),1);
$c = implode(",",$b);
0687nobodyさん2005/12/11(日) 07:06:00ID:???
計算機のようなものを作っているんですけど、
1度入力したものが計算と同時にリセットされてしまいます。
クッキーを使う以外の方法で直前にポストしたものを、
また表示するというようなことはできないでしょうか?
<option>タグでプルダウン形式にしてるので、
クッキーを使う方法だと難しそうなのでできないのです。
0688nobodyさん2005/12/11(日) 07:28:40ID:???
>>687
どうやっているのかが書かれていないので想像するしかないんだが、
> 計算と同時にリセット
つーのが考え違いしてるんじゃないかな?
フォーム要素に初期値(デフォルト値)を設定していないものを
単に"新しく"読み込んでいるだけっしょ。
ならば、"適切に"初期値を設定してやればいいっしょ。これはHTMLレベルの知識っしょ。
06896872005/12/11(日) 07:42:22ID:???
>>688
レスどうもありがとうございます。
わかりづらくてすみません。
入力フォームと、結果を表示するフォームをわけているんですが、
計算実行のボタンを押して、
結果を表示しつつも、入力フォームを残すようにしています。
計算実行のボタンをおした時に、
入力フォームの値がデフォルト値に戻ってしまうので困っています。

ソースですが
$a=$_POST['a'];
$b=$_POST['b'];
$c=$a+$b;
print $c;

html側は
<form method="post" action="$_SERVER['PHP_SELF']">
<select name="a">
<option value="1">1</option>
<option value="2">2</option>
</select>
+
<select name="b">
<option value="1">1</option>
<option value="2">2</option>
</select>

こんな感じです。
デフォルトでは1+1になりますが、
2+2を選択して計算を実行したあとに、1+1に戻ってしまいます。
これを2+2のままにしたいということです。
0690nobodyさん2005/12/11(日) 07:49:44ID:???
フォームの出力の際に、<option 〜 selected>のようにして、適切なoptionを選択状態にすればいいよ。
そうすれば、まるで選択したものが残っているかのように見えるから。
0691nobodyさん2005/12/11(日) 07:52:12ID:???
>>689
688さんが言われるとおり,HTMLの問題だよ.
option要素にselected属性を使う.
a,bの値で条件判定して,初期選択にしたい方に
<option value="N" selected="selected">N</option>
となるようにPHPを書けばOK.書き方はいろいろあるから,考えてみて.
06926872005/12/11(日) 07:57:30ID:???
>>688 >>690 >>691
皆様どうもありがとうございます。
1をselectedにして、2を選択したところ、
selected(1)に戻ってしまいました。
どうも考え方が間違ってるようなので
頑張って考えて方法を探したいと思います。
06936912005/12/11(日) 08:03:41ID:???
>>692
>1をselectedにして、2を選択したところ、
>selected(1)に戻ってしまいました。
…当たり前じゃん.1が初期選択になっているんだから.
$_POSTの値によって,どれをselectedにするかをPHPで書くんだよ.
2だったら,1じゃなくて,2にselectedを指定しなきゃ.
06946872005/12/11(日) 08:06:11ID:???
>>693
>$_POSTの値によって,どれをselectedにするかをPHPで書くんだよ.
これはいいヒントをどうもありがとうございます!
頭が固いもんでorz
早速書き直してみたいと思います。
0695nobodyさん2005/12/11(日) 08:34:13ID:???
関係ないけどSELECTのデフォ指定ってベタ書きするのめんどくさいよね
0696nobodyさん2005/12/11(日) 11:20:07ID:???
もしかして、クラスメンバの宣言でPHP4互換のvarではなく
publicやprotected、privateと宣言した方がパフォーマンス良いの?

書き換えていったら動作が機敏になった・・・
0697nobodyさん2005/12/11(日) 11:33:42ID:???
<OPTION VALUE="1"<?php if ($a == 1) { echo " checked"; } ?>>あ</OPTION>
0698nobodyさん2005/12/11(日) 13:34:34ID:???
みにくーい
0699nobodyさん2005/12/11(日) 13:39:28ID:???
埋め込みは嫌いなのでタグの出力は全部echoなりで括るのがマイルール
0700nobodyさん2005/12/11(日) 14:03:12ID:???
<?= ($a==1) ' checked' : ''?>でいいじゃないか。
0701nobodyさん2005/12/11(日) 14:59:39ID:???
>>689
いっそ入力フォームのページと結果のページを分けてしまって、
別targetのウインドウで結果ページを出してしまうとか。
そうすれば入力側のリロードは発生しないから入力内容を再現する必要なし。
ブラウザが別に立ち上がってしまうのがイヤならframeかiframeで。
0702nobodyさん2005/12/11(日) 15:06:13ID:???
>>699
俺はむしろPHPコードの中にHTMLタグが埋め込まれてるのが嫌いなので
echoでHTMLタグを出力するのは絶対禁止派。
あと、HTMLの中に<?〜?>を埋め込むスタイルならPeggyとかで
閉じタグジャンプが使えるので、閉じ忘れなどのミスも防ぎやすい。
0703nobodyさん2005/12/11(日) 15:19:14ID:???
>>697が何百行もあると鬱になるなあ。
JSPでこれをやったら半殺しの刑にされるけど。
0704nobodyさん2005/12/11(日) 15:28:44ID:???
>>697
俺は普段こう書いてる
<OPTION VALUE="1"<?php if($a == 1) { ?> checked<?php } ?>>あ</OPTION>
0705nobodyさん2005/12/11(日) 15:44:25ID:???
>>703
たくさん必要なら関数作るだろうからあんなの何行も書くことはないだろ。
プルダウンやテキストボックスなんかはフォーマットが決まっているから関数にし易いし。
0706nobodyさん2005/12/11(日) 16:07:05ID:???
おれ、Smarty使ってるんで関係ないや
0707nobodyさん2005/12/11(日) 17:27:24ID:???
checkedじゃなくて
selectedじゃね?
0708nobodyさん2005/12/11(日) 17:31:46ID:???
>>707
>>697が馬鹿
0709nobodyさん2005/12/11(日) 19:26:18ID:???
一度の読み込みで画像の容量、横縦サイズを取る方法はありませんか?

$file_name = "sample.jpg";
$size = filesize("$file_name");

$im_in = ImageCreateFromJPEG("$file_name");
$ix = ImageSX($im_in);
$iy = ImageSY($im_in);

print "サイズ:{$size} 横縦:{$ix}x{$iy}";
0710nobodyさん2005/12/11(日) 19:37:38ID:???
getimagesize
大きさだけ
■ このスレッドは過去ログ倉庫に格納されています