トップページ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
0773nobodyさん04/05/11 19:05ID:???
>>772
perl板に逝け
0774nobodyさん04/05/11 19:06ID:???
>>772
こういう奴一番むかつくんだよな
どうせパスがおかしいとかパーミッションがおかしいとかそんな話だろ?
テメエで考えろ
0775nobodyさん04/05/11 19:18ID:wZxq13vM
$num1 の配列と $num2 の配列があって
$num2に入っている値が$num1にあった場合、$num1の配列から、その値を削除するには
どうすればいいのでしょうか?
$num1[0] = '001';
$num1[1] = '002';
$num1[2] = '003':
$num1[3] = '004';

$num2[0] = '002';
$num2[1] = '004';
で$num1を001と003だけにした。
0776nobodyさん04/05/11 19:58ID:???
>>775 これでどう?

$num1 = array_diff($num1, $num2);

//検証
foreach($num1 as $key => $value){
  echo "$key $value <br>";
}

http://jp.php.net/manual/ja/function.array-diff.php
0777nobodyさん04/05/11 20:03ID:???
>>768
url_rewriter.tags : a=href,area=href,frame=src,input=src,form=,fieldset=
session.use_trans_sid : on
の状態で、
<a href="./">a</a>
<MAP name="map1"><area href="./" shape="rect" coords="0,0,100,100"></MAP>
<input src="./">
<form method="post" action="./"></form>
<fieldset></fieldset>
を実行させると、全ての行に ./?PHPSESSID=〜か<input type="hidden" name="PHPSESSID" が挿入される。
要は、trans_sid = onなら、url_rewriter_tagsで設定したものに対して
>>762が示している置き換え手順に従って単に書き換えられる。
formのinput type="hidden"の />はソース内に埋め込まれているので変更したいならここを弄る。
それが嫌ならurl_rewriter_tagsからformを除外し、自分でSIDを埋め込む。
077877504/05/11 20:03ID:???
>>776
ありがとうございます!
spliceでなんとかやろうとして、失敗しまくりで(汗
077976804/05/11 20:28ID:???
>>777 丁寧な説明、ありがとうございます。
やっと挙動が理解できたように思います。

そのタグに クエリを付加するか、hiddenフィールドを埋め込むかは、
タグごとに C のソースで決まっていると考えて良いようですね。

fakeentry は書いても書かなくても良くて、
form= と form=fakeentry は同じなのですね。

hiddenフィールドは fieldset の中に入っていてほしいので、
form= の代わりに fieldset= と書くことにします。

/>については、あまり気にしないことにします。

この自動挿入は、クライアントが Cookie をどう設定しているかによって
hiddenフォームの有無が変わるので、
JavaScript で扱うフォームの要素数を決め打ちにできなくなるのが
少々、悩みの種ですが、それは何とか考えることにします。

ありがとうございました。
0780Upo04/05/12 00:16ID:UdSoQGZz
重複ログインの防止をしたいのですが、いい方法はありますか?
最初のログイン後にセッション情報をDBに格納して、次のログインは、
セッション情報があれば、ログイン不可にすればと思ったのですが、
最初のログインしたユーザが不正ログアウト(ブラウザーの「X」をクリックなど)
した場合、セッション情報が不当に残ってしまうので使い物になりません。

わかる方がいましたら、お願いします。
0781nobodyさん04/05/12 04:11ID:Y6JDwafk
フォームでメッセージを送るときに
「"」が含まれてると、$_REQUESTなどで受け取るときに
「\"」と\が付いてきてしまうのですが、
これを付けないように送ることはできないでしょうか?
0782nobodyさん04/05/12 04:31ID:???
stripslashes()
0783nobodyさん04/05/12 04:32ID:???
>>781
magic_quotes_gpc
http://www.php.net/manual/ja/ref.info.php#ini.magic-quotes-gpc
0784nobodyさん04/05/12 11:26ID:BOFMZpgM
php4で
Fatal error: Call to undefined function: pg_insert()
という未定義エラーが出ました。

この実験的なステータスを有効にするには
php.iniのどこを書き換えればいいんですか?


[PostgresSQL]
; Allow or prevent persistent links.
pgsql.allow_persistent = On

; Detect broken persistent links always with pg_pconnect(). Need a little overhead.
pgsql.auto_reset_persistent = Off

; Maximum number of persistent links. -1 means no limit.
pgsql.max_persistent = -1

; Maximum number of links (persistent+non persistent). -1 means no limit.
pgsql.max_links = -1


postgresql部分はこれだけ?
0785nobodyさん04/05/12 11:59ID:???
>>784
Dynamic Extensionsの項の extensionの組み込み部分
Unix系(pgsql.so)とWindows(php_pgsql.dll)は
違うので、マニュアルを確認のこと。

# つかマニュアル読んで無いやろ?
# 関数リファレンスまでのI〜IVは通しで読んでおくこと。
# 関数リファレンスは暇な時と必要な時でいい
0786nobodyさん04/05/12 13:19ID:???
>>780
レスがついてないようなので書いてみる。
似たような仕事をしたことがあった。JSP だったけれど。

標準的な HTTP サーバとブラウザでは、多重ログインを抑止するまっとうな方法は
存在しないように思う。だから、何かを犠牲にしなければならないわけで、

1.(現実的)セッションタイムアウトを短めにする。
 タイムアウトを10分とかにして、時間切れを JavaScript のポップアップなどで
 告知。ページの一時的な遷移などをユーザに促す。
 ・長所は、既存のコードや設備の変更がほとんど不要なこと。
 ・短所は、ユーザがわずらわしいこと。

2.(理想的)Java Applet か Macromedia Flash の導入
 これらは、ブラウザをリロードすることなしで、サーバと交信を行うことができる。
 小さなパケットを絶えずサーバとやり取りさせて、それが途切れたらログオフしたと見なす。
 ・長所は、ユーザにもサーバにも負担にならず、技術的にエレガントなこと。
 ・短所は、多くの新規コードを導入しなければならないこと。

3.(折衷案)隠しフレームを作り、小さな隠しページを絶えず自動リロード。
 要するに、2.と同じようなことを1.と同じ技術でできないかと考えたもの。
 セッションタイムアウトを1分、リロードサイクルを30秒とかにする。
 ・長所は、技術的にあまり手間がかからず、ユーザもわずらわしくない。
 ・短所は、サーバに負担がかかること。イントラネット向きか?

実際の仕事は、私は 2.で行きたかったんだけど、3.のような感じで進んだ。
最後は結局、仕事自体がポシャったんだけどね(苦笑)。
078778404/05/12 13:52ID:???
とりあえずpg_query($db,$sql);でお茶にごしときました。
関数リファレンスは確かに読んでません。

ていうか、技評のPHPポケットリファレンス(ISBN4-7741-1668-8)を見ながら
書いてるんすが、この本、ちょっと説明不足ぎみ...


785さん、サンコス。RHL9です。暇な時にチェックしときます。

ていうか将来変更される可能性がある関数なので別に使わなくてもいいか....
078878504/05/12 15:40ID:???
>>787
今見直してみたらpg_insert()の未定義エラーなんだね。
それ以前にpg関数使ってる筈だから自分の指摘は見当違いだったな。

ところでポケットリファレンスにはpg_insert()はPHP4.3以降の
対応と書かかれてたけど、結局試してたのがPHP4.3未満だったのかな?
http://jp2.php.net/manual/ja/function.pg-insert.php にも書いてあるね。
pgsql.cのソース見てみたけど、PHP4.2.3のものでは未定義、
PHP4.3.0のものから定義されてた。

pg関数は名称変更もあったり色々と変更/追加が多いので、
使う前にはちゃんと確かめた方がヨロシ。
# データベース絡みはどのみち抽象化して使うのが正攻法だと思います。
0789nobodyさん04/05/12 15:45ID:???
すんません。
よくWeb上で実現しているポートスキャンをやって、
ポートが空いているかどうかを調べるサイトを作りたいのですが、
方法や使用する関数名など調べてもいまいちピンときません。

どなたかご存じのカタられませんか?
0790nobodyさん04/05/12 16:38ID:???
>>789
自分のところをチェックするだけなら巷に多々あるスキャンツール
を使えばよいこと。仕組みを理解したり実装を考えたり出来ないのなら
他人が利用することが前提のツールを作ろうとしなさんな。

仕組みから実装を考える部分で疑問が出れば、それを質問として
訊けば回答が得られる可能性はある。でも実装は難しくないよ。
(仕組みも他の通信プログラムに比べれば簡単)
0791nobodyさん04/05/12 16:58ID:???
http://www.php.net/manual/en/install.apache2.php

>Warning
>Do not use Apache 2.0 and PHP in a production environment neither on Unix nor on Windows.
と有りますが
具体的にどんな問題が有りますか?

またApache2にDSOではなくstaticに組み込むことは出来ますか?
0792nobodyさん04/05/12 17:18ID:???
具体的に何が起こるか分からんから
実運用では使わないでねって事じゃないの
079378404/05/12 17:22ID:???
>>788
今phpinfoしてみたらphp4.2.2だった...ガーン
phpリファ本はphp4.3.0-pre2をベースにしてます。

どうりで動かない部分が多くて苦労してるはずだ。
0794nobodyさん04/05/12 17:44ID:???
>>791
同一人物かどうかしらんけど、WebProg板のApacheスレと自宅鯖のApacheスレに同様の
書き込みがあったところなんだが。
0795nobodyさん04/05/12 18:02ID:???
糞マルチ野郎だったか
0796nobodyさん04/05/12 18:04ID:???
>>794
偶然です
ちょっと向こう見てきます

>>792
トラブル事例とかあるかなぁと
0797nobodyさん04/05/12 18:22ID:???
見てきたんだけど、結局公式には”実運用で使うなって”発言があるってだけかな?
こう言われてるけど、普通に使えてるよー とか 話にもならない とか
そういうのって無いですか?


>979 名前:DNS未登録さん[sage] 投稿日:04/05/11 18:34 ID:???
>最近Apache側とPHP側が和解した
>
>PHP側の譲歩
これもちょっと気に成ったんですが、もうすぐApache2で安定したバージョンが出せる
という解釈であってますか?

後半は向こうで聞いた方が良いのかな?
0798nobodyさん04/05/12 18:24ID:???
なんだ、apacheスレにPHPとかほざいてるやついたがここのスレのアフォ共か
死ねよ。スレ荒らすな
0799nobodyさん04/05/12 18:54ID:???
( ´,_ゝ`)プッ
0800nobodyさん04/05/12 18:57ID:???
>>797
いやメモリーリークするような現象が見受けられる。
運用のスタイル如何で他にも支障があると思う。
トライtoチェックandリカバリが必要という点で
Apache2+PHP(Apache2filter)"実運用"に向かない。
どうしてもApache2の機能が使いたいならPHP(CGI)と
組みあわせる。




0801nobodyさん04/05/12 19:01ID:???
>>800
ありがと

何か、一年ぐらい前から進歩してないかな?
なら和解って話しに期待を寄せつつ待ちかな

タイミングが悪い時に書きこんじゃって、すみませんでした
0802nobodyさん04/05/12 19:28ID:???
>>799
このスレの住人は迷惑かけておいて( ´,_ゝ`)プッか
この板の程度が知れるな
0803nobodyさん04/05/12 19:58ID:???
ここまで糞スレになったか
0804nobodyさん04/05/12 20:14ID:???
何を今更
0805nobodyさん04/05/12 20:24ID:???
俺は悲しい
0806nobodyさん04/05/12 20:27ID:???
>798=>802
( ´,_ゝ`)プッ
0807nobodyさん04/05/12 21:09ID:???
>>806
いやいやいや・・
>>798(俺)に対してプッって言われたから>>802(俺)が反論したわけで
状況見れば分かるようなことをわざわざ等号で結ぶ必要があるのか?
等号厨なのか?
0808nobodyさん04/05/12 21:33ID:???
 プッε=_| ̄|○
0809nobodyさん04/05/12 22:28ID:???
基本的な質問ですが…

レンタルサーバーのPHPがApacheのモジュールとしてインストールされているかどうかを
判断するには、普通に.phpが動作したらokなんですか?
cgiとして動くのは usr/bin/php が必要と言うこと?

Apacheのモジュールとして動作させた方が高速で負荷が少ないと聞いたもので…
0810nobodyさん04/05/12 23:00ID:???
>>809
phpinfo()を出力させるスクリプトを書いて
[Server API]のところを見るのが確実。
081180904/05/12 23:16ID:???
>>810
サンクス。
Apache って明記してありました。
0812nobodyさん04/05/13 03:26ID:???
>798=>802=>807
プッε=_| ̄|( ´,_ゝ`)
0813nobodyさん04/05/13 08:19ID:Ldb9FmGr
これからPHPやろうかと思ってるものです。
完全レイアウト目的で使おうと思い入門サイトなど見てみたのですが
そういう使い方を解説してるページがありません。
やりたいことは、たとえばこういうレイアウトのページ

■■■■■■■■
■■□□□□■■ ■・・・メニューや飾り枠など
■■□□□□■■ □・・・中身のHTML
■■□□□□■■
■■□□□□■■

で、メニューを叩くと □ の部分のみ書き換えるというやつです。
そのように展開したページのURLはindex.php?aaa=bbbのようになってます。
なぜPHPに目をつけたかというと

 ・フレームを使いたくない
 ・全HTMLに■部分をつけたくない(Updateが大変)
 ・DreamWeaver等エディタではやりたくない(リンケージ機能など)

という理由だけなのですが、こういう目的のPHP使いは
邪道なのでしょうか?これに結びつく使い方の説明が見つからないので・・
他にもっといい何かがあるのでしょうか?
一応初心者級ですがperl, cgi, javascriptは書けます。
どなたかアドヴァイを・・・!
0814nobodyさん04/05/13 09:36ID:???
>>813
ネタ?
0815nobodyさん04/05/13 09:42ID:???
アドヴァイ。
ファイルシステム関数のトコとかもう一度リファレンス読んでみてはいかがでしょう。
ぉれ的にはそれでいけるとおもうんですけど。
0816nobodyさん04/05/13 09:42ID:Ldb9FmGr
>>814
本気本気超本気です。
ドエライ勘違いしてます?
おしえてください・・・
0817nobodyさん04/05/13 09:43ID:???
>>815
あーっありがとうございます!
検索行ってきます。
0818nobodyさん04/05/13 10:26ID:???
>>816
SSIで十分じゃない?
0819nobodyさん04/05/13 11:59ID:d+uWkqgB
PHPとは直接関係ないですが・・質問です。
imgフォルダにある1.jpg 2.jpg 3.jpgを圧縮したいのです。
以下のプログラムを実行すると
hoge.tar.gz ファイルが作成されるんですが、これを解凍すると
1.jpgと2.jpgしか中にありません。なぜでしょうか。

<?
$file = "1.jpg 2.jpg 3.jpg";
$cmd= "tar zcvf hoge.tar.gz $file";
system("cd img;$cmd.$ret");
?>
0820nobodyさん04/05/13 12:13ID:???
そのコマンド直接叩けば問題なく実行されるの?
082181904/05/13 12:17ID:d+uWkqgB
サーバーで直接
tar zcvf hoge.tar.gz 1.jpg 2.jpg 3.jpg
とコマンド打ってみましたらちゃんと実行されました。
0822nobodyさん04/05/13 12:18ID:???
$retって何よ?初期化せえ
082381904/05/13 12:22ID:d+uWkqgB
ずばりその通りでした・・・。
$retを消したらうまくできました。
すいません。
0824nobodyさん04/05/13 18:07ID:???
CGIで行うファイルロックのコードをPHPでそのまま使えるんでしょうか?
教えてください
###############################################################
# ロック処理
sub lock {
if (-e $lockfile) {
local($mtime) = (stat($lockfile))[9];
if ($mtime < time - 60) { &unlock; }
}
local($retry)=5;
if ($lockkey == 1) {
while (!symlink(".", $lockfile)) {
if (--$retry <= 0) { &error('LOCK is BUSY'); }
sleep(1);
}
} elsif ($lockkey == 2) {
while (!mkdir($lockfile, 0755)) {
if (--$retry <= 0) { &error('LOCK is BUSY'); }
sleep(1);
}
}
$lockflag=1;
}
sub unlock {
if ($lockkey == 1) { unlink($lockfile); }
elsif ($lockkey == 2) { rmdir($lockfile); }
$lockflag=0;
}
###############################################################
↑このコードです
0825nobodyさん04/05/13 18:11ID:???
0826nobodyさん04/05/13 18:12ID:???
>>824
PHPで書けば使える
0827nobodyさん04/05/13 18:13ID:???
>>824-825
空上げすんなボケ!
0828nobodyさん04/05/13 18:15ID:???
>>824
コピペじゃ無理。
つかflockじゃ不満?
0829nobodyさん04/05/13 19:10ID:???
つか1秒も待たせるのかよ
0830hiro@ ◆7iyjK8Ih4Y 04/05/13 19:30ID:???
>>602
遅れてすみません。
基本的なこと忘れてました。(基本?
jcode付けてなかったです。
まぁ気軽にがんばっていきます。
0831nobodyさん04/05/13 21:16ID:HMzJsd5o
ksortって安定なソートですか?
0832nobodyさん04/05/13 21:34ID:???
そーっと扱えばね
0833nobodyさん04/05/13 21:41ID:???
山田クン
座布団全部持ってって!
0834kuro04/05/13 21:52ID:Enx3JY3V
誰でもできるゴミビジネス即金パック
http://pcbiz-j.com/business/blt.html
■不用品の処分から高額換金、プロのノウハウなど、毎月30万円稼ぐテクニックをあなただけに教えます。
■今なら期間限定割引!即金パックの販売代理店権利つき!
http://pcbiz-j.com/business/blt.html
きちんとした通信販売ビジネスです。
▼販売用のホームページを無料で支給します。
▼決していかがわしいマネーゲームなどではありません。
▼作業は1日にわずか数十分。(メール処理、通帳記帳など)
▼こっそり儲けたい人には、別名義での開業オプションもあります(資料メール参照)
http://pcbiz-j.com/business/blt.html
0835nobodyさん04/05/14 01:05ID:???
phpで掲示板みたいなの作っていますが、表示の際書き込み1つに対して削除ボタンも1つ設け
そのボタンを押すだけで削除〜みたいな事ってできますか?

$delfile = fopen('kakikomi.txt','r')
if ($_POST['del']) {
for ($i=0;$i<count($delfile);$i++)
{
$arr = explode(",", $delfile[$i]);
if ($arr[0] == ここがわかりません) {
array_splice($def, $i, 1);
}
}
}

表示されるのはID(ユニーク)と名前とメッセージでkakikomi.txtから配列にして表示しています。
削除ボタンが押された時に$_POST['del']とIDを通達するようにしたいんですがその方法がわかりません。
プログラム自体始めた麦価なので質問の仕方すらわからないですが、ヒントください。
0836nobodyさん04/05/14 01:10ID:???
>>835
削除云々より、ファイルポインタをcountしてどうする。
0837nobodyさん04/05/14 01:14ID:???
あ、間違いました。。

わかり易いようにと整理してたもので。

$delfile = open('kakikomi.txt');
if ($_POST['del']) {
for ($i=0;$i<count($delfile);$i++)
{
$arr = explode(",", $delfile[$i]);
if ($arr[0] == ここがわかりません) {
array_splice($def, $i, 1);
}
}
}

こうですね!
0838nobodyさん04/05/14 01:24ID:???
$delfile = file('kakikomi.txt');
if ($_POST['del']) {
for ($i=0;$i<count($delfile);$i++)
{
$arr = explode(",", $delfile[$i]);
if ($arr[0] == ここがわかりません) {
array_splice($def, $i, 1);
}
}
}

何度もすいません。。。orz
0839nobodyさん04/05/14 01:31ID:???
>>838
kakikomi.txtの構造はどうなっている。
それと、1行1レスなのか?
084082404/05/14 01:38ID:xJCSoVDm
返答ありがとうございました。
0841nobodyさん04/05/14 01:39ID:???
あぁ、どの削除ボタンを押したかの選別がわからないだけなのか。
そりゃ、削除ボタンの付け方次第なんで、そっちをどのようにしたのかに因るがな。
0842nobodyさん04/05/14 01:41ID:???
はい、テキストの構造はID,名前,メッセージ,改行
となっていて、1行1レスです。
0843nobodyさん04/05/14 01:45ID:???
だんだんと、質問の意図が理解できてきたw
$_POST['del']に削除するIDが入っているのなら、
if($arr[0]==$_POST['del'])でいいのじゃないかな。
0844nobodyさん04/05/14 01:45ID:???
hiddenで、キー番号渡せば?
0845nobodyさん04/05/14 01:46ID:???
そうなんです。

削除ボタンは<form method=POST><input type="submit" name="$id">

$idはkakikomi.txtのユニークなIDです。
0846nobodyさん04/05/14 01:51ID:???
>>845
それだと、$_POST['del']では受け取れんがな。
0847nobodyさん04/05/14 01:54ID:???
1から勉強やり直し!
そういうのは自分で構造考えてやったほうが後々のためになる。
0848nobodyさん04/05/14 01:56ID:???
<form method=POST><input type="submit" name="del">
にするとIDをどこで見分ければいいかがわからないんです。。ス
0849nobodyさん04/05/14 02:00ID:???
>>848
漏れの場合はたいていJavaScriptを使うんだけど、
<input type="hidden" name="del" value="">
としておいて、
<input typr="button" value="削除" onClick="form.del.value='$id';from.submit();">
見たいな感じ。
0850nobodyさん04/05/14 02:01ID:???
<input type='submit' name='del' value='$id'>
0851nobodyさん04/05/14 02:04ID:???
PHPと言うよりHTMLの話だぁね。
各ボタンごとにformを使う
 <form><input type="submit" name="id_01"></form> -> $_REQUEST['id_01']がセットされる
 <form><input type="submit"><input type="hidden" name="del" value="01"> -> $_REQUEST['name']='01'
全体を1つのformに収める
 <form><input type="submit" name="id_01"><input type="submit" name="id_02"></form> -> (略)
0852nobodyさん04/05/14 02:18ID:???
hiddenのことを調べている間に。。レスありがとうです。

javascriptっていう手もあるんですか、なるほど。
851さんの方法でもできるんですね。ちょっと色々やってみて出来たら報告しにきます。たぶん。
0853nobodyさん04/05/14 02:34ID:???
ほんとだ。phpじゃなくhtmlね。板違いゴメンソ
0854nobodyさん04/05/14 06:14ID:???
>>849
JavaScriptが使えない場合はどうしてる?

>>852
どっか適当なところ(先頭行とか)に
print_r($_post);
等入れて、何が引き渡されるか確認するといい
085584904/05/14 09:24ID:???
>>854
いままでJavaScriptが使えない環境を考慮しなければならない案件を受けたことないし、
個人的に趣味で作るサイトもJavaScript必須にしているので、あまり深く考えたことがないのだが、
単純に済ませるのなら、aタグでリンクを貼ってもいいんじゃね。
<a href="http://www.example.com/hoge?DEL=$id">DEL(またはボタンアイコン)</a>

どうしてもinputタグで尚且つsubmitボタンのvalue値を"削除"か"DEL"でなら、
name側をユニーク(name="DEL-$id")にしてphpで$_POST配列を調べるとか。

クロスブラウザなサイトもすばらしいと思うが、NN4.xは捨ててもいいと思うし、
「JavaScript機能はOnでお願いします」って断って、利便性とか見た目と
開発効率の両立するのもありだと思う。JavaScriptが苦手な人はナニですが...
CSSを使って別ファイルにすると、HTMLの中にJavaScriptが占める割合は
最近ますます増えてます :-)
0856nobodyさん04/05/14 12:00ID:vu0WINSD
FgetSで、

title:ぽぽたん
title:ぴちぴちピッチ
 ・
 ・

というファイルを
$buff[cnt] = FgetS($fp,255);
って書いて、ファイルの終わりになるまでカウントして取り捲ってるんですが、

とり終わった後、
title[0] => ぽぽたん
title[1] => ぴちぴちピッチ
といった感じの連想配列にしたいんですが、どうしたらいいでしょうか?

それともとってくる段階で、連想配列にはめ込む方法があるんでしょうか?
0857nobodyさん04/05/14 12:16ID:???
とりあえず
$buff = file('ファイル名');
ってやると

$buff[0]=>'title:ぽぽたん'
$buff[1]=>'title:ぴちぴちbitch'

ってなるのは知ってる?
085885604/05/14 12:26ID:vu0WINSD
>>857
しってます
PReg_Split や、Explode で分割したら
Array
(
  [0] => title
  [1] => ぽぽたん

)
Array
(
  [0] => title
  [1] => ぴちぴちぴっち

)

ってなっちゃうんで、どうすればいいのか悩んでます。
0859nobodyさん04/05/14 12:31ID:???
分割せんでもtitle:を削っちゃえばいいやん
str_replaceとか
0860nobodyさん04/05/14 12:31ID:???
>>858

$buff[] = $tmp_buff[1];
0861nobodyさん04/05/14 13:18ID:vu0WINSD
>858-859
はい、それもそうなんですが、
連想キーを元に値を引き出すってのをやってみたくて・・

配列関数で、値のソートだとか便利な関数が用意されてるみたいなんで
後々便利だとおもい、何とか$key=>$value の形に持っていければとおもっています。
0862nobodyさん04/05/14 13:27ID:???
>>861
連想配列なの?普通の配列じゃなくて?

$tmp['title[0]'] = 'ぽぽたん'

ってこと?
0863nobodyさん04/05/14 13:28ID:???
こういう事がしたいの?

title:あああ
title:いいい
name:ううう
title:えええ
name:おおお

$title[0]=>'あああ'
$title[1]=>'いいい'
$title[2]=>'えええ'
$name[0]=>'ううう'
$name[1]=>'おおお'
0864nobodyさん04/05/14 13:30ID:???
俺は連想配列と言いながら普通の配列の事を言ってると勝手に脳内変換してたw
0865nobodyさん04/05/14 13:36ID:???
>>862
連想配列だったらこうだろ

$buff['title'][0]
086685604/05/14 13:38ID:vu0WINSD
>863
はい、それがやりたいんです。
Array
(
  $title[0]=>'あああ'
  $title[1]=>'いいい'
  $title[2]=>'えええ'
  $name[0]=>'ううう'
  $name[1]=>'おおお'

)
こうしておけば、
NetSortだとかArsortだとか便利な関数が用意されてるみたいなので
データが増えたとき、お気に入り順でソートとか出来るかな〜と思って、そうゆう形で、入れたいと思っています
0867nobodyさん04/05/14 13:43ID:???
>>866
これをループで回せ。
$arr=explode(':',$buff[$cnt],2);
${$arr[0]}[]=$arr[1];

しかし....
0868nobodyさん04/05/14 13:52ID:???
すごい仕様だ
0869nobodyさん04/05/14 13:54ID:???
これでいいじゃね。
while(($s = fgets($fp, 1024)) != NULL) {
  list($var_name, $value) = explode(':', $s, 2);
  ${$var_name}[] = trim($value);
}

まぁ、あれだ。もとデータに他で使ってる変数名と
同じものが紛れた時に正しく動作せん罠
$input_data[$var_name][]
に放り込んだ方がええよ。
0870nobodyさん04/05/14 14:09ID:???
ま、可変変数も久しぶりに使ったし、昼下がりの腹ごなしにちょうど良かったのかもw
可変変数を使うときは、ほとんどの場合それ以前に問題があると思ったりするのだが。
0871nobodyさん04/05/14 14:15ID:vu0WINSD
>867-869
ありがとうございます!
これで、お気に入りなアニメのデータベース的なことができそうです
0872nobodyさん04/05/14 14:18ID:???
可変変数を用いたのは良かったのだが、どういった変数が定義されたのかを
どうやって調べるんだ?
■ このスレッドは過去ログ倉庫に格納されています