.*<\/div>/", $html, $match); $line = $match[0]; //読み仮名を削除 $line = preg_replace("/.*?<\/span>/", "", $line); //品詞で分割 preg_match_all("/.*?<\/ol>/", $line, $match); //結果配列に単語を格納 $result[] = $word; //品詞ごとに処理 foreach ($match[0] as $value) { //品詞名を取得 $wordclass = preg_replace("/.*【(.*?)】<\/span>.*/", "$1", $value); //意味で分割 preg_match_all("/
  • .*?<\/li>/", $value, $match); //意味が単数の場合はこちらの処理 if ($match[0] == null) { preg_match_all("/
      .*?<\/ol>/", $value, $match); } //意味ごとに処理 for ($i = 0; $i < count($match[0]); $i++) { //HTMLタグを削除 $meaning = strip_tags($match[0][$i]); //品詞内での単語番号を取得 $no = $i + 1; //品詞と番号を追加 $meaning = '【' . $wordclass . '-' . $no . '】' . $meaning; //意味にカンマが含まれる場合 if (strpos($meaning, ',')) { //ダブルクオートをエスケープ $meaning = str_replace('"', '""', $meaning); //意味をダブルクオートで括る $meaning = '"' . $meaning . '"'; } //結果配列に意味を格納 $result[] = $meaning; } } //結果配列を返す return $result; } ?>