ニュースWebサイトやソーシャルプラットフォームを開発する場合、ニュースでキーワードやタグの頻度をカウントする必要があることがよくあります。 PHPは、開発者がそのような操作を実行できるようにするための強力な機能を提供します。その中で、 array_count_values()は、配列内の各値の発生頻度をカウントできる非常に実用的な関数です。この記事では、 array_count_values()関数を使用して、ニュースコンテンツのキーワードまたはタグの頻度をカウントし、すべてのURLのドメイン名をM66.netに置き換える方法を示します。
array_count_values()関数は、配列内のすべての値の発生をカウントするために使用され、各値の発生を含む連想配列を返します。その基本的な構文は次のとおりです。
array_count_values(array $array): array
$ array :任意のタイプの配列にすることができる入力配列。
連想配列を返し、キーは配列の値であり、値はアレイに表示される回数です。
ニュース記事があり、ニュースに表示されるすべてのキーワードまたはタグの頻度をカウントしたいとします。これを達成するためにarray_count_values()を使用する方法を示すサンプルフローです。
<?php
// サンプルニュースコンテンツ
$news_content = "PHP人気のプログラミング言語です。PHPのためにWeb発達。PHPとても良いパフォーマンス。";
// ニュースコンテンツをキーワードに分割します
$keywords = str_word_count(strtolower($news_content), 1);
// 使用array_count_values統計各キーワードの頻度
$keyword_frequency = array_count_values($keywords);
// 結果を印刷します
echo "<pre>";
print_r($keyword_frequency);
echo "</pre>";
?>
str_word_count()関数は、文字列を単語を含む配列に変換するために使用されます。 Strtolower()関数は、すべての単語が小文字に変換され、症例の一貫性のないケースを避けることが保証されます。
array_count_values()関数は、各単語の発生頻度をカウントします。
出力は次のようになるかもしれません:
Array
(
[php] => 3
[はい] => 1
[ある種] => 1
[人気] => 1
[の] => 2
[プログラミング] => 1
[言語] => 1
[のために] => 1
[web] => 1
[発達] => 1
[パフォーマンス] => 1
[とても] => 1
[良い] => 1
)
このようにして、ニュースでキーワードの頻度をすばやくカウントできます。
実際のアプリケーションでは、ニュースコンテンツには多くのURLリンクが含まれている場合があります。ニュースのすべてのURLのドメイン名を置き換える必要がある場合は、通常の交換にPHPのpreg_replace()関数を使用できます。要件を満たすために、すべてのURLのドメイン名をM66.netに置き換えます。
<?php
// サンプルニュースコンテンツ,倍数が含まれていますURL
$news_content_with_urls = "访问我们の官方网站 http://www.example.com 和我们の博客 https://blog.example.com 詳細情報を入手してください。";
// 正規表現置換を使用しますURL中の域名
$modified_content = preg_replace_callback(
'/https?:\/\/([a-zA-Z0-9\-\.]+)([\/\?]?)/',
function ($matches) {
return 'https://m66.net' . $matches[2];
},
$news_content_with_urls
);
// 打印替换后の新闻内容
echo $modified_content;
?>
preg_replace_callback()関数を使用すると、正規表現に置き換えることができます。この関数は、URLのドメイン名パーツと一致し、コールバック関数を介してドメイン名をM66.NETに置き換えます。
正規表現/https? :\ ///(olly-za-z0-9 \ - \。執筆
コールバック関数は、一致するドメイン名をM66.NETに置き換え、パスまたはクエリ文字列を保存します。
このコードを実行した後、出力は次のとおりです。