从网站内容 PHP 中过滤 javascript

2024-01-07

因此,我正在制作一个脚本来根据用户提交的 URL 检查页面的关键字密度,并且我一直在使用 strip_tags,但它似乎并没有完全过滤来自实际单词内容的 JavaScript 和其他代码地点。有没有更好的方法来过滤页面上的代码内容和实际的单词内容?

if(isset($_POST['url'])){
$url = $_POST['url'];
$str = strip_tags(file_get_contents($url));
$words      = str_word_count(strtolower($str),1);
$word_count = array_count_values($words);

foreach ($word_count as $key=>$val) {
    $density = ($val/count($words))*100;
        echo "$key - COUNT: $val, DENSITY: ".number_format($density,2)."%<br/>\n";
}
}

我为此编写了两个函数:

/**
 * Removes all Tags provided from an Html string
 *
 * @param string   $str    The Html String
 * @param string[] $tagArr An Array with all Tag Names to be removed
 *
 * @return string The Html String without the tags
 */
function removeTags($str, $tagArr)
{
    foreach ($tagArr as $tag) {
        $str = preg_replace('#<' . $tag . '(.*?)>(.*?)</' . $tag . '>#is', '', $str);
    }
    return $str;
}

/**
 * cleans some html string
 *
 * @param string $str some html string
 *
 * @return string the cleaned string
 */
function filterHtml($str)
{
    //Remove Tags
    $str = removeTags($str, ['script', 'style']);

    //Remove all Tags, but not the Content
    $str = preg_replace('/<[^>]*>/', ' ', $str);

    //Remove Linebreaks and Tabs
    $str = str_replace(["\n", "\t", "\r"], ' ', $str);

    //Remove Double Whitespace
    while (strpos($str, '  ') !== false) {
        $str = str_replace('  ', ' ', $str);
    }

    //Return trimmed
    return trim($str);
}

工作示例

