0

これは前に作ったのですが、すべての手順を忘れてしまいました。file_get_contents() 関数を使用してページを取得する方法を理解し、不要なものをすべて取り除きました

$data = file_get_contents("index.php"); //read the file
$data = strip_tags($data);
$data = strtoupper($data);

次に、指定されたセパレートをすべて削除するカスタムの分解機能を使用しています

$sep = "   ():.,!@#$%^&*[]{}?<>;";
$convert = superExplode($data, $sep);
function superExplode($str, $sep) {
    $i = 0;
    $arr[$i++] = strtok($str, $sep);
    while($token = strtok($sep))
    $arr[$i++] = $token;
    return $arr;
}

最後に、各単語をキーとして格納し、単語数を値として格納する array_count_values() を使用して、各単語の各インスタンスをカウントします。

$count = array_count_values($convert);

これで、単純に foreach ループを使用して、データベースに格納するキーと単語数を取得できます。ただし、私が抱えている問題は、print_r($count) を実行すると、$count 配列に空白のキーが表示されることです。たとえば、次のようになります。

print_r($count);

戻り値:

 Array ([] => 1
 [] => 2 
 [] => 1 
 [HOME] => 1 
 [] => 1 
 [SUBMIT] => 1 
 [NEW] => 1 
 [VIEW] => 1)

何も入っていないキーを除外するにはどうすればよいですか? ありがとう。

4

3 に答える 3

0

空白を正規表現に置き換えることができます。私はこれがうまくいくと信じています...

$newData = preg_replace("/\s/", '', $data);

于 2013-05-06T19:53:09.953 に答える
0

空の要素を削除するには、引数なしでarray_filterを使用します。

$convert = array_filter($convert);
$count = array_count_values($convert);
于 2013-05-06T19:47:23.087 に答える