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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/11/01(火) 17:56:36ID:???
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/
0249nobodyさん2005/11/08(火) 11:16:15ID:???
>>248
なるほど.把握.さすがエスパー.

例えば,\1,000 っていう文字列なら \\1\,000 にして,
使うときに \1,000 に戻す.
02502492005/11/08(火) 11:21:08ID:???
CVS を読み取るときに \, は文字列中のカンマとして無視する.
0251nobodyさん2005/11/08(火) 11:25:34ID:???
>>248
その解釈でいいなら>>241に出てる。
0252nobodyさん2005/11/08(火) 11:36:36ID:???
自分で書いて、自分だけで読み込むのならカンマで区切らなくても
キーボードから入力できないような文字コードで区切ればいいじゃん。
0253nobodyさん2005/11/08(火) 16:56:52ID:???
CSVの良く見る仕様としては、
1.行は改行で区切る
2.列(項目)は,(カンマ)で区切る
3.列に,(カンマ)や改行を含める場合は"〜"でくくる
4."〜"内に"を含める場合は""と記述する
だと思うんだけど、どうだ?
0254nobodyさん2005/11/08(火) 17:21:27ID:???
file_exists()関数って引数に絶対パスはダメなんだっけ?
存在しているはずのどんなファイルでも絶対パスで通すと存在しないと言われる。
0255nobodyさん2005/11/08(火) 18:04:36ID:???
>>253

CSVの仕様自体がはっきりしてないけど、
漏れはちみと同じ仕様にしてる。
02562542005/11/08(火) 18:23:25ID:???
自己レス

原因が分かった。OSはWindows2000でPHPを動かしているんだが
その場合絶対パスは

C:\tmp\hoge\hoge.txt

みたいな形式になるんだ。
サーバーの絶対パス形式

/hoge/hoge.txt

をfile_exists()に通しても反応が返ってくるわけが無いよな。

C:\tmp\hoge\hoge.txt

を通したらちゃんと反応があった。

しかしややこしいな。OSの絶対パスか、HTTPサーバーの絶対パスか、どちらかで
統一してくれれば混乱しないのに。
0257nobodyさん2005/11/08(火) 18:32:33ID:SOO2TAAd
>>256
何に対して、OSの絶対パスか、HTTPサーバーの絶対パスを統一して欲しいの?
各関数の引数?
02582542005/11/08(火) 18:34:25ID:???
>>257
まずは関数の引数を統一したいね。
UNIX系とWindows系で\と/の違いを吸収したい。
02592562005/11/08(火) 18:39:47ID:???
>>258
???
例えば、file_exists() が、HTTPサーバーの絶対パスしか受け付けなければ
URLで参照できる位置にないファイルは存在チェックできなくなるんだが、それでいいの?
後、Windows系でもパス区切りは / で問題はないはず。
先の例でいれば、file_exists('C:/tmp/hoge/hoge.txt') でも動くと思うけど。
0260nobodyさん2005/11/08(火) 18:42:38ID:???
>>258
つーかwinでもunix式のパスで大丈夫だと思うが。
まあPHPのバージョンも晒してない奴に何とも言いようがない罠。
ちなみに手元の4.3と5.0ではfile_exists("/program files")でもtrue返す。
スクリプトがDドライブにあればD:をルートとした結果になる。
02612542005/11/08(火) 18:43:29ID:???
>>259

$_SERVER['SCRIPT_NAME']
で帰ってきた値を引数にするとfile_exists()もis_file()も正常に動作しない。

これってうまく対処できないかな?
0262nobodyさん2005/11/08(火) 18:48:55ID:???
>>261
$_SERVER['SCRIPT_NAME']の中身は確認したか?
02632572005/11/08(火) 18:55:00ID:???
>>261
$_SERVER['SCRIPT_NAME'] はURLパスで、それがどのローカルパスに対応しているかを
知っているのはWEBサーバーだけだから変換するのは無理。
スクリプトのファイル名なら __FILE__ で取得できるけど。。。
本当にやりたいことはそれでいいの?