$fileContent     = file_get_contents('http://stackoverflow.com/questions/25537377/filtering-html-from-site-content-php');
$filteredContent = filterHtml($fileContent);
var_dump($filteredContent);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从网站内容 PHP 中过滤 javascript 的相关文章

  • Oracle Blob 在 PHP 页面中作为 img src

    我有一个网站当前使用文件服务器上的图像 这些图像显示在页面上 用户可以根据需要拖放每个图像 这是使用 jQuery 完成的 图像包含在列表中 每张图片都非常标准 img src network path image png height 8
  • 添加选项以选择框而不用 Internet Explorer 关闭该框?

    我正在尝试构建一个包含多个下拉选择框的网页 这些下拉选择框在首次打开时异步加载其选项 这在 Firefox 下工作得很好 但在 Internet Explorer 下则不然 下面是我想要实现的目标的一个小例子 基本上 有一个选择框 ID 为
  • 当表格在 IE 中获得焦点时,表格滚动条会向上跳跃

    问题 我有一个table有包装的div with overflow y auto 一旦table获得焦点 滚动条向上跳 我怎样才能防止这种情况发生 我经历过这种行为IE9 不在 Chrome 中 请注意 我已添加tabindex到桌子上 以
  • jQuery 价格滑块过滤器

    我已经创建了 jquery 价格滑块 但我不知道如何过滤我的结果 以便在滑动时您只能看到具有该值范围内的产品 HTML div class demo p p div
  • PHP 致命错误:未找到“MongoClient”类

    我有一个使用 Apache 的网站 代码如下 当我尝试访问它时 我在 error log 中收到错误 PHP Fatal Error Class MongoClient not found 以下是可能错误的设置 但我认为没有错误 php i
  • 是否可以使用流上下文在 PHP 下使用 FTPS?

    我了解到使用ftpsPHP for Windows 下的 ftp ssl connect 很困难 您被要求进入构建自己的二进制文件以包括 Open SSL 的漫长旅程 我找到了以下建议phpseclib http phpseclib sou
  • selenium-webdriver 与 webdriverjs 有什么区别(以及何时使用)?

    我是一位使用 selenium webdriver 的经验丰富的专业人士 我正在探索有关如何测试 javascript 应用程序的更多选项 我发现了 webdriverJs 不幸的是 我不明白这两者 2 之间有什么区别 有人可以解释一下何时
  • 如何更改 Ubuntu 14.04 上的 php-cli 版本?

    我是 Linux 新手 在篡改时破坏了一些 php 设置 如果我执行一个包含以下内容的 php 脚本 phpinfo 它显示 php 版本为 5 6 但通过命令行 如果我运行php v它返回 7 0 版本 我想让两个版本匹配 我怎样才能修复
  • 计算特定产品类别的购物车商品数量

    我试图仅从 WooCommerce 中的特定产品类别获取购物车中的商品数量 我正在为一家酒厂做一个网站 它有酒精和非酒精产品 所有葡萄酒都属于 葡萄酒 主类别或类别 ID 34 其下有许多子类别和产品 对于属于此类别的任何商品 我需要知道此
  • 阻止通过 GET 传递“提交”按钮值?

    我正在尝试通过 GET 传递表单信息 这很重要 这样人们就可以将表单选择中过滤后的数据发送给其他人 问题是 使用下面的代码 它不仅传递过滤器信息 还传递提交表单值 如下所示 index php month filter Feb year f
  • D3.js - 具有多个环的圆环图

    以下示例显示了 D3 js 中的圆环图 是否可以向图表添加多个圆环 var dataset apples 53245 28479 19697 24037 40245 var width 460 height 300 radius Math

  • 有多少像素? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 一个有多少像素 br 标签添加 我知道 br 高度可以通过CSS控制line height财产 不同浏览器的值是否相同 它会添加与浏览
  • 为什么 LinkedIn v2 Share API 在任何 v2/shares 端点上给出权限不足的错误?

    当我调用任何 v2 LinkedIn 共享 API 端点时 例如https api linkedin com v2 socialActions https api linkedin com v2 socialActions share UR
  • 使用 Socket.IO 时如何访问会话标识符?

    我有一个聊天 我需要管理独特的连接 我四处搜寻 但我找到的解决方案似乎都已被弃用 那么 如何使用 Socket IO 获取套接字的会话 ID 我在用着Node js http en wikipedia org wiki Node js Ex
  • 在 jQuery DataTables 中的 Ajax 请求后在 td 中添加 html 元素

    我想在获得 ajax 响应后在 td 中添加 html 元素 结果将是这样的 tr td class mycus class span class mycus class2 XYZ span td td class mycus class
  • 无法从 JSON 请求获取数据,尽管我知道它已返回

    我试图获取从 getJSON 返回的数据 但我无法让它工作 我已经在 search twitter API 上尝试了相同的代码 效果很好 但它不适用于其他网站 我知道数据已返回 因为我在使用检查器时可以找到它 我通过检查器找到的值是 id
  • Morgan Logger + Express.js:写入文件并在控制台中显示

    我正在尝试将 Morgan 与 Express js 结合使用来编写日志文件 同时也在控制台上显示我的日志 我正在使用这段代码 var logger require morgan var accessLogStream fs createW
  • 在 Firefox 中使用 Javascript 检测键盘布局

    有没有办法在 Firefox 中检测客户端的键盘布局 我知道 Chrome 的答案是肯定的 请参阅https developer mozilla org en US docs Web API Navigator keyboard https
  • 角度 ng-repeat 根据条件添加样式

    我在 div 列表上使用 ng repeat 并且在渲染此 div 的 json 中手动添加项目 我需要定位我在 json 中添加的最后一个 div 它会自动在屏幕上渲染 即 couse 光标所在的位置 其余部分保持在相同位置 但没有给出渲
  • 指定在任何 Jest 设置发生之前运行的代码

    tl dr 是 1 我怎样才能让Jest使用原生的require函数可以在任何地方加载我的测试中的所有模块 2 我将在哪里 如何进行修改 即替换为esm加载程序 https github com standard things esm ht

