みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

htmlのソースの一部を変更

題名の通りなのですが、

あるhtmlに記述されている
<img src="./aaa/bbb/ccc1.gif">
<img src="./aaa/bbb/ccc2.gif">
<img src="./aaa/bbb/ccc3.gif">

という画像のソースの「ccc」の部分をphpを使って
一つの操作で3つの「ccc」を変更するというのは可能なのでしょうか?
(別に「aaa」「bbb」の部分でも構いません。)

当然、可能な場合には
アップロードされているファイル名も変える必要がある為、
ソースだけでなく、アップされているファイル名の
変更が可能かどうかもお聞きしたいのですが、

理想としましては、管理画面などで
各htmlのパスやファイル名を呼び出して、
ブラウザ上なので変更できたら一番望ましいのですが
お分かりになる方がおりましたら、是非ご教授ください。

投稿日時 - 2005-03-30 18:51:48

QNo.1301156

困ってます

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

テンプレートを使ってやればよいと思いますよ。

参考URL:http://php.hoge.org/phpkodomo/06-it.txt

投稿日時 - 2005-03-31 00:30:46

可能か、可能でないか、と言う質問に対しては、
「可能です」
と言う回答です。

htmlとファイル名を管理画面でごそっと変えたい、と言う事のようですので、それなりのプログラムを作成する必要があります。

決まりきった文字(正規表現は分りますか?)を一括変換であれば、ファイルを読み込んで、

ereg_replace ("ccc", "new", $string);

とのような関数を使えば変換出来ます。
これを管理画面でやろうとすると、当然cccやnewの部分を変数としてフォームで受け渡しすれば良いです。
例えば管理画面では

変換前<input type="text" name="from">
変換後<input type="text" name="to">
<input type="submit" name="convert" value="一括変換">

のようなフォームを作っておき、先ほどの関数

ereg_replace ($_POST[from],$_POST[new], $string);

で変換し、新しいhtmlを保存します。同時に、指定ファイルを呼び出して、リネームするわけですが、、、

rename ($oldname,$newname);

しかし、正規表現の記述等が誤っていた場合はとても危険ですので、とりあえずコピーをして

copy ($oldname, $newname);

確認してから削除

unlink ($oldname);

あたりが妥当でしょうね。

当然、ファイルにせよ、ディレクトリにせよ、Apacheに実行権限が無ければ駄目です。

目的が見えて来ないので適切なアドバイスは出来ませんが、結論から言うと、「可能です」。

投稿日時 - 2005-03-30 20:06:48

あなたにオススメの質問