>>259のコテハン間違えた。>>257 だったよ。ごめんね。
0264nobodyさん2005/11/08(火) 18:58:00ID:???
いや、むしろ$_SERVER['SCRIPT_FILENAME']ってのがやりたいんじゃないかと。
まあincludeとか何もしてないなら__FILE__と変わらんけど。
0265nobodyさん2005/11/08(火) 19:12:34ID:???
DBから情報を引き出して表示するphpをWEBブラウザで表示した場合にキャッシュが効いてしまって困っています。

phpをブラウザ表示
↓
php表示と関係無くDB内容が更新(他の人が作業等)
↓
phpをブラウザ再読み込み(更新)
↓
キャッシュが効いていて変更が反映されない


今困っているのはhtmlソースの記述部分でそうなっています。
このhtmlに変数を入れている部分がキャッシュされているんじゃないかと思う部分です。
変数部分が"selected"に1つだけなり初期選択になって欲しいのですが、firefoxでは駄目です。
<option value=\"0\" $michaku>未着手</option>
<option value=\"1\" $chakushu>着手</option>
<option value=\"2\" $kanryo>完了</option>
<option value=\"3\" $saigen>再現待ち</option>
<option value=\"4\" $etc>その他</option>

httpヘッダは下記のようにもしてみましたが駄目です・・
header("Cache-Control: no-cache,must-revalidate");
header("Pragma: no-cache");

metaヘッダも書いてみました・・
print '<meta http-equiv="Pragma" content="no-cache">';
print '<meta http-equiv="Cache-Control" content="no-cache">';

と思ったらIEは大丈夫でした・・
firefoxでは駄目ですね・・
狐のバグ?
02662542005/11/08(火) 19:17:22ID:???
>>263
> $_SERVER['SCRIPT_NAME'] はURLパスで、それがどのローカルパスに対応しているかを
> 知っているのはWEBサーバーだけだから変換するのは無理。

なるほど(´・ω・`)ショボーン

> スクリプトのファイル名なら __FILE__ で取得できるけど。。。
> 本当にやりたいことはそれでいいの?

ファイルのやりとりは
./hoge/hoge.txt
のような感じでやりとりしたかった。
__FILE__だと
C:\tmp\hoge\hoge.txt
という様に表記されるからそれに合わせてファイル指定も変更しなきゃならないか・・・
02672652005/11/08(火) 19:43:14ID:???
>>265
すいませんちょっと分かりにくい書き方しました。

<option value=\"0\" $michaku>未着手</option>
って部分はフォームのセレクトメニューのオプションです。

ここを別のメニュー選択をして再読み込みすると、firefoxではselectedが効かず読み込み前に選択していたものがそのまま選択されます。
なのでDBが絡まなくても起きる現象のようです。
他のセレクトメニューがあるwebサイトでも試しましたがfirefoxの仕様?
02682542005/11/08(火) 19:54:08ID:???
C:\tmp\hoge\hoge.txt

に対して

dirname()

をかけると

C:\tmp\hoge

が帰ってくる。だができればそうではなく

C:\tmp\hoge\

のように\もしくは/まで含めたい。$_SERVER['SCRIPT_NAME']で帰ってくる値の場合
パス区切り文字は常に/だったが、__FILE__の場合パス区切り文字はUNIX系かWindows系
で/と\と違うから別々に対応しなければならない。そこが__FILE__の面倒なところかな・・・
0269nobodyさん2005/11/08(火) 20:01:50ID:???
>>265
Firefoxだとselectedにかかわらず、ユーザが直前に選択していたものがそのまま残る。
キャッシュが残っているためではなく、Firefoxの仕様だと思われ。
再読み込みすれば、生成されたHTML自体(=selectedの場所)の変化は反映されてるよ。
ただ、表示上は前回のユーザの選択が残ってるだけ。

>>268
お前はまずレスを全部嫁。
独り言はチラシの裏に書け。
02702542005/11/08(火) 20:12:17ID:???
>>269
> お前はまずレスを全部嫁。
> 独り言はチラシの裏に書け。

ちょ、ま・・・
でも環境によって\か/みたいに違えばそれに合わせてプログラム組む必要があるだろ。
0271nobodyさん2005/11/08(火) 20:15:47ID:???
>>270
>>264

頼むからもう帰ってくれ
02722542005/11/08(火) 20:16:13ID:???
(´;ω;`)
0273nobodyさん2005/11/08(火) 20:23:08ID:???
>>265
ちょっとやってみたけど、以下のヘッダすべてを送出すると大丈夫っぽい。
Firefox1.0.7(Windows)で確認。