随机推荐

  • 通过ajax加载JavaScript的良好实践方法

    免责声明 我对 AJAX 相当陌生 我环顾四周 不确定使用哪种方法来使用 ajax 加载 javascript 我使用 ajax 来请求每个页面需要自己的 6 10 个简短方法 总共可能有 5 6 个页面 因此总共大约有 35 个以上的方法
  • Java 局部变量、对象引用、实例变量在哪里

    我目前正在学习java的内存概念 栈和堆 我知道局部变量和方法调用住在一个叫做栈的地方 对象存在于堆中 但如果该局部变量包含一个对象怎么办 或者有一个对象引用 public void Something Duck d new Duck 24
  • 从命令行启动 Instruments

    我关注这个网站是为了开始使用 UI 自动化 http blog manbolo com 2012 04 08 ios automated tests with uiautomation 1 2 http blog manbolo com 2
  • 是否可以阻止“Rscript”清理其“tempdir”?

    我正在使用 R 通过Rscript和 H2O 但 H2O 正在崩溃 我想查看日志 但当 R 会话结束时 即 Rscript 完成时 包含它们的 R 临时目录似乎被删除 是否可以告诉 R Rscript 不要删除它使用的 tmp 文件夹 解决
  • 在 CollapsingToolbarLayout 上设置 contentcrim 颜色时出错

    我的应用程序最近开始在任何具有 CollapsingToolbarLayout 的 Activity 或片段上崩溃 并显示以下错误日志 Unable to start activity ComponentInfo com radioafri
  • Haskell:列表理解到组合

    受此启发article http www haskell org pipermail haskell cafe 2009 March 057221 html 我正在尝试将函数从列表理解转换为组合风格 我发现了一些有趣的事情 Example
  • 如何使用 swig 和 C# 处理字符串数组?

    我的 C 类有一个名为init int init int argc char argv 另外 我有一个回调 void callback int num char str 我的问题是 Swig 生成了一个奇怪的类SWIGTYPE p p ch
  • 将别名命名空间动态加载到另一个 Clojure 命名空间

    我正在尝试在运行时从文件加载名称空间 对于这个命名空间 我希望有一个通用别名 这样我就可以使用独立于加载文件的实际命名空间的统一限定名称来访问该命名空间中的函数 示例 不起作用 bar a clj ns bar a defn hello w
  • 如何访问gdb中寄存器偏移量的数据?

    我如何访问诸如0x14 edx x 16xb edx 0x14 The 0x14会给你你正在寻找的东西
  • pandas向量化运算来获取字符串的长度[重复]

    这个问题在这里已经有答案了 我有一个熊猫数据框 df pd DataFrame Donald Dump Make America Great Again Donald Shrimp columns text 我喜欢的是 Dataframe
  • 使用 Entity Framework 6 和 SQLite 的问题

    我正在尝试将实体框架与 SQLite 一起使用 我在将其集成到我的主应用程序中时遇到问题 因此我从头开始进行一些测试 完全按照http brice lambson blogspot com 2012 10 entity framework
  • 我们可以更改应用内结算产品 Play 商店的价格吗

    我已将应用内计费集成到我的应用程序中 但我找不到发布我的应用程序后是否可以更改产品价格 我发现我们无法更改价格subscription产品 但找不到任何东西Managed产品 发布应用后是否可以更改产品价格 如果是 那么需要多长时间才能影响
  • 如何将第三方 JavaScript 库添加到 Meteor 应用程序?

    我想添加一个 JavaScript 前端插件 例如jquery center js 到 Meteor 应用程序 如果我把它放在我的app 目录并刷新页面我收到此错误 您的应用程序崩溃了 这是最新的日志 节点 js 201扔 e proces
  • requirements.txt 中的“-e .”有什么作用? [复制]

    这个问题在这里已经有答案了 From https github com brandon rhodes luca blob master requirements txt https github com brandon rhodes luc
  • C 中参数数量未知的函数

    我怎样才能编写 如果可能的话 一个在 C99 中接受未知数量参数的函数 返回类型是常量 是的 您可以使用所谓的可变函数在 C 中完成此操作 标准printf http pubs opengroup org onlinepubs 969991
  • 向四元数添加欧拉角

    我想向现有四元数添加欧拉角 这是我得到的 Quaternion oldTransform transform Rotation float YawRotation mouseDiff x RotationSpeed Quaternion Y
  • 如何使用 wurfl 检测桌面浏览器与移动设备?

    我计划在 Web 应用程序中使用 Wurfl 来区分移动设备和桌面浏览器 net sourceforge wurfl core utils 中的 isMobileBrowser String userAgent 似乎是执行此操作的合适函数
  • 写入性能最佳的嵌入式 SQL 数据库?

    有人对流行的开源嵌入式 SQL DB 的性能 尤其是写入性能 进行过基准测试 评估吗 我对 sqlite Firebird Embedded Derby 和 HSQLDB 其他我缺少的 进行了一些 1 1 比较 但没有全面的比较 另外 我对
  • 如何在 Scala 中进行泛型元组 -> 案例类转换?

    假设有人提供了一个函数 def getTupleData T source String List T 我需要编写一个采用案例类的函数C作为类型参数并返回List C 借助上述函数 这是我到目前为止所得到的 def getCaseClass
  • 从网站内容 PHP 中过滤 javascript

    因此 我正在制作一个脚本来根据用户提交的 URL 检查页面的关键字密度 并且我一直在使用 strip tags 但它似乎并没有完全过滤来自实际单词内容的 JavaScript 和其他代码地点 有没有更好的方法来过滤页面上的代码内容和实际的单