2chのメニューをPHPの配列に持って行きたいのですが、良い方法ないですかね?


↓みたいな形にしたい。
$arr = array(”地震” => array(
”地震headline”,
”地震速報”,
”臨時地震”,
”臨時地震+”
),
”おすすめ” => array(
”政治家語録”,
”ビジネスnews+”,
”芸スポ速報+”,
”femalenews+”,
”channelbox”
)
);


http://menu.2ch.net/bbsmenu.html

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:makeworld No.1

回答回数75ベストアンサー獲得回数23

ポイント40pt

http://www.hatena.ne.jp/1128270370#

人力検索はてな - 2chのメニューをPHPの配列に持って行きたいのですが、良い方法ないですかね? ↓みたいな形にしたい。 $arr = array(”地震” => array( ”地震headline”, ”地震速報”, ..

awkスクリプトで良ければ…。

#!/usr/bin/awk -f


BEGIN { print ”$arr = array(”; f=0; }

/<[bB]>/ {

s = match($0, ”<[bB]>”);

if(s != 0) s = s + RLENGTH;

e = match($0, ”</[bB]>”);

if(e != 0) e = e - s;

if(s != 0 && e != 0) {

if(f != 0) {

printf ”¥n),¥n”;

}

f = 1;

T = substr($0, s, e);

print ”¥””T”¥” => array(”;

}

}

/<[aA] [hH][rR][eE][fF]=/ {

if(f == 0) {

} else {

s = match($0, ”<[aA] [hH][rR][eE][fF]=[^>]*>”);

if(s != 0) s = s + RLENGTH;

e = match($0, ”</[aA]>”);

if(e != 0) e = e - s;

if(s != 0 && e != 0) {

if(f != 1) {

print ”,”;

}

f = 2;

T = substr($0, s, e);

printf ”¥”%s¥””, T;

}

}

}

END { printf ”¥n)¥n);¥n”; }

結果はこんな感じです。

$ awk -f array.awk bbsmenu.html | nkf -e > array.php

$ head array.php

$arr = array(

”地震” => array(

”地震headline”,

”地震速報”,

”臨時地震”,

”臨時地震+”

),

”おすすめ” => array(

”政治家語録”,

”ビジネスnews+”,

$ tail array.php

”沖縄”

),

”他のサイト” => array(

”megabbs”,

”MILKCAFE”,

”BBNews”,

”レンサバ比較”,

”ペンフロ”

)

);

id:kunitz

ありがとうございます!

awk

2005/10/06 10:45:22

コメントはまだありません

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

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

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

回答リクエストを送信したユーザーはいません