从网站内容 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 的相关文章

  • React Router v4 不渲染组件

    React Router v4 渲染组件存在问题 在应用程序初始加载时 它将呈现与 URL 相对应的正确组件 但是 任何后续的组件Link单击不会呈现所需的组件 图书馆 反应路由器 4 2 2 https reacttraining com
  • onclick 事件中未调用函数

    我想在每个 YouTube 链接的末尾添加一些 HTML 以在 litebox 中打开播放器 到目前为止 这是我的代码 document ready function var valid url new RegExp youtube com
  • 如何在另一个自定义 Hook 中使用返回值的自定义 Hook?

    我正在使用 React native 其中有一个名为的自定义 HookuseUser使用以下方法从 AWS Amplify 获取用户信息Auth getUserInfro方法 然后获取返回对象的一部分并用它设置一个状态变量 我还有另一个名为
  • 如何在模态打开时防止主体滚动

    我在用着W3schools 模态脚本 https www w3schools com howto tryit asp filename tryhow css modal我想添加一个功能 防止模型打开时整个主体滚动 我根据我的需要对原始脚本做
  • 如何始终将焦点保持在文本框中

    我创建了一个包含两个 div 的 HTML 页面 左侧的 div 页面的 90 是 ajax 结果的目标 右侧的 div 页面的 10 包含一个文本框 该页面的想法是在文本框中输入零件编号 通过条形码扫描仪 并显示与该零件编号匹配的绘图 显
  • 编辑第一个选项名称

    我有以下我无法访问的代码 我想要做的是将一些文本添加到现在为空的第一个选项中 诸如 选择地址 之类的文本
  • 从支付网关重定向回时用户会话丢失

    我已将 Cyber source 配置为我的支付网关 我能够导航到 cybersource 并进行付款 并能够成功重定向回该网站 我也可以取消付款并重定向回我的网站 我收到来自支付网关的响应 但是 用户在从支付网关重定向回来时会被注销 我正
  • 使用javascript动态更新css内容

    需要将 css 更新为动态值 我不确定最好的方法是什么 div style zoom 1 div 缩放级别将根据窗口大小调整触发 应用程序将相应缩放 我将此应用程序加载到 cordova 中并让它在 iPAD 中运行 然后我意识到需要使用
  • 使用 CSS 折叠和展开元素

    我正在尝试构建一个页面 加载时仅可见标题 并且 当用户单击标题时 每个标题下方的表格会在隐藏和显示状态之间切换 我的限制是只能在 CSS 中执行此操作 这是我到目前为止想到的 https jsfiddle net Argoron c1ypx
  • $resource.query 返回分割字符串(字符数组)而不是字符串

    我正在使用像下面这样的 Angular resource angular module app factory data function resource var Con resource api data update method P
  • Highcharts jQuery 渲染问题 - 所有浏览器

    我在尝试使用构建堆积柱形图时遇到了一个奇怪的问题高图表 http www highcharts com 当图表呈现时 在您调整浏览器大小之前 不会显示列无论如何 导致图表重绘 我认为 图表的其余部分显示 轴 标题等 但不显示列本身 我在 I
  • 使用 Enzyme 测试 `React.createRef` api

    我想测试下面的类 它使用React createRef api 不过 快速搜索并没有发现任何这样做的例子 有人成功过吗 我该如何嘲笑裁判 理想情况下我想使用shallow class Main extends React Component
  • 有没有办法使用 ko.observableArray 作为地图?

    有没有办法使用ko observableArray http knockoutjs com documentation observableArrays html像地图 字典一样 例如 var arr ko observableArray
  • react-native - 图像需要来自 JSON 的本地路径

    你好社区 我正在react native中开发一个测试应用程序 并尝试从本地存储位置获取图像 我实际在做什么 我将图像直接链接源提供给 var 并在渲染函数中调用此方法 react 0 14 8 react native 0 23 1 np
  • 滚动顶部不符合预期

    Note 由于上次忘记奖励而重新开放赏金 A Woff 大师已经给出答案 我想在用户展开某一行时到达该行 这样当最后一个可见行展开时 用户不必向下滚动即可查看内容 I used example tbody on click td green
  • Laravel $request->file() 返回 null

    尝试在后端使用 Laravel 上传文件时遇到问题 Issue Laravel request gt file 方法返回 null Setup 我使用以下方法构建了一个 AJAX 请求超级代理人 https github com visio
  • 将数组从 jquery ajax 传递到代码后面

    我必须将二维数组传递给在asp net网页代码后面编写的页面方法我有一个变量objList作为二维数组 我使用以下代码来实现此目的 但没有成功 并且未调用页面方法 脚本语言 function BindTable objList ajax u
  • 如何通过索引访问 JSON 对象中的字段

    我知道这不是最好的方法 但我别无选择 我必须通过索引访问 JSONObject 中的项目 访问对象的标准方法是只写this objectName or this objectName 我还找到了一种获取 json 对象内所有字段的方法 fo
  • php 数组中出现意外的 json 输出结构

    我正在尝试转换动态数据 如何从 PHP 获取此 JSON JSON 122240cb 253c 4046 adcd ae81266709a6 item 0 3 这就是我所做的 但它不起作用 PHP json array 122240cb 2
  • 禁用允许文本选择的

    残疾人可以吗

随机推荐

  • 通过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 和其他代码地点 有没有更好的方法来过滤页面上的代码内容和实际的单