html-entities 相关问题

HTML实体提供了一种输入字符的方法,这些字符无法在文档的字符编码中表达,或者无法在键盘上轻松输入。

Woocommerce get_cart_subtotal() 值包含干扰值清理过程的 HTML 实体

我正在尝试剥离标签并从 Woocommerce 的 get_cart_subtotal() 方法返回的值中删除无关字符,但我无法设法以正确的格式获取它。有东西...

回答 2 投票 0

var_dump 或 print_r 和 html 编码

","","b","i","你好"); 打印_r($x); 回显“”; var_dump($x); 在 html 源中输出这个! 大批 ( [0] => <?php $x = array("<b>","<i>","b","i","<h1>hello</h1>"); print_r ($x); echo "<hr>"; var_dump ($x); 将其输出到 html 源代码中! Array ( [0] => <b> [1] => <i> [2] => b [3] => i [4] => <h1>hello</h1> ) <hr>array(5) { [0]=> string(3) "<b>" [1]=> string(3) "<i>" [2]=> string(1) "b" [3]=> string(1) "i" [4]=> string(14) "<h1>hello</h1>" } 显然,我可能会因此受到 XSS 攻击! 如何确保数组值经过 html 编码? 虽然这个问题有一个公认的答案,但我认为 David Morrow 的答案是最好/最简单/最实用的(使用 print_r true 标志): echo "<pre>".htmlentities(print_r($some_array, true))."</pre>"; 尽管如此,这是另一种使用输出缓冲的解决方案: <?php ob_start(); print_r($some_array); $buffer = ob_get_clean(); echo "<pre>".htmlentities($buffer)."</pre>"; ?> 我发现knittl的代码不起作用。我必须进行一些小更改才能使其正常工作,如下所示: array_walk_recursive($inputarray, function(&$v) { $v = htmlspecialchars($v); }); 现在这在 PHP5.3+ 中工作得很好 或者您可以将 print_r 保存到字符串中,然后使用设置为 true 的第二个参数对其进行转义。 $arr = array('<script>alert("hey");</script>'); $str = print_r($arr, true); echo htmlentities($str); 输出: Array ( [0] => <script>alert("hey");</script> ) 脚本未执行 这个 PHP 手册注释中描述了一个对我有用的函数。 他替换var_dump的函数实现为: function htmlvardump() { ob_start(); $var = func_get_args(); call_user_func_array('var_dump', $var); echo htmlentities(ob_get_clean()); } 这在 PHP 5.3+ 中对我有用。 (请注意,原始来源中有一个拼写错误)。 一个简单的解决方案是使用 array_walk_recursive: array_walk_recursive($inputarray, function(&$v) { $v = htmlspecialchars($v); }); echo <pre>; echo htmlspecialchars(print_r($key['value'], true)); echo '</pre>'; 我使用此代码从无sql数据库输出数组值(包含adsense代码)。 感谢 Knittl,这就是我的想法。 按照我想要的方式工作! <?php $x = array("tag1" => "<b>","tag2" => "<i>","tag3" => "b","tag4" => "i","tag5" => "<h1>hello</h1>"); echo "<hr><pre>"; blp_print_r ($x); echo "<hr>"; print_r($x); echo "</pre><hr>"; /* outputs this in the browser normal view new one... Array ( ['tag1'] => <b> ['tag2'] => <i> ['tag3'] => b ['tag4'] => i ['tag5'] => <h1>hello</h1> ) traditional one... Array ( [tag1] => [tag2] => [tag3] => b [tag4] => i [tag5] => hello ) */ function blp_print_r($inputarray){ echo "Array\n(\n"; echo "<blockquote>"; array_walk($inputarray,"html_encoder"); echo "</blockquote>"; echo ")"; } function html_encoder($current_val,$current_key){ echo "['" , htmlentities($current_key, ENT_QUOTES, "UTF-8") , "']", " => "; echo htmlentities($current_val, ENT_QUOTES, "UTF-8") , "\n"; } ?> 我发现这个页面非常有帮助,但我确实将函数修改为递归,walker 处理函数在回显键后检查值处的数组,然后回调该数组上的原始函数。我认为这使它成为真正的“递归 htmlentity 函数”,因此有了新名称...... function htmlentities_print_r( $inputarray ) { echo "<pre>" ; array_walk( $inputarray , "html_encoder" ) ; echo "</pre>"; } function html_encoder($current_val,$current_key){ echo "['" , htmlentities($current_key, ENT_QUOTES, "UTF-8") , "']", " => "; if ( is_array( $current_val ) ) { blp_print_r( $current_val ) ; } else { echo htmlentities($current_val, ENT_QUOTES, "UTF-8") , "\n"; } } 确实, print_r 为 true 的解决方案是最简单的解决方案。但我会这么做: $ret = htmlentities( print_r( $some_array, true ) ) $ret = str_replace( array("\n"), array('<br>'), $ret ); printf( "<br>Result is: <br>%s<br>", $ret ); 但这取决于你们所有人。

