匿名質問者
匿名質問者匿名質問者とは「匿名質問」を利用して質問した質問者。
「匿名質問」では、ユーザー名を公開せずに匿名の質問ができます。
詳しくはこちら

perlで文字列の置き換え


上部・下部メニュー部分をテンプレートを呼び出し、表示させるようにしています。
sub view{
open(FILE,"../../../html/lib/$ssifile")||&error("No file.html");
@ssifile=<FILE>;
$ssifile="@ssifile";
close(FILE);
($ssifile_head,$ssifile_body1)=split(/<body>/,$ssifile);
($ssifile_body,$ssifile_foot)=split(/<\/body>/,$ssifile_body1);
print "$ssifile_body\n";
}
$ssifileはメニューボタンが格納されています。
また、別のものと共有で利用しているのですが、階層が違うのでうまく表示してくれません。
テンプレートには「../../~」で画像等を表記していますが、ここでは「../../../~」にしないと画像・リンクが動作しません。
「print "$ssifile_body\n";」の上に"$ssifile_bodyの「../../」を「../../../」にすべて置き換え"としたいです。
素人考えで
$ssifile_body = ~s/..\/..\//..\/..\/..\//g;
としてみましたが、正常に表示しませんでした。(なぜか数字の羅列が表示…)
これはどのように修正したらよいでしょうか?

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2014/03/05 17:11:24
  • 終了:2014/03/12 17:15:04

回答(1件)

匿名回答1号 No.1

匿名回答1号「匿名質問」を利用した質問に回答すると「匿名回答○号」と匿名で表示されます。
「匿名質問」では、ユーザー名を公開せずに匿名の質問ができます。
詳しくはこちら
2014/03/05 20:05:51

.もエスケープ

$ssifile_body = ~s/\.\.\/\.\.\//..\/..\/..\//g;

一括エスケープしてセパレータも変更

$ssifile_body = ~s#\Q../../#../../../#g;
  • 匿名回答2号
    匿名回答2号 2014/03/06 01:18:19
    テンプレートに書いてある画像のURLを相対パスで書かなければ良いだけではないのですか?

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません