回声空格为html字符

时间:2017-12-26 08:50:31

标签: php html

我有一个字符串90001 90002。我需要看看在空白区域中表示哪个html特殊字符。 (它可能是一个空的空间 - &nbsp;或者它可能是伪装成HTML see here中的空格的文本换行符。也许我不知道的其他可能性......)< / p>

我想回显一个字符串并将空格显示为html char(例如$result = "90001&nbsp;90002")。

我已尝试使用html_entities,但这并不包含空格。 htmlspecialchars也没有。 我该怎么做呢? 如果可能的话,我想要一个纯粹的PHP&amp; HTML解决方案。如有必要 - CSS。如果不可能,javascript将不得不做..

4 个答案:

答案 0 :(得分:3)

只是一个开箱即用的想法。我遇到了同样的问题但是考虑使用JavaScript的encodeURIComponent()函数:

$(function () {
  $("div").html(function () {
    return encodeURIComponent($(this).html());
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>90001 90002</div>

使用jQuery,因为我有点懒。你可以用这种方式在JavaScript中做同样的事情:

<div>90001 90002</div>
<script>
  var div = document.querySelector("div");
  div.innerHTML = encodeURIComponent(div.innerHTML);
</script>

让您知道在客户端处理比在服务器端处理更好。

更新2:获取HTML内容并更新HTML文本:

$(function () {
  $("div").text(function () {
    return $(this).html().replace(/[\u00A0-\u9999<>\&]/gim, function(i) {
      return '&#'+i.charCodeAt(0)+';';
    });
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>90001—90002</div>

像这样......

答案 1 :(得分:-1)

i

我希望有所帮助

答案 2 :(得分:-2)

function removeWhiteSpace($text)
{
  $text = preg_replace('/[\t\n\r\0\x0B]/', '', $text);
  $text = preg_replace('/([\s])\1+/', ' ', $text);
  $text = trim($text);
  return $text;
}

答案 3 :(得分:-3)

编辑答案:

如果您需要使用PHP,请使用urlencode函数,这将解析它

<?php
$query_string = 'foo=' . urlencode($foo) . '&bar=' . urlencode($bar);
echo '<a href="mycgi?' . htmlentities($query_string) . '">';
?>

但是他们已经退回了文档的注释部分中提到的内容。 http://php.net/manual/en/function.urlencode.php

您还可以在php中使用htmlentities,rawurlencode等函数。

如果你想在javascript中使用它,你可以使用转义功能。 https://www.w3schools.com/jsref/jsref_escape.asp