人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPの質問です。PHP5のsimpleXMLを使っていますが、それとはあまり関係なく「PHPの書き方」に関する初歩的な質問です。

$xml =simplexml_load_string($$xmlstr, "SimpleXMLIterator" );

これでxml文章を読み込んでいます。

$asin = $xml->Items->Item[0]->ASIN;

こうすると、xmlから読み取ったデータを変数$asinに入れてくれます。
具体的には24152365のようになります。

ここからが質問なのですが、
$asin_2 ='$xml->Items->Item[1]->ASIN';
このように文字列として$asin_2に入れます。

$asin_2内に入った文字列を命令として実行するにはどうすればいいのでしょうか?

●質問者: tokyosmash
●カテゴリ:インターネット ウェブ制作
✍キーワード:ASIN PHP XML データ 変数
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● GEN111
●40ポイント

http://www.phppro.jp/phpmanual/php/function.eval.html

PHP文として実行したいということなら eval を使えばよいと思います。

◎質問者からの返答

ありがとうございます!早速使わせて頂きました。


2 ● nandedarou
●60ポイント ベストアンサー

先ほど締め切られたので、回答できませんでしたが、

再開されたということは、もうちょっと、具体的な回答を望んでいるということだと思いますので、具体的に書いてみます。


evalの引数として渡す文字列は、PHPの命令文として完成していなければなりません。

だから、'$tmp = 'と最後の';'を付け加えて渡します。

eval( '$tmp = '.$asin_2.';' );

これで、$tmpに、24152365が入ります。

※$tmpを$asin_2とすれば、$asin_2に直接24152365が入ると思います。

◎質問者からの返答

本来ならば文字列として格納しない方がスマートにできると思うんですが、なかなか上手く書けないんですね。

しかもevalを使うと負荷がかかるようで、500エラーが頻発してしまいます。

forを使って質問文のItem[0]の数字部分だけを一つづつ増やして、さらにXML内にそのようなデータがあるか判断しながら・・という作業をしていますが、simpleXMLとforが絡まってちょっと参ってます。

http://q.hatena.ne.jp/1174488194

こちらを参考に、なるべくevalを使わないでもっとスマートに書けるようにチャレンジしてみます。

いつもありがとうございます!


追記:

確かに一度締め切ってしまいましたが、もしかして回答を書き込む途中の方がいらっしゃたら失礼かなと思い再開しました。ご迷惑おかけしました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