[PHP-users 27749] Re: 定型フォーマットのログ変換
Seto
seto @ 1kg.jp
2005年 12月 3日 (土) 18:43:20 JST
Setoです。
コードがあっているか否かは正直見ておりません。
その点はご了承ください。
>恥ずかしながら、コードは以下のような感じなのですが、出来上がった結果を見る
>と、改行が半角スペースに変換されており、このままでは区切りがわかりません。
これは改行が半角スペースに変換されているわけではありません。
元データのタグ前のスペースが残っているだけです。
>欲しい値は取得できているのですが、これらをきれいにタブ区切りにしていく作業
>のアイデアが浮かびません。
>整形する時点で間違っているのかも・・・と思うのですが、いかがなものでしょう
>か?
今のコーディングをもう少し練るならば
1.タグ前のスペースもパターンマッチに入れて除去する。
>$html = preg_replace("/<\/?[^>]*>/", "", $html);
$html = preg_replace("/[ ]*<\/?[^>]*>/", "", $html);
2.置換のときに一緒にタブを挿入しておく
たとえば
>$html = preg_replace('/<a\s+.*?href="([^"]+)"[^>]*>([^<]+)<\/a>/is',
>'\2(\1)', $html);
$html = preg_replace('/<a\s+.*?href="([^"]+)"[^>]*>([^<]+)<\/a>/is',
'\2(\1) ', $html);
// ↑ここにタブを入れておく
他のreplaceにも必要に応じてタブを入れる。
3.更に投稿データのアンカー部分に影響しないよう引数を指定
$html = preg_replace('/<a\s+.*?href="([^"]+)"[^>]*>([^<]+)<\/a>/is',
'\2(\1) ', $html, 2);
// ↑
こんな風にいじっていけばもう少し進みそうですけど・・・
#このままで最後まで行き着けるかどうかちょっと心配^^
>
>ご助言宜しくお願いします。
>
><?
>$oldlog = "kako.html";
>$newlog = "kako2.html";
>$html = implode ('', file ($oldlog));
>
>$html = preg_replace('/<a\s+.*?href="([^"]+)"[^>]*>([^<]+)<\/a>/is',
>'\2(\1)', $html);
>$html = preg_replace('/<img\s+.*?src="icon\/(.+?)\"\s+.*?>/is', '\1',
>$html);
>$html = preg_replace('/No.([0-9]+) ([^"]+)/is', '\1 \2', $html); // タブ区
>切り
>
>$html = str_replace('</table>', '-- end --', $html);
>$html = preg_replace("/<\/?[^>]*>/", "", $html);
>$html = str_replace("\n", "", $html);
>$html = str_replace("\r", "", $html);
>$html = str_replace('-- end --', "\n", $html);
>
>
>?>
Junya Seto
PHP-users メーリングリストの案内