我是靠谱客的博主 陶醉咖啡,最近开发中收集的这篇文章主要介绍php 英文单词 数,php英文单词统计器,_PHP教程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

php英文单词统计器,

本文实例为大家分享了英文单词统计器php 实现,供大家参考,具体内容如下

程序开始运行, 按”浏览”钮选择一个英文文档, 再按”统计 Statistics”钮, 即可得到按字母顺序列出的所有单词,及其出现的次数

用于测试的数据文档: data.txt

驱动程序:word.php

output.php 和 StringTokenizer.php 是 要求在同一个文件夹中的程序

1. words_statistics_PHP.png

40a1bd766afef3d95511f852b45e9e55.png

2. word.php

td{

background-color:#CF6;

width:100px;

margin:5px;

}

0)

echo "Error: " . $_FILES["file"]["error"] . "

";

else {

$myfile = fopen($_FILES["file"]["tmp_name"], "r") or die("Unable to open file!");

$str = fread($myfile,filesize($_FILES["file"]["tmp_name"]));

$delim = "?,. /:!"()tnrf%";

$st = new StringTokenizer($str, $delim);

echo '找到字符串: '.$st->countTokens();

$list=new LinkedList();

while ($st->hasMoreTokens()) {

$list->orderInsert($st->nextToken());

}

$list->words_count();

$list->traversal();

fclose($myfile);

}

}

?>

英文文档单词统计 Statistics on English words

程序开始运行, 按"浏览"钮选择一个英文文档, 再按"统计 Statistics"钮,

即可得到按字母顺序列出的所有单词,及其出现的次数英文文档名 File Name:

3. output.php

data = $data; //英文字符串

$this->next = $next; //指向后继结点的指针

$this->frequency=$frequency; //英文字符串出现的次数

}

}

class LinkedList{

private $head; //单链表的头结点,不存储数据

function __construct(){//单链表的构造方法

//头结点的数据为"傀儡", 不代表 任何数据

$this->head = new Node("dummy 傀儡");

$this->first = null;

}

function isEmpty(){

return ($this->head->next == null);

}

/* orderInsert($data) 方法,

* 按给定字符串 $data 的大小, 将其安插到适当的位置,

* 以保证单链表中字符串的存储,始终是有序的。

*/

function orderInsert($data){

$p = new Node($data);

if($this->isEmpty()){

$this->head->next = $p;

}

else {

$node= $this->find($data);

if(!$node){

$q = $this->head;

while($q->next != NULL && strcmp($data, $q->next->data)> 0 ){

$q = $q->next;

}

$p->next = $q->next;

$q->next = $p;

}else

$node->frequency++;

}

}

function insertLast($data){//将字符串插到单链表的尾部

$p = new Node($data);

if($this->isEmpty()){

$this->head->next = $p;

}

else{

$q = $this->head->next;

while($q->next != NULL)

$q = $q->next;

$q->next = $p;

}

}

function find($value){//查询是否有给定的字符串

$q = $this->head->next;

while($q->next != null){

if(strcmp($q->data,$value)==0){

break;

}

$q = $q->next;

}

if ($q->data == $value)

return $q;

else

return null;

}

function traversal(){//遍历单链表

if(!$this->isEmpty()){

$p=$this->head->next;

echo "输出结果:";

echo "".$p->data."

出现次数:".$p->frequency."";

$n=1;

while($p->next != null){

$p=$p->next;

echo "".$p->data."

出现次数:".$p->frequency."";

$n++;

if ($n%11==0) echo "

";

}

echo "";

}else

echo "链表为空!";

}

function words_count(){

if($this->isEmpty())

echo "

没有储存字符串

";

else{

$counter=0;

$p=$this->head->next;

while($p->next != null){

$p=$p->next;

$counter++;

};

echo "***共有单词 ".$counter." 个***";

}

}}

?>

4. StringTokenizer.php

';

* while ($st->hasMoreTokens()) {

* echo $st->nextToken() . '

';

* }

* prints the following output:

* Total tokens: 4

* this

* is

* a

* test

* ?>

*

*/

class StringTokenizer {

/** @var string

*/

private $string;

/** @var string

*/

private $token;

/** @var string

*/

private $delim;

/**

* Constructs a string tokenizer for the specified string.

* @param string $str String to tokenize

* @param string $delim The set of delimiters (the characters that separate tokens)

* specified at creation time, default to " nrt"

*/

public function __construct($str, $delim=" nrt") {

$this->string = $str;

$this->delim = $delim;

$this->token = strtok($str, $delim);

}

/**

* Destructor to prevent memory leaks

*/

public function __destruct() {

unset($this);

}

/**

* Calculates the number of times that this tokenizer's nextToken method can

* be called before it generates an exception

* @return int - number of tokens

*/

public function countTokens() {

$counter = 0;

while($this->hasMoreTokens()) {

$counter++;

$this->nextToken();

}

$this->token = strtok($this->string, $this->delim);

return $counter;

}

/**

* Tests if there are more tokens available from this tokenizer's string. It

* does not move the internal pointer in any way. To move the internal pointer

* to the next element call nextToken()

* @return boolean - true if has more tokens, false otherwise

*/

public function hasMoreTokens() {

return ($this->token !== false);

}

/**

* Returns the next token from this string tokenizer and advances the internal

* pointer by one.

* @return string - next element in the tokenized string

*/

public function nextToken() {

$hold = $this->token; //hold current pointer value

$this->token = strtok($this->delim); //increment pointer

return $hold; //return current pointer value

}

}

?>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持帮客之家。

www.bkjia.comtrueTechArticlephp英文单词统计器, 本文实例为大家分享了英文单词统计器php 实现,供大家参考,具体内容如下 程序开始运行, 按"浏览"钮选择一个英文...

最后

以上就是陶醉咖啡为你收集整理的php 英文单词 数,php英文单词统计器,_PHP教程的全部内容,希望文章能够帮你解决php 英文单词 数,php英文单词统计器,_PHP教程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部