suchen
Heimphp教程php手册PHP和MySQL生成的标签云实现代码

用户输入文本和输入的文本在过去的一个标签云,标签云是一个用户生成的标签的可视化描述,或只是一个网站的文字内容,通常用来描述网站的内容。

为此,我们将创建一个HTML表格,将接受用户文本,也让用户可以看到从 MySQL数据库,其中包含在过去输入的文本生成的标签云,代码如下:

<?php
echo &#39;<form method="post" action="tag_cloud_gen.php" name="gen_tag_db">&#39;;
echo &#39;<p>Input your text here:<br /><textarea name="tag_input" rows="20" cols="80"></textarea></p>&#39;;
echo &#39;<input type="submit" name="submit">&#39;;
echo &#39;</form>&#39;;
?>
<br /> 
<h3 id="OR">OR</h3> 
<br /> 
<p>see the current tag cloud here</p> 
<?php
echo &#39;<form name="show_tag_cloud" method="post" action="show_tag_cloud.php">&#39;;
echo &#39;<input type="submit" value="show current tag cloud" >&#39;;
echo &#39;</form>&#39;;
?>

其中每个计算其频率和对将进入一个数组,输入的文本将被表征为单个词。然后将这个数组存储到一个MySQL数据库,我们可以选择保存在MySQL数据库表coloumn存储任何链接,如果这个项目未来的扩展。

1) tag_id -- int,primary key,auto increament 1)tag_id - 整型,主键,自动increament

2) keyword - varchar(20),unique 2)关键字 - 数据类型为varchar(20),独特的

3) weight - int 3)重量 - 诠释

4) link - varchar(256). 4)链接 - 为varchar(256)。

代码如下:

<?php
/** 
 * this function will update the mysql database table to reflect the new count of the keyword
 * i.e. the sum of current count in the mysql database &amp;amp;amp;amp; current count in the input.
 */
function update_database_entry($connection, $table, $keyword, $weight) {
    $string = $_POST[&#39;tag_input&#39;];
    $connection = mysql_connect("localhost", "root", "");
    /** 
     * now comes the main part of generating the tag cloud
     * we would use a css styling for deciding the size of the tag according to its weight,
     * both of which would be fetched from mysql database.
     */
    $query = "select * from `tagcloud_db`.`tags` where keyword like &#39;%$keyword%&#39;";
    $resultset = mysql_query($query, $connection);
    if (!$resultset) {
        die(&#39;Invalid query: &#39; . mysql_error());
    } else {
        while ($row = mysql_fetch_array($resultset)) {
            $query = "UPDATE `tagcloud_db`.`tags` SET weight=" . ($row[2] + $weight) . " where tag_id=" . $row[0] . ";";
            mysql_query($query, $connection);
        }
    }
}
?>
<?php
/*
 * get the input string from the post and then tokenize it to get each word, save the words in an array
 * in case the word is repeated add &#39;1&#39; to the existing words counter
*/
$count = 0;
$tok = strtok($string, " t,;.&#39;\"!&-`nr"); //considering line-return,line-feed,white space,comma,ampersand,tab,etc... as word separator
if (strlen($tok) > 0) $tok = strtolower($tok);
$words = array();
$words[$tok] = 1;
while ($tok !== false) {
    echo "Word=$tok<br />";
    $tok = strtok(" t,;.&#39;\"!&-`nr");
    if (strlen($tok) > 0) {
        $tok = strtolower($tok);
        if ($words[$tok] >= 1) {
            $words[$tok] = $words[$tok] + 1;
        } else {
            $words[$tok] = 1;
        }
    }
}
print_r($words);
echo &#39;<br /><br />&#39;;
/** 
 * now enter the above array of word and corresponding count values into the database table
 * in case the keyword already exist in the table then update the database table using the function &#39;update_database_entry(...)&#39;
 */
$table = "tagcloud_db";
mysql_select_db($table, $connection);
foreach ($words as $keyword => $weight) {
    $query = "INSERT INTO `tagcloud_db`.`tags` (keyword,weight,link) values (&#39;" . $keyword . "&#39;," . $weight . ",&#39;NA&#39;)";
    if (!mysql_query($query, $connection)) {
        if (mysql_errno($connection) == 1062) {
            update_database_entry($connection, $table, $keyword, $weight);
        }
    }
}
mysql_close($connection);
?>

做出anether文件和将其命名为style.css文件,把下面的代码:

HTML, BODY 
	{ 
	padding: 0; 
	border: 0px none; 
	font-family: Verdana; 
	font-weight: none; 
	} 
	.tags_div 
	{ 
	padding: 3px; 
	border: 1px solid #A8A8C3; 
	background-color: white; 
	width: 500px; 
	-moz-border-radius: 5px; 
	} 
	H1 
	{ 
	font-size: 16px; 
	font-weight: none; 
	} 
	A:link 
	{ 
	color: #676F9D; 
	text-decoration: none; 
	} 
	A:hover 
	{ 
	text-decoration: none; 
	background-color: #4F5AA1; 
	color: white; 
	}

这将使我们的标签云外观漂亮,它保存为style.css的,再次,使一个新的PHP文件,并命名它show_tag_cloud.php。

在PHP代码中,如下我们连接到MySQL数据库,获取所有的标签,其重量和纽带,然后计算每个使用它的重量及最小的标签大小假定为标签的大小,它也是每一个标签从数据库中检索或与Google链接,如果没有链接存在,即"不适用"的链接,代码如下:

<?php
$connection = mysql_connect("localhost", "root", "");
$table = "tagcloud_db";
$words = array();
$words_link = array();
mysql_select_db($table, $connection);
$query = "SELECT keyword,weight,link 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];
    }
}
// Incresing this number will make the words bigger; Decreasing will do reverse
$factor = 0.5;
// Smallest font size possible
$starting_font_size = 12;
// Tag Separator
$tag_separator = &#39;     &#39;;
$max_count = array_sum($words);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<HTML> 
 <HEAD> 
  <TITLE> Tag Cloud Generator </TITLE> 
  <META NAME="Keywords" CONTENT="tag, cloud, php, mysql"> 
  <META NAME="Description" CONTENT="A Tag Cloud using php and mysql"> 
  <LINK REL="stylesheet" HREF="style.css" TYPE="text/css"> 
 </HEAD> 
<BODY> 
<center><h1 id="Tag-nbsp-Cloud-nbsp-using-nbsp-php-nbsp-and-nbsp-mysql-nbsp">Tag Cloud using php and mysql </h1><div align=&#39;center&#39; class=&#39;tags_div&#39;> 
<?php
foreach ($words as $tag => $weight) {
    $x = round(($weight * 100) / $max_count) * $factor;
    $font_size = $starting_font_size + $x . &#39;px&#39;;
    if ($words_link[$tag] == &#39;NA&#39;) echo "<span style=&#39;font-size: " . $font_size . "; color: #676F9D;&#39;><a href=&#39;http://www.google.co.in/search?hl=en&q=" . $tag . "&meta=&#39;>" . $tag . "</a></span>" . $tag_separator;
    else echo "<span style=&#39;font-size: " . $font_size . "; color: #676F9D;&#39;><a href=&#39;http://" . $words_link[$tag] . "/&#39;>" . $tag . "</a></span>" . $tag_separator;
}
?>
</div></center> 
</BODY> 
</HTML>

现在把他们所有在您的Web服务器的根目录,并观看结果。 每个查询会给你新的结果,随着时间的推移,数据库的增长。

教程链接:

随意转载~但请保留教程地址★

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung