当前位置:  开发笔记 > 编程语言 > 正文

使用php计算html网页上的单词

如何解决《使用php计算html网页上的单词》经验,为你挑选了2个好方法。

我需要一个PHP脚本,它接受一个网页的URL,然后回显一个单词被提到的次数.

这是一个通用的HTML页面:



This is the title

some description text here, this is a word.

这将是PHP脚本:


所以输出将是这样的表:

WORDS       Mentions
This        2
is          2
the         1
title       1
some        1
description 1
text        1
a           1
word        1

这就像搜索机器人在网上冲浪时所做的那样,所以,任何想法如何开始,甚至更好,你有一个PHP脚本已经这样做了吗?



1> Peter Ajtai..:

从字符串中删除所有HTML标记后,下面的一行将执行不区分大小写的字数.

实例

print_r(array_count_values(str_word_count(strip_tags(strtolower($str)), 1)));

要获取页面的源代码,您可以使用cURLfile_get_contents()

$str = file_get_contents('http://www.example.com/');

从内到外:

    使用strtolower()将所有内容都设置为小写.

    使用strip_tags()去除HTML标记

    使用str_word_count()创建一个单词数组.该参数1 返回一个数组,其中包含在字符串中找到的所有单词.

    使用array_count_values()通过计算单词数组中每个值的出现次数来捕获多次使用的单词.

    使用print_r()显示结果.



2> ConroyP..:

下面的脚本将读取远程URL的内容,删除html标记,并计算其中每个唯一单词的出现次数.

警告:在您的预期输出中,"This"的值为2,但下面区分大小写,因此"this"和"This"都记录为单独的单词.如果原始案例对您的目的不重要,您可以在处理之前将整个输入字符串转换为小写字母.

此外,由于仅在输入上运行基本的strip_tags,因此不会删除格式错误的标记,因此假设您的源html有效.

编辑:查理在评论中指出,该head部分之类的内容仍将被计算在内.借助strip_tags函数的用户注释中定义的函数,现在也可以使用这些函数.

generichtml.com



This is the title

some description text here, this is a word.

parser.php

// Fetch remote html
$contents = file_get_contents($htmlurl);

// Get rid of style, script etc
$search = array('@]*?>.*?@si',  // Strip out javascript
           '@.*?@siU',            // Lose the head section
           '@]*?>.*?@siU',    // Strip style tags properly
           '@@'         // Strip multi-line comments including CDATA
);

$contents = preg_replace($search, '', $contents); 

$result = array_count_values(
              str_word_count(
                  strip_tags($contents), 1
                  )
              );

print_r($result);

?>

输出:

Array
(
    [This] => 1
    [is] => 2
    [the] => 1
    [title] => 1
    [some] => 1
    [description] => 1
    [text] => 1
    [here] => 1
    [this] => 1
    [a] => 1
    [word] => 1
)

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有