この記事では、phpとmysqlを使用してタグクラウドを実装する方法を紹介します。必要な学生は参考にしてください。
ユーザーがテキストを入力すると、入力されたテキストがタグクラウド上に移動します。タグ クラウドは、ユーザーが生成したタグ、または単に Web サイトのテキスト コンテンツを視覚的に表現したもので、Web サイトのコンテンツを説明するためによく使用されます。
これを行うには、ユーザーのテキストを受け入れる HTML フォームを作成し、過去に入力されたテキストを含む MySQL データベースから生成されたタグ クラウドをユーザーが表示できるようにします。
それぞれがその頻度を計算し、ペアが配列に入り、入力テキストが単一の単語として特徴付けられます。この配列は MySQL データベースに保存され、将来このプロジェクトが拡張された場合は、オプションで任意のリンクを MySQL データベースのテーブル列に保存できます。
1) tag_id —- int、主キー、自動インクリームメント 1) tag_id - 整数、主キー、自動インクリームメント
2) キーワード — varchar(20),unique 2) キーワード — データ型は varchar(20), unique です
3) 重み — 整数 3) 重み — 整数
4) リンク — varchar(256)。 4) リンク — varchar(256)。
コードは次のとおりです |
コードをコピー |
//////////////////////////////////////////////// //// //////////////////////////////////////////// //////// ///
/**
* この関数は、キーワードの新しい数を反映するために mysql データベース テーブルを更新します
* つまり、mysql データベース内の現在のカウントと & の合計です。入力内の現在のカウント。 */
関数 update_database_entry($connection,$table,$keyword,$weight){
$string=$_POST['tag_input'];
$connection = mysql_connect("localhost", "root", "");
/**
* タグクラウド生成の主要部分が始まります
* 重みに応じてタグのサイズを決定するために CSS スタイルを使用します
* どちらも mysql データベースから取得されます。
*/
$query="select * from `tagcloud_db`.`tags` where キーワード like '%$keyword%'";
$resultset=mysql_query($query,$connection);
if(!$resultset){
Die('無効なクエリ: ' .mysql_error());
} その他 {
while($row=mysql_fetch_array($resultset)){
$query="UPDATE `tagcloud_db`.`tags` SETweight=".($row[2]+$weight)." where tag_id=".$row[0].";";
mysql_query($query,$connection);
}
}
}
?>
/*
* 投稿から入力文字列を取得し、それをトークン化して各単語を取得し、単語を配列に保存します
* 単語が繰り返される場合は、既存の単語カウンターに「1」を追加します
*/
$count=0;
$tok = strtok($string, " t,;.'"!&-`nr");//改行、改行、空白、カンマ、アンパサンド、タブなどを単語の区切り文字として考慮します
if(strlen($tok)>0) $tok=strto lower($tok);
$words=array();
$words[$tok]=1;
while ($tok !== false) {
echo "Word=$tok ";
$tok = strtok(" t,;.'"!&-`nr");
if(strlen($tok)>0) {
$tok=strto lower($tok);
if($words[$tok]>=1){
$words[$tok]=$words[$tok] + 1;
} その他 {
$words[$tok]=1;
}
}
}
print_r($words);
echo '
';
/**
* 次に、上記の単語の配列と対応するカウント値をデータベース テーブルに入力します
* キーワードがすでにテーブルに存在する場合は、関数「update_database_entry(...)」を使用してデータベーステーブルを更新します */
$table="tagcloud_db";
mysql_select_db($table,$connection);
foreach($words as $keyword=>$weight){
$query="INSERT INTO `tagcloud_db`.`tags` (keyword,weight,link) 値 ('".$keyword."',".$weight.",'NA')";
if(!mysql_query($query,$connection)){
if(mysql_errno($connection)==1062){
Update_database_entry($connection,$table,$keyword,$weight);
}
}
}
mysql_close($connection);
?>
|
別のファイルを作成し、style.css という名前を付けます。別のファイルを作成し、style.css ファイルという名前を付けます。その中に以下のコードを入れます。
コードは次のとおりです |
コードをコピー |
HTML、本文
{
パディング: 0;
境界線: 0px なし;
フォントファミリー: Verdana;
フォントの太さ: なし;
}
.tags_div
{
パディング: 3px;
境界線: 1 ピクセルの実線 #A8A8C3;
背景色: 白;
幅: 500px;
-moz-border-radius: 5px;
}
H1
{
フォントサイズ: 16px;
フォントの太さ: なし;
}
A:リンク
{
色: #676F9D;
テキスト装飾: なし;
}
A:ホバー
{
テキスト装飾: なし;
背景色: #4F5AA1;
色: ホワイト;
}
|
これにより、タグクラウドの外観が良くなり、style.css として保存されます。
もう一度、新しい PHP ファイルを作成し、show_tag_cloud.php という名前を付けます。
PHP コードでは、次のように MySQL データベースに接続し、すべてのタグ、その重み、および関係を取得します。
次に、それを使用して各タグの重みを計算し、タグのサイズであると想定される最小タグ サイズを計算します。これは、リンクが存在しない場合、つまり「該当なし」の場合、データベースから取得されたすべてのタグまたは Google にリンクされたすべてのタグのリンクでもあります。 「
コードは次のとおりです |
コードをコピー |
$connection = mysql_connect("localhost", "root", "");
$table="tagcloud_db";
$words=array();
$words_link=array();
mysql_select_db($table,$connection);
$query="SELECT キーワード、重み、リンク FROM `tagcloud_db`.`tags`;";
if($resultset=mysql_query($query,$connection)){
while($row=mysql_fetch_row($resultset)){
$words[$row[0]]=$row[1];
$words_link[$row[0]]=$row[2];
}
}
// この数値を増やすと単語が大きくなり、減らすと逆になります 。
$factor = 0.5;
// 可能な最小のフォントサイズ
$starting_font_size = 12;
// タグ区切り文字
$tag_separator = ' ';
$max_count = array_sum($words);
?>
タグクラウドジェネレータ
php と mysql を使用したタグ クラウド
|