08/01/30 00:44:52
perlでweb製作しています。
$txt の中の
href="URL" の中のURLを
http:example.net/test.cgi?url=エンコードしたURL
の形に一括変換したいです。
たとえば
href="URLリンク(search.com)"
href="http:example.net/test.cgi?url=http%3A%2F%2Fsearch.com%2Fstr.cgi?%2Fsearch%3Ffirst%3D1%26p%3D%25BA%25C7%25B9%25E2"
のようにしたいです。
$txt内には複数のhref=""があり、href=""外にもURLがあり、その部分は変換不要です。
$cgi = "http:example.net/test.cgi?url=";
$txt =~ s/(href\=\")([\w\.\~\-\/\?\&\+\=\:\@\%\;\#\%\$]*\")/$1&cgi$2/g;
$2の部分をエンコードすればよさげなのでエンコード法を調べてみましたが↓を↑に組み込み方がわかりません。
どなたか、お教えください。
$str =~ s/([^\w ])/'%' . unpack('H2', $1)/eg;