header('Thu, 01 Dec 1994 16:00:00 GMT'); //過去の日付
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
02742732005/11/08(火) 20:27:34ID:???
>>273
ごめん。漏れコードとマニュアルからのコピペを合体させたので
' と " がゴチャ混ぜだけど、意味はないんで。
02752542005/11/08(火) 20:37:41ID:???
自己解決(`・ω・´) シャキーン

DIRECTORY_SEPARATOR
0276nobodyさん2005/11/08(火) 20:42:22ID:???
>>272
$_SERVER['SCRIPT_FILENAME']が返すパスのセパレータは/。

>>265
Cache-Control: no-storeさえあればいけるみたいね。
0277nobodyさん2005/11/08(火) 20:45:05ID:???
>>275
自分で頑張っているところをアレだけど。
file_exists('C:\tmp\hoge\hoge.txt') でも 
file_exists('C:\tmp\hoge/hoge.txt') でもOKなんだが。
02782542005/11/08(火) 20:48:27ID:???
>>277
Σ(;´゚ω゚)!
0279nobodyさん2005/11/08(火) 20:51:12ID:???
>>278
お前その顔文字キモイからやめれ。
つーか帰れっつってんだろ。
解決したんだろ。
02802732005/11/08(火) 21:11:22ID:???
>>276
あれれ、本当だ。もう一度やってみたら仰せの通りだった orz
しかも、>>273 で書いたの間違ってるし… 重ね重ね orz
 header('Thu, 01 Dec 1994 16:00:00 GMT'); → header('Expires: Thu, 01 Dec 1994 16:00:00 GMT');

というわけで、整理して書き直します。

以下を送ればOKです。
header('Expires: Thu, 01 Dec 1994 16:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');

>>276氏の指摘により、再度確認したところ実は以下だけでOKでした。
header('Cache-Control: no-store');
02812652005/11/09(水) 09:48:39ID:???
>>269さん、>>273さん、>>276さん、ありがとうございました。
細かいところですが挙動が気持ち悪くてスタックしていたので助かりました。

firefoxはサーバに従うってポリシーが多くなっているような気がしますね。
それがRFC準拠なのかしら?
0282nobodyさん2005/11/09(水) 11:48:20ID:qQrEl19O
Tclスレがみあたらないのですが、どこかで話題になってるスレってありますか?
0283nobodyさん2005/11/09(水) 13:08:06ID:???
>>282
うーん。プログラム板のphpスレの方がいいのかも知れず。
0284nobodyさん2005/11/09(水) 13:26:06ID:???
すみません。ご教示ください。スレ違いでしたらご指導願います。
(1) セッションを使って以下のような画面遷移をします(クッキーではなくURL埋め込み)。
   http://localhost/logon.php
    ↓
   http://localhost/main.php?PHPSESSID=12345
(2) 別のブラウザを起動して (1) の URL をコピーして開きます。
   http://localhost/main.php?PHPSESSID=12345
(3) (1) と (2) で同じセッションを複数のブラウザが共用してしまいます。

実際に問題がある、ない、あった場合はどのような問題が?というのは
アプリの作りによるでしょうけど、できれば (2) の段階で不正チェックを
したいのですが、可能でしょうか?
よろしくお願いいたします。
0285nobodyさん2005/11/09(水) 13:49:12ID:???
>>284
多分無理。1つのパソコンで1人のユーザーが同時に起動した同じソフトを
サーバー側から区別する方法がないと思う
JavaScriptとかと組み合わせれば何とかなるカモ知れんけど。
0286nobodyさん2005/11/09(水) 14:04:30ID:???
session_regenerate_id()あたりを使えばできるんでないかのぅ。
02872842005/11/09(水) 15:18:16ID:???
>>285さん >>286さん、レスありがとうございます。

なるほど。
毎回セッションIDを変更してあげると、URLバーに表示されているセッションIDは
古いセッションIDで、実際のセッションIDとは既に異なっているからOKってことですね。

目からウロコです。
実際にやってみた所、古いセッションIDがすぐに破棄されなかったので、
(古いセッションIDでも開けてしまう)以下の様な流れで期待通りになりました。

session_start();
$savevalue = $_SESSION;
session_destory();

session_start();
session_regenerate_id();
$_SESSION = $savevalue;

助かりました。ありがとうございました。
0288nobodyさん2005/11/09(水) 16:52:56ID:???
echo "$val";
は正常に動作するのに

echo "$_SESSION['TEMP']";
はエラーが返されます。

何かまずい記述でもありますか?
ちなみにちゃんと$_SESSION['TEMP']は変数登録してますよ。
0289nobodyさん2005/11/09(水) 17:09:42ID:???
>>288
echo $_SESSION['TEMP'];
0290nobodyさん2005/11/09(水) 17:14:37ID:???
もしくは
echo "{$_SESSION['TEMP']}";
0291nobodyさん2005/11/09(水) 17:22:07ID:???
>>290
あ、なるほど。
連想配列は{}でかこってやらなければいけないんですか。
カムサハムニダ( ´∀`)
0292nobodyさん2005/11/09(水) 20:00:59ID:???
文字列に含まれるurlを正規表現で置き換えたいんだけど
urlとして使える文字ってわかります?
0293nobodyさん2005/11/09(水) 20:04:02ID:???
あ、今わかっている分を書いておきます。
見えやすいように全角で書きます。
英数字+−.%&=?/〜
他にあります?
0294nobodyさん2005/11/09(水) 20:05:25ID:???
>>292
ドメインじゃなくてURLに使える文字? スペース以外は何でも使えるけど。
正規表現の書き方を知りたいなら↓

正規表現道場@2ch Part4
http://pc8.2ch.net/test/read.cgi/php/1105930285/
0295nobodyさん2005/11/09(水) 20:06:19ID:???
:_忘れてました。
0296nobodyさん2005/11/09(水) 20:07:16ID:???
はっ、すいません。移動します。
0297nobodyさん2005/11/09(水) 20:13:56ID:???
>>292
RFC 3986の Reserved Characters と Unreserved Characters
0298nobodyさん2005/11/09(水) 23:16:26ID:MgDRn7NQ
スーパーグローバル変数のPOSTを使って処理を判断しているところがあるのですが,
処理が終わった後,POSTを書き換えたいのですが,できません.
例えば,

if(StrNatCmp($_POST["a"], "1") == 0) {
 〜処理1〜
 $_POST["a"] = "2";  //$_POST["a"]を書き換える
} else {
 〜処理2〜
}

最初に$_POST["a"]が"1"を持ってきたときだけ処理1を行い,
それ以外,データがなかったり,処理1をした後,更新ボタンを押したりしたときなどは,
処理1を行わないようにしたいです.
上記のやり方では,更新ボタンを押したら$_POST["a"]は"1"のままで処理1を行います.
POSTを書き換えるか,初期化するにはどうすれば良いでしょうか.
教えて下さい.よろしくお願いします.
0299nobodyさん2005/11/09(水) 23:29:04ID:???
>>298
根本的に何かが間違っている希ガス…
更新されたらされたで別の処理が並行して走るだけだから、
初回の実行の中で更新(二度押し?)を監視しても意味が無い…
Javascriptとかセッションとかクッキーとか使うべ。

もし一回の処理の中で、条件式以降に式結果を評価したいなら、
$_POSTなんかいじろうとせずに、$flag = 1とかしておけば?

