phpでxmlにすでに入っている画像を入れ替える場合、例えば
入力ページの
<form method="post" action="kakunin.php" enctype="multipart/form-data"> <p>商品<input type="text" name="a" size="8"></p> <p>単価<input type="text" name="b" size="8"></p> <p>画像<input type="file" name="c" ></p> <p><input type="submit" value="登録"></p> </form>
で画像を入れ、
$i=$_POST["a"]; $z=$_POST["b"]; $e=$_FILES["c"]["name"]; $xml=SimpleXml_load_file("shohin-list.xml"); $item=$xml->addChild("item"); $item->addChild("name",$i); $item->addChild("tanka",$z); $item->addChild("img",$e); $xml->asXML("shohin-list.xml");
で処理をして以下のような内容になった
<shohin-list> <name>ブドウ</name> <tanka>400</tanka> <img>budou1.jpg</img> <shohin-list>
xmlの<img>の中にあるbudou1.jpgをbudou2.jpgに入れ替えるため
<p>画像:<input type="file" name="henkou"> <input type="submit" value="画像変更"></p>
でbudou2.jpgを入力し、
<?php $henkou=$_FILES["henkou"]["name"]; $items=Simplexml_load_file("shohin-list.xml"); $items->item->img=$henkou; echo $items->asXML('list.xml'); print("画像を変更しました"); ?>
で処理をして
<shohin-list> <name>ブドウ</name> <tanka>400</tanka> <img>budou2.jpg</img> <shohin-list>
というふうにしたいのですが、
新しい画像を<img>に入れるという意味のソースは
$items->item->img=$henkou;
という書き方でよろしいのでしょうか?
よろしくお願いいたします。
文章で説明するより、変更前と(希望する)変更後の望ましい形のサンプルを提示したほうがよいかもしれません。
imgの実体かパスかで違ってくるとは思います。もともとのxmlには何をおさめているのでしょうか?ただ、この処理だけだとアップロードの処理は行われていないようですが・・・
mts10806様
元は商品情報の入力が目的のもので、その中で商品画像の入力項目があり、最初の入力で画像を
<p>画像<input type="file" name="c" ></p>で入れ、
<p><input type="submit" value="登録"></p>で別ページへ送り、
別ページにある
$e=$_FILES["c"]["name"];
$xml=lSimpleXml_load_file("shohin-list.xml");
$item=$xml->addChild("item");
$item->addChild("img",$e);
$xml->asXML("shohin-list.xml");
というソースで処理してxmlに入れています。
そういう形で入れた元画像を別の画像に入れ替える機能を作りたい。というのが質問の内容です。
hotta様、ご指摘ありがとうございます。ご指摘されたを踏まえたうえで、質問文を修正いたしました。
コメントでは埋もれてしまうのでお手数ですが質問本文に追記願います。
mts10806様、質問文に情報の追記をいたしましたので、参考にしていただければと思います。
回答2件
あなたの回答
tips
プレビュー