回答 9 投票 0

删除“ ”

我正在寻找一种从我的 html 代码中删除“ ”的方法,在 stackoverflow.com 上找到了多种方法,但这些方法都不起作用! 超文本标记语言 没有空间  1 S... 我正在寻找一种从我的 html 代码中删除 '&nbsp;' 的方法,在 stackoverflow.com 上找到了多种方法,但这些方法都不起作用! HTML <p>No Space</p> <p>&nbsp;1 Space</p> <p>&nbsp;&nbsp;2 Spaces</p> <p>&nbsp;&nbsp;&nbsp;3 Spaces</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;4 Spaces</p> jQuery $(document).ready(function() { $('p').text().replace(/ /g, ''); //$('p').html($(this).html().replace(/&nbsp;/gi,'')); }); jsfiddle - 游乐场 http://jsfiddle.net/MrTest/hbvjQ/85/ 您的代码中有   而不是 &nbsp; $('p').each(function(){ $(this).html($(this).html().replace(/&nbsp;/gi,'')); }); http://jsfiddle.net/genesis/hbvjQ/76/ 这个将替换每个空白字符: $('p').text(function (i, old) { return old.replace(/\s/g, '') }); 或者如果您只想替换不间断空格: $('p').text(function (i, old) { return old.replace(/\u00A0/g, '') }); jsFiddle 演示 我使用 closure 作为 .text() 的参数来设置新值。 请注意,HTML 实体最后需要结束语 ;。 这是一个非 jQuery 的答案,因为使用 jQuery 来完成这样的任务是多余的,除非您已经在网站上使用它来完成其他任务: var p = document.getElementsByTagName('p'); Array.prototype.forEach.call(p, function(el) { el.innerHTML = el.innerHTML.replace(/&nbsp;/gi, ''); }); <p>No Space</p> <p>&nbsp;1 Space</p> <p>&nbsp;&nbsp;2 Spaces</p> <p>&nbsp;&nbsp;&nbsp;3 Spaces</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;4 Spaces</p> 尝试 $('p').each(function() { $(this).html($(this).html().replace(/ /g, '')); }); 或者如果您想删除该尝试 $('p').each(function() { $(this).html($(this).html().replace('&nbsp;', '')); }); 另请注意,空格是 &nbsp; 而不是   (您丢失了;) 基于 bažmegakapa' 答案,这可以用于包含其他元素的元素。 $('p').html(function (i, old) { return old.replace(/&nbsp;/g, '') }); .text() 删除 html 元素; .html() 没有 这是代码: $('p').each( function() { var elem = $( this ); elem.html( elem.html().replace( /&nbsp;/g,'' ) ); } ); 这是 jsfiddle:http://jsfiddle.net/hbvjQ/62/

回答 6 投票 0

错误解析/page.xhtml:错误跟踪[行:42]实体“nbsp”被引用,但未声明

我想在 JSF 页面中使用不间断空格。我知道,在纯 HTML 中,我可以使用 来实现此目的,并且效果很好。但是,当我将这些放入 Facelets 页面时,就会出错...

回答 5 投票 0

将函数应用于数组中的每个元素(O'Reilly 食谱示例)

用于嵌套数据。 我试过 数组(“巴巴”,“比利”), 'lastnames' => array("O'Riley", "O'Reilly")); array_walk_recursive($names, 函数 (&value, ...

回答 3 投票 0

jQuery - 定位一个包含双引号的值的复选框

我正在尝试预先填充一个表单,其中包含我无法更改的值的输入。其中一个字段是一系列复选框,其中一些值包含双引号以代表 inc...

回答 1 投票 0

php中onchange函数中的Html实体转换

当我尝试将变量传递给 check_holiday_dates_on_application 时,我希望它们在站点 html 中被 ' 包围。这就是我的代码的样子: 'onchange' => '返回

回答 2 投票 0

在 HTML5 中编写带有空格的“<' and '>”是否有效,还是必须始终将它们写为 HTML 实体?

以下内容是有效的 HTML5 吗? 1 < 2 2 > 1 或者必须始终使用这样的 HTML5 实体编写? 1 < 2 2 &... 以下内容是有效的 HTML5 吗? <p>1 < 2</p> <p>2 > 1</p> 或者必须始终使用这样的 HTML5 实体来编写? <p>1 &lt; 2</p> <p>2 &gt; 1</p> 有人可以帮助我参考 HTML5 规范来回答这个问题吗?该规范清楚地说明了在 HTML 中编写 < 和 >(符号周围的空格)是否有效? 它们都是有效的,因为<后面有一个空格,但建议不要在 HTML 中悬挂松散的尖括号 这是我能找到的唯一限制 WHATWG HTML 生活标准 限制 13.1.2.6 对原始文本和可转义原始文本元素内容的限制 原始文本和可转义原始文本元素中的文本不得包含任何字符串 </ (U+003C LESS-THAN SIGN, U+002F SOLIDUS) 的出现,后跟与后面元素的标签名称不区分大小写匹配的字符由 U+0009 字符制表(制表符)、U+000A 换行符 (LF)、U+000C 换页符 (FF)、U+000D 回车符 (CR)、U+0020 空格、U+003E 大于之一符号 (>),或 U+002F 立体线 (/)。

回答 1 投票 0

fgetcsv(),在 csv 字符串中包含 html 实体

我解析 CSV 字符串并收到错误的列数,我认为这是因为像 %2C%20 这样的 html 实体。 我收到错误的列数,我认为这是因为像这样的 html 实体...

回答 1 投票 0

OpenSP - 将 SGML 转换为 XML 声明 html 实体

在 Windows 10 上,我使用 OpenSP 中的 osx.exe 将 SGML 文件转换为 XML。 在 SGML 中,存在  -é 等 html 实体以及更多其他实体。 解析器迫使我

回答 1 投票 0

HTML 实体的 JSON 序列化

在对包含 HTML 数据的 JSON 字符串进行反序列化时,我注意到以下情况: < and > 转换为 \u003c 和 \u003e (直接unicode表示) & 转换...

回答 1 投票 0

如何正确渲染React中分配给变量的html实体?

在React中,下面的代码正确地将双引号(“)渲染到页面: 导出默认字符() { 返回 ( " // 渲染为符号 " ...

回答 2 投票 0

中间点的 HTML 实体

我正在寻找该点的 html 代码。不是句子末尾的点,而是用于水平分隔项目的点。 第 1 项。第 2 项。项目3 传统的点是中心...

回答 7 投票 0

信息图标是否有 HTML 实体?

我正在寻找这样的基本信息图标:

回答 8 投票 0

为什么 DOMDocument::saveHTML() 的行为在将 UTF-8 编码为样式和脚本元素中的实体时有所不同?

给定一个使用包含表情符号字符的样式表构建的 DOMDocument,在将 DOM 序列化回 HTML 时,我发现了一些奇怪的行为。 $html = <<< HTML 考虑到使用包含表情符号字符的样式表构建的 DOMDocument,我在将 DOM 序列化回 HTML 时发现了一些奇怪的行为。 $html = <<< HTML <!DOCTYPE html> <html> <head> <meta charset=utf-8> <style>span::before{ content: \"⚡️\"; }</style> </head> <body> <span></span> </body> </html> HTML; $dom = new DOMDocument(); $dom->loadHTML($html); echo $dom->saveHTML($dom->documentElement); echo $dom->saveHTML(); $dom->saveHTML($dom->documentElement)的结果是(根据需要): <html><head><meta charset="utf-8"> <style>span::before{ content: "⚡️"; }</style> </head><body><span></span></body></html> 但是 $dom->saveHTML() 返回(错误地): <html><head><meta charset="utf-8"> <style>span::before{ content: "&#9889;&#65039;"; }</style> </head><body><span></span></body></html> 请注意表情符号“⚡️”如何编码为样式表内的 HTML 实体 &#9889;&#65039;。它被视为文字字符串,因为应使用 CSS 转义 \26A1。 我尝试设置$dom->substituteEntities = false但没有任何效果。 相同的 HTML 实体转换也发生在 <script> 元素内部,这会在浏览器中导致类似的问题。 通过在线 PHP shell 进行测试:https://3v4l.org/jMfDd 您应该在 DOMDocument 上加载带有表情符号的 HTML 之前转换编码: $dom->loadHTML(mb_convert_encoding($htmlCode, 'HTML-ENTITIES', 'UTF-8')); 编辑:正如帖子所有者提到的,mb_convert_enconding 在未来的 PHP 版本中已被弃用(目前在 8.2.5 上进行了测试并且工作正常)。对于更高版本的 PHP,请查看 https://php.watch/versions/8.2/mbstring-qprint-base64-uuencode-html-entities-deprecated#html

回答 1 投票 0

v-如果不适用于表达式中的 HTML 实体字符串

当我在 v-if 中比较 2 个相等的文本时,如果文本是 HTML 实体字符串,如 '<'或 ' ',它将始终返回 false。我正在使用 vue 3 导出默认值{ </desc> <question vote="0"> <p>当我在 v-if 中比较 2 个相等的文本时,如果文本是 HTML 实体字符串,如 '<'或 '&nbsp;',它将始终返回 false。我正在使用 vue 3</p> <pre><code>&lt;script &gt; export default { computed: { text() { return &#39;&amp;lt;&#39; } } } &lt;/script&gt; &lt;template&gt; &lt;div&gt; &lt;template v-if=&#34;text === &#39;&amp;lt;&#39;&#34;&gt; &lt;h1&gt;Yes&lt;/h1&gt; &lt;span v-html=&#34;text&#34;&gt;&lt;/span&gt; &lt;/template&gt; &lt;template v-else&gt; &lt;h1&gt;No&lt;/h1&gt; &lt;span class=&#34;label label-default&#34;&gt;{{text}}&lt;/span&gt; &lt;/template&gt; &lt;/div&gt; &lt;/template&gt; </code></pre> <p><a href="https://i.stack.imgur.com/gxyJi.png" target="_blank"><img src="https://cdn.txt58.com/i/AWkuc3RhY2suaW1ndXIuY29tL2d4eUppLnBuZw==" alt="here is how it rendered"/></a> 我不知道为什么 vue 模板不渲染一些特殊的字符串,即使在 v-if 中也是如此?在这种情况下有什么方法可以保留 HTML 实体字符串吗?</p> <p>如果在 vue 2 中运行该代码<a href="https://i.stack.imgur.com/PjVJ1.png" target="_blank"><img src="https://cdn.txt58.com/i/AWkuc3RhY2suaW1ndXIuY29tL1BqVkoxLnBuZw==" alt="here"/></a>,v-if 表达式将返回 true。我不知道vue 3与模板相关的变化是什么</p> </question> <answer tick="false" vote="0"> <p>应该按照预期的方式工作:</p> <pre><code> &lt;template v-if=&#34;text === &#39;&amp;amp;lt;&#39;&#34;&gt; </code></pre> <p>最好避免模板中出现此类逻辑,因为这可能会导致不明确的行为。</p> </answer> </body></html>

回答 0 投票 0

双引号的浏览器编码

我正在学习字符编码,但现在我有点困惑。 我在 Chrome 和 Firefox 中观察到以下行为。 下面的 HTML 代码片段打印它一旦帕...

回答 1 投票 0

原生 JavaScript 或 ES6 方式来编码和解码 HTML 实体?

是否有使用 JavaScript 或 ES6 编码或解码 HTML 实体的本机方法?例如,< would be encoded as <. There are libraries like html-entities for Node.js but it feels like...

回答 6 投票 0

如何在 PHP 中从 URL 获取 HTML?

我想要 URL 中的 HTML 代码。 实际上,我想从一个 URL 的数据中跟踪一些内容。 1.博客标题 2.博客图片 3. 血液发布日期 4.博客描述或实际博客文本 我在下面尝试过

回答 2 投票 0

解码Python字符串中的HTML实体?

我正在使用 Beautiful Soup 3 解析一些 HTML,但它包含 Beautiful Soup 3 不会自动为我解码的 HTML 实体: >>> 从 BeautifulSoup 导入 BeautifulSoup >>...

回答 6 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.