0300nobodyさん2005/11/09(水) 23:42:25ID:???
ブラウザからファイルをアップロードしてもらい、サーバー側で
ファイルを開き中の内容を読み込む処理ってどうかいたらいいでつか?
0301nobodyさん2005/11/09(水) 23:44:53ID:???
>>300
フォームから送信させて、PHPから開くだけでは?

詳しくはマニュアル参照ヨロ
0302nobodyさん2005/11/09(水) 23:55:50ID:???
htmlからこのようにファイルを選択してもらい、サーバー側に送ってもらいたいのです。
<form name="x" id="x" enctype="multipart/form-data" method="post" action="test.php">
<INPUT TYPE="file" name="upfile" size="40" />

そこでtest.phpで受け取ってファイルの中身を読むというようにしたいのですが、
$file = get_file_contents($_FILES['upfile']);
ではいかんとですか?
0303nobodyさん2005/11/10(木) 00:26:32ID:???
マニュアルを読むとです
ttp://jp.php.net/manual/ja/features.file-upload.php
0304nobodyさん2005/11/10(木) 00:54:25ID:???
マニュアル読んだとです。人のぬくもりを感じた夜とです
0305nobodyさん2005/11/10(木) 01:18:11ID:iJI+8Gw+
298です.
返信ありがとうございます.

>>299
$_POSTをいじりたくなかったのですが,サーバ側にあるテキストファイルを
送られてきたデータで書き換える処理をするため,
何度も処理を行うことは避けたかったのです.

>>301
おっしゃるように,
テキストファイルを書き換える画面はフォームで作成し,
PHPで受け取るようにしています.

今のところ,例えば,x行の後ろに***を挿入するというデータを送信すると,
1回目は良いのですが,更新ボタンを押すたびにどんどん挿入されていきます.
画面のアドレス欄に,普通のアドレスの後ろに送信データが表示されているので,
それがある限りデータは送信されそうです.
検索したところ同じような事例で,処理をした後,リダイレクトするようにして,
更新を防いでいる人がいました.
POSTなどを消せればすぐ済むように思ったのですが,そうする方が良いようです.
今回はファイル処理を行った後,リダイレクトして送信データを初期化しようと思います.

どうもありがとうございました.

0306nobodyさん2005/11/10(木) 01:32:14ID:5CC9pdYJ
mail 関数で、急にvodafoneだけ送れなくなりました。
docomo や一般のアドレスは正常に送信できます。
どなたか似たような現象の方居ませんかー
0307nobodyさん2005/11/10(木) 02:10:32ID:???
>>306
SPAM判定されたか何かで拒否されてるに一票
0308nobodyさん2005/11/10(木) 03:34:57ID:7WIsLqP6
お勧めサイト
http://blog.livedoor.jp/isida789/
0309nobodyさん2005/11/10(木) 07:29:34ID:???
>>305
アホだこいつ
0310nobodyさん2005/11/10(木) 11:55:50ID:???
セッション使うと体感速度って結構落ちる?
0311nobodyさん2005/11/10(木) 12:05:28ID:???
いやべつに
0312nobodyさん2005/11/10(木) 14:27:23ID:bMeJl5+L
フォームを使わずに、データ(文字列)を次のページに送る方法はありませんか?
既存のページにログインしたあと、そのユーザー情報(入力されたIDやPassなど)をハイパーリンク先にもっていきたいのです。
良い方法ありましたら教えてください。
0313nobodyさん2005/11/10(木) 14:46:15ID:???
>312
つ[GET]
つ[COOKIE]
つ[SESSION]
0314nobodyさん2005/11/10(木) 14:46:43ID:???
リンク先ならそれに埋め込めばいいと思うのだが。
0315nobodyさん2005/11/10(木) 14:47:35ID:???
>>312
セッション
0316nobodyさん2005/11/10(木) 14:55:25ID:???
>>313-315
オマイラ釣られ杉
0317nobodyさん2005/11/10(木) 15:03:16ID:???
[今後の展開予定]
1. 実は、ハイパーリンク先と自分とは無関係なサイトであることをカミングアウト
2. 成り済ましサイトではない事を一所懸命にアピール
3. 理由を聞かれて、特許申請するので言えないっス
4. 夜中になったので人がいなくなる&次の質問に話題が移る
5. 数日後に他所で質問
6. ヲチ情報が報告される
0318nobodyさん2005/11/10(木) 15:20:12ID:bMeJl5+L
>>313
>>314
>>315
ありがとうございました。リンク先に埋め込むというのが分からないので、
セッションについて勉強してみます。
0319nobodyさん2005/11/10(木) 15:26:03ID:???
>>317
6の報告で何か起きるの?
0320nobodyさん2005/11/10(木) 15:38:58ID:???
セッション使うと体感速度って結構落ちる?
0321軟式PHP2005/11/10(木) 15:39:07ID:???
よーし、パパ318が作ったアプリでセッションハイジャックしちゃうぞー。
0322nobodyさん2005/11/10(木) 15:54:11ID:???
>>320
いやべつに
0323nobodyさん2005/11/10(木) 16:02:46ID:???
>>320
セッション情報を使って「何かする」部分の影響の方が大きいと思われ。

