ホームページ >バックエンド開発 >PHPチュートリアル >PHP および MySQL_PHP チュートリアルによって生成されたタグ クラウド実装コード

PHP および MySQL_PHP チュートリアルによって生成されたタグ クラウド実装コード

WBOY
WBOYオリジナル
2016-07-13 16:56:17886ブラウズ

この記事では、phpとmysqlを使用してタグクラウドを実装する方法を紹介します。必要な学生は参考にしてください。

ユーザーがテキストを入力すると、入力されたテキストがタグクラウド上に移動します。タグ クラウドは、ユーザーが生成したタグ、または単に Web サイトのテキスト コンテンツを視覚的に表現したもので、Web サイトのコンテンツを説明するためによく使用されます。

これを行うには、ユーザーのテキストを受け入れる HTML フォームを作成し、過去に入力されたテキストを含む MySQL データベースから生成されたタグ クラウドをユーザーが表示できるようにします。

コードは次のとおりです コードをコピー
echo '
';
echo '

ここにテキストを入力してください:

';
echo '';
echo '
';
?>


OR




現在のタグ クラウドはこちら


echo '
';
echo '';
echo '
';
?>

それぞれがその頻度を計算し、ペアが配列に入り、入力テキストが単一の単語として特徴付けられます。この配列は 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 を使用したタグ クラウド


foreach($words as $tag => $weight )
{
$x =round(($weight * 100) / $max_count) * $factor;
$font_size = $starting_font_size + $x.'px';
if($words_link[$tag]=='NA') echo "".$tag."".$tag_separator;
else echo "".$tag."gt;".$tag_separator;
}
?>


次に、それらをすべて Web サーバーのルート ディレクトリに置き、結果を確認します。 時間の経過とデータベースの拡大に応じて、各クエリで新しい結果が得られます。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/631619.html技術記事この記事では、PHP と MySQL を使用してタグクラウドを実装する方法についての記事を紹介します。必要な学生は参考にしてください。 ユーザーがテキストを入力し、入力されたテキストは最後のテキストにありました...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。