HTML一括書き換えの方法とは?

このQ&Aのポイント
  • HTMLの一括書き換え方法とは、すべてのHTMLファイル内の特定の要素を一括で書き換える方法です。
  • 具体的には、HTML内の<img>要素のsrc属性を一括でファイル名に置換することができます。
  • これにより、効率的にHTMLファイルの画像パスを修正することができます。
回答を見る
  • ベストアンサー

300あるHtmlの一部を一括で書き換えたいです

すべてのHTMLに<img src="ダミー.gif">と入っております こちらを一括でファイル名に置換したいのですが 良い手段を見つけることがなく困っています 例 : testhtml01.html <img src="ダミー.jpg"> → testhtml01.html <img src="testhtml01.jpg"> testhtml02.html <img src="ダミー.jpg"> → testhtml02.html <img src="testhtml02.jpg"> test.html <img src="ダミー.jpg"> → test.html <img src="test.jpg"> のように置き換えていきたいです 大変お手数をおかけいたします どうぞよろしくお願いいたします

  • HTML
  • 回答数8
  • ありがとう数22

質問者が選んだベストアンサー

  • ベストアンサー
  • eden3616
  • ベストアンサー率65% (267/405)
回答No.8

No4です。 No7において、補足です。 D&Dしたファイルは、ダミーがファイル名(拡張子除く)で置換されて上書きされます。 複数のファイルをまとめてD&D出来ます。 「置換.wsf」の以下の箇所を変更して頂ければ「ダミー」意外にも対応できます。 strRepl="ダミー"; /* 置換対象文字列 */ 各htmlファイルの中で使用されている「ダミー」が全て置換されます。 「ダミー.jpg」以外にも「ダミー」を使用している場合、以下の2箇所を変更してください。 (1) strRepl="ダミー"; /* 置換対象文字列 */      ↓ strRepl="ダミー.jpg"; /* 置換対象文字列 */ (2) strWith = objFs.GetBaseName(objArg(i));      ↓ strWith = objFs.GetBaseName(objArg(i))+".jpg";

moiscube
質問者

お礼

ありがとうございます完璧でした こんなスクリプトもあったんですね・・・大変勉強になりました

その他の回答 (7)

  • eden3616
  • ベストアンサー率65% (267/405)
回答No.7

適当なフォルダに新規でテキストファイルを作成してください。 テキストファイルをメモ帳で開き、以下のコードを貼り付けて上書き保存して閉じてください。 テキストファイルの名前を「置換.wsf」に変更してください。 対象のhtmlファイルを「置換.wsf」にドラッグ&ドロップしてください。 ■コード <?xml version="1.0" encoding="Shift_JIS" standalone="yes" ?> <package> <job id="WordReplace"> <?job error="True" debug="True" ?> <object id="objFs" progid="Scripting.FileSystemObject" /> <script language="JavaScript"> <![CDATA[ strRepl="ダミー"; /* 置換対象文字列 */ var objArg=WScript.Arguments; for(i=0;i<objArg.length;i++){ strTmp= objFs.BuildPath (objFs.GetParentFolderName (WScript.ScriptFullName), objFs.GetTempName ()); var objTs =objFs.OpenTextFile(objArg(i),1,false); var objTs2=objFs.OpenTextFile(strTmp,2,true); strWith = objFs.GetBaseName(objArg(i)); do{ strLne=objTs.ReadLine(); strLne=strLne.replace(strRepl,strWith); objTs2.WriteLine(strLne); }while(!objTs.AtEndOfStream); objTs.Close(); objTs2.Close(); objFs.DeleteFile(objArg(i)); objFs.MoveFile(strTmp,objArg(i)); } ]]> </script> </job> </package>

回答No.6

No.1です。 testhtml01.html testhtml02.html test.html というそれぞれのhtmlファイルがあり、そのそれぞれのファイルの中の記述に <img src="ダミー.jpg"> という記述がある。 そしてその"ダミー.jpg"の部分を、それぞれのファイル名に変更したい。 と言う事ですか?

moiscube
質問者

補足

お忙しいところありがとうございます その通りです かなり時間をかけて調べているのですが今のところ糸口がつかめないでおります どうぞよろしくお願いいたします

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.5

