-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の前に空白は1つしかありませんが、strelenは8を返しますか?'a'を印刷する方法は?

4

3 に答える 3

0

@ Marc-Bがコメントしたように、ブラウザは複数の連続するスペースを1つのスペースに折りたたんでいます。これに対する解決策は次のとおりです。

  1. <pre></pre>テキストをタグでラップします。
  2. CSSwhite-spaceプロパティを使用します。
  3. スペースをHTML&nbsp;エンティティに置き換えます。[ノーブレークスペース]

例えば:

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内の複数のスペース(2つ以上の行)が単一のスペースとしてのみ表示されるためです。'ソースを表示'すると、異なる結果が表示される場合があります。

ソースではなく実際のブラウザで表示したい場合は、preタグを使用してこれを回避できます。

$myArray = array();

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

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