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

Reply via email to