ファイルを開かずに置換できる機能を持つテキストエディタで・・・ EmEditor( https://jp.emeditor.com/ ) でしたら [検索]→[ファイルから置換] POSIXの一般的な正規表現をそのまま使用して 置換する文字   test(\w*)(\d*)\.html(\s)<img src="(ダミー).jpg"> 置換後の文字  test\1\2.html\3<img src="test\1\2.jpg">  ファイルが300個開かれたままになるはずですから、「ファイルを開いたままにする」のチェックは外す。  EmEditorは一ヶ月は使用できます。

moiscube
質問者

お礼

ありがとうございます すいませんやはり私の書き方が悪かったのがダメでした ファイル名 testhtml01.html ファイルの中身 <html> <body> <img src="ダミー.jpg"> </body> </html> を ファイル名 testhtml01.html ファイルの中身 <html> <body> <img src="testhtml01.jpg"> </body> </html> としたいのですが難しいです

  • eden3616
  • ベストアンサー率65% (267/405)
回答No.4

http://sakura-editor.sourceforge.net/download.html HTMLを正規表現での置換が行えるテキストエディタ(たとえば上記URLのサクラエディタ)に張り付けて 置換前 (\w+)\.html <img src="ダミー\.jpg"> 置換後 $1\.html <img src="$1\.jpg"> で置換すればよいのでは?

moiscube
質問者

お礼

ありがとうございます すいません私の書き方が誤解を招いているみたいです ↓ファイル名    ↓文章 testhtml01.html <img src="ダミー.jpg"> ということでした実際のtesthtml01.htmlの中身は <html> <body> <img src="ダミー.jpg"> </body> </html> とかだと思っていただければと思います

回答No.3

No.2の補足&説明です。 最初の関数 LEFT(A1,FIND("=",A1)+1) は『ダミー』の前の『"』までを抽出しています。 次の LEFT(A1,FIND(".",A1)-1) で、構文の左から数えて最初の『.』までを抽出しています。 最後の RIGHT(A1,6) は右から6文字を抽出しています。 そうやって抽出した 『testhtml01.html <img src="』と『testhtml01』と『.jpg">』をそれぞれ『&』でつなげています。 知ってたらゴメンなさい。

moiscube
質問者

お礼

ありがとうございます 自動でHTMLを読み込んで保存してくれれば良いのですが やり方が分からず・・・申し訳ありません

回答No.2

使用&所持ソフトがわからないので、たぶん持っていると思われる定番ソフトでの変更の仕方です。 htmlの構文をコピーし、excelのA列にテキスト貼り付けします。 B1に =LEFT(A1,FIND("=",A1)+1)&LEFT(A1,FIND(".",A1)-1)&RIGHT(A1,6) と入れればいけると思います。 後はこの関数をB2から下にコピーすれば完成です。

  • adobe_san
  • ベストアンサー率21% (2103/9760)
回答No.1

win http://textss.sakura.ne.jp/ mac http://www.artman21.com/jp/jedit_x/ 使い方はマニュアル見てちょ!

moiscube
質問者

お礼

ありがとうございます マニュアルを見て使ってみたのですがどうしても ファイル名を取ってくる方法がわからずうまくいきませんでした・・・

関連するQ&A

  • 正規表現でタグの置換をしたいと試行錯誤しております。

    正規表現でタグの置換をしたいと試行錯誤しております。 もう1歩のところだと思いますがなかなかうまくいきません。 imgタグのsrcの中身を置換したいと思っております。 <img src="/uploads/abc.gif"><img src="/uploads/test/aaa.jpg"> 上記のタグを下記のように置換 <img src="cid:abc.gif"><img src="cid:aaa.jpg"> ディレクトリの部分を「cid:」とし、その後にファイル名とする。 preg_replace('/<img[^>]*src="([^"]+).+>/', "<img src=\"cid:$1\">", $body); 上記のようなコードにまではたどり着きましたがディレクトリの削除がうまくいきません。 良い方法があれば教えてください。

    • ベストアンサー
    • PHP
  • HTMLタグ一括編集

    <a href="URL.***"><img src="URL.***"></a> 上記のタグの場合、***の部分だけをフォルダから一括で連番指定出来るソフトを探しています。 例えば <a href="URL.001.jpg"><img src="URL.001.jpg"></a> ・ ・ ・ <a href="URL.054.jpg"><img src="URL.054.jpg"></a> という風にタグに中に一括で001.jpg~054.jpgだけを入れ替えるソフトです。 よろしくお願いします。

  • HTMLで入力すると・・・

    HTMLで画像を入れようとすると、うまくできません。HTMLは、<IMG src="画像名.gif">でやっています。何でなのでしょうか?教えてください。

  • ダウンロードしたHTMLの画像が表示されない

    HTMLファイルを一括ダウンロードしましたが、トップページからのリンクが 切れているのか、画像データがブラウザで表示せずに×印になっています。 表示する画像データのソースと表示しない画像データのソースを比較しても原因が解りません。 ソースは <img src="abc/abc.jpg" width="190" height="245" hspace="10" align="left"> などとなっており、必要なHTMLファイルはディレクトリごと 全てダウンロードソフトでHDD内に保存してあります。 img src="abc/abc.jpg"のパスをHDDの絶対パスに変更しても駄目でした。表示しないのはjpeg,gifどちらもです。 ブラウザの設定なのでしょうか? どうすれば良いでしょうか? 宜しくお願いします。

  • 正規表現についての質問です。

    正規表現についての質問です。 現在、HTMLのimgタグを使って「/img/jpg/」ディレクトリにある画像ファイルを複数表示しています。 例) <img src="/img/jpg/1111.jpg" > <img src="/img/jpg/mm2222.jpg" > <img src="/img/jpg/kkkkk3333.jpg" > これをそれぞれ、以下のように置換したいと考えています。 例) <a href="http://www.xxxxx.jp/1111.jpg"><img src="/img/jpg/1111.jpg" width="240px"></a> <a href="http://www.xxxxx.jp/mm2222.jpg"><img src="/img/jpg/mm2222.jpg" width="240px"></a> <a href="http://www.xxxxx.jp/kkkkk3333.jpg"><img src="/img/jpg/kkkkk3333.jpg" width="240px"></a> imgタグをリンクタグで囲むのですが、リンク先URLには元々の画像ファイル名が使われています。また、imgタグには「width="240px"」が付加されています。 このような置換をPHP5で行うには、どのような正規表現を使用したらよろしいでしょうか。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 正規表現についての質問です。

    正規表現についての質問です。 現在、HTMLのimgタグを使って「/img/jpg/」ディレクトリにある画像ファイルを複数表示しています。 例) <img src="/img/jpg/1111.jpg" > <img src="/img/jpg/mm2222.jpg" > <img src="/img/jpg/kkkkk3333.jpg" > これをそれぞれ、以下のように置換したいと考えています。 例) <a href="http://www.xxxxx.jp/1111.jpg"><img src="/img/jpg/1111.jpg" width="240px"></a> <a href="http://www.xxxxx.jp/mm2222.jpg"><img src="/img/jpg/mm2222.jpg" width="240px"></a> <a href="http://www.xxxxx.jp/kkkkk3333.jpg"><img src="/img/jpg/kkkkk3333.jpg" width="240px"></a> imgタグをリンクタグで囲むのですが、リンク先URLには元々の画像ファイル名が使われています。また、imgタグには「width="240px"」が付加されています。 このような置換をPHP5で行うには、どのような正規表現を使用したらよろしいでしょうか。 宜しくお願い致します。

    • 締切済み
    • PHP
  • HTMLでの画像の載せ方

    HPをHTMLで作る練習をしています。 画像をHPに掲載したいのですが <IMG src="ファイル名">でいけると思い 88171フォルダのdata01.jpg画像を 掲載したく <img src="88171/data01.jpg"> とメモ帖に書いて保存したんですがデスクトップで確認すると ×マークになり見る事ができません。 何故でしょうか? また保存時のファイルの種類の判断もよくわかりません。 誰か教えてください。

  • preg_match_allで正規表現

    preg_match_allにて、次のように<img>が連続したソースから、 ※URLは全てダミーです <img src="http://a.com/a/a.jpg"><img width="10" src='http://b.com/b/b.gif' height="10"><img width="10" height="10" src='http://c.com/c/c.png"><img src=http://d.com/d/d.jpg><img src="http://e.com/hogefuga/e.jpg"> 個々のimgタグ全体と"<img~>"、 個々のsrc="~"のURLを抽出したいのですが、下記の条件でマッチさせることはできるでしょうか? 1. imgの属性位置・有無に問わず 2. 属性のくくりが、'" のどちらでも、または有無に問わず 3. src=~内に、"hogefuga"を含まないものにだけマッチ(否定形) 次のような正規表現で試したところ、 $pattern = '/<img.*?src=(\'|")?((?(?!hogefuga).)*\.(jpg|gif|png))(\'|")?.*?>/i'; 下のようにimgタグが1行づつ並んでいる場合は上手くいったのですが、連続して並んでいる場合は個々の、"<img~>"でマッチされませんでした。 ※URLは全てダミーです <img src="http://a.com/a/a.jpg"> <img width="10" src='http://b.com/b/b.gif' height="10"> <img width="10" height="10" src='http://c.com/c/c.png"> <img src=http://d.com/d/d.jpg> <img src="http://e.com/hogefuga/e.jpg"> 最終的にはsrc="~"のURLに応じて、画像をテキストリンクへ置換する、ということをしたいのですが、正規表現がよくわからず試行錯誤しています。 このような場合はどのような正規表現を書くべきなのでしょうか? どうぞよろしくお願いします。

    • ベストアンサー
    • PHP
  • PHP正規表現の難題・preg_replaceでイメージタグをリンクタグに…

    PHPのpreg_replaceを使用して、 imgタグをaタグに置換するプログラムで躓いています。 全てのパターン$hogeで適用される正規表現をかけません。 (※現在パターン1のみ出来ない状況で困っています) 間違い箇所ありましたらご教授下さい。 ■パターン1 $hoge = '<img src="http://test.jp/test.gif" class="test" style="border:none;" />'; ■パターン2 $hoge = '<img src="http://test.jp/test.gif">'; ■パターン3 $hoge = '<img width="100" src="http://test.jp/test.gif">'; preg_replace('/\<img(.*)src=\"?(http[\-_\.\!\~\*\'\(\)a-z0-9\;\/\?\:@&=\+\$\,\%\#]+(jpg|jpeg|gif|png|bmp))\"(.*)\>/i',"<a href='\\2'>link</a>",$hoge); どうぞよろしくお願い致します。

    • ベストアンサー
    • PHP
  • HTMLについて

    現在HTMLを勉強しています そこで画像の配置についてわからないところがあるので教えてください 添付した画像のようにしたいのですが緑の画像がかなりしたになってしまいます どうすればいいでしょうか? コードとCSSは HTML <body> ~~~省略~~~ <div class="menu_block"> <table class="menu_left"> <tr> <td class="photo"><img src="img/siri-zu.gif" style="margin-top:80px;"></td> </tr> <tr> <td class="photo"><img src="img/sekkenn.gif" style="margin-top:20px;"></td> </tr> <tr> <td class="photo"><img src="img/oiru.gif"style="margin-top:10px;"></td> </tr> <tr> <td class="photo"><img src="img/jeru.gif"style="margin-top:10px;"></td> </tr> <tr> <td class="photo"><img src="img/set.gif"style="margin-top:10px;"></td> </tr> <tr> <td class="photo"><img src="img/mini.gif"style="margin-top:10px;"></td> </tr> </table> <img src="img/3.gif" height="300" alt="3STEP" class="menu_right"> <img src="img/rank.jpg" style="margin-top: 80px ;" class="ranking"> <img src="img/test.jpg" width="600" height="200" style="margin-left: 200px;" class="rebyu"> </div> </div> </body> CSS @charset "UTF-8"; h1 { margin: 30px 0 30px 0; padding: 0 0 0 0; line-height: 0; text-align: center; } #wrapper { width: 1050px; margin: 0 auto 0 auto; } .menu_block { overflow: hidden; zoom: 1; } .menu_left { float: left; margin-right: 20px; } .menu_right { float: left; margin-top: 80px; margin-left: 20px; } .ranking { float: left; margin-left: 20px; } .rebyu { float: left; margin-top: 10px; } です 赤の真下に緑が来るというのが理想です

    • ベストアンサー
    • HTML

専門家に質問してみよう