ID: 37846
User updated by: bugs dot php dot net at jonatan dot com
Reported By: bugs dot php dot net at jonatan dot com
Status: Bogus
Bug Type: Strings related
Operating System: Mac OS X 10.4.6
PHP Version: 5.1.4
New Comment:
Sorry for my tone earlier. It didn't seem like anyone
understood my bug report.
It is only the tenth character if you count the leading
space, which doesn't exist, because it has been trimmed.
Your explanation would make sense if wordwrap() didn't trim
leading (or trailing) spaces from wrapped lines; resulting
in something like:
Some tex
Some tex
Some text
Some tex
Some
text
Some tex
(note leading and trailing space on lines)
But that's not what wordwrap() returns. The fact that (I'm
guessing) the trimming internally occurs after the counting
is merely an implementation detail of wordwrap() that
shouldn't be exposed outside the function.
I'd suggest fixing wordwrap() to wrap more efficiently.
Given the trimming of spaces, that can hardly be considered
to be incorrect.
Either that, or adding the following note to the
documentation:
Note that if a line happens to be exactly as long as the
maximum line length, the following line will be considered
to start with a leading space, even though it does not do
so, for porposes of calculating the maximum amount of text
that can fit on that line.
Previous Comments:
------------------------------------------------------------------------
[2006-06-20 14:00:58] [EMAIL PROTECTED]
<?php
// 'Some tex Some tex Some text Some tex Some text Some
tex';
$foo = "1234 678 1234 678 1234 6789 2345 789 2345 7890 2345
678";
print wordwrap($foo, 9) . "\n";
?>
1234 678
1234 678
1234 6789
2345 789
2345
7890
2345 678
The latter "t" in "text" is the TENTH character.
Now PLEASE leave this report as bogus.
------------------------------------------------------------------------
[2006-06-20 14:00:30] [EMAIL PROTECTED]
Oh, god..
Here is what wordwrap() does:
"Some tex|Some tex|Some text| Some tex| Some tex|t Some tex"
Write it down on paper and count symbols yourself.
Is everything clear for you this time? Or do I need to explain how to
count from 1 to 9?
------------------------------------------------------------------------
[2006-06-20 13:57:01] bugs dot php dot net at jonatan dot com
(Unfortunately the bug tracking system reformatted the code in
my last comment, adding a line break in the statement that
sets the $input variable, which was not intended to be there.
There is supposed to be a space (and only a space) between
each word in the string. So you'll need to change that if
copying-and-pasting. Or just use my first reproduction
example.)
------------------------------------------------------------------------
[2006-06-20 13:40:55] bugs dot php dot net at jonatan dot com
Jesus H. Christ, will you please try to actually read the
bug report before closing it as bogus.
Again:
I URGE you to look at the expected result and the actual
result and consider why wordwrap() thinks "Some text" fits
on one line while "Some text" doesn't, given that they both
start at the beginning of a line.
If you find the reproduction code formatting confusing, try
reformatting it as such:
<?php
$input = 'Some tex Some tex Some text Some tex Some text
Some tex';
echo '<pre>'.wordwrap( $input, 9 )."</pre>\n";
?>
------------------------------------------------------------------------
[2006-06-20 13:22:17] [EMAIL PROTECTED]
.
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/37846
--
Edit this bug report at http://bugs.php.net/?id=37846&edit=1