-2
$myArray = array();

array_push($myArray, "'     a'");

use Framework\ArrayMethods as ArrayMethods;
print_r(($myArray));
print_r(ArrayMethods::lengtOfElements($myArray));

输出将是:

Array ( [0] => ' a' ) Array ( [0] => 8 ) 

所以在打印的字符串中 a 之前只有一个空格,但是 strelen 返回 8?如何让它打印'a'?

4

3 回答 3

0

就像@Marc-B 评论的那样,浏览器正在将多个连续的空格折叠成一个空格。对此的解决方案是:

  1. 将文本包装在<pre></pre>标签中。
  2. 使用 CSSwhite-space属性
  3. &nbsp;用 HTML实体替换空格。[非中断空间]

例如:

preg_replace("/ /", "&nbsp;", "     a");
//output: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a
于 2013-01-23T17:56:25.043 回答
-1

如果要在浏览器中查看,请包装:

print_r(($myArray));
print_r(ArrayMethods::lengtOfElements($myArray));

所以它有<pre>标签:

echo '<pre>';
print_r(($myArray));
print_r(ArrayMethods::lengtOfElements($myArray));
echo '</pre>';
于 2013-01-23T17:03:33.810 回答
-1

这是因为 html 中的多个空格(连续两个或多个)只会显示为一个空格。如果您“查看源代码”,您可能会看到不同的结果。

如果您想在实际浏览器中查看而不是源代码,可以使用 pre 标签来解决这个问题:

$myArray = array();

array_push($myArray, "'     a'");

echo '<pre>';
print_r($myArray);
echo '</pre>';
于 2013-01-23T17:04:32.787 回答