セッションそのものは、一つのファイル(DBかも知れんが)に対して
ちょびっと書いたり消したりするだけなので、
言ってみりゃサイトにカウンタをつけるみたいなもんよ。
まぁ、規模がでかくなりゃ話は変わってくる。
0324nobodyさん2005/11/10(木) 19:35:30ID:mwYfHXSm
パパー、可変変数について教えてよー(´・Д・`)
<?
$name = test;
$test_number = array("aaaa","bbbb","cccc");
echo "${$name}_number[1]";
?>

結果 _number[1]

bbbbって表示されないよーなんでー?
0325nobodyさん2005/11/10(木) 19:40:25ID:???
歯が痛いけどどうしよう
0326nobodyさん2005/11/10(木) 19:48:14ID:???
>>324
PHPしらないけど勘で答えてみる。
$name='test_number';
echo ${$name}[1];
0327nobodyさん2005/11/10(木) 19:55:16ID:???
>>326
PHP知らないとか以前の問題。もっかいよく質問を嫁。

>>324
つ $$
03283242005/11/10(木) 20:03:30ID:???
>>326
あぁ言葉足らずでしたごめんなさい
<?
$name = test;
$name = test2;
$test_number = array("aaaa","bbbb","cccc");
$test2_number = array("111","222","333");

if($name == test1){
echo "${$name}_number[1]";
}
?>

結果 _number[1]

bbbbって表示されないよーなんでー?
です
03293242005/11/10(木) 20:09:05ID:???
>>327
リロードし忘れちゃいました
そこんところ詳しくお願いパパン
いろんな所に入れてみたけど駄目だったお(´・Д・`)
0330nobodyさん2005/11/10(木) 20:14:18ID:???
>>328
test1 が何処にも存在しないのと、各部で文字列の前後の ' (または ")がないんだが。。。
それはさておき echo "{${$name . '_number'}[1]}"; ではダメなのか?
0331nobodyさん2005/11/10(木) 20:22:03ID:???
sqlite_escape_string()でエスケープされるのは、
\
NUL
0x01
'
の4つで合っていますか?他にありますか?
03323242005/11/10(木) 20:31:08ID:???
>>330
>test1 が何処にも存在しないのと
質問用に書き換えた時のミスです・・・

{${$name . '_number'}[1]}
でできましたー

マニュアルのどこら辺に書いてありますか?
もっと勉強しないと・・・
できた事はできたけど全く理解できていないっぽい・・・(´・Д・`)
0333nobodyさん2005/11/10(木) 20:46:36ID:???
>>332
そのものズバリはどこにも書いていないと思うけど。。。
可変変数と文字列の組み合わせればいいのかな?と考えただけだし。

>できた事はできたけど全く理解できていないっぽい・・・(´・Д・`)
理解しづらいのなら、いっそのこと可変変数をやめたら?
頭の体操としてはおもしろいかもしれないが、読みにくいし、
こう書く方がスッキリするとは思わないか?

<?
$name = 'test';
$name = 'test2';

$test_number = array(
 'test' => array("aaaa","bbbb","cccc"),
 'test2' => array("111","222","333"),
);

if($name == 'test'){
 echo $test_number[$name][1];
}
?>
0334nobodyさん2005/11/10(木) 20:50:09ID:???
>>332
ttp://www.php.net/manual/ja/language.variables.variable.php
ここ。
ユーザコメントのAnonymous 13-Mar-2005 10:25 とか。
03353242005/11/10(木) 20:50:31ID:???
>>333
おぉぉ確かにーー!!!
その表記にします
ほんとありがとうパパン(・∀・)
0336nobodyさん2005/11/10(木) 20:52:00ID:???
>>332

>>324 の一行目に、$test = 'hoge'; って追加して、実行してみな。
何が起きてたか判るから。
03373242005/11/10(木) 20:53:03ID:???
>>334
そっちの方見てなかったー
ありがとうパパン
03383242005/11/10(木) 21:03:46ID:???
>>336
hoge_number[1]
と出ました
なんとなく分かってきたような気がしまふ・・・
ありがとうパパン
0339nobodyさん2005/11/10(木) 21:16:42ID:???
まぁ、$$にかんしては、こうすると少しは判りやすいかも。

$hoge = 'hage';
$var_name = 'hoge';

echo $$var_name;
0340nobodyさん2005/11/10(木) 21:19:55ID:???
>>339
今回の話は、可変変数の話の様に見えるけど、{}の話だから…
03413392005/11/10(木) 21:24:04ID:???
>>340
えぇぇぇぇ〜〜〜っ!
>>324の質問は無かった事になってるのか・・・
0342nobodyさん2005/11/10(木) 21:38:30ID:???
tu-ka切りわけって意味では326から試せばいいやね
0343nobodyさん2005/11/10(木) 21:44:32ID:???
しかし、そうまでして$$使いたいのか?
$$を使わなければ出来ない処理って、そもそもデータの持ち方が
おかしいんじゃないか
漏れは>>333に一票だな
0344nobodyさん2005/11/10(木) 21:45:31ID:???
>>341

いやね、>>324 の質問は、実は

<?php
$test = "hoge";
$test_test = "fuga";

echo "${test}_test";
echo "$test_test";
?>

こういう質問だと言うことね。
0345nobodyさん2005/11/11(金) 01:40:20ID:???
親子関係を表現したくて困っております
具体的にはメールのスレッド表示を再現したいです
メーラーでのスレッド表示みたいなのを・

message-idを各メールが持っている
子は親のmessage-idを知っている
親子関係は永遠に続く可能性がある
phpのオブジェクト機能でできるかなぁと、xmlみたいな感じ?
変数の入れ子構造はどうやったら出来ますか?
0346nobodyさん2005/11/11(金) 01:54:03ID:???
変数を入れ子にするんじゃなくて、オブジェクトを入れ子にするんじゃだめ?
0347nobodyさん2005/11/11(金) 02:59:54ID:???
>>345
連想配列を使って
root+ a1
  + a2
  + a3
  | + b1
  | + b2
  |  + c1
  |  | + d1
  |  | + d2
  |  + c2
  + a4
こんな感じのツリーは
$root = array();
$root["a1"] = 1;
$root["a2"] = 1;
$root["a3"]["b1"] = 1;
$root["a3"]["b2"]["c1"]["d1"] = 1;
$root["a3"]["b2"]["c1"]["d2"] = 1;
$root["a3"]["b2"]["c2"] = 1;
$root["a4"] = 1;
print_r($root);
でどないや。
0348nobodyさん2005/11/11(金) 09:42:26ID:???
会員サイトなどでログインして掲示板投稿などの時、
確認画面から「戻る」のボタンを押した時に、入力していたデータが消えます。

これをSESSIONを使わずに、ブラウザの戻るを押しても入力内容が消えない
ようにする方法は無いでしょうか?
■ このスレッドは過去ログ倉庫